HEX
Server: Apache/2.4.67 (Debian)
System: Linux vps-b2547eb4 6.1.0-41-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64
User: root (0)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/pygments/lexers/__pycache__/python.cpython-311.pyc
�

�E�c����dZddlZddlZddlmZmZmZmZmZm	Z	m
Z
mZmZm
Z
mZddlmZmZddlmZmZmZmZmZmZmZmZmZmZmZmZddlm Z!gd�Z"Gd�d	e��Z#e#Z$Gd
�de��Z%Gd�d
e��Z&Gd�de��Z'e'Z(Gd�de��Z)Gd�de��Z*Gd�de��Z+Gd�de#��Z,dS)z�
    pygments.lexers.python
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Python and related languages.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�Lexer�
RegexLexer�include�bygroups�using�default�words�combined�
do_insertions�this�line_re)�get_bool_opt�shebang_matches)�Text�Comment�Operator�Keyword�Name�String�Number�Punctuation�Generic�Other�Error�
Whitespace)�	unistring)�PythonLexer�PythonConsoleLexer�PythonTracebackLexer�Python2Lexer�Python2TracebackLexer�CythonLexer�DgLexer�
NumPyLexerc"���eZdZdZdZdZgd�Zgd�Zgd�Zde	j
�de	j�d	�Zd
�Z
d�Zidd
efdeeejej��fdeeejej��fdejfdejfdefdefed��ed��deee��dfdeee��dfdeeje��dfdeeje��dfed��g�ddeejej��ed d!��fd"eejej��ed d#��fd$eejej��ed d%��fd&eejej��ed d'��fd(eejej��ed)d!��fd*eejej��ed)d#��fd+eejej��ed)d%��fd,eejej��ed)d'��fd-eejej��d.fd/eejej��d0fd1eejej��d2fd3eejej��d4fd5eejej��ed6d.��fd7eejej��ed6d0��fd8eejej��ed6d2��fd9eejej��ed6d4��fd:eejej��ed;d.��fd<eejej��ed;d0��fd=eejej��ed;d2��fd>eejej��ed;d4��fd?efed@��dAefdBefdCejfedD��edE��edF��edG��edH��g�dIdJedKfdLej dMfdNej dMfdOefed��g�dKdJedKfdPedMfdOefed��g�dDe!dQdR�S��efe!dTdR�S��ej"fg�de!dUdR�S��efe!dTdR�S��ej"fg�ddVdW�#e$j%��zdXzeee��dYfg�dYdZeee&e'��e��fe(dM��g�dEe!d[d\dR�]��e)j*fd^e)j*j+fe!d_d\dR�]��e)j,fg�dFe!d`dR�S��e)j-j.fg�dGe!dadR�S��e)j/j.fg�d@dbe0j1fdce0j1fdde0j2fdee0j3fdfe0j4fdge0j5fg�dHdheze)j6fdhefee)fg�dedF��ee)j-dMfe(dM��g�dee)j7dMfg�ddieeee��fdje)jfee)jfdkeeee��fe(dM��g�ddleeej��dMfdje)jfdme)j*j+dMfee)jfe(dM��g�id dnej8fdoej8fg�d)ed ��ed6��g�d;dpej8fg�d6dqej8fed;��g�dreej���dseej���dte
ej���due
ej���d%dvejdMfdwej8feds��g�d'dxejdMfdyej8fedr��g�d2dvejdMfdwej8fedu��g�d4dxejdMfdyej8fedt��g�d!dzejdMfeds��d
ejfg�d#d{ejdMfedr��d
ejfg�d.dzejdMfedu��d
ejfg�d0d{ejdMfedt��d
ejfg��Z9d|�Z:d}S)~rz�
    For Python source code (version 3.x).

    .. versionadded:: 0.10

    .. versionchanged:: 2.5
       This is now the default ``PythonLexer``.  It is still available as the
       alias ``Python3Lexer``.
    �Python�http://www.python.org)�python�py�sage�python3�py3)z*.pyz*.pywz*.pyiz*.jyz*.sagez*.sc�
SConstruct�
SConscriptz*.bzl�BUCK�BUILDzBUILD.bazel�	WORKSPACEz*.tac)z
text/x-pythonzapplication/x-pythonztext/x-python3zapplication/x-python3�[z][z]*c�L�dtjfdtjfd|fd|fd|fgS)NzH%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsaux%]zg\{((\w+)((\.\w+)|(\[[^\]]+\]))*)?(\![sra])?(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?\}z
[^\\\'"%{\n]+�[\'"\\]z%|(\{{1,2})�r�Interpol��ttypes �8/usr/lib/python3/dist-packages/pygments/lexers/python.py�innerstring_ruleszPythonLexer.innerstring_rulesCsF��'�(.��
9���O�	
%��u�%�
���
�U�#�
�	
�c�H�dtjfdtjdfd|fd|fgS)Nz\}z\{�expr-inside-fstringz
[^\\\'"{}\n]+r4r5r7s r9�
fstring_ruleszPythonLexer.fstring_rulesWs5���F�O�$�
�F�O�%:�;�
�u�%�
���
�	
r;�root�\n�&^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")�&^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')�\A#!.+$�#.*$�\\\n�\\�keywordsz
soft-keywords�(def)((?:\s|\\\s)+)�funcname�(class)((?:\s|\\\s)+)�	classname�(from)((?:\s|\\\s)+)�
fromimport�(import)((?:\s|\\\s)+)�import�exprz(?i)(rf|fr)(""")�rfstringescape�tdqfz(?i)(rf|fr)(''')�tsqfz(?i)(rf|fr)(")�dqfz(?i)(rf|fr)(')�sqfz([fF])(""")�
fstringescapez([fF])(''')z	([fF])(")z	([fF])(')z(?i)(rb|br|r)(""")�tdqsz(?i)(rb|br|r)(''')�tsqsz(?i)(rb|br|r)(")�dqsz(?i)(rb|br|r)(')�sqsz([uU]?)(""")�stringescapez([uU]?)(''')z
([uU]?)(")z
([uU]?)(')z([bB])(""")�bytesescapez([bB])(''')z	([bB])(")z	([bB])(')�[^\S\n]+�numbersz!=|==|<<|>>|:=|[-~+/*%=<>&^|.]�[]{}:(),;[]�(in|is|and|or|not)\bz
expr-keywords�builtins�
magicfuncs�	magicvars�namer=z[{([]zexpr-inside-fstring-innerz(=\s*)?(\![sraf])?\}�#popz(=\s*)?(\![sraf])?:�\s+z[])}])z	async for�await�else�for�if�lambda�yield�
yield from�\b��suffix)�True�False�None)�assert�asyncrg�break�continue�del�elifrh�except�finallyri�globalrjrk�pass�raise�nonlocal�return�try�whilerlrm�as�withz6(^[ \t]*)(match|case)\b(?![ \t]*(?:[:,;=^&|@~)\]}]|(?:�|z)\b))zsoft-keywords-innerz(\s+)([^\n_]*)(_\b))A�
__import__�abs�all�any�bin�bool�	bytearray�
breakpoint�bytes�chr�classmethod�compile�complex�delattr�dict�dir�divmod�	enumerate�eval�filter�float�format�	frozenset�getattr�globals�hasattr�hash�hex�id�input�int�
isinstance�
issubclass�iter�len�list�locals�map�max�
memoryview�min�next�object�oct�open�ord�pow�print�property�range�repr�reversed�round�set�setattr�slice�sorted�staticmethod�str�sum�super�tuple�type�vars�zip�(?<!\.)��prefixrpz+(?<!\.)(self|Ellipsis|NotImplemented|cls)\b)E�ArithmeticError�AssertionError�AttributeError�
BaseException�BufferError�BytesWarning�DeprecationWarning�EOFError�EnvironmentError�	Exception�FloatingPointError�
FutureWarning�
GeneratorExit�IOError�ImportError�
ImportWarning�IndentationError�
IndexError�KeyError�KeyboardInterrupt�LookupError�MemoryError�	NameError�NotImplementedError�OSError�
OverflowError�PendingDeprecationWarning�ReferenceError�ResourceWarning�RuntimeError�RuntimeWarning�
StopIteration�SyntaxError�
SyntaxWarning�SystemError�
SystemExit�TabError�	TypeError�UnboundLocalError�UnicodeDecodeError�UnicodeEncodeError�UnicodeError�UnicodeTranslateError�UnicodeWarning�UserWarning�
ValueError�VMSError�Warning�WindowsError�ZeroDivisionError�BlockingIOError�ChildProcessError�ConnectionError�BrokenPipeError�ConnectionAbortedError�ConnectionRefusedError�ConnectionResetError�FileExistsError�FileNotFoundError�InterruptedError�IsADirectoryError�NotADirectoryError�PermissionError�ProcessLookupError�TimeoutError�StopAsyncIteration�ModuleNotFoundError�RecursionError�EncodingWarning)^�__abs__�__add__�
__aenter__�	__aexit__�	__aiter__�__and__�	__anext__�	__await__�__bool__�	__bytes__�__call__�__complex__�__contains__�__del__�__delattr__�
__delete__�__delitem__�__dir__�
__divmod__�	__enter__�__eq__�__exit__�	__float__�__floordiv__�
__format__�__ge__�__get__�__getattr__�__getattribute__�__getitem__�__gt__�__hash__�__iadd__�__iand__�
__ifloordiv__�__ilshift__�__imatmul__�__imod__�__imul__�	__index__�__init__�__instancecheck__�__int__�
__invert__�__ior__�__ipow__�__irshift__�__isub__�__iter__�__itruediv__�__ixor__�__le__�__len__�__length_hint__�
__lshift__�__lt__�
__matmul__�__missing__�__mod__�__mul__�__ne__�__neg__�__new__�__next__�__or__�__pos__�__pow__�__prepare__�__radd__�__rand__�__rdivmod__�__repr__�__reversed__�
__rfloordiv__�__rlshift__�__rmatmul__�__rmod__�__rmul__�__ror__�	__round__�__rpow__�__rrshift__�
__rshift__�__rsub__�__rtruediv__�__rxor__�__set__�__setattr__�__setitem__�__str__�__sub__�__subclasscheck__�__truediv__�__xor__)�__annotations__�	__bases__�	__class__�__closure__�__code__�__defaults__�__dict__�__doc__�__file__�__func__�__globals__�__kwdefaults__�
__module__�__mro__�__name__�__objclass__�__qualname__�__self__�	__slots__�__weakref__zT(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)([eE][+-]?\d(?:_?\d)*)?z!\d(?:_?\d)*[eE][+-]?\d(?:_?\d)*j?z0[oO](?:_?[0-7])+z0[bB](?:_?[01])+z0[xX](?:_?[a-fA-F0-9])+z\d(?:_?\d)*�@�(\s+)(as)(\s+)z\.�
(\s*)(,)(\s*)z(\s+)(import)\b�None\bz\{\{z\}\}z0\\([\\abfnrtv"\']|\n|x[a-fA-F0-9]{2}|[0-7]{1,3})z,\\(N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8})zfstrings-singlezfstrings-double�strings-single�strings-double�"�
\\\\|\\"|\\\n�'�
\\\\|\\'|\\\n�"""�'''c�:�t|d��pd|dd�vS)N�pythonw?(3(\.\d)?)?�import ���r��texts r9�analyse_textzPythonLexer.analyse_text�s*���t�%;�<�<�%���e�t�e��$�	%r;N);r{ryr}rtrd�url�aliases�	filenames�	mimetypes�uni�	xid_start�xid_continue�uni_namer:r>rrr�Affix�Docr�Hashbang�Singlerrr�	Namespace�Doubler
rr�Wordr6r	�Constant�join�keyword�kwlistrrrr�Builtin�Pseudor��Function�Magic�Variabler�Float�Oct�Bin�Hex�Integer�	Decorator�Class�Escape�tokensr��r;r9rrsZ���������D�
!�C�8�8�8�G����I�,<�<�<�I�I�"�m�m�m�S�-=�-=�-=�>�H�
�
�
�(
�
�
�r��
�J��
6�
�X�j�&�,��
�
;�
;�
=�
6�
�X�j�&�,��
�
;�
;�
=�
��)�*�
�g�n�%�
�d�O�
�D�M��G�J����G�O�$�$�
#�X�X�g�t�%<�%<�j�I�
%�x�x���'>�'>��L�
$�h�h�w�/@�$�&G�&G�
�
�
&����1B�D�(I�(I�
�
��G�F�O�O�%
�r�*	�
�
�X�f�l�F�M�
2�
2�
�X�&��
/�
/�
1� �
�X�f�l�F�M�
2�
2�
�X�&��
/�
/�
1��
�X�f�l�F�M�
2�
2�
�X�&��
.�
.�
0��
�X�f�l�F�M�
2�
2�
�X�&��
.�
.�
0��H�H�V�\�6�=�A�A�
�X�o�v�
.�
.�
0�
�H�H�V�\�6�=�A�A�
�X�o�v�
.�
.�
0�
�(�(�6�<���?�?�
�X�o�u�
-�
-�
/�
�(�(�6�<���?�?�
�X�o�u�
-�
-�
/�"�
�X�f�l�F�M�
2�
2�F�
<�
!�
�X�f�l�F�M�
2�
2�F�
<�
�
�X�f�l�F�M�
2�
2�E�
;�
�
�X�f�l�F�M�
2�
2�E�
;��X�X�f�l�F�M�B�B�
�X�n�f�
-�
-�
/�
�X�X�f�l�F�M�B�B�
�X�n�f�
-�
-�
/�
�8�8�F�L�&�-�@�@�
�X�n�e�
,�
,�
.�
�8�8�F�L�&�-�@�@�
�X�n�e�
,�
,�
.��H�H�V�\�6�=�A�A�
�X�m�V�
,�
,�
.�
�H�H�V�\�6�=�A�A�
�X�m�V�
,�
,�
.�
�(�(�6�<���?�?�
�X�m�U�
+�
+�
-�
�(�(�6�<���?�?�
�X�m�U�
+�
+�
-��$���G�I���
.��9�
�[�)�
$�h�m�4��G�O�$�$��G�J����G�L�!�!��G�K� � ��G�F�O�O�y=
�+r�f	�
�{�$?�@���O�V�
-�
��?�F�
,��Z� ��G�F�O�O�
 
�gr�B	$�
�{�$?�@�
�{�F�+�
�Z� ��G�F�O�O�	&
�Cr�N	�
�U�'�/4�6�6�6��
��U�,�U�
;�
;�
;�W�=M�N�

�Or�^	�
�U�,�5:�	;�;�;�
�
��U�,�U�
;�
;�
;�W�=M�N�
�_r�p	�$��Y�Y�w�~�
&�
&�	'�*2�	2�
�X�d�G�
$�
$�&;�
=�
�qr�B	�
#�X�X�j�%�%��+�+�w�%O�%O�P��G�F�O�O� 
�Cr�L	�
�U�
'�0:�%�
I�
I�
I��\�
�<�T�\�=P�Q�
�U�#�0"�%�11�1�1�2�^�3
�(
�Mr�^	�
�U��*$)�+*�*�*�,�]�
 �-
"�
�_r�P	�
�U�8�
AF�G�G�G��]�
 �

"�
�Qr�b	�(�)/��
7�
1�6�<�@�
!�6�:�.�
 �&�*�-�
'���4�
�V�^�,�
�cr�t	�
�H�_�d�n�-�
�8��
�t��
�ur�~	��G�L�!�!�
�t�}�f�-��G�F�O�O�
�r�H	�
�t�z�6�*�
�Ir�N	�
����w�� =� =�>�
�D�N�#�
�t�~�&�
�x�x��h��=�=�>��G�F�O�O�
�Or�\	�
���$��0A�!B�!B�F�K�
�D�N�#����+�V�4�
�t�~�&��G�F�O�O�
�]r�r�n	�
�f�m�$�
�f�m�$�
�or�v	��G�$�%�%��G�N�#�#�
�wr�~	�
@�&�-�P�
�r�D	�
<�f�m�L��G�M�"�"�
�Er�L	�=�=���7�7�Mr�N	�=�=���7�7�Or�P	�+�+�F�M�:�:�Qr�R	�+�+�F�M�:�:�Sr�T	�
�6�=�&�)�
�v�}�-��G�%�&�&�
�Ur�^	�
�6�=�&�)�
�v�}�-��G�%�&�&�
�_r�h	�
�6�=�&�)�
�v�}�-��G�$�%�%�
�ir�r	�
�6�=�&�)�
�v�}�-��G�$�%�%�
�sr�|	�
�V�]�F�+��G�%�&�&�
�F�M�"�
�}r�F		�
�V�]�F�+��G�%�&�&�
�F�M�"�
�G	r�P		�
�V�]�F�+��G�$�%�%�
�F�M�"�
�Q	r�Z		�
�V�]�F�+��G�$�%�%�
�F�M�"�
�[	r�r�F�h	%�%�%�%�%r;rc#���eZdZdZdZdZddgZgZddgZd�Z	id	d
e
fdee
ej
ej��fdee
ej
ej��fd
efdejfdejfdefdefdefdejfdefed��deee��dfdeee��dfdeeje��dfdeeje��dfed��ed��ed ��ed!��d"eej
ej��d#fd$eej
ej��d%fd&eej
ej��d'fd(eej
ej��d)fd*eej
ej��ed+d#��fd,eej
ej��ed+d%��fd-eej
ej��ed+d'��fd.eej
ej��ed+d)��fed/��ed0��g�ded1d2�3��efg�ded4d5d2�6��ejfd7ejjfed8d5d2�6��ejfg�ded9d2�3��ej j!fg�d ed:d2�3��ej"j!fg�d0d;e#j$fd<e#j$fd=e#j%fd>e#j&fd?e#j'fd@e#j(j)fdAe#j(fg�d!dBej*fg�d/dCej+fdDefg�ded��dDej dEfe,dE��g�ddDej-dEfg�ddFefdGejfdHefdIejfe,dE��g�ddFefdJejdEfdKejjdEfdLejfe,dE��g�d+dMej.fg�dNe	ej���dOe	ej���d'dPejdEfdQej.fedO��g�d)dRejdEfdSej.fedN��g�dTejdEfedO��d
ejfgdUejdEfedN��d
ejfgdV��Z/dW�Z0dXS)Yr a
    For Python 2.x source code.

    .. versionchanged:: 2.5
       This class has been renamed from ``PythonLexer``.  ``PythonLexer`` now
       refers to the Python 3 variant.  File name patterns like ``*.py`` have
       been moved to Python 3 as well.
    z
