grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|j4Nã @s ddlZddlZddlZddlZddlTddlmZgd¢eZ[ejejej e e e fZ edZdedfedfed ffZed Zd Zd d „ZdUdddœdd„ZdUddœdd„Zdddddddddddœ Zdd „Zd!d"„Zd#d$„Zd%d&„Zddœd'd(„Ze d)d*¡Z d+e j!_"d,e j_"d-e j#_"d.e j$_"d/e j%_"d0e j&_"d1e j'_"d2e j(_"d3Z)d4Z*Gd5d6„d6e ƒZ+dd7œd8d9„Z,d:d;„Z-dd?„Z/dWddœdAdB„Z0dddœdCdD„Z1  dXdddEœdFdG„Z2dHdI„Z3e0Z4dJdK„Z5dLdM„Z6dNdO„Z7GdPdQ„dQƒZ8dRdS„Z9e:dTk�re9ƒdSdS)YéN)Ú*)Ú__all__) Ú code_infoÚdisÚ disassembleÚdistbÚdiscoÚfindlinestartsÚ findlabelsÚ show_codeÚget_instructionsÚ InstructionÚBytecodeÚ FORMAT_VALUE)NÚÚstrÚreprÚasciiÚ MAKE_FUNCTION)ÚdefaultsZ kwdefaultsZ annotationsZclosurecCs6 z t||dƒ}W|Styt||dƒ}Y|Sw)NÚevalÚexec)ÚcompileÚ SyntaxError)ÚsourceÚnameÚc©rú*/opt/alt/python310/lib64/python3.10/dis.pyÚ _try_compiles þþr©ÚfileÚdepthc Csj |dur t|d�dSt|dƒr|j}t|dƒr|j}nt|dƒr&|j}nt|dƒr/|j}nt|dƒr7|j}t|dƒr�t|j  ¡ƒ}|D]9\}}t |t ƒr~t d||d�z t |||d �Wntyx}z t d ||d�WYd}~nd}~wwt |d�qEdSt|d ƒr�t|||d �dSt |ttfƒržt||d�dSt |tƒr¬t|||d �dStd t|ƒjƒ‚) N©r!Ú__func__Ú__code__Úgi_codeÚag_codeÚcr_codeÚ__dict__zDisassembly of %s:r zSorry:Úco_codeú(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_bytesrÚ_disassemble_strÚtypeÚ__name__)Úxr!r"r.rZx1Úmsgrrrr+sJ         €ÿ €ù  ÿrr#cCsX |dur ztj}Wn tytdƒd‚w|jr |j}|jst|jj|j|d�dS)Nz no last traceback to disassembler#) ÚsysÚlast_tracebackÚAttributeErrorÚ RuntimeErrorÚtb_nextrÚtb_frameÚf_codeÚtb_lasti)Útbr!rrrrXs   ÿrZ OPTIMIZEDZ NEWLOCALSZVARARGSZ VARKEYWORDSZNESTEDZ GENERATORZNOFREEZ COROUTINEZITERABLE_COROUTINEZASYNC_GENERATOR) éééééé é@é€éicCsb g}tdƒD]}d|>}||@r$| t |t|ƒ¡¡||N}|s$nq| t|ƒ¡d |¡S)NrJrEú, )ÚrangeÚappendÚCOMPILER_FLAG_NAMESÚgetÚhexÚjoin)ÚflagsÚnamesÚiÚflagrrrÚ pretty_flagsrs € rYcCsŒ t|dƒr |j}t|dƒr|j}nt|dƒr|j}nt|dƒr$|j}nt|dƒr,|j}t|tƒr6t|dƒ}t|dƒr=|St dt |ƒj ƒ‚) Nr$r%r&r'r(z r*r+) r,r$r%r&r'r(r/rrr2r8r9©r:rrrÚ_get_code_object€s$        ÿr[cCs tt|ƒƒS©N)Ú_format_code_infor[rZrrrr—s rcCsxg}| d|j¡| d|j¡| d|j¡| d|j¡| d|j¡| d|j¡| d|j¡| dt|j ƒ¡|j r[| d ¡t |j ƒD] }| d |¡qQ|j rr| d ¡t |j ƒD] }| d |¡qh|j r‰| d ¡t |j ƒD] }| d |¡q|jr | d¡t |jƒD] }| d |¡q–|jr·| d¡t |jƒD] }| d |¡q­d |¡S)NzName: %szFilename: %szArgument count: %szPositional-only arguments: %szKw-only arguments: %szNumber of locals: %szStack size: %szFlags: %sz Constants:z%4d: %rzNames:z%4d: %szVariable names:zFree variables:zCell variables:Ú )rPÚco_nameÚ co_filenameÚ co_argcountÚco_posonlyargcountÚco_kwonlyargcountÚ co_nlocalsÚ co_stacksizerYÚco_flagsÚ co_constsÚ enumerateÚco_namesÚ co_varnamesÚ co_freevarsÚ co_cellvarsrT)ÚcoÚlinesZi_cZi_nrrrr]›s<      r]cCs tt|ƒ|d�dS©Nr#)r1r)rmr!rrrr »sr Ú _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@seZdZ ddd„ZdS)r éFrGcCsâ g}|r|jdurd|}| ||j¡n| d|¡|r&| d¡n| d¡|jr4| d¡n| d¡| t|jƒ |¡¡| |j t¡¡|j durj| t|j ƒ t ¡¡|j rj| d|j d¡d  |¡  ¡S) Nz%%%ddú z-->z z>>z ú(ú))Ú starts_linerPÚis_jump_targetrÚoffsetÚrjustÚopnameÚljustÚ _OPNAME_WIDTHÚargÚ _OPARG_WIDTHÚargreprrTÚrstrip)ÚselfÚ lineno_widthZmark_as_currentÚ offset_widthZfieldsZ lineno_fmtrrrÚ _disassembleßs(      zInstruction._disassembleN)rsFrG)r9Ú __module__Ú __qualname__r…rrrrr Ñs r )Ú first_linecCsV t|ƒ}|j|j}tt|ƒƒ}|dur||j}nd}t|j|j|j |j |||ƒS©Nr) r[rlrkÚdictr Úco_firstlinenoÚ_get_instructions_bytesr*rjrirg)r:rˆrmÚ cell_namesÚ linestartsÚ line_offsetrrrr s   þr cCs" |}|dur ||}|t|ƒfSr\©r)Z const_indexZ const_listÚargvalrrrÚ_get_const_infos  r’cCs2 |}|dur||}|}||fSt|ƒ}||fSr\r�)Z name_indexZ name_listr‘r€rrrÚ_get_name_info'sÿr“c #s¨� t|ƒ}d}t|ƒD]Å\} } ‰|dur#| | d¡}|dur#||7}| |v} d} d} ˆdurÈ} | tvr=tˆ|ƒ\} } n†| tvrItˆ|ƒ\} } nz| tvrXˆd} dt| ƒ} nk| t vrk| dˆd} dt| ƒ} nX| t vrwtˆ|ƒ\} } nL| t vr‚t ˆ} | } nA| t vrŽtˆ|ƒ\} } n5| tkr±tˆd@\} } | tˆd@ƒf} | dr°| r¬| d7} | d7} n| tkrÃd ‡fd d „ttƒDƒ¡} tt| | ˆ| | | || ƒVq dS) NrrFzto rsrGrErNz with formatc3s$�|] \}}ˆd|>@r|VqdS)rENr)Ú.0rWÚs©r~rrÚ js€ ÿz*_get_instructions_bytes..)r Ú_unpack_opargsrRZhasconstr’Zhasnamer“ÚhasjabsrÚhasjrelZhaslocalZ hascompareZcmp_opZhasfreerÚFORMAT_VALUE_CONVERTERSÚboolrrTrhÚMAKE_FUNCTION_FLAGSr r{)ÚcodeÚvarnamesrVÚ constantsÚcellsrŽr�ÚlabelsrwryÚoprxr‘r€rr–rrŒ7s\€ € þ×rŒéÿÿÿÿc Cs> |j|j}tt|ƒƒ}t|j||j|j|j|||d�dSro) rlrkrŠr r6r*rjrirg)rmÚlastir!r�rŽrrrrps     ÿrcCstt||d�|dus|dkr6|dur|d}|jD]}t|dƒr5t|d�td|f|d�t|||d�qdSdS)Nr#rrEr*zDisassembly of %r:r )rrgr,r1r3)rmr!r"r:rrrr3ws    €ùr3)r!r�c CsÈt|ƒ} | rt| ¡ƒ|} | dkrtt| ƒƒ} nd} nd} t|ƒd} | dkr/tt| ƒƒ} nd} t|||||||d�D]%}| oI|jduoI|jdk}|rQt|d�|j|k}t|  | || ¡|d�q)r3r)rÚkwargsrrrr7 sr7ccsj�d}tdt|ƒdƒD]'}||}|tkr(||d|B}|tkr%|d>nd}nd}d}|||fVq dS)NrrFrErH)rOr©Z HAVE_ARGUMENTZ EXTENDED_ARG)ržZ extended_argrWr£r~rrrr˜¦s€ør˜cCsf g}t|ƒD])\}}}|dur0|tvr|d|d}n |tvr&|d}nq||vr0| |¡q|S)NrF)r˜ršr™rP)ržr¢ryr£r~Zlabelrrrr ²s  €r ccs>� d}| ¡D]\}}}|dur||kr|}||fVqdSr\)Úco_lines)ržZlastlineÚstartÚendÚlinerrrr Ås€ €r c@sJeZdZ dddœdd„Zdd„Zdd„Zed d „ƒZd d „Zd d„Z dS)rN)rˆÚcurrent_offsetcCsdt|ƒ|_}|dur|j|_d|_n ||_||j|_|j|j|_tt |ƒƒ|_ ||_ ||_ dSr‰) r[Úcodeobjr‹rˆÚ _line_offsetrlrkÚ _cell_namesrŠr Ú _linestartsÚ_original_objectr¯)r‚r:rˆr¯rmrrrÚ__init__Ús  zBytecode.__init__c Cs*|j}t|j|j|j|j|j|j|jd�S)Nr¦) r°rŒr*rjrirgr²r³r±)r‚rmrrrÚ__iter__çs ýzBytecode.__iter__cCsd |jj|j¡S)Nz{}({!r}))ÚformatÚ __class__r9r´©r‚rrrÚ__repr__îs ÿzBytecode.__repr__cCs& |jr |j}|js||jj|jd�S)N)r¯)r@rArBrC)ÚclsrDrrrÚfrom_tracebackòs ÿzBytecode.from_tracebackcCs t|jƒSr\)r]r°r¹rrrÚinfoùs z Bytecode.infoc Csz |j}|jdur |j}nd}t ¡� }t|j|j|j|j|j |j |j ||d� |  ¡WdƒS1s6wYdS)Nr¤)rŸrVr r¡rŽr�r!r¥) r°r¯ÚioÚStringIOr6r*rjrirgr²r³r±Úgetvalue)r‚rmryÚoutputrrrrýs    ú$øz Bytecode.dis) r9r†r‡rµr¶rºÚ classmethodr¼r½rrrrrrÒs   rcCs| ddl}| ¡}|jd| d¡ddd�| ¡}|j� }| ¡}Wdƒn1s+wYt||jjdƒ}t |ƒdS)NrÚinfileÚrbú?ú-)r8ÚnargsÚdefaultr) ÚargparseÚArgumentParserÚ add_argumentZFileTypeÚ parse_argsrÃÚreadrrr)rÉÚparserÚargsrÃrržrrrÚ_tests ÿ rÐÚ__main__r\)NNNNNr)r¤)r¤NNNNN);r<ÚtypesÚ collectionsr¾ZopcoderZ _opcodes_allÚ MethodTypeÚ FunctionTypeÚCodeTyperÂÚ staticmethodr8r0Zopmaprrrrr›rr�rrrrQrYr[rr]r Ú namedtuplerpr{Ú__doc__r~r‘r€ryrwrxr}rr r r’r“rŒrr3r6r7rr˜r r rrÐr9rrrrÚsœ þ ÿü -ö  ÿ4  ÿ9 ÿ þ  = ÿ