Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_dis.cpython-311.opt-2.pyc
�

�KeN5�!��)�ddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
ddlmZddl
Z
d�Ze��jjZGd�d��ZdejjjejjjdzfzZd	Zd
ejjjejjjdzfzZdejjjejjjdzfzZd
ejj�de�dejj�de�dejj�de�d�
Zd�ZdejjejjdzejjdzfzZdZ d�Z!de!jje!jjdze!jjdze!jjdze!jjdze!jjdzfzZ"gfd�Z#de#jje#jjdze$e#jjdze#jjdze#jjdzfzZ%d�Z&e&j�'d���e&_dZ(e)gd���Z*dZ+e)e
j,de
j,de
j,de
j-d d!g��Z.d"Z/d#Z0d$Z1d%Z2d&Z3d'Z4d(Z5d)Z6d*Z7d+Z8d,Z9d-Z:d.ejejdzejdzejdzejd/zejdzejd0zfzZ;d1�Z<d2e<jje<jjdzfzZ=d3�Z>d4�Z?d5e>jje>jjdze>jjdze>jjd/zfzZ@d6e?jje?jjdze?jjdze?jjd/zfzZAd7�ZBd8�ZCd9�ZDd:�ZEd;eEjjeEjjdze$eEjjdzeEjjd/zfzZFd<eFe$eEjjdzeEjjdzeEjjdze$eEjjdzfzZGd=eGe$eEjjdzeEjjdzfzZH�dyd>�ZId?eIjjeIjjdzeIjjdzfzZJd@�ZKdAeKjjeKjjdzeKjjdzeKjjdzfzZLdB�ZMdCeMjjeMjjdzfzZNdDZOGdE�dFejP��ZQGdG�dHeQ��ZRGdI�dJeR��ZSejTjU�dKZVndLZVdMeV�dN�ZWeX�dzgdP�dQ���ZYdRZZeYj[jj\dZ]dSZ^dTZ_dUZ`dVZadW�ZbdXZcGdY�dZejP��Zd�d{d[�Zed\�ZfdZgeejjdz
Zheejj\dZieijehz
Zjeij\dZkekjehz
ZldZmd]�Znd^�ZoejpZpepd_d`ddadadddbd�c�	�	epd_d`ddddddddbd�c�	�	epdedfdddgd/ddbd�c�	�	epdhdidjdkdldmddbd�c�	�	epdndoddadadDddbd�c�	�	epdndoddddddpddbd�c�	�	epdqdrdddgdsddbd�c�	�	epdhdideieqei��dtddbd�c�	�	epdudvdwdwdxdyddbd�c�	�	epdzd{dd|d|d}ddbd�c�	�	epd~ddd�d�d�djdbd�c�	�	epd�d�ddadad�ddbd�c�	�	epd�d�dddddd�ddbd�c�	�	epdhdid/dgd�d�ddbd�c�	�	epdhdid0dd�d�ddbd�c�	�	epd�d�dddgd�ddbd�c�	�	epd�d�dddgd�ddbd�c�	�	epdhdidmd�d�d�ddbd�c�	�	epd�d�djdjdgd�ddbd�c�	�	epd�d�djdjdgd�ddbd�c�	�	epd�ddddgd�ddbd�c�	�	epd�d�dd|d|d�dDdbd�c�	�	epd�d�dddgd�ddbd�c�	�	gZrepd�d�dddgdddbd�c�	�	epd_d`dd�d�dddbd�c�	�	epd_d`dd�d�d/ddbd�c�	�	epdedfdddgdmddbd�c�	�	epdhdid/d�d�dDddbd�c�	�	epdndoddadadpddbd�c�	�	epdndod/dddddsddbd�c�	�	epdndodd�d�dtddbd�c�	�	epdndodd�d�dyddbd�c�	�	epdqdrd/d/dgd}ddbd�c�	�	epdhdidekeqek��d�ddbd�c�	�	epdudvdwdwdxd�ddbd�c�	�	epdzd{dd�d�d�ddbd�c�	�	epd~ddd�d�d�d0dbd�c�	�	epd�d�ddadad�ddbd�c�	�	epd�d�d/ddddd�ddbd�c�	�	epd�d�dd�d�d�ddbd�c�	�	epd�d�dd�d�d�ddbd�c�	�	epd�d�d/d/dgd�ddbd�c�	�	epd�d�d/d/dgd�ddbd�c�	�	epd�ddddgd�ddbd�c�	�	epd�d�dd�d�d�dmdbd�c�	�	epd�d�dddgd�ddbd�c�	�	gZsepd�d�d/d/dgdddbd�c�	�	epdedfdddgdddbd�c�	�	epd~ddd�d�d/d/dbd�c�	�	epd�d�ddadadyddbd�c�	�	epd�d�dddddd}ddbd�c�	�	epd�d�d/d�d�d�ddbd�c�	�	epd�d�d0d�d�d�ddbd�c�	�	epd�d�dd�d�d�ddbd�c�	�	epd�d�dd|d|d�ddbd�c�	�	epd�d�dmdmdgd�ddbd�c�	�	epd�d�dmdmdgd�ddbd�c�	�	epd�ddddgd�ddbd�c�	�	epdhdiddd�d�ddbd�c�	�	epd�d�dddgd�ddbd�c�	�	gZtgepdedfdddgdddbd�c�	�	�epd~ddd�d�dddbd�c�	�	�epdhdiddpd�dtddbd�c�	�	�epd�d�dddgdyddbd�c�	�	�epd�d�dddgd�ddbd�c�	�	�epd�d�dddgd�ddbd�c�	�	�epd�d�d�d�d�d�ddOd�c�	�	�epdzd{dd�d�d�ddbd�c�	�	�epd~ddd�d�d�d/dbd�c�	�	�epd�d�dd�d�d�ddbd�c�	�	�epd�d�dddgd�ddbd�c�	�	�epd�d�dddgd�ddbd�c�	�	�epd�ddddgd�ddbd�c�	�	�epd�d�dd�d�d�d0dbd�c�	�	�epdhdidd/d�d�ddbd�c�	�	�epd�d�dd�d�d�ddbd�c�	�	�epd�d�dd�d�d�ddbd�c�	�	�epd�d�d�d�d�d�dmdbd�c�	�	�epd�d�dd�d�d�djdOd�c�	�	�epdhdiddmd�d�ddbd�c�	�	�epd�d�d/d�d�d�ddbd�c�	�	�epd�d�dd�d�d�ddbd�c�	�	�epd�ddddgd�dDdbd�c�	�	�epd d�dyd�d�d�ddbd�c�	�	�epd�d�d�d�d�d�djdOd�c�	�	�epd~ddd�d�d�dpdOd�c�	�	�epdhdid/d�d�d�ddbd�c�	�	�epd�d�dddgd�ddbd�c�	�	�epd�d�dddgdddbd�c�	�	�epd�ddddgd�ddbd�c�	�	�epd�d�dd�d�d�d�dOd�c�	�	�epd�d�d�d�d�d�ddbd�c�	�	�epd~ddd�d�dvdsdOd�c�	�	�epd�d�dd�d�d�ddbd�c�	�	�epd�d�dddgd�ddbd�c�	�	�epd�d�dddgd�ddbd�c�	�	�epd�ddddgd�ddbd�c�	�	�epd�d�dd�d�d�d�dbd�c�	�	�epdhdid0dd�d�ddbd�c�	�	�epd�d�d�d�d�d�ddbd�c�	�	�epdzd{dd�d�d�ddbd�c�	�	�epd�d�dd�d�d�dtdbd�c�	�	�epdhdiddmd�d�ddbd�c�	�	�epd�d�d/d�d�d�ddbd�c�	�	�epd�d�dd�d�d�ddbd�c�	�	�epd�d�d�d�d�d�d�dbd�c�	�	�epd�d�dd�d�d�dydOd�c�	�	�epdhdidd/d�d�ddbd�c�	�	�epd�d�dd�d�d�ddbd�c�	�	�epd�d�dd�d�d�ddbd�c�	�	�epd d�d�d�d�d�d�dbd�c�	�	�epd�d�dd�d�d�d�dOd�c�	�	�epd�d�d�dvd��dddbd�c�	�	�epd~ddd�d�dݐddOd�c�	�	�epdhdidm�d�d�dddbd�c�	�	�epd�d�dddg�dddbd�c�	�	�epd�d�dddg�dddbd�c�	�	�epd�ddddg�dddbd�c�	�	�ep�ddwdddgd�d�dOd�c�	�	�epdhdid0dd��d	�d
dbd�c�	�	�epdhdidjd�d�dddbd�c�	�	�epd�d�d�dܐd
�dddbd�c�	�	�epd�ddddg�dddbd�c�	�	�epd�d�dd�d��d�ddbd�c�	�	�ep�d�ddddg�dddbd�c�	�	�epdzd{d�d�d�dddbd�c�	�	�epd~ddd�d�d!d�dbd�c�	�	�epdhdidD�d�d�dddbd�c�	�	�epd�d�dddg�dddbd�c�	�	�epd�d�dddg�dddbd�c�	�	�epd�ddddg�dddbd�c�	�	�epdhdiddd��d�ddbd�c�	�	�epdhdiddd��dddbd�c�	�	�epdhdiddd��dddbd�c�	�	�epd�d�dddg�d ddbd�c�	�	�epd�d�dddg�d!ddbd�c�	�	�epd�ddddg�d"ddbd�c�	�	�epd d�dܐd#�d$�d%ddbd�c�	�	�ep�d&�d'dddg�d(ddbd�c�	�	�ep�d)�d*dddg�d+ddbd�c�	�	�ep�d,�d-d/�d.�d/�d0ddbd�c�	�	�ep�d1�d2dddg�d3ddbd�c�	�	�ep�d4�d5dddg�d6ddbd�c�	�	�ep�d7�d8dddg�d9ddbd�c�	�	�ep�d1�d2dddg�d:ddbd�c�	�	�epd�ddddg�d.ddOd�c�	�	�ep�d7�d8dddg�d;ddbd�c�	�	�epd�ddddg�d<ddbd�c�	�	�epd�ddddg�d=ddbd�c�	�	�epd dӐd>�d?�d@�d#ddOd�c�	�	�ep�d&�d'dddg�dAddbd�c�	�	�epd~dd/�dB�dB�dCd�dbd�c�	�	�ep�dDd�dddg�dEddbd�c�	�	�epd�d�d}�dF�dG�dHddbd�c�	�	�epd�ddddg�dIddbd�c�	�	�epd~ddd�d��dJd�dbd�c�	�	�epdhdidw�dK�dL�dMddbd�c�	�	�epd�d�dddg�dNddbd�c�	�	�epd�d�dddg�dOddbd�c�	�	�epd�ddddg�dPddbd�c�	�	�ep�d7�d8dddg�dQddbd�c�	�	�epd d�d/�d?�d@�dRddbd�c�	�	�ep�d1�d2dddg�dFd�dOd�c�	�	�ep�d4�d5dddg�dSddbd�c�	�	�ep�d7�d8dddg�dTddbd�c�	�	�ep�d1�d2dddg�dUddbd�c�	�	�epd~ddd�d��d?d�dOd�c�	�	�epdhdidp�dV�dW�dXddbd�c�	�	�epd�d�dddg�dYddbd�c�	�	�epd�d�dddg�dZddbd�c�	�	�epd�ddddg�d[ddbd�c�	�	�epdhdiddd��d\ddbd�c�	�	�epd�d�dddg�d]ddbd�c�	�	�ep�d&�d'dddg�d^ddbd�c�	�	�epd~ddd�d��d_ddbd�c�	�	�epdhdidp�dV�dW�d`ddbd�c�	�	�epd�d�dddg�daddbd�c�	�	�epd�d�dddg�dbddbd�c�	�	�epd�ddddg�dcddbd�c�	�	�ep�d1�d2dddg�ddddbd�c�	�	�ep�d4�d5dddg�deddbd�c�	�	�ep�d7�d8dddg�dfddbd�c�	�	�ep�d1�d2dddg�dgddbd�c�	�	�Zu�dh�Zvepdedfdddgdevjjdbd�c�	�	epdhdiddd�dddb��i��epd�d�dddgd/ddb��i��gZwG�dj��dke��ZxG�dl��dmex��ZyG�dn��doexeQ��ZzG�dp��dqe��Z{G�dr��dsejP��Z|G�dt��dueQ��Z}G�dv��dwe}��Z~e�dxkrej��dSdS(|�N)�captured_stdout�requires_debug_ranges�cpython_only)�BytecodeTestCasec�J�d�}|��}|jr|j}|j�|S)Nc�P�	ddzn#t$r}|j}Yd}~nd}~wwxYw|S)N�r)�	Exception�
__traceback__)�e�tbs  �7/usr/local/apps/python3/lib/python3.11/test/test_dis.py�_errorzget_tb.<locals>._errorsG��	!�
��E�E�E���	!�	!�	!���B�B�B�B�B�B�����	!�����	s��
#��#)�tb_next)rr
s  r�get_tbrs@�����
����B�
�*��
�Z��
�*��
�I�c�@�eZdZd�Zed���Zed���ZdS)�_Cc��|dk|_dS�Nr	��x)�selfrs  r�__init__z_C.__init__ s���a�����rc��|dk}dSr�rs r�smz_C.sm#s��
��F���rc��|dk|_dSrr)�clsrs  r�cmz_C.cm's���Q�����rN)�__name__�
__module__�__qualname__r�staticmethodr�classmethodr rrrrrsY�������������\������[���rraB%3d        RESUME                   0

%3d        LOAD_FAST                1 (x)
           LOAD_CONST               1 (1)
           COMPARE_OP               2 (==)
           LOAD_FAST                0 (self)
           STORE_ATTR               0 (x)
           LOAD_CONST               0 (None)
           RETURN_VALUE
r	a       RESUME                   0
       LOAD_FAST                1
       LOAD_CONST               1
       COMPARE_OP               2 (==)
       LOAD_FAST                0
       STORE_ATTR               0
       LOAD_CONST               0
       RETURN_VALUE
aA%3d        RESUME                   0

%3d        LOAD_FAST                1 (x)
           LOAD_CONST               1 (1)
           COMPARE_OP               2 (==)
           LOAD_FAST                0 (cls)
           STORE_ATTR               0 (x)
           LOAD_CONST               0 (None)
           RETURN_VALUE
�a%3d        RESUME                   0

%3d        LOAD_FAST                0 (x)
           LOAD_CONST               1 (1)
           COMPARE_OP               2 (==)
           STORE_FAST               0 (x)
           LOAD_CONST               0 (None)
           RETURN_VALUE
zDisassembly of z:
z
Disassembly of �
c�$�t|��dSr��print)�as r�_fr,es��	�!�H�H�H��1ra(%3d        RESUME                   0

%3d        LOAD_GLOBAL              1 (NULL + print)
           LOAD_FAST                0 (a)
           PRECALL                  1
           CALL                     1
           POP_TOP

%3d        LOAD_CONST               1 (1)
           RETURN_VALUE
z�       RESUME                   0
       LOAD_GLOBAL              1
       LOAD_FAST                0
       PRECALL                  1
       CALL                     1
       POP_TOP
       LOAD_CONST               1
       RETURN_VALUE
c�,�tdd��D]}�dS)Nr	�
��range)�ress r�	bug708901r2�s-���Q����
�
���
�
ra�%3d        RESUME                   0

