§
    ·! hO ã                   óÐ  — d Z ddl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 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 d
dlmZ d
dlm Z  d
dl!m"Z" ej#        r
ddl$Z%d
dl&m'Z'  ej(        dej)        dej*        f         ¬¦  «        Z+dddddd d!d"d#œZ,d$e+d%e+fd&„Z-d'e.d%ej)        d(ej/        d)gdf         fd*„Z0d'e.d%ej)        d(ej1        d)gdf         fd+„Z2	 	 	 dHd.ej3        d/d0d1ej4        e.         d2ej4        e.         d3ej4        ej5                 d4e6d5e6d%ej4        e.         fd6„Z7d7ej*        d%e6fd8„Z8d9ej9        ej:                 d:ej9        e.         d%ej;        e.         fd;„Z< G d<„ d=¦  «        Z= G d>„ d)¦  «        Z> G d?„ d@e?¦  «        Z@ G dA„ dBe"¦  «        ZA G dC„ dDe"¦  «        ZB G dE„ dFeC¦  «        ZD G dG„ d(e"¦  «        ZEdS )Iz0Compiles nodes from the parser into Python code.é    N)Úcontextmanager)Úupdate_wrapper)ÚStringIO)Úchain)Ú	iskeyword)Úescape)ÚMarkupé   )Únodes)ÚTemplateAssertionError)ÚSymbols)ÚVAR_LOAD_ALIAS)ÚVAR_LOAD_PARAMETER)ÚVAR_LOAD_RESOLVE)ÚVAR_LOAD_UNDEFINED)ÚEvalContext)Ú	Optimizer)Ú_PassArg)Úconcat)ÚNodeVisitor)ÚEnvironmentÚF.)Úboundz==z!=ú>z>=ú<z<=Úinznot in)ÚeqÚneÚgtÚgteqÚltÚlteqr   ÚnotinÚfÚreturnc           
      ó°   ‡ — dddt           j        dddt          j        dt          j        f
ˆ fd„}t	          t          j        t          |¦  «        ‰ ¦  «        S )	NÚselfÚCodeGeneratorÚnodeÚframeÚFrameÚkwargsr%   c                 ó¸   •— | j         �H|j        j        s<| j                              ||j        ¦  «        }||k    r|                      ||¦  «        S  ‰| ||fi |¤ŽS ©N)Ú	optimizerÚeval_ctxÚvolatileÚvisit)r'   r)   r*   r,   Únew_noder$   s        €úIc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\jinja2/compiler.pyÚnew_funczoptimizeconst.<locals>.new_func.   sk   ø€ ð Œ>Ð%¨e¬nÔ.EÐ%Ø”~×+Ò+¨D°%´.ÑAÔAˆHà˜4ÒÐØ—z’z (¨EÑ2Ô2Ð2àˆq��t˜UÐ-Ð- fÐ-Ð-Ð-ó    )r   ÚExprÚtÚAnyr   Úcastr   )r$   r5   s   ` r4   Úoptimizeconstr;   -   sm   ø€ ð
.Øð
.Ý%*¤Zð
.Ø8?ð
.ÝKLÌ5ð
.å	
Œð
.ð 
.ð 
.ð 
.ð 
.ð 
.õ �!œ&¥ HÑ-Ô-¨qÑ1Ô1Ð1r6   Úopr(   r+   c           	      ó\   ‡ — t           dddt          j        dt          dd fˆ fd„¦   «         }|S )Nr'   r(   r)   r*   r%   c                 óø  •— | j         j        rs‰| j         j        v re|                      d‰›d�¦  «         |                      |j        |¦  «         |                      d¦  «         |                      |j        |¦  «         nd|                      d¦  «         |                      |j        |¦  «         |                      d‰› d�¦  «         |                      |j        |¦  «         |                      d¦  «         d S )Nz environment.call_binop(context, ú, ú(ú ú))ÚenvironmentÚ	sandboxedÚintercepted_binopsÚwriter2   ÚleftÚright©r'   r)   r*   r<   s      €r4   Úvisitorz_make_binop.<locals>.visitor>   së   ø€ ð ÔÔ&ð	*Ø+-°Ô1AÔ1TÐ+TÐ+Tà�JŠJÐB¸"ÐBÐBÐBÑCÔCÐCØ�JŠJ�t”y %Ñ(Ô(Ð(Ø�JŠJ�tÑÔÐØ�JŠJ�t”z 5Ñ)Ô)Ð)Ð)à�JŠJ�s‰OŒOˆOØ�JŠJ�t”y %Ñ(Ô(Ð(Ø�JŠJ�y˜2�y�y�yÑ!Ô!Ð!Ø�JŠJ�t”z 5Ñ)Ô)Ð)à�
Š
�3‰Œˆˆˆr6   )r;   r   ÚBinExprr+   ©r<   rJ   s   ` r4   Ú_make_binoprM   =   sP   ø€ Ýð�oð ­U¬]ð Å5ð ÈTð ð ð ð ð ñ „]ðð  €Nr6   c           	      ó\   ‡ — t           dddt          j        dt          dd fˆ fd„¦   «         }|S )Nr'   r(   r)   r*   r%   c                 ó6  •— | j         j        rC‰| j         j        v r5|                      d‰›d�¦  «         |                      |j        |¦  «         n3|                      d‰z   ¦  «         |                      |j        |¦  «         |                      d¦  «         d S )Nzenvironment.call_unop(context, r?   r@   rB   )rC   rD   Úintercepted_unopsrF   r2   r)   rI   s      €r4   rJ   z_make_unop.<locals>.visitorU   sš   ø€ ð ÔÔ&ð	)Ø+-°Ô1AÔ1SÐ+SÐ+Sà�JŠJÐA¸ÐAÐAÐAÑBÔBÐBØ�JŠJ�t”y %Ñ(Ô(Ð(Ð(à�JŠJ�s˜R‘xÑ Ô Ð Ø�JŠJ�t”y %Ñ(Ô(Ð(à�
Š
�3‰Œˆˆˆr6   )r;   r   Ú	UnaryExprr+   rL   s   ` r4   Ú
_make_unoprR   R   sR   ø€ õ ð
�oð 
­U¬_ð 
ÅUð 
Ètð 
ð 
ð 
ð 
ð 
ñ „]ð
ð €Nr6   FTr)   rC   r   ÚnameÚfilenameÚstreamÚ
defer_initÚ	optimizedc                 óì   — t          | t          j        ¦  «        st          d¦  «        ‚|                     ||||||¦  «        }|                     | ¦  «         |€|j                             ¦   «         S dS )z+Generate the python source for a node tree.z Can't compile non template nodesN)Ú
isinstancer   ÚTemplateÚ	TypeErrorÚcode_generator_classr2   rU   Úgetvalue)r)   rC   rS   rT   rU   rV   rW   Ú	generators           r4   Úgenerater_   e   s|   € õ �d�EœNÑ+Ô+ð <ÝÐ:Ñ;Ô;Ð;à×0Ò0Ø�T˜8 V¨Z¸ñô €Ið ‡O‚O�DÑÔÐà€~ØÔ×(Ò(Ñ*Ô*Ð*àˆ4r6   Úvaluec                 ó²  — | �| t           u s	| t          u rdS t          | ¦  «        t          t          t
          t          t          t          t          hv rdS t          | ¦  «        t          t          t          t          hv rt          d„ | D ¦   «         ¦  «        S t          | ¦  «        t          u r+t          d„ |                      ¦   «         D ¦   «         ¦  «        S dS )z)Does the node have a safe representation?NTc              3   ó4   K  — | ]}t          |¦  «        V — Œd S r.   ©Úhas_safe_repr)Ú.0Úvs     r4   ú	<genexpr>z has_safe_repr.<locals>.<genexpr>†   s*   è è € Ð3Ð3¨•= Ñ#Ô#Ð3Ð3Ð3Ð3Ð3Ð3r6   c              3   óX   K  — | ]%\  }}t          |¦  «        ot          |¦  «        V — Œ&d S r.   rc   ©re   Úkrf   s      r4   rg   z has_safe_repr.<locals>.<genexpr>‰   s;   è è € ÐSÐS¹T¸QÀ•= Ñ#Ô#Ð8­°aÑ(8Ô(8ÐSÐSÐSÐSÐSÐSr6   F)ÚNotImplementedÚEllipsisÚtypeÚboolÚintÚfloatÚcomplexÚrangeÚstrr	   ÚtupleÚlistÚsetÚ	frozensetÚallÚdictÚitems©r`   s    r4   rd   rd   }   s·   € à€}˜¥Ð/Ð/°5½HÐ3DÐ3DØˆtåˆE�{„{•t�S¥%­µ%½½fÐEÐEÐEØˆtåˆE�{„{•u�d¥C­Ð3Ð3Ð3ÝÐ3Ð3¨UÐ3Ñ3Ô3Ñ3Ô3Ð3åˆE�{„{•dÐÐÝÐSÐSÀUÇ[Â[Á]Ä]ÐSÑSÔSÑSÔSÐSàˆ5r6   r   Únamesc                 ó†   — t          |¦  «        }	 | D ]}|                     |¦  «         Œn# t          $ r Y nw xY w|j        S )z”Check if the names passed are accessed undeclared.  The return value
    is a set of all the undeclared names from the sequence of names found.
    )ÚUndeclaredNameVisitorr2   ÚVisitorExitÚ
undeclared)r   r|   rJ   r)   s       r4   Úfind_undeclaredr�   Ž   sh   € õ $ EÑ*Ô*€GðØð 	 ð 	 ˆDØ�MŠM˜$ÑÔÐÐð	 øåð ð ð ØˆðøøøàÔÐs   ‘, ¬
9¸9c                   óL   — e Zd Zdej        ej        ej        f         ddfd„ZdS )ÚMacroRefr)   r%   Nc                 ó>   — || _         d| _        d| _        d| _        d S ©NF)r)   Úaccesses_callerÚaccesses_kwargsÚaccesses_varargs©r'   r)   s     r4   Ú__init__zMacroRef.__init__ž   s'   € ØˆŒ	Ø$ˆÔØ$ˆÔØ %ˆÔÐÐr6   )	Ú__name__Ú
__module__Ú__qualname__r8   ÚUnionr   ÚMacroÚ	CallBlockrŠ   © r6   r4   rƒ   rƒ   �   sF   € € € € € ð&˜QœW U¤[°%´/Ð%AÔBð &Àtð &ð &ð &ð &ð &ð &r6   rƒ   c            	       ó‚   — e Zd ZdZ	 	 ddedej        d          dej        e         ddfd„Zdd„Z	dd
e
dd fd„Zdd„Ze	ZdS )r+   z&Holds compile time information for us.Nr0   ÚparentÚlevelr%   c                 ó@  — || _         || _        |€+t          |¬¦  «        | _        d| _        d | _        d | _        n?t          |j        |¬¦  «        | _        |j        | _        |j        | _        |j        | _        d| _        d| _        d| _	        d| _
        d| _        d S )N©r”   F)r0   r“   r   ÚsymbolsÚrequire_output_checkÚbufferÚblockÚtoplevelÚ	rootlevelÚ
loop_frameÚblock_frameÚ
soft_frame)r'   r0   r“   r”   s       r4   rŠ   zFrame.__init__¨   s®   € ð !ˆŒð ˆŒàˆ>Ý"¨Ð/Ñ/Ô/ˆDŒLð ).ˆDÔ%ð ,0ˆDŒKð +/ˆDŒJˆJõ # 6¤>¸Ð?Ñ?Ô?ˆDŒLØ(.Ô(CˆDÔ%Ø œ-ˆDŒKØœˆDŒJð ˆŒð
 ˆŒð  ˆŒØ ˆÔð
  ˆŒˆˆr6   c                 ó¾   — t                                | j        ¦  «        }|j                             | j        ¦  «         | j                             ¦   «         |_        |S )z!Create a copy of the current one.)ÚobjectÚ__new__Ú	__class__Ú__dict__Úupdater—   Úcopy©r'   Úrvs     r4   r¦   z
Frame.copyÛ   sG   € å�^Š^˜DœNÑ+Ô+ˆØ
Œ×Ò˜4œ=Ñ)Ô)Ð)Ø”\×&Ò&Ñ(Ô(ˆŒ
Øˆ	r6   FÚisolatedc                 óv   — |r#t          | j        | j        j        dz   ¬¦  «        S t          | j        | ¦  «        S )zReturn an inner frame.r
   r–   )r+   r0   r—   r”   )r'   r©   s     r4   ÚinnerzFrame.innerâ   s<   € àð 	FÝ˜œ¨d¬lÔ.@À1Ñ.DÐEÑEÔEÐEÝ�T”] DÑ)Ô)Ð)r6   c                 óJ   — |                       ¦   «         }d|_        d|_        |S )a&  Return a soft frame.  A soft frame may not be modified as
        standalone thing as it shares the resources with the frame it
        was created of, but it's not a rootlevel frame any longer.

        This is only used to implement if-statements and conditional
        expressions.
        FT)r¦   rœ   rŸ   r§   s     r4   Úsoftz
Frame.softè   s$   € ð �YŠY‰[Œ[ˆØˆŒØˆŒØˆ	r6   )NN)r%   r+   ©F)r‹   rŒ   r�   Ú__doc__r   r8   ÚOptionalro   rŠ   r¦   rn   r«   r­   Ú__copy__r‘   r6   r4   r+   r+   ¥   s¿   € € € € € Ø0Ð0ð
 '+Ø!%ð	1 ð 1 àð1 ð ”
˜7Ô#ð1 ð Œz˜#Œð	1 ð
 
ð1 ð 1 ð 1 ð 1 ðfð ð ð ð*ð *˜dð *¨wð *ð *ð *ð *ðð ð ð ð €H€H€Hr6   c                   ó   — e Zd ZdZdS )r   z?Exception used by the `UndeclaredNameVisitor` to signal a stop.N©r‹   rŒ   r�   r¯   r‘   r6   r4   r   r   ø   s   € € € € € ØIÐIÐIÐIr6   r   c                   óh   — e Zd ZdZd	d„Zdej        ddfd„Zdej        ddfd„Z	dej
        ddfd„ZdS )
ÚDependencyFinderVisitorz.A visitor that collects filter and test calls.r%   Nc                 óR   — t          ¦   «         | _        t          ¦   «         | _        d S r.   )rv   ÚfiltersÚtests©r'   s    r4   rŠ   z DependencyFinderVisitor.__init__ÿ   s   € Ý#&¡5¤5ˆŒÝ!$¡¤ˆŒ
ˆ
ˆ
r6   r)   c                 ón   — |                       |¦  «         | j                             |j        ¦  «         d S r.   )Úgeneric_visitr·   ÚaddrS   r‰   s     r4   Úvisit_Filterz$DependencyFinderVisitor.visit_Filter  s4   € Ø×Ò˜4Ñ Ô Ð ØŒ×Ò˜œÑ#Ô#Ð#Ð#Ð#r6   c                 ón   — |                       |¦  «         | j                             |j        ¦  «         d S r.   )r»   r¸   r¼   rS   r‰   s     r4   Ú
visit_Testz"DependencyFinderVisitor.visit_Test  s2   € Ø×Ò˜4Ñ Ô Ð ØŒ
�Š�t”yÑ!Ô!Ð!Ð!Ð!r6   c                 ó   — dS )zStop visiting at blocks.Nr‘   r‰   s     r4   Úvisit_Blockz#DependencyFinderVisitor.visit_Block  ó   € € € r6   ©r%   N)r‹   rŒ   r�   r¯   rŠ   r   ÚFilterr½   ÚTestr¿   ÚBlockrÁ   r‘   r6   r4   rµ   rµ   ü   sš   € € € € € Ø8Ð8ð'ð 'ð 'ð 'ð$ ¤ð $°$ð $ð $ð $ð $ð"˜uœzð "¨dð "ð "ð "ð "ð' ¤ð '°ð 'ð 'ð 'ð 'ð 'ð 'r6   rµ   c                   ól   — e Zd ZdZdej        e         ddfd„Zdej	        ddfd„Z
dej        ddfd„ZdS )	r~   z¡A visitor that checks if a name is accessed without being
    declared.  This is different from the frame visitor as it will
    not stop at closure frames.
    r|   r%   Nc                 óT   — t          |¦  «        | _        t          ¦   «         | _        d S r.   )rv   r|   r€   )r'   r|   s     r4   rŠ   zUndeclaredNameVisitor.__init__  s   € Ý˜‘Z”ZˆŒ
Ý&)¡e¤eˆŒˆˆr6   r)   c                 óô   — |j         dk    rM|j        | j        v r?| j                             |j        ¦  «         | j        | j        k    rt          ¦   «         ‚d S | j                             |j        ¦  «         d S )NÚload)ÚctxrS   r|   r€   r¼   r   Údiscardr‰   s     r4   Ú
visit_Namez UndeclaredNameVisitor.visit_Name  sv   € ØŒ8�vÒÐ $¤)¨t¬zÐ"9Ð"9ØŒO×Ò ¤	Ñ*Ô*Ð*ØŒ $¤*Ò,Ð,Ý!‘m”mÐ#ð -Ð,ð ŒJ×Ò˜tœyÑ)Ô)Ð)Ð)Ð)r6   c                 ó   — dS )zStop visiting a blocks.Nr‘   r‰   s     r4   rÁ   z!UndeclaredNameVisitor.visit_Block!  rÂ   r6   )r‹   rŒ   r�   r¯   r8   ÚIterablers   rŠ   r   ÚNamerÍ   rÆ   rÁ   r‘   r6   r4   r~   r~     sŽ   € € € € € ðð ð
,˜aœj¨œoð ,°$ð ,ð ,ð ,ð ,ð*˜uœzð *¨dð *ð *ð *ð *ð& ¤ð &°ð &ð &ð &ð &ð &ð &r6   r~   c                   ó   — e Zd ZdZdS )ÚCompilerExitz¼Raised if the compiler encountered a situation where it just
    doesn't make sense to further process the code.  Any block that
    raises such an exception is not further processed.
    Nr³   r‘   r6   r4   rÒ   rÒ   %  s   € € € € € ðð ð ð r6   rÒ   c                   ó”  — e Zd ZU 	 	 	 d�dddej        e         dej        e         dej        ej                 d	ed