Python 2.xr'�python2�py2ztext/x-python2zapplication/x-python2c�2�dtjfd|fd|fd|fgS)N�G%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]�[^\\\'"%\n]+r4�%r5r7s r9r:zPython2Lexer.innerstring_rules�s4��&�'-��
8��e�$�
���
�5�M�

�
	
r;r?r@rArBr]rCrDr_rErFr`z!=|==|<<|>>|[-~+/*%=<>&^|.]rGrHrIrJrKrLrMrNrOrarbrc�backtickz!([rR]|[uUbB][rR]|[rR][uUbB])(""")rWz!([rR]|[uUbB][rR]|[rR][uUbB])(''')rXz([rR]|[uUbB][rR]|[rR][uUbB])(")rYz([rR]|[uUbB][rR]|[rR][uUbB])(')rZz([uUbB]?)(""")r[z([uUbB]?)(''')z([uUbB]?)(")z([uUbB]?)(')rdr^)rtrvrwrxryrhrz�execr{rir|rjrkr}r�r~r�r�r�rlrmr�r�rnro)Nr�r�r�r��apply�
basestringr�r��bufferr�r��callabler�r��cmp�coercer�r�r�r�r�r�r�r��execfile�exit�filer�r�r�r�r�r�r�r�r�r�r��internr�r�r�r�r�r��longr�r�r�r�r�r�r�r�r�r�r��	raw_input�reduce�reloadr�r�r�r�r�r�r�r�r�r�r�r�r��unichr�unicoder��xranger�r�r�z;(?<!\.)(self|None|Ellipsis|NotImplemented|False|True|cls)\b)1r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��OverflowWarningr�r�r�r��
StandardErrorr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�)_rrrr�__cmp__�
__coerce__rrrrrr�__delslice__�__div__r!r"r#r$r%r&r(r)r*r+r,�__getslice__r-r.�__hex__r/r0�__idiv__r1r2r4r5r6r7r8r9r:�__iop__r;r<r=r>r?r@rArBrC�__long__rErFrHrIrJrKrLrM�__nonzero__�__oct__�__op__rOrPrQrSrT�__rcmp__�__rdiv__rUrVrWrXrYr[r\�__rop__r]r_r`rarbrcrdrerfrg�__setslice__rhrirjrk�__unicode__rl)rnrorprqrrrsrtrurvrw�
__metaclass__ryrzr{r~rr�z'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?z\d+[eE][+-]?[0-9]+j?z	0[0-7]+j?z
0[bB][01]+�0[xX][a-fA-F0-9]+�\d+Lz\d+j?�`.*?`z@[\w.]+�[a-zA-Z_]\w*rez(?:[ \t]|\\\n)+�as\b�,�[a-zA-Z_][\w.]*zimport\br��[a-zA-Z_.][\w.]*�Y\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})r�r�r�r�r�r�r�r�)rWrXc�"�t|d��S)Nzpythonw?2(\.\d)?r�r�s r9r�zPython2Lexer.analyse_text{s���t�%8�9�9�9r;N)1r{ryr}rtrdr�r�r�r�r:rrrr�r�rrr�r�rrr�rrr�r�r
r	rr�r�r�r�r�r�rr�r�r�r�r��Long�Backtickr�rr�r�r�r�r�r;r9r r �s����������D�
!�C��%� �G��I�!�#:�;�I�
�
�
�{��
�J��
6�
�X�j�&�,��
�
;�
;�
=�
6�
�X�j�&�,��
�
;�
;�
=�
�$��
��)�*�
�g�n�%�
�[�)�
�d�O�
�D�M�
$�h�m�4�
+�X�6��G�J���
#�X�X�g�t�%<�%<�j�I�
%�x�x���'>�'>��L�
$�h�h�w�/@�$�&G�&G�
�
�
&����1B�D�(I�(I�
�
��G�J����G�L�!�!��G�K� � ��G�J���
0�
�X�f�l�F�M�
2�
2�F�
<�
0�
�X�f�l�F�M�
2�
2�F�
<�
.�
�X�f�l�F�M�
2�
2�E�
;�
.�
�X�f�l�F�M�
2�
2�E�
;�
�x�x���f�m�D�D�
�X�n�f�
-�
-�
/�
�x�x���f�m�D�D�
�X�n�f�
-�
-�
/�
�X�X�f�l�F�M�B�B�
�X�n�e�
,�
,�
.�
�X�X�f�l�F�M�B�B�
�X�n�e�
,�
,�
.��G�F�O�O��G�I���U+
�{�Z	�
�U�,�5:�	;�;�;�
�
�
�[{�j	�
�U�>�"�%�1�1�1��\�

���\�(�
*�
�U�5�>H�PU�W�W�W��^�
�#!
�k{�n	�
�U�*�$38�%9�9�9�&�]�
 �'
"�
�o{�Z	�
�U�,�
�����]�
 �

"�
�[{�l	�
7���F�
$�f�l�3�
�6�:�&�
�F�J�'�
!�6�:�.�
�f�n�)�*�
�v�~�&�
�m{�~	�
�f�o�&�
�{�D	�
���(�
�d�#�
�E{�L	��G�L�!�!�
�d�m�V�4��G�F�O�O�
�M{�V	�
�d�j�&�1�
�W{�\	�
��&�
�g�'�(�
�8��
���0��G�F�O�O�
�]{�j	�
��&�
�'�+�V�4����+�V�4�
 �$�.�1�
�G�F�O�O�
�k{�B	�<�=C�]�
L�
�C{�J	�+�+�F�M�:�:�K{�L	�+�+�F�M�:�:�M{�N	�
�6�=�&�)�
�v�}�-��G�$�%�%�
�O{�X	�
�6�=�&�)�
�v�}�-��G�$�%�%�
�Y{�d�V�]�F�+��G�$�%�%�
�F�M�"�
��V�]�F�+��G�$�%�%�
�F�M�"�
�m{�{�{�F�z:�:�:�:�:r;r c�.�eZdZdZdZdgZdgZd�Zd�ZdS)ra�
    For Python console output or doctests, such as:

    .. sourcecode:: pycon

        >>> a = 'foo'
        >>> print a
        foo
        >>> 1 / 0
        Traceback (most recent call last):
          File "<stdin>", line 1, in <module>
        ZeroDivisionError: integer division or modulo by zero

    Additional options:

    `python3`
        Use Python 3 lexer for code.  Default is ``True``.

        .. versionadded:: 1.0
        .. versionchanged:: 2.5
           Now defaults to ``True``.
    zPython console session�pyconztext/x-python-doctestc�V�t|dd��|_tj|fi|��dS)Nr+T)rr+rr7)�self�optionss  r9r7zPythonConsoleLexer.__init__�s3��#�G�Y��=�=���
��t�'�'�w�'�'�'�'�'r;c	#�K�|jr#td
i|j��}td
i|j��}n"t	d
i|j��}td
i|j��}d}g}d}d}d}t
j|��D�]}	|	���}
|
�	d��s|
�	d��rJd}|�
t|��dtj
|
dd�fgf��||
dd�z
}��|
���dkrB|s@|�
t|��dtj
dfgf��||
dd�z
}��|r-t||�|����Ed{V��d}g}|
�	d��st#jd	|
��rd
}|
}|	���}��X|
dkr%|	���t(j|
fV����|r^||
z
}|
�	d��sB|
���dks*d}|�|��D]\}}}
||z||
fV��d}���|	���tj|
fV���|r)t||�|����Ed{V��|r&|�|��D]\}}}
||z||
fV��dSdS)N�rz>>> z... �z...�z"Traceback (most recent call last):z  File "[^"]+", line \d+\n$�zKeyboardInterrupt
� r�)r+rr�rr r!r
�finditer�group�
startswith�appendr�r�Prompt�rstripr�get_tokens_unprocessed�re�match�startrr��strip�Output)r�r��pylexer�tblexer�curcode�
insertions�curtb�tbindex�tbr�line�i�t�vs              r9rz)PythonConsoleLexer.get_tokens_unprocessed�s������<�	<�!�1�1�D�L�1�1�G�*�:�:�T�\�:�:�G�G�"�2�2�T�\�2�2�G�+�;�;�d�l�;�;�G����
�����
���%�d�+�+�#	>�#	>�E��;�;�=�=�D����v�&�&�!
>�$�/�/�&�*A�*A�!
>����!�!�3�w�<�<�%&����R�a�R��$A�#B�#D�E�E�E��4����8�#��������%�'�'��'��!�!�3�w�<�<�%&����$>�#?�#A�B�B�B��4����8�#����$�,�"�G�$B�$B�7�$K�$K� M� M�M�M�M�M�M�M�M� �G�!#�J��O�O�$H�I�I�>���!@�$�G�G�>��B� �E�#�k�k�m�m�G�G��2�2�2��+�+�-�-���T�9�9�9�9�9��>��T�M�E� �O�O�C�0�0�#�D�J�J�L�L�E�4I�4I���'.�'E�'E�e�'L�'L�2�2�G�A�q�!�")�!�)�Q��/�1�1�1�1� "����+�+�-�-����=�=�=�=�=��	N�$�Z�%,�%C�%C�G�%L�%L�N�N�
N�
N�
N�
N�
N�
N�
N��	&�"�9�9�%�@�@�
&�
&���1�a��a�i��A�o�%�%�%�%�	&�	&�
&�
&r;N)	r{ryr}rtrdr�r�r7rr�r;r9rrsR��������,$�D��i�G�(�)�I�(�(�(�6&�6&�6&�6&�6&r;rc��eZdZdZdZddgZddgZddgZd	efd
e	j
dfde	j
fd
e	j
fde	j
dfdefgdee
eje
ee
ee��fdee
eje
ee��fdeeee��e��dfdeeee��fdee	je
ee��dfdee	je��dfgdeeeje��dfed��gd�ZdS)ra
    For Python 3.x tracebacks, with support for chained exceptions.

    .. versionadded:: 1.0

    .. versionchanged:: 2.5
       This is now the default ``PythonTracebackLexer``.  It is still available
       as the alias ``Python3TracebackLexer``.
    zPython Traceback�pytb�py3tbz*.pytbz*.py3tbztext/x-python-tracebackztext/x-python3-tracebackr@z'^Traceback \(most recent call last\):\n�intbzH^During handling of the above exception, another exception occurred:\n\nzI^The above exception was the direct cause of the following exception:\n\n�^(?=  File "[^"]+", line \d+)�^.*\n�0^(  File )("[^"]+")(, line )(\d+)(, in )(.+)(\n)�%^(  File )("[^"]+")(, line )(\d+)(\n)�^(    )(.+)(\n)�markers�^([ \t]*)(\.\.\.)(\n)�^([^:]+)(: )(.+)(\n)rez^([a-zA-Z_][\w.]*)(:?\n)z^( {4,})([~^]+)(\n))r?rrN)r{ryr}rtrdr�r�r�rr�	Tracebackrrrrr�rrrrrr�Markerrr�r�r;r9rr�s����������D��w��G��9�%�I�*�,F�G�I��J��
7��9J�F�S�(�)0�):�
<�)�*1�*;�
=�
-�w�/@�&�I�
�u��	
�A�
�X�d�D�L�$���d�J�
O�
O�
Q�
5�
�X�d�D�L�$��
�
C�
C�
E�
�
�X�j�%�%��"4�"4�j�
A�
A�9�
N�
%�
�X�j�'�:�
6�
6�
8�
$�
�X�g�m�T�4��
<�
<�f�
F�
(�
�X�g�m�Z�
0�
0�&�
:�

�$$�
�X�j�+�"4�j�
A�
A�
�
�
�G�F�O�O�
�3"�"�F�F�Fr;rc��eZdZdZdZdgZdgZdgZdee	e
j��dfde
jdfd	efgd
ee	e
je	ee	e
e��fdee	e
je	ee��fdee	ee��e��d
fdee	ee��fdee
je	e
e��dfdee
je��dfgdee	ej��dfed��gd�ZdS)r!z�
    For Python tracebacks.

    .. versionadded:: 0.7

    .. versionchanged:: 2.5
       This class has been renamed from ``PythonTracebackLexer``.
       ``PythonTracebackLexer`` now refers to the Python 3 variant.
    zPython 2.x Traceback�py2tbz*.py2tbztext/x-python2-tracebackz^(\^C)?(Traceback.*\n)rrrrrr�markerrrrez^([a-zA-Z_]\w*)(:?\n)z( {4,})(\^))r?rr#N)r{ryr}rtrdr�r�r�rrrrrrr�rrrr rrrr rr�r�r;r9r!r!sl��������"�D��i�G���I�+�,�I�'�
�X�d�G�-�
.�
.��
8�.�w�/@�&�I�
�u��
�A�
�X�d�D�L�$���d�J�
O�
O�
Q�
5�
�X�d�D�L�$��
�
C�
C�
E�
�
�X�d�E�E�,�/�/��
<�
<�h�
H�
%�
�X�d�G�Z�
0�
0�
2�
$�
�X�g�m�T�4��
<�
<�f�
F�
%�
�X�g�m�Z�
0�
0�&�
:�

� �X�X�d�K�,>�?�?��H��G�F�O�O�
�1��F�F�Fr;r!c
��eZdZdZdZdZgd�Zgd�ZddgZidgd	e	f�d
e
e	ej��f�de
e	ej��f�de
f�d
ef�def�de	f�de
f�dejf�de
eeje��f�def�de
eejeeeee��f�ed���de
ee
��df�de
ee
��df�de
ee��f�de
ee
��df�de
ee
��df�de
ee
��d f�ed!���ed"���d#ed$f�d%ed&f�d'ed(f�d)ed*f�d+eed,d$��f�d-eed,d&��f�d.eed,d(��f�d/eed,d*��f�ed0���ed1����ded2d3�4��efd5ejfg�d!ed6d7d3�8��ejfd9ejjfed:d7d3�8��ejfg�d1d;ejfd<ejfd=ej fd>ejj!fd?ejfg�d"d@ej"fg�d0dAej#fdBefg�ddBej$dCfg�ddDej%fdEefdFe
ej$e
��dCfdGe
ej$e
e��fdHedCfdIefdJedCfdKe
dCfdBejfdLe
fg
�ddBej&dCfg�d dMe
e
ee
��fdNej'fdOe
e
ee
��fe(dC��g�ddPe
e
e��dCfdQej'fe(dC��g�d,dRej)fg�dSdTej*fdUefdVefdWefg�dXd	efg�d(dYedCfdZej)fedS��g�d*d[edCfd\ej)fedS��g�d$d]edCfedS��edX��g�d&d^edCfedS��edX��gi�Z+d_S)`r"zF
    For Pyrex and Cython source code.

    .. versionadded:: 1.1
    �Cythonzhttp://cython.org)�cython�pyx�pyrex)z*.pyxz*.pxdz*.pxiz
text/x-cythonzapplication/x-cythonr?r@z^(\s*)("""(?:.|\n)*?""")z^(\s*)('''(?:.|\n)*?''')r]rDr_rErFr`z(<)([a-zA-Z0-9.?]+)(>)z!=|==|<<|>>|[-~+/*%=<>&^|.?]z(from)(\d+)(<=)(\s+)(<)(\d+)(:)rGz(def|property)(\s+)rIz
(cp?def)(\s+)�cdefz	(cdef)(:)z(class|struct)(\s+)rKz(from)(\s+)rMz(c?import)(\s+)rOrar�z(?:[rR]|[uU][rR]|[rR][uU])"""rWz(?:[rR]|[uU][rR]|[rR][uU])'''rXz(?:[rR]|[uU][rR]|[rR][uU])"rYz(?:[rR]|[uU][rR]|[rR][uU])'rZz[uU]?"""r[z[uU]?'''z[uU]?"z[uU]?'rdr^)rtrurgrv�byrw�ctypedefrxryrhrzzexcept?r�r{ri�fused�gilr|rjrrk�nogilr}r�r~r�r�r�rlr�r�rnroz(DEF|IF|ELIF|ELSE)\b)Qr�r�r�r�r�r�r��bintr�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�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��
Py_ssize_tr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��unsignedr�r�r�r�r�z<(?<!\.)(self|None|Ellipsis|NotImplemented|False|True|NULL)\b)0r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��NotImplementedr�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�z&(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?z0\d+r�r�z\d+r�z@\w+r�rez%(public|readonly|extern|api|inline)\bz(struct|enum|union|class)\bz([a-zA-Z_]\w*)(\s*)(?=[(:#=]|$)z([a-zA-Z_]\w*)(\s*)(,)zfrom\br��:z	(?=["\'])�.r�r�r�z(\s+)(c?import)\br�r��stringszP%(\([a-zA-Z0-9]+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]r�r4r��nlr�r�r�r�r�r�N),r{ryr}rtrdr�r�r�r�rrrr�rrrrr�r�Typerr�rrr
r	�Preprocr�r�r�r�r�r�r�r�r�r��Reservedr�r�rr�r6r�r�r;r9r"r"?s#���������D�
�C�(�(�(�G�+�+�+�I� �"8�9�I�d��$
�
�J��$
�
(�(�(�:�v�z�*J�*J�K�$
�)�(�(�:�v�z�*J�*J�K�$
��$��	$
�
�g��$
��[�)�
$
��j�!�$
��D�M�$
�%�h�m�4�$
�'�
�X�k�7�<��
=�
=�
?�$
�-�h�7�$
�0�
�X�g�v�~�x��x��K�)�)�
*�$
� 
�G�J���!$
�"$�X�X�g�t�%<�%<�j�I�#$
�$�x�x���6�6��?�%$
�(�8�8�G�[�9�9�:�)$
�*$�X�X�g�t�%<�%<�k�J�+$
�,�X�X�g�t�4�4�l�C�-$
�. ���'�4�!8�!8�(�C�/$
�0
�G�J���1$
�2
�G�J���3$
�4-�f�f�=�5$
�6-�f�f�=�7$
�8+�F�E�:�9$
�:+�F�E�:�;$
�<����.�&�!A�!A�B�=$
�>����.�&�!A�!A�B�?$
�@�v�x�x���>�>�?�A$
�B�v�x�x���>�>�?�C$
�D
�G�F�O�O�E$
�F
�G�I���G$
�d�L	�
�U�J�SX�	Y�Y�Y�
�
�%�g�o�6�
�Md�^	�
�U�)�2<�E�K�K�K��\�

���\�(�
*�
�U�%�.8��G�G�G��^�
�#!
�_d�b	�
6���E�
�f�j�!�
!�6�:�.�
�f�n�)�*�
�V�^�$�
�cd�p	�
�f�o�&�
�qd�v	�
�d�n�%�
�d�#�
�wd�~	�
�d�m�V�4�
�d�D	�
5�w�7G�H�
+�W�5�
/�
�X�d�m�T�
*�
*�F�
4�
&�
�X�d�m�T�;�
7�
7�
9�
���(�
�g��
�;��'�
�4��(�
�g�l�+�
�4�L�

�Ed�`	�
�d�j�&�1�
�ad�f	�
����w�� =� =�>�
���0�
�x�x��h��=�=�>��G�F�O�O�	
�gd�r	�
!�8�8�D�'�#:�#:�F�C�
 �$�.�1��G�F�O�O�	