%3d        LOAD_GLOBAL              1 (NULL + range)
           LOAD_CONST               1 (1)

%3d        LOAD_CONST               2 (10)

%3d        PRECALL                  2
           CALL                     2
           GET_ITER
        >> FOR_ITER                 2 (to 40)
           STORE_FAST               0 (res)

%3d        JUMP_BACKWARD            3 (to 34)

%3d     >> LOAD_CONST               0 (None)
           RETURN_VALUE
�c��dS�Nrrs r�
bug1333982r6�s	��	�Dra%3d        RESUME                   0

%3d        LOAD_ASSERTION_ERROR
           LOAD_CONST               2 (<code object <listcomp> at 0x..., file "%s", line %d>)
           MAKE_FUNCTION            0
           LOAD_FAST                0 (x)
           GET_ITER
           PRECALL                  0
           CALL                     0

%3d        LOAD_CONST               3 (1)

%3d        BINARY_OP                0 (+)
           PRECALL                  0
           CALL                     0
           RAISE_VARARGS            1
c��dSr5rrrr�bug42562r8�s���Dr����co_linetablez_       RESUME                   0
       LOAD_CONST               0 (None)
       RETURN_VALUE
)
�r	�	�r<r	�d�)�Srz�       EXTENDED_ARG             1
       NOP
       EXTENDED_ARG             1
       LOAD_CONST             297
       RETURN_VALUE
r>�JUMP_FORWARD�z�    >> EXTENDED_ARG           255
       EXTENDED_ARG         65535
       EXTENDED_ARG         16777215
       JUMP_FORWARD            -4 (to 0)
z�  1        RESUME                   0

%3d        LOAD_GLOBAL              0 (spam)
           POP_TOP
           LOAD_CONST               0 (None)
           RETURN_VALUE
z�   1        RESUME                   0

%4d        LOAD_GLOBAL              0 (spam)
            POP_TOP
            LOAD_CONST               0 (None)
            RETURN_VALUE
z�Disassembly of f:
  4        RESUME                   0
           LOAD_CONST               0 (None)
           RETURN_VALUE

Disassembly of g:
  5        RESUME                   0
           LOAD_CONST               0 (None)
           RETURN_VALUE

zx + 1z�  0        RESUME                   0

  1        LOAD_NAME                0 (x)
           LOAD_CONST               0 (1)
           BINARY_OP                0 (+)
           RETURN_VALUE
�	x = x + 1a  0        RESUME                   0

  1        LOAD_NAME                0 (x)
           LOAD_CONST               0 (1)
           BINARY_OP                0 (+)
           STORE_NAME               0 (x)
           LOAD_CONST               1 (None)
           RETURN_VALUE
z+
x: int = 1
y: fun(1)
lst[fun(0)]: int = 1
a  0        RESUME                   0

  2        SETUP_ANNOTATIONS
           LOAD_CONST               0 (1)
           STORE_NAME               0 (x)
           LOAD_NAME                1 (int)
           LOAD_NAME                2 (__annotations__)
           LOAD_CONST               1 ('x')
           STORE_SUBSCR

  3        PUSH_NULL
           LOAD_NAME                3 (fun)
           LOAD_CONST               0 (1)
           PRECALL                  1
           CALL                     1
           LOAD_NAME                2 (__annotations__)
           LOAD_CONST               2 ('y')
           STORE_SUBSCR

  4        LOAD_CONST               0 (1)
           LOAD_NAME                4 (lst)
           PUSH_NULL
           LOAD_NAME                3 (fun)
           LOAD_CONST               3 (0)
           PRECALL                  1
           CALL                     1
           STORE_SUBSCR
           LOAD_NAME                1 (int)
           POP_TOP
           LOAD_CONST               4 (None)
           RETURN_VALUE
zx = 0
while 1:
    x += 1ac  0        RESUME                   0

  1        LOAD_CONST               0 (0)
           STORE_NAME               0 (x)

  2        NOP

  3     >> LOAD_NAME                0 (x)
           LOAD_CONST               1 (1)
           BINARY_OP               13 (+=)
           STORE_NAME               0 (x)

  2        JUMP_BACKWARD            6 (to 8)
a�%3d        RESUME                   0

%3d        NOP

%3d        LOAD_CONST               1 (1)
           LOAD_CONST               2 (0)
    -->    BINARY_OP               11 (/)
           POP_TOP
           JUMP_FORWARD            30 (to 76)
        >> PUSH_EXC_INFO

%3d        LOAD_GLOBAL              0 (Exception)
           CHECK_EXC_MATCH
           POP_JUMP_FORWARD_IF_FALSE    17 (to 68)
           STORE_FAST               0 (e)

%3d        LOAD_FAST                0 (e)
           LOAD_ATTR                1 (__traceback__)
           STORE_FAST               1 (tb)
           POP_EXCEPT
           LOAD_CONST               0 (None)
           STORE_FAST               0 (e)
           DELETE_FAST              0 (e)
           JUMP_FORWARD             8 (to 76)
        >> LOAD_CONST               0 (None)
           STORE_FAST               0 (e)
           DELETE_FAST              0 (e)
           RERAISE                  1

%3d     >> RERAISE                  0
        >> COPY                     3
           POP_EXCEPT
           RERAISE                  1

%3d     >> LOAD_FAST                1 (tb)
           RETURN_VALUE
ExceptionTable:
��c� �|�d|d�d|�d|d��S)N� �4r�r+�b�c�ds    r�_fstringrN�s,���%�%�!�%�%�%��%�%�a�%�%�%�%ra�%3d        RESUME                   0

%3d        LOAD_FAST                0 (a)
           FORMAT_VALUE             0
           LOAD_CONST               1 (' ')
           LOAD_FAST                1 (b)
           LOAD_CONST               2 ('4')
           FORMAT_VALUE             4 (with format)
           LOAD_CONST               1 (' ')
           LOAD_FAST                2 (c)
           FORMAT_VALUE             2 (repr)
           LOAD_CONST               1 (' ')
           LOAD_FAST                3 (d)
           LOAD_CONST               2 ('4')
           FORMAT_VALUE             6 (repr, with format)
           BUILD_STRING             7
           RETURN_VALUE
c�:�	||��S#|��wxYwr5r�r+rKs  r�_tryfinallyrQ�s'����	���������������s��c�<�		|��dS#|��wxYwrr)rKs r�_tryfinallyconstrS�s)����	����������������s�ag%3d        RESUME                   0

%3d        NOP

%3d        LOAD_FAST                0 (a)

%3d        PUSH_NULL
           LOAD_FAST                1 (b)
           PRECALL                  0
           CALL                     0
           POP_TOP
           RETURN_VALUE
        >> PUSH_EXC_INFO
           PUSH_NULL
           LOAD_FAST                1 (b)
           PRECALL                  0
           CALL                     0
           POP_TOP
           RERAISE                  0
        >> COPY                     3
           POP_EXCEPT
           RERAISE                  1
ExceptionTable:
av%3d        RESUME                   0

%3d        NOP

%3d        NOP

%3d        PUSH_NULL
           LOAD_FAST                0 (b)
           PRECALL                  0
           CALL                     0
           POP_TOP
           LOAD_CONST               1 (1)
           RETURN_VALUE
           PUSH_EXC_INFO
           PUSH_NULL
           LOAD_FAST                0 (b)
           PRECALL                  0
           CALL                     0
           POP_TOP
           RERAISE                  0
        >> COPY                     3
           POP_EXCEPT
           RERAISE                  1
ExceptionTable:
c#�K�|V�dSr5rrs r�_grU�s����
�G�G�G�G�Grc�K�|WV�dSr5rrs r�_agrW�s����
�G�G�G�G�G�Grc��:K�t|��23d{V��}�6dSr5)rW)r�items  r�_corZ�s@�����!�f�f�
�
�
�
�
�
�
�d���f�fs�c����fd�}|S)Nc�$���	�fd��D��S)Nc���g|]}�|z��Srr)�.0�zrs  �r�
<listcomp>z#_h.<locals>.foo.<locals>.<listcomp>s���!�!�!�!��A��!�!�!rr�r�ys`�r�fooz_h.<locals>.foos!�����!�!�!�!�q�!�!�!�!rr)rbrcs` r�_hrds#���"�"�"�"�"��Jra�           MAKE_CELL                0 (y)

%3d        RESUME                   0

%3d        LOAD_CLOSURE             0 (y)
           BUILD_TUPLE              1
           LOAD_CONST               1 (<code object foo at 0x..., file "%s", line %d>)
           MAKE_FUNCTION            8 (closure)
           STORE_FAST               1 (foo)

%3d        LOAD_FAST                1 (foo)
           RETURN_VALUE
a:%s
Disassembly of <code object foo at 0x..., file "%s", line %d>:
           COPY_FREE_VARS           1
           MAKE_CELL                0 (x)

%3d        RESUME                   0

%3d        LOAD_CLOSURE             0 (x)
           BUILD_TUPLE              1
           LOAD_CONST               1 (<code object <listcomp> at 0x..., file "%s", line %d>)
           MAKE_FUNCTION            8 (closure)
           LOAD_DEREF               1 (y)
           GET_ITER
           PRECALL                  0
           CALL                     0
           RETURN_VALUE