eddfd„Ze	defd„¦   «         Z
dededdfd„Zdefd„Zdeddfd„Z	 d‘dededdfd„Zd’d„Zd“deddfd„Zd”dedej        ej                 ddfd„Zdeddfd„Z	 d”dededej        ej                 ddfd„Zd ej        ej                 deddfd!„Zd"eddfd#„Z	 d•d"edej        ej                 d%eddfd&„Zd•dej        ej                 d%eddfd'„Z	 d”dej        ej        ej        ej         f         ded(ej        ej!        eej"        f                  ddfd)„Z#d ej        ej                 ddfd*„Z$deddfd+„Z%d‘ded,eddfd-„Z&d–d0ed1edefd2„Z'dedefd3„Z(dej        ej)        ej*        f         dedej+        ee,f         fd4„Z-d5e,deddfd6„Z.dej        defd7„Z/dedefd8„Z0d’d9„Z1deddfd:„Z2d’d;„Z3d<eddfd=„Z4d<eddfd>„Z5d’d?„Z6defd@„Z7defdA„Z8dedefdB„Z9d<edefdC„Z:d’dD„Z;deddfdE„Z<	 d”dej=        dej        e         ddfdF„Z>dej?        deddfdG„Z@dejA        deddfdH„ZBdejC        deddfdI„ZDdej        ejE        ejF        f         deddfdJ„ZGdejE        deddfdK„ZHdejF        deddfdL„ZIdejJ        deddfdM„ZKdejL        deddfdN„ZMdej)        deddfdO„ZNdej*        deddfdP„ZOdejP        deddfdQ„ZQdejR        deddfdR„ZSdejT        deddfdS„ZU G dT„ dUejV        ¦  «        ZWeXdVej"        dej"        fdW„¦   «         ZYdZZej        eW         e[dX<   deWfdY„Z\dZej        ej"                 defd[„Z]dej^        ded\eWdefd]„Z_dej^        ded\eWddfd^„Z`dej^        ded\eWddfd_„Zadejb        deddfd`„Zcdejd        deddfda„Zedejf        deddfdb„Zgdejh        deddfdc„Zidejj        deddfdd„Zkdejl        deddfde„Zmdejn        deddfdf„Zodej+        deddfdg„Zpdejq        deddfdh„Zrdejs        deddfdi„Zt eudj¦  «        Zv eudk¦  «        Zw eudl¦  «        Zx eudm¦  «        Zy eudn¦  «        Zz eudo¦  «        Z{ eudp¦  «        Z| eudq¦  «        Z} eudr¦  «        Z~ edj¦  «        Z€ edk¦  «        Z� eds¦  «        Z‚eƒdej„        deddfdt„¦   «         Z…eƒdej†        deddfdu„¦   «         Z‡dejˆ        deddfdv„Z‰eƒdejŠ        deddfdw„¦   «         Z‹eƒdejŒ        deddfdx„¦   «         Z�dejŽ        deddfdy„Z�e�dej        ej        ej         f         dedzedej‘        d         fd{„¦   «         Z’eƒdej        deddfd|„¦   «         Z“eƒdej         deddfd}„¦   «         Z”eƒdej•        deddfd~„¦   «         Z–eƒ	 d‘dej        dededdfd€„¦   «         Z—dej˜        deddfd�„Z™dejš        deddfd‚„Z›dejœ        deddfdƒ„Z�dejž        deddfd„„ZŸdej         deddfd…„Z¡dej¢        deddfd†„Z£dej¤        deddfd‡„Z¥dej¦        deddfdˆ„Z§dej¨        deddfd‰„Z©dejª        deddfdŠ„Z«dej¬        deddfd‹„Z­dej®        deddfdŒ„Z¯dej°        deddfd�„Z±dej²        deddfdŽ„Z³dej´        deddfd�„ZµdS )—r(   NFTrC   r   rS   rT   rU   rV   rW   r%   c                 ó¤  — |€t          ¦   «         }|| _        || _        || _        || _        d| _        || _        d | _        |rt          |¦  «        | _        i | _	        i | _
        d| _        d| _        d| _        i | _        i | _        g | _        d | _        d| _        d| _        d| _        d| _        d| _        g | _        g | _        dg| _        d S )NFr   r
   TÚcontext)r   rC   rS   rT   rU   Úcreated_block_contextrV   r/   r   Úimport_aliasesÚblocksÚextends_so_farÚhas_known_extendsÚcode_linenor¸   r·   Ú
debug_infoÚ_write_debug_infoÚ
_new_linesÚ
_last_lineÚ_first_writeÚ_last_identifierÚ_indentationÚ_assign_stackÚ_param_def_blockÚ_context_reference_stack)r'   rC   rS   rT   rU   rV   rW   s          r4   rŠ   zCodeGenerator.__init__-  s  € ð ˆ>Ý‘Z”ZˆFØ&ˆÔØˆŒ	Ø ˆŒØˆŒØ%*ˆÔ"Ø$ˆŒØ04ˆŒàð 	4Ý& {Ñ3Ô3ˆDŒNð 13ˆÔð 13ˆŒð  ˆÔð
 "'ˆÔð ˆÔð (*ˆŒ
Ø)+ˆŒð 68ˆŒØ26ˆÔð ˆŒð ˆŒð !ˆÔð !"ˆÔð ˆÔð 24ˆÔð 57ˆÔð *3¨ˆÔ%Ð%Ð%r6   c                 ó   — | j         d uS r.   )r/   r¹   s    r4   rW   zCodeGenerator.optimizedv  s   € àŒ~ TÐ)Ð)r6   ÚmsgÚlinenozte.NoReturnc                 ó:   — t          ||| j        | j        ¦  «        ‚)z*Fail with a :exc:`TemplateAssertionError`.)r   rS   rT   )r'   rç   rè   s      r4   ÚfailzCodeGenerator.fail|  s   € å$ S¨&°$´)¸T¼]ÑKÔKÐKr6   c                 ó6   — | xj         dz  c_         d| j         › �S )zGet a new unique identifier.r
   Út_)rá   r¹   s    r4   Útemporary_identifierz"CodeGenerator.temporary_identifier€  s'   € àÐÔ Ñ"ÐÔØ+�DÔ)Ð+Ð+Ð+r6   r*   c                 ór   — |                       ¦   «         |_        |                      |j        › d�¦  «         dS )z7Enable buffering for the frame from that point onwards.z = []N)rí   r™   Ú	writeline©r'   r*   s     r4   r™   zCodeGenerator.buffer…  s8   € à×0Ò0Ñ2Ô2ˆŒØ�Š˜%œ,Ð-Ð-Ð-Ñ.Ô.Ð.Ð.Ð.r6   Úforce_unescapedc                 ó&  — |sð|j         j        r¸|                      d¦  «         |                      ¦   «          |                      d|j        › d�¦  «         |                      ¦   «          |                      d¦  «         |                      ¦   «          |                      d|j        › d�¦  «         |                      ¦   «          dS |j         j        r |                      d|j        › d�¦  «         dS |                      d|j        › d�¦  «         dS )z(Return the buffer contents of the frame.zif context.eval_ctx.autoescape:zreturn Markup(concat(ú))úelse:zreturn concat(rB   N)r0   r1   rï   Úindentr™   ÚoutdentÚ
autoescape)r'   r*   rñ   s      r4   Úreturn_buffer_contentsz$CodeGenerator.return_buffer_contentsŠ  s  € ð ð 	ØŒ~Ô&ð Ø—’Ð@ÑAÔAÐAØ—’‘”�Ø—’ÐG°u´|ÐGÐGÐGÑHÔHÐHØ—’‘”�Ø—’˜wÑ'Ô'Ð'Ø—’‘”�Ø—’Ð?°´Ð?Ð?Ð?Ñ@Ô@Ð@Ø—’‘”�Ø�Ø”Ô*ð Ø—’ÐG°u´|ÐGÐGÐGÑHÔHÐHØ�Ø�ŠÐ7¨¬Ð7Ð7Ð7Ñ8Ô8Ð8Ð8Ð8r6   c                 ó&   — | xj         dz  c_         dS )zIndent by one.r
   N©râ   r¹   s    r4   rõ   zCodeGenerator.indentž  s   € àÐÔ˜QÑÐÔÐÐr6   r
   Ústepc                 ó&   — | xj         |z  c_         dS )zOutdent by step.Nrú   )r'   rû   s     r4   rö   zCodeGenerator.outdent¢  s   € àÐÔ˜TÑ!ÐÔÐÐr6   r)   c                 ó€   — |j         €|                      d|¦  «         dS |                      |j         › d�|¦  «         dS )z%Yield or write into the frame buffer.Núyield ú.append()r™   rï   )r'   r*   r)   s      r4   Ústart_writezCodeGenerator.start_write¦  sI   € àŒ<ÐØ�NŠN˜8 TÑ*Ô*Ð*Ð*Ð*à�NŠN˜eœlÐ4Ð4Ð4°dÑ;Ô;Ð;Ð;Ð;r6   c                 óB   — |j         �|                      d¦  «         dS dS )z1End the writing process started by `start_write`.NrB   )r™   rF   rð   s     r4   Ú	end_writezCodeGenerator.end_write­  s%   € àŒ<Ð#Ø�JŠJ�s‰OŒOˆOˆOˆOð $Ð#r6   Úsc                 ó†   — |                       ||¦  «         |                      |¦  «         |                      |¦  «         dS )z4Simple shortcut for start_write + write + end_write.N)r   rF   r  )r'   r  r*   r)   s       r4   Úsimple_writezCodeGenerator.simple_write²  sA   € ð 	×Ò˜ Ñ%Ô%Ð%Ø�
Š
�1‰ŒˆØ�Š�uÑÔÐÐÐr6   r   c                 óŠ   — 	 |                       d¦  «         |D ]}|                      ||¦  «         ŒdS # t          $ r Y dS w xY w)z•Visit a list of nodes as block in a frame.  If the current frame
        is no buffer a dummy ``if 0: yield None`` is written automatically.
        ÚpassN)rï   r2   rÒ   )r'   r   r*   r)   s       r4   Ú
blockvisitzCodeGenerator.blockvisitº  sk   € ð	Ø�NŠN˜6Ñ"Ô"Ð"Øð (ð (�Ø—
’
˜4 Ñ'Ô'Ð'Ð'ð(ð (øåð 	ð 	ð 	ØˆDˆDð	øøøs   ‚04 ´
AÁAÚxc                 óŒ  — | j         r¢| j        sk| j                             d| j         z  ¦  «         | xj        | j         z  c_        | j        �-| j                             | j        | j        f¦  «         d| _        d| _        | j                             d| j        z  ¦  «         d| _         | j                             |¦  «         dS )z&Write a string into the output stream.ú
NFz    r   )	rÞ   rà   rU   rF   rÛ   rÝ   rÜ   Úappendrâ   )r'   r	  s     r4   rF   zCodeGenerator.writeÅ  sÅ   € àŒ?ð 		 ØÔ$ð 2Ø”×!Ò! $¨¬Ñ"8Ñ9Ô9Ð9ØÐ Ô  D¤OÑ3Ð Ô ØÔ)Ð5Ø”O×*Ò*¨DÔ,BÀDÔDTÐ+UÑVÔVÐVØ-1�DÔ*Ø %ˆDÔØŒK×Ò˜f tÔ'8Ñ8Ñ9Ô9Ð9ØˆDŒOØŒ×Ò˜!ÑÔÐÐÐr6   r   Úextrac                 ó\   — |                       ||¦  «         |                      |¦  «         dS )z!Combination of newline and write.N)ÚnewlinerF   )r'   r	  r)   r  s       r4   rï   zCodeGenerator.writelineÓ  s+   € ð 	�Š�T˜5Ñ!Ô!Ð!Ø�
Š
�1‰Œˆˆˆr6   c                 óœ   — t          | j        d|z   ¦  «        | _        |�*|j        | j        k    r|j        | _        |j        | _        dS dS dS )z/Add one or more newlines before the next write.r
   N)ÚmaxrÞ   rè   rß   rÝ   )r'   r)   r  s      r4   r  zCodeGenerator.newlineÚ  sR   € å˜dœo¨q°5©yÑ9Ô9ˆŒØÐ ¤¨t¬Ò >Ð >Ø%)¤[ˆDÔ"Ø"œkˆDŒOˆOˆOð ÐÐ >Ð >r6   Úextra_kwargsc                 óì  — t          d„ t          d„ |j        D ¦   «         |pd¦  «        D ¦   «         ¦  «        }|j        D ]-}|                      d¦  «         |                      ||¦  «         Œ.|sl|j        D ]-}|                      d¦  «         |                      ||¦  «         Œ.|�5|                     ¦   «         D ] \  }}|                      d|› d|› �¦  «         Œ!|j        r0|                      d¦  «         |                      |j        |¦  «         |�r%|j        �|                      d¦  «         n|                      d	¦  «         |j        D ]O}|                      |j	        ›d
�¦  «         |                      |j
        |¦  «         |                      d¦  «         ŒP|�5|                     ¦   «         D ] \  }}|                      |›d
|› d�¦  «         Œ!|j        �G|                      d¦  «         |                      |j        |¦  «         |                      d¦  «         dS |                      d¦  «         dS |j        �2|                      d¦  «         |                      |j        |¦  «         dS dS )a+  Writes a function call to the stream for the current node.
        A leading comma is added automatically.  The extra keyword
        arguments may not include python keywords otherwise a syntax
        error could occur.  The extra keyword arguments should be given
        as python dict.
        c              3   ód   K  — | ]+}t          t          j        t          |¦  «        ¦  «        V — Œ,d S r.   )Úis_python_keywordr8   r:   rs   )re   rj   s     r4   rg   z*CodeGenerator.signature.<locals>.<genexpr>ï  sH   è è € ð 
ð 
àõ �aœf¥S¨!™nœnÑ-Ô-ð
ð 
ð 
ð 
ð 
ð 
r6   c              3   ó$   K  — | ]}|j         V — Œd S r.   )Úkey©re   r	  s     r4   rg   z*CodeGenerator.signature.<locals>.<genexpr>ñ  s$   è è € Ð7Ð7 a˜AœEÐ7Ð7Ð7Ð7Ð7Ð7r6   r‘   r?   Nú=z, *z
, **dict({z, **{ú: z}, **rB   Ú}z, **)Úanyr   r,   ÚargsrF   r2   rz   Údyn_argsÚ
dyn_kwargsr  r`   )	r'   r)   r*   r  Úkwarg_workaroundÚargÚkwargr  r`   s	            r4   Ú	signaturezCodeGenerator.signatureá  sº  € õ ð 
ð 
åÐ7Ð7¨4¬;Ð7Ñ7Ô7¸Ð9KÈÑLÔLð
ñ 
ô 
ñ 
ô 
Ðð
 ”9ð 	#ð 	#ˆCØ�JŠJ�tÑÔÐØ�JŠJ�s˜EÑ"Ô"Ð"Ð"àð 	3Øœð )ð )�Ø—
’
˜4Ñ Ô Ð Ø—
’
˜5 %Ñ(Ô(Ð(Ð(ØÐ'Ø".×"4Ò"4Ñ"6Ô"6ð 3ð 3‘J�C˜Ø—J’JÐ1 CÐ1Ð1¨%Ð1Ð1Ñ2Ô2Ð2Ð2ØŒ=ð 	-Ø�JŠJ�uÑÔÐØ�JŠJ�t”} eÑ,Ô,Ð,àñ 	/ØŒÐ*Ø—
’
˜<Ñ(Ô(Ð(Ð(à—
’
˜7Ñ#Ô#Ð#Øœð !ð !�Ø—
’
˜eœiÐ-Ð-Ð-Ñ.Ô.Ð.Ø—
’
˜5œ;¨Ñ.Ô.Ð.Ø—
’
˜4Ñ Ô Ð Ð ØÐ'Ø".×"4Ò"4Ñ"6Ô"6ð 6ð 6‘J�C˜Ø—J’J #Ð4Ð4¨5Ð4Ð4Ð4Ñ5Ô5Ð5Ð5ØŒÐ*Ø—
’
˜7Ñ#Ô#Ð#Ø—
’
˜4œ?¨EÑ2Ô2Ð2Ø—
’
˜3‘”���à—
’
˜3‘”���àŒ_Ð(Ø�JŠJ�vÑÔÐØ�JŠJ�t”¨Ñ.Ô.Ð.Ð.Ð.ð )Ð(r6   c           
      ó>  — t          ¦   «         }|D ]}|                     |¦  «         Œ| j        |j        df| j        |j        dffD �]T\  }}}t	          |¦  «        D �]<}||vr|                      ¦   «         ||<   |                      d¦  «         |                      ¦   «          |                      ||         › d|› d|›d�¦  «         |                      ¦   «          |                      d¦  «         |                      ¦   «          |                      d¦  «         |                      d	||         › d
�¦  «         |                      ¦   «          |                      d|dd…         › d|›d�¦  «         |                      ¦   «          |                      ¦   «          �Œ>�ŒVdS )aæ  Find all filter and test names used in the template and
        assign them to variables in the compiled namespace. Checking
        that the names are registered with the environment is done when
        compiling the Filter and Test nodes. If the node is in an If or
        CondExpr node, the check is done at runtime instead.

        .. versionchanged:: 3.0
            Filters and tests in If and CondExpr nodes are checked at
            runtime instead of compile time.
        r·   r¸   útry:z = environment.ú[ú]zexcept KeyError:z@internalcodeúdef z
