Jz`fc sSrSSKrSSKrSSKrSSKrSSK7 SSKJrJrJ r J r J r J r J r Jr SSKJr /SQ\-rC\R"\R$\R&\\\4r\Sr\SrS r\S r\S r\S r\S r\Sr \Sr!\Sr"\Sr#\Sr$\Sr%\Sr&\Sr'\Sr(\Sr)\Sr*\Sr+\,"\-5r.\/"\5r0\Rb"5Hur2r3\3\4"\.5:de\2\.\3'\3\0\2'M \ Rb"5VVVs0sHupUHo"U_M M snnnr5Sr6SuSSSSSS.Sjjr7SuSSSSS.Sjjr8S S!S"S#S$S%S&S'S(S)S*. r9S+r:"S,S-5r;\;"5rS0r?S1r@S2rASS3.S4jrB\R"S5/S6QS/S7-S89rD\R"S9/S:Q/S;QS89rES<\ERZlS=\ER lS>\ERlS?\ERlS@\ERlSA\ERlSB\ERlSC\ERlSD\ERlSE\ERlSF\ERlSG\ERl\R"SHSI5rP"SJSK\P5rQSLrRSMrSSNrTSOrU"SPSQ\E5rV"SRSS5rW"STSU5rXSSSSV.SWjrYSXrZSYr[SZr\S[r]S\r^S]r_SvS^jr`SwSSSSS.S_jjraSSSSSS.S`jrbSxSbjrcScrdSdreSySSaSSSSSe.SfjjrfSwSgjrgShrh\ariSirjSj\jSk- -rkSlrlSmrmSnrnSoroSprp"SqSr5rqSsrr\sSt:Xa\r"5 ggs snnnf)zz0Disassembler of Python byte code into mnemonics.N)Z*)__all__ _cache_format_inline_cache_entries_nb_ops_intrinsic_1_descs_intrinsic_2_descs_specializations_specialized_opmap) get_executor) code_infodis disassembledistbdiscofindlinestarts findlabels show_codeget_instructions InstructionBytecode CONVERT_VALUESET_FUNCTION_ATTRIBUTE)defaultsZ kwdefaultsZ annotationsZclosureENTER_EXECUTOR LOAD_CONST RETURN_CONST LOAD_GLOBAL BINARY_OP JUMP_BACKWARDFOR_ITERSEND LOAD_ATTRLOAD_SUPER_ATTRCALL_INTRINSIC_1CALL_INTRINSIC_2LOAD_FAST_LOAD_FASTSTORE_FAST_LOAD_FASTSTORE_FAST_STORE_FASTCACHEcsT[XS5$![a Of=f[XS5$)zAttempts to compile the given source, first as an expression and then as a statement if the first approach fails. Utility function to accept strings in functions that otherwise expect code objects Zevalexec)compileZ SyntaxError)sourcename /usr/lib64/python3.13/dis.py _try_compiler.As3 vV,,    6 ((s  Ffiledepth show_cachesadaptive show_offsetsc sjUc [XUUS9 g[US5(a URn[US5(a URnOY[US5(a URnO;[US5(a UR nO[US5(a UR n[US5(ah[URR55nUH>upx[U[5(dM[S U-US 9 [XX#XES 9 [US 9 M@ g[US 5(a [XX#XES 9 g[U[ ["45(a|[%U5n S['[)['U 555-n [+UU(a*['[)[-['U5S- S555OSU US9n [/U S9n [1X U S9 g[U[(5(a [3XX#XES 9 g[S[5U5R6-5e![an [S XS 9 Sn A GNSn A ff=f)aDisassemble classes, methods, functions, and other compiled objects. With no argument, disassemble the last traceback. Compiled objects currently include generator objects, async generator objects, and coroutine objects, all of which store their code object in a special attribute. Nr0r2r3r4__func____code__gi_codeag_codecr_code__dict__zDisassembly of %s:r0r/zSorry:co_code'r)r0 offset_width label_widthr2) labels_map) arg_resolver formatter(don't know how to disassemble %s objects)r hasattrr6r7r8r9r:sortedr;items isinstance _have_codeprintr TypeError_disassemble_recursiveZbytesZ bytearray_make_labels_maplenstr Formattermax ArgResolver_disassemble_bytes_disassemble_strtype__name__)xr0r1r2r3r4rIr+Zx1ZmsgrCrBrErD r-r r Ns y 48' )q* JJq* JJ I   II I   II I   IIq*qzz'')* !HD"j))*T1=4UV^z4  ! I  q5\d A Ay) * *%a( #c#j/233 4NZ3s3s1vz43H/I+J`a*5*57 #j9 19M As  UV^zBQ(()* *#!4(C334s H H2 H--H2r5c stUcq[[S5(a[RRnO[RnUR(aURoR(aM[URRURXX4S9 g![ a [ S5Sef=f)z2Disassemble a traceback (default: last traceback).Nlast_excz no last traceback to disassembler5) rGsysr[Z __traceback__Zlast_tracebackZAttributeError RuntimeErrortb_nextr tb_framef_codetb_lasti)tbr0r2r3r4 r-r r s z MsJ''\\//''jjrzz"jjj ""BKKd^fC MAB L Ms/B B B7Z OPTIMIZEDZ NEWLOCALSZVARARGSZ VARKEYWORDSZNESTEDZ GENERATORZNOFREEZ COROUTINEZITERABLE_COROUTINEZASYNC_GENERATOR) r?r> @iiic s/n[S5HNnSU-nX-(dMUR[RU[ U555 X-nU(aMN O UR[ U55 SR U5$)z+Return pretty representation of code flags.rgrd, )rangeappendCOMPILER_FLAG_NAMESgetZhexjoin)ZflagsnamesiZflag r- pretty_flagsrrsx E 2Y!!t << LL,00s4yA B ME5 !  SZ 99U cs\rSrSrSrSrg)_Unknownicsg)Nz self r-__repr__Z_Unknown.__repr__srsruN)rX __module__ __qualname____firstlineno__ry__static_attributes__rursr-rtrtsrsrtcs[US5(a URn[US5(a URnOY[US5(a URnO;[US5(a URnO[US5(a UR n[ U[5(a [US5n[US5(aU$[S[U5R-5e) zDHelper to handle methods, compiled or raw code objects, and strings.r6r7r8r9r:z r=rF) rGr6r7r8r9r:rJrQr.rMrWrXrYrxr-_get_code_objectrsq* JJq* JJ I   II I   II I   II!S O ,q) >G$$% &&rscsL[UnU[;a[[U$U$N) _all_opnamedeoptmap _all_opmap)opr+r,r-_deoptoprs& r?D)-)9:htn %ArArscsU(aURn/nSn[S[U5S5HnX%X%S-pvU[:Xa4[ X5nU(a!UR5UR5pvSnURUR55 URUR55 M U(dU$SRU5$UR$![ [ 4a SnNf=f)NFrr?rdTrs) Z_co_code_adaptiverjrPrr Z ValueErrorr]Z get_opcodeZ get_opargrkZto_bytesrnr=) cor3codeZresZfoundrprargZex r-_get_code_arrayrs##q#d)Q' 'AgtaCy^#%b,B mmor||~ E JJr{{} % JJs||~ & '!t3chhsm3zz#L1Bs C!!C65C6cs*[[U55$)z1Formatted details of methods, functions, or code.)_format_code_inforr~rxr-r r s -a0 11rscsN/nURSUR-5 URSUR-5 URSUR-5 URSUR-5 URSUR -5 URSUR -5 URSUR-5 URS[UR5-5 UR(aAURS 5 [UR5HnURS U-5 M UR(aAURS 5 [UR5HnURS U-5 M UR(aAURS 5 [UR5HnURS U-5 M UR(aAURS5 [UR5HnURS U-5 M UR(aAURS5 [UR5HnURS U-5 M SR!U5$)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:Z )rkZco_nameZ co_filenameZ co_argcountZco_posonlyargcountZco_kwonlyargcountZ co_nlocalsZ co_stacksizerrZco_flags co_consts enumerateco_namesZ co_varnamesZ co_freevarsZ co_cellvarsrn)rZlinesZi_cZi_nrqr-rrs E LL(2::56 LL(2>>9: LL(2>>9: LL023H3HHI LL(2+?+??@ LL(2==89 LL(2??:; LL(< +DDE || \"R\\* *C LLS ) * {{ XR[[) *C LLS ) * ~~ &'R^^, *C LLS ) * ~~ &'R^^, *C LLS ) * ~~ &'R^^, *C LLS ) * 99U rsr<cs*[[U5US9 g)zuPrint details of methods, functions, or code to *file*. If *file* is not provided, the output is printed on stdout. r<N)rLr )rr0r,r-rr s  )B-d#rs Positions)linenoZ end_linenoZ col_offsetZend_col_offsetr>)r _Instruction) opnameopcoderargvalargreproffset start_offset starts_line line_numberlabel positions cache_info)NNNz!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 sequencez|Start index of operation within bytecode sequence, including extended args if present; otherwise equal to Instruction.offsetz9True if this opcode starts a source line, otherwise FalsezGsource line number associated with this opcode (if any), otherwise NonezFA label (int > 0) if this instruction is a jump target, otherwise NonezPdis.Positions object holding the span of source code covered by this instructionzGlist of (name, size, data), one for each cache entry of the instruction_ExceptionTableEntryBasezstart end target depth lastics\rSrSrSrg)_ExceptionTableEntryiDruN)rXrzr{r|r}rursr-rrDsrsrics0[R"US5$Nr)rrmrrxr-_get_cache_sizerJs $ $VQ //rscs[U5n[[U5nU[;a([ U5(aU*nUS-US--nUSU-- nU$U[ ;aUS-nU$SnU$)zcGets the bytecode offset of the jump target if this is a jump instruction. Otherwise return None. r?N)rrrhasjrel_is_backward_jumphasjabs)rrrdeopcachestarget r-_get_jump_targetrMs Bz z-->z Z())rrArBrrrLr0r _NO_LINENOrkrreprrZljust _OPNAME_WIDTHrrSrPZrjust _OPARG_WIDTHrrnZrstrip) rwrrrrArBZnew_source_lineZfieldsZ lineno_fmtrlblrZ opname_excesss r-rZ Formatter.print_instruction_lines(( (( && '!+, ,,, < Lz [Z])r0rLlasti start_label end_label target_labelr1)rwexception_entriesr0Zentryrstartendr r-print_exception_tableZFormatter.print_exception_tablesyy  #$ /* ^$)KKR))oo++E7%uE&EKK=%QX\]  ^ rs)r2r0rrArB)NrrrrF)F) rXrzr{r|rrrrr}rursr-rRrRsNO27'"$19f ^rsrRcs0\rSrSrSSjrSrSrSrSrg) rTi NcsHXlX lX0lU=(d 0Ulgrrrovarname_from_opargrC)rwrrorrCrcr-rZArgResolver.__init__ s" "4$*rscs[U5nU[;aUS-$U[;a<[U5(aU*OUnUS-US--n[ [ U5nUSU-- nU$gNr?)rrrrrr)rwrrrrZ signed_argrrrr-offset_from_jump_argZ ArgResolver.offset_from_jump_argsl| 7?7N W_!24!8!8#cJaZ*Q,.F$[%67F a&j FMrscs:URRUS5$r)rCrm)rwrr,r-get_label_for_offsetZ ArgResolver.get_label_for_offsets""6400rscsh^URcSOURRnSnSn[U5nTGbwTnU[;a[ UTUR 5upVXV4$U[ ;aU[:Xa*[TS-U5upVTS-(a U(aUS3nXV4$U[:Xa*[TS-U5upVTS-(a U(aUS3nXV4$U[:Xa*[TS-U5upVTS-(a U(aUS3nXV4$[TU5upVXV4$U[;d U[;a1URUTU5nURU5nUceSU3nXV4$U[[ ["4;aFTS- n TS-n [XR$5up[XR$5upU S -U-nX4nXV4$U[&;d U[(;a[TUR$5upVXV4$U[*;a![,TS - nUnTS -(aS US 3nXV4$U[.:XaS[0[2[44TnSTnXV4$U[6:Xa+S R9U4Sj[;[<555nXV4$U[>:Xa[@TupXV4$U[B:Xa [DTnXV4$U[F:Xa [HTnXV4$)Nrr?rdz + NULLz + NULL|selfr>zto Lirirrfzbool(r)rrQrasciic3sH># UHupTSU--(dMUv M g7f)rdNru)Z.0rpZsrs r-Z Z1ArgResolver.get_argval_argrepr..Ts&$5$!'*ad|%&A$5s" ")%roZ __getitem__rhasconst_get_const_inforZhasnamer_get_name_infor r!ZhasjumpZhasexcrrr$r%r&rZhaslocalZhasfreeZ hascompareZcmp_oprrQrrrrnrFUNCTION_ATTR_FLAGSrrr"rr#r)rwrrrget_namerrrrZarg1Zarg2Zval1Zargrepr1Zval2Zargrepr2_s ` r-get_argval_argreprZArgResolver.get_argval_argrepr!s%::-44::3I3I| ? Fx"1$T^^"L^];&&4S!VX&FOFaW%,IW"5TSY&&4S!VX&FOFaW%,I\":LK_,&4S!VX&FOFaW%,I\":DA'5S(&COFG@?DFN222sFC//7& ,65-/CEZ[[axRx!/6M6M!N!/6M6M!N"T/H4('!TW_"0d6M6M"N$##q) 8 %gYa0G&T51#66s;//))$5)0<  >>rscs8U[;de[nUbX!nU$)zHelper to get the value of the const in a hasconst op. Returns the dereferenced constant if this is possible. Otherwise (if it is a LOAD_CONST and co_consts is not provided) returns the dis.UNKNOWN sentinel. )rUNKNOWN)rrrrrqr-_get_const_valuer|s' >> F MrscsL[XU5nU[La [U5OSnX44$)zHelper to get optional details about const references Returns the dereferenced constant and its repr if the value can be calculated. Otherwise returns the sentinel value dis.UNKNOWN for the value and an empty string for its repr. r)rrr)rrrrrrcr-rrs*by 1F$G3d6lG ?rsc s0Ub U"U40UD6nX34$[S4$)zHelper to get optional details about named references Returns the dereferenced name as both value and repr if the name list is defined. Otherwise returns the sentinel value dis.UNKNOWN for the value and an empty string for its repr. r)r)Z name_indexrZ extrainforrqr-rrs+*2 2~{rscs[U5nUS-nUS-(a#US-n[U5nX!S--nUS-(aM#U$)Ni?rhi)next)iteratorZbZvalrr- _parse_varintrsJ XA b&C B$   N t  B$$ Jrsc s,[UR5n/n[U5S-n[U5S-nX4-n[U5S-n[U5nUS- n[US-5n UR [ X5XhU 55 Mj![ a Us$f=f)Nr?rd)iterZco_exceptiontablerZboolrkrZ StopIteration) rrZentriesrZlengthrrZdlr1r r-_parse_exception_tablersD**+HG !(+A-E"8,Q.F.C"8,Q.Fx(B!GEAJE NN/F5Q R sA+B BBcs[US;$)N)rZJUMP_BACKWARD_NO_INTERRUPTr)rrxr-rrs ":8 88rsc#s# U=(d UnU=(d [S5nSnSnSn[U5GH,uppUbX;nU(aXnUbXr-nOSn[[US56n [ U 5nX n U(aUR XU 5unnO U [ U 5nn[[U5n[U5Hn[US5 M U(aO/n[[UR5H*unnX S-U S-SU--nURUUU45 M, OSnU(aURU 5OSn[[U XUUXXhUU U5 v GM/ g7f)zIterate over the instructions in a bytecode string. Generates a sequence of Instruction namedtuples giving the details of each opcode. ruFNr?)r_unpack_opargsrrrrrrrrjrrrIrkrr)rrrrrrDrZlocal_line_numberrrrrrrrrrrrrr+rrrs r-rrs")TM+48LKK)7 )F"8%b  ! .K$.$6! ,/= " tL"56 | \ *==bvNOFG!49GF T!23v #A r " # J+F4L9??A 6 dQJ QX(=>!!4t"45 6J=I 11&9t+b/2FG J8 8A"8sE#E%c s[[U55n[U5n[URUS9nS[ [ [ U555-n [U[U5U(a4[ [ [[ UR5S- S555OSU US9n [URURURUS9n [[X5XXpR!5URXS9 g ) zDisassemble a code object.)rr>r?r@rrr)rrrrDrEN)rrrrOr=rPrQrR_get_lineno_widthrSrTrrrrUrr) rrr0r2r3r4rrrCrBrErD r-r r snR()J.r2!"**@QRJc#c*o.//Kt'8'DS_s3s3rzz?Q3F/M+N'Oef&1&1 3I %'[[242H2H*46Lr4e):IZ%'ZZlarsc s[XX4US9 UbUS:aRUbUS- nURH9n[US5(dM[US9 [SU<S3US9 [ XaX#XES9 M; gg) Nr5rrdr=r<zDisassembly of rr/)r rrGrLrN)rr0r1r2r3r4rYrr-rNrN ss;Xde }  AIE Aq)$$4 a1=&%  "rsrucs[[U55n[U5nUH;upEn nURU5 URU5 URU5 M= [U5n[ [U55VV s0sH upXS-_M n nn UH<n XR U lXRU lXRU l M> U $s sn nf)Nrd) ZsetrZaddrHrrrrrrr) rrZ jump_targetslabelsrrrrrprrCZerr-rOrOsz-01L  F$5 FAq 5 3 6F^F1:6&>1JK+1&A#+KJK ."77+  ' #HH-.  LsCz --csUcg[[SUR55SS9nUS:Xag[S[[ U555nU[[ 5:a#SUR5;a[[ 5nU$)Nr)defaulti)rSZfilterZvaluesrPrQr)rZ maxlinenorrr-rr+sqF4!2!2!45rBIBq#c)n-.Lc*o%$*2C2C2E*E: rs)rrrrrDrEc sFUceUce[XUUUUS9n [XXS9 g)Nr)r)rprint_instructions) rrrrrrrrDrEinstrsrr-rUrU8sA    ## # $T7B8D9F8D FF v)Irsc sUHfnURUs=:*=(a8 URS[[[UR55--:*Os nUR XE5 Mh UR U5 gr)rrrrrrr)rrrErrZis_current_instrrr-rrIsr= <<5WW||a/+hu||>T2U"VVVW##E< = ##$56rsc s0[[US540UD6 g)zN)rNr.)r*Zkwargsr,r-rVrVRs<8CFCrsrgr?rdc#s|# SnSnSn[S[U5S5HnU(aUS-nMXn[U5n[[U5nU[ ;a2XS-U-nU[ :XaUS-OSnU[:a US[--nOSnSnU[ :Xa US- nXDXW4v MXBS-- nXHXW4v SnM g7f)Nrr?rdre)rjrPrrrZhasarg EXTENDED_ARG _INT_OVERFLOW) rZ extended_argZextended_args_offsetrrprrrrrr-rr^sL F 1c$i #%  aKF  W| T!23 6>s)l*C)-)=C1H1L},M 11 CL <  A % / !A55LB, ,#$ 3%sB:B<cs/n[U5H4up#pEUcM [XEU5nUcMXa;dM#URU5 M6 U$)zXDetect all offsets in a byte code which are jump targets. Return the list of offsets. )rrrk)rrrrrrrrr-rr}sT F,T2%2 ?$Rf5E}" e$ % Mrsc#s^# SnUR5Hup#nXALdM UnX$4v M g7f)zFind the offsets in a byte code which are start of lines in the source. Generate pairs (offset, lineno) lineno will be an integer or None the offset does not have a source line. FN)Zco_lines)rZlastlinerrZlinercr-rrs>H MMOD  H+  s- -c #s# [SnURnURn[UR5VVVs/sHu pEnU[ :wdMXV4PM nnnn[ U5HqunupYXQ:XdMUS:dMXxS- n XxS- n U S[;dM4U S[;dMC[U SU SU5n [U SU SU5n X9X4v Ms gs snnnf7f)zFind import statements in the code Generate triplets (name, level, fromlist) where name is the imported module and level, fromlist are the corresponding args to __import__. IMPORT_NAMEr?rdrN) opmaprrrr=rrrr)rrZconstsrorrrZopargsrprZfrom_opZlevel_opZlevelZfromlistrZr- _find_importsrs &K \\F KKE-;BJJ-G))MAqc<'ri)F)#F+6;B aqSkGc{H h&8A;(+B(!hqk6J+GAJ FK|U556)s.;C%CCC%7C%?C% C%+:C%c#s# [S[S1nURn[UR5Hu p4nXA;dMX%v M g7f)zTFind names of variables which are written in the code Generate sequence of strings Z STORE_NAMEZ STORE_GLOBALN)rrrr=)rZ STORE_OPSrorrrrr-_find_store_namesrsT l nI KKE' 3 1# ?* s >A Acs`\rSrSrSrSSSSSS.SjrSrSr\SSS .S j5r S r S r S r g)rizThe bytecode operations of a piece of code Instantiate this with a function, method, other compiled object, string of code, or a code object (as returned by compile()). Iterating over this yields the bytecode operations as Instruction instances. NF)rcurrent_offsetr2r3r4cs [U5=UlnUcURUlSUlOX lX'R- Ul[ [ U55UlXlX0l [U5Ul X@l XPl X`lgr)rcodeobjrr _line_offsetrr _linestarts_original_objectrrrr2r3r4)rwrYrrr2r3r4rrr-rZBytecode.__init__s,Q// r   //DO !D (O *->-> >D r 23 !,!7!;& (rsc s6URnURn[X R5n[ UR UR URUS9n[[XR5URURUR5UUS9$)Nrr)rr=rOrrTrrrrrr3rrr)rwrrrCrDrcr-__iter__ZBytecode.__iter__s \\ %m5K5KL "R\\)+686L6L.8: 'r=='I262B2B373D3D46OO4E5B4@ B BrscsbSRURRUR5$)Nz{}({!r}))Zformat __class__rXrrvrxr-ryZBytecode.__repr__s*  !8!8!%!6!68 8rs)r2r3csUR(aURnUR(aMU"URRURX#S9$)z.Construct a Bytecode from the given traceback )rr2r3)r^r_r`ra)Zclsrbr2r3rqr-from_tracebackZBytecode.from_tracebacksAjjBjjj KK  r{{   rscr)z3Return formatted information about the code object.)rrrvrxr-infoZ Bytecode.infos ..rsc sBURnURb URnOSn[R"5n[ XR 5nUR (a*[[[[U5S- S555OSn[URUR5nS[[[U555-n[U[UR5UUUR UR"S9n[%UR&UR(UR*US9n [-UURUR UURUR/5URU US 9 UR15sSSS5 $!,(df  g=f) z3Return a formatted view of the bytecode operations.Nrr?r@rr>)r0rrArBrr2r)rrrrrrrDrE)rrrrrr3r4rPrQrSrOr=rrRrrrr2rTrrrrUrr) rwrrrrrArCrBrErDrr-r Z Bytecode.dissS \\    *((FF [[] %f"2}}5DAEARAR3s3s4y1}d#;<=XYL*"**d6L6LMJc#c*o"677K!v/@AQAQ/R/;.9.2.?.?.2.>.> @I'-/[[:<:P:P2<>L t*.*:*:+/+<+<%+151G1G,.OO,=-/ZZ,8)2 4??$7 % % %s EF F) r2rrrr4rrrr3rr) rXrzr{r|rrrry classmethodr r r r}rursr-rrsI)-Tu_dsx) B8/4u  /"%rsrcsSSKnUR5nURSSSSS9 URSSSS S9 URS S S S 9 UR5nURS :Xa+Sn[ R RR5nO;URn[URS5nUR5nSSS5 [WUS5n[XbRURS9 g!,(df  N:=f)Nrz-Cz --show-cachesZ store_truezshow inline caches)ZactionZhelpz-Oz--show-offsetszshow instruction offsetsinfileZ?Z-)ZnargsrzZrbr()r2r4)argparseZArgumentParserZ add_argumentZ parse_argsr r\ZstdinZbufferZreadZopenr)r r2r4)r ZparserZargsr+r*r rrr-mainrs  $ $ &F ol13 .|79 S9    D {{c!!&&({{ $++t $ #[[]F # 64 (D**9J9JK # #s 7C<< D Z__main__r)NrNNN)r)ru)rN)trr\ZtypesZ collectionsrrrZ _opcodes_allrrrrrrrZ_opcoder Z MethodTypeZ FunctionTypeZCodeTyper Z staticmethodrWrKrrrrrrrrrrrrr r!r"r#r$r%r&r'ZlistrrrrrIr+rrPrr.r r rlrrrtrrrrr rrZ namedtuplerrrrrrrrrrrrrrrrrrrrRrTrrrrrrrrr rNrOrrrUrrVrZ _INT_BITSrrrrrrrrrX)ZbaseZfamilyZ specializeds000r-rs6     ! :<    8PT=A38lad"a((,4UUZin    J&'2$($(DJ"7D   i!m$ %>  6,  Z%Z%zL( zFk sM