Edit File: dis.cpython-37.opt-2.pyc
B ����0��c�M������������������@���s���d�dl�Z�d�dlZd�dlZd�dlZd�dlT�d�dlmZ�dddddd d ddd dge�Z[ejejej e eefZ ed�Zdd��ZdOddd�dd�ZdPdd�dd�Zddddddddddd � Zd!d"��Zd#d$��Zd%d��Zd&d'��Zdd�d(d�Ze�d)d*�Zd+ej_d,ej_d-ej_d.ej_d/ej_d0ej _d1ej!_d2ej"_d3Z#d4Z$G�d5d ��d e�Z%dd6�d7d�Z&d8d9��Z'd:d;��Z(dQd<d=�Z)dRdd�d?d�Z*ddd�d@dA�Z+dSdd�dB�dCdD�Z,dEdF��Z-e*Z.dGdH��Z/dId ��Z0dJd ��Z1G�dKd��d�Z2dLdM��Z3e4dNk�r�e3���dS�)T�����N)�*)�__all__� code_info�dis�disassemble�distb�disco�findlinestarts� findlabels� show_code�get_instructions�Instruction�Bytecode�FORMAT_VALUEc�������������C���s6���yt�|�|d�}W�n �tk r0���t�|�|d�}Y�nX�|S�)N�eval�exec)�compile�SyntaxError)�source�name�c��r����(/opt/alt/python37/lib64/python3.7/dis.py�_try_compile���s ����r���)�file�depthc������������C���sn��|�d�krt�|d��d�S�t|�d�r&|�j}�t|�d�r8|�j}�n4t|�d�rJ|�j}�n"t|�d�r\|�j}�nt|�d�rl|�j}�t|�d��rt|�j� ���}x�|D�]p\}}t |t�r�td|�|d��yt |||d ��W�n0�tk r��}�ztd ||d��W�d�d�}~X�Y�nX�t|d��q�W�nht|�d��rt|�||d ��nLt |�ttf��r<t|�|d��n.t |�t��rXt|�||d ��ntdt|��j���d�S�) N)r����__func__�__code__�gi_code�ag_code�cr_code�__dict__zDisassembly of %s:)r���r���zSorry:�co_codez(don't know how to disassemble %s objects)r����hasattrr���r���r���r���r ����sortedr!����items� isinstance� _have_code�printr���� TypeError�_disassemble_recursive�bytes� bytearray�_disassemble_bytes�str�_disassemble_str�type�__name__)�xr���r���r%���r���Zx1�msgr���r���r���r���"���s>���� )r���c������������C���s\���|�d�krDy t�j}�W�n�tk r0���td�d��Y�nX�x|�jrB|�j}�q4W�t|�jj|�j|d��d�S�)Nz no last traceback to disassemble)r���) �sys�last_traceback�AttributeError�RuntimeError�tb_nextr����tb_frame�f_code�tb_lasti)�tbr���r���r���r���r���O���s���� � Z OPTIMIZEDZ NEWLOCALSZVARARGSZVARKEYWORDSZNESTEDZ GENERATORZNOFREEZ COROUTINEZITERABLE_COROUTINEZASYNC_GENERATOR) ��������������������� ����@�����������i���c�������������C���sb���g�}xRt�d�D�]8}d|>�}|�|@�r|�t�|t|����|�|N�}�|�sP�qW�|�t|����d�|�S�)NrB���r=���z, )�range�append�COMPILER_FLAG_NAMES�get�hex�join)�flags�names�i�flagr���r���r����pretty_flagsi���s����rP���c�������������C���s����t�|�d�r|�j}�t�|�d�r"|�j}�n4t�|�d�r4|�j}�n"t�|�d�rF|�j}�nt�|�d�rV|�j}�t|�t�rjt|�d�}�t�|�d�rx|�S�t dt |��j���d�S�) Nr���r���r���r���r ���z <disassembly>r"���z(don't know how to disassemble %s objects)r#���r���r���r���r���r ���r&���r.���r���r)���r0���r1���)r2���r���r���r����_get_code_objectw���s ���� rQ���c�������������C���s���t�t|���S�)N)�_format_code_inforQ���)r2���r���r���r���r�������s����c�������������C���s���g�}|��d|�j���|��d|�j���|��d|�j���|��d|�j���|��d|�j���|��d|�j���|��dt|�j����|�j r�|��d��x t |�j �D�]}|��d |���q�W�|�jr�|��d ��x t |�j�D�]}|��d|���q�W�|�j�r|��d��x t |�j�D�]}|��d|���q�W�|�j �rF|��d ��x"t |�j �D�]}|��d|����q.W�|�j�r||��d��x"t |�j�D�]}|��d|����qdW�d�|�S�)NzName: %szFilename: %szArgument count: %szKw-only arguments: %szNumber of locals: %szStack size: %szFlags: %sz Constants:z%4d: %rzNames:z%4d: %szVariable names:zFree variables:zCell variables:� )rG����co_name�co_filename�co_argcount�co_kwonlyargcount� co_nlocals�co_stacksizerP����co_flags� co_consts� enumerate�co_names�co_varnames�co_freevars�co_cellvarsrK���)�co�linesZi_cZi_nr���r���r���rR�������s:���� rR���c������������C���s���t�t|��|d��d�S�)N)r���)r(���r���)ra���r���r���r���r���r�������s�����_InstructionzBopname opcode arg argval argrepr offset starts_line is_jump_targetz!Human readable name for operationzNumeric code for operationz6Numeric argument to operation (if any), otherwise Nonez4Resolved arg value (if known), otherwise same as argz0Human readable description of operation argumentz1Start index of operation within bytecode sequencez4Line started by this opcode (if any), otherwise Nonez1True if other code jumps to here, otherwise False��������c���������������@���s���e�Zd�Zddd�ZdS�)r �������Fr?���c�������������C���s����g�}|r:|�j�d�k r,d|�}|�||�j����n|�d|���|rJ|�d��n |�d��|�jrf|�d��n |�d��|�t|�j��|���|�|�j�t���|�j d�k r�|�t|�j ��t ���|�jr�|�d|�j�d���d�|�� ��S�) Nz%%%dd� z-->z z>>z �(�))�starts_linerG����is_jump_target�repr�offset�rjust�opname�ljust� _OPNAME_WIDTH�arg�_OPARG_WIDTH�argreprrK����rstrip)�self�lineno_widthZmark_as_current�offset_widthZfieldsZ lineno_fmtr���r���r����_disassemble����s&���� zInstruction._disassembleN)rf���Fr?���)r1���� __module__�__qualname__ry���r���r���r���r���r �������s���)� first_linec������������C���sT���t�|��}|j|j�}tt|��}|d�k r4||j�}nd}t|j|j|j |j |||�S�)Nr���)rQ���r`���r_����dictr ����co_firstlineno�_get_instructions_bytesr"���r^���r]���r[���)r2���r|���ra���� cell_names� linestarts�line_offsetr���r���r���r�������s����c�������������C���s ���|�}|d�k r||��}|t�|�fS�)N)rl���)Zconst_indexZ const_list�argvalr���r���r����_get_const_info��s����r����c�������������C���s*���|�}|d�k r||��}|}nt�|�}||fS�)N)rl���)Z name_indexZ name_listr����rt���r���r���r����_get_name_info��s����r����c���������� ���c���sx��t�|��}d�}�xdt|��D��]V\} } }|d�k rH|�| d��}|d�k rH||7�}| |k}d�} d}|d�k �rT|} | tkr~t||�\} }n�| tkr�t||�\} }n�| tkr�| d�|�} dt| ��}n�| t kr�t||�\} }n�| t kr�t|�} | }nn| tkr�t||�\} }nV| t k�rTd�tttf|d@��t|d@��f} d|d@��}| d��rT|�rL|d7�}|d 7�}tt| �| || || ||�V��qW�d�S�) N��r>���zto rf���r?���)r����r.���rl����asciir=���z, zwith format)r ����_unpack_opargsrI���Zhasconstr����Zhasnamer�����hasjrelrl���ZhaslocalZ hascompareZcmp_opZhasfreer���r.���r�����boolr ���ro���)�code�varnamesrM���� constants�cellsr����r�����labelsrj���rm����oprr���rk���r����rt���r���r���r���r���-��sH���� r������c��������� ���C���s<���|�j�|�j�}tt|���}t|�j||�j|�j|�j|||d��d�S�)N)r���) r`���r_���r}���r ���r-���r"���r^���r]���r[���)ra����lastir���r����r����r���r���r���r���`��s����c������������C���st���t�|�|d��|d�ks|dkrp|d�k r,|d�}xB|�jD�]8}t|d�r4t|d��td|f�|d��t|||d��q4W�d�S�)N)r���r���r=���r"���zDisassembly of %r:)r���r���)r���r[���r#���r(���r*���)ra���r���r���r2���r���r���r���r*���g��s���� r*���)r���r����c��������� ���C���s����|d�k } | r8t�|����|�} | dkr2tt| ��}q<d}nd}t|��d�}|dkr^tt|��} nd} xdt|�||||||d�D�]J}| o�|jd�k o�|jdk}|r�t|d��|j|k}t|�||| �|d��qzW�d�S�) Ni���rf���r���r>���i'��r?���)r����)r���) �max�values�lenr.���r���rj���rm���r(���ry���)r����r����r����rM���r����r����r����r���r����Zshow_linenoZ maxlinenorw���Z maxoffsetrx���ZinstrZnew_source_lineZis_current_instrr���r���r���r-���r��s,���� r-���c�������������K���s���t�t|�d�f|��d�S�)Nz<dis>)r*���r���)r����kwargsr���r���r���r/������s����r/���c�������������c���sh���d}x^t�dt|��d�D�]J}|�|�}|tkrP|�|d��|B�}|tkrJ|d>�nd}nd�}|||fV��qW�d�S�)Nr���r>���r=���r@���)rF���r����Z HAVE_ARGUMENTZEXTENDED_ARG)r����Zextended_argrN���r����rr���r���r���r���r�������s����r����c�������������C���s`���g�}xVt�|��D�]J\}}}|d�k r|tkr6|d�|�}n|tkr|}nq||kr|�|��qW�|S�)Nr>���)r����r����ZhasjabsrG���)r����r����rm���r����rr���Zlabelr���r���r���r ������s����c�������������c���s����|�j�dd�d��}|�j�dd�d��}d�}|�j}d}xPt||�D�]B\}}|rd||kr\||fV��|}||7�}|dkrt|d8�}||7�}q:W�||kr�||fV��d�S�)Nr���r>���r=���rD���rE���)� co_lnotabr~����zip)r����Zbyte_incrementsZline_incrementsZ lastlineno�linenoZaddrZ byte_incrZ line_incrr���r���r���r ������s ���� c���������������@���sH���e�Zd�Zddd�dd�Zdd��Zdd��Zed d ���Zdd��Zd d��Z dS�)r���N)r|����current_offsetc������������C���sd���t�|��|�_}|d�kr&|j|�_d|�_n||�_||j�|�_|j|j�|�_tt |��|�_ ||�_||�_d�S�)Nr���) rQ����codeobjr~���r|����_line_offsetr`���r_����_cell_namesr}���r ����_linestarts�_original_objectr����)rv���r2���r|���r����ra���r���r���r����__init__���s����zBytecode.__init__c���������� ���C���s*���|�j�}t|j|j|j|j|�j|�j|�jd�S�)N)r����) r����r���r"���r^���r]���r[���r����r����r����)rv���ra���r���r���r����__iter__���s ����zBytecode.__iter__c�������������C���s���d��|�jj|�j�S�)Nz{}({!r}))�format� __class__r1���r����)rv���r���r���r����__repr__���s���� zBytecode.__repr__c�������������C���s$���x|j�r|j�}qW�|�|jj|jd�S�)N)r����)r8���r9���r:���r;���)�clsr<���r���r���r����from_traceback���s���� zBytecode.from_tracebackc�������������C���s ���t�|�j�S�)N)rR���r����)rv���r���r���r����info���s����z Bytecode.infoc�������������C���s`���|�j�}|�jd�k r|�j}nd}t����2}t|j|j|j|j|�j |�j |�j||d� �|���S�Q�R�X�d�S�)Nr����)r����rM���r����r����r����r����r���r����) r����r�����io�StringIOr-���r"���r^���r]���r[���r����r����r�����getvalue)rv���ra���rm����outputr���r���r���r������s���� zBytecode.dis) r1���rz���r{���r����r����r�����classmethodr����r����r���r���r���r���r���r������s��� c����������� ���C���sd���dd�l�}�|����}|jd|����ddd��|���}|j�}|���}W�d�Q�R�X�t||jjd�}t |��d�S�)Nr����infile�?�-)r0����nargs�defaultr���) �argparse�ArgumentParser�add_argument�FileType� parse_argsr�����readr���r���r���)r�����parser�argsr����r���r����r���r���r����_test ��s����r�����__main__)N)N)NNNNNr���)r����)r����NNNNN)5r4����types�collectionsr����Zopcoder���Z_opcodes_all� MethodType�FunctionType�CodeTyper�����staticmethodr0���r'���Zopmapr���r���r���r���rH���rP���rQ���r���rR���r���� namedtuplerc���ro����__doc__rr���r����rt���rm���rj���rk���rq���rs���r ���r���r����r����r���r���r*���r-���r/���r���r����r ���r ���r���r����r1���r���r���r���r����<module>���s|��� -4� 2�=