(*unused):zraise TemplateRuntimeError("No Néÿÿÿÿú named z	 found."))	rµ   r2   r·   r¸   Úsortedrí   rï   rõ   rö   )r'   r   rJ   r)   Úid_mapr|   Ú
dependencyrS   s           r4   Úpull_dependencieszCodeGenerator.pull_dependencies  sÐ  € õ *Ñ+Ô+ˆàð 	 ð 	 ˆDØ�MŠM˜$ÑÔÐÐð Œ\˜7œ?¨IÐ6à”
Ø”Øðð*
ð 	ñ 	Ñ%ˆF�E˜:õ ˜u™œð ñ �Ø˜vÐ%Ð%Ø#'×#<Ò#<Ñ#>Ô#>�F˜4‘Lð —’˜vÑ&Ô&Ð&Ø—’‘”�Ø—’ &¨¤,ÐUÐU¸zÐUÐUÈDÐUÐUÐUÑVÔVÐVØ—’‘”�Ø—’Ð1Ñ2Ô2Ð2Ø—’‘”�Ø—’˜Ñ/Ô/Ð/Ø—’Ð> f¨T¤lÐ>Ð>Ð>Ñ?Ô?Ð?Ø—’‘”�Ø—’ð0°jÀÀ"À´oð 0ð 0Ø"ð0ð 0ð 0ñô ð ð —’‘”�Ø—’‘”�‘ñ)ð	ð 	r6   c           	      óð  — g }|j         j                             ¦   «         D ]¥\  }\  }}|t          k    rŒ|t          k    r1|                      |› d|                      ¦   «         › d|›d�¦  «         ŒP|t          k    r|                      |› d|› �¦  «         Œv|t          k    r| 	                    |¦  «         Œ—t          d¦  «        ‚|r-|                      d                     |¦  «        › d�¦  «         d S d S )Nú = r@   rB   zunknown load instructionú
 = missing)r—   Úloadsrz   r   r   rï   Úget_resolve_funcr   r   r  ÚNotImplementedErrorÚjoin)r'   r*   ÚundefsÚtargetÚactionÚparams         r4   Úenter_framezCodeGenerator.enter_frameH  s$  € ØˆØ',¤}Ô':×'@Ò'@Ñ'BÔ'Bð 
	Fð 
	FÑ#ˆF‘O�V˜UØÕ+Ò+Ð+ØØÕ+Ò+Ð+Ø—’ &ÐQÐQ¨T×-BÒ-BÑ-DÔ-DÐQÐQÀuÐQÐQÐQÑRÔRÐRÐRØ�>Ò)Ð)Ø—’ &Ð4Ð4¨UÐ4Ð4Ñ5Ô5Ð5Ð5ØÕ-Ò-Ð-Ø—’˜fÑ%Ô%Ð%Ð%å)Ð*DÑEÔEÐEØð 	>Ø�NŠN˜eŸjšj¨Ñ0Ô0Ð<Ð<Ð<Ñ=Ô=Ð=Ð=Ð=ð	>ð 	>r6   Úwith_python_scopec                 ó¸   — |sUg }|j         j        D ]}|                     |¦  «         Œ|r/|                      d                     |¦  «        › d�¦  «         d S d S d S )Nr0  r1  )r—   r2  r  rï   r5  )r'   r*   r;  r6  r7  s        r4   Úleave_framezCodeGenerator.leave_frameX  s‡   € Ø ð 	BØˆFØœ-Ô-ð &ð &�Ø—’˜fÑ%Ô%Ð%Ð%Øð BØ—’ %§*¢*¨VÑ"4Ô"4Ð@Ð@Ð@ÑAÔAÐAÐAÐAð	Bð 	BðBð Br6   úasync Ú Úasync_valueÚ
sync_valuec                 ó"   — | j         j        r|n|S r.   )rC   Úis_async)r'   r@  rA  s      r4   Úchoose_asynczCodeGenerator.choose_async`  s   € Ø"Ô.Ô7ÐGˆ{ˆ{¸ZÐGr6   c                 ó4   — |                       ¦   «         › d|› �S )Nr(  )rD  )r'   rS   s     r4   ÚfunczCodeGenerator.funcc  s"   € Ø×#Ò#Ñ%Ô%Ð1Ð1¨4Ð1Ð1Ð1r6   c           
      óP  — |                      ¦   «         }|j                             |¦  «         t          |¦  «        }d}t	          ¦   «         }g }t          |j        ¦  «        D ]g\  }}|j        dk    r|}|j        dv r|                     |j        ¦  «         | 	                    |j         
                    |j        ¦  «        ¦  «         Œht          |j        d¦  «        }	d|	v r…|�O	 |j        |t          |j        ¦  «        z
            nX# t          $ r |                      d|j        ¦  «         Y n1w xY w| 	                    |j                             d¦  «        ¦  «         d|_        d|	v r8d|vr4| 	                    |j                             d¦  «        ¦  «         d|_        d|	v r8d|vr4| 	                    |j                             d¦  «        ¦  «         d|_        d	|_        |j                             |¦  «         |                      |                      d
¦  «        › dd                     |¦  «        › d�|¦  «         |                      ¦   «          |                      |¦  «         |                      |¦  «         |                      |¦  «         t          |j        ¦  «        D �]\  }}|j         
                    |j        ¦  «        }
|                      d|
› d�¦  «         |                      ¦   «          	 |j        |t          |j        ¦  «        z
           }|                      |
› d�¦  «         |                      ||¦  «         n8# t          $ r+ |                      |
› d|j        ›d|j        ›d�¦  «         Y nw xY w|                      |
¦  «         |                       ¦   «          �Œ|  !                    ¦   «          |  "                    |j        |¦  «         |  #                    |d¬¦  «         |  $                    |d¬¦  «         |                       ¦   «          ||fS )z/Dump the function def of a macro or call block.NÚcaller)r,   Úvarargs)rH  r,   rI  zhWhen defining macros or call blocks the special "caller" argument must be omitted or be given a default.Tr,   rI  FÚmacror@   r?   ú):úif ú is missing:r0  z = undefined("parameter z was not provided", name=rB   )rñ   ©r;  )%r«   r—   Úanalyze_noderƒ   rv   Ú	enumerater  rS   r¼   r  Úrefr�   ÚbodyÚdefaultsÚlenÚ
IndexErrorrê   rè   Údeclare_parameterr†   r‡   rˆ   r˜   rï   rF  r5  rõ   r™   r:  Úpush_parameter_definitionsr2   Úmark_parameter_storedrö   Úpop_parameter_definitionsr  rø   r=  )r'   r)   r*   Ú	macro_refÚexplicit_callerÚskip_special_paramsr  Úidxr!  r€   rQ  Údefaults               r4   Ú
macro_bodyzCodeGenerator.macro_bodyf  sM  € ð —’‘”ˆØŒ×"Ò" 4Ñ(Ô(Ð(Ý˜T‘N”Nˆ	àˆÝ!™eœeÐØˆå! $¤)Ñ,Ô,ð 	5ð 	5‰HˆC�ØŒx˜8Ò#Ð#Ø"%�ØŒxÐ0Ð0Ð0Ø#×'Ò'¨¬Ñ1Ô1Ð1Ø�KŠK˜œ×)Ò)¨#¬(Ñ3Ô3Ñ4Ô4Ð4Ð4å$ T¤YÐ0OÑPÔPˆ
à�zÐ!Ð!ð Ð*ðØ”M /µC¸¼	±N´NÑ"BÔCÐCÐCøÝ!ð ð ð Ø—I’Ið1ð œñ	ô ð ð ð ðøøøð —’˜EœM×;Ò;¸HÑEÔEÑFÔFÐFØ(,ˆIÔ%Ø�zÐ!Ð! hÐ6IÐ&IÐ&IØ�KŠK˜œ×7Ò7¸ÑAÔAÑBÔBÐBØ(,ˆIÔ%Ø˜
Ð"Ð" yÐ8KÐ'KÐ'KØ�KŠK˜œ×7Ò7¸	ÑBÔBÑCÔCÐCØ)-ˆIÔ&ð &+ˆÔ"ØŒ×"Ò" 4Ñ(Ô(Ð(Ø�Š˜$Ÿ)š) GÑ,Ô,ÐBÐB¨t¯yªy¸©¬ÐBÐBÐBÀDÑIÔIÐIØ�Š‰Œˆà�Š�EÑÔÐØ×Ò˜ÑÔÐà×'Ò'¨Ñ.Ô.Ð.Ý! $¤)Ñ,Ô,ð 	ñ 	‰HˆC�Ø”-×#Ò# C¤HÑ-Ô-ˆCØ�NŠNÐ2 Ð2Ð2Ð2Ñ3Ô3Ð3Ø�KŠK‰MŒMˆMð	+Øœ-¨­c°$´)©n¬nÑ(<Ô=�ð —’ #˜{˜{˜{Ñ+Ô+Ð+Ø—
’
˜7 EÑ*Ô*Ð*Ð*øõ ð ð ð Ø—’Øð +ð +°C´Hð +ð +Ø œXð+ð +ð +ñô ð ð ð ðøøøð ×&Ò& sÑ+Ô+Ð+Ø�LŠL‰NŒNˆN‰NØ×&Ò&Ñ(Ô(Ð(à�Š˜œ	 5Ñ)Ô)Ð)Ø×#Ò# E¸4Ð#Ñ@Ô@Ð@Ø×Ò˜°$ÐÑ7Ô7Ð7Ø�Š‰Œˆà�iÐÐs$   Ã("D Ä%D3Ä2D3Ë?"MÍ2NÎNrZ  c                 ó0  — d                      d„ |j        j        D ¦   «         ¦  «        }t          |j        dd¦  «        }t	          |j        j        ¦  «        dk    r|dz  }|                      d|›d|› d	|j        ›d|j        ›d|j        ›d
�¦  «         dS )z<Dump the macro definition for the def created by macro_body.r?   c              3   ó>   K  — | ]}t          |j        ¦  «        V — Œd S r.   )ÚreprrS   r  s     r4   rg   z*CodeGenerator.macro_def.<locals>.<genexpr>»  s*   è è € ÐHÐH¨q�d 1¤6™lœlÐHÐHÐHÐHÐHÐHr6   rS   Nr
   ú,zMacro(environment, macro, z, (z), z, context.eval_ctx.autoescape))	r5  r)   r  ÚgetattrrT  rF   r‡   rˆ   r†   )r'   rZ  r*   Ú	arg_tuplerS   s        r4   Ú	macro_defzCodeGenerator.macro_def¹  sÚ   € à—I’IÐHÐH°I´NÔ4GÐHÑHÔHÑHÔHˆ	Ý�y”~ v¨tÑ4Ô4ˆÝˆyŒ~Ô"Ñ#Ô# qÒ(Ð(Ø˜ÑˆIØ�
Š
ðL¨ð Lð L°Ið Lð LØÔ)ðLð LØ/8Ô/IðLð LàÔ)ðLð Lð Lñ	
ô 	
ð 	
ð 	
ð 	
r6   c                 ó@   — d|j         › �}| j        �|› d| j        ›�}|S )z.Return a human readable position for the node.zline Nú in )rè   rS   )r'   r)   r¨   s      r4   ÚpositionzCodeGenerator.positionÅ  s3   € à"�T”[Ð"Ð"ˆØŒ9Ð ØÐ)Ð)˜DœIÐ)Ð)ˆBØˆ	r6   c                 óž   — d                      d„ |j                             ¦   «                              ¦   «         D ¦   «         ¦  «        }d|› d�S )Nr?   c              3   ó*   K  — | ]\  }}|›d |› �V — ŒdS ©r  Nr‘   )re   rS   r7  s      r4   rg   z3CodeGenerator.dump_local_context.<locals>.<genexpr>Í  sH   è è € ð 
ð 
á��fð Ð!Ð!˜Ð!Ð!ð
ð 
ð 
ð 
ð 
ð 
r6   Ú{r  )r5  r—   Údump_storesrz   )r'   r*   Úitems_kvs      r4   Údump_local_contextz CodeGenerator.dump_local_contextÌ  s^   € Ø—9’9ð 
ð 
à %¤× 9Ò 9Ñ ;Ô ;× AÒ AÑ CÔ Cð
ñ 
ô 
ñ 
ô 
ˆð !�HÐ Ð Ð Ð r6   c                 óØ   — |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         dS )z·Writes a common preamble that is used by root and block functions.
        Primarily this sets up common local helpers and enforces a generator
        through a dead branch.
        z$resolve = context.resolve_or_missingz!undefined = environment.undefinedzconcat = environment.concatzcond_expr_undefined = Undefinedzif 0: yield NoneN©rï   r¹   s    r4   Úwrite_commonszCodeGenerator.write_commonsÓ  sk   € ð
 	�ŠÐ=Ñ>Ô>Ð>Ø�ŠÐ:Ñ;Ô;Ð;Ø�ŠÐ4Ñ5Ô5Ð5ð 	�ŠÐ8Ñ9Ô9Ð9Ø�ŠÐ)Ñ*Ô*Ð*Ð*Ð*r6   c                 óh   — | j                              |j                             ¦   «         ¦  «         dS )aQ  Pushes all parameter targets from the given frame into a local
        stack that permits tracking of yet to be assigned parameters.  In
        particular this enables the optimization from `visit_Name` to skip
        undefined expressions for parameters in macros as macros can reference
        otherwise unbound parameters.
        N)rä   r  r—   Údump_param_targetsrð   s     r4   rW  z(CodeGenerator.push_parameter_definitionsà  s/   € ð 	Ô×$Ò$ U¤]×%EÒ%EÑ%GÔ%GÑHÔHÐHÐHÐHr6   c                 ó8   — | j                              ¦   «          dS )z+Pops the current parameter definitions set.N)rä   Úpopr¹   s    r4   rY  z'CodeGenerator.pop_parameter_definitionsé  s   € àÔ×!Ò!Ñ#Ô#Ð#Ð#Ð#r6   r7  c                 óX   — | j         r"| j         d                              |¦  «         dS dS )z€Marks a parameter in the current parameter definitions as stored.
        This will skip the enforced undefined checks.
        r)  N)rä   rÌ   ©r'   r7  s     r4   rX  z#CodeGenerator.mark_parameter_storedí  s;   € ð Ô ð 	6ØÔ! "Ô%×-Ò-¨fÑ5Ô5Ð5Ð5Ð5ð	6ð 	6r6   c                 ó:   — | j                              |¦  «         d S r.   )rå   r  ry  s     r4   Úpush_context_referencez$CodeGenerator.push_context_referenceô  s   € ØÔ%×,Ò,¨VÑ4Ô4Ð4Ð4Ð4r6   c                 ó8   — | j                              ¦   «          d S r.   )rå   rw  r¹   s    r4   Úpop_context_referencez#CodeGenerator.pop_context_reference÷  s   € ØÔ%×)Ò)Ñ+Ô+Ð+Ð+Ð+r6   c                 ó   — | j         d         S )Nr)  ©rå   r¹   s    r4   Úget_context_refzCodeGenerator.get_context_refú  s   € ØÔ,¨RÔ0Ð0r6   c                 ó6   — | j         d         }|dk    rdS |› d�S )Nr)  rÕ   Úresolvez.resolver  ry  s     r4   r3  zCodeGenerator.get_resolve_funcý  s.   € ØÔ.¨rÔ2ˆØ�YÒÐØ�9ØÐ"Ð"Ð"Ð"r6   c                 ó\   — |                       ¦   «         › d|                      |¦  «        › d�S )Nz	.derived(rB   )r€  rp  rð   s     r4   Úderive_contextzCodeGenerator.derive_context  s3   € Ø×&Ò&Ñ(Ô(ÐTÐT°4×3JÒ3JÈ5Ñ3QÔ3QÐTÐTÐTÐTr6   c                 ó2   — | j         sdS || j         d         v S )z4Checks if a given target is an undeclared parameter.Fr)  )rä   ry  s     r4   Úparameter_is_undeclaredz%CodeGenerator.parameter_is_undeclared  s%   € àÔ$ð 	Ø�5Ø˜Ô.¨rÔ2Ð2Ð2r6   c                 óR   — | j                              t          ¦   «         ¦  «         dS )z+Pushes a new layer for assignment tracking.N)rã   r  rv   r¹   s    r4   Úpush_assign_trackingz"CodeGenerator.push_assign_tracking  s#   € àÔ×!Ò!¥#¡%¤%Ñ(Ô(Ð(Ð(Ð(r6   c                 óz  — | j                              ¦   «         }|j        s|j        s|j        r|sdS d„ |D ¦   «         }t          |¦  «        dk    ršt          t          |¦  «        ¦  «        }|j         	                    |¦  «        }|j        r|  
                    d|›d|› �¦  «         dS |j        r|  
                    d|›d|› �¦  «         dS |  
                    d|›d|› �¦  «         nÄ|j        r|  
                    d¦  «         n2|j        r|  
                    d	¦  «         n|  
                    d
¦  «         t          |¦  «        D ]P\  }}|r|                      d¦  «         |j         	                    |¦  «        }|                      |›d|› �¦  «         ŒQ|                      d¦  «         |j        s€|j        s{|r{t          |¦  «        dk    r!|  
                    d|d         ›d�¦  «         dS d                     t          t          |¦  «        ¦  «        }|  
                    d|› d�¦  «         dS dS dS dS )zoPops the topmost level for assignment tracking and updates the
        context variables if necessary.
        Nc                 ó.   — g | ]}|d d…         dk    ¯|‘ŒS )Nr
   Ú_r‘   r  s     r4   ú