�sd�~	�<�=C�]�
L�
�d�F	�&�'-��
8�
�f�%�
�� �
�6�N�	
�Gd�Z	
�
�F�O�
�[d�`	�
�6�6�"�
�v�}�-��G�I���
�ad�j	�
�6�6�"�
�v�}�-��G�I���
�kd�t	�
�V�V�$��G�I����G�D�M�M�
�ud�~	�
�V�V�$��G�I����G�D�M�M�
�d�d�F�F�Fr;r"c�`�eZdZdZdZdgZdgZdgZdefde	j
fdejfdej
fd	ejfd
ejfdejfdejfd
eeddd��fdeeddd��fdeeddd��fdeeddd��fdefdejfdefeddd���ejfeddd���ejfdejjfd ejfd!ejfd"ejfd#efd$ejfd%efd&efd'efgd(ejfgd)ej fd*efd+efd,efd-efgd.ed/fgd0ed/fgd1ed/fgd2ed/fgd3�Z!d4S)5r#z�
    Lexer for dg,
    a functional and object-oriented programming language
    running on the CPython 3 VM.

    .. versionadded:: 1.6
    �dgz*.dgz	text/x-dgrfz#.*?$z(?i)0b[01]+z(?i)0o[0-7]+z(?i)0x[0-9a-f]+z((?i)[+-]?[0-9]+\.[0-9]+(e[+-]?[0-9]+)?j?z(?i)[+-]?[0-9]+e[+-]?\d+j?z(?i)[+-]?[0-9]+j?z(?i)(br|r?b?)'''r[rX�stringz(?i)(br|r?b?)"""rWz(?i)(br|r?b?)'rZz(?i)(br|r?b?)"rYz`\w+'*`z\b(and|in|is|or|where)\bz[!$%&*+\-./:<-@\\^|~;,]+)r�r�r�r�r�r�zdict'r�r�r�r�zlist'r�r�r�r�r�zset'r�r�r�r�r�ztuple'r�r�z
(?![\'\w])r�)=r�r�r�r�r��bindr�r�r�r�r�r�r��drop�	dropwhiler�r��exhaustr��flipzfoldl1?r��fstr�r�r�r��headr�r��initr�r�r�r��iterate�lastr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�zscanl1?�sndr�r��tail�take�	takewhiler�r�z>(?<!\.)(self|Ellipsis|NotImplemented|None|True|False)(?!['\w])z3(?<!\.)[A-Z]\w*(Error|Exception|Warning)'*(?!['\w])zT(?<!\.)(Exception|GeneratorExit|KeyboardInterrupt|StopIteration|SystemExit)(?!['\w])z_(?<![\w.])(except|finally|for|if|import|not|otherwise|raise|subclass|while|with|yield)(?!['\w])z[A-Z_]+'*(?!['\w])z[A-Z]\w+'*(?!['\w])z\w+'*z[()]r4r�r�r�r4r�r@r�rer�r�r�)r?r[r<rYrZrWrXN)"r{ryr}rtrdr�r�r�rrr�rr�r�r�r�r�rr
rr�r	rr�r�r�rr9r7rrr�r6r�r�r;r9r#r#�sg���������D��f�G���I��
�I��T�N�
�w�~�&�
�V�Z�(�
�f�j�)�
���,�
8�&�,�G�
*�F�L�9�
!�6�>�2�
 �&�(�(�>�6�8�*T�*T�U�
 �&�(�(�>�6�8�*T�*T�U�
�������(Q�(Q�R�
�������(Q�(Q�R�
��"�
(�(�-�8�
(�(�3�
�U�5�
%�]�<�<�<��\�

��U�M�%�]�	<�	<�	<��\�

�O�
�\�
 �
"�D�
�^�
�%�&*�n�
6�4�5<�5E�
G�#�D�)�
#�W�\�2�
�t��
�k�"�
�5�M�m7
�r<�=C�]�
L�
�
&�'-��
8�
�f�%�
�� �
�6�N�
�F�O�	
��6�6�"�
��6�6�"�
��V�V�$�
��V�V�$�
�aS�S�F�F�Fr;r#c�<�eZdZdZdZdZdgZgZgZhd�Z	d�Z
d�ZdS)	r$z[
    A Python lexer recognizing Numerical Python builtins.

    .. versionadded:: 0.10
    �NumPyzhttps://numpy.org/�numpy>��c_�i0�r_�s_r��addr�r��cos�cov�dot�exp�eye�fft�fix�inf�inv�ix_�log�matr�r��mod�nan�ptp�put�sin�stdr��svd�tan�tri�var�who�alen�amax�amin�beta�bmat�ceil�clip�conj�copy�cosh�diag�diff�disp�dump�fabs�fill�flat�fmod�ifft�imag�info�item�kron�less�load�log2�mean�modf�ndim�ones�pinv�poly�prod�ranf�rank�real�rint�roll�seed�sign�sinc�sinh�size�sort�sqrtrI�tanh�test�tile�tril�triu�vdot�view�angle�arrayr��cross�dtype�dumps�empty�equal�expm1�finfo�floor�frexp�hypot�inner�isinf�isnan�ldexp�loads�log10�log1p�lstsq�mgrid�msort�ogrid�outer�place�power�ravel�roots�rot90r��shaper��solve�split�trace�trapz�where�zerosr��arange�arccos�arcsin�arctan�argmax�argmin�around�astype�choose�cumsum�delete�divide�dsplit�dstack�fliplr�flipud�geterr�gumbel�hsplit�hstack�insert�interp�invert�isreal�kaiser�matrix�median�nanmax�nanmin�nansum�poly1dr��repeat�resize�round_�sample�select�seterr�source�square�tofile�tolist�unique�unwrap�vander�vsplit�vstack�alltrue�arccosh�arcsinh�arctan2�arctanh�argsort�asarray�average�cumprod�ediff1d�extract�fftfreq�flatten�generic�greater�hamming�hanning�indices�itemset�lexsort�loadtxt�maximum�minimum�ndindex�newaxis�nonzero�pkgload�poisson�polyadd�polyder�polydiv�polyfit�polyint�polymul�polysub�polyval�product�putmask�randint�require�reshape�savetxt�shuffle�signbit�squeeze�uniform�union1d�weibull�absolute�allclose�alterdot�argwhere�asfarray�asmatrix�asscalar�bartlett�bincount�binomial�blackman�byteswap�can_cast�compress�convolve�corrcoef�diagflat�diagonal�digitize�fftshift�fromfile�fromiter�getfield�gradient�identity�isfinite�isneginf�isposinf�isscalar�issctype�iterable�linspace�logspace�meshgrid�multiply�negative�recarray�rollaxis�setfield�setflags�setxor1d�sometrue�subtract�swapaxes�tostring�typeDict�typename�unique1d�vonmises�	array_str�	base_repr�	broadcast�	conjugate�	correlate�	deprecate�	getbuffer�	geterrobj�	histogram�	index_exp�	iscomplex�	isfortran�	isrealobj�	nanargmax�	nanargmin�	newbuffer�	not_equal�	ones_like�	piecewise�	remainder�	row_stack�	setdiff1d�	seterrobj�	tensordot�	transpose�	vectorize�
accumulate�
array_repr�
arrayrange�
asanyarray�
atleast_1d�
atleast_2d�
atleast_3d�
bitwise_or�
cumproduct�
empty_like�
fromarrays�
frombuffer�
frompyfunc�
fromstring�
getbufsize�
geterrcall�
issubdtype�
left_shift�
less_equal�
logical_or�
nan_to_num�
obj2sctype�
reciprocal�
restoredot�
setbufsize�
seterrcall�
trim_zeros�
zeros_like�array_equal�array_equiv�array_split�binary_repr�bitwise_and�bitwise_not�bitwise_xor�byte_bounds�common_type�concatenate�expand_dims�flatnonzero�get_include�histogram2d�histogramdd�intersect1d�issubclass_�issubsctype�logical_and�logical_not�logical_xor�mintypecode�ndenumerate�permutation�right_shift�sctype2char�setmember1d�show_config�true_divide�array2string�column_stack�floor_divide�fromfunction�int_asbuffer�iscomplexobj�newbyteorder�searchsorted�sort_complex�
greater_equal�
random_sample�
real_if_close�
unravel_index�asfortranarray�get_array_wrap�intersect1d_nu�maximum_sctype�apply_over_axes�random_integers�set_numeric_ops�standard_normal�apply_along_axis�get_printoptions�may_share_memory�set_printoptions�asarray_chkfinite�ascontiguousarray�get_numpy_include�compare_chararrays�set_string_function�fastCopyAndTranspose�get_numarray_includec#�K�t�||��D]1\}}}|tur||jvr|tj|fV��*|||fV��2dS)N)rrr�EXTRA_KEYWORDSrr�)r�r��index�token�values     r9rz!NumPyLexer.get_tokens_unprocessed�sz�����2�2�4��>�>�	*�	*��E�5�%���}�}��$�*=�!=�!=��W�^�U�2�2�2�2�2��U�E�)�)�)�)�)�	*�	*r;c�N�|dd�}t|d��sd|vod|vpd|vS)Nr�r�r�zimport numpyzfrom numpy importr�)r��ltexts  r9r�zNumPyLexer.analyse_text�sI���U�d�U�����&<�=�=�#��U�"�J��5�(�H�,?�5�,H�	Jr;N)r{ryr}rtrdr�r�r�r�r�rr�r�r;r9r$r$Vsu���������D�
�C��i�G��I��I�A�A�A�N�F*�*�*�J�J�J�J�Jr;r$)-rtrr��pygments.lexerrrrrrrr	r
rrr
�
pygments.utilrr�pygments.tokenrrrrrrrrrrrr�pygmentsrr��__all__r�Python3Lexerr rr�Python3TracebackLexerr!r"r#r$r�r;r9�<module>r�s����
�	�	�	�����;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�7�7�7�7�7�7�7�7�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�%�%�%�%�%�%�3�3�3��
A%�A%�A%�A%�A%�*�A%�A%�A%�H��[:�[:�[:�[:�[:�:�[:�[:�[:�|U&�U&�U&�U&�U&��U&�U&�U&�p2�2�2�2�2�:�2�2�2�j-��-�-�-�-�-�J�-�-�-�`q�q�q�q�q�*�q�q�q�h`�`�`�`�`�j�`�`�`�F^J�^J�^J�^J�^J��^J�^J�^J�^J�^Jr;