a(%s
Disassembly of <code object <listcomp> at 0x..., file "%s", line %d>:
           COPY_FREE_VARS           1

%3d        RESUME                   0
           BUILD_LIST               0
           LOAD_FAST                0 (.0)
        >> FOR_ITER                 7 (to 24)
           STORE_FAST               1 (z)
           LOAD_DEREF               2 (x)
           LOAD_FAST                1 (z)
           BINARY_OP                0 (+)
           LIST_APPEND              2
           JUMP_BACKWARD            8 (to 8)
        >> RETURN_VALUE
c��||}}||fSr5r)rrbr+rKs    r�	load_testrfHs���a�q�A��a�4�Kra�%3d           0 RESUME_QUICK             0

%3d           2 LOAD_FAST__LOAD_FAST     0 (x)
              4 LOAD_FAST                1 (y)
              6 STORE_FAST__STORE_FAST     3 (b)
              8 STORE_FAST__LOAD_FAST     2 (a)

%3d          10 LOAD_FAST__LOAD_FAST     2 (a)
             12 LOAD_FAST                3 (b)
             14 BUILD_TUPLE              2
             16 RETURN_VALUE
c�8�gd�dzD]}t|���dS)N)r	r&r3r3�rf)�is r�	loop_testrj\s0��
�Y�Y��]�����!������ra�%3d           0 RESUME_QUICK             0

%3d           2 BUILD_LIST               0
              4 LOAD_CONST               1 ((1, 2, 3))
              6 LIST_EXTEND              1
              8 LOAD_CONST               2 (3)
             10 BINARY_OP_ADAPTIVE       5 (*)
             14 GET_ITER
             16 FOR_ITER                17 (to 52)
             18 STORE_FAST               0 (i)

%3d          20 LOAD_GLOBAL_MODULE       1 (NULL + load_test)
             32 LOAD_FAST                0 (i)
             34 PRECALL_PYFUNC           1
             38 CALL_PY_WITH_DEFAULTS     1
             48 POP_TOP
             50 JUMP_BACKWARD_QUICK     18 (to 16)

%3d     >>   52 LOAD_CONST               0 (None)
             54 RETURN_VALUE
c��d�^}}dS)N.r)�_s r�extended_arg_quickrmzs���E�Q���rae%3d           0 RESUME                   0

%3d           2 LOAD_CONST               1 (Ellipsis)
              4 EXTENDED_ARG             1
              6 UNPACK_EX              256
              8 STORE_FAST               0 (_)
             10 STORE_FAST               0 (_)
             12 LOAD_CONST               0 (None)
             14 RETURN_VALUE
�c�0�eZdZ	d�Zd�Zd�Zd�Zdd�ZdS)	�DisTestBasec�.�tjdd|��S)Nz\b0x[0-9A-Fa-f]+\bz0x...)�re�sub)r�texts  r�strip_addresseszDisTestBase.strip_addresses�s���v�+�W�d�;�;�;rc� �|D]}|r|�d��sn�dSd}||dkr|dz
}||dk�||dkr|dz
}||dkr|dz
}||dk�|}||dvr|dz
}||dv�|dz
|fS)	N�Disassembly)rrrFrHr	�>r&�
0123456789)�
startswith)r�lines�line�offset�ends     r�find_offset_columnzDisTestBase.find_offset_column�s����	�	�D��
�D�O�O�M�:�:�
�����4����F�|�s�"�"��a�K�F��F�|�s�"�"���L�C����a�K�F��F�|�s�"�"��a�K�F��F�|�s�"�"����3�i�<�'�'��1�H�C��3�i�<�'�'��1�u�c�z�rc�8�d}|���}|�|��\}}|D]h}|s�|�d��rd}�|�d��rdSt|||���}|�|||��||z}�idS)Nrrwr
)�
splitlinesrrz�int�assertGreaterEqual)	rrt�delta�expected_offsetr{�startr~r|r}s	         r�assert_offsets_increasingz%DisTestBase.assert_offsets_increasing�s��������!�!���,�,�U�3�3�
��s��
	-�
	-�D��
�����}�-�-�
�"#������{�+�+�
������e�C�i��)�)�F��#�#�F�O�T�B�B�B�$�u�n�O�O�
	-�
	-rc��|�d��}|�|��\}}g}t|��}|D]�}|�d��r|�|��nV|r|�d��r|�|���[|�|d|�||d�z����d�|��S)NTr
rw�)r�r�iterrz�append�join)rrtr{r�r~r1r|s       r�
strip_offsetszDisTestBase.strip_offsets�s�������%�%���,�,�U�3�3�
��s����U�����	6�	6�D����{�+�+�
��
�
�4� � � ����
6�4�?�?�=�9�9�
6��
�
�4� � � � ��
�
�4����<�$�s�t�t�*�4�5�5�5�5��w�w�s�|�|�rFc���|s+|�|d��|�|��}||kr|�|��}|�||��dS)Nr&)r�r�ru�assertEqual)r�got�expected�with_offsetss    r�do_disassembly_comparez"DisTestBase.do_disassembly_compare�sk���	*��*�*�3��2�2�2��$�$�S�)�)�C��(�?�?��&�&�s�+�+�C�����h�'�'�'�'�'rN�F)r!r"r#rurr�r�r�rrrrprp�sg������8�<�<�<����$-�-�-� 
�
�
�(�(�(�(�(�(rrpc��eZdZdZd-d�Zd.d�Zd/d�Zd�Zd	�Zd
�Z	d�Z
d�Zd
�Zd�Z
d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd �Zd!�Z d"�Z!d#�Z"e#e$fd$���Z%e&d%���Z'e&d&���Z(e&d'���Z)e&d(���Z*e&d)���Z+e&d*���Z,d+�Z-e&d,���Z.dS)0�DisTestsN���Tc��tj��}tj|��5|rt	j|fi|��nt	j||fi|��ddd��n#1swxYwY|���Sr5)�io�StringIO�
contextlib�redirect_stdout�dis�disassemble�getvalue�r�func�lasti�wrapper�kwargs�outputs      r�get_disassemblyzDisTests.get_disassembly�s��������
�
'��
/�
/�	7�	7��
7����'�'��'�'�'�'����e�6�6�v�6�6�6�		7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�
��� � � s�)A�A!�$A!c�0�|�||d��S)NF)r�)rr�r�s   r�get_disassemble_as_stringz"DisTests.get_disassemble_as_string�s���#�#�D�%��7�7�7rFc�p�d|_|�|d���}|�|||��dS)Nr��depth)�maxDiffr�r�)rr�r�r�r�s     r�do_disassembly_testzDisTests.do_disassembly_test�s?������"�"�4�q�"�1�1���#�#�C��<�@�@�@�@�@rc��|�tjdd��|�tjdtj��|�tjdtj��dS)N�NOPr=�
LOAD_CONST�
STORE_NAME)r�r��opmap�assertIn�hasconst�hasname�rs r�
test_opmapzDisTests.test_opmap�s_�������5�)�1�-�-�-��
�
�c�i��-�s�|�<�<�<��
�
�c�i��-�s�{�;�;�;�;�;rc�r�|�tjtjdd��dS)N�	LOAD_FAST)r�r��opnamer�r�s r�test_opnamezDisTests.test_opname�s,�������C�I�k�$:�;�[�I�I�I�I�Irc���|�tjdtj��|�tjdtj��dS)N�EXTENDED_ARGr�)r�r�r�r��
HAVE_ARGUMENTr�s r�test_boundarieszDisTests.test_boundaries�sH�������>�2�C�4D�E�E�E������<�0�#�2C�D�D�D�D�Drc�n�tgd���}ttj��D]�\}}||vr�
|�|���5tj}|tjkr|dtjzz
}|�t|��|��ddd��n#1swxYwY��dS)N)	�POP_JUMP_FORWARD_IF_FALSE�POP_JUMP_FORWARD_IF_TRUE�POP_JUMP_FORWARD_IF_NOT_NONE�POP_JUMP_FORWARD_IF_NONE�POP_JUMP_BACKWARD_IF_FALSE�POP_JUMP_BACKWARD_IF_TRUE�POP_JUMP_BACKWARD_IF_NOT_NONE�POP_JUMP_BACKWARD_IF_NONE�JUMP_BACKWARD_NO_INTERRUPT)r�r	)
�set�	enumerater�r��subTest�
_OPNAME_WIDTHr��_OPARG_WIDTH�assertLessEqual�len)r�long_opcodes�opcoder��widths     r�test_widthszDisTests.test_widths�s���	�	�	�	�	��(��
�3�3�	9�	9�N�F�F���%�%�����V��,�,�
9�
9��)���C�-�-�-��Q��!1�1�1�E��$�$�S��[�[�%�8�8�8�	
9�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9����
9�
9�
9�
9��	9�	9s�AB)�)B-	�0B-	c�F�|�tt��dSr5)r�r,�dis_fr�s r�test_diszDisTests.test_dis���� � ��U�+�+�+�+�+rc�F�|�tt��dSr5)r�r2�
dis_bug708901r�s r�test_bug_708901zDisTests.test_bug_708901s��� � ��M�:�:�:�:�:rc�r�	|�d��|�tt��dS)NTzneed asserts, run without -O)�skipTestr�r6�dis_bug1333982r�s r�test_bug_1333982zDisTests.test_bug_1333982s6��	:��M�M�8�9�9�9�� � ��^�<�<�<�<�<rc�F�|�tt��dSr5)r�r8�dis_bug42562r�s r�test_bug_42562zDisTests.test_bug_42562s��� � ��<�8�8�8�8�8rc�F�|�tt��dSr5)r��code_bug_45757�
dis_bug_45757r�s r�test_bug_45757zDisTests.test_bug_45757s��� � ���?�?�?�?�?rc�F�|�tt��dSr5)r��bug46724�dis_bug46724r�s r�test_bug_46724zDisTests.test_bug_46724s��� � ��<�8�8�8�8�8rc���d�}tdd��D].}t|dzz}|�||��|���/tddd��D].}t|dzz}|�||��|���/tddd��D].}t|dzz}|�||��|���/dd	lm}|�|t��dS)
Nc�v�i}dd�dg|zdgz��z}t||��|dS)Nzdef foo():
 r�z
 zspam
rc�r��exec��count�	namespacer�s   rr�z'DisTests.test_big_linenos.<locals>.funcsE���I�"�R�W�W�e�W�u�_��z�-I�%J�%J�J�D���y�!�!�!��U�#�#rr	i,r&��r.i�r)�
dis_module)r0�_BIG_LINENO_FORMATr��_BIG_LINENO_FORMAT2�testr��dis_module_expected_results)rr�rir�r�s     r�test_big_linenoszDisTests.test_big_linenoss��	$�	$�	$��q�#���	8�	8�A�)�Q��U�3�H��$�$�T�T�!�W�W�h�7�7�7�7��s�D�"�%�%�	8�	8�A�)�Q��U�3�H��$�$�T�T�!�W�W�h�7�7�7�7��t�T�2�&�&�	8�	8�A�*�a�!�e�4�H��$�$�T�T�!�W�W�h�7�7�7�7�#�#�#�#�#�#�� � ��-H�I�I�I�I�Irc�B�d|_d�}d�}tdd��D],}|�||��||d��d���-|�|d��|dd��d��|�|d��|dd��d��dS)	Nc�t�i}dd�dg|z��zdz}t||��|dS)Nz
def foo(x):
 �;rDz

 return xrcr�r�s   rr�z'DisTests.test_big_offsets.<locals>.func5sD���I�#�c�h�h��}�u�/D�&E�&E�E�
�U�D���y�!�!�!��U�#�#rc����d�dfzg}|�fd�t|��D��z
}|d�d|zdz�d|zdzfzgz
}d|d	d
d�z|d	<d�|��S)Nz+  1        %*d RESUME                   0

rc�Z��g|]'}d�d|zdz�d|zdz�d|zdz�d|zdzfz��(S)z�           %*d LOAD_FAST                0 (x)
           %*d LOAD_CONST               1 (1)
           %*d BINARY_OP                0 (+)
           %*d STORE_FAST               0 (x)