<listcomp>z5CodeGenerator.pop_assign_tracking.<locals>.<listcomp>  s%   € Ð8Ð8Ð8˜a¨1¨R¨a¨R¬5°Cª<¨<˜¨<¨<¨<r6   r
   z_loop_vars[ú] = z_block_vars[úcontext.vars[z_loop_vars.update({z_block_vars.update({úcontext.vars.update({r?   r  ú})úcontext.exported_vars.add(r   rB   zcontext.exported_vars.update((ró   )rã   rw  rž   r�   r›   rT  ÚnextÚiterr—   rQ  rï   rP  rF   r5  Úmaprb  )r'   r*   ÚvarsÚpublic_namesrS   rQ  r]  Ú	names_strs           r4   Úpop_assign_trackingz!CodeGenerator.pop_assign_tracking  s°  € ð Ô!×%Ò%Ñ'Ô'ˆàÔ!ð	àÔ$ð	ð ”Nð	ð ð		ð ˆFØ8Ð8 4Ð8Ñ8Ô8ˆÝˆt‰9Œ9˜Š>ˆ>Ý�˜T™
œ
Ñ#Ô#ˆDØ”-×#Ò# DÑ)Ô)ˆCØÔð Ø—’Ð>¨TÐ>Ð>¸Ð>Ð>Ñ?Ô?Ð?Ø�ØÔ ð Ø—’Ð?¨dÐ?Ð?¸#Ð?Ð?Ñ@Ô@Ð@Ø�Ø�NŠNÐ<¨4Ð<Ð<°sÐ<Ð<Ñ=Ô=Ð=Ð=àÔð 8Ø—’Ð4Ñ5Ô5Ð5Ð5ØÔ"ð 8Ø—’Ð5Ñ6Ô6Ð6Ð6à—’Ð6Ñ7Ô7Ð7Ý& t™_œ_ð /ð /‘	��TØð %Ø—J’J˜tÑ$Ô$Ð$Ø”m×'Ò'¨Ñ-Ô-�Ø—
’
˜dÐ-Ð-¨Ð-Ð-Ñ.Ô.Ð.Ð.Ø�JŠJ�tÑÔÐØÔ ð 	O¨Ô)9ð 	O¸lð 	OÝ�<Ñ Ô  AÒ%Ð%Ø—’ÐP¸LÈ¼OÐPÐPÐPÑQÔQÐQÐQÐQà ŸIšI¥c­$°Ñ&=Ô&=Ñ>Ô>�	Ø—’ÐMÀ	ÐMÐMÐMÑNÔNÐNÐNÐNð	Oð 	Oð 	Oð 	Oð 	Oð 	Or6   c           	      óà  — |�
J d¦   «         ‚t          | j        | j        ¦  «        }ddlm} ddlm} | j        j        rt          ||z   ¦  «        }nt          |¦  «        }|                      dd 	                    |¦  «        z   ¦  «         | j
        rdnd}|                     t          j        ¦  «        d u}|                     t          j        ¦  «        D ]C}	|	j        | j        v r$|                      d	|	j        ›d
�|	j        ¦  «         |	| j        |	j        <   ŒD|                     t          j        ¦  «        D ]Œ}
|
j        | j        vr||
j        }|                      ¦   «         x| j        |<   }d|v r8|                     dd¦  «        \  }}|                      d|› d|› d|› �¦  «         Œq|                      d|› d|› �¦  «         Œ�|                      d| j        ›�¦  «         |                      |                      d¦  «        › d|› d�d¬¦  «         |                      ¦   «          |                      ¦   «          t7          |¦  «        }dt9          |j        d¦  «        v r2|j                             d¦  «        }|                      |› d�¦  «         |j                              |¦  «         dx|_!        |_"        |o| j#         |_$        |r|                      d¦  «         |  %                    |¦  «         |  &                    |j        ¦  «         |  '                    |j        |¦  «         |  (                    |d¬¦  «         |  )                    ¦   «          |rÖ| j#        s)|                      ¦   «          |                      d¦  «         |                      ¦   «          | j        j        s|                      d¦  «         nR|                      d¦  «         |                      ¦   «          |                      d¦  «         |  )                    ¦   «          |  )                    d| j#         z   ¦  «         | j         *                    ¦   «         D �]©\  }}	|                      |                      d|z   ¦  «        › d|› d�|	d¦  «         |                      ¦   «          |                      ¦   «          t7          |¦  «        }d|_+        t9          |	j        d ¦  «        }d|v r2|j                             d¦  «        }|                      |› d�¦  «         d!|v r8|j                             d!¦  «        }|                      |› d"|›d#|› d$�¦  «         |j                              |	¦  «         ||_,        |                      d%¦  «         |  %                    |¦  «         |  &                    |	j        ¦  «         |  '                    |	j        |¦  «         |  (                    |d¬¦  «         |  )                    ¦   «          �Œ«d 	                    d&„ | j        D ¦   «         ¦  «        }|                      d'|› d(�d¬¦  «         d) 	                    d*„ | j-        D ¦   «         ¦  «        }|                      d+|›�¦  «         d S ),Nzno root frame allowedr
   )Úasync_exported)Úexportedzfrom jinja2.runtime import r?   r?  z, environment=environmentzblock z defined twiceú.zfrom z import z as zimport zname = Úrootz(context, missing=missingrK  )r  r'   r¹   z = TemplateReference(context)Tzparent_template = NonerN  úif parent_template is not None:z4yield from parent_template.root_render_func(context)z=async for event in parent_template.root_render_func(context):zyield eventÚblock_)r'   Úsuperr   z = context.super(z, block_rB   z_block_vars = {}c              3   ó$   K  — | ]}|›d |› �V — ŒdS )z: block_Nr‘   r  s     r4   rg   z/CodeGenerator.visit_Template.<locals>.<genexpr>¯  s0   è è € Ð!KÐ!K¸! QÐ"5Ð"5°!Ð"5Ð"5Ð!KÐ!KÐ!KÐ!KÐ!KÐ!Kr6   z
blocks = {r  ú&c              3   ó*   K  — | ]\  }}|› d |› �V — ŒdS )r  Nr‘   ri   s      r4   rg   z/CodeGenerator.visit_Template.<locals>.<genexpr>±  s0   è è € ÐGÐG©t¨q°! 1 
 
 q 
 
ÐGÐGÐGÐGÐGÐGr6   zdebug_info = ).r   rC   rS   Úruntimerš  r›  rC  r+  rï   r5  rV   Úfindr   ÚExtendsÚfind_allrÆ   rØ   rê   rè   ÚImportedNameÚ
importnamer×   rí   ÚrsplitrF  rõ   rs  r+   r�   rR  r—   rV  rO  r›   rœ   rÚ   r˜   r:  r.  r  r=  rö   rz   rž   rš   rÜ   )r'   r)   r*   r0   rš  r›  Úexported_namesÚenvenvÚhave_extendsrš   Úimport_ÚimpÚaliasÚmoduleÚobjrQ  rS   rž   r€   Úblocks_kv_strÚdebug_kv_strs                        r4   Úvisit_TemplatezCodeGenerator.visit_Template=  s¢  € ð ˆ}ˆ}Ð5‰}Œ}ˆ}Ý˜tÔ/°´Ñ;Ô;ˆà+Ð+Ð+Ð+Ð+Ð+Ø%Ð%Ð%Ð%Ð%Ð%àÔÔ$ð 	.Ý# H¨~Ñ$=Ñ>Ô>ˆNˆNå# HÑ-Ô-ˆNà�ŠÐ4°t·y²yÀÑ7PÔ7PÑPÑQÔQÐQð ”ÐG��Ð,Gˆð —y’y¥¤Ñ/Ô/°tÐ;ˆð —]’]¥5¤;Ñ/Ô/ð 	,ð 	,ˆEØŒz˜Tœ[Ð(Ð(Ø—	’	Ð? 5¤:Ð?Ð?Ð?ÀÄÑNÔNÐNØ&+ˆDŒK˜œ
Ñ#Ð#ð —}’}¥UÔ%7Ñ8Ô8ð 	?ð 	?ˆGØÔ!¨Ô)<Ð<Ð<ØÔ(�Ø37×3LÒ3LÑ3NÔ3NÐN�Ô# CÑ(¨5Ø˜#�:�:Ø"%§*¢*¨S°!Ñ"4Ô"4‘K�F˜CØ—N’NÐ#K¨6Ð#KÐ#K¸3Ð#KÐ#KÀEÐ#KÐ#KÑLÔLÐLÐLà—N’NÐ#=¨SÐ#=Ð#=°eÐ#=Ð#=Ñ>Ô>Ð>øð 	�ŠÐ. ¤Ð.Ð.Ñ/Ô/Ð/ð 	�ŠØ�yŠy˜Ñ Ô ÐEÐE¸6ÐEÐEÐEÈQð 	ñ 	
ô 	
ð 	
ð 	�Š‰ŒˆØ×ÒÑÔÐõ �h‘”ˆØ•_ T¤Y°	Ñ:Ô:Ð:Ð:Ø”-×1Ò1°&Ñ9Ô9ˆCØ�NŠN˜cÐ@Ð@Ð@ÑAÔAÐAØŒ×"Ò" 4Ñ(Ô(Ð(Ø+/Ð/ˆŒ˜œØ%1Ð%P¸$Ô:PÐ6PˆÔ"Øð 	5Ø�NŠNÐ3Ñ4Ô4Ð4Ø×Ò˜ÑÔÐØ×Ò˜tœyÑ)Ô)Ð)Ø�Š˜œ	 5Ñ)Ô)Ð)Ø×Ò˜°$ÐÑ7Ô7Ð7Ø�Š‰Œˆð ð 	;ØÔ)ð BØ—’‘”�Ø—’Ð@ÑAÔAÐAØ�KŠK‰MŒMˆMØÔ#Ô,ð Ø—’ÐUÑVÔVÐVÐVà—’ØSñô ð ð —’‘”�Ø—’˜}Ñ-Ô-Ð-Ø—’‘”�Ø�LŠL˜ $Ô"8Ð8Ñ9Ñ:Ô:Ð:ð  œ;×,Ò,Ñ.Ô.ð 	ñ 	‰KˆD�%Ø�NŠNØ—9’9˜X¨™_Ñ-Ô-ÐRÐRÈÐRÐRÐRØØñô ð ð
 �KŠK‰MŒMˆMØ×ÒÑ Ô Ð õ   ™/œ/ˆKØ&*ˆKÔ#Ý(¨¬Ð5FÑGÔGˆJØ˜Ð#Ð#Ø!Ô)×;Ò;¸FÑCÔC�Ø—’ #ÐDÐDÐDÑEÔEÐEØ˜*Ð$Ð$Ø!Ô)×;Ò;¸GÑDÔD�Ø—’ #ÐOÐO¸ÐOÐOÈÐOÐOÐOÑPÔPÐPØÔ×,Ò,¨UÑ3Ô3Ð3Ø $ˆKÔØ�NŠNÐ-Ñ.Ô.Ð.Ø×Ò˜[Ñ)Ô)Ð)Ø×"Ò" 5¤:Ñ.Ô.Ð.Ø�OŠO˜EœJ¨Ñ4Ô4Ð4Ø×Ò˜[¸DÐÑAÔAÐAØ�LŠL‰NŒNˆN‰NàŸ	š	Ð!KÐ!K¸t¼{Ð!KÑ!KÔ!KÑKÔKˆØ�ŠÐ6 ]Ð6Ð6Ð6¸aˆÑ@Ô@Ð@Ø—x’xÐGÐG°t´ÐGÑGÔGÑGÔGˆØ�ŠÐ7 |Ð7Ð7Ñ8Ô8Ð8Ð8Ð8r6   c                 óV  — d}|j         rB| j        rdS | j        dk    r.|                      d¦  «         |                      ¦   «          |dz  }|j        r|                      |¦  «        }n|                      ¦   «         }|j        rf|                      d|j	        ›d�|¦  «         |                      ¦   «          |                      d|j	        ›d�|¦  «         |  
                    ¦   «          | j        j        s*|j        €#|                      d	|j	        ›d
|› d�|¦  «         nt|                      |                      ¦   «         › d|j	        ›d
|› d�|¦  «         |                      ¦   «          |                      d|¦  «         |  
                    ¦   «          |  
                    |¦  «         dS )z.Call a block and register it for the template.r   Núif parent_template is None:r
   zif len(context.blocks[z]) <= 1:z+raise TemplateRuntimeError("Required block z not found")zyield from context.blocks[z][0](rB   zfor event in context.blocks[rK  Úevent)r›   rÚ   rÙ   rï   rõ   Úscopedr„  r€  ÚrequiredrS   rö   rC   rC  r™   rD  r  )r'   r)   r*   r”   rÕ   s        r4   rÁ   zCodeGenerator.visit_Block´  së  € àˆØŒ>ð 	ð Ô%ð Ø�ØÔ" QÒ&Ð&Ø—’Ð<Ñ=Ô=Ð=Ø—’‘”�Ø˜‘
�àŒ;ð 	-Ø×)Ò)¨%Ñ0Ô0ˆGˆGà×*Ò*Ñ,Ô,ˆGàŒ=ð 	Ø�NŠNÐI°D´IÐIÐIÐIÈ4ÑPÔPÐPØ�KŠK‰MŒMˆMØ�NŠNØW¸d¼iÐWÐWÐWØñô ð ð �LŠL‰NŒNˆNàÔÔ(ð 	¨U¬\Ð-AØ�NŠNØI¨T¬YÐIÐI¸wÐIÐIÐIÈ4ñô ð ð ð �NŠNØ×$Ò$Ñ&Ô&ð Að AØ#'¤9ðAð AØ5<ðAð Að Aàñô ð ð
 �KŠK‰MŒMˆMØ×Ò˜g uÑ-Ô-Ð-Ø�LŠL‰NŒNˆNà�Š�UÑÔÐÐÐr6   c                 óº  — |j         s|                      d|j        ¦  «         | j        dk    rn| j        s)|                      d¦  «         |                      ¦   «          |                      d¦  «         | j        rt          ¦   «         ‚|                      ¦   «          |                      d|¦  «         |  	                    |j
        |¦  «         |                      d| j        ›d�¦  «         |                      d¦  «         |                      ¦   «          |                      d	¦  «         |                      ¦   «          |j        rd
| _        | xj        dz  c_        dS )zCalls the extender.z,cannot use extend from a non top-level scoper   rž  z5raise TemplateRuntimeError("extended multiple times")z+parent_template = environment.get_template(r?   rB   z9for name, parent_block in parent_template.blocks.items():z8context.blocks.setdefault(name, []).append(parent_block)Tr
   N)r›   rê   rè   rÙ   rÚ   rï   rõ   rÒ   rö   r2   ÚtemplaterF   rS   rœ   ©r'   r)   r*   s      r4   Úvisit_ExtendszCodeGenerator.visit_Extendsß  sS  € àŒ~ð 	SØ�IŠIÐDÀdÄkÑRÔRÐRð
 Ô Ò"Ð"ð
 Ô)ð Ø—’Ð@ÑAÔAÐAØ—’‘”�Ø�NŠNÐRÑSÔSÐSð Ô%ð Ý"‘n”nÐ$à—’‘”�à�ŠÐDÀdÑKÔKÐKØ�
Š
�4”= %Ñ(Ô(Ð(Ø�
Š
Ð&˜œ	Ð&Ð&Ð&Ñ'Ô'Ð'Ø�ŠÐRÑSÔSÐSØ�Š‰ŒˆØ�ŠÐQÑRÔRÐRØ�Š‰Œˆð
 Œ?ð 	*Ø%)ˆDÔ"ð 	ÐÔ˜qÑ ÐÔÐÐr6   c                 ó*  — |j         r)|                      d¦  «         |                      ¦   «          d}t          |j        t
          j        ¦  «        rKt          |j        j        t          ¦  «        rd}nVt          |j        j        t          t          f¦  «        rd}n-t          |j        t
          j        t
          j        f¦  «        rd}|                      d|› d�|¦  «         |                      |j        |¦  «         |                      d| j        ›d�¦  «         |j         r�|                      ¦   «          |                      d	¦  «         |                      ¦   «          |                      d
