/opt/cloudlinux/venv/lib/python3.11/site-packages/jinja2/__pycache__
NameSizeModeActions
async_utils.cpython-311.pyc42200644editdlrm
bccache.cpython-311.pyc197100644editdlrm
compiler.cpython-311.pyc1105770644editdlrm
constants.cpython-311.pyc15740644editdlrm
debug.cpython-311.pyc94310644editdlrm
defaults.cpython-311.pyc17400644editdlrm
environment.cpython-311.pyc803800644editdlrm
exceptions.cpython-311.pyc86250644editdlrm
ext.cpython-311.pyc444610644editdlrm
filters.cpython-311.pyc750640644editdlrm
idtracking.cpython-311.pyc196360644editdlrm
lexer.cpython-311.pyc356980644editdlrm
loaders.cpython-311.pyc328230644editdlrm
meta.cpython-311.pyc57190644editdlrm
nativetypes.cpython-311.pyc77140644editdlrm
nodes.cpython-311.pyc645000644editdlrm
optimizer.cpython-311.pyc28700644editdlrm
parser.cpython-311.pyc593140644editdlrm
runtime.cpython-311.pyc523510644editdlrm
sandbox.cpython-311.pyc188380644editdlrm
tests.cpython-311.pyc92610644editdlrm
utils.cpython-311.pyc412850644editdlrm
visitor.cpython-311.pyc57000644editdlrm
_identifier.cpython-311.pyc19720644editdlrm
__init__.cpython-311.pyc25720644editdlrm
Edit: /opt/cloudlinux/venv/lib/python3.11/site-packages/jinja2/__pycache__/compiler.cpython-311.pyc (110577B)
§ dÄE \‰HãóЗdZddlZddlmZddlmZddlmZddl m Z ddl m Z ddlmZdd lmZd d lmZd d lmZd d lmZd dlmZd dlmZd dlmZd dlmZd dlmZd dlmZd dlmZd dlm Z d dl!m"Z"ej#r ddl$Z%d dl&m'Z'ej(dej)dej*f¬¦«Z+dddddd d!d"d#œZ,d$e+d%e+fd&„Z-d'e.d%ej)d(ej/d)gdffd*„Z0d'e.d%ej)d(ej1d)gdffd+„Z2 dHd.ej3d/d0d1ej4e.d2ej4e.d3ej4ej5d4e6d5e6d%ej4e.fd6„Z7d7ej*d%e6fd8„Z8d9ej9ej:d:ej9e.d%ej;e.fd;„Z<Gd<„d=¦«Z=Gd>„d)¦«Z>Gd?„d@e?¦«Z@GdA„dBe"¦«ZAGdC„dDe"¦«ZBGdE„dFeC¦«ZDGdG„d(e"¦«ZEdS)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>=ú.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$r5s` r4Ú optimizeconstr;+smø€ð .Øð .Ý%*¤Zð .Ø8?ð .ÝKLÌ5ð .å Œð .ð .ð .ð .ð .ð .õ �!œ&¥ HÑ-Ô-¨qÑ 1Ô 1Ð1r6Úopr(r+c ó\‡—tdddtjdtddfˆfd„ ¦«}|S)Nr'r(r)r*r%cóø•—|jjrs‰|jjvre| d‰›d�¦«| |j|¦«| d¦«| |j|¦«nd| d¦«| |j|¦«| d‰›d�¦«| |j|¦«| d¦«dS)Nz environment.call_binop(context, ú, ú(ú ú))Ú environmentÚ sandboxedÚintercepted_binopsÚwriter2ÚleftÚright©r'r)r*r<s €r4Úvisitorz_make_binop..visitor<sëø€ð Ô Ô &ð *à�dÔ&Ô9Ð9Ð9à �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<rJs` r4Ú _make_binoprM;sPø€Ýð�oð­U¬]ðÅ5ðÈTðððððñ„]ðð" €Nr6c ó\‡—tdddtjdtddfˆfd„ ¦«}|S)Nr'r(r)r*r%có6•—|jjrC‰|jjvr5| d‰›d�¦«| |j|¦«n3| d‰z¦«| |j|¦«| d¦«dS)Nzenvironment.call_unop(context, r?r@rB)rCrDÚintercepted_unopsrFr2r)rIs €r4rJz_make_unop..visitorTsšø€ð Ô Ô &ð )à�dÔ&Ô8Ð8Ð8à �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+rLs` r4Ú _make_unoprRQsRø€õð �oð ­U¬_ð ÅUð Ètð ð ð ð ð ñ„]ð ð €Nr6FTr)rCrÚnameÚfilenameÚstreamÚ defer_initÚ optimizedcóì—t|tj¦«std¦«‚| ||||||¦«}| |¦«|€|j ¦«SdS)z+Generate the python source for a node tree.z Can't compile non template nodesN)Ú isinstancer ÚTemplateÚ TypeErrorÚcode_generator_classr2rUÚgetvalue)r)rCrSrTrUrVrWÚ generators r4Úgenerater_es|€õ �d�EœNÑ +Ô +ð<ÝÐ:Ñ;Ô;Ð;à×0Ò0Ø�T˜8 V¨Z¸ñô€Ið‡O‚O�DÑÔÐà €~ØÔ×(Ò(Ñ*Ô*Ð*à ˆ4r6Úvaluecó²—|�|tus |turdSt|¦«ttt t ttthvrdSt|¦«tttthvrtd„|D¦«¦«St|¦«tur+td„| ¦«D¦«¦«SdS)z)Does the node have a safe representation?NTc3ó4K—|]}t|¦«V—ŒdSr.©Ú has_safe_repr)Ú.0Úvs r4ú z has_safe_repr..†s*èè€Ð3Ð3¨•= Ñ#Ô#Ð3Ð3Ð3Ð3Ð3Ð3r6c3óXK—|]%\}}t|¦«ot|¦«V—Œ&dSr.rc©reÚkrfs r4rgz has_safe_repr..‰s;èè€ÐSÐS¹T¸QÀ•= Ñ#Ô#Ð8­ °aÑ(8Ô(8ÐSÐSÐSÐSÐSÐSr6F)ÚNotImplementedÚEllipsisÚtypeÚboolÚintÚfloatÚcomplexÚrangeÚstrr ÚtupleÚlistÚsetÚ frozensetÚallÚdictÚitems©r`s r4rdrd}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à ˆ5r6r Únamescó†—t|¦«} |D]}| |¦«Œn#t$rYnwxYw|jS)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|rJr)s r4Úfind_undeclaredr�Žsh€õ $ EÑ*Ô*€Gð Øð ð ˆDØ �MŠM˜$Ñ Ô Ð Ð ð øå ð ð ð Ø ˆð øøøà Ô Ðs ‘,¬ 9¸9cóL—eZdZdejejejfddfd„ZdS)ÚMacroRefr)r%Ncó>—||_d|_d|_d|_dS©NF)r)Úaccesses_callerÚaccesses_kwargsÚaccesses_varargs©r'r)s r4Ú__init__zMacroRef.__init__žs'€ØˆŒ Ø$ˆÔØ$ˆÔØ %ˆÔÐÐr6) Ú__name__Ú __module__Ú __qualname__r8ÚUnionr ÚMacroÚ CallBlockrŠ©r6r4rƒrƒ�sF€€€€€ð&˜QœW U¤[°%´/Ð%AÔBð&Àtð&ð&ð&ð&ð&ð&r6rƒc ó‚—eZdZdZ d dedejddejeddfd„Zdd„Z dd e ddfd „Z dd „Z e Z dS)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|_ dS)N©r”F) r0r“r ÚsymbolsÚrequire_output_checkÚbufferÚblockÚtoplevelÚ rootlevelÚ loop_frameÚ block_frameÚ soft_frame)r'r0r“r”s r4rŠzFrame.__init__¨s®€ð !ˆŒ ðˆŒ à ˆ>Ý"¨Ð/Ñ/Ô/ˆDŒLð).ˆDÔ %ð ,0ˆDŒKð+/ˆDŒJˆJõ# 6¤>¸Ð?Ñ?Ô?ˆDŒLØ(.Ô(CˆDÔ %Ø œ-ˆDŒKØœˆDŒJðˆŒ ð ˆŒð ˆŒØ ˆÔð  ˆŒˆˆr6cóî—tjtt |j¦«¦«}|j |j¦«|j  ¦«|_|S)z!Create a copy of the current one.) r8r:r+ÚobjectÚ__new__Ú __class__Ú__dict__Úupdater—Úcopy©r'Úrvs r4r¦z Frame.copyÛsS€å ŒV•E�6Ÿ>š>¨$¬.Ñ9Ô9Ñ :Ô :ˆØ Œ ×Ò˜4œ=Ñ)Ô)Ð)Ø”\×&Ò&Ñ(Ô(ˆŒ ؈ r6FÚisolatedcóv—|r#t|j|jjdz¬¦«St|j|¦«S)zReturn an inner frame.r r–)r+r0r—r”)r'r©s r4Úinnerz Frame.innerâs<€à ð Fݘœ¨d¬lÔ.@À1Ñ.DÐEÑEÔEÐ EÝ�T”] DÑ)Ô)Ð)r6có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__rr8ÚOptionalrorŠr¦rnr«r­Ú__copy__r‘r6r4r+r+¥s¿€€€€€Ø0Ð0ð '+Ø!%ð 1 ð1 àð1 ð” ˜7Ô#ð1 ðŒz˜#Œð 1 ð ð 1 ð1 ð1 ð1 ðfðððð*ð*˜dð*¨wð*ð*ð*ð*ð ð ð ð ð€H€H€Hr6có—eZdZdZdS)rz?Exception used by the `UndeclaredNameVisitor` to signal a stop.N©r‹rŒr�r¯r‘r6r4rrøs€€€€€ØIÐIÐIÐIr6rcóh—eZdZdZd d„Zdejddfd„Zdejddfd„Z dej ddfd„Z dS) ÚDependencyFinderVisitorz.A visitor that collects filter and test calls.r%NcóR—t¦«|_t¦«|_dSr.)rvÚfiltersÚtests©r's r4rŠz DependencyFinderVisitor.__init__ÿs€Ý#&¡5¤5ˆŒ Ý!$¡¤ˆŒ ˆ ˆ r6r)cón—| |¦«|j |j¦«dSr.)Ú generic_visitr·ÚaddrSr‰s r4Ú visit_Filterz$DependencyFinderVisitor.visit_Filters4€Ø ×Ò˜4Ñ Ô Ð Ø Œ ×Ò˜œÑ#Ô#Ð#Ð#Ð#r6cón—| |¦«|j |j¦«dSr.)r»r¸r¼rSr‰s r4Ú visit_Testz"DependencyFinderVisitor.visit_Tests2€Ø ×Ò˜4Ñ Ô Ð Ø Œ �Š�t”yÑ!Ô!Ð!Ð!Ð!r6có—dS)zStop 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‘r6r4rµrµüsš€€€€€Ø8Ð8ð'ð'ð'ð'ð$ ¤ð$°$ð$ð$ð$ð$ð"˜uœzð"¨dð"ð"ð"ð"ð' ¤ ð'°ð'ð'ð'ð'ð'ð'r6rµcól—eZdZdZdejeddfd„Zdej ddfd„Z dej ddfd„Z dS) 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¦«|_dSr.)rvr|r€)r'r|s r4rŠzUndeclaredNameVisitor.__init__s€Ý˜‘Z”ZˆŒ Ý&)¡e¤eˆŒˆˆr6r)cóô—|jdkrM|j|jvr?|j |j¦«|j|jkrt ¦«‚dS|j |j¦«dS)NÚload)ÚctxrSr|r€r¼rÚdiscardr‰s r4Ú visit_Namez UndeclaredNameVisitor.visit_Namesv€Ø Œ8�vÒ Ð  $¤)¨t¬zÐ"9Ð"9Ø ŒO× Ò  ¤ Ñ *Ô *Ð *ØŒ $¤*Ò,Ð,Ý!‘m”mÐ#ð-Ð,ð ŒJ× Ò ˜tœyÑ )Ô )Ð )Ð )Ð )r6có—dS)zStop visiting a blocks.Nr‘r‰s r4rÁz!UndeclaredNameVisitor.visit_Block!rÂr6) r‹rŒr�r¯r8ÚIterablersrŠr ÚNamerÍrÆrÁr‘r6r4r~r~sŽ€€€€€ððð ,˜aœj¨œoð,°$ð,ð,ð,ð,ð*˜uœzð*¨dð*ð*ð*ð*ð& ¤ ð&°ð&ð&ð&ð&ð&ð&r6r~có—eZdZdZdS)Ú 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‘r6r4rÒrÒ%s€€€€€ððððr6rÒcó” —eZdZU d�dddejedejedejejd ed ed dfd „Ze d efd „¦«Z dede d dfd„Z d efd„Z ded dfd„Z d‘deded dfd„Zd’d„Zd“de d dfd„Zd”dedejejd dfd„Zded dfd„Z d”dededejejd dfd„Zd ejejded dfd!„Zd"ed dfd#„Z d•d"edejejd%e d dfd&„Zd•dejejd%e d dfd'„Z d”dejejejej fded(ejej!eej"fd dfd)„Z#d ejejd dfd*„Z$ded dfd+„Z%d‘ded,ed dfd-„Z&d–d0ed1ed efd2„Z'ded efd3„Z(dejej)ej*fded ej+ee,ffd4„Z-d5e,ded dfd6„Z.dejd efd7„Z/ded efd8„Z0d’d9„Z1ded dfd:„Z2d’d;„Z3d„Z5d’d?„Z6d efd@„Z7d efdA„Z8ded efdB„Z9ddej?ded dfdG„Z@dejAded dfdH„ZBdejCded dfdI„ZDdejejEejFfded dfdJ„ZGdejEded dfdK„ZHdejFded dfdL„ZIdejJded dfdM„ZKdejLded dfdN„ZMdej)ded dfdO„ZNdej*ded dfdP„ZOdejPded dfdQ„ZQdejRded dfdR„ZSdejTded dfdS„ZUGdT„dUejV¦«ZWeXdVej"d ej"fdW„¦«ZYdZZejeWe[dX<d eWfdY„Z\dZejej"d efd[„Z]dej^ded\eWd efd]„Z_dej^ded\eWd dfd^„Z`dej^ded\eWd dfd_„Zadejbded dfd`„Zcdejdded dfda„Zedejfded dfdb„Zgdejhded dfdc„Zidejjded dfdd„Zkdejlded dfde„Zmdejnded dfdf„Zodej+ded dfdg„Zpdejqded dfdh„Zrdejsded dfdi„Zteudj¦«Zveudk¦«Zweudl¦«Zxeudm¦«Zyeudn¦«Zzeudo¦«Z{eudp¦«Z|eudq¦«Z}eudr¦«Z~edj¦«Z€edk¦«Z�eds¦«Z‚eƒdej„ded dfdt„¦«Z…eƒdej†ded dfdu„¦«Z‡dejˆded dfdv„Z‰eƒdejŠded dfdw„¦«Z‹eƒdejŒded dfdx„¦«Z�dejŽded dfdy„Z�e�dejejej fdedzed ej‘dfd{„¦«Z’eƒdejded dfd|„¦«Z“eƒdej ded dfd}„¦«Z”eƒdej•ded dfd~„¦«Z–eƒ d‘dejdeded dfd€„¦«Z—dej˜ded dfd�„Z™dejšded dfd‚„Z›dejœded dfdƒ„Z�dejžded dfd„„ZŸdej ded dfd…„Z¡dej¢ded dfd†„Z£dej¤ded dfd‡„Z¥dej¦ded dfdˆ„Z§dej¨ded dfd‰„Z©dejªded dfdŠ„Z«dej¬ded dfd‹„Z­dej®ded dfdŒ„Z¯dej°ded dfd�„Z±dej²ded dfdŽ„Z³dej´ded dfd�„ZµdS)—r(NFTrCrrSrTrUrVrWr%có¤—|€t¦«}||_||_||_||_d|_||_d|_|rt|¦«|_i|_ i|_ d|_ d|_ d|_ i|_i|_g|_d|_d|_d|_d|_d|_d|_g|_g|_dg|_dS)NFrr TÚcontext)rrCrSrTrUÚcreated_block_contextrVr/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'rCrSrTrUrVrWs r4rŠzCodeGenerator.__init__-s€ð ˆ>Ý‘Z”ZˆFØ&ˆÔ؈Œ Ø ˆŒ ؈Œ Ø%*ˆÔ"Ø$ˆŒØ04ˆŒà ð 4Ý& {Ñ3Ô3ˆDŒNð13ˆÔð13ˆŒ ð ˆÔð "'ˆÔðˆÔð(*ˆŒ Ø)+ˆŒ ð68ˆŒØ26ˆÔðˆŒðˆŒð!ˆÔð!"ˆÔðˆÔð24ˆÔð57ˆÔð*3¨ ˆÔ%Ð%Ð%r6có—|jduSr.)r/r¹s r4rWzCodeGenerator.optimizedvs€àŒ~ TÐ)Ð)r6ÚmsgÚlinenoz te.NoReturncó:—t|||j|j¦«‚)z*Fail with a :exc:`TemplateAssertionError`.)r rSrT)r'rçrès r4ÚfailzCodeGenerator.fail|s€å$ S¨&°$´)¸T¼]ÑKÔKÐKr6có6—|xjdz c_d|j›�S)zGet a new unique identifier.r Út_)rár¹s r4Útemporary_identifierz"CodeGenerator.temporary_identifier€s'€à ÐÔ Ñ"ÐÔØ+�DÔ)Ð+Ð+Ð+r6r*cór—| ¦«|_| |j›d�¦«dS)z7Enable buffering for the frame from that point onwards.z = []N)rír™Ú writeline©r'r*s r4r™zCodeGenerator.buffer…s8€à×0Ò0Ñ2Ô2ˆŒ Ø �Š˜%œ,Ð-Ð-Ð-Ñ.Ô.Ð.Ð.Ð.r6Úforce_unescapedcó&—|sð|jjr¸| d¦«| ¦«| d|j›d�¦«| ¦«| d¦«| ¦«| d|j›d�¦«| ¦«dS|jjr | d|j›d�¦«dS| d|j›d�¦«dS)z(Return the buffer contents of the frame.zif context.eval_ctx.autoescape:zreturn Markup(concat(ú))úelse:zreturn concat(rBN)r0r1rïÚ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Ð8r6có&—|xjdz c_dS)zIndent by one.r N©râr¹s r4rõzCodeGenerator.indentžs€à ÐÔ˜QÑÐÔÐÐr6r Ústepcó&—|xj|zc_dS)zOutdent by step.Nrú)r'rûs r4rözCodeGenerator.outdent¢s€à ÐÔ˜TÑ!ÐÔÐÐr6r)có€—|j€| d|¦«dS| |j›d�|¦«dS)z%Yield or write into the frame buffer.Núyield ú.append()r™rï)r'r*r)s r4Ú start_writezCodeGenerator.start_write¦sI€à Œ<Ð Ø �NŠN˜8 TÑ *Ô *Ð *Ð *Ð *à �NŠN˜eœlÐ4Ð4Ð4°dÑ ;Ô ;Ð ;Ð ;Ð ;r6cóB—|j�| d¦«dSdS)z1End the writing process started by `start_write`.NrB)r™rFrðs r4Ú end_writezCodeGenerator.end_write­s%€à Œ<Ð #Ø �JŠJ�s‰OŒOˆOˆOˆOð $Ð #r6Úscó†—| ||¦«| |¦«| |¦«dS)z4Simple shortcut for start_write + write + end_write.N)rrFr)r'rr*r)s r4Ú simple_writezCodeGenerator.simple_write²sA€ð ×Ò˜ Ñ%Ô%Ð%Ø � Š �1‰ Œ ˆ Ø �Š�uÑÔÐÐÐr6r cóŠ— | d¦«|D]}| ||¦«ŒdS#t$rYdSwxYw)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ïr2rÒ)r'r r*r)s r4Ú blockvisitzCodeGenerator.blockvisitºsk€ð Ø �NŠN˜6Ñ "Ô "Ð "Øð (ð (�Ø— ’ ˜4 Ñ'Ô'Ð'Ð'ð (ð (øåð ð ð Ø ˆDˆDð øøøs‚04´ AÁAÚxcóŒ—|jr¢|jsk|j d|jz¦«|xj|jz c_|j�-|j |j|jf¦«d|_d|_|j d|jz¦«d|_|j |¦«dS)z&Write a string into the output stream.ú NFz r) rÞràrUrFrÛrÝrÜÚappendrâ)r'r s r4rFzCodeGenerator.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Ø Œ ×Ò˜!ÑÔÐÐÐr6rÚextracó\—| ||¦«| |¦«dS)z!Combination of newline and write.N)ÚnewlinerF)r'r r)r s r4rïzCodeGenerator.writelineÓs+€ð � Š �T˜5Ñ!Ô!Ð!Ø � Š �1‰ Œ ˆ ˆ ˆ r6cóœ—t|jd|z¦«|_|�*|j|jkr|j|_|j|_dSdSdS)z/Add one or more newlines before the next write.r N)ÚmaxrÞrèrßrÝ)r'r)r s r4rzCodeGenerator.newlineÚsR€å˜dœo¨q°5©yÑ9Ô9ˆŒØ Ð  ¤ ¨t¬Ò >Ð >Ø%)¤[ˆDÔ "Ø"œkˆDŒOˆOˆOð Ð Ð >Ð >r6Ú extra_kwargscóì—td„td„|jD¦«|pd¦«D¦«¦«}|jD]-}| d¦«| ||¦«Œ.|sl|jD]-}| d¦«| ||¦«Œ.|�5| ¦«D] \}}| d|›d|›�¦«Œ!|jr0| d¦«| |j|¦«|�r%|j�| d¦«n| d ¦«|jD]O}| |j ›d �¦«| |j |¦«| d¦«ŒP|�5| ¦«D] \}}| |›d |›d�¦«Œ!|j�G| d ¦«| |j|¦«| d ¦«dS| d ¦«dS|j�2| d¦«| |j|¦«dSdS)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. c3ódK—|]+}ttjt|¦«¦«V—Œ,dSr.)Úis_python_keywordr8r:rs)rerjs r4rgz*CodeGenerator.signature..ïsHèè€ð ð àõ �aœf¥S¨!™nœnÑ -Ô -ð ð ð ð ð ð r6c3ó$K—|] }|jV—Œ dSr.)Úkey©rer s r4rgz*CodeGenerator.signature..ñs$èè€Ð7Ð7 a˜AœEÐ7Ð7Ð7Ð7Ð7Ð7r6r‘r?Nú=z, *z , **dict({z, **{ú: z}, **rBÚ}z, **) Úanyrr,ÚargsrFr2rzÚdyn_argsÚ dyn_kwargsrr`) r'r)r*rÚkwarg_workaroundÚargÚkwargrr`s r4Ú signaturezCodeGenerator.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”¨Ñ .Ô .Ð .Ð .Ð .ð)Ð (r6c ó>—t¦«}|D]}| |¦«Œ|j|jdf|j|jdffD�]T\}}}t |¦«D�]<}||vr| ¦«||<| 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.ú[ú]zexcept KeyError:z @internalcodeúdef z (*unused):zraise TemplateRuntimeError("No Néÿÿÿÿú named z found.")) rµr2r·r¸Úsortedrírïrõrö)r'r rJr)Úid_mapr|Ú dependencyrSs r4Úpull_dependencieszCodeGenerator.pull_dependenciessÏ€õ*Ñ+Ô+ˆàð ð ˆDØ �MŠM˜$Ñ Ô Ð Ð à*.¬,¸¼ÈÐ)SØ ŒJØ ŒMØ ðV ð* ð ñ Ñ %ˆ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ñôðð— ’ ‘”�Ø— ’ ‘”�‘ñ) ð  ð r6c óð—g}|jj ¦«D]¥\}\}}|tkrŒ|tkr1| |›d| ¦«›d|›d�¦«ŒP|tkr| |›d|›�¦«Œv|tkr|  |¦«Œ—td¦«‚|r-| d  |¦«›d�¦«dSdS)Nú = r@rBzunknown load instructionú = missing) r—ÚloadsrzrrrïÚget_resolve_funcrrr ÚNotImplementedErrorÚjoin)r'r*ÚundefsÚtargetÚactionÚparams r4Ú enter_framezCodeGenerator.enter_frameEs$€ØˆØ',¤}Ô':×'@Ò'@Ñ'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}|jjD]}| |¦«Œ|r/| d |¦«›d�¦«dSdSdS)Nr0r1)r—r2r rïr5)r'r*r;r6r7s r4Ú leave_framezCodeGenerator.leave_frameUs‡€Ø ð B؈FØœ-Ô-ð &ð &�Ø— ’ ˜fÑ%Ô%Ð%Ð%Øð BØ—’ %§*¢*¨VÑ"4Ô"4Ð@Ð@Ð@ÑAÔAÐAÐAÐAð  Bð Bð Bð Br6úasync ÚÚ async_valueÚ sync_valuecó"—|jjr|n|Sr.)rCÚis_async)r'r@rAs r4Ú choose_asynczCodeGenerator.choose_async]s€Ø"Ô.Ô7ÐGˆ{ˆ{¸ZÐGr6có4—| ¦«›d|›�S)Nr()rD)r'rSs r4ÚfunczCodeGenerator.func`s"€Ø×#Ò#Ñ%Ô%Ð1Ð1¨4Ð1Ð1Ð1r6c óP—| ¦«}|j |¦«t|¦«}d}t ¦«}g}t |j¦«D]g\}}|jdkr|}|jdvr| |j¦«|  |j  |j¦«¦«Œht|j d¦«} d| vr…|�O |j |t|j¦«z nX#t$r| d|j¦«Yn1wxYw|  |j d¦«¦«d|_d| vr8d|vr4|  |j d¦«¦«d|_d| vr8d|vr4|  |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�¦«YnwxYw| | ¦«|  ¦«�Œ| !¦«| "|j |¦«| #|d¬¦«| $|d¬¦«|  ¦«||fS)z/Dump the function def of a macro or call block.NÚcaller)r,Úvarargs)rHr,rIzhWhen defining macros or call blocks the special "caller" argument must be omitted or be given a default.Tr,rIFÚmacror@r?ú):úif ú is missing:r0z = undefined("parameter z was not provided", name=rB)rñ©r;)%r«r—Ú analyze_noderƒrvÚ enumeraterrSr¼r Úrefr�ÚbodyÚdefaultsÚlenÚ IndexErrorrêrèÚdeclare_parameterr†r‡rˆr˜rïrFr5rõr™r:Úpush_parameter_definitionsr2Úmark_parameter_storedröÚpop_parameter_definitionsrrør=) r'r)r*Ú macro_refÚexplicit_callerÚskip_special_paramsrÚidxr!r€rQÚdefaults r4Ú macro_bodyzCodeGenerator.macro_bodycsM€ð— ’ ‘ ” ˆØ Œ ×"Ò" 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Ä2D3Ë?"MÍ2NÎNrZc ó0—d d„|jjD¦«¦«}t|jdd¦«}t |jj¦«dkr|dz }| d|›d|›d |j›d|j›d|j›d � ¦«dS) zK—|]}t|j¦«V—ŒdSr.)ÚreprrSrs r4rgz*CodeGenerator.macro_def..¸s*èè€ÐHÐH¨q�d 1¤6™lœlÐHÐHÐHÐHÐHÐHr6rSNr ú,zMacro(environment, macro, z, (z), z, context.eval_ctx.autoescape)) r5r)rÚgetattrrTrFr‡rˆr†)r'rZr*Ú arg_tuplerSs r4Ú macro_defzCodeGenerator.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ñ ô ð ð ð r6có@—d|j›�}|j� |›d|j›�}|S)z.Return a human readable position for the node.zline Nú in )rèrS)r'r)r¨s r4ÚpositionzCodeGenerator.positionÂs3€à "�T”[Ð "Ð "ˆØ Œ9Ð ØÐ)Ð)˜DœIÐ)Ð)ˆB؈ r6cóž—d d„|j ¦« ¦«D¦«¦«}d|›d�S)Nr?c3ó*K—|]\}}|›d|›�V—ŒdS©rNr‘)rerSr7s r4rgz3CodeGenerator.dump_local_context..ÊsHèè€ð ð á��fðÐ !Ð !˜Ð !Ð !ð ð ð ð ð ð r6Ú{r)r5r—Ú dump_storesrz)r'r*Úitems_kvs r4Údump_local_contextz CodeGenerator.dump_local_contextÉs^€Ø—9’9ð ð à %¤ × 9Ò 9Ñ ;Ô ;× AÒ AÑ CÔ Cð ñ ô ñ ô ˆð!�HÐ Ð Ð Ð r6có®—| d¦«| d¦«| d¦«| d¦«dS)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.undefinedzcond_expr_undefined = Undefinedzif 0: yield NoneN©rïr¹s r4Ú write_commonszCodeGenerator.write_commonsÐsX€ð �ŠÐ=Ñ>Ô>Ð>Ø �ŠÐ:Ñ;Ô;Ð;ð �ŠÐ8Ñ9Ô9Ð9Ø �ŠÐ)Ñ*Ô*Ð*Ð*Ð*r6cóh—|j |j ¦«¦«dS)aQPushes 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 r4rWz(CodeGenerator.push_parameter_definitionsÜs/€ð Ô×$Ò$ U¤]×%EÒ%EÑ%GÔ%GÑHÔHÐHÐHÐHr6có8—|j ¦«dS)z+Pops the current parameter definitions set.N)räÚpopr¹s r4rYz'CodeGenerator.pop_parameter_definitionsås€à Ô×!Ò!Ñ#Ô#Ð#Ð#Ð#r6r7cóX—|jr"|jd |¦«dSdS)z€Marks a parameter in the current parameter definitions as stored. This will skip the enforced undefined checks. r)N)rärÌ©r'r7s r4rXz#CodeGenerator.mark_parameter_storedés;€ð Ô ð 6Ø Ô ! "Ô %× -Ò -¨fÑ 5Ô 5Ð 5Ð 5Ð 5ð 6ð 6r6có:—|j |¦«dSr.)rår rys r4Úpush_context_referencez$CodeGenerator.push_context_referenceðs€Ø Ô%×,Ò,¨VÑ4Ô4Ð4Ð4Ð4r6có8—|j ¦«dSr.)rårwr¹s r4Úpop_context_referencez#CodeGenerator.pop_context_referenceós€Ø Ô%×)Ò)Ñ+Ô+Ð+Ð+Ð+r6có—|jdS)Nr)©rår¹s r4Úget_context_refzCodeGenerator.get_context_refös€ØÔ,¨RÔ0Ð0r6có6—|jd}|dkrdS|›d�S)Nr)rÕÚresolvez.resolverrys r4r3zCodeGenerator.get_resolve_funcùs.€ØÔ.¨rÔ2ˆØ �YÒ Ð Ø�9ØÐ"Ð"Ð"Ð"r6có\—| ¦«›d| |¦«›d�S)Nz .derived(rB)r€rprðs r4Úderive_contextzCodeGenerator.derive_contextÿs3€Ø×&Ò&Ñ(Ô(ÐTÐT°4×3JÒ3JÈ5Ñ3QÔ3QÐTÐTÐTÐTr6có2—|jsdS||jdvS)z4Checks if a given target is an undeclared parameter.Fr))rärys r4Úparameter_is_undeclaredz%CodeGenerator.parameter_is_undeclareds%€àÔ$ð Ø�5ؘÔ.¨rÔ2Ð2Ð2r6cóR—|j t¦«¦«dS)z+Pushes a new layer for assignment tracking.N)rãr rvr¹s r4Úpush_assign_trackingz"CodeGenerator.push_assign_trackings#€à Ô×!Ò!¥#¡%¤%Ñ(Ô(Ð(Ð(Ð(r6cóz—|j ¦«}|js|js|jr|sdSd„|D¦«}t |¦«dkršt t|¦«¦«}|j  |¦«}|jr|  d|›d|›�¦«dS|jr|  d|›d|›�¦«dS|  d|›d|›�¦«nÄ|jr|  d¦«n2|jr|  d ¦«n|  d ¦«t|¦«D]P\}}|r|  d ¦«|j  |¦«}|  |›d |›�¦«ŒQ|  d ¦«|js€|js{|r{t |¦«dkr!|  d|d›d�¦«dSd   tt|¦«¦«}|  d|›d�¦«dSdSdSdS)zoPops the topmost level for assignment tracking and updates the context variables if necessary. Ncó.—g|]}|dd…dk¯|‘ŒS)Nr Ú_r‘rs r4ú z5CodeGenerator.pop_assign_tracking..s%€Ð8Ð8Ð8˜a¨1¨R¨a¨R¬5°Cª<¨<˜¨<¨<¨ˆ>Ý�˜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ð Or6c ó —|� Jd¦«‚t|j|j¦«}ddlm}m}|jjrt||z¦«}nt|¦«}| d¦«| dd  |¦«z¦«|j rdnd}|  tj ¦«du}| tj¦«D]C} | j|jvr$| d | j›d �| j¦«| |j| j<ŒD| tj¦«D]Œ} | j|jvr|| j} | ¦«x|j| <} d | vr8|  d d¦«\} }| d | ›d |›d| ›�¦«Œq| d| ›d| ›�¦«Œ�| d|j›�¦«| | d¦«›d|›d�d¬¦«| ¦«| ¦«t7|¦«}dt9|jd¦«vr2|j d¦«}| |›d�¦«|j  |¦«dx|_!|_"|o|j# |_$|r| d¦«| %|¦«| &|j¦«| '|j|¦«| (|d¬¦«| )¦«|rÖ|j#s)| ¦«| d¦«| ¦«|jjs| d¦«nR| d¦«| ¦«| d¦«| )¦«| )d|j# z¦«|j *¦«D�]©\}} | | d|z¦«›d|›d�| d¦«| ¦«| ¦«t7|¦«}d|_+t9| jd ¦«}d|vr2|j d¦«}| |›d�¦«d!|vr8|j d!¦«}| |›d"|›d#|›d$�¦«|j  | ¦«||_,| d%¦«| %|¦«| &| j¦«| '| j|¦«| (|d¬¦«| )¦«�Œ«d  d&„|jD¦«¦«}| d'|›d(�d¬¦«d)  d*„|j-D¦«¦«}| d+|›�¦«dS),Nzno root frame allowedr )ÚexportedÚasync_exportedz%from __future__ import generator_stopzfrom jinja2.runtime import r?r?z, environment=environmentzblock z defined twiceú.zfrom z import z as zimport zname = Úrootz(context, missing=missingrK)r r'r¹z = TemplateReference(context)Tzparent_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_rBz_block_vars = {}c3ó$K—|] }|›d|›�V—Œ dS)z: block_Nr‘rs r4rgz/CodeGenerator.visit_Template..«s0èè€Ð!KÐ!K¸! QÐ"5Ð"5°!Ð"5Ð"5Ð!KÐ!KÐ!KÐ!KÐ!KÐ!Kr6z blocks = {rú&c3ó*K—|]\}}|›d|›�V—ŒdS)rNr‘ris r4rgz/CodeGenerator.visit_Template..­s0èè€ÐGÐG©t¨q°! 1     q    ÐGÐGÐGÐGÐGÐGr6z debug_info = ).rrCrSÚruntimeršr›rCr+rïr5rVÚfindr ÚExtendsÚfind_allrÆrØrêrèÚ ImportedNameÚ importnamer×ríÚrsplitrFrõrsr+r�rRr—rVrOr›rœrÚr˜r:r.rr=rörzržršrÜ)r'r)r*r0ršr›Úexported_namesÚenvenvÚ have_extendsršÚimport_ÚimpÚaliasÚmoduleÚobjrQrSržr€Ú blocks_kv_strÚ debug_kv_strs r4Úvisit_TemplatezCodeGenerator.visit_Template9s©€ðˆ}ˆ}Ð5‰}Œ}ˆ}ݘtÔ/°´Ñ;Ô;ˆà5Ð5Ð5Ð5Ð5Ð5Ð5Ð5à Ô Ô $ð .Ý# 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Ð8r6cóV—d}|jrB|jrdS|jdkr.| d¦«| ¦«|dz }|jr| |¦«}n| ¦«}|jrf| d|j ›d�|¦«| ¦«| d|j ›d�|¦«|  ¦«|j j s*|j €#| d |j ›d |›d �|¦«nt| | ¦«›d |j ›d |›d �|¦«| ¦«| d|¦«|  ¦«|  |¦«dS)z.Call a block and register it for the template.rNúif parent_template is None:r zif len(context.blocks[z]) <= 1:z+raise TemplateRuntimeError("Required block z not found")zyield from context.blocks[z][0](rBzfor event in context.blocks[rKÚevent)r›rÚrÙrïrõÚscopedr„r€ÚrequiredrSrörCrCr™rDr)r'r)r*r”rÕs r4rÁzCodeGenerator.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ÑÔÐÐÐr6cóº—|js| d|j¦«|jdkrn|js)| d¦«| ¦«| d¦«|jrt¦«‚| ¦«| d|¦«|  |j |¦«|  d|j ›d�¦«| d¦«| ¦«| d ¦«| ¦«|j rd |_|xjd z c_d S) zCalls the extender.z,cannot use extend from a non top-level scoperržz5raise TemplateRuntimeError("extended multiple times")z+parent_template = environment.get_template(r?rBz9for 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ÚtemplaterFrSrœ©r'r)r*s r4Ú visit_ExtendszCodeGenerator.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Ñ ÐÔÐÐr6có*—|jr)| d¦«| ¦«d}t|jt j¦«rKt|jjt¦«rd}nVt|jjttf¦«rd}n-t|jt j t j f¦«rd}| d|›d�|¦«|  |j|¦«| d|j›d�¦«|jr�| ¦«| d ¦«| ¦«| d ¦«| ¦«| d ¦«| ¦«d }|jrA| | ¦«›d | |¦«›d�¦«n9|jjr| d¦«n| d¦«d}|s>| ¦«| d|¦«| ¦«|jr| ¦«dSdS)zHandles includes.r%Úget_or_select_templateÚ get_templateÚselect_templateztemplate = environment.r@r?rBzexcept TemplateNotFound:rrô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õrYr¼r ÚConstr`rsrtruÚTupleÚListr2rFrSröÚ with_contextrDrprCrCr)r'r)r*Ú func_nameÚskip_event_yields r4Ú visit_IncludezCodeGenerator.visit_Includes‚€à Ô ð Ø �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ð ð r6cóÄ—| | d¦«›d�¦«| |j|¦«| d|j›d�¦«|jrHd| d¦«›�}| |›d| |¦«›d�¦«dS| d | d¦«›d �¦«dS) Núawait zenvironment.get_template(r?z).Ú make_moduleÚ_asyncz(context.get_all(), True, rBÚ_get_default_modulez (context))rFrDr2r¼rSrÇrp)r'r)r*Úf_names r4Ú_import_commonzCodeGenerator._import_common9s€ð � Š �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Ð Tr6cón—| |j |j¦«›d�|¦«|jr| d|j›d�¦«| ||¦«|jr:|j d¦«s"| d|j›d�¦«dSdSdS)zVisit regular imports.r0rŽr�r‹úcontext.exported_vars.discard(rBN)rïr—rQr7r›rFrÑÚ startswithr½s r4Ú visit_ImportzCodeGenerator.visit_ImportHsÒ€à �Š˜%œ-×+Ò+¨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ð Nr6c ó0‡—| |¦«| d¦«| |‰¦«g}g}|jD�]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 kr<|d }| d|›d‰j |¦«›�¦«n:d ˆfd„|D¦«¦«}| d|›d�¦«|rwt|¦«d kr!| d|d ›d �¦«dSd t#t$|¦«¦«} | d| ›d�¦«dSdS)zVisit named imports.zincluded_template = z = getattr(included_template, z , missing)rLrMz9the template {included_template.__name__!r} (imported on z%) does not export the requested name z = undefined(fz, name=rBr‹r rrŽr�r?c3óV•K—|]#}|›d‰j |¦«›�V—Œ$dSrl)r—rQ)rerSr*s €r4rgz1CodeGenerator.visit_FromImport..xsRøèè€ð%ð%Ø?C�tÐ:Ð: ¤×!2Ò!2°4Ñ!8Ô!8Ð:Ð:ð%ð%ð%ð%ð%ð%r6r�r�rÓz)context.exported_vars.difference_update((róN)rrFrÑr|rYrtrïr—rQrõrirör›r rÔrTr5r”rb) r'r)r*Ú var_namesÚdiscarded_namesrSr°ÚmessageÚnames_kvr—s ` r4Úvisit_FromImportzCodeGenerator.visit_FromImportSsø€à � Š �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ñôðððð  ð r6cóÒ—| ¦«}d|_| ¦«}| ¦«}|jp[dt| d¬¦«d¦«vp5t d„| tj¦«D¦«¦«}d}|r|j   d¦«}|j   |d¬¦«|j r|j   |d ¬¦«|j �rð| ¦«}|j   |d ¬¦«| | |¦«›d �|j ¦«| ¦«| |¦«| | d d ¦«¦«| |j|¦«| d¦«| | dd¦«¦«| d¦«| ¦«| d|j ¦«| |j |¦«| d¦«| ¦«| d¦«| |j|¦«| d¦«| |d¬¦«|jra| | d¦«›d�|¦«| ¦«| |¦«|j|_|r| |›d�¦«| tj¦«D]3} | jdkr&| jdkr| d| j¦«Œ4|j r,| ¦«} | | ›d�¦«| | d d ¦«|¦«| |j|¦«|r0| d|›d| d¦«›d�¦«n| d¦«|j r| |›d�¦«|jr| d¦«na|jj r|s| d ¦«| |j!|¦«|jj r|s| d!¦«|j r| d!¦«|jr| d"¦«n| |rd#nd¦«| ¦«| |¦«| d$¦«| "|j#|¦«|j r| | ›d%�¦«| ¦«| ||jo|j ¬¦«|j r†| d| ›d�¦«| ¦«| |¦«| "|j |¦«| |¦«| ¦«|jrñ| $|¦«| ¦«| %||¦«| | d&¦«›d'�¦«|jj r| d ¦«| |j!|¦«|jj r| d!¦«| d(¦«| &|¦«|j'r,|j'd) (|j j)¦«dSdS)*NTÚloop)rR)Úonly)rÞc3ó$K—|] }|jV—Œ dSr.)r¹)reršs r4rgz*CodeGenerator.visit_For..’s$èè€ÐHÐH E�5”<ÐHÐHÐHÐHÐHÐHr6rR)Ú for_branchÚelseÚtestz(fiter):z async for zfor rhzauto_aiter(fiter)Úfiterú:rLrþérNz%(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(rBz&, undefined, loop_render_func, depth):z , undefined):z_loop_vars = {}z = 0rÌzloop(z, loop)r))*r«r�Ú recursiver�Úiter_child_nodesrr§r rÆr—rVrOÚelse_rãrírïrFrõr:rDr2r7rFrör=r™rÐrËrSrêrèrCrCr“rrRrørrrãÚdifference_updateÚstores) r'r)r*r�Ú test_frameÚ else_frameÚ extended_loopÚloop_refÚloop_filter_funcrSÚiteration_indicators r4Ú visit_ForzCodeGenerator.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ð Pr6có(—| ¦«}| d|¦«| |j|¦«| d¦«| ¦«| |j|¦«| ¦«|j D]‹}| d|¦«| |j|¦«| d¦«| ¦«| |j|¦«| ¦«ŒŒ|j rZ| d¦«| ¦«| |j |¦«| ¦«dSdS)NrLråzelif rô) r­rïr2rãrFrõrrRröÚelif_rì)r'r)r*Úif_framer÷s r4Úvisit_IfzCodeGenerator.visit_IfsN€Ø—:’:‘<”<ˆØ �Š�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ð  ð r6có°—| ||¦«\}}| ¦«|jrV|j d¦«s| d|j›d�¦«| d|j›d�¦«| |j |j¦«›d�¦«|  ||¦«dS)Nr‹r‘rBrŽr�r0) r_rr›rSrÔrFrïr—rQrf)r'r)r*Ú macro_framerZs r4Ú visit_MacrozCodeGenerator.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 +Ñ.Ô.Ð.Ð.Ð.r6có—| ||¦«\}}| d¦«| ||¦«| ||¦«| |j|d¬¦«| |¦«dS)Nz caller = T)Úforward_caller)r_rïrfrÚ visit_CallÚcallr)r'r)r*Ú call_framerZs r4Úvisit_CallBlockzCodeGenerator.visit_CallBlock/sˆ€Ø $§¢°°eÑ <Ô <ш �IØ �Š�{Ñ#Ô#Ð#Ø �Š�y *Ñ-Ô-Ð-Ø ×Ò˜ Ñ%Ô%Ð%Ø �Š˜œ  5¸ˆÑ>Ô>Ð>Ø �Š�uÑÔÐÐÐr6có¢—| ¦«}|j |¦«| |¦«| |¦«| |j|¦«| ||¦«| |j |¦«|  |¦«|  |¦«dSr.) r«r—rOr:r™rrRrr½Úfilterrr=)r'r)r*Ú filter_frames r4Úvisit_FilterBlockzCodeGenerator.visit_FilterBlock7s¼€Ø—{’{‘}”}ˆ ØÔ×)Ò)¨$Ñ/Ô/Ð/Ø ×Ò˜Ñ&Ô&Ð&Ø � Š �LÑ!Ô!Ð!Ø �Š˜œ  <Ñ0Ô0Ð0Ø ×Ò˜ Ñ%Ô%Ð%Ø ×Ò˜$œ+ |Ñ4Ô4Ð4Ø �Š�uÑÔÐØ ×Ò˜Ñ&Ô&Ð&Ð&Ð&r6cóÖ—| ¦«}|j |¦«| |¦«t |j|j¦«D]Z\}}| ¦«| ||¦«|  d¦«| ||¦«Œ[|  |j |¦«|  |¦«dS©Nr0) r«r—rOr:ÚzipÚtargetsÚvaluesrr2rFrrRr=)r'r)r*Ú with_framer7Úexprs r4Ú visit_WithzCodeGenerator.visit_WithBsՀؗ[’[‘]”]ˆ ØÔ×'Ò'¨Ñ-Ô-Ð-Ø ×Ò˜Ñ$Ô$Ð$Ý ¤ ¨d¬kÑ:Ô:ð $ð $‰LˆF�DØ �LŠL‰NŒNˆNØ �JŠJ�v˜zÑ *Ô *Ð *Ø �JŠJ�uÑ Ô Ð Ø �JŠJ�t˜UÑ #Ô #Ð #Ð #Ø �Š˜œ  :Ñ.Ô.Ð.Ø ×Ò˜Ñ$Ô$Ð$Ð$Ð$r6cóf—| |¦«| |j|¦«dSr.)rr2r)r½s r4Úvisit_ExprStmtzCodeGenerator.visit_ExprStmtNs0€Ø � Š �TÑÔÐØ � Š �4”9˜eÑ$Ô$Ð$Ð$Ð$r6cój—eZdZUejejdefed<ejeed<dS)úCodeGenerator._FinalizeInfo.ÚconstÚsrcN)r‹rŒr�r8r°ÚCallablersÚ__annotations__r‘r6r4Ú _FinalizeInforRsB€€€€€€ØŒz˜!œ* S¨# XÔ.Ô/Ð/Ð/Ñ/Ø ŒZ˜Œ_ÐÐÑÐÐr6rr`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. )rsr{s r4Ú_default_finalizezCodeGenerator._default_finalizeVs€õ �5‰zŒzÐr6Ú _finalizecóꇇ‡—‰j�‰jS‰jx}Šd}‰jjrªd}‰jjŠtjdtjdtjdi t j‰¦«¦«}d}|€ dtj dtj fˆˆfd„ }n-|›|›d �}|dkr dtj dtj fˆˆˆfd „ }‰  ||¦«‰_‰jS) 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. Nzenvironment.finalize(rÕúcontext.eval_ctxrCr`r%có,•—‰‰|¦«¦«Sr.r‘)r`r^Ú env_finalizes €€r4Úfinalizez.CodeGenerator._make_finalize..finalize‚sø€Ø"˜7 < <°Ñ#6Ô#6Ñ7Ô7Ð7r6r?có8•—‰‰‰j|¦«¦«Sr.)rC)r`r^rr's €€€r4rz.CodeGenerator._make_finalize..finalizeŠs"ø€Ø&˜w | |°DÔ4DÀeÑ'LÔ'LÑMÔMÐMr6) rrrCrrrÕÚ eval_contextÚgetÚfrom_objr8r9r)r'rrÚpass_argr^rs` @@r4Ú_make_finalizezCodeGenerator._make_finalize`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ó:—tt|¦«¦«S)z™Given a group of constant values converted from ``Output`` child nodes, produce a string to write to the template module source. )rbr)r'r&s r4Ú_output_const_reprz CodeGenerator._output_const_repr�s€õ •F˜5‘M”MÑ"Ô"Ð"r6rcóè—| |j¦«}|jjrt|¦«}t |t j¦«rt|¦«S| |¦«S)aCTry 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_constr0r÷rrYr Ú TemplateDatarsr)r'r)r*rrs r4Ú_output_child_to_constz$CodeGenerator._output_child_to_const—sd€ð— ’ ˜eœnÑ-Ô-ˆà Œ>Ô $ð "ݘ5‘M”MˆEõ �d�EÔ.Ñ /Ô /ð Ý�u‘:”:Ð à�~Š~˜eÑ$Ô$Ð$r6cóþ—|jjr| d¦«n7|jjr| d¦«n| d¦«|j�| |j¦«dSdS)zXOutput extra source code before visiting a child of an ``Output`` node. z1(escape if context.eval_ctx.autoescape else str)(zescape(zstr(N)r0r1rFr÷r©r'r)r*rs r4Ú_output_child_prezCodeGenerator._output_child_pre¬s…€ð Œ>Ô "ð Ø �JŠJÐJÑ KÔ KÐ KÐ KØ Œ^Ô &ð Ø �JŠJ�yÑ !Ô !Ð !Ð !à �JŠJ�vÑ Ô Ð à Œ<Ð #Ø �JŠJ�x”|Ñ $Ô $Ð $Ð $Ð $ð $Ð #r6cól—| d¦«|j�| d¦«dSdS)zWOutput extra source code after visiting a child of an ``Output`` node. rBN)rFrr.s r4Ú_output_child_postz CodeGenerator._output_child_post¼s6€ð � Š �3‰Œˆà Œ<Ð #Ø �JŠJ�s‰OŒOˆOˆOˆOð $Ð #r6cóÞ—|jr2|jrdS| d¦«| ¦«| ¦«}g}|jD]Ï} |js-t|t j¦«st j ¦«‚|  |||¦«}n1#t j tf$r|  |¦«YŒ|wxYw|r7t|dt¦«r|d  |¦«Œ¹|  |g¦«ŒÐ|j�bt|¦«dkr| |j›d�¦«n| |j›d�¦«| ¦«|D]ø}t|t¦«rN| |¦«}|j€| d|z¦«ŒL| |dz¦«Œe|j€| d|¦«n| |¦«| |||¦«| ||¦«| |||¦«|j�| d¦«Œù|j�>| ¦«| t|¦«dkrdnd ¦«|jr| ¦«dSdS) Nr·r)r rÿz .extend((rþrcrBró)r˜rÚrïrõr%r rrYr+Ú Impossibler,Ú Exceptionr rur™rTr(rr/r2r1rFrö) r'r)r*rrRÚchildrÚitemÚvals r4Ú visit_OutputzCodeGenerator.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ÃCcó—| ¦«| |¦«| |j|¦«| d¦«| |j|¦«| |¦«dSr)rˆrr2r7rFr)r˜r½s r4Ú visit_AssignzCodeGenerator.visit_Assigns~€Ø ×!Ò!Ñ#Ô#Ð#Ø � Š �TÑÔÐØ � Š �4”; Ñ&Ô&Ð&Ø � Š �5ÑÔÐØ � Š �4”9˜eÑ$Ô$Ð$Ø × Ò  Ñ'Ô'Ð'Ð'Ð'r6có¬—| ¦«| ¦«}d|_|j |¦«| |¦«| |¦«| |j|¦«|  |¦«|  |j |¦«|  d¦«|j �| |j |¦«n|  d|j›d�¦«|  d¦«| |¦«| |¦«dS)NFz9 = (Markup if context.eval_ctx.autoescape else identity)(úconcat(rB)rˆr«r˜r—rOr:r™rrRrr2r7rFrr½r˜r=)r'r)r*ržs r4Úvisit_AssignBlockzCodeGenerator.visit_AssignBlocks:€Ø ×!Ò!Ñ#Ô#Ð#Ø—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‰ŒˆØ × Ò  Ñ'Ô'Ð'Ø ×Ò˜Ñ%Ô%Ð%Ð%Ð%r6c óì—|jdkrA|js|js|jr,|jr%|jd |j¦«|j |j¦«}|jdkrh|j  |¦«}|�&|dtkr|  |¦«r&|  d|j›d|›d|›d�¦«dS|  |¦«dS) Nrçr)rÊrz(undefined(name=z) if z is missing else rB) rËr›r�ržrãr¼rSr—rQÚ find_loadrr†rF)r'r)r*rQrÊs r4rÍzCodeGenerator.visit_Name6s€Ø Œ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‰Œˆˆˆr6có0—|j |j¦«}| d|›d�¦«| ¦«| d¦«| ¦«| |›d|j›d�¦«dS)Nzif not isinstance(z , Namespace):zMraise TemplateRuntimeError("cannot assign attribute on non-namespace object")r&r')r—rQrSrïrõröÚattr)r'r)r*rQs r4Ú visit_NSRefzCodeGenerator.visit_NSRefOsœ€ðŒm×Ò ¤ Ñ*Ô*ˆØ �ŠÐ>¨CÐ>Ð>Ð>Ñ?Ô?Ð?Ø � Š ‰ Œ ˆ Ø �Šð Bñ ô ð ð � Š ‰ŒˆØ �Š˜#Ð.Ð. ¤ Ð.Ð.Ð.Ñ/Ô/Ð/Ð/Ð/r6cóð—| |j¦«}t|t¦«r$| t |¦«¦«dS| t |¦«¦«dSr.)r*r0rYrprFrsrb)r'r)r*r7s r4Ú visit_ConstzCodeGenerator.visit_Const]sc€Ø�mŠm˜EœNÑ+Ô+ˆÝ �c�5Ñ !Ô !ð "Ø �JŠJ•s˜3‘x”xÑ Ô Ð Ð Ð à �JŠJ•t˜C‘y”yÑ !Ô !Ð !Ð !Ð !r6cóä— | t| |j¦«¦«¦«dS#tj$r"| d|j›d�¦«YdSwxYw©Nz6(Markup if context.eval_ctx.autoescape else identity)(rB)rFrbr*r0r r3Údatar½s r4Úvisit_TemplateDataz CodeGenerator.visit_TemplateDatadsˆ€ð Ø �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| |dkrdnd¦«dS)Nr@r)r?rz,)rB©rFrPrzr2©r'r)r*r]r6s r4Ú visit_TuplezCodeGenerator.visit_Tuplelsˆ€Ø � Š �3‰ŒˆØˆÝ" 4¤:Ñ.Ô.ð $ð $‰IˆC�Øð !Ø— ’ ˜4Ñ Ô Ð Ø �JŠJ�t˜UÑ #Ô #Ð #Ð #Ø � Š ˜3 !š8˜8�4�4¨Ñ-Ô-Ð-Ð-Ð-r6cóè—| d¦«t|j¦«D]2\}}|r| d¦«| ||¦«Œ3| d¦«dS)Nr&r?r'rJrKs r4Ú visit_ListzCodeGenerator.visit_Listusr€Ø � Š �3‰ŒˆÝ" 4¤:Ñ.Ô.ð $ð $‰IˆC�Øð !Ø— ’ ˜4Ñ Ô Ð Ø �JŠJ�t˜UÑ #Ô #Ð #Ð #Ø � Š �3‰Œˆˆˆr6cóR—| d¦«t|j¦«D]g\}}|r| d¦«| |j|¦«| d¦«| |j|¦«Œh| d¦«dS)Nrmr?rr)rFrPrzr2rr`rKs r4Ú visit_DictzCodeGenerator.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Úorznot có —|jjrd}n|jjrd}nd}| |›d�¦«|jD]-}| ||¦«| d¦«Œ.| d¦«dS)Nz8(markup_join if context.eval_ctx.volatile else str_join)Ú markup_joinÚstr_joinz((r?ró)r0r1r÷rFr r2)r'r)r*rÈr!s r4Ú visit_ConcatzCodeGenerator.visit_Concat”sœ€à Œ>Ô "ð #ØRˆIˆIØ Œ^Ô &ð #Ø%ˆIˆIà"ˆIØ � Š �iÐ#Ð#Ð#Ñ$Ô$Ð$Ø”:ð ð ˆCØ �JŠJ�s˜EÑ "Ô "Ð "Ø �JŠJ�tÑ Ô Ð Ð Ø � Š �4ÑÔÐÐÐr6cóЗ| d¦«| |j|¦«|jD]}| ||¦«Œ| d¦«dS)Nr@rB)rFr2r ÚopsrIs r4Ú visit_ComparezCodeGenerator.visit_Compare¢sb€à � Š �3‰ŒˆØ � Š �4”9˜eÑ$Ô$Ð$Ø”(ð "ð "ˆBØ �JŠJ�r˜5Ñ !Ô !Ð !Ð !Ø � Š �3‰Œˆˆˆr6cóŽ—| dt|j›d�¦«| |j|¦«dS)NrA)rFÚ operatorsr<r2r r½s r4Ú visit_OperandzCodeGenerator.visit_OperandªsC€Ø � Š Ð,•y ¤Ô)Ð,Ð,Ð,Ñ-Ô-Ð-Ø � Š �4”9˜eÑ$Ô$Ð$Ð$Ð$r6có*—|jjr| d¦«| d¦«| |j|¦«| d|j›d�¦«|jjr| d¦«dSdS)Nú(await auto_await(zenvironment.getattr(r?rBró)rCrCrFr2r)rAr½s r4Ú visit_GetattrzCodeGenerator.visit_Getattr®sœ€à Ô Ô $ð -Ø �JŠJÐ+Ñ ,Ô ,Ð ,à � Š Ð)Ñ*Ô*Ð*Ø � Š �4”9˜eÑ$Ô$Ð$Ø � Š Ð&˜œ Ð&Ð&Ð&Ñ'Ô'Ð'à Ô Ô $ð Ø �JŠJ�tÑ Ô Ð Ð Ð ð ð r6cóz—t|jtj¦«rb| |j|¦«| d¦«| |j|¦«| d¦«dS|jjr| d¦«| d¦«| |j|¦«| d¦«| |j|¦«| d¦«|jjr| d¦«dSdS)Nr&r'rczenvironment.getitem(r?rBró) rYr!r ÚSlicer2r)rFrCrCr½s r4Ú visit_GetitemzCodeGenerator.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Ñ Ô Ð Ð Ð ð !ð !r6có*—|j�| |j|¦«| d¦«|j�| |j|¦«|j�2| d¦«| |j|¦«dSdS)Nrå)Ústartr2rFÚstoprûr½s r4Ú visit_SlicezCodeGenerator.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—|jjr| d¦«|rM| |j|j›d�¦«|jj |j¦«}nL| |j|j›d�¦«|jj |j¦«}|€4|js-|rdnd}| d|›d|j›d�|j ¦«tj dtj d tjd i tj |¦«¦«}|�| |›d �¦«dV—| ||¦«| d ¦«|jjr| d ¦«dSdS) Núawait auto_await(r@rrãzNo r*rœrÕrrCr?rB)rCrCrFr·rSr"r¸rŸrêrèrrÕr!r#r#)r'r)r*rlrFÚ 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�s‰OŒOˆOˆOˆOð ð r6có¤—| ||d¦«5|j�| |j|¦«n||jjr'| d|j›d|j›d�¦«nI|jjr| d|j›d�¦«n| d|j›d�¦«ddd¦«dS#1swxYwYdS)NTz(Markup(concat(z.)) if context.eval_ctx.autoescape else concat(rózMarkup(concat(r<rB)rpr)r2r0r1rFr™r÷r½s r4r½zCodeGenerator.visit_FiltersH€à × %Ò % 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|¦«ddd¦«dS#1swxYwYdSr…)rpr2r)r½s r4r¿zCodeGenerator.visit_Tests”€à × %Ò % d¨E°5Ñ 9Ô 9ð )ð )Ø �JŠJ�t”y %Ñ (Ô (Ð (ð )ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )s˜AÁAÁAcól‡‡‡—‰ ¦«Šdˆˆˆfd„ }‰ d¦«‰ ‰j‰¦«‰ d¦«‰ ‰j‰¦«‰ d¦«|¦«‰ d¦«dS)Nr%c󨕗‰j�‰ ‰j‰¦«dS‰ d‰ ‰¦«›d�¦«dS)Nz1cond_expr_undefined("the inline if-expression on z6 evaluated to false and no else section was defined."))Úexpr2r2rFri)r*r)r's€€€r4Ú write_expr2z1CodeGenerator.visit_CondExpr..write_expr2siø€ØŒzÐ%Ø— ’ ˜4œ: uÑ-Ô-Ð-Ø�à �JŠJð+Ø—M’M $Ñ'Ô'ð+ð+ð+ñ ô ð ð ð r6r@z if z else rBrÃ)r­rFr2Úexpr1rã)r'r)r*rvs``` r4Úvisit_CondExprzCodeGenerator.visit_CondExprs¹øøø€à— ’ ‘ ” ˆð ð ð ð ð ð ð ð ð � Š �3‰ŒˆØ � Š �4”:˜uÑ%Ô%Ð%Ø � Š �6ÑÔÐØ � Š �4”9˜eÑ$Ô$Ð$Ø � Š �8ÑÔÐØˆ ‰ Œ ˆ Ø � Š �3‰Œˆˆˆr6rþcó—|jjr| d¦«|jjr| d¦«n| d¦«| |j|¦«|rddind}|jrddini}|jrddini}|r|j|fi|¤Žn|s|r t|fi|¤Ž}|  |||¦«| d¦«|jjr| d¦«dSdS)Nrnzenvironment.call(context, z context.call(rHÚ _loop_varsÚ _block_varsrB) rCrCrFrDr2r)r�ržr¥ryr#)r'r)r*rþrÚ loop_kwargsÚ block_kwargss r4rÿzCodeGenerator.visit_Call0sN€ð Ô Ô $ð ,Ø �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�s‰OŒOˆOˆOˆOð ð r6cóv—| |jdz¦«| |j|¦«dS)Nr)rFrr2r`r½s r4Ú visit_KeywordzCodeGenerator.visit_KeywordGs6€Ø � Š �4”8˜c‘>Ñ"Ô"Ð"Ø � Š �4”:˜uÑ%Ô%Ð%Ð%Ð%r6có�—| d¦«| |j|¦«| d¦«dS)NzMarkup(rB©rFr2r r½s r4Úvisit_MarkSafezCodeGenerator.visit_MarkSafeMs=€Ø � Š �9ÑÔÐØ � Š �4”9˜eÑ$Ô$Ð$Ø � Š �3‰Œˆˆˆr6có�—| d¦«| |j|¦«| d¦«dSrFr�r½s r4Úvisit_MarkSafeIfAutoescapez(CodeGenerator.visit_MarkSafeIfAutoescapeRs@€ð � Š ÐKÑLÔLÐLØ � Š �4”9˜eÑ$Ô$Ð$Ø � Š �3‰Œˆˆˆr6có@—| d|jz¦«dS)Nz environment.©rFrSr½s r4Úvisit_EnvironmentAttributez(CodeGenerator.visit_EnvironmentAttributeYs#€ð � Š �> D¤IÑ-Ñ.Ô.Ð.Ð.Ð.r6cóP—| d|j›d|j›�¦«dS)Nzenvironment.extensions[z].)rFÚ identifierrSr½s r4Úvisit_ExtensionAttributez&CodeGenerator.visit_ExtensionAttribute^s1€ð � Š ÐM¨T¬_ÐMÐMÀ$Ä)ÐMÐMÑNÔNÐNÐNÐNr6cóP—| |j|j¦«dSr.)rFr×r©r½s r4Úvisit_ImportedNamez CodeGenerator.visit_ImportedNamecs$€Ø � Š �4Ô& t¤Ô7Ñ8Ô8Ð8Ð8Ð8r6có:—| |j¦«dSr.r†r½s r4Úvisit_InternalNamez CodeGenerator.visit_InternalNamefs€Ø � Š �4”9ÑÔÐÐÐr6có0—| d¦«dS)NrÕ)rFr½s r4Úvisit_ContextReferencez$CodeGenerator.visit_ContextReferenceis€ð � Š �9ÑÔÐÐÐr6cóV—| | |¦«¦«dSr.)rFr„r½s r4Úvisit_DerivedContextReferencez+CodeGenerator.visit_DerivedContextReferencens*€ð � Š �4×&Ò& uÑ-Ô-Ñ.Ô.Ð.Ð.Ð.r6có2—| d|¦«dS)NÚcontinuerrr½s r4Úvisit_ContinuezCodeGenerator.visit_Continuess€Ø �Š�z 4Ñ(Ô(Ð(Ð(Ð(r6có2—| d|¦«dS)NÚbreakrrr½s r4Ú visit_BreakzCodeGenerator.visit_Breakvs€Ø �Š�w Ñ%Ô%Ð%Ð%Ð%r6cóì—| ¦«}|j |¦«| |¦«| |j|¦«| |¦«dSr.)r«r—rOr:rrRr=)r'r)r*Ú scope_frames r4Ú visit_ScopezCodeGenerator.visit_Scopeysj€Ø—k’k‘m”mˆ ØÔ×(Ò(¨Ñ.Ô.Ð.Ø ×Ò˜Ñ%Ô%Ð%Ø �Š˜œ  ;Ñ/Ô/Ð/Ø ×Ò˜Ñ%Ô%Ð%Ð%Ð%r6có*—| ¦«}| |›d| |¦«›�¦«| |›d�¦«| |j|¦«| |¦«| d¬¦«}|j |¦«|  |¦«|  |j |¦«|  |¦«|  ¦«dS)Nr0z.vars = T)r©)rírïr„r2rÕr{r«r—rOr:rrRr=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ˆ ØÔ×(Ò(¨Ñ.Ô.Ð.Ø ×Ò˜Ñ%Ô%Ð%Ø �Š˜œ  ;Ñ/Ô/Ð/Ø ×Ò˜Ñ%Ô%Ð%Ø ×"Ò"Ñ$Ô$Ð$Ð$Ð$r6cóD—|jD]—}| d|j›d�¦«| |j|¦« |j |j¦«}t|j|j|¦«Œw#tj $rd|j_ YŒ”wxYwdS)Nzcontext.eval_ctx.r0T) Úoptionsrïrr2r`r*r0Úsetattrr r3r1)r'r)r*Úkeywordr7s 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ÂBcób—| ¦«}|j ¦«}| |›d�¦«| ||¦«|jD]}| ||¦«Œ|j |¦«| d|›d�¦«dS)Nz = context.eval_ctx.save()zcontext.eval_ctx.revert(rB)rír0Úsaverïr¢rRr2Úrevert)r'r)r*Ú old_ctx_nameÚ saved_ctxr5s 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�r8r°rsÚTextIOrnrŠÚpropertyrWrorêrír+r™rørõrör ÚNoderrrrÏrrFrïrrŽÚCallrÄrÅÚMappingr9r#r.r:r=rDrFr�r�rÅrƒr_rfrirprsrWrYrXr{r}r€r3r„r†rˆr˜rZrµrÆrÁr¦r¾ÚIncluderÊÚImportÚ FromImportrÑrÕrÜÚForrõÚIfrùrürÚ FilterBlockrÚWithrÚExprStmtrÚ NamedTuplerÚ staticmethodrrrr%r(r7r,r/r1ÚOutputr8ÚAssignr:Ú AssignBlockr=rÐrÍÚNSRefrBrÄrDr+rHrLrÆrNÚDictrPrMÚ 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ÚGetitemrgrfrkrÚIteratorrpr½r¿ÚCondExprrxrÿÚKeywordrÚMarkSafer‚ÚMarkSafeIfAutoescaper„ÚEnvironmentAttributer‡ÚExtensionAttributerŠr¨rŒÚ InternalNamerŽÚContextReferencer�ÚDerivedContextReferencer’ÚContinuer•ÚBreakr˜ÚScoper›Ú OverlayScoper�ÚEvalContextModifierr¢ÚScopedEvalContextModifierr¨r‘r6r4r(r(,s,€€€€€€ð (,Ø ØðG4ðG4à"ðG4ðŒj˜ŒoðG4ð”*˜S”/ð G4ð ” ˜1œ8Ô$ð G4ð ð G4ððG4ð ðG4ðG4ðG4ðG4ð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ð¨ððððð DHððØðØ"ðØ*+¬*°U´ZÔ*@ðà ððððð  ¤ ¨5¬:Ô 6ð ¸uð Èð ð ð ð ð �sð ˜tð ð ð ð ðIJððØðØœ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°%´*Ô'=ð)À$ð)ð)ð)ð)ðV> ð>¨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ðu9ðu9Ø”Nðu9Ø+,¬:°eÔ+<ðu9à ðu9ðu9ðu9ðu9ðn) ¤ ð)°Eð)¸dð)ð)ð)ð)ðV)! %¤-ð)!¸ð)!À$ð)!ð)!ð)!ð)!ðV1 %¤-ð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ðdIP˜eœiðIP°ðIP¸$ðIPðIPðIPðIPð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Ø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ððððð2$(ØØððØ Œ.ðàðð Œ*�SŒ/ððŒj˜Œoð ð ŒJ�q”xÔ ð ð ð ððð„Z�„_ððððð0˜œð 4ððððð" Ø Œ:�e”jÔ !ð Ø*+¬*°S¬/ð à„Uˆ3„Zð ð ð ð ð&ð&ð&ð&ð&ñ&ô&ð&ðPðPðPðPðPñPôPðPðfJðJðJðJðJ�,ñJôJðJð'ð'ð'ð'ð'˜kñ'ô'ð'ð&&ð&ð&ð&ð&˜Kñ&ô&ð&ð,ðððð�9ñôððyCðyCðyCðyCðyC�KñyCôyCðyCðyCðyCr6