r.r&rE�r)r^ri�ws  �rr`z?DisTests.test_big_offsets.<locals>.expected.<locals>.<listcomp>@sf���(�(�(��
�
	�"�Q�$��(�A�r�!�t�a�x��B�q�D�1�H�a��A����;�<�(�(�(rzK
  3        %*d LOAD_FAST                0 (x)
           %*d RETURN_VALUE
r.r&rEz  2r	r3r�)r0r�)r�r��ss ` rr�z+DisTests.test_big_offsets.<locals>.expected;s�����	�!�f�
��A�
�(�(�(�(� ��,�,�
(�(�(�
(�A�
��	�"�U�(�Q�,��2�e�8�a�<�(�	)�*�
*�A�
�1�Q�4����8�#�A�a�D��7�7�1�:�:�rr	rFrETi�r�)r�r0r�)rr�r�ris    r�test_big_offsetszDisTests.test_big_offsets3s������	$�	$�	$�	�	�	�(�q�!���	D�	D�A��$�$�T�T�!�W�W�h�h�q�!�n�n�d�C�C�C�C�� � ���c���H�H�S�!�,<�,<�d�C�C�C�� � ���d���X�X�d�A�->�->��E�E�E�E�Erc��|�tt��|�tt��|�t
t��|�tt��dSr5)	r��expr_str�dis_expr_str�simple_stmt_str�dis_simple_stmt_str�annot_stmt_str�dis_annot_stmt_str�compound_stmt_str�dis_compound_stmt_strr�s r�test_disassemble_strzDisTests.test_disassemble_strTsd��� � ��<�8�8�8�� � ��2E�F�F�F�� � ��1C�D�D�D�� � �!2�4I�J�J�J�J�Jrc�Z�|�tjjt��dSr5)r�r,�__code__�co_code�
dis_f_co_coder�s r�test_disassemble_byteszDisTests.test_disassemble_bytesZs#��� � ���!4�m�D�D�D�D�Drc�F�|�tt��dSr5)r�r�dis_cr�s r�test_disassemble_classzDisTests.test_disassemble_class]r�rc�`�|�td��jt��dSr)r�rr�dis_c_instance_methodr�s r� test_disassemble_instance_methodz)DisTests.test_disassemble_instance_method`s'��� � ��A����1F�G�G�G�G�Grc�x�td��jjj}|�|t
��dSr)rrr
rr��dis_c_instance_method_bytes)r�method_bytecodes  r�&test_disassemble_instance_method_bytesz/DisTests.test_disassemble_instance_method_bytescs2���Q�%�%�.�1�9��� � ��2M�N�N�N�N�Nrc�P�|�tjt��dSr5)r�rr�dis_c_static_methodr�s r�test_disassemble_static_methodz'DisTests.test_disassemble_static_methodgs!��� � ���(;�<�<�<�<�<rc�P�|�tjt��dSr5)r�rr �dis_c_class_methodr�s r�test_disassemble_class_methodz&DisTests.test_disassemble_class_methodjs!��� � ���(:�;�;�;�;�;rc��|�t��}|�td����}|�||��dSr)r�rUr�)r�gen_func_disas�	gen_disass   r�test_disassemble_generatorz#DisTests.test_disassemble_generatormsJ���-�-�b�1�1���(�(��A���/�/�	�����N�3�3�3�3�3rc��|�t��}|�td����}|�||��dSr)r�rWr�)r�agen_func_disas�
agen_disass   r� test_disassemble_async_generatorz)DisTests.test_disassemble_async_generatorrsJ���.�.�s�3�3���)�)�#�a�&�&�1�1�
�����_�5�5�5�5�5rc���|�t��}td��}|���|�|��}|�||��dSr)r�rZ�closer�)r�coro_func_disas�coro�
coro_disass    r�test_disassemble_coroutinez#DisTests.test_disassemble_coroutinews\���.�.�s�3�3���1�v�v���
�
�����)�)�$�/�/�
�����_�5�5�5�5�5rc�F�|�tt��dSr5)r�rN�dis_fstringr�s r�test_disassemble_fstringz!DisTests.test_disassemble_fstring~s��� � ��;�7�7�7�7�7rc��|�tt��|�tt��dSr5)r�rQ�dis_tryfinallyrS�dis_tryfinallyconstr�s r�test_disassemble_try_finallyz%DisTests.test_disassemble_try_finally�s6��� � ��n�=�=�=�� � �!1�3F�G�G�G�G�Grc��	t`n#t$rYnwxYw|�tt
jd��dSr5)�sys�last_traceback�AttributeError�assertRaises�RuntimeErrorr�r�s r�
test_dis_nonezDisTests.test_dis_none�sP��	��"�"���	�	�	��D�	�������,����6�6�6�6�6s�
�
�c� �d|_	t`n#t$rYnwxYw	ddzn*#t$r}|j}|t_Yd}~nd}~wwxYw|�|jj|j	��}|�
d|d��dS)Nr	rT)r�r7r8r9r
rr��tb_frame�f_code�tb_lastir�)rrr
�tb_diss    r�test_dis_tracebackzDisTests.test_dis_traceback�s������	��"�"���	�	�	��D�	����	$�
�a�C�C�C���	$�	$�	$���B�!#�C�����������	$�����/�/���0B�B�K�P�P��� � ��v�t�4�4�4�4�4s ��
��(�
A�A
�
Ac�j�|�ttjt����dSr5)r:�	TypeErrorr��objectr�s r�test_dis_objectzDisTests.test_dis_object�s&�����)�S�W�f�h�h�7�7�7�7�7rc�����fd�}|td���|td���|td���|td���|td���|t��dS)Nc����jtfi|��}��|��}��|��}��||��dSr5)r�rdrur�r�)r�r�r�rs   �r�checkz2DisTests.test_disassemble_recursive.<locals>.check�s_���&�$�&�r�4�4�V�4�4�C��&�&�s�+�+�C��$�$�S�)�)�C����S�(�+�+�+�+�+rrr�r	r&r3)�dis_nested_0�dis_nested_1�dis_nested_2)rrIs` r�test_disassemble_recursivez#DisTests.test_disassemble_recursive�s����	,�	,�	,�	,�	,�	��l�!�$�$�$�$�
��l�!�$�$�$�$�
��l�!�$�$�$�$�
��l�!�$�$�$�$�
��l�$�'�'�'�'�
��l�����rc�>�t|��D]}|���
dSr5r/)�f�timesrls   r�code_quickenzDisTests.code_quicken�s.���u���	�	�A�
�A�C�C�C�C�	�	rc��|�d���|�td���}|�|td��dS)Nc�"�tdd��S)Nrrhrrr�<lambda>z2DisTests.test_super_instructions.<locals>.<lambda>�s��)�A�q�/�/�rT��adaptive)rQr�rfr��dis_load_test_quickened_code�rr�s  r�test_super_instructionsz DisTests.test_super_instructions�sQ�����1�1�2�2�2��"�"�9�t�"�<�<���#�#�C�)E�t�L�L�L�L�Lrc�������d}tddd���|��fd���|��d���}|�||dzd��tdd	d���|��fd
���|��d���}|�||dzd��d}td
dd���|��fd���|��d���}|�||dzd��td
dd���|��fd���|��d���}|�||dzd��dS)Nz�  0           0 RESUME_QUICK             0

  1           2 LOAD_NAME                0 (a)
              4 LOAD_NAME                1 (b)
              6 %s
             10 RETURN_VALUE
za + bz<int>�evalc�,��t�iddd���S)Nr	r&rP�r�)�co_ints�rrTz1DisTests.test_binary_specialize.<locals>.<lambda>�s���$�v�r���3C�3C�"D�"D�rTrUzBINARY_OP_ADD_INT        0 (+)z	<unicode>c�,��t�iddd���S)Nr+rKrPr])�
co_unicodes�rrTz1DisTests.test_binary_specialize.<locals>.<lambda>�s���$�z�2�S�s�7K�7K�"L�"L�rzBINARY_OP_ADD_UNICODE     0 (+)z�  0           0 RESUME_QUICK             0

  1           2 LOAD_NAME                0 (a)
              4 LOAD_CONST               0 (0)
              6 %s
             16 RETURN_VALUE
za[0]z<list>c�,��t�iddgi��S)Nr+rr])�co_lists�rrTz1DisTests.test_binary_specialize.<locals>.<lambda>�s���$�w��S�1�#�J�"?�"?�r�BINARY_SUBSCR_LIST_INTz<dict>c�.��t�idddii��S)Nr+r�1r])�co_dicts�rrTz1DisTests.test_binary_specialize.<locals>.<lambda>�s���$�w��S�1�c�(�O�"D�"D�r�BINARY_SUBSCR_DICT��compilerQr�r�)r�binary_op_quickenr��binary_subscr_quickenrfr^rbr`s    @@@@r�test_binary_specializezDisTests.test_binary_specialize�s�����������'�6�2�2�����D�D�D�D�E�E�E��"�"�6�D�"�9�9���#�#�C�):�=]�)]�_c�d�d�d��W�k�6�:�:�
����L�L�L�L�M�M�M��"�"�:��"�=�=���#�#�C�):�=^�)^�`d�e�e�e�!���&�(�F�3�3�����?�?�?�?�@�@�@��"�"�7�T�"�:�:���#�#�C�)>�AY�)Y�[_�`�`�`��&�(�F�3�3�����D�D�D�D�E�E�E��"�"�7�T�"�:�:���#�#�C�)>�AU�)U�W[�\�\�\�\�\rc���d}tddd���|��fd���|��d���}|�||d��dS)Nz�  0           0 RESUME_QUICK             0

  1           2 LOAD_CONST               0 ('a')
              4 LOAD_ATTR_SLOT           0 (__class__)
             14 RETURN_VALUE
z
'a'.__class__r�r[c�&��t�ii��Sr5r]��cos�rrTz4DisTests.test_load_attr_specialize.<locals>.<lambda>�����$�r�2�r�"2�"2�rTrUrh)r�load_attr_quickenr�rps   @r�test_load_attr_specializez"DisTests.test_load_attr_specialize�ss������_�b�&�
1�
1�����2�2�2�2�3�3�3��"�"�2��"�5�5���#�#�C�):�D�A�A�A�A�Arc���d}tddd���|��fd���|��d���}|�||d��dS)Na  0           0 RESUME_QUICK             0

  1           2 PUSH_NULL
              4 LOAD_NAME                0 (str)
              6 LOAD_CONST               0 (1)
              8 PRECALL_NO_KW_STR_1      1
             12 CALL_ADAPTIVE            1
             22 RETURN_VALUE
zstr(1)r�r[c�&��t�ii��Sr5r]ros�rrTz/DisTests.test_call_specialize.<locals>.<lambda>�rqrTrUrh)r�call_quickenr�rps   @r�test_call_specializezDisTests.test_call_specialize�sq���	���X�r�6�
*�
*�����2�2�2�2�3�3�3��"�"�2��"�5�5���#�#�C��t�<�<�<�<�<rc��|�td��|�td���}|�|td��dS)Nr	TrU)rQrjr�r��dis_loop_test_quickened_coderXs  r�test_loop_quickenzDisTests.test_loop_quicken�sQ��	
���)�Q�'�'�'��"�"�9�t�"�<�<���#�#�C�)E�t�L�L�L�L�Lrc�r�|�t��}|�|td��dS)NT)r�rmr��dis_extended_arg_quick_coderXs  r�test_extended_arg_quickz DisTests.test_extended_arg_quicks5���"�"�#5�6�6���#�#�C�)D�d�K�K�K�K�Krc#��K�d�}|r|�|��n|j���|_tj|d|���D]}|jdkr	|jV��dS)Nc�X�g}td��D]}|�|���dS)N�*)r0r�)�lris  rrOz%DisTests.get_cached_values.<locals>.f
s7���A��2�Y�Y�
�
����������
�
rT)�show_cachesrV�CACHE)rQr
�replacer��get_instructionsr��argrepr)r�	quickenedrVrO�instructions     r�get_cached_valueszDisTests.get_cached_values	s�����	�	�	��	.����a� � � � ���+�+�-�-�A�J��/�
�4�(�
�
�
�	*�	*�K��!�W�,�,�!�)�)�)�)��		*�	*rc	��dD]�}dD]�}|�d|�d|����5|r|rd}nd}t|�||����}|D]}|�||���d}|r|rdn|}|�|�d��|��|�t
|��|��ddd��n#1swxYwY�ӌ�dS)	N�FTz
quickened=z, adaptive=z
^(\w+: \d+)?$z^(\w+: 0)?$�rnr�)r��listr��assertRegexr�r�r�)rr�rV�pattern�caches�cache�total_caches�empty_cachess        r�test_show_cacheszDisTests.test_show_cachessv��&�
	@�
	@�I�)�
@�
@���\�\�">�Y�">�">�8�">�">�?�?�@�@� �1�X�1�"2���"0��!�$�"8�"8��H�"M�"M�N�N�F�!'�9�9���(�(���8�8�8�8�#%�L�(0�#P�Y�#P�1�1�L�L��$�$�V�\�\�"�%5�%5�|�D�D�D��$�$�S��[�[�,�?�?�?�@�@�@�@�@�@�@�@�@�@�@����@�@�@�@��
@�
	@�
	@s�BC�C�C�r�T)r�r�)/r!r"r#r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrr r$r(r.r1r5r<rBrFrMr$�QUICKENING_WARMUP_DELAYrQrrYrlrsrwrzr}r�r�rrrr�r��s �������G�!�!�!�!�8�8�8�8�A�A�A�A�
<�<�<�
J�J�J�E�E�E�9�9�9�(,�,�,�;�;�;�=�=�=�9�9�9�@�@�@�9�9�9�J�J�J�0F�F�F�BK�K�K�E�E�E�,�,�,�H�H�H�O�O�O�=�=�=�<�<�<�4�4�4�
6�6�6�
6�6�6�8�8�8�H�H�H�7�7�7�5�5�5� 8�8�8�����5�����\���M�M��\�M�
�#]�#]��\�#]�J�B�B��\�B��=�=��\�=� �M�M��\�M��L�L��\�L�*�*�*� �@�@��\�@�@�@rr�c��eZdZdd�ZdS)�DisWithFileTestsr�Tc��tj��}|rtj|fd|i|��ntj||fd|i|��|���S)N�file)r�r�r�r�r�r�s      rr�z DisWithFileTests.get_disassembly.se��������	@��G�D�0�0�v�0��0�0�0�0��O�D�%�?�?�f�?��?�?�?���� � � rNr��r!r"r#r�rrrr�r�+s(������!�!�!�!�!�!rr�z0: Nonez60: 'Formatted details of methods, functions, or code.'z�Name:              code_info
Filename:          (.*)
Argument count:    1
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  1
Stack size:        \d+
Flags:             OPTIMIZED, NEWLOCALS
Constants:
   zN
Names:
   0: _format_code_info
   1: _get_code_object
Variable names:
   0: xT)rc	/�P��������
K�|f�����
���fd�	�
�����|���
f	V�dS)Nc�6��t�����|����	�	dSr5r))	rLr+rKrMrrOrrbr_s	 ��������rrOztricky.<locals>.fPs'���
�a��A�q�!�Q��1�a�(�(�(�(�(rr)r+rKrrbr_rLrMr�args�kwdsrOs````` ``  @r�trickyr�Nsw������������
�)�)�)�)�)�)�)�)�)�)�)�)�)�
�Q��1�a��A�q�!�
#�#�#�#�#�#raName:              tricky
Filename:          (.*)
Argument count:    5
Positional-only arguments: 2
Kw-only arguments: 3
Number of locals:  10
Stack size:        \d+
Flags:             OPTIMIZED, NEWLOCALS, VARARGS, VARKEYWORDS, GENERATOR
Constants:
   0: None
   1: <code object f at (.*), file "(.*)", line (.*)>
Variable names:
   0: a
   1: b
   2: x
   3: y
   4: z
   5: c
   6: d
   7: e
   8: args
   9: kwds
Cell variables:
   0: [abedfxyz]
   1: [abedfxyz]
   2: [abedfxyz]
   3: [abedfxyz]
   4: [abedfxyz]
   5: [abedfxyz]aqFilename:          (.*)
Argument count:    1
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  1
Stack size:        \d+
Flags:             OPTIMIZED, NEWLOCALS, NESTED
Constants:
   0: None
Names:
   0: print
Variable names:
   0: c
Free variables:
   0: [abedfxyz]
   1: [abedfxyz]
   2: [abedfxyz]
   3: [abedfxyz]
   4: [abedfxyz]
   5: [abedfxyz]z�Name:              <module>
Filename:          <disassembly>
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  0
Stack size:        \d+
Flags:             0x0
Constants:
   0: 1
Names:
   0: xz�Name:              <module>
Filename:          <disassembly>
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  0
Stack size:        \d+
Flags:             0x0
Constants:
   0: 1
   1: None
Names:
   0: xz�Name:              <module>
Filename:          <disassembly>
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  0
Stack size:        \d+
Flags:             0x0
Constants:
   0: 0
   1: 1
Names:
   0: xc��K�d�d{V��t23d{V��}�6t4�d{V��}ddd���d{V��dS#1�d{V��swxYwYdSr)rKrL)r+rMs  r�	async_defr��s�����
�G�G�G�G�G�G�G���������a�a�1���������A���������������������������������s��<�
A�	Aa/Name:              async_def
Filename:          (.*)
Argument count:    0
Positional-only arguments: 0
Kw-only arguments: 0
Number of locals:  2
Stack size:        \d+
Flags:             OPTIMIZED, NEWLOCALS, COROUTINE
Constants:
   0: None
   1: 1
Names:
   0: b
   1: c
Variable names:
   0: a
   1: dc�^�eZdZejefeefee	fe
efee
feefeefgZd�Zd�Zd�Zd�ZdS)�
CodeInfoTestsc�~�d|_|jD]-\}}|�tj|��|���.dS�Nr�)r��
test_pairsr�r��	code_info)rrr�s   r�test_code_infozCodeInfoTests.test_code_info�sK������?�	9�	9�K�A�x����S�]�1�-�-�x�8�8�8�8�	9�	9rc��d|_|jD]�\}}t��5}tj|��ddd��n#1swxYwY|�|���|dz��tj��}tj||���|�|���|����dS)Nr�r'�r�)	r�r�rr��	show_coder�r�r�r�)rrr�r�s    r�test_show_codezCodeInfoTests.test_show_code�s�������?�	:�	:�K�A�x� �"�"�
!�f��
�a� � � �
!�
!�
!�
!�
!�
!�
!�
!�
!�
!�
!����
!�
!�
!�
!����V�_�_�.�.���
�>�>�>��[�]�]�F��M�!�&�)�)�)�)����V�_�_�.�.��9�9�9�9�
	:�	:s�A�A	�
A	c�j�|�ttjt	����dSr5)r:rDr�r�rEr�s r�test_code_info_objectz#CodeInfoTests.test_code_info_object�s&�����)�S�]�F�H�H�=�=�=�=�=rc�V�|�tjd��d��dS)Nr�0x0)r�r��pretty_flagsr�s r�test_pretty_flags_no_flagsz(CodeInfoTests.test_pretty_flags_no_flags�s)������)�!�,�,�e�4�4�4�4�4rN)r!r"r#r�r��code_info_code_infor��code_info_tricky�co_tricky_nested_f�code_info_tricky_nested_fr�code_info_expr_strr�code_info_simple_stmt_strr	�code_info_compound_stmt_strr��code_info_async_defr�r�r�r�r�rrrr�r��s�������
�}�)�*�
�� ��4�5��#�$��1�2��5�6��%�&��J�9�9�9�
:�:�:�>�>�>�5�5�5�5�5rr�c	�B���d��fd�	}t��ddgid��|S)Nr3rEc�B����d����fd�	}t������|S)NrFr�c�0��t����||��dSr5r))rrOr+rKrLrMs  ����r�innerzouter.<locals>.f.<locals>.inner�s!����!�Q��1�a��#�#�#�#�#r�rFr�r))rLrMr�r+rKs`` ��rrOzouter.<locals>.f�sK�����	$�	$�	$�	$�	$�	$�	$�	$�	$�
�a��A�q�����rr�r	�Hello world!�r3rEr))r+rKrOs`` r�outerr��sH�����������

�!�Q��A�r�2�~�.�.�.��Hrc���td��D] }t|��|dkr�|dkrn�!td��|r$t|��|dz}|dkr�|dkrn|�$td��	ddz|5}td��ddd��n#1swxYwYn#t$rtd	��YnwxYwtd
��dS#td
��wxYw)Nr.rEr��I can haz else clause?r	�%Who let lolcatz into this test suite?r�Never reach this�%Here we go, here we go, here we go...�OK, now we're done)r0r*�ZeroDivisionError)ri�dodgys  r�jumpyr��sw��
�2�Y�Y�(�(��
�a�����q�5�5���q�5�5��E��	�&�'�'�'�
�7�
�a����	�Q����q�5�5���q�5�5��
�7�	�5�6�6�6�$�	�A����	&�%��$�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&����7�7�7�
�5�6�6�6�6�6�7����	�"�#�#�#�#�#���"�#�#�#�#���sN�6B%�;C�=B�
C�B�C� B�!C�%C�>C�C�C�C&c�H�t|�d�����S�N��	positions)�str�_replace)�instrs r�_stringify_instructionr�(s ���u�~�~��~�-�-�.�.�.rc	�,�tjtt���}t	dd�t
t|����dd���tjt��t���}t	dd�t
t|����dd���tjt����t���}t	dd�t
t|����dd���tjtt���}t	d	d�t
t|����dd���tjt��dS)
N��
first_linezexpected_opinfo_outer = [
  z,
  z,
]r�)�sepzexpected_opinfo_f = [
  zexpected_opinfo_inner = [
  zexpected_opinfo_jumpy = [
  )r�r�r��expected_outer_liner*r��mapr��expected_f_line�expected_inner_liner��expected_jumpy_line)�
_instructionss r�_prepare_test_casesr�-sl���(��;N�O�O�O�M�	�
)�
�,�,�s�1�=�A�A�
B�
B�F�PR�T�T�T�T��(����_�M�M�M�M�	�
%�
�,�,�s�1�=�A�A�
B�
B�F�PR�T�T�T�T��(�������?R�S�S�S�M�	�
)�
�,�,�s�1�=�A�A�
B�
B�F�PR�T�T�T�T��(��;N�O�O�O�M�	�
)�
�,�,�s�1�=�A�A�
B�
B�F�PR�T�T�T�T��G�E�N�N�N�N�Nr�	MAKE_CELL�r+F)	r�r��arg�argvalr�r}�starts_line�is_jump_targetr�rK�RESUME�r�r�r?�r�z(3, 4)r��LOAD_CLOSURE�r.�BUILD_TUPLE�f���
MAKE_FUNCTION�r=zdefaults, closure��
STORE_FAST�}rO��LOAD_GLOBAL�tr*zNULL + print��
LOAD_DEREF�� �"z''�$re�&�
BUILD_LIST�g�(�	BUILD_MAP�ir�r�z'Hello world!'�,�PRECALL��.�CALL��2�POP_TOP�<r��|�>�RETURN_VALUErA�@�COPY_FREE_VARS�rLrMr�z(5, 6)�r���r��Noner0zNULL + range�10�GET_ITER�D��FOR_ITER�]�bzto 98ri�0�6�BrI�
COMPARE_OP�k�<�Fr��r�Pzto 80�L�
JUMP_BACKWARD�zto 32�N�6�Rrx�T�`zto 96�Z�\�n�zto 128�^�!r�z'I can haz else clause?'�p�~���zto 204�r<�����
��	BINARY_OP�z�z-=�����zto 186��������zto 200�����zto 234��r�zto 132���r�z''Who let lolcatz into this test suite?'��������r�����0���/�����r��BEFORE_WITH�5�r��r�z'Never reach this'ii
iiiiii i$i.iHzto 328i0�
PUSH_EXC_INFO�#i2�WITH_EXCEPT_START�1i4r��si@zto 320i6�RERAISE�wi8�COPY�xi:�
POP_EXCEPT�Yi<i>iBiDiF�i�zto 392iJr�iL�CHECK_EXC_MATCHiXi�zto 384iZi\�^r�z''Here we go, here we go, here we go...'ijilipizi|i~i�i�i�r�z"OK, now we're done"i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�i�c��dSr5rrrr�simplerts���r)r�r�r�r�r�r}r�r�c��eZdZd�ZdS)�InstructionTestCasec�b�d�|D��}d�|D��}|�||��dS)Nc�:�g|]}|�d�����Sr��r�)r^�instr_1s  rr`z?InstructionTestCase.assertInstructionsEqual.<locals>.<listcomp>�)��M�M�M��G�$�$�t�$�4�4�M�M�Mrc�:�g|]}|�d�����Sr�ry)r^�instr_2s  rr`z?InstructionTestCase.assertInstructionsEqual.<locals>.<listcomp>r{r)r�)r�instrs_1�instrs_2s   r�assertInstructionsEqualz+InstructionTestCase.assertInstructionsEqual
sD��M�M�H�M�M�M��M�M�H�M�M�M������8�,�,�,�,�,rN)r!r"r#r�rrrrvrvs#������-�-�-�-�-rrvc���eZdZ�fd�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
��d���Ze
��d	���Ze
��d
���Z
�xZS)�InstructionTestsc�B��t��j|�d|_dSr5)�superrr�)rr��	__class__s  �rrzInstructionTests.__init__s"��������$�������rc��tjt��}|�t	|��t
��dSr5�r�r�rtr�r��expected_opinfo_simple�r�actuals  r�test_default_first_linez(InstructionTests.test_default_first_lines5���%�f�-�-���$�$�T�&�\�\�3I�J�J�J�J�Jrc��tjtd���}|�t	|��t
��dS�Nr�r�r�s  r�test_first_line_set_to_Nonez,InstructionTests.test_first_line_set_to_Nones:���%�f��>�>�>���$�$�T�&�\�\�3I�J�J�J�J�Jrc��tjtt���}|�t|��t��dSr�)r�r�r�r�r�r��expected_opinfo_outerr�s  r�
test_outerzInstructionTests.test_outer �;���%�e�8K�L�L�L���$�$�T�&�\�\�3H�I�I�I�I�Irc���t��5t��}ddd��n#1swxYwYtj|t���}|�t
|��t��dSr�)rr�r�r�r�r�r��expected_opinfo_f)rrOr�s   r�test_nestedzInstructionTests.test_nested$s���
�
�
�	�	����A�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��%�a�O�D�D�D���$�$�T�&�\�\�3D�E�E�E�E�Es�*�.�.c��t��5t����}ddd��n#1swxYwYtj|t���}|�t
|��t��dSr�)rr�r�r�r�r�r��expected_opinfo_inner)rr�r�s   r�test_doubly_nestedz#InstructionTests.test_doubly_nested*s���
�
�
�	�	��E�G�G�I�I�E�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��%�e�8K�L�L�L���$�$�T�&�\�\�3H�I�I�I�I�Is�2�6�6c��tjtt���}|�t|��t��dSr�)r�r�r�r�r�r��expected_opinfo_jumpyr�s  r�
test_jumpyzInstructionTests.test_jumpy0r�rc���tddd��}d�tj|��D��}gd�}|�||��d�|D��}|�||��dS)Nzf(
  x, y, z
)�<test>r�c��g|]	}|j��
Srr��r^r�s  rr`z6InstructionTests.test_co_positions.<locals>.<listcomp>7s*��
�
�
��
�O�
�
�
r))rr	rr�r	r	rr	r�)r&r&r&r3)r&r&rFr�)r&r&rnr=�r	r3rr	r�r�r�r�c�B�g|]}|j|j|j|jf��Sr)�lineno�
end_lineno�
col_offset�end_col_offset)r^�poss  rr`z6InstructionTests.test_co_positions.<locals>.<listcomp>Js:��
�
�
���Z������9K�L�
�
�
r)rir�r�r�)r�coder�r��named_positionss     r�test_co_positionsz"InstructionTests.test_co_positions4s����)�8�V�<�<��
�
��-�d�3�3�
�
�
�	�
�
�
��	
����H�-�-�-�
�
� �
�
�
��	
����(�3�3�3�3�3rc�6�tddd��}|�d���}tj|��}|D]�}|�|���5|j}|�t|��d��|jdkr
	ddd���[|�	|j
��|�	|j��|�	|j��|�	|j
��ddd��n#1swxYwY��dS)	Nzx, y, zr�r�rr:)r�rEr�)rir�r�r�r�r�r�r�r��assertIsNoner�r�r�r�)rr��code_without_location_tabler�r�r�s      r�test_co_positions_missing_infoz/InstructionTests.test_co_positions_missing_infoPsq���y�(�F�3�3��&*�l�l��l�&D�&D�#��%�&A�B�B��!�		<�		<�K����+��6�6�
<�
<�'�1�	�� � ��Y����3�3�3��%��1�1��	
<�
<�
<�
<�
<�
<�
<�
�!�!�)�"2�3�3�3��!�!�)�"6�7�7�7��!�!�)�"6�7�7�7��!�!�)�":�;�;�;�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<����
<�
<�
<�
<��		<�		<s�7D
�A(D
�
D	�D	c	��	�
�d�}|j}|jddd�}tjd�	t	�	fd�|D����}t|��|z
}dD]��
dD]�}|�d|�d�
����5�	�
fd�t||���d	�
��D��}d�tj
||�
���D��}|�||��ddd��n#1swxYwY����dS)
Nc3��K�|dzd|z|zz
}|t�|��z
d|zzV�|r(|t�|��zd|zzV�dSdS)Nr&rE)�cmath�sqrtrJs    r�rootszEInstructionTests.test_co_positions_with_lots_of_caches.<locals>.rootsbs������1��q�1�u�q�y� �A��2��
�
�1�
�
�%�!�a�%�0�0�0�0��
5��r�E�J�J�q�M�M�)�a�!�e�4�4�4�4�4�4�
5�
5rr&r�c3�$�K�|]
}|�kV��dSr5r)r^�op�cache_opcodes  �r�	<genexpr>zIInstructionTests.test_co_positions_with_lots_of_caches.<locals>.<genexpr>js(�����6�6�B�R�<�'�6�6�6�6�6�6rr�z	adaptive=z, show_caches=c�*��g|]\}}�s|�k�
|��Srr)r^r�r�r�r�s   ��rr`zJInstructionTests.test_co_positions_with_lots_of_caches.<locals>.<listcomp>qs<���$�$�$�)�B�	�&�$�+-��*<�*<�"�*<�*<�*<rT)�strictc��g|]	}|j��
Srr�)r^r�s  rr`zJInstructionTests.test_co_positions_with_lots_of_caches.<locals>.<listcomp>vs+��%�%�%�'�$�-�%�%�%r)rVr�)r
rr�r��sumr�r��zip�co_positionsr�r�r�)rr�r��opsr��
non_cachesrVr��
dis_positionsr�r�s         @@r�%test_co_positions_with_lots_of_cachesz6InstructionTests.test_co_positions_with_lots_of_caches`s�����	5�	5�	5�
�~���l�3�3�Q�3����|�G�,���6�6�6�6�#�6�6�6�6�6����X�X��&�
�)�	B�	B�K�)�

B�

B���\�\�"@�X�"@�"@�+�"@�"@�A�A�B�B�$�$�$�$�$�-0��d�6G�6G�6I�6I�RV�-W�-W�-W�$�$�$�L�
%�%�+.�+?� �8��,�,�,�%�%�%�M��$�$�\�=�A�A�A�B�B�B�B�B�B�B�B�B�B�B����B�B�B�B��

B�	B�	Bs�?A)C4�4C8�;C8)r!r"r#rr�r�r�r�r�r�rr�r�r��
__classcell__�r�s@rr�r�s������������K�K�K�K�K�K�J�J�J�F�F�F�J�J�J�J�J�J�����4�4���4�6����
<�
<���
<�����B�B���B�B�B�B�Brr�c�d�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
e��d	���Zd
S)�
BytecodeTestsc��ttd��jdtjfD]i}|�|���5tj|��}|�|jtj
��ddd��n#1swxYwY�j|�tt
jt����dS�Nr	�a=1)�obj)r,rrr
r�r��Bytecode�assertIsInstance�codeobj�types�CodeTyper:rDrE)rr�rKs   r�test_instantiationz BytecodeTests.test_instantiation�s�����1�����r�{�;�	A�	A�C����#��&�&�
A�
A��L��%�%���%�%�a�i���@�@�@�
A�
A�
A�
A�
A�
A�
A�
A�
A�
A�
A����
A�
A�
A�
A��	
���)�S�\�6�8�8�<�<�<�<�<s�:B�B
	�
B
	c�f�ttd��jdtjfD]�}|�|���5tt
j|����}tt
j|����}|�	||��ddd��n#1swxYwY��dSr�)
r,rrr
r�r�r�r�r�r�)rr��
via_object�
via_generators    r�test_iterationzBytecodeTests.test_iteration�s�����1�����r�{�;�	H�	H�C����#��&�&�
H�
H�!�#�,�s�"3�"3�4�4�
� $�S�%9�#�%>�%>� ?� ?�
��,�,�Z��G�G�G�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H����
H�
H�
H�
H��	H�	Hs�AB%�%B)	�,B)	c��tjtt���}|�t|��t��dSr�)r�r�r�r�r�r�r�r�s  r�test_explicit_first_linez&BytecodeTests.test_explicit_first_line�s:����e�0C�D�D�D���$�$�T�&�\�\�3H�I�I�I�I�Irc��tjt�����}|����d��d}ttjj��}|�||��tjtd������}|����d��d}|�|d��dS)NrHrrrr��350)	r�r�rt�strip�	partitionr�r
�co_firstlinenor�)rr�r�s   r�test_source_line_in_disassemblyz-BytecodeTests.test_source_line_in_disassembly�s�����f�%�%�)�)�+�+�������)�)�#�.�.�q�1���v��5�6�6�������*�*�*���f��5�5�5�9�9�;�;�������)�)�#�.�.�q�1�������'�'�'�'�'rc��d|_tjD]A\}}tj|��}|�|���|���BdSr�)r�r�r�r�r�r��info)rrr�rKs    r�	test_infozBytecodeTests.test_info�sW�����(�3�	1�	1�K�A�x���Q���A����Q�V�V�X�X�x�0�0�0�0�	1�	1rc��tjt�����}|�|t��dSr5)r�r�r,r�r�r�s  r�test_disassembledzBytecodeTests.test_disassembled�s9����b�!�!�%�%�'�'���#�#�F�E�2�2�2�2�2rc���t��}tj�|��}|jr|j}|j�|�|j|j��dSr5)rr�r��from_tracebackrr��current_offsetr@�rr
rKs   r�test_from_tracebackz!BytecodeTests.test_from_traceback�sV��
�X�X���L�'�'��+�+���j�)�r�z�"�b�j�)�����)�2�;�7�7�7�7�7rc���d|_t��}tj�|��}|�|�|�����t��dSr5)r�rr�r�r�r�r��
dis_tracebackr�s   r�test_from_traceback_disz%BytecodeTests.test_from_traceback_dis�sY�����
�X�X���L�'�'��+�+������+�+�A�E�E�G�G�4�4�m�D�D�D�D�Drc��tjd��}t||j�����D]\}}�dS)Nr�)r�r�r�r�r�)r�bytecoder�r�s    r�test_bytecode_co_positionsz(BytecodeTests.test_bytecode_co_positions�sJ���<��&�&�� #�H�h�.>�.K�.K�.M�.M� N� N�	0�	0��E�9�9�	0�	0rN)
r!r"r#r�r�r�r�r�r�r�r�rr�rrrr�r��s�������=�=�=�H�H�H�J�J�J�	(�	(�	(�1�1�1�3�3�3�8�8�8�E�E�E�����0�0���0�0�0rr�c� �eZdZd�Zd�Zd�ZdS)�TestBytecodeTestCasec��tddd��}|�|dd��|�|d��|�|dd��dS)N�a = 1�<string>r�r�r	�	LOAD_NAMEr+�ri�assertInBytecode�assertNotInBytecode�rr�s  r�*test_assert_not_in_with_op_not_in_bytecodez?TestBytecodeTestCase.test_assert_not_in_with_op_not_in_bytecode�s_���w�
�F�3�3�����d�L�!�4�4�4�� � ��{�3�3�3�� � ��{�C�8�8�8�8�8rc��tddd��}|�|d��|�|dd��|�|dd��dS)Nr�r�r�r�r	r&r�r�s  r�+test_assert_not_in_with_arg_not_in_bytecodez@TestBytecodeTestCase.test_assert_not_in_with_arg_not_in_bytecode�s_���w�
�F�3�3�����d�L�1�1�1����d�L�!�4�4�4�� � ��|�Q�7�7�7�7�7rc��tddd��}|�t��5|�|dd��ddd��dS#1swxYwYdS)Nr�r�r�r�r	)rir:�AssertionErrorr�r�s  r�'test_assert_not_in_with_arg_in_bytecodez<TestBytecodeTestCase.test_assert_not_in_with_arg_in_bytecode�s����w�
�F�3�3��
�
�
�~�
.�
.�	<�	<��$�$�T�<��;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	<�	<s�A�A�AN)r!r"r#r�r�r�rrrr�r��sA������9�9�9�8�8�8�<�<�<�<�<rr�c� �eZdZd�Zd�Zd�ZdS)�TestFinderMethodsc�\�gd�}|D]�\}}|�|���5t|dd��}ttj|����}|�t
|��d��|�|d|��ddd��n#1swxYwY��dS)N))zimport a.b.c)za.b.crN)zfrom a.b import c��a.br�rL)zfrom a.b import c as dr�)zfrom a.b import *)rr��*)zfrom ...a.b import c as d)rr3r)z from ..a.b import c as d, e as f)rr&)rLr)zfrom ..a.b import *)rr&r��srcr�r�r	r)r�ri�tupler��
_find_importsr�r��r�casesrr�r�r1s      r�test__find_importsz$TestFinderMethods.test__find_imports�s���
�
�
��#�	3�	3�M�C�����#��&�&�
3�
3��s�J��7�7���C�-�d�3�3�4�4��� � ��S���1�-�-�-�� � ��Q���2�2�2�	
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3��	3�	3s�A2B � B$	�'B$	c�
�gd�}|D]{\}}|�|���5t|dd��}ttj|����}|�||��ddd��n#1swxYwY�|dS)N))zx+yr)zx=y=1ra)zx+=yr)zglobal x
x=y=1ra)zglobal x
z=x)r_rr�r�)r�rirr��_find_store_namesr�rs      r�test__find_store_namesz(TestFinderMethods.test__find_store_names�s���
�
�
��#�	0�	0�M�C�����#��&�&�
0�
0��s�J��7�7���C�1�$�7�7�8�8��� � ��h�/�/�/�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0����
0�
0�
0�
0��	0�	0s�A	A7�7A;	�>A;	c���tjtjj��}d�t
D��}|�t|��t|����dS)Nc�*�g|]}|j�	|j��Sr)r�r}r�s  rr`z5TestFinderMethods.test_findlabels.<locals>.<listcomp>�s3��
�
�
���#�
��L�
�
�
r)r��
findlabelsr�r
rr�r��sorted)r�labels�jumpss   r�test_findlabelsz!TestFinderMethods.test_findlabels�s^������ 6�7�7��
�
�.�
�
�
��	
�����������7�7�7�7�7rN)r!r"r#r
r
rrrrr�r��sA������3�3�3�"0�0�0�8�8�8�8�8rr�c�8��eZdZd�fd�Zd�Zd�Zd�Zd�Z�xZS)	�TestDisTraceback�returnNc�v��	t`n#t$rYnwxYwt�����Sr5)r7r8r9r��setUp)rr�s �rrzTestDisTraceback.setUp�sC���	��"�"���	�	�	��D�	�����w�w�}�}���s��
�c���tj��}tj|��5t	j|��ddd��n#1swxYwY|���Sr5�r�r�r�r�r��distbr��rr
r�s   rr�z TestDisTraceback.get_disassemblys��������
�
'��
/�
/�	�	��I�b�M�M�M�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	���� � � s�A	�	A
�A
c��|�t��5tj��ddd��dS#1swxYwYdSr5)r:r;r�rr�s r�test_distb_emptyz!TestDisTraceback.test_distb_empty	s���
�
�
�|�
,�
,�	�	��I�K�K�K�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�<�A�Ac��d|_t��}|t_|�|�d��t��dSr5)r�rr7r8r�r�r��rr
s  r�test_distb_last_tracebackz*TestDisTraceback.test_distb_last_traceback
sD�����
�X�X������#�#�D�$8�$8��$>�$>�
�N�N�N�N�Nrc��d|_t��}|�|�|��t��dSr5)r�rr�r�r�r!s  r�test_distb_explicit_argz(TestDisTraceback.test_distb_explicit_args<�����
�X�X���#�#�D�$8�$8��$<�$<�m�L�L�L�L�Lr)rN)	r!r"r#rr�rr"r$r�r�s@rrr�s��������������!�!�!����O�O�O�M�M�M�M�M�M�Mrrc��eZdZd�ZdS)�TestDisTracebackWithFilec���tj��}tj|��5t	j||���ddd��n#1swxYwY|���S)Nr�rrs   rr�z(TestDisTracebackWithFile.get_disassemblys��������
�
'��
/�
/�	'�	'��I�b�v�&�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'���� � � s�A�A�ANr�rrrr&r&s#������!�!�!�!�!rr&�__main__)r)T)r	r&)�r�r�r�rrr7r��unittest�test.supportrrr�test.support.bytecode_helperrr�rr>r?�TRACEBACK_CODErrr
r�rrr rrrr!rr,r�rr2r�r6�__file__r�r8r�r��bytesr�r�r�r�r�r�r�r�r�rrrrrrr	r
r�rNr0rQrSr3r4rUrWrZrdrJrKrLrfrWrjryrmr|r��TestCaserpr�r�r��__doc__�code_info_constsr�r$r�r��__func__�	co_constsr�r�r�r�r�r�r�r�r�r�r��_line_offset�
code_object_fr��code_object_innerr�r�r�r��Instruction�reprr�r�r�r�rtr�rvr�r�r�r�rr&�mainrrr�<module>r:s�4������
�
�
�
�	�	�	�	�	�	�	�	�
�
�
�
���������M�M�M�M�M�M�M�M�M�M�9�9�9�9�9�9�
�
�
�
��������"�)��
�
�
�
�
�
�
�
�
�
�{��*�B�K�,@�,O�RS�,S�U�
V��	��
�
�u�~�$�b�e�n�&C�a�&G�I�
J��	�
�u�~�$�b�e�n�&C�a�&G�I�	J���&
�{����2�2�2�	�u�~�~�~�)�)�)�	�u�~�~�~�*�*�*�		,��
�
�
�	�
�{�!�	�{�!�A�%�	�{�!�A�%�'�
	'�� 	�
�
�
�
�
�$��(���(�1�,���(�1�,���(�1�,���(�1�,���(�1�,�.�%.�
�4�	�	�	�	�
�"��)���)�A�-����)�A�-���)�A�-���)�A�-�/�#/��2	�	�	�
�%�-�-�7�-�C�C��������������
��5�
���
���
���
�L�� �#�	������������������	���� ��D���� &�L�$��$�q�(��$�q�(��$�q�(��$�q�(��$�q�(��$�q�(�
*�M,*�
�\&�&�&��$��'��):�)I�A�)M�N�%O��(�������0��*���*�Q�.���*�Q�.���*�Q�.�	�1	��<�2� �/�� �/�!�3�� �/�!�3�� �/�!�3�	�3	��>������
�
�
����
�
�{�!�	�{�!�A�%��	�{�!�A�%�	�{�!�A�%�	���(� ��	�{�!�A�%�	�{�!�A�%�	�{�!�A�%��	�{�!�A�%�
�!��2���	�{�!�A�%�	�{�!�A�%����*���� ���(���(�1�,���(�1�,�.� .�� ��� �*��(���(�1�,���(�1�,���(�1�,�/�+ /��4���
��!�0��!�0�1�4�7�7����=(�=(�=(�=(�=(�(�#�=(�=(�=(�@\@�\@�\@�\@�\@�{�\@�\@�\@�~
	!�	!�	!�	!�	!�x�	!�	!�	!��=�� � ���O��������$�$��$�$�$�$���$�
��@�_�-�7��:����,��
��
�� ���
��&5�5�5�5�5�H�%�5�5�5�F
�
�
�
�$�$�$�<���~�,�q�0����(��+�
��.��=��!�+�A�.��'�6��E����/�/�/�

�
�
�"�o��
�+�[��!�C��UV�dh�y~�KO�P�P�P�
�+�[��!�C��UV�dh�y~�KO�P�P�P�
�+�X�c�q��B�q�^_�pu�BF�G�G�G�
�+�\�#�1�V�X�^_�mn�@E�QU�V�V�V�
�+�^�C�Q�s�C�XY�gk�}B�NR�S�S�S�
�+�^�C�Q�s�C�XZ�hl�~C�OS�T�T�T�
�+�]�3�A�a��TV�dh�y~�KO�P�P�P�
�+�\�#�1�]�TX�TX�Yf�Tg�Tg�pr�AE�V[�gk�l�l�l�
�+�_�S�a��K^�gi�w{�MR�^b�c�c�c�
�+�\�#�1�S�#�VX�fj�|A�MQ�R�R�R�
�+�]�3�A�g�~�fh�vw�IN�Z^�_�_�_�
�+�\�#�1�S�#�VX�fj�|A�MQ�R�R�R�
�+�\�#�1�S�#�VX�fj�|A�MQ�R�R�R�
�+�\�#�1�R��VX�fj�|A�MQ�R�R�R�
�+�\�#�1�Q��TV�dh�y~�KO�P�P�P�
�+�\�#�1�Q��SU�cg�x}�JN�O�O�O�
�+�[��!�A�r�RT�bf�w|�IM�N�N�N�
�+�\�#�1�^�Ue�np�C�TY�ei�j�j�j�
�+�Y�s��!�R�PR�`d�uz�GK�L�L�L�
�+�V�C�Q�q�"�R�]a�rw�DH�I�I�I�
�+�Y�q�d�4��TV�dh�y~�KO�P�P�P�
�+�[��!�C��UW�ef�w|�IM�N�N�N�
�+�^�B�D��r�Z\�jn�@E�QU�V�V�V�/��6�+�%�c�q��B�WX�fj�|A�MQ�R�R�R�
�+�[��!�C��UV�dh�y~�KO�P�P�P�
�+�[��!�C��UV�dh�y~�KO�P�P�P�
�+�X�c�q��B�q�^_�pu�BF�G�G�G�
�+�\�#�1�V�X�^_�mn�@E�QU�V�V�V�
�+�^�C�Q�s�C�XZ�hl�~C�OS�T�T�T�
�+�^�C�Q�s�C�XZ�hl�~C�OS�T�T�T�
�+�^�C�Q�s�C�XZ�hl�~C�OS�T�T�T�
�+�^�C�Q�s�C�XZ�hl�~C�OS�T�T�T�
�+�]�3�A�a��TV�dh�y~�KO�P�P�P�
�+�\�#�1�=N�X\�X\�]n�Xo�Xo�xz�IM�^c�os�t�t�t�
�+�_�S�a��K^�gi�w{�MR�^b�c�c�c�
�+�\�#�1�W�g�^`�nr�DI�UY�Z�Z�Z�
�+�]�3�A�g�~�fh�vw�IN�Z^�_�_�_�
�+�\�#�1�S�#�VX�fj�|A�MQ�R�R�R�
�+�\�#�1�S�#�VX�fj�|A�MQ�R�R�R�
�+�\�#�1�S�#�VX�fj�|A�MQ�R�R�R�
�+�\�#�1�S�#�VX�fj�|A�MQ�R�R�R�
�+�Y�s��!�R�PR�`d�uz�GK�L�L�L�
�+�V�C�Q�q�"�R�]a�rw�DH�I�I�I�
�+�Y�q�d�4��TV�dh�y~�KO�P�P�P�
�+�[��!�G�W�]_�mn�@E�QU�V�V�V�
�+�^�B�D��r�Z\�jn�@E�QU�V�V�V�/��6�+�%�c�q��B�WX�fj�|A�MQ�R�R�R�
�+�X�c�q��B�q�^_�pu�BF�G�G�G�
�+�]�3�A�g�~�fg�uv�HM�Y]�^�^�^�
�+�\�#�1�S�#�VX�fj�|A�MQ�R�R�R�
�+�\�#�1�S�#�VX�fj�|A�MQ�R�R�R�
�+�\�#�1�S�#�VX�fj�|A�MQ�R�R�R�
�+�\�#�1�S�#�VX�fj�|A�MQ�R�R�R�
�+�[��!�C��UW�ei�z�LP�Q�Q�Q�
�+�[��!�C��UW�ei�z�LP�Q�Q�Q�
�+�Y�s��!�R�PR�`d�uz�GK�L�L�L�
�+�V�C�Q�q�"�R�]a�rw�DH�I�I�I�
�+�Y�q�d�4��TV�dh�y~�KO�P�P�P�
�+�\�#�1�T�6�Z\�jn�@E�QU�V�V�V�
�+�^�B�D��r�Z\�jn�@E�QU�V�V�V���"|�
�+�X�c�q��B�q�^_�pu�BF�G�G�G�|�
�+�]�3�A�g�~�fg�uv�HM�Y]�^�^�^�|��+�\�#�1�R��VX�fj�|A�MQ�R�R�R�|��+�Y�s��!�R�PR�`d�uz�GK�L�L�L�	|�
�+�V�C�Q�q�"�R�]a�rw�DH�I�I�I�|��+�Z���T�2�VX�fj�|A�MQ�R�R�R�
|��+�Z���2�w�WY�gk�}A�MQ�R�R�R�|��+�\�#�1�S�#�VX�fj�|A�MQ�R�R�R�|��+�]�3�A�g�~�fh�vw�IN�Z^�_�_�_�|��+�[��!�C��UW�ei�z�LP�Q�Q�Q�|��+�Y�s��!�R�PR�`d�uz�GK�L�L�L�|��+�V�C�Q�q�"�R�]a�rw�DH�I�I�I�|��+�Y�q�d�4��TV�dh�y~�KO�P�P�P�|��+�[��!�C��UW�ef�w|�IM�N�N�N�|��+�\�#�1�Q��TV�dh�y~�KO�P�P�P�|� �+�\�#�1�S�#�VX�fj�|A�MQ�R�R�R�!|�"�+�0��!�B�X_�hj�x|�NS�_c�d�d�d�#|�$�+�_�S�b��W�]_�mn�@E�QU�V�V�V�%|�&�+�[��!�C��UW�ef�w{�HL�M�M�M�'|�(�+�\�#�1�Q��TV�dh�y~�KO�P�P�P�)|�*�+�\�#�1�S�#�VX�fj�|A�MQ�R�R�R�+|�,�+�0��!�B�X_�hj�x|�NS�_c�d�d�d�-|�.�+�Y�q�d�4��TV�de�v{�HL�M�M�M�/|�0�+�^�C�R��X�^`�nr�DI�UY�Z�Z�Z�1|�2�+�_�S�b��W�]_�mn�@D�PT�U�U�U�3|�4�+�]�3�A�g�~�fh�vx�JN�Z^�_�_�_�5|�6�+�\�#�1�=U�_y�CF�TX�in�z~����7|�8�+�Y�s��!�R�PS�ae�v{�HL�M�M�M�9|�:�+�V�C�Q�q�"�S�^b�sx�EI�J�J�J�;|�<�+�Y�q�d�4��TW�ei�z�LP�Q�Q�Q�=|�>�+�[��!�C��UX�fh�y}�JN�O�O�O�?|�@�+�0��"�S�Zb�kn�}A�RW�cg�h�h�h�A|�B�+�]�3�A�g�~�fi�wy�KO�[_�`�`�`�C|�D�+�[��!�C��UX�fj�|A�MQ�R�R�R�E|�F�+�Y�s��!�R�PS�ae�v{�HL�M�M�M�G|�H�+�V�C�Q�q�"�S�^b�sx�EI�J�J�J�I|�J�+�Y�q�d�4��TW�ei�z�LP�Q�Q�Q�K|�L�+�[��!�C��UX�fh�y~�KO�P�P�P�M|�N�+�\�#�1�Q��TW�ei�z�LP�Q�Q�Q�O|�P�+�[��"�R��VY�gk�}B�NR�S�S�S�Q|�R�+�\�#�1�S�#�VY�gk�}B�NR�S�S�S�S|�T�+�[��!�C��UX�fh�y~�KO�P�P�P�U|�V�+�\�#�1�Q��TW�ei�z�LP�Q�Q�Q�W|�X�+�\�#�1�S�#�VY�gk�}B�NR�S�S�S�Y|�Z�+�0��!�C�Ya�jm�{�QV�bf�g�g�g�[|�\�+�_�S�b��h�_b�pr�DI�UY�Z�Z�Z�]|�^�+�[��!�C��UX�fh�y}�JN�O�O�O�_|�`�+�\�#�1�Q��TW�ei�z�LP�Q�Q�Q�a|�b�+�\�#�1�S�#�VY�gk�}B�NR�S�S�S�c|�d�+�0��!�C�Ya�jm�{�QV�bf�g�g�g�e|�f�+�^�C�R��X�^a�oq�CH�TX�Y�Y�Y�g|�h�+�[��!�C��UX�fh�y}�JN�O�O�O�i|�j�+�0��"�S�Zb�kn�}A�RW�cg�h�h�h�k|�l�+�]�3�A�g�~�fi�wy�KO�[_�`�`�`�m|�n�+�\�#�1�=d�oX�ad�rv�GL�X\�]�]�]�o|�p�+�Y�s��!�R�PS�ae�v{�HL�M�M�M�q|�r�+�V�C�Q�q�"�S�^b�sx�EI�J�J�J�s|�t�+�Y�q�d�4��TW�ei�z�LP�Q�Q�Q�u|�v�+�U�1�$�t�R�PS�ac�tx�EI�J�J�J�w|�x�+�\�#�1�Q��TW�eg�x}�JN�O�O�O�y|�z�+�\�#�1�Q��TW�ei�z�LP�Q�Q�Q�{|�|�+�[��"�R��UX�fj�|A�MQ�R�R�R�}|�~�+�Y�q�d�4��TW�ei�z�LP�Q�Q�Q�|�@�+�[��!�C��UX�fh�y~�KO�P�P�P�A|�B�+�]�2�4��b�Y\�jn�@E�QU�V�V�V�C|�D�+�\�#�1�W�g�^a�os�EJ�VZ�[�[�[�E|�F�+�]�3�A�g�~�fi�wy�KP�\`�a�a�a�G|�H�+�\�#�1�=O�Ym�vy�HL�]b�nr�s�s�s�I|�J�+�Y�s��!�R�PS�ae�v{�HL�M�M�M�K|�L�+�V�C�Q�q�"�S�^b�sx�EI�J�J�J�M|�N�+�Y�q�d�4��TW�ei�z�LP�Q�Q�Q�O|�P�+�\�#�1�T�6�Z]�km�D�PT�U�U�U�Q|�R�+�\�#�1�T�6�Z]�ko�AF�RV�W�W�W�S|�T�+�\�#�1�T�6�Z]�ko�AF�RV�W�W�W�U|�V�+�Y�s��!�R�PS�ae�v{�HL�M�M�M�W|�X�+�V�C�Q�q�"�S�^b�sx�EI�J�J�J�Y|�Z�+�Y�q�d�4��TW�ei�z�LP�Q�Q�Q�[|�\�+�^�C�R��X�^a�os�EJ�VZ�[�[�[�]|�^�+�_�R�T�$�PR�[^�lp�BG�SW�X�X�X�_|�`�+�(���d�TV�_b�pt�FK�W[�\�\�\�a|�b�+�/���3�X`�il�z~�PU�ae�f�f�f�c|�d�+�Y�s��!�R�PS�ae�v{�HL�M�M�M�e|�f�+�V�C�Q�q�"�S�^b�sx�EI�J�J�J�g|�h�+�\�"�$�t�R�X[�im�D�PT�U�U�U�i|�j�+�Y�s��!�R�PS�ae�v{�HL�M�M�M�k|�l�+�Y�q�d�4��TW�ei�z~�KO�P�P�P�m|�n�+�\�"�$�t�R�X[�im�D�PT�U�U�U�o|�p�+�Y�q�d�4��TW�ei�z�LP�Q�Q�Q�q|�r�+�Y�q�d�4��TW�ei�z�LP�Q�Q�Q�s|�t�+�^�C�R��X�^a�os�EI�UY�Z�Z�Z�u|�v�+�_�R�T�$�PR�[^�lp�BG�SW�X�X�X�w|�x�+�]�3�A�>Q�[n�wz�IK�\a�mq�r�r�r�y|�z�+�&�r�t�D�RT�]`�nr�DI�UY�Z�Z�Z�{|�|�+�0��"�S�Zb�kn�}A�RW�cg�h�h�h�}|�~�+�Y�q�d�4��TW�ei�z�LP�Q�Q�Q�|�@�+�]�3�A�g�~�fi�wy�KP�\`�a�a�a�A|�B�+�\�#�1�=d�oX�ad�rv�GL�X\�]�]�]�C|�D�+�Y�s��!�R�PS�ae�v{�HL�M�M�M�E|�F�+�V�C�Q�q�"�S�^b�sx�EI�J�J�J�G|�H�+�Y�q�d�4��TW�ei�z�LP�Q�Q�Q�I|�J�+�\�"�$�t�R�X[�im�D�PT�U�U�U�K|�L�+�^�C�Q�s�H�]`�nr�DI�UY�Z�Z�Z�M|�N�+�Y�s��!�R�PS�ac�tx�EI�J�J�J�O|�P�+�V�C�Q�q�"�S�^b�sx�EI�J�J�J�Q|�R�+�\�"�$�t�R�X[�im�D�PT�U�U�U�S|�T�+�Y�s��!�R�PS�ae�v{�HL�M�M�M�U|�V�+�]�3�A�g�~�fi�wy�KO�[_�`�`�`�W|�X�+�\�#�2�>R�\s�|�NR�ch�tx�y�y�y�Y|�Z�+�Y�s��!�R�PS�ae�v{�HL�M�M�M�[|�\�+�V�C�Q�q�"�S�^b�sx�EI�J�J�J�]|�^�+�Y�q�d�4��TW�ei�z�LP�Q�Q�Q�_|�`�+�\�#�1�T�6�Z]�ko�AF�RV�W�W�W�a|�b�+�^�B�D��r�Z]�ko�AF�RV�W�W�W�c|�d�+�_�R�T�$�PR�[^�lp�BG�SW�X�X�X�e|�f�+�]�3�A�g�~�fi�w{�MR�^b�c�c�c�g|�h�+�\�#�2�>R�\s�|�NR�ch�tx�y�y�y�i|�j�+�Y�s��!�R�PS�ae�v{�HL�M�M�M�k|�l�+�V�C�Q�q�"�S�^b�sx�EI�J�J�J�m|�n�+�Y�q�d�4��TW�ei�z�LP�Q�Q�Q�o|�p�+�Y�s��!�R�PS�ae�v{�HL�M�M�M�q|�r�+�V�C�Q�q�"�S�^b�sx�EI�J�J�J�s|�t�+�\�"�$�t�R�X[�im�D�PT�U�U�U�u|�v�+�Y�s��!�R�PS�ae�v{�HL�M�M�M�w|��~���
�+�X�c�q��B�q�^d�^m�^|�NS�_c�d�d�d�
�+�\�#�1�T�6�Z[�im�D�E�E�E�
�+�^�B�D��r�Z[�im�D�E�E�E���-�-�-�-�-�*�-�-�-�jB�jB�jB�jB�jB�*�jB�jB�jB�\<0�<0�<0�<0�<0�'��<0�<0�<0�|<�<�<�<�<�+�<�<�<�$(8�(8�(8�(8�(8��)�(8�(8�(8�VM�M�M�M�M�{�M�M�M�B!�!�!�!�!�/�!�!�!��z����H�M�O�O�O�O�O��r