¦  «         |                      ¦   «          |                      d¦  «         |                      ¦   «          d}|j        rA|                      |                      ¦   «         › d|                      |¦  «        › d�¦  «         n9| j        j        r|                      d¦  «         n|                      d¦  «         d}|s>|                      ¦   «          |                      d|¦  «         |                      ¦   «          |j         r|                      ¦   «          dS dS )zHandles includes.r%  Úget_or_select_templateÚget_templateÚselect_templateztemplate = environment.r@   r?   rB   zexcept TemplateNotFound:r  rô   FzUfor event in template.root_render_func(template.new_context(context.get_all(), True, z)):zGfor event in (await template._get_default_module_async())._body_stream:z6yield from template._get_default_module()._body_streamTr¸  N)Úignore_missingrï   rõ   rY   r¼  r   ÚConstr`   rs   rt   ru   ÚTupleÚListr2   rF   rS   rö   Úwith_contextrD  rp  rC   rC  r  )r'   r)   r*   Ú	func_nameÚskip_event_yields        r4   Úvisit_IncludezCodeGenerator.visit_Include	  s‚  € àÔð 	Ø�NŠN˜6Ñ"Ô"Ð"Ø�KŠK‰MŒMˆMà,ˆ	Ý�d”m¥U¤[Ñ1Ô1ð 	*Ý˜$œ-Ô-­sÑ3Ô3ð .Ø*�	�	Ý˜DœMÔ/µ%½°Ñ?Ô?ð .Ø-�	øÝ˜œ­¬µU´ZÐ'@ÑAÔAð 	*Ø)ˆIà�ŠÐ=°Ð=Ð=Ð=¸tÑDÔDÐDØ�
Š
�4”= %Ñ(Ô(Ð(Ø�
Š
Ð&˜œ	Ð&Ð&Ð&Ñ'Ô'Ð'ØÔð 	Ø�LŠL‰NŒNˆNØ�NŠNÐ5Ñ6Ô6Ð6Ø�KŠK‰MŒMˆMØ�NŠN˜6Ñ"Ô"Ð"Ø�LŠL‰NŒNˆNØ�NŠN˜7Ñ#Ô#Ð#Ø�KŠK‰MŒMˆMà ÐØÔð 	$Ø�NŠNØ×$Ò$Ñ&Ô&ð 8ð 8à×+Ò+¨EÑ2Ô2ð8ð 8ð 8ñô ð ð ð
 ÔÔ&ð 	$Ø�NŠNð!ñô ð ð ð
 �NŠNÐSÑTÔTÐTØ#Ðàð 	Ø�KŠK‰MŒMˆMØ×Ò˜g uÑ-Ô-Ð-Ø�LŠL‰NŒNˆNàÔð 	Ø�LŠL‰NŒNˆNˆNˆNð	ð 	r6   c                 óÄ  — |                       |                      d¦  «        › d�¦  «         |                      |j        |¦  «         |                       d| j        ›d�¦  «         |j        rHd|                      d¦  «        › �}|                       |› d|                      |¦  «        › d�¦  «         d S |                       d	|                      d¦  «        › d
�¦  «         d S )Núawait zenvironment.get_template(r?   z).Úmake_moduleÚ_asyncz(context.get_all(), True, rB   Ú_get_default_modulez	(context))rF   rD  r2   r¼  rS   rÇ  rp  )r'   r)   r*   Úf_names       r4   Ú_import_commonzCodeGenerator._import_common<  s   € ð 	�
Š
�d×'Ò'¨Ñ1Ô1ÐLÐLÐLÑMÔMÐMØ�
Š
�4”= %Ñ(Ô(Ð(Ø�
Š
Ð'˜œ	Ð'Ð'Ð'Ñ(Ô(Ð(àÔð 	UØ@ 4×#4Ò#4°XÑ#>Ô#>Ð@Ð@ˆFØ�JŠJØÐVÐV°T×5LÒ5LÈUÑ5SÔ5SÐVÐVÐVñô ð ð ð ð �JŠJÐS¨T×->Ò->¸xÑ-HÔ-HÐSÐSÐSÑTÔTÐTÐTÐTr6   c                 ón  — |                       |j                             |j        ¦  «        › d�|¦  «         |j        r|                      d|j        ›d�¦  «         |                      ||¦  «         |j        r:|j                             d¦  «        s"|                       d|j        ›d�¦  «         dS dS dS )zVisit regular imports.r0  rŽ  r�  r‹  úcontext.exported_vars.discard(rB   N)rï   r—   rQ  r7  r›   rF   rÑ  Ú
startswithr½  s      r4   Úvisit_ImportzCodeGenerator.visit_ImportK  sÒ   € à�Š˜%œ-×+Ò+¨D¬KÑ8Ô8Ð=Ð=Ð=¸tÑDÔDÐDØŒ>ð 	<Ø�JŠJÐ: t¤{Ð:Ð:Ð:Ñ;Ô;Ð;à×Ò˜D %Ñ(Ô(Ð(àŒ>ð 	N $¤+×"8Ò"8¸Ñ"=Ô"=ð 	NØ�NŠNÐL¸D¼KÐLÐLÐLÑMÔMÐMÐMÐMð	Nð 	Nð 	Nð 	Nr6   c           	      ó0  ‡— |                       |¦  «         |                      d¦  «         |                      |‰¦  «         g }g }|j        D �]C}t	          |t
          ¦  «        r|\  }}n|}|                      ‰j                             |¦  «        › d|›d�¦  «         |                      d‰j                             |¦  «        › d�¦  «         |  	                    ¦   «          d|  
                    |¦  «        › d|›�}|                      ‰j                             |¦  «        › d|›d	|›d
�¦  «         |                      ¦   «          ‰j        r?|                     |¦  «         |                     d¦  «        s|                     |¦  «         �ŒE|r‰t          |¦  «        dk    r<|d         }|                      d|›d‰j                             |¦  «        › �¦  «         n:d                     ˆfd„|D ¦   «         ¦  «        }|                      d|› d�¦  «         |rwt          |¦  «        dk    r!|                      d|d         ›d
�¦  «         dS d                     t#          t$          |¦  «        ¦  «        }	|                      d|	› d�¦  «         dS dS )zVisit named imports.zincluded_template = z = getattr(included_template, z
, missing)rL  rM  z9the template {included_template.__name__!r} (imported on z%) does not export the requested name z = undefined(fz, name=rB   r‹  r
   r   rŽ  r�  r?   c              3   óV   •K  — | ]#}|›d ‰j                              |¦  «        › �V — Œ$dS rl  )r—   rQ  )re   rS   r*   s     €r4   rg   z1CodeGenerator.visit_FromImport.<locals>.<genexpr>{  sR   øè è € ð %ð %Ø?C�tÐ:Ð: ¤×!2Ò!2°4Ñ!8Ô!8Ð:Ð:ð%ð %ð %ð %ð %ð %r6   r�  r�  rÓ  z)context.exported_vars.difference_update((ró   N)r  rF   rÑ  r|   rY   rt   rï   r—   rQ  rõ   ri  rö   r›   r  rÔ  rT  r5  r”  rb  )
r'   r)   r*   Ú	var_namesÚdiscarded_namesrS   r°  ÚmessageÚnames_kvr—  s
     `       r4   Úvisit_FromImportzCodeGenerator.visit_FromImportV  s  ø€ à�Š�TÑÔÐØ�
Š
Ð)Ñ*Ô*Ð*Ø×Ò˜D %Ñ(Ô(Ð(Øˆ	ØˆØ”Jð 	2ñ 	2ˆDÝ˜$¥Ñ&Ô&ð Ø"‘��e�eà�Ø�NŠNØ”=×$Ò$ UÑ+Ô+ð Bð BØ/3ðBð Bð Bñô ð ð �NŠNÐG ¤×!2Ò!2°5Ñ!9Ô!9ÐGÐGÐGÑHÔHÐHØ�KŠK‰MŒMˆMð@Ø!%§¢¨tÑ!4Ô!4ð@ð @à7;ð@ð @ð ð
 �NŠNØ”=×$Ò$ UÑ+Ô+ÐVÐV¸7ÐVÐVÈTÐVÐVÐVñô ð ð �LŠL‰NŒNˆNØŒ~ð 2Ø× Ò  Ñ'Ô'Ð'Ø×'Ò'¨Ñ,Ô,ð 2Ø#×*Ò*¨5Ñ1Ô1Ð1ùàð 	GÝ�9‰~Œ~ Ò"Ð"Ø  ”|�Ø—’ÐT¨tÐTÐT¸5¼=×;LÒ;LÈTÑ;RÔ;RÐTÐTÑUÔUÐUÐUàŸ9š9ð %ð %ð %ð %ØGPð%ñ %ô %ñ ô �ð —’ÐE¸ÐEÐEÐEÑFÔFÐFØð 	Ý�?Ñ#Ô# qÒ(Ð(Ø—’ÐWÀÐPQÔ@RÐWÐWÐWÑXÔXÐXÐXÐXà ŸIšI¥c­$°Ñ&@Ô&@ÑAÔA�	Ø—’ØMÀ	ÐMÐMÐMñô ð ð ð ð	ð 	r6   c                 óÒ  — |                      ¦   «         }d|_        |                      ¦   «         }|                      ¦   «         }|j        p[dt          |                     d¬¦  «        d¦  «        v p5t          d„ |                     t          j        ¦  «        D ¦   «         ¦  «        }d }|r|j	         
                    d¦  «        }|j	                             |d¬¦  «         |j        r|j	                             |d	¬¦  «         |j        �rð|                      ¦   «         }|j	                             |d
¬¦  «         |                      |                      |¦  «        › d�|j        ¦  «         |                      ¦   «          |                      |¦  «         |                      |                      dd¦  «        ¦  «         |                      |j        |¦  «         |                      d¦  «         |                      |                      dd¦  «        ¦  «         |                      d¦  «         |                      ¦   «          |                      d|j        ¦  «         |                      |j        |¦  «         |                      d¦  «         |                      ¦   «          |                      d¦  «         |                      |j        |¦  «         |                      d¦  «         |                      |d¬¦  «         |j        ra|                      |                      d¦  «        › d�|¦  «         |                      ¦   «          |                      |¦  «         |j        |_        |r|                      |› d�¦  «         |                     t          j        ¦  «        D ]3}	|	j        dk    r&|	j        dk    r|                      d|	j        ¦  «         Œ4|j        r,|                      ¦   «         }
|                      |
› d�¦  «         |                      |                      dd¦  «        |¦  «         |                      |j        |¦  «         |r0|                      d|› d|                      d¦  «        › d�¦  «         n|                      d¦  «         |j        r|                      |› d�¦  «         |j        r|                      d¦  «         na| j        j         r|s|                      d ¦  «         |                      |j!        |¦  «         | j        j         r|s|                      d!¦  «         |j        r|                      d!¦  «         |j        r|                      d"¦  «         n|                      |rd#nd¦  «         |                      ¦   «          |                      |¦  «         |                      d$¦  «         |  "                    |j#        |¦  «         |j        r|                      |
› d%�¦  «         |                      ¦   «          |                      ||j        o|j         ¬¦  «         |j        r†|                      d|
› d�¦  «         |                      ¦   «          |                      |¦  «         |  "                    |j        |¦  «         |                      |¦  «         |                      ¦   «          |j        rñ|  $                    |¦  «         |                      ¦   «          |  %                    ||¦  «         |                      |                      d&¦  «        › d'�¦  «         | j        j         r|                      d ¦  «         |                      |j!        |¦  «         | j        j         r|                      d!¦  «         |                      d(¦  «         |  &                    |¦  «         | j'        r,| j'        d)          (                    |j	        j)        ¦  «         d S d S )*NTÚloop)rR  )Úonly)rÞ  c              3   ó$   K  — | ]}|j         V — Œd S r.   )r¹  )re   rš   s     r4   rg   z*CodeGenerator.visit_For.<locals>.<genexpr>•  s$   è è € ÐHÐH E�5”<ÐHÐHÐHÐHÐHÐHr6   rR  )Ú
for_branchÚelseÚtestz(fiter):z
async for zfor rh  zauto_aiter(fiter)Úfiterú:rL  rþ   é   rN  z%(reciter, loop_render_func, depth=0):r1  Ústorez8Can't assign to special loop variable in for-loop targetz = 1r?   ÚAsynczLoopContext(r@   Úreciterzauto_aiter(rB   z&, undefined, loop_render_func, depth):z, undefined):z_loop_vars = {}z = 0rÌ  zloop(z, loop)r)  )*r«   r�   Ú	recursiver�   Úiter_child_nodesr  r§  r   rÆ   r—   rV  rO  Úelse_rã  rí   rï   rF  rõ   r:  rD  r2   r7  rF   rö   r=  r™   rÐ   rË   rS   rê   rè   rC   rC  r“  r  rR  rø   r   r  rã   Údifference_updateÚstores)r'   r)   r*   r�   Ú
test_frameÚ
else_frameÚextended_loopÚloop_refÚloop_filter_funcrS   Úiteration_indicators              r4   Ú	visit_ForzCodeGenerator.visit_Forˆ  s   € Ø—[’[‘]”]ˆ
Ø $ˆ
ÔØ—[’[‘]”]ˆ
Ø—[’[‘]”]ˆ
ð ŒNð IØÝ˜t×4Ò4¸)Ð4ÑDÔDÀiÑPÔPðQðIõ ÐHÐH¨T¯]ª]½5¼;Ñ-GÔ-GÐHÑHÔHÑHÔHð	 	ð ˆØð 	DØ!Ô)×;Ò;¸FÑCÔCˆHàÔ×'Ò'¨¸Ð'Ñ@Ô@Ð@ØŒ:ð 	EØÔ×+Ò+¨D¸VÐ+ÑDÔDÐDàŒ9ñ 	AØ#×8Ò8Ñ:Ô:ÐØÔ×+Ò+¨D¸VÐ+ÑDÔDÐDØ�NŠN˜dŸišiÐ(8Ñ9Ô9ÐCÐCÐCÀTÄYÑOÔOÐOØ�KŠK‰MŒMˆMØ×Ò˜ZÑ(Ô(Ð(Ø�NŠN˜4×,Ò,¨\¸6ÑBÔBÑCÔCÐCØ�JŠJ�t”{ JÑ/Ô/Ð/Ø�JŠJ�vÑÔÐØ�JŠJ�t×(Ò(Ð)<¸gÑFÔFÑGÔGÐGØ�JŠJ�s‰OŒOˆOØ�KŠK‰MŒMˆMØ�NŠN˜5 $¤)Ñ,Ô,Ð,Ø�JŠJ�t”y *Ñ-Ô-Ð-Ø�JŠJ�s‰OŒOˆOØ�KŠK‰MŒMˆMØ�NŠN˜8Ñ$Ô$Ð$Ø�JŠJ�t”{ JÑ/Ô/Ð/Ø�LŠL˜‰OŒOˆOØ×Ò˜Z¸4ÐÑ@Ô@Ð@ð
 Œ>ð 	2Ø�NŠNØ—9’9˜VÑ$Ô$ÐKÐKÐKÈTñô ð ð �KŠK‰MŒMˆMØ�KŠK˜
Ñ#Ô#Ð#ð !+Ô 1ˆJÔð ð 	4Ø�NŠN˜hÐ2Ð2Ð2Ñ3Ô3Ð3à—M’M¥%¤*Ñ-Ô-ð 	ð 	ˆDØŒx˜7Ò"Ð" t¤y°FÒ':Ð':Ø—	’	ØNØ”Kñô ð øð
 Œ:ð 	9Ø"&×";Ò";Ñ"=Ô"=ÐØ�NŠNÐ1Ð7Ð7Ð7Ñ8Ô8Ð8à�Š�t×(Ò(¨°vÑ>Ô>ÀÑEÔEÐEØ�
Š
�4”; 
Ñ+Ô+Ð+Øð 	Ø�JŠJÐR˜HÐRÐR¨$×*;Ò*;¸GÑ*DÔ*DÐRÐRÐRÑSÔSÐSÐSà�JŠJ�vÑÔÐàŒ9ð 	/Ø�JŠJÐ*Ð-Ð-Ð-Ñ.Ô.Ð.ØŒ>ð 	 Ø�JŠJ�yÑ!Ô!Ð!Ð!àÔÔ(ð *°ð *Ø—
’
˜=Ñ)Ô)Ð)Ø�JŠJ�t”y %Ñ(Ô(Ð(ØÔÔ(ð  °ð  Ø—
’
˜3‘”�ØŒ9ð 	Ø�JŠJ�s‰OŒOˆOàŒ>ð 	BØ�JŠJÐ?Ñ@Ô@Ð@Ð@à�JŠJ¨-Ð@��¸SÑAÔAÐAà�Š‰ŒˆØ×Ò˜Ñ$Ô$Ð$à�ŠÐ(Ñ)Ô)Ð)Ø�Š˜œ	 :Ñ.Ô.Ð.ØŒ:ð 	9Ø�NŠNÐ1Ð7Ð7Ð7Ñ8Ô8Ð8Ø�Š‰ŒˆØ×ÒØ¨$¬.Ð*KÀÄ¸^ð 	ñ 	
ô 	
ð 	
ð Œ:ð 	Ø�NŠNÐ7Ð!4Ð7Ð7Ð7Ñ8Ô8Ð8Ø�KŠK‰MŒMˆMØ×Ò˜ZÑ(Ô(Ð(Ø�OŠO˜DœJ¨
Ñ3Ô3Ð3Ø×Ò˜ZÑ(Ô(Ð(Ø�LŠL‰NŒNˆNð Œ>ð 	"Ø×'Ò'¨
Ñ3Ô3Ð3Ø�LŠL‰NŒNˆNØ×Ò˜U DÑ)Ô)Ð)Ø�JŠJ˜$×+Ò+¨HÑ5Ô5Ð<Ð<Ð<Ñ=Ô=Ð=ØÔÔ(ð *Ø—
’
˜=Ñ)Ô)Ð)Ø�JŠJ�t”y %Ñ(Ô(Ð(ØÔÔ(ð  Ø—
’
˜3‘”�Ø�JŠJ�yÑ!Ô!Ð!Ø�NŠN˜5Ñ!Ô!Ð!ð Ôð 	PØÔ˜rÔ"×4Ò4°ZÔ5GÔ5NÑOÔOÐOÐOÐOð	Pð 	Pr6   c                 ó(  — |                      ¦   «         }|                      d|¦  «         |                      |j        |¦  «         |                      d¦  «         |                      ¦   «          |                      |j        |¦  «         |                      ¦   «          |j	        D ]‹}|                      d|¦  «         |                      |j        |¦  «         |                      d¦  «         |                      ¦   «          |                      |j        |¦  «         |                      ¦   «          ŒŒ|j
        rZ|                      d¦  «         |                      ¦   «          |                      |j
        |¦  «         |                      ¦   «          d S d S )NrL  rå  zelif rô   )r­   rï   r2   rã  rF   rõ   r  rR  rö   Úelif_rì  )r'   r)   r*   Úif_framer÷  s        r4   Úvisit_IfzCodeGenerator.visit_If  sN  € Ø—:’:‘<”<ˆØ�Š�u˜dÑ#Ô#Ð#Ø�
Š
�4”9˜hÑ'Ô'Ð'Ø�
Š
�3‰ŒˆØ�Š‰ŒˆØ�Š˜œ	 8Ñ,Ô,Ð,Ø�Š‰ŒˆØ”Zð 	ð 	ˆEØ�NŠN˜7 EÑ*Ô*Ð*Ø�JŠJ�u”z 8Ñ,Ô,Ð,Ø�JŠJ�s‰OŒOˆOØ�KŠK‰MŒMˆMØ�OŠO˜EœJ¨Ñ1Ô1Ð1Ø�LŠL‰NŒNˆNˆNØŒ:ð 	Ø�NŠN˜7Ñ#Ô#Ð#Ø�KŠK‰MŒMˆMØ�OŠO˜DœJ¨Ñ1Ô1Ð1Ø�LŠL‰NŒNˆNˆNˆNð		ð 	r6   c                 ó°  — |                       ||¦  «        \  }}|                      ¦   «          |j        rV|j                             d¦  «        s|                      d|j        ›d�¦  «         |                      d|j        ›d�¦  «         |                      |j                             |j        ¦  «        › d�¦  «         |  	                    ||¦  «         d S )Nr‹  r‘  rB   rŽ  r�  r0  )
r_  r  r›   rS   rÔ  rF   rï   r—   rQ  rf  )r'   r)   r*   Úmacro_framerZ  s        r4   Úvisit_MacrozCodeGenerator.visit_Macro(  sÑ   € Ø!%§¢°°uÑ!=Ô!=Ñˆ�YØ�Š‰ŒˆØŒ>ð 	>Ø”9×'Ò'¨Ñ,Ô,ð HØ—
’
ÐF¸¼	ÐFÐFÐFÑGÔGÐGØ�NŠNÐ<¨4¬9Ð<Ð<Ð<Ñ=Ô=Ð=Ø�
Š
�e”m×'Ò'¨¬	Ñ2Ô2Ð7Ð7Ð7Ñ8Ô8Ð8Ø�Š�y +Ñ.Ô.Ð.Ð.Ð.r6   c                 ó  — |                       ||¦  «        \  }}|                      d¦  «         |                      ||¦  «         |                      ||¦  «         |                      |j        |d¬¦  «         |                      |¦  «         d S )Nz	caller = T)Úforward_caller)r_  rï   rf  r   Ú
visit_CallÚcallr  )r'   r)   r*   Ú
call_framerZ  s        r4   Úvisit_CallBlockzCodeGenerator.visit_CallBlock2  sˆ   € Ø $§¢°°eÑ <Ô <Ñˆ
�IØ�Š�{Ñ#Ô#Ð#Ø�Š�y *Ñ-Ô-Ð-Ø×Ò˜ Ñ%Ô%Ð%Ø�Š˜œ	 5¸ˆÑ>Ô>Ð>Ø�Š�uÑÔÐÐÐr6   c                 ó¢  — |                      ¦   «         }|j                             |¦  «         |                      |¦  «         |                      |¦  «         |                      |j        |¦  «         |                      ||¦  «         |                      |j	        |¦  «         |  
                    |¦  «         |                      |¦  «         d S r.   )r«   r—   rO  r:  r™   r  rR  r   r½   Úfilterr  r=  )r'   r)   r*   Úfilter_frames       r4   Úvisit_FilterBlockzCodeGenerator.visit_FilterBlock:  s¼   € Ø—{’{‘}”}ˆØÔ×)Ò)¨$Ñ/Ô/Ð/Ø×Ò˜Ñ&Ô&Ð&Ø�Š�LÑ!Ô!Ð!Ø�Š˜œ	 <Ñ0Ô0Ð0Ø×Ò˜ Ñ%Ô%Ð%Ø×Ò˜$œ+ |Ñ4Ô4Ð4Ø�Š�uÑÔÐØ×Ò˜Ñ&Ô&Ð&Ð&Ð&r6   c                 óÖ  — |                      ¦   «         }|j                             |¦  «         |                      |¦  «         t	          |j        |j        ¦  «        D ]Z\  }}|                      ¦   «          |                      ||¦  «         |  	                    d¦  «         |                      ||¦  «         Œ[|  
                    |j        |¦  «         |                      |¦  «         d S ©Nr0  )r«   r—   rO  r:  ÚzipÚtargetsÚvaluesr  r2   rF   r  rR  r=  )r'   r)   r*   Ú
with_framer7  Úexprs         r4   Ú
visit_WithzCodeGenerator.visit_WithE  sÕ   € Ø—[’[‘]”]ˆ
ØÔ×'Ò'¨Ñ-Ô-Ð-Ø×Ò˜Ñ$Ô$Ð$Ý ¤¨d¬kÑ:Ô:ð 	$ð 	$‰LˆF�DØ�LŠL‰NŒNˆNØ�JŠJ�v˜zÑ*Ô*Ð*Ø�JŠJ�uÑÔÐØ�JŠJ�t˜UÑ#Ô#Ð#Ð#Ø�Š˜œ	 :Ñ.Ô.Ð.Ø×Ò˜Ñ$Ô$Ð$Ð$Ð$r6   c                 óf   — |                       |¦  «         |                      |j        |¦  «         d S r.   )r  r2   r)   r½  s      r4   Úvisit_ExprStmtzCodeGenerator.visit_ExprStmtQ  s0   € Ø�Š�TÑÔÐØ�
Š
�4”9˜eÑ$Ô$Ð$Ð$Ð$r6   c                   ój   — e Zd ZU ej        ej        def                  ed<   ej        e         ed<   dS )úCodeGenerator._FinalizeInfo.ÚconstÚsrcN)r‹   rŒ   r�   r8   r°   ÚCallablers   Ú__annotations__r‘   r6   r4   Ú_FinalizeInfor  U  sB   € € € € € € ØŒz˜!œ* S¨# XÔ.Ô/Ð/Ð/Ñ/ØŒZ˜Œ_ÐÐÑÐÐr6   r  r`   c                 ó    — t          | ¦  «        S )z¼The default finalize function if the environment isn't
        configured with one. Or, if the environment has one, this is
        called on that function's output for constants.
        )rs   r{   s    r4   Ú_default_finalizezCodeGenerator._default_finalizeY  s   € õ �5‰zŒzÐr6   Ú	_finalizec                 óê  ‡ ‡‡— ‰ j         �‰ j         S ‰ j        x}Šd}‰ j        j        rªd}‰ j        j        Št          j        dt          j        dt          j        di                     t	          j        ‰¦  «        ¦  «        }d}|€ dt          j
        dt          j
        fˆˆfd„}n-|› |› d	�}|dk    r dt          j
        dt          j
        fˆˆˆ fd
„}‰                      ||¦  «        ‰ _         ‰ j         S )a‰  Build the finalize function to be used on constants and at
        runtime. Cached so it's only created once for all output nodes.

        Returns a ``namedtuple`` with the following attributes:

        ``const``
            A function to finalize constant data at compile time.

        ``src``
            Source code to output around nodes to be evaluated at
            runtime.
        Nzenvironment.finalize(rÕ   úcontext.eval_ctxrC   r`   r%   c                 ó,   •—  ‰ ‰| ¦  «        ¦  «        S r.   r‘   )r`   r^  Úenv_finalizes    €€r4   Úfinalizez.CodeGenerator._make_finalize.<locals>.finalize…  s   ø€ Ø"˜7 < <°Ñ#6Ô#6Ñ7Ô7Ð7r6   r?   c                 ó8   •—  ‰ ‰‰j         | ¦  «        ¦  «        S r.   )rC   )r`   r^  r  r'   s    €€€r4   r  z.CodeGenerator._make_finalize.<locals>.finalize�  s"   ø€ Ø&˜w | |°DÔ4DÀeÑ'LÔ'LÑMÔMÐMr6   )r  r  rC   r  r   rÕ   Úeval_contextÚgetÚfrom_objr8   r9   r  )r'   r  r  Úpass_argr^  r  s   `   @@r4   Ú_make_finalizezCodeGenerator._make_finalizec  sX  øøø€ ð Œ>Ð%Ø”>Ð!ð "Ô3Ð3ˆ�7ØˆàÔÔ$ð 	NØ)ˆCØÔ+Ô4ˆLåÔ  )ÝÔ%Ð'9ÝÔ$ mð÷ ŠcÝÔ! ,Ñ/Ô/ñô ð	 ð ˆHàÐð8¥A¤Eð 8­a¬eð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð Ð*˜hÐ*Ð*Ð*�à˜}Ò,Ð,ðN­¬ð Nµ!´%ð Nð Nð Nð Nð Nð Nð Nð Nð ×+Ò+¨H°cÑ:Ô:ˆŒØŒ~Ðr6   Úgroupc                 ó:   — t          t          |¦  «        ¦  «        S )z™Given a group of constant values converted from ``Output``
        child nodes, produce a string to write to the template module
        source.
        )rb  r   )r'   r&  s     r4   Ú_output_const_reprz CodeGenerator._output_const_repr“  s   € õ
 •F˜5‘M”MÑ"Ô"Ð"r6   r  c                 óè   — |                      |j        ¦  «        }|j        j        rt          |¦  «        }t	          |t
          j        ¦  «        rt          |¦  «        S |                     |¦  «        S )aC  Try to optimize a child of an ``Output`` node by trying to
        convert it to constant, finalized data at compile time.

        If :exc:`Impossible` is raised, the node is not constant and
        will be evaluated at runtime. Any other exception will also be
        evaluated at runtime for easier debugging.
        )	Úas_constr0   r÷   r   rY   r   ÚTemplateDatars   r  )r'   r)   r*   r  r  s        r4   Ú_output_child_to_constz$CodeGenerator._output_child_to_constš  sd   € ð —’˜eœnÑ-Ô-ˆàŒ>Ô$ð 	"Ý˜5‘M”MˆEõ �d�EÔ.Ñ/Ô/ð 	Ý�u‘:”:Ðà�~Š~˜eÑ$Ô$Ð$r6   c                 óþ   — |j         j        r|                      d¦  «         n7|j         j        r|                      d¦  «         n|                      d¦  «         |j        �|                      |j        ¦  «         dS dS )zXOutput extra source code before visiting a child of an
        ``Output`` node.
        z1(escape if context.eval_ctx.autoescape else str)(zescape(zstr(N)r0   r1   rF   r÷   r  ©r'   r)   r*   r  s       r4   Ú_output_child_prezCodeGenerator._output_child_pre¯  s…   € ð Œ>Ô"ð 	Ø�JŠJÐJÑKÔKÐKÐKØŒ^Ô&ð 	Ø�JŠJ�yÑ!Ô!Ð!Ð!à�JŠJ�vÑÔÐàŒ<Ð#Ø�JŠJ�x”|Ñ$Ô$Ð$Ð$Ð$ð $Ð#r6   c                 ól   — |                       d¦  «         |j        �|                       d¦  «         dS dS )zWOutput extra source code after visiting a child of an
        ``Output`` node.
        rB   N)rF   r  r.  s       r4   Ú_output_child_postz CodeGenerator._output_child_post¿  s6   € ð 	�
Š
�3‰ŒˆàŒ<Ð#Ø�JŠJ�s‰OŒOˆOˆOˆOð $Ð#r6   c                 óÞ  — |j         r2| j        rd S |                      d¦  «         |                      ¦   «          |                      ¦   «         }g }|j        D ]Ï}	 |j        s-t          |t
          j        ¦  «        st          j	        ¦   «         ‚|  
                    |||¦  «        }n1# t
          j	        t          f$ r |                     |¦  «         Y Œ|w xY w|r7t          |d         t          ¦  «        r|d                              |¦  «         Œ¹|                     |g¦  «         ŒÐ|j        �bt          |¦  «        dk    r|                      |j        › d�¦  «         n|                      |j        › d�¦  «         |                      ¦   «          |D ]ø}t          |t          ¦  «        rN|                      |¦  «        }|j        €|                      d|z   ¦  «         ŒL|                      |dz   ¦  «         Œe|j        €|                      d|¦  «         n|                      |¦  «         |                      |||¦  «         |                      ||¦  «         |                      |||¦  «         |j        �|                      d¦  «         Œù|j        �>|                      ¦   «          |                      t          |¦  «        dk    rdnd	¦  «         |j         r|                      ¦   «          d S d S )
Nr·  r)  r
   rÿ   z	.extend((rþ   rc  rB   ró   )r˜   rÚ   rï   rõ   r%  r   r  rY   r+  Ú
Impossibler,  Ú	Exceptionr  ru   r™   rT  r(  r  r/  r2   r1  rF   rö   )	r'   r)   r*   r  rR  Úchildr  ÚitemÚvals	            r4   Úvisit_OutputzCodeGenerator.visit_OutputÊ  s   € àÔ%ð 	àÔ%ð Ø�à�NŠNÐ8Ñ9Ô9Ð9Ø�KŠK‰MŒMˆMà×&Ò&Ñ(Ô(ˆØ;=ˆð
 ”Zð 	%ð 	%ˆEðð ”Nð-õ " %­Ô);Ñ<Ô<ð-õ  Ô*Ñ,Ô,Ð,à×3Ò3°E¸5À(ÑKÔK��øÝÔ$¥iÐ0ð ð ð ð —’˜EÑ"Ô"Ð"Ø�ðøøøð ð %�
 4¨¤8­TÑ2Ô2ð %Ø�R”—’ Ñ&Ô&Ð&Ð&à—’˜U˜GÑ$Ô$Ð$Ð$àŒ<Ð#Ý�4‰yŒy˜AŠ~ˆ~Ø—’ %¤,Ð8Ð8Ð8Ñ9Ô9Ð9Ð9à—’ %¤,Ð9Ð9Ð9Ñ:Ô:Ð:à�KŠK‰MŒMˆMàð 	$ð 	$ˆDÝ˜$¥Ñ%Ô%ð $à×-Ò-¨dÑ3Ô3�à”<Ð'Ø—N’N 8¨c¡>Ñ2Ô2Ð2Ð2à—N’N 3¨¡9Ñ-Ô-Ð-Ð-à”<Ð'Ø—N’N 8¨TÑ2Ô2Ð2Ð2à—L’L Ñ&Ô&Ð&ð ×&Ò& t¨U°HÑ=Ô=Ð=Ø—
’
˜4 Ñ'Ô'Ð'Ø×'Ò'¨¨e°XÑ>Ô>Ð>à”<Ð+Ø—J’J˜s‘O”O�OøàŒ<Ð#Ø�LŠL‰NŒNˆNØ�NŠN¥# d¡)¤)¨q¢. .˜3˜3°dÑ;Ô;Ð;àÔ%ð 	Ø�LŠL‰NŒNˆNˆNˆNð	ð 	s   ÁAB&Â&+CÃCc                 ó  — |                       ¦   «          |                      |¦  «         |                      |j        |¦  «         |                      d¦  «         |                      |j        |¦  «         |                      |¦  «         d S r  )rˆ  r  r2   r7  rF   r)   r˜  r½  s      r4   Úvisit_AssignzCodeGenerator.visit_Assign  s~   € Ø×!Ò!Ñ#Ô#Ð#Ø�Š�TÑÔÐØ�
Š
�4”; Ñ&Ô&Ð&Ø�
Š
�5ÑÔÐØ�
Š
�4”9˜eÑ$Ô$Ð$Ø× Ò  Ñ'Ô'Ð'Ð'Ð'r6   c                 ó¬  — |                       ¦   «          |                     ¦   «         }d|_        |j                             |¦  «         |                      |¦  «         |                      |¦  «         |                      |j        |¦  «         |  	                    |¦  «         |  
                    |j        |¦  «         |                      d¦  «         |j        �|                      |j        |¦  «         n|                      d|j        › d�¦  «         |                      d¦  «         |                      |¦  «         |                      |¦  «         d S )NFz9 = (Markup if context.eval_ctx.autoescape else identity)(úconcat(rB   )rˆ  r«   r˜   r—   rO  r:  r™   r  rR  r  r2   r7  rF   r  r½   r˜  r=  )r'   r)   r*   rž   s       r4   Úvisit_AssignBlockzCodeGenerator.visit_AssignBlock!  s:  € Ø×!Ò!Ñ#Ô#Ð#Ø—k’k‘m”mˆð ,1ˆÔ(ØÔ×(Ò(¨Ñ.Ô.Ð.Ø×Ò˜Ñ%Ô%Ð%Ø�Š�KÑ Ô Ð Ø�Š˜œ	 ;Ñ/Ô/Ð/Ø�Š�TÑÔÐØ�
Š
�4”; Ñ&Ô&Ð&Ø�
Š
ÐNÑOÔOÐOØŒ;Ð"Ø×Ò˜dœk¨;Ñ7Ô7Ð7Ð7à�JŠJÐ6 Ô!3Ð6Ð6Ð6Ñ7Ô7Ð7Ø�
Š
�3‰ŒˆØ× Ò  Ñ'Ô'Ð'Ø×Ò˜Ñ%Ô%Ð%Ð%Ð%r6   c           	      óì  — |j         dk    rA|j        s|j        s|j        r,| j        r%| j        d                              |j        ¦  «         |j                             |j        ¦  «        }|j         dk    rh|j         	                    |¦  «        }|�&|d         t          k    r|                      |¦  «        r&|                      d|j        ›d|› d|› d�¦  «         d S |                      |¦  «         d S )	Nrç  r)  rÊ   r   z(undefined(name=z) if z is missing else rB   )rË   r›   r�   rž   rã   r¼   rS   r—   rQ  Ú	find_loadr   r†  rF   )r'   r)   r*   rQ  rÊ   s        r4   rÍ   zCodeGenerator.visit_Name9  s  € ØŒ8�wÒÐØŒNð Ø#Ô.ð Ø27Ô2Cð ð Ô!ð 6ØÔ" 2Ô&×*Ò*¨4¬9Ñ5Ô5Ð5ØŒm×Ò ¤	Ñ*Ô*ˆð
 Œ8�vÒÐØ”=×*Ò*¨3Ñ/Ô/ˆDàÐ Ø˜”GÕ1Ò1Ð1Ø×4Ò4°SÑ9Ô9ð 2ð —
