/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__/nodes.cpython-311.pyc (64500B)
§ €[õÂ~påhã óx —UdZddlZddlZddlZddlmZddlmZddl m Z ej r ddl Z ddlmZejdd ¬ ¦«Zejejejejejejejd œZejeejejejgejffed <ejej ej!d œZ"ejeejejgejffed<ej#ej$ej%ej&ej'ej(d„d„dœZ)ejeejejejgejffed<Gd„de*¦«Z+Gd„de,¦«Z-Gd„d¦«Z.dd dej/e.de.fd„Z0Gd„d e-¬¦«Z1Gd„d e1¦«Z2Gd!„d"e1¦«Z3Gd#„d$e1¦«Z4Gd%„d&e2¦«Z5Gd'„d(e2¦«Z6Gd)„d*e2¦«Z7Gd+„d,e2¦«Z8Gd-„d.e2¦«Z9Gd/„d0e2¦«Z:Gd1„d2e2¦«Z;Gd3„d4e2¦«Z<Gd5„d6e2¦«Z=Gd7„d8e2¦«Z>Gd9„d:e2¦«Z?Gd;„de2¦«ZAGd?„d@e2¦«ZBGdA„dBe2¦«ZCGdC„dDe1¦«ZDGdE„dFeD¦«ZEGdG„dHeD¦«ZFGdI„dJeD¦«ZGGdK„dLeD¦«ZHGdM„dNeD¦«ZIGdO„dPeI¦«ZJGdQ„dReI¦«ZKGdS„dTeI¦«ZLGdU„dVeI¦«ZMGdW„dXeI¦«ZGdY„dZe3¦«ZNGd[„d\e3¦«ZOGd]„d^eD¦«ZPdejQd_d`ej/e.dejLejMejejejejfffda„ZRGdb„dceD¦«ZSGdd„deeS¦«ZTGdf„dgeS¦«ZUGdh„dieD¦«ZVGdj„dkeD¦«ZWGdl„dmeD¦«ZXGdn„doeD¦«ZYGdp„dqeD¦«ZZGdr„dseD¦«Z[Gdt„due3¦«Z\Gdv„dweE¦«Z]Gdx„dyeE¦«Z^Gdz„d{eE¦«Z_Gd|„d}eE¦«Z`Gd~„deE¦«ZaGd€„d�eE¦«ZbGd‚„dƒeE¦«ZcGd„„d…eE¦«ZdGd†„d‡eE¦«ZeGdˆ„d‰eF¦«ZfGdŠ„d‹eF¦«ZgGdŒ„d�eF¦«ZhGdŽ„d�eD¦«ZiGd�„d‘eD¦«ZjGd’„d“eD¦«ZkGd”„d•eD¦«ZlGd–„d—eD¦«ZmGd˜„d™eD¦«ZnGdš„d›eD¦«ZoGdœ„d�eD¦«ZpGdž„dŸe2¦«ZqGd „d¡e2¦«ZrGd¢„d£e2¦«ZsGd¤„d¥e2¦«ZtGd¦„d§e2¦«ZuGd¨„d©eu¦«Zvdªejd«ejdd¬fd­„Zwexew¦«e-_y[wdS)®zŸAST nodes generated by the parser for the compiler. Also provides some node tree helper functions used by the parser and compiler in order to normalize nodes. éN)Údeque)ÚMarkupé)Ú_PassArg)Ú EnvironmentÚ _NodeBoundÚNode)Úbound)Ú*ú/ú//ú**ú%ú+ú-Ú_binop_to_func)ÚnotrrÚ _uaop_to_funccó —||vS©N©©ÚaÚbs ú^/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/jinja2/nodes.pyúr+s €�q˜A�v€ócó —||vSrrrs rrr,s €˜! 1˜*€r)ÚeqÚneÚgtÚgteqÚltÚlteqÚinÚnotinÚ_cmpop_to_funccó—eZdZdZdS)Ú Impossiblez8Raised if the node could not perform a requested action.N©Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrr)r)0s€€€€€ØBÐBÐBÐBrr)có—eZdZdZd„ZdS)ÚNodeTypez¦A metaclass for nodes that handles the field and attribute inheritance. fields and attributes from the parent class are automatically forwarded to the child.cóú—dD]Æ}g}| t|r|dnt|d¦«¦«| | |d¦«¦«t |¦«dks Jd¦«‚t |¦«t t |¦«¦«ks Jd¦«‚t |¦«||<ŒÇ| dd¦«t  ||||¦«S) N)ÚfieldsÚ attributesrrrz multiple inheritance not allowedzlayout conflictÚabstractF) ÚextendÚgetattrÚobjectÚgetÚlenÚsetÚtupleÚ setdefaultÚtypeÚ__new__)ÚmcsÚnameÚbasesÚdÚattrÚstorages rr>zNodeType.__new__9s䀨*ð %ð %ˆD؈GØ �NŠN�7¨uÐ#@ 5¨¤8 8½&À$ÈÑKÔKÑ LÔ LÐ LØ �NŠN˜1Ÿ5š5  r™?œ?Ñ +Ô +Ð +Ý�u‘:”: ’?�?�?Ð$F‘?”?�?Ý�w‘<”<¥3¥s¨7¡|¤|Ñ#4Ô#4Ò4Ð4Ð4Ð6GÑ4Ô4Ð4ݘG‘n”nˆAˆd‰GˆGØ � Š �Z Ñ'Ô'Ð'Ý�|Š|˜C  u¨aÑ0Ô0Ð0rN)r+r,r-r.r>rrrr0r04s-€€€€€ð-ð-ð 1ð 1ð 1ð 1ð 1rr0có¤—eZdZdZ d dddejeddfd„Zdejeej ffd„Z d ejeej fddfd „Z dS) Ú EvalContextzcHolds evaluation time information. Custom attributes can be attached to it in extensions. NÚ environmentrÚ template_nameÚreturncó˜—||_t|j¦«r| |¦«|_n |j|_d|_dS©NF)rGÚcallableÚ autoescapeÚvolatile)ÚselfrGrHs rÚ__init__zEvalContext.__init__JsK€ð'ˆÔÝ �KÔ*Ñ +Ô +ð 5Ø)×4Ò4°]ÑCÔCˆDŒOˆOà)Ô4ˆDŒO؈Œ ˆ ˆ rcó4—|j ¦«Sr)Ú__dict__Úcopy©rOs rÚsavezEvalContext.saveTs€ØŒ}×!Ò!Ñ#Ô#Ð#rÚoldcól—|j ¦«|j |¦«dSr)rRÚclearÚupdate)rOrVs rÚrevertzEvalContext.revertWs2€Ø Œ ×ÒÑÔÐØ Œ ×Ò˜SÑ!Ô!Ð!Ð!Ð!rr) r+r,r-r.ÚtÚOptionalÚstrrPÚMappingÚAnyrUrZrrrrFrFEs³€€€€€ððð LPððØ(ðØ9:¼ÀC¼ðà ððððð$�a”i  Q¤U  Ô+ð$ð$ð$ð$ð"˜!œ) C¨¬ JÔ/ð"°Dð"ð"ð"ð"ð"ð"rrFÚnodeÚctxrIcó^—|€*|j€td¦«‚t|j¦«S|S)NzIif no eval context is passed, the node must have an attached environment.)rGÚ RuntimeErrorrF)r`ras rÚget_eval_contextrd\s?€Ø €{Ø Ô Ð #Ýð)ñôð õ˜4Ô+Ñ,Ô,Ð,Ø €Jrc ó—eZdZUdZdZejedfed<dZ ejedfed<dZ e ed<ej d ed <dej dej d d fd „Z ddej ejedej ejed ejejeej ffd„Z ddej ejedej ejed ejdfd„Zdejed ej efd„Zdejejeejejedffd ejefd„Zded dfd„Zd de ded dfd„Zd!d„Zdej d efd„ZejZd efd„Zd efd„Z d S)"r a»Baseclass for all Jinja nodes. There are a number of nodes available of different types. There are four major types: - :class:`Stmt`: statements - :class:`Expr`: expressions - :class:`Helper`: helper nodes - :class:`Template`: the outermost wrapper node All nodes have fields and attributes. Fields may be other nodes, lists, or arbitrary values. Fields are passed to the constructor as regular positional arguments, attributes as keyword arguments. Each node has two attributes: `lineno` (the line number of the node) and `environment`. The `environment` attribute is set at the end of the parsing process for all nodes automatically. r.r2©ÚlinenorGr3TrgrrGrINc ó’—|jrtd¦«‚|rÑt|¦«t|j¦«kr€|js$tt |¦«j›d�¦«‚tt |¦«j›dt|j¦«›dt|j¦«dkrdnd›�¦«‚t |j|¦«D]\}}t|||¦«Œ|jD]'}t|||  |d¦«¦«Œ(|r,tdtt|¦«¦«›�¦«‚dS) Nz#abstract nodes are not instantiablez takes 0 argumentsz takes 0 or z argumentrÚsÚzunknown attribute ) r4Ú TypeErrorr9r2r=r+ÚzipÚsetattrr3ÚpopÚnextÚiter)rOr2r3r@ÚargrCs rrPz Node.__init__sy€Ø Œ=ð CÝÐAÑBÔBÐ BØ ð )Ý�6‰{Œ{�c $¤+Ñ.Ô.Ò.Ð.Ø”{ðRÝ#¥t¨D¡z¤zÔ':Ð$PÐ$PÐ$PÑQÔQÐQÝݘD‘z”zÔ*ðGðG½#¸d¼kÑ:JÔ:JðGðGÝ'*¨4¬;Ñ'7Ô'7¸1Ò'<Ð'<  À"ðGðGñôðõ! ¤¨fÑ5Ô5ð )ð )‘ ��cݘ˜d CÑ(Ô(Ð(Ð(Ø”Oð <ð <ˆDÝ �D˜$  §¢¨t°TÑ :Ô :Ñ ;Ô ;Ð ;Ð ;Ø ð MÝÐKµµd¸:Ñ6FÔ6FÑ1GÔ1GÐKÐKÑLÔLÐ Lð Mð MrÚexcludeÚonlyc#óŠK—|jD]8}|€|� |�||vs|�*||vr& |t||¦«fV—Œ(#t$rYŒ4wxYwŒ9dS)aZThis method iterates over all fields that are defined and yields ``(key, value)`` tuples. Per default all fields are returned, but it's possible to limit that to some fields by providing the `only` parameter or to exclude some using the `exclude` parameter. Both should be sets or tuples of field names. N)r2r6ÚAttributeError)rOrrrsr@s rÚ iter_fieldszNode.iter_fields‘sŽèè€ð”Kð ð ˆDà� T \ØÐ'¨D¸Ð,?Ð,?ØÐ$¨°¨¨ðØ¥¨¨dÑ 3Ô 3Ð3Ð3Ð3Ð3Ð3øÝ%ðððØ�Dðøøøøð ð s �2² ?¾?c#óÜK—| ||¦«D]R\}}t|t¦«r|D]}t|t¦«r|V—ŒŒ9t|t¦«r|V—ŒSdS)zÞIterates over all direct child nodes of the node. This iterates over all fields and yields the values of they are nodes. If the value of a field is a list all the nodes in that list are returned. N)rvÚ isinstanceÚlistr )rOrrrsÚ_ÚitemÚns rÚiter_child_nodeszNode.iter_child_nodes§s•èè€ð×'Ò'¨°Ñ6Ô6ð ð ‰GˆAˆtݘ$¥Ñ%Ô%ð Øð ð �AÝ! !¥TÑ*Ô*ð Ø˜˜˜øð õ˜D¥$Ñ'Ô'ð Ø� � � øð  ð rÚ node_typecó<—| |¦«D]}|cSdS)ziFind the first node of a given type. If no such node exists the return value is `None`. N)Úfind_all)rOr~Úresults rÚfindz Node.find¸s-€ð—m’m IÑ.Ô.ð ð ˆF؈MˆMˆMàˆtrc#ó–K—| ¦«D]1}t||¦«r|V—| |¦«Ed{V—†Œ2dS)z€Find all the nodes of a given type. If the type is a tuple, the check is performed for any of the tuple items. N)r}rxr€)rOr~Úchilds rr€z Node.find_allÁsoèè€ð ×*Ò*Ñ,Ô,ð 1ð 1ˆEݘ% Ñ+Ô+ð Ø� � � Ø—~’~ iÑ0Ô0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0ð 1ð 1rracóÄ—t|g¦«}|rM| ¦«}d|jvr||_| | ¦«¦«|°M|S)aReset the context of a node and all child nodes. Per default the parser will all generate nodes that have a 'load' context as it's the most common one. This method is used in the parser to set assignment targets and other nodes to a store context. ra)rÚpopleftr2rar5r})rOraÚtodor`s rÚset_ctxz Node.set_ctxÌsi€õ �d�V‰}Œ}ˆØð 1Ø—<’<‘>”>ˆDؘœ Ð#Ð#Ø�”Ø �KŠK˜×-Ò-Ñ/Ô/Ñ 0Ô 0Ð 0ð ð 1ð ˆ rFÚoverridecóÖ—t|g¦«}|rV| ¦«}d|jvr|j�|r||_| | ¦«¦«|°V|S)z.Set the line numbers of the node and children.rg)rr†r3rgr5r})rOrgr‰r‡r`s rÚ set_linenozNode.set_linenoÚst€å�d�V‰}Œ}ˆØð 1Ø—<’<‘>”>ˆDؘ4œ?Ð*Ð*Ø”;Ð&¨(Ð&Ø"(�D”KØ �KŠK˜×-Ò-Ñ/Ô/Ñ 0Ô 0Ð 0ð ð 1ð ˆ rcó²—t|g¦«}|rD| ¦«}||_| | ¦«¦«|°D|S)z"Set the environment for all nodes.)rr†rGr5r})rOrGr‡r`s rÚset_environmentzNode.set_environmentås[€å�d�V‰}Œ}ˆØð 1Ø—<’<‘>”>ˆDØ*ˆDÔ Ø �KŠK˜×-Ò-Ñ/Ô/Ñ 0Ô 0Ð 0ðð 1ðˆ rÚothercóÔ—t|¦«t|¦«urtSt| ¦«¦«t| ¦«¦«kSr)r=ÚNotImplementedr;rv)rOrŽs rÚ__eq__z Node.__eq__îsR€Ý �‰:Œ:�T %™[œ[Ð (Ð (Ý!Ð !å�T×%Ò%Ñ'Ô'Ñ(Ô(­E°%×2CÒ2CÑ2EÔ2EÑ,FÔ,FÒFÐFrc󄇗d ˆfd„‰jD¦«¦«}t‰¦«j›d|›d�S)Nú, c3óD•K—|]}|›dt‰|d¦«›�V—ŒdS)ú=N)r6)Ú.0rrOs €rú z Node.__repr__..÷s=øèè€ÐTÐTÀ1 Ð>Ð>¥G¨D°!°TÑ$:Ô$:Ð>Ð>ÐTÐTÐTÐTÐTÐTrú(ú))Újoinr2r=r+)rOÚargs_strs` rÚ__repr__z Node.__repr__ösKø€Ø—9’9ÐTÐTÐTÐTÈÌ ÐTÑTÔTÑTÔTˆÝ�t‘*”*Ô%Ð3Ð3¨Ð3Ð3Ð3Ð3rc󢇇—dtjttjfddfˆˆfd„ ŠgЉ|¦«d ‰¦«S)Nr`rIc󼕗t|t¦«s$‰ t|¦«¦«dS‰ dt |¦«j›d�¦«|js‰ d¦«dSt|j¦«D]®\}}|r‰ d¦«t||¦«}t|t¦«rb‰ d¦«t|¦«D]'\}}|r‰ d¦«‰|¦«Œ(‰ d¦«Œ£‰|¦«Œ¯‰ d¦«dS)Nznodes.r˜r™r“ú[ú]) rxr ÚappendÚreprr=r+r2Ú enumerater6ry)r`ÚidxÚfieldÚvaluer{Ú_dumpÚbufs €€rr§zNode.dump.._dumpûsUø€Ý˜d¥DÑ)Ô)ð Ø— ’ �4 ™:œ:Ñ&Ô&Ð&Ø�à �JŠJÐ6¥ T¡ ¤ Ô 3Ð6Ð6Ð6Ñ 7Ô 7Ð 7Ø”;ð Ø— ’ ˜3‘”�Ø�Ý'¨¬ Ñ4Ô4ð !ð !‘ ��UØð%Ø—J’J˜tÑ$Ô$Ð$Ý  eÑ,Ô,�ݘe¥TÑ*Ô*ð!Ø—J’J˜s‘O”O�OÝ%.¨uÑ%5Ô%5ð$ð$™ ˜˜TØð-ØŸJšJ tÑ,Ô,Ð,ؘ˜d™ œ ˜ ˜ Ø—J’J˜s‘O”O�O�Oà�E˜%‘L”L�L�LØ �JŠJ�s‰OŒOˆOˆOˆOrrj)r[ÚUnionr r_rš)rOr§r¨s @@rÚdumpz Node.dumpúsføø€ð �œ¥¥a¤e  Ô,ð °ð ð ð ð ð ð ð ð0ˆØ ˆˆd‰ Œ ˆ Ø�wŠw�s‰|Œ|Ðr©NN)F)rGrrIr )!r+r,r-r.r2r[ÚTupler]Ú__annotations__r3r4Úintr\r_rPÚ ContainerÚIteratorrvr}ÚTyperr‚r©r€rˆÚboolr‹r�r‘r7Ú__hash__rœrªrrrr r gsÉ€€€€€€ððð !#€FˆAŒG�C˜�HÔ Ð"Ð"Ñ"Ø$=€J�”˜˜S˜Ô!Ð=Ð=Ñ=Ø€Hà €K€K�KØ”˜MÔ*Ð*Ð*Ñ*ðM ¤ðM°Q´UðM¸tðMðMðMðMð(15Ø-1ððà”˜AœK¨Ô,Ô-ððŒj˜œ SÔ)Ô*ðð Œ�A”G˜C ¤˜JÔ'Ô (ð ðððð015Ø-1ððà”˜AœK¨Ô,Ô-ððŒj˜œ SÔ)Ô*ðð Œ�FÔ ð ðððð"˜aœf ZÔ0ð°Q´ZÀ Ô5Kððððð 1Øœ ¤¨ Ô!3°Q´W¸Q¼VÀJÔ=OÐQTÐ=TÔ5UÐ!UÔVð 1à Œ�JÔ ð 1ð 1ð 1ð 1ð ˜3ð  6ð ð ð ð ð ð  ð °ð Àð ð ð ð ðððððG˜AœEðG dðGðGðGðG𠌀Hð4˜#ð4ð4ð4ð4ð�cððððððr)Ú metaclasscó—eZdZdZdZdS)ÚStmtzBase node for all statements.TN©r+r,r-r.r4rrrr¶r¶s€€€€€Ø'Ð'à€H€H€Hrr¶có—eZdZdZdZdS)ÚHelperz,Nodes that exist in a specific context only.TNr·rrrr¹r¹s€€€€€Ø6Ð6à€H€H€Hrr¹có8—eZdZUdZdZejeed<dS)ÚTemplatezjNode that represents a template. This must be the outermost node that is passed to the compiler. ©Úbodyr½N© r+r,r-r.r2r[ÚListr r­rrrr»r»$s5€€€€€€ððð€FØ Œ&�Œ,ÐÐÑÐÐrr»có8—eZdZUdZdZejded<dS)ÚOutputz–A node that holds multiple expressions which are then printed out. This is used both for the `print` statement and the regular template data. ©ÚnodesÚExprrÃN)r+r,r-r.r2r[r¿r­rrrrÁrÁ-s5€€€€€€ððð€FØ Œ6�&Œ>ÐÐÑÐÐrrÁcó"—eZdZUdZdZded<dS)ÚExtendsz Represents an extends statement.)ÚtemplaterÄrÇN)r+r,r-r.r2r­rrrrÆrÆ6s)€€€€€€Ø*Ð*à €FØÐÐÑÐÐrrÆcó–—eZdZUdZdZeed<eed<ejeed<ejeed<ej eed<e ed<d S) ÚForaxThe for loop. `target` is the target for the iteration (usually a :class:`Name` or :class:`Tuple`), `iter` the iterable. `body` is a list of nodes that are used as loop-body, and `else_` a list of nodes for the `else` block. If no else node exists it has to be an empty list. For filtered nodes an expression can be stored as `test`, otherwise `None`. )Útargetrpr½Úelse_ÚtestÚ recursiverÊrpr½rËrÌrÍN) r+r,r-r.r2r r­r[r¿r\r²rrrrÉrÉ=st€€€€€€ðððF€FØ €L€L�LØ €J€J�JØ Œ&�Œ,ÐÐÑØ Œ6�$Œ<ÐÐÑØ Œ*�TÔ ÐÐÑØ€O€O�O€O€OrrÉcó‚—eZdZUdZdZeed<ejeed<ejded<ejeed<dS)ÚIfz4If `test` is true, `body` is rendered, else `else_`.)rÌr½Úelif_rËrÌr½rÐrËN) r+r,r-r.r2r r­r[r¿rrrrÏrÏOs\€€€€€€Ø>Ð>à /€FØ €J€J�JØ Œ&�Œ,ÐÐÑØ Œ6�$Œ<ÐÐÑØ Œ6�$Œ<ÐÐÑÐÐrrÏcó‚—eZdZUdZdZeed<ejded<ejded<eje ed<d S) ÚMacrozÀA macro definition. `name` is the name of the macro, `args` a list of arguments and `defaults` a list of defaults if there are any. `body` is a list of nodes for the macro body. )r@ÚargsÚdefaultsr½r@ÚNamerÓrÄrÔr½N) r+r,r-r.r2r]r­r[r¿r rrrrÒrÒYsb€€€€€€ððð 2€FØ €I€I�IØ Œ&�Œ.ÐÐÑØŒf�VŒnÐÐÑØ Œ&�Œ,ÐÐÑÐÐrrÒcó‚—eZdZUdZdZded<ejded<ejded<ejeed <d S) Ú CallBlockz‡Like a macro without a name but a call instead. `call` is called with the unnamed macro as `caller` argument this node holds. )ÚcallrÓrÔr½ÚCallrØrÕrÓrÄrÔr½N) r+r,r-r.r2r­r[r¿r rrrr×r×fsb€€€€€€ððð2€FØ €L€L�LØ Œ&�Œ.ÐÐÑØŒf�VŒnÐÐÑØ Œ&�Œ,ÐÐÑÐÐrr×cóB—eZdZUdZdZejeed<ded<dS)Ú FilterBlockzNode for filter sections.)r½Úfilterr½ÚFilterrÜNr¾rrrrÛrÛrs;€€€€€€Ø#Ð#à €FØ Œ&�Œ,ÐÐÑØ ÐÐÑÐÐrrÛcóx—eZdZUdZdZejded<ejded<ejeed<dS)ÚWithz°Specific node for with statements. In older versions of Jinja the with statement was implemented on the base of the `Scope` node instead. .. versionadded:: 2.9.3 )ÚtargetsÚvaluesr½rÄràrár½N) r+r,r-r.r2r[r¿r­r rrrrßrßzsY€€€€€€ððð +€FØ ŒV�FŒ^ÐÐÑØ ŒF�6ŒNÐÐÑØ Œ&�Œ,ÐÐÑÐÐrrßcóV—eZdZUdZdZeed<eje ed<e ed<e ed<dS)ÚBlockzkA node that represents a block. .. versionchanged:: 3.0.0 the `required` field was added. )r@r½ÚscopedÚrequiredr@r½räråN) r+r,r-r.r2r]r­r[r¿r r²rrrrãrã‡sN€€€€€€ððð 4€FØ €I€I�IØ Œ&�Œ,ÐÐÑØ €L€L�LØ€N€N�N€N€Nrrãcó6—eZdZUdZdZded<eed<eed<dS)ÚIncludez'A node that represents the include tag.)rÇÚ with_contextÚignore_missingrÄrÇrèréN)r+r,r-r.r2r­r²rrrrçrç•sA€€€€€€Ø1Ð1à ;€FØÐÐÑØÐÐÑØÐÐÑÐÐrrçcó6—eZdZUdZdZded<eed<eed<dS)ÚImportz&A node that represents the import tag.)rÇrÊrèrÄrÇrÊrèN)r+r,r-r.r2r­r]r²rrrrërëžs>€€€€€€Ø0Ð0à 3€FØÐÐÑØ €K€K�KØÐÐÑÐÐrrëcó€—eZdZUdZdZded<ejeje ej e e ffed<e ed<dS)Ú FromImportaA node that represents the from import tag. It's important to not pass unsafe names to the name attribute. The compiler translates the attribute lookups directly into getattr calls and does *not* use the subscript callback of the interface. As exported variables may not start with double underscores (which the parser asserts) this is not a problem for regular Jinja code, but if this node is used in an extension extra care must be taken. The list of names may contain tuples if aliases are wanted. )rÇÚnamesrèrÄrÇrîrèN) r+r,r-r.r2r­r[r¿r©r]r¬r²rrrrírí§se€€€€€€ð ð ð3€FØÐÐÑØ Œ6�!”'˜#˜qœw s¨C xÔ0Ð0Ô1Ô 2Ð2Ð2Ñ2ØÐÐÑÐÐrrícó"—eZdZUdZdZeed<dS)ÚExprStmtzAA statement that evaluates an expression and discards the result.©r`r`N)r+r,r-r.r2r r­rrrrðrð¹s$€€€€€€ØKÐKà €FØ €J€J�J€J€Jrrðcó,—eZdZUdZdZded<eed<dS)ÚAssignz"Assigns an expression to a target.)rÊr`rÄrÊr`N)r+r,r-r.r2r­r rrrróróÀs-€€€€€€Ø,Ð,à €FØ €N€N�NØ €J€J�J€J€Jrrócób—eZdZUdZdZded<ejded<eje ed<dS) Ú AssignBlockzAssigns a block to a target.)rÊrÜr½rÄrÊrÝrÜr½N) r+r,r-r.r2r­r[r\r¿r rrrrõrõÈsK€€€€€€Ø&Ð&à )€FØ €N€N�NØ ŒJ�xÔ Ð Ð Ñ Ø Œ&�Œ,ÐÐÑÐÐrrõcóT—eZdZdZdZddejedejfd„Z de fd„Z dS) rÄzBaseclass for all expressions.TNÚeval_ctxrIcó—t¦«‚)anReturn the value of the expression as constant or raise :exc:`Impossible` if this was not possible. An :class:`EvalContext` can be provided, if none is given a default context is created which requires the nodes to have an attached environment. .. versionchanged:: 2.4 the `eval_ctx` parameter was added. )r)©rOr÷s rÚas_constz Expr.as_constÖs€õ‰lŒlÐrcó—dS)z8Check if it's possible to assign something to this node.FrrTs rÚ can_assignzExpr.can_assignãs€àˆurr) r+r,r-r.r4r[r\rFr_rúr²rürrrrÄrÄÑsj€€€€€Ø(Ð(à€Hð ð  ¤¨KÔ!8ð ÀAÄEð ð ð ð ð˜DððððððrrÄcól—eZdZUdZdZeed<eed<eed<dZd de j e d e j fd „Z dS) ÚBinExprz%Baseclass for all binary expressions.)ÚleftÚrightrÿrÚoperatorTNr÷rIcó\—t||¦«}|jjr!|j|jjvrt ¦«‚t |j} ||j |¦«|j  |¦«¦«S#t$r}t ¦«|‚d}~wwxYwr) rdrGÚ sandboxedrÚintercepted_binopsr)rrÿrúrÚ Exception©rOr÷ÚfÚes rrúzBinExpr.as_constñs¬€Ý# D¨(Ñ3Ô3ˆð Ô Ô *ð à”  Ô!5Ô!HÐHÐHå‘,”,Ð Ý ˜4œ=Ô )ˆð &Ø�1�T”Y×'Ò'¨Ñ1Ô1°4´:×3FÒ3FÀxÑ3PÔ3PÑQÔQÐ QøÝð &ð &ð &Ý‘,”, AÐ %øøøøð &øøøsÁ;B  B+ÂB&Â&B+r©r+r,r-r.r2rÄr­r]r4r[r\rFr_rúrrrrþrþèsq€€€€€€Ø/Ð/à €FØ €J€J�JØ €K€K�KØ€M€M�MØ€Hð &ð & ¤¨KÔ!8ð &ÀAÄEð &ð &ð &ð &ð &ð &rrþcób—eZdZUdZdZeed<eed<dZd de j e de j fd „Z dS) Ú UnaryExprz$Baseclass for all unary expressions.rñr`rTNr÷rIcó*—t||¦«}|jjr!|j|jjvrt ¦«‚t |j} ||j |¦«¦«S#t$r}t ¦«|‚d}~wwxYwr) rdrGrrÚintercepted_unopsr)rr`rúrrs rrúzUnaryExpr.as_const sš€Ý# D¨(Ñ3Ô3ˆð Ô Ô *ð à”  Ô!5Ô!GÐGÐGå‘,”,Ð Ý ˜$œ-Ô (ˆð &Ø�1�T”Y×'Ò'¨Ñ1Ô1Ñ2Ô2Ð 2øÝð &ð &ð &Ý‘,”, AÐ %øøøøð &øøøsÁ"A4Á4 BÁ>B  Brr rrrr r sh€€€€€€Ø.Ð.à €FØ €J€J�JØ€M€M�MØ€Hð &ð & ¤¨KÔ!8ð &ÀAÄEð &ð &ð &ð &ð &ð &rr có8—eZdZUdZdZeed<eed<defd„ZdS)rÕa Looks up a name or stores a value in a name. The `ctx` of the node can be one of the following values: - `store`: store a value in the name - `load`: load that name - `param`: like `store` but if the name was defined as function parameter. )r@rar@rarIcó—|jdvS)N>ÚNoneÚTrueÚnoneÚtrueÚFalseÚfalse©r@rTs rrüzName.can_assign&s€ØŒyÐ RÐRÐRrN© r+r,r-r.r2r]r­r²rürrrrÕrÕs[€€€€€€ððð€FØ €I€I�IØ €H€H�HðS˜DðSðSðSðSðSðSrrÕcó8—eZdZUdZdZeed<eed<defd„ZdS)ÚNSRefz)Reference to a namespace value assignment)r@rCr@rCrIcó—dS)NTrrTs rrüzNSRef.can_assign1s €ð ˆtrNrrrrrr*sN€€€€€€Ø3Ð3à €FØ €I€I�IØ €I€I�Ið˜Dððððððrrcó—eZdZdZdZdS)ÚLiteralzBaseclass for literals.TNr·rrrrr9s€€€€€Ø!Ð!à€H€H€Hrrc ó¬—eZdZUdZdZejed<d deje dejfd„Z e d dejdeje d d ddfd „¦«Z dS)ÚConstaAll constant values. The parser will return this node for simple constants such as ``42`` or ``"foo"`` but it can be used to store more complex values such as lists too. Only constants with a safe representation (objects where ``eval(repr(x)) == x`` is true). ©r¦r¦Nr÷rIcó—|jSrrrùs rrúzConst.as_constIs €ØŒzÐrrgrGzt.Optional[Environment]có\—ddlm}||¦«st¦«‚||||¬¦«S)z¨Return a const object if the value is representable as constant value in the generated code, otherwise it will raise an `Impossible` exception. r)Ú has_safe_reprrf)Úcompilerr"r))Úclsr¦rgrGr"s rÚfrom_untrustedzConst.from_untrustedLsI€ð ,Ð+Ð+Ð+Ð+Ð+àˆ}˜UÑ#Ô#ð Ý‘,”,Р؈s�5 °[ÐAÑAÔAÐArrr«)r+r,r-r.r2r[r_r­r\rFrúÚ classmethodr®r%rrrrr?sÈ€€€€€€ððð €FØ Œ5€L€L�Lð𠤨KÔ!8ðÀAÄEðððððð#'Ø15ð BðBàŒuðBð” ˜3”ðBð/ð Bð ð BðBðBñ„[ðBðBðBrrcóJ—eZdZUdZdZeed<ddeje defd„Z dS) Ú TemplateDatazA constant template string.)Údatar)Nr÷rIcó�—t||¦«}|jrt¦«‚|jrt |j¦«S|jSr)rdrNr)rMrr)rùs rrúzTemplateData.as_constdsI€Ý# D¨(Ñ3Ô3ˆØ Ô ð Ý‘,”,Ð Ø Ô ð %ݘ$œ)Ñ$Ô$Ð $ØŒyÐrr) r+r,r-r.r2r]r­r[r\rFrúrrrr(r(^sX€€€€€€Ø%Ð%à €FØ €I€I�Ið𠤨KÔ!8ðÀCððððððrr(cóš—eZdZUdZdZejeed<e ed<d dej e dej ej dffd „Zdefd „ZdS) r¬z¼For loop unpacking and some other things like multiple arguments for subscripts. Like for :class:`Name` `ctx` specifies if the tuple is used for loading the names or storing. )Úitemsrar,raNr÷rI.cód‡—t|‰¦«Štˆfd„|jD¦«¦«S)Nc3óB•K—|]}| ‰¦«V—ŒdSr©rú©r–Úxr÷s €rr—z!Tuple.as_const..ys/øèè€Ð>Ð>¨a�Q—Z’Z Ñ)Ô)Ð>Ð>Ð>Ð>Ð>Ð>r)rdr;r,rùs `rrúzTuple.as_constws7ø€Ý# D¨(Ñ3Ô3ˆÝÐ>Ð>Ð>Ð>°4´:Ð>Ñ>Ô>Ñ>Ô>Ð>rcóH—|jD]}| ¦«sdSŒdS)NFT)r,rü)rOr{s rrüzTuple.can_assign{s6€Ø”Jð ð ˆDØ—?’?Ñ$Ô$ð Ø�u�uð àˆtrr)r+r,r-r.r2r[r¿rÄr­r]r\rFr¬r_rúr²rürrrr¬r¬ms™€€€€€€ððð €FØ Œ6�$Œ<ÐÐÑØ €H€H�Hð?ð? ¤¨KÔ!8ð?ÀAÄGÈAÌEÐSVÈJÔDWð?ð?ð?ð?ð˜Dððððððrr¬có€—eZdZUdZdZejeed<ddej e dejej fd„Z dS) r¿z&Any list literal such as ``[1, 2, 3]``©r,r,Nr÷rIcóJ‡—t|‰¦«Šˆfd„|jD¦«S)Ncó:•—g|]}| ‰¦«‘ŒSrr/r0s €rú z!List.as_const..Šs%ø€Ð9Ð9Ð9¨�— ’ ˜8Ñ$Ô$Ð9Ð9Ð9r)rdr,rùs `rrúz List.as_constˆs.ø€Ý# D¨(Ñ3Ô3ˆØ9Ð9Ð9Ð9¨d¬jÐ9Ñ9Ô9Ð9rr) r+r,r-r.r2r[r¿rÄr­r\rFr_rúrrrr¿r¿‚si€€€€€€Ø0Ð0à €FØ Œ6�$Œ<ÐÐÑð:ð: ¤¨KÔ!8ð:ÀAÄFÈ1Ì5ÄMð:ð:ð:ð:ð:ð:rr¿có�—eZdZUdZdZejded< d deje dej ej ej ffd„Z dS) ÚDictzeAny dict literal such as ``{1: 2, 3: 4}``. The items must be a list of :class:`Pair` nodes. r4ÚPairr,Nr÷rIcód‡—t|‰¦«Štˆfd„|jD¦«¦«S)Nc3óB•K—|]}| ‰¦«V—ŒdSrr/r0s €rr—z Dict.as_const..™s/øèè€Ð=Ð=¨Q�A—J’J˜xÑ(Ô(Ð=Ð=Ð=Ð=Ð=Ð=r)rdÚdictr,rùs `rrúz Dict.as_const•s9ø€õ$ D¨(Ñ3Ô3ˆÝÐ=Ð=Ð=Ð=°$´*Ð=Ñ=Ô=Ñ=Ô=Ð=rr) r+r,r-r.r2r[r¿r­r\rFr9r_rúrrrr9r9�s}€€€€€€ððð€FØ Œ6�&Œ>ÐÐÑð37ð>ð>Øœ  ;Ô/ð>à Œ�”�q”u� Ô ð>ð>ð>ð>ð>ð>rr9có„—eZdZUdZdZeed<eed< d deje dej ej ej ffd„Z dS) r:zA key, value pair for dicts.©Úkeyr¦r@r¦Nr÷rIcóŠ—t||¦«}|j |¦«|j |¦«fSr)rdr@rúr¦rùs rrúz Pair.as_const£s>€õ$ D¨(Ñ3Ô3ˆØŒx× Ò  Ñ*Ô*¨D¬J×,?Ò,?ÀÑ,IÔ,IÐIÐIrr) r+r,r-r.r2rÄr­r[r\rFr¬r_rúrrrr:r:œs€€€€€€€Ø&Ð&à €FØ €I€I�IØ €K€K�Kð37ðJðJØœ  ;Ô/ðJà Œ�”˜œ�Ô ðJðJðJðJðJðJrr:cóx—eZdZUdZdZeed<eed<d dej e dej eej ffd„Z dS) ÚKeywordz>A key, value pair for keyword arguments where key is a string.r?r@r¦Nr÷rIcód—t||¦«}|j|j |¦«fSr)rdr@r¦rúrùs rrúzKeyword.as_const±s.€Ý# D¨(Ñ3Ô3ˆØŒx˜œ×,Ò,¨XÑ6Ô6Ð6Ð6rr)r+r,r-r.r2r]r­rÄr[r\rFr¬r_rúrrrrCrCªsp€€€€€€ØHÐHà €FØ €H€H�HØ €K€K�Kð7ð7 ¤¨KÔ!8ð7ÀAÄGÈCÐQRÔQVÈJÔDWð7ð7ð7ð7ð7ð7rrCcó~—eZdZUdZdZeed<eed<ejeed<d deje dej fd „Z dS) ÚCondExprzZA conditional expression (inline if expression). (``{{ foo if bar else baz }}``) )rÌÚexpr1Úexpr2rÌrGrHNr÷rIcóè—t||¦«}|j |¦«r|j |¦«S|j€t ¦«‚|j |¦«Sr)rdrÌrúrGrHr)rùs rrúzCondExpr.as_constÀsi€Ý# D¨(Ñ3Ô3ˆØ Œ9× Ò ˜hÑ 'Ô 'ð 1Ø”:×&Ò& xÑ0Ô0Ð 0ð Œ:Ð Ý‘,”,Ð àŒz×"Ò" 8Ñ,Ô,Ð,rr) r+r,r-r.r2rÄr­r[r\rFr_rúrrrrFrF¶s|€€€€€€ððð(€FØ €J€J�JØ €K€K�KØ Œ:�dÔ ÐÐÑð -ð - ¤¨KÔ!8ð -ÀAÄEð -ð -ð -ð -ð -ð -rrF)Ú_FilterTestCommonrÙr÷có·—ˆfd„|jD¦«}tˆfd„|jD¦«¦«}|j�P | |j ‰¦«¦«n!#t $r}t¦«|‚d}~wwxYw|j�P |  |j ‰¦«¦«n!#t $r}t¦«|‚d}~wwxYw||fS)Ncó:•—g|]}| ‰¦«‘ŒSrr/r0s €rr7z!args_as_const..Ïs%ø€Ð 4Ð 4Ð 4 QˆA�JŠJ�xÑ Ô Ð 4Ð 4Ð 4rc3óB•K—|]}| ‰¦«V—ŒdSrr/r0s €rr—z args_as_const..Ðs/øèè€Ð<Ð<¨1�!—*’*˜XÑ&Ô&Ð<Ð<Ð<Ð<Ð<Ð.constxsø€Øˆ{Ø�tØ—<’< Ñ)Ô)Ð )r) rdr[r\rÄr_Úslicerwrxry)rOr÷r}s ` rrúzSlice.as_constus†ø€Ý# D¨(Ñ3Ô3ˆð *•q”z¥$Ô'ð *­A¬Jµq´uÔ,=ð *ð *ð *ð *ð *ð *õ �U�U˜4œ:Ñ&Ô&¨¨¨d¬iÑ(8Ô(8¸%¸%ÀÄ Ñ:JÔ:JÑKÔKÐKrr) r+r,r-r.r2r[r\rÄr­rFr~rúrrrrvrvks—€€€€€€ððð'€FØ Œ:�dÔ ÐÐÑØ Œ*�TÔ ÐÐÑØ Œ*�TÔ ÐÐÑðLðL ¤¨KÔ!8ðLÀEðLðLðLðLðLðLrrvcó`—eZdZUdZdZejeed<ddej e de fd„Z dS) ÚConcatzXConcatenates the list of expressions provided after converting them to strings. rÂrÃNr÷rIcóp‡—t|‰¦«Šd ˆfd„|jD¦«¦«S)Nrjc3ó\•K—|]&}t| ‰¦«¦«V—Œ'dSr)r]rúr0s €rr—z"Concat.as_const..Šs7øèè€ÐEÐE°Q•s˜1Ÿ:š: hÑ/Ô/Ñ0Ô0ÐEÐEÐEÐEÐEÐEr)rdršrÃrùs `rrúzConcat.as_constˆs;ø€Ý# D¨(Ñ3Ô3ˆØ�wŠwÐEÐEÐEÐE¸$¼*ÐEÑEÔEÑEÔEÐErr) r+r,r-r.r2r[r¿rÄr­r\rFr]rúrrrr€r€€sp€€€€€€ððð€FØ Œ6�$Œ<ÐÐÑðFðF ¤¨KÔ!8ðFÀCðFðFðFðFðFðFrr€cót—eZdZUdZdZeed<ejded<d dej e dej fd „Z dS) ÚCompareziCompares an expression with some other expressions. `ops` must be a list of :class:`Operand`\s. )ÚexprÚopsr…ÚOperandr†Nr÷rIcó0—t||¦«}|j |¦«x}} |jD]>}|j |¦«}t |j||¦«}|sdS|}Œ?n!#t $r}t¦«|‚d}~wwxYw|SrK)rdr…rúr†r'Úoprr))rOr÷r�r¦r‰Ú new_valuers rrúzCompare.as_const–s»€Ý# D¨(Ñ3Ô3ˆØœ×+Ò+¨HÑ5Ô5Ð5ˆ�ð &Ø”hð "ð "�ØœG×,Ò,¨XÑ6Ô6� Ý'¨¬Ô.¨u°iÑ@Ô@�àð!Ø ˜5˜5à!��ð "øõð &ð &ð &Ý‘,”, AÐ %øøøøð &øøøðˆ s®AA5Á1A5Á5 BÁ?BÂBr) r+r,r-r.r2rÄr­r[r¿r\rFr_rúrrrr„r„�ss€€€€€€ððð€FØ €J€J�JØ Œ� Ô ÐÐÑð𠤨KÔ!8ðÀAÄEððððððrr„có,—eZdZUdZdZeed<eed<dS)r‡z$Holds an operator and an expression.)r‰r…r‰r…N)r+r,r-r.r2r]r­rÄrrrr‡r‡©s-€€€€€€Ø.Ð.à €FØ €G€G�GØ €J€J�J€J€Jrr‡có—eZdZdZdZdS)ÚMulz(Multiplies the left with the right node.r N©r+r,r-r.rrrrr�r�±s€€€€€Ø2Ð2à€H€H€Hrr�có—eZdZdZdZdS)ÚDivz#Divides the left by the right node.r NrŽrrrr�r�·s€€€€€Ø-Ð-à€H€H€Hrr�có—eZdZdZdZdS)ÚFloorDivzbDivides the left by the right node and converts the result into an integer by truncating. r NrŽrrrr’r’½s€€€€€ððð€H€H€Hrr’có—eZdZdZdZdS)ÚAddzAdd the left to the right node.rNrŽrrrr”r”Ås€€€€€Ø)Ð)à€H€H€Hrr”có—eZdZdZdZdS)ÚSubz&Subtract the right from the left node.rNrŽrrrr–r–Ës€€€€€Ø0Ð0à€H€H€Hrr–có—eZdZdZdZdS)ÚModzLeft modulo right.rNrŽrrrr˜r˜Ñs€€€€€ØÐà€H€H€Hrr˜có—eZdZdZdZdS)ÚPowzLeft to the power of right.rNrŽrrrršrš×s€€€€€Ø%Ð%à€H€H€HrršcóH—eZdZdZdZddejedejfd„Z dS)ÚAndzShort circuited AND.ÚandNr÷rIcóŠ—t||¦«}|j |¦«o|j |¦«Sr©rdrÿrúrrùs rrúz And.as_constâs<€Ý# D¨(Ñ3Ô3ˆØŒy×!Ò! (Ñ+Ô+ÐM°´ ×0CÒ0CÀHÑ0MÔ0MÐMrr© r+r,r-r.rr[r\rFr_rúrrrrœrœÝsX€€€€€ØÐà€HðNðN ¤¨KÔ!8ðNÀAÄEðNðNðNðNðNðNrrœcóH—eZdZdZdZddejedejfd„Z dS)ÚOrzShort circuited OR.ÚorNr÷rIcóŠ—t||¦«}|j |¦«p|j |¦«SrrŸrùs rrúz Or.as_constìs<€Ý# D¨(Ñ3Ô3ˆØŒy×!Ò! (Ñ+Ô+ÐL¨t¬z×/BÒ/BÀ8Ñ/LÔ/LÐLrrr rrrr¢r¢çsX€€€€€ØÐà€HðMðM ¤¨KÔ!8ðMÀAÄEðMðMðMðMðMðMrr¢có—eZdZdZdZdS)ÚNotzNegate the expression.rNrŽrrrr¦r¦ñs€€€€€Ø Ð à€H€H€Hrr¦có—eZdZdZdZdS)ÚNegzMake the expression negative.rNrŽrrrr¨r¨÷s€€€€€Ø'Ð'à€H€H€Hrr¨có—eZdZdZdZdS)ÚPosz8Make the expression positive (noop for most expressions)rNrŽrrrrªrªýs€€€€€ØBÐBà€H€H€Hrrªcó"—eZdZUdZdZeed<dS)ÚEnvironmentAttributez�Loads an attribute from the environment object. This is useful for extensions that want to call a callback stored on the environment. rr@N©r+r,r-r.r2r]r­rrrr¬r¬s*€€€€€€ððð€FØ €I€I�I€I€Irr¬có,—eZdZUdZdZeed<eed<dS)ÚExtensionAttributezøReturns the attribute of an extension bound to the environment. The identifier is the identifier of the :class:`Extension`. This node is usually constructed by calling the :meth:`~jinja2.ext.Extension.attr` method on an extension. )Ú identifierr@r°r@Nr­rrrr¯r¯s3€€€€€€ððð$€FØ€O€O�OØ €I€I�I€I€Irr¯có"—eZdZUdZdZeed<dS)Ú ImportedNamea&If created with an import name the import name is returned on node access. For example ``ImportedName('cgi.escape')`` returns the `escape` function from the cgi module on evaluation. Imports are optimized by the compiler so there is no need to assign them to local variables. )Ú importnamer³Nr­rrrr²r²s*€€€€€€ððð €FØ€O€O�O€O€Orr²có*—eZdZUdZdZeed<dd„ZdS)Ú InternalNamea6An internal name in the compiler. You cannot create these nodes yourself but the parser provides a :meth:`~jinja2.parser.Parser.free_identifier` method that creates a new identifier for you. This identifier is not available from the template and is not treated specially by the compiler. rr@rINcó —td¦«‚)NzKCan't create internal names. Use the `free_identifier` method on a parser.©rkrTs rrPzInternalName.__init__2s€Ýð 4ñ ô ð r)rIN)r+r,r-r.r2r]r­rPrrrrµrµ'sD€€€€€€ððð€FØ €I€I�Ið ð ð ð ð ð rrµcóJ—eZdZUdZdZeed<ddeje de fd„Z dS) ÚMarkSafez:Mark the wrapped expression as safe (wrap it as `Markup`).©r…r…Nr÷rIcóp—t||¦«}t|j |¦«¦«Sr)rdrr…rúrùs rrúzMarkSafe.as_const?s/€Ý# D¨(Ñ3Ô3ˆÝ�d”i×(Ò(¨Ñ2Ô2Ñ3Ô3Ð3rr) r+r,r-r.r2rÄr­r[r\rFrrúrrrr¹r¹9sX€€€€€€ØDÐDà €FØ €J€J�Jð4ð4 ¤¨KÔ!8ð4ÀFð4ð4ð4ð4ð4ð4rr¹cóp—eZdZUdZdZeed< ddeje dej e ej ffd„Z dS) ÚMarkSafeIfAutoescapez�Mark the wrapped expression as safe (wrap it as `Markup`) but only if autoescaping is active. .. versionadded:: 2.5 rºr…Nr÷rIcó°—t||¦«}|jrt¦«‚|j |¦«}|jrt |¦«S|Sr)rdrNr)r…rúrMr)rOr÷r…s rrúzMarkSafeIfAutoescape.as_constNsY€õ$ D¨(Ñ3Ô3ˆØ Ô ð Ý‘,”,Ð ØŒy×!Ò! (Ñ+Ô+ˆØ Ô ð ݘ$‘<”<Р؈ rr)r+r,r-r.r2rÄr­r[r\rFr©rr_rúrrrr½r½Dsr€€€€€€ððð €FØ €J€J�Jð37ð ð Øœ  ;Ô/ð à Œ�˜œ�Ô ð ð ð ð ð ð rr½có—eZdZdZdS)ÚContextReferenceaMReturns the current template context. It can be used like a :class:`Name` node, with a ``'load'`` ctx and will return the current :class:`~jinja2.runtime.Context` object. Here an example that assigns the current template name to a variable named `foo`:: Assign(Name('foo', ctx='store'), Getattr(ContextReference(), 'name')) This is basically equivalent to using the :func:`~jinja2.pass_context` decorator when using the high-level API, which causes a reference to the context to be passed as the first argument to a function. Nr*rrrrÀrÀZs€€€€€ððððrrÀcó—eZdZdZdS)ÚDerivedContextReferencezÉReturn the current template context including locals. Behaves exactly like :class:`ContextReference`, but includes local variables, such as from a ``for`` loop. .. versionadded:: 2.11 Nr*rrrrÂrÂls€€€€€ððððrrÂcó—eZdZdZdS)ÚContinuezContinue a loop.Nr*rrrrÄrÄus€€€€€ØÐÐÐrrÄcó—eZdZdZdS)ÚBreakz Break a loop.Nr*rrrrÆrÆys€€€€€ØÐÐÐrrÆcó8—eZdZUdZdZejeed<dS)ÚScopezAn artificial scope.r¼r½Nr¾rrrrÈrÈ}s/€€€€€€ØÐà €FØ Œ&�Œ,ÐÐÑÐÐrrÈcóB—eZdZUdZdZeed<eje ed<dS)Ú OverlayScopea§An overlay scope for extensions. This is a largely unoptimized scope that however can be used to introduce completely arbitrary variables into a sub scope from a dictionary or dictionary like object. The `context` field has to evaluate to a dictionary object. Example usage:: OverlayScope(context=self.call_method('get_context'), body=[...]) .. versionadded:: 2.10 )rYr½rYr½N) r+r,r-r.r2rÄr­r[r¿r rrrrÊrÊ„s>€€€€€€ð ð ð!€FØ €M€M�MØ Œ&�Œ,ÐÐÑÐÐrrÊcó8—eZdZUdZdZejeed<dS)ÚEvalContextModifiera Modifies the eval context. For each option that should be modified, a :class:`Keyword` has to be added to the :attr:`options` list. Example to change the `autoescape` setting:: EvalContextModifier(options=[Keyword('autoescape', Const(True))]) )ÚoptionsrÍN) r+r,r-r.r2r[r¿rCr­rrrrÌrÌ—s5€€€€€€ððð€FØ ŒV�GŒ_ÐÐÑÐÐrrÌcó8—eZdZUdZdZejeed<dS)ÚScopedEvalContextModifierzÈModifies the eval context and reverts it later. Works exactly like :class:`EvalContextModifier` but will only modify the :class:`~jinja2.nodes.EvalContext` for nodes in the :attr:`body`. r¼r½Nr¾rrrrÏrϤs5€€€€€€ððð €FØ Œ&�Œ,ÐÐÑÐÐrrÏrÓrNz te.NoReturncó —td¦«‚)Nzcan't create custom node typesr·)rÓrNs rÚ _failing_newrѯs€Ý Ð4Ñ 5Ô 5Ð5r)zr.r[rÚtypingr[Ú collectionsrÚ markupsaferÚutilsrÚ TYPE_CHECKINGÚtyping_extensionsÚterGrÚTypeVarrÚmulÚtruedivÚfloordivÚpowÚmodÚaddÚsubrr9r]ÚCallabler_r­Únot_ÚposÚnegrrr r!Úger#Úler'rr)r=r0rFr\rdr r¶r¹r»rÁrÆrÉrÏrÒr×rÛrßrãrçrërírðrórõrÄrþr rÕrrrr(r¬r¿r:rCrFr©rQrJrÝrhrÙrkrsrvr€r„r‡r�r�r’r”r–r˜ršrœr¢r¦r¨rªr¬r¯r²rµr¹r½rÀrÂrÄrÆrÈrÊrÌrÏrÑÚ staticmethodr>rrrúrès¿ððððð€€€Ø€€€ØÐÐÐØÐÐÐÐÐàÐÐÐÐÐàÐÐÐÐÐà„?ð)Ø"Ð"Ð"Ð"Ø(Ð(Ð(Ð(Ð(Ð(à ˆQŒY�|¨6Ð 2Ñ 2Ô 2€ ð ŒØ Ô Ø Ô Ø Œ,Ø ŒØ ŒØ ŒðBðB€�”�s˜AœJ¨¬¨q¬u ~°q´uÐ'<Ô=Ð=Ô>ððñð Œ=Ø ŒØ Œð:ð:€ ˆqŒv�c˜1œ: q¤u g¨q¬u nÔ5Ð5Ô6ððñð Œ+Ø Œ+Ø Œ+Ø ŒKØ Œ+Ø ŒKØ Ð Ø $Ð $ð Bð B€�”�s˜AœJ¨¬¨q¬u ~°q´uÐ'<Ô=Ð=Ô>ð ð ñ ðCðCðCðCðC�ñCôCðCð1ð1ð1ð1ð1ˆtñ1ô1ð1ð""ð"ð"ð"ð"ñ"ô"ð"ð.˜6𨬠°;Ô(?ðÀKðððððnðnðnðnðn�Xðnñnônðnðbððððˆ4ñôðð ððððˆTñôðð ððððˆtñôððððððˆTñôððððððˆdñôððððððˆ$ñôðð$ððððˆñôðð ð ð ð ð ˆDñ ô ð ð ð ð ð ð �ñ ô ð ððððð�$ñôðð ð ð ð ð ˆ4ñ ô ð ð ð ð ð ð ˆDñ ô ð ðððððˆdñôððððððˆTñôðððððð�ñôðð$ððððˆtñôððððððˆTñôðððððð�$ñôððððððˆ4ñôðð.&ð&ð&ð&ð&ˆdñ&ô&ð&ð2&ð&ð&ð&ð&�ñ&ô&ð&ð0SðSðSðSðSˆ4ñSôSðSð" ð ð ð ð ˆDñ ô ð ðððððˆdñôðð BðBðBðBðBˆGñBôBðBð> ð ð ð ð �7ñ ô ð ðððððˆGñôðð*:ð:ð:ð:ð:ˆ7ñ:ô:ð:ð >ð >ð >ð >ð >ˆ7ñ >ô >ð >ð Jð Jð Jð Jð Jˆ6ñ Jô Jð Jð 7ð 7ð 7ð 7ð 7ˆfñ 7ô 7ð 7ð-ð-ð-ð-ð-ˆtñ-ô-ð-ð,Ø Œ'Ð-Ô .ðØ:;¼*À[Ô:Qðà„WˆQŒV�A”EŒ]˜AœF 1¤5¨!¬% <Ô0Ð 0Ô1ððððð*-&ð-&ð-&ð-&ð-&˜ñ-&ô-&ð-&ð`3ð3ð3ð3ð3Ð ñ3ô3ð3ð" ð ð ð ð Ð ñ ô ð ð !ð !ð !ð !ð !ˆ4ñ !ô !ð !ð &ð&ð&ð&ð&ˆdñ&ô&ð&ð,&ð&ð&ð&ð&ˆdñ&ô&ð&ð,LðLðLðLðLˆDñLôLðLð* Fð Fð Fð Fð FˆTñ Fô Fð Fðððððˆdñôðð8ððððˆfñôððððððˆ'ñôðð ððððˆ'ñôðð ððððˆwñôððððððˆ'ñôðð ððððˆ'ñôðð ððððˆ'ñôðð ððððˆ'ñôðð NðNðNðNðNˆ'ñNôNðNðMðMðMðMðMˆñMôMðMðððððˆ)ñôðð ððððˆ)ñôðð ððððˆ)ñôðððððð˜4ñôðð ð ð ð ð ˜ñ ô ð ððððð�4ñôðð ð ð ð ð �4ñ ô ð ð$4ð4ð4ð4ð4ˆtñ4ô4ð4ððððð˜4ñôðð,ðððð�tñôðð$ðððð˜dñôððððððˆtñôððððððˆDñôððððððˆDñôðððððð�4ñôðð& ð ð ð ð ˜$ñ ô ð ðððððÐ 3ñôðð6˜œð6¨¬ð6°=ð6ð6ð6ð6ð �<  Ñ-Ô-€ÔØ€L€Lr