’
ØU t¤yÐUÐU¸ÐUÐUÈsÐUÐUÐUñô ð ð �à�
Š
�3‰Œˆˆˆr6   c                 ó0  — |j                              |j        ¦  «        }|                      d|› d�¦  «         |                      ¦   «          |                      d¦  «         |                      ¦   «          |                      |› d|j        ›d�¦  «         d S )Nzif not isinstance(z, Namespace):zMraise TemplateRuntimeError("cannot assign attribute on non-namespace object")r&  r'  )r—   rQ  rS   rï   rõ   rö   Úattr)r'   r)   r*   rQ  s       r4   Úvisit_NSRefzCodeGenerator.visit_NSRefR  sœ   € ð Œm×Ò ¤	Ñ*Ô*ˆØ�ŠÐ>¨CÐ>Ð>Ð>Ñ?Ô?Ð?Ø�Š‰ŒˆØ�ŠðBñ	
ô 	
ð 	
ð 	�Š‰ŒˆØ�Š˜#Ð.Ð. ¤	Ð.Ð.Ð.Ñ/Ô/Ð/Ð/Ð/r6   c                 óð   — |                      |j        ¦  «        }t          |t          ¦  «        r$|                      t          |¦  «        ¦  «         d S |                      t          |¦  «        ¦  «         d S r.   )r*  r0   rY   rp   rF   rs   rb  )r'   r)   r*   r7  s       r4   Úvisit_ConstzCodeGenerator.visit_Const`  sc   € Ø�mŠm˜EœNÑ+Ô+ˆÝ�c�5Ñ!Ô!ð 	"Ø�JŠJ•s˜3‘x”xÑ Ô Ð Ð Ð à�JŠJ•t˜C‘y”yÑ!Ô!Ð!Ð!Ð!r6   c                 óä   — 	 |                       t          |                     |j        ¦  «        ¦  «        ¦  «         d S # t          j        $ r" |                       d|j        ›d�¦  «         Y d S w xY w©Nz6(Markup if context.eval_ctx.autoescape else identity)(rB   )rF   rb  r*  r0   r   r3  Údatar½  s      r4   Úvisit_TemplateDataz CodeGenerator.visit_TemplateDatag  sˆ   € ð	Ø�JŠJ•t˜DŸMšM¨%¬.Ñ9Ô9Ñ:Ô:Ñ;Ô;Ð;Ð;Ð;øÝÔð 	ð 	ð 	Ø�JŠJØWÈÌÐWÐWÐWñô ð ð ð ð ð	øøøs   ‚:> ¾-A/Á.A/c                 óü   — |                       d¦  «         d}t          |j        ¦  «        D ]2\  }}|r|                       d¦  «         |                      ||¦  «         Œ3|                       |dk    rdnd¦  «         d S )Nr@   r)  r?   r   z,)rB   ©rF   rP  rz   r2   ©r'   r)   r*   r]  r6  s        r4   Úvisit_TuplezCodeGenerator.visit_Tupleo  sˆ   € Ø�
Š
�3‰ŒˆØˆÝ" 4¤:Ñ.Ô.ð 	$ð 	$‰IˆC�Øð !Ø—
’
˜4Ñ Ô Ð Ø�JŠJ�t˜UÑ#Ô#Ð#Ð#Ø�
Š
˜3 !š8˜8�4�4¨Ñ-Ô-Ð-Ð-Ð-r6   c                 óè   — |                       d¦  «         t          |j        ¦  «        D ]2\  }}|r|                       d¦  «         |                      ||¦  «         Œ3|                       d¦  «         d S )Nr&  r?   r'  rJ  rK  s        r4   Ú
visit_ListzCodeGenerator.visit_Listx  sr   € Ø�
Š
�3‰ŒˆÝ" 4¤:Ñ.Ô.ð 	$ð 	$‰IˆC�Øð !Ø—
’
˜4Ñ Ô Ð Ø�JŠJ�t˜UÑ#Ô#Ð#Ð#Ø�
Š
�3‰Œˆˆˆr6   c                 óR  — |                       d¦  «         t          |j        ¦  «        D ]g\  }}|r|                       d¦  «         |                      |j        |¦  «         |                       d¦  «         |                      |j        |¦  «         Œh|                       d¦  «         d S )Nrm  r?   r  r  )rF   rP  rz   r2   r  r`   rK  s        r4   Ú
visit_DictzCodeGenerator.visit_Dict€  sœ   € Ø�
Š
�3‰ŒˆÝ" 4¤:Ñ.Ô.ð 	*ð 	*‰IˆC�Øð !Ø—
’
˜4Ñ Ô Ð Ø�JŠJ�t”x Ñ'Ô'Ð'Ø�JŠJ�tÑÔÐØ�JŠJ�t”z 5Ñ)Ô)Ð)Ð)Ø�
Š
�3‰Œˆˆˆr6   ú+ú-Ú*ú/z//z**ú%ÚandÚorznot c                 ó
  — |j         j        rd}n|j         j        rd}nd}|                      |› d�¦  «         |j        D ]-}|                      ||¦  «         |                      d¦  «         Œ.|                      d¦  «         d S )Nz8(markup_join if context.eval_ctx.volatile else str_join)Úmarkup_joinÚstr_joinz((r?   ró   )r0   r1   r÷   rF   r   r2   )r'   r)   r*   rÈ  r!  s        r4   Úvisit_ConcatzCodeGenerator.visit_Concat—  sœ   € àŒ>Ô"ð 	#ØRˆIˆIØŒ^Ô&ð 	#Ø%ˆIˆIà"ˆIØ�
Š
�iÐ#Ð#Ð#Ñ$Ô$Ð$Ø”:ð 	ð 	ˆCØ�JŠJ�s˜EÑ"Ô"Ð"Ø�JŠJ�tÑÔÐÐØ�
Š
�4ÑÔÐÐÐr6   c                 óÐ   — |                       d¦  «         |                      |j        |¦  «         |j        D ]}|                      ||¦  «         Œ|                       d¦  «         d S )Nr@   rB   )rF   r2   r  ÚopsrI   s       r4   Úvisit_ComparezCodeGenerator.visit_Compare¥  sb   € à�
Š
�3‰ŒˆØ�
Š
�4”9˜eÑ$Ô$Ð$Ø”(ð 	"ð 	"ˆBØ�JŠJ�r˜5Ñ!Ô!Ð!Ð!Ø�
Š
�3‰Œˆˆˆr6   c                 óŽ   — |                       dt          |j                 › d�¦  «         |                      |j        |¦  «         d S )NrA   )rF   Ú	operatorsr<   r2   r  r½  s      r4   Úvisit_OperandzCodeGenerator.visit_Operand­  sC   € Ø�
Š
Ð,•y ¤Ô)Ð,Ð,Ð,Ñ-Ô-Ð-Ø�
Š
�4”9˜eÑ$Ô$Ð$Ð$Ð$r6   c                 ó*  — | j         j        r|                      d¦  «         |                      d¦  «         |                      |j        |¦  «         |                      d|j        ›d�¦  «         | j         j        r|                      d¦  «         d S d S )Nú(await auto_await(zenvironment.getattr(r?   rB   ró   )rC   rC  rF   r2   r)   rA  r½  s      r4   Úvisit_GetattrzCodeGenerator.visit_Getattr±  sœ   € àÔÔ$ð 	-Ø�JŠJÐ+Ñ,Ô,Ð,à�
Š
Ð)Ñ*Ô*Ð*Ø�
Š
�4”9˜eÑ$Ô$Ð$Ø�
Š
Ð&˜œ	Ð&Ð&Ð&Ñ'Ô'Ð'àÔÔ$ð 	Ø�JŠJ�tÑÔÐÐÐð	ð 	r6   c                 óz  — t          |j        t          j        ¦  «        rb|                      |j        |¦  «         |                      d¦  «         |                      |j        |¦  «         |                      d¦  «         d S | j        j        r|                      d¦  «         |                      d¦  «         |                      |j        |¦  «         |                      d¦  «         |                      |j        |¦  «         |                      d¦  «         | j        j        r|                      d¦  «         d S d S )Nr&  r'  rc  zenvironment.getitem(r?   rB   ró   )	rY   r!  r   ÚSlicer2   r)   rF   rC   rC  r½  s      r4   Úvisit_GetitemzCodeGenerator.visit_Getitem½  s  € õ �d”h¥¤Ñ,Ô,ð 	!Ø�JŠJ�t”y %Ñ(Ô(Ð(Ø�JŠJ�s‰OŒOˆOØ�JŠJ�t”x Ñ'Ô'Ð'Ø�JŠJ�s‰OŒOˆOˆOˆOàÔÔ(ð 1Ø—
’
Ð/Ñ0Ô0Ð0à�JŠJÐ-Ñ.Ô.Ð.Ø�JŠJ�t”y %Ñ(Ô(Ð(Ø�JŠJ�tÑÔÐØ�JŠJ�t”x Ñ'Ô'Ð'Ø�JŠJ�s‰OŒOˆOàÔÔ(ð !Ø—
’
˜4Ñ Ô Ð Ð Ð ð!ð !r6   c                 ó*  — |j         �|                      |j         |¦  «         |                      d¦  «         |j        �|                      |j        |¦  «         |j        �2|                      d¦  «         |                      |j        |¦  «         d S d S )Nrå  )Ústartr2   rF   Ústoprû   r½  s      r4   Úvisit_SlicezCodeGenerator.visit_SliceÒ  sˆ   € ØŒ:Ð!Ø�JŠJ�t”z 5Ñ)Ô)Ð)Ø�
Š
�3‰ŒˆØŒ9Ð Ø�JŠJ�t”y %Ñ(Ô(Ð(ØŒ9Ð Ø�JŠJ�s‰OŒOˆOØ�JŠJ�t”y %Ñ(Ô(Ð(Ð(Ð(ð !Ð r6   Ú	is_filterc              #   ó\  K  — | j         j        r|                      d¦  «         |rM|                      | j        |j                 › d�¦  «         | j         j                             |j        ¦  «        }nL|                      | j        |j                 › d�¦  «         | j         j                             |j        ¦  «        }|€4|j        s-|rdnd}|                      d|› d|j        ›d�|j	        ¦  «         t          j        dt          j        d	t          j         d
i                     t          j        |¦  «        ¦  «        }|�|                      |› d�¦  «         d V — |                      ||¦  «         |                      d¦  «         | j         j        r|                      d¦  «         d S d S )Nrc  r@   r  rã  zNo r*  rœ  rÕ   r  rC   r?   rB   ró   )rC   rC  rF   r·   rS   r"  r¸   rŸ   rê   rè   r   rÕ   r!  r#  r#  )r'   r)   r*   rl  rF  Ú	type_namer$  s          r4   Ú_filter_test_commonz!CodeGenerator._filter_test_commonÜ  s»  è è € ð ÔÔ$ð 	-Ø�JŠJÐ+Ñ,Ô,Ð,àð 	9Ø�JŠJ˜$œ, t¤yÔ1Ð4Ð4Ð4Ñ5Ô5Ð5ØÔ#Ô+×/Ò/°´	Ñ:Ô:ˆDˆDà�JŠJ˜$œ* T¤YÔ/Ð2Ð2Ð2Ñ3Ô3Ð3ØÔ#Ô)×-Ò-¨d¬iÑ8Ô8ˆDð
 ˆ< Ô 0ˆ<Ø$-Ð9˜˜°6ˆIØ�IŠIÐ<˜IÐ<Ð<¨d¬iÐ<Ð<Ð<¸d¼kÑJÔJÐJõ Ô˜iÝÔ!Ð#5ÝÔ  -ð
÷ Š#ÝÔ˜dÑ#Ô#ñ
ô 
ð	 	ð ÐØ�JŠJ˜(���Ñ'Ô'Ð'ð 	ˆˆˆà�Š�t˜UÑ#Ô#Ð#Ø�
Š
�3‰ŒˆàÔÔ$ð 	Ø�JŠJ�tÑÔÐÐÐð	ð 	r6   c                 ó¤  — |                       ||d¦  «        5  |j        �|                      |j        |¦  «         n||j        j        r'|                      d|j        › d|j        › d�¦  «         nI|j        j        r|                      d|j        › d�¦  «         n|                      d|j        › d�¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NTz(Markup(concat(z.)) if context.eval_ctx.autoescape else concat(ró   zMarkup(concat(r<  rB   )ro  r)   r2   r0   r1   rF   r™   r÷   r½  s      r4   r½   zCodeGenerator.visit_Filter  sH  € à×%Ò% d¨E°4Ñ8Ô8ð 	6ð 	6ð ŒyÐ$Ø—
’
˜4œ9 eÑ,Ô,Ð,Ð,Ø”Ô(ð 6Ø—
’
ðT e¤lð Tð TØCHÄ<ðTð Tð Tñô ð ð ð ”Ô*ð 6Ø—
’
Ð<¨E¬LÐ<Ð<Ð<Ñ=Ô=Ð=Ð=à—
’
Ð4 U¤\Ð4Ð4Ð4Ñ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð 	6ð 	6s   ˜B CÃC	ÃC	c                 óœ   — |                       ||d¦  «        5  |                      |j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r…   )ro  r2   r)   r½  s      r4   r¿   zCodeGenerator.visit_Test  s”   € à×%Ò% d¨E°5Ñ9Ô9ð 	)ð 	)Ø�JŠJ�t”y %Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s   ˜AÁAÁAc                 ól  ‡ ‡‡— ‰                      ¦   «         Šdˆˆˆ fd„}‰                      d¦  «         ‰                      ‰j        ‰¦  «         ‰                      d¦  «         ‰                      ‰j        ‰¦  «         ‰                      d¦  «          |¦   «          ‰                      d¦  «         d S )Nr%   c                  ó¨   •— ‰j         �‰                     ‰j         ‰ ¦  «         d S ‰                     d‰                     ‰¦  «        › d�¦  «         d S )Nz1cond_expr_undefined("the inline if-expression on z6 evaluated to false and no else section was defined."))Úexpr2r2   rF   ri  )r*   r)   r'   s   €€€r4   Úwrite_expr2z1CodeGenerator.visit_CondExpr.<locals>.write_expr2   si   ø€ ØŒzÐ%Ø—
’
˜4œ: uÑ-Ô-Ð-Ø�à�JŠJð+Ø—M’M $Ñ'Ô'ð+ð +ð +ñô ð ð ð r6   r@   z if z else rB   rÃ   )r­   rF   r2   Úexpr1rã  )r'   r)   r*   ru  s   ``` r4   Úvisit_CondExprzCodeGenerator.visit_CondExpr  s¹   øøø€ à—
’
‘”ˆð		ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 	�
Š
�3‰ŒˆØ�
Š
�4”:˜uÑ%Ô%Ð%Ø�
Š
�6ÑÔÐØ�
Š
�4”9˜eÑ$Ô$Ð$Ø�
Š
�8ÑÔÐØˆ‰ŒˆØ�
Š
�3‰Œˆˆˆr6   rþ  c                 ó  — | j         j        r|                      d¦  «         | j         j        r|                      d¦  «         n|                      d¦  «         |                      |j        |¦  «         |rddind }|j        rddini }|j        rddini }|r |j        |fi |¤Ž n|s|rt          |fi |¤Ž}|  
                    |||¦  «         |                      d¦  «         | j         j        r|                      d¦  «         d S d S )	Nrc  zenvironment.call(context, zcontext.call(rH  Ú
_loop_varsÚ_block_varsrB   ró   )rC   rC  rF   rD   r2   r)   r�   rž   r¥   ry   r#  )r'   r)   r*   rþ  r  Úloop_kwargsÚblock_kwargss          r4   rÿ  zCodeGenerator.visit_Call3  sS  € ð ÔÔ$ð 	-Ø�JŠJÐ+Ñ,Ô,Ð,ØÔÔ%ð 	(Ø�JŠJÐ3Ñ4Ô4Ð4Ð4à�JŠJ�Ñ'Ô'Ð'Ø�
Š
�4”9˜eÑ$Ô$Ð$Ø/=ÐG˜ (Ð+Ð+À4ˆØ6;Ô6FÐN�| \Ð2Ð2ÈBˆØ9>Ô9JÐR˜ }Ð5Ð5ÐPRˆØð 	=ØˆLÔ Ð<Ð<¨|Ð<Ð<Ð<Ð<Øð 	=˜Lð 	=Ý Ð<Ð<¨|Ð<Ð<ˆLØ�Š�t˜U LÑ1Ô1Ð1Ø�
Š
�3‰ŒˆØÔÔ$ð 	Ø�JŠJ�tÑÔÐÐÐð	ð 	r6   c                 óv   — |                       |j        dz   ¦  «         |                      |j        |¦  «         d S )Nr  )rF   r  r2   r`   r½  s      r4   Úvisit_KeywordzCodeGenerator.visit_KeywordJ  s6   € Ø�
Š
�4”8˜c‘>Ñ"Ô"Ð"Ø�
Š
�4”:˜uÑ%Ô%Ð%Ð%Ð%r6   c                 ó�   — |                       d¦  «         |                      |j        |¦  «         |                       d¦  «         d S )NzMarkup(rB   ©rF   r2   r  r½  s      r4   Úvisit_MarkSafezCodeGenerator.visit_MarkSafeP  s=   € Ø�
Š
�9ÑÔÐØ�
Š
�4”9˜eÑ$Ô$Ð$Ø�
Š
�3‰Œˆˆˆr6   c                 ó�   — |                       d¦  «         |                      |j        |¦  «         |                       d¦  «         d S rF  r€  r½  s      r4   Úvisit_MarkSafeIfAutoescapez(CodeGenerator.visit_MarkSafeIfAutoescapeU  s@   € ð 	�
Š
ÐKÑLÔLÐLØ�
Š
�4”9˜eÑ$Ô$Ð$Ø�
Š
�3‰Œˆˆˆr6   c                 ó@   — |                       d|j        z   ¦  «         d S )Nzenvironment.©rF   rS   r½  s      r4   Úvisit_EnvironmentAttributez(CodeGenerator.visit_EnvironmentAttribute\  s#   € ð 	�
Š
�> D¤IÑ-Ñ.Ô.Ð.Ð.Ð.r6   c                 óP   — |                       d|j        ›d|j        › �¦  «         d S )Nzenvironment.extensions[z].)rF   Ú
identifierrS   r½  s      r4   Úvisit_ExtensionAttributez&CodeGenerator.visit_ExtensionAttributea  s1   € ð 	�
Š
ÐM¨T¬_ÐMÐMÀ$Ä)ÐMÐMÑNÔNÐNÐNÐNr6   c                 óP   — |                       | j        |j                 ¦  «         d S r.   )rF   r×   r©  r½  s      r4   Úvisit_ImportedNamez CodeGenerator.visit_ImportedNamef  s$   € Ø�
Š
�4Ô& t¤Ô7Ñ8Ô8Ð8Ð8Ð8r6   c                 ó:   — |                       |j        ¦  «         d S r.   r…  r½  s      r4   Úvisit_InternalNamez CodeGenerator.visit_InternalNamei  s   € Ø�
Š
�4”9ÑÔÐÐÐr6   c                 ó0   — |                       d¦  «         d S )NrÕ   )rF   r½  s      r4   Úvisit_ContextReferencez$CodeGenerator.visit_ContextReferencel  s   € ð 	�
Š
�9ÑÔÐÐÐr6   c                 óV   — |                       |                      |¦  «        ¦  «         d S r.   )rF   r„  r½  s      r4   Úvisit_DerivedContextReferencez+CodeGenerator.visit_DerivedContextReferenceq  s*   € ð 	�
Š
�4×&Ò& uÑ-Ô-Ñ.Ô.Ð.Ð.Ð.r6   c                 ó2   — |                       d|¦  «         d S )NÚcontinuerr  r½  s      r4   Úvisit_ContinuezCodeGenerator.visit_Continuev  s   € Ø�Š�z 4Ñ(Ô(Ð(Ð(Ð(r6   c                 ó2   — |                       d|¦  «         d S )NÚbreakrr  r½  s      r4   Úvisit_BreakzCodeGenerator.visit_Breaky  s   € Ø�Š�w Ñ%Ô%Ð%Ð%Ð%r6   c                 óì   — |                      ¦   «         }|j                             |¦  «         |                      |¦  «         |                      |j        |¦  «         |                      |¦  «         d S r.   )r«   r—   rO  r:  r  rR  r=  )r'   r)   r*   Úscope_frames       r4   Úvisit_ScopezCodeGenerator.visit_Scope|  sj   € Ø—k’k‘m”mˆØÔ×(Ò(¨Ñ.Ô.Ð.Ø×Ò˜Ñ%Ô%Ð%Ø�Š˜œ	 ;Ñ/Ô/Ð/Ø×Ò˜Ñ%Ô%Ð%Ð%Ð%r6   c                 ó*  — |                       ¦   «         }|                      |› d|                      |¦  «        › �¦  «         |                      |› d�¦  «         |                      |j        |¦  «         |                      |¦  «         |                     d¬¦  «        }|j                             |¦  «         |  	                    |¦  «         |  
                    |j        |¦  «         |                      |¦  «         |                      ¦   «          d S )Nr0  z.vars = T)r©   )rí   rï   r„  r2   rÕ   r{  r«   r—   rO  r:  r  rR  r=  r}  )r'   r)   r*   rË   r™  s        r4   Úvisit_OverlayScopez CodeGenerator.visit_OverlayScopeƒ  s  € Ø×'Ò'Ñ)Ô)ˆØ�Š˜#Ð>Ð> $×"5Ò"5°eÑ"<Ô"<Ð>Ð>Ñ?Ô?Ð?Ø�Š˜#Ð'Ð'Ð'Ñ(Ô(Ð(Ø�
Š
�4”< Ñ'Ô'Ð'Ø×#Ò# CÑ(Ô(Ð(à—k’k¨4�kÑ0Ô0ˆØÔ×(Ò(¨Ñ.Ô.Ð.Ø×Ò˜Ñ%Ô%Ð%Ø�Š˜œ	 ;Ñ/Ô/Ð/Ø×Ò˜Ñ%Ô%Ð%Ø×"Ò"Ñ$Ô$Ð$Ð$Ð$r6   c                 óD  — |j         D ]—}|                      d|j        › d�¦  «         |                      |j        |¦  «         	 |j                             |j        ¦  «        }t          |j        |j        |¦  «         Œw# t          j	        $ r d|j        _
        Y Œ”w xY wd S )Nzcontext.eval_ctx.r0  T)Úoptionsrï   r  r2   r`   r*  r0   Úsetattrr   r3  r1   )r'   r)   r*   Úkeywordr7  s        r4   Úvisit_EvalContextModifierz'CodeGenerator.visit_EvalContextModifier‘  s¼   € ð ”|ð 	:ð 	:ˆGØ�NŠNÐ?¨w¬{Ð?Ð?Ð?Ñ@Ô@Ð@Ø�JŠJ�w”} eÑ,Ô,Ð,ð:Ø”m×,Ò,¨U¬^Ñ<Ô<�õ ˜œ¨¬°SÑ9Ô9Ð9Ð9øõ Ô#ð /ð /ð /Ø*.�”Ô'Ð'Ð'ð/øøøð	:ð 	:s   ÁA?Á?BÂBc                 ób  — |                       ¦   «         }|j                             ¦   «         }|                      |› d�¦  «         |                      ||¦  «         |j        D ]}|                      ||¦  «         Œ|j                             |¦  «         |                      d|› d�¦  «         d S )Nz = context.eval_ctx.save()zcontext.eval_ctx.revert(rB   )rí   r0   Úsaverï   r¡  rR  r2   Úrevert)r'   r)   r*   Úold_ctx_nameÚ	saved_ctxr5  s         r4   Úvisit_ScopedEvalContextModifierz-CodeGenerator.visit_ScopedEvalContextModifierž  s»   € ð ×0Ò0Ñ2Ô2ˆØ”N×'Ò'Ñ)Ô)ˆ	Ø�Š˜,ÐBÐBÐBÑCÔCÐCØ×&Ò& t¨UÑ3Ô3Ð3Ø”Yð 	%ð 	%ˆEØ�JŠJ�u˜eÑ$Ô$Ð$Ð$ØŒ×Ò˜iÑ(Ô(Ð(Ø�ŠÐA°,ÐAÐAÐAÑBÔBÐBÐBÐBr6   ©NFTr®   rÃ   )r
   r.   )Nr   )r>  r?  )¶r‹   rŒ   r�   r8   r°   rs   ÚTextIOrn   rŠ   ÚpropertyrW   ro   rê   rí   r+   r™   rø   rõ   rö   r   ÚNoder   r  r  rÏ   r  rF   rï   r  rŽ   ÚCallrÄ   rÅ   ÚMappingr9   r#  r.  r:  r=  rD  rF  r�   r�   rÅ  rƒ   r_  rf  ri  rp  rs  rW  rY  rX  r{  r}  r€  r3  r„  r†  rˆ  r˜  rZ   rµ  rÆ   rÁ   r¦  r¾  ÚIncluderÊ  ÚImportÚ
FromImportrÑ  rÕ  rÜ  ÚForrõ  ÚIfrù  rü  r  ÚFilterBlockr  ÚWithr  ÚExprStmtr  Ú
NamedTupler  Ústaticmethodr  r  r  r%  r(  r7   r,  r/  r1  ÚOutputr8  ÚAssignr:  ÚAssignBlockr=  rÐ   rÍ   ÚNSRefrB  rÄ  rD  r+  rH  rL  rÆ  rN  ÚDictrP  rM   Ú	visit_AddÚ	visit_SubÚ	visit_MulÚ	visit_DivÚvisit_FloorDivÚ	visit_PowÚ	visit_ModÚ	visit_AndÚvisit_OrrR   Ú	visit_PosÚ	visit_NegÚ	visit_Notr;   ÚConcatr[  ÚComparer^  ÚOperandra  ÚGetattrrd  ÚGetitemrg  rf  rk  r   ÚIteratorro  r½   r¿   ÚCondExprrw  rÿ  ÚKeywordr~  ÚMarkSafer�  ÚMarkSafeIfAutoescaperƒ  ÚEnvironmentAttributer†  ÚExtensionAttributer‰  r¨  r‹  ÚInternalNamer�  ÚContextReferencer�  ÚDerivedContextReferencer‘  ÚContinuer”  ÚBreakr—  ÚScoperš  ÚOverlayScoperœ  ÚEvalContextModifierr¡  ÚScopedEvalContextModifierr§  r‘   r6   r4   r(   r(   ,  s,  € € € € € € ð (,Ø ØðG4ð G4à"ðG4ð Œj˜ŒoðG4ð ”*˜S”/ð	G4ð
 ”
˜1œ8Ô$ðG4ð ðG4ð ðG4ð 
ðG4ð G4ð G4ð G4ðR ð*˜4ð *ð *ð *ñ „Xð*ð
L˜ð L Sð L¨]ð Lð Lð Lð Lð, cð ,ð ,ð ,ð ,ð
/˜Eð / dð /ð /ð /ð /ð 5:ð9ð 9Øð9Ø-1ð9à	ð9ð 9ð 9ð 9ð(ð ð ð ð"ð "˜Cð "¨ð "ð "ð "ð "ð<ð < ð <¨a¬j¸¼Ô.Dð <ÐPTð <ð <ð <ð <ð˜uð ¨ð ð ð ð ð DHðð ØðØ"ðØ*+¬*°U´ZÔ*@ðà	ðð ð ð ð	 ¤
¨5¬:Ô 6ð 	¸uð 	Èð 	ð 	ð 	ð 	ð�sð ˜tð ð ð ð ð IJðð ØðØœJ u¤zÔ2ðØBEðà	ðð ð ð ð*ð *˜AœJ u¤zÔ2ð *À#ð *Èdð *ð *ð *ð *ð ;?ð	7/ð 7/àŒg�e”j %¤,°´
Ð:Ô;ð7/ð ð7/ð ”j ¤¨3°´¨:Ô!6Ô7ð	7/ð
 
ð7/ð 7/ð 7/ð 7/ðr, q¤z°%´*Ô'=ð ,À$ð ,ð ,ð ,ð ,ð\> ð >¨4ð >ð >ð >ð >ð Bð B ð B¸4ð BÈDð Bð Bð Bð BðHð H¨ð HÀCð HÐQTð Hð Hð Hð Hð2˜ð 2 ð 2ð 2ð 2ð 2ðQ Ø”G˜EœK¨¬Ð8Ô9ðQ ØBGðQ à	
Œ�˜�Ô	!ðQ ð Q ð Q ð Q ðf

 8ð 

°Eð 

¸dð 

ð 

ð 

ð 

ð˜UœZð ¨Cð ð ð ð ð!¨ð !°#ð !ð !ð !ð !ð+ð +ð +ð +ðI°ð I¸$ð Ið Ið Ið Ið$ð $ð $ð $ð6¨Cð 6°Dð 6ð 6ð 6ð 6ð5¨Sð 5°Tð 5ð 5ð 5ð 5ð,ð ,ð ,ð ,ð1 ð 1ð 1ð 1ð 1ð# #ð #ð #ð #ð #ðU Eð U¨cð Uð Uð Uð Uð3¨cð 3°dð 3ð 3ð 3ð 3ð)ð )ð )ð )ð)O¨ð )O°4ð )Oð )Oð )Oð )Oð\ @Dðu9ð u9Ø”Nðu9Ø+,¬:°eÔ+<ðu9à	ðu9ð u9ð u9ð u9ðn) ¤ð )°Eð )¸dð )ð )ð )ð )ðV(! %¤-ð (!¸ð (!À$ð (!ð (!ð (!ð (!ðT1 %¤-ð 1¸ð 1À$ð 1ð 1ð 1ð 1ðfUØ”G˜EœL¨%Ô*:Ð:Ô;ðUØDIðUà	ðUð Uð Uð Uð	N ¤ð 	N°eð 	NÀð 	Nð 	Nð 	Nð 	Nð0 UÔ%5ð 0¸eð 0Èð 0ð 0ð 0ð 0ðdIP˜eœið IP°ð IP¸$ð IPð IPð IPð IPðV˜UœXð ¨eð ¸ð ð ð ð ð*/ ¤ð /°Eð /¸dð /ð /ð /ð /ð E¤Oð ¸Eð Àdð ð ð ð ð	' eÔ&7ð 	'Àð 	'È$ð 	'ð 	'ð 	'ð 	'ð
%˜uœzð 
%°%ð 
%¸Dð 
%ð 
%ð 
%ð 
%ð% 5¤>ð %¸%ð %ÀDð %ð %ð %ð %ðð ð ð ð ˜œñ ô ð ð ð ¤ð ¨1¬5ð ð ð ñ „\ðð ,0€IˆqŒz˜-Ô(Ð/Ð/Ñ/ð. ð .ð .ð .ð .ð`#¨¬
°1´5Ô(9ð #¸cð #ð #ð #ð #ð%Ø”Jð%Ø',ð%Ø8Eð%à	ð%ð %ð %ð %ð*%Ø”Jð%Ø',ð%Ø8Eð%à	ð%ð %ð %ð %ð 	Ø”Jð	Ø',ð	Ø8Eð	à	ð	ð 	ð 	ð 	ðM ¤ð M°eð MÀð Mð Mð Mð Mð^( ¤ð (°eð (Àð (ð (ð (ð (ð& eÔ&7ð &Àð &È$ð &ð &ð &ð &ð0˜uœzð °%ð ¸Dð ð ð ð ð20 ¤ð 0°Eð 0¸dð 0ð 0ð 0ð 0ð" ¤ð "°Eð "¸dð "ð "ð "ð "ð uÔ'9ð À%ð ÈDð ð ð ð ð. ¤ð .°Eð .¸dð .ð .ð .ð .ð˜uœzð °%ð ¸Dð ð ð ð ð˜uœzð °%ð ¸Dð ð ð ð ð �˜CÑ Ô €IØ�˜CÑ Ô €IØ�˜CÑ Ô €IØ�˜CÑ Ô €IØ �[ Ñ&Ô&€NØ�˜DÑ!Ô!€IØ�˜CÑ Ô €IØ�˜EÑ"Ô"€IØˆ{˜4Ñ Ô €HØ�
˜3‘”€IØ�
˜3‘”€IØ�
˜6Ñ"Ô"€Iàð ¤ð °eð Àð ð ð ñ „]ðð ð %¤-ð ¸ð À$ð ð ð ñ „]ðð% %¤-ð %¸ð %À$ð %ð %ð %ð %ð ð	 %¤-ð 	¸ð 	À$ð 	ð 	ð 	ñ „]ð	ð ð! %¤-ð !¸ð !À$ð !ð !ð !ñ „]ð!ð() ¤ð )°Eð )¸dð )ð )ð )ð )ð ð'Ø”G˜EœL¨%¬*Ð4Ô5ð'Ø>Cð'ØPTð'à	
Œ�DÔ	ð'ð 'ð 'ñ „^ð'ðR ð6 ¤ð 6°eð 6Àð 6ð 6ð 6ñ „]ð6ð  ð)˜uœzð )°%ð )¸Dð )ð )ð )ñ „]ð)ð ð 5¤>ð ¸%ð ÀDð ð ð ñ „]ðð, àEJðð Ø”JðØ',ðØ>Bðà	ðð ð ñ „]ðð,& %¤-ð &¸ð &À$ð &ð &ð &ð &ð 5¤>ð ¸%ð ÀDð ð ð ð ð
ØÔ.ðØ7<ðà	ðð ð ð ð/ØÔ.ð/Ø7<ð/à	ð/ð /ð /ð /ð
OØÔ,ðOØ5:ðOà	ðOð Oð Oð Oð
9 uÔ'9ð 9À%ð 9ÈDð 9ð 9ð 9ð 9ð uÔ'9ð À%ð ÈDð ð ð ð ðØÔ*ðØ38ðà	ðð ð ð ð
/ØÔ1ð/Ø:?ð/à	ð/ð /ð /ð /ð
) 5¤>ð )¸%ð )ÀDð )ð )ð )ð )ð& ¤ð &°Eð &¸dð &ð &ð &ð &ð& ¤ð &°Eð &¸dð &ð &ð &ð &ð% uÔ'9ð %À%ð %ÈDð %ð %ð %ð %ð:ØÔ-ð:Ø6;ð:à	ð:ð :ð :ð :ð
CØÔ3ð
CØ<Að
Cà	ð
Cð 
Cð 
Cð 
Cð 
Cð 
Cr6   r¨  )Fr¯   Útypingr8   Ú
contextlibr   Ú	functoolsr   Úior   Ú	itertoolsr   r   r   r  Ú
markupsafer   r	   r?  r   Ú
exceptionsr   Ú
idtrackingr   r   r   r   r   r   r/   r   Úutilsr   r   rJ   r   ÚTYPE_CHECKINGÚtyping_extensionsÚterC   r   ÚTypeVarr  r9   r   r`  r;   rs   rK   rM   rQ   rR   rZ   r°   r©  rn   r_   rd   rÏ   r«  ÚSetr�   rƒ   r+   ÚRuntimeErrorr   rµ   r~   r4  rÒ   r(   r‘   r6   r4   ú<module>rí     s´  ðØ 6Ð 6à Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø *Ð *Ð *Ð *Ð *Ð *Ø (Ð (Ð (Ð (Ð (Ð (Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à„?ð )Ø"Ð"Ð"Ð"à(Ð(Ð(Ð(Ð(Ð(à€A„Iˆc˜œ C¨¬ JÔ/Ð0Ñ0Ô0€ð Ø
Ø
ØØ
ØØ
Øð	ð 	€	ð2�Qð 2˜1ð 2ð 2ð 2ð 2ð �Cð ˜AœJ¨¸¼ÈÐ'PÐRVÐ'VÔWð ð ð ð ð*Øðà„Z� %¤/°7Ð;¸TÐAÔBðð ð ð ð0 $(ØØðð Ø
Œ.ðàðð Œ*�SŒ/ðð Œj˜Œoð	ð
 ŒJ�q”xÔ ðð ðð ðð „Z�„_ðð ð ð ð0˜œð  4ð ð ð ð ð"ØŒ:�e”jÔ!ðØ*+¬*°S¬/ðà„Uˆ3„Zðð ð ð ð&ð &ð &ð &ð &ñ &ô &ð &ðPð Pð Pð Pð Pñ Pô Pð PðfJð Jð Jð Jð J�,ñ Jô Jð Jð'ð 'ð 'ð 'ð '˜kñ 'ô 'ð 'ð&&ð &ð &ð &ð &˜Kñ &ô &ð &ð,ð ð ð ð �9ñ ô ð ð|Cð |Cð |Cð |Cð |C�Kñ |Cô |Cð |Cð |Cð |Cr6   