gg`dZddlZddlmZddlddlmZejek(sJdee hZ e e hZ eehZe eehzZeeeefeeeefeee efiZej<fdZd Z d Z!dd Z"ejFd zZ$de$zdz Z%d Z&e$e'fdZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3ddZ4y)zInternal support module for sreN)_parser)*) _EXTRA_CASESzSRE module mismatchc*||zr||z}||z|zSN)flags add_flags del_flags TYPE_FLAGSs 3/opt/alt/python312/lib64/python3.12/re/_compiler.py_combine_flagsrs(: * I ) ++c  |j}t}t}t}t}t }d} d} d} |t zrY|tzsP|tzr'tj} tj} t} n tj} tj} |D]d\} } | |vr|t zs|| || &|tzr|t| || G| | s|| || `| | }| s|t | |||| vr|t"| |||t$||}|d| t&ur |t(|f| |zD]}|t*|||t,|||z ||< | t.urt1| | | | \}}|t zr|tzr |t2n*|s |t.n| s |t4n |t$||}|dt7||||||z ||<| t8ur%|t:zr|t<|t8| |vr|t>zrtAd| tC| dr`||| d||}|d|| d|| dtE|| d||tF|||z ||<Q||| d||}|d|| d|| dtE|| d||||z ||<||| d| tHur^| \}}}}|r|tJ||dz dztE||tM||||s|tJ||dz dzdz| tNurE|tN||}|dtE|| ||tF|||z ||<f| |vr || t| |vr|| ||}|d| ddk\r |dnB| djQ\}}|tRkDr tAd||k7r tAd||tE|| d||tF|||z ||<| tTurp|| |tVzrtXj[| | } |tzrt\j[| | } n|tzrt^j[| | } || | t`ur|| g}|j}| dD]O} ||}|dtE|| ||tb||||d|||z ||<Q|t,|D]}|||z ||<| tdur7|| |tzr tf| } n|tzr th| } || ^| tjurP|t zs || n1|tzr |tln| s |tnn |tp|| dz | trur|| || ddz ||}|dtE|| d|| drM|tb||}|d|||z dz||<tE|| d||||z ||<F|||z dz||<YtAd| y)Nrz(internal: unsupported template operator rzlooks too much behindz(look-behind requires fixed-width patternz#internal: unsupported operand type ):appendlen_LITERAL_CODES_REPEATING_CODES_SUCCESS_CODES _ASSERT_CODESSRE_FLAG_IGNORECASESRE_FLAG_LOCALESRE_FLAG_UNICODE_sreunicode_iscasedunicode_tolowerr ascii_iscased ascii_tolowerOP_LOCALE_IGNORE OP_IGNOREOP_UNICODE_IGNORE IN_UNI_IGNORE NOT_LITERALNEGATELITERALFAILUREIN_optimize_charset IN_LOC_IGNORE IN_IGNORE_compile_charsetANYSRE_FLAG_DOTALLANY_ALLSRE_FLAG_TEMPLATEerror_simple_compileSUCCESS SUBPATTERNMARKr ATOMIC_GROUPgetwidthMAXCODEATSRE_FLAG_MULTILINE AT_MULTILINEget AT_LOCALE AT_UNICODEBRANCHJUMPCATEGORY CH_LOCALE CH_UNICODEGROUPREFGROUPREF_LOC_IGNOREGROUPREF_IGNOREGROUPREF_UNI_IGNOREGROUPREF_EXISTS)codepatternr emit_len LITERAL_CODESREPEATING_CODES SUCCESS_CODES ASSERT_CODESiscasedtolowerfixesopavloskipkcharsethascasedgroupr r phitail tailappendskipyesskipnos rr4r4%s ;;D D"M&O"M LGG E ""5?+B # #**G**G E((G((GB  ..RR(%b)*RR[RRR[2'Hu_*2./H':DtAw[(V  UU2Y.W Q/M!%dd!2DJ 2X 1"gw N GX**u/F]#RY]#:DtAw WeT 2dd*DJ 3Y&W S ? "((BPQQr!u~_R(+,Dz47RU RU r!ue,W !$Z$.T _R(+,Dz47RU RU r!ue,!$Z$.T _R(+, : -/ *E9iT eAgq[! T1nUIyI JT eAgq[]# <   :DtAw T2u % Mdd*DJ = H <  H:DtAw!uzQA)B< 7888 JKKR T2a5% ( Mdd*DJ 2X H))!%%b"-&]]2r*))^^B+ H 6\ HDJeDz47r5)T 4:&Q!$Z$.T  M!$Z$.T  8^ H&r]))^ H 8^..R(()_%() AJ ? " H AqM4jG$q' T2a5% (!uT dT!W $T W 4q 8W r!ue,#DzF2V $T W 4q 8W 2GH H}rc|j}|D]\}}|||tur|tur ||(|tus|tur||d||dO|t ur|j |i|tur|j ||tur;|tzr|t||tzr|t|||td||ty)Nrrz#internal: unsupported set operator )rr&r'RANGERANGE_UNI_IGNORECHARSETextend BIGCHARSETrCrrDrrEr2r()r[r rKrMrVrWs rr-r-s ;;DB R <  7] H 5[B"22 AK AK 7] KKO :  KKO 8^&Yr]#))Z^$R2GH H+, Mrcrg}g}td}d}|D]\}} |tur7|r/|| } d|| <|r| |vr|| D]} d|| < |s|| rd}nd|| <n|turt| d| ddz} |r[|r+t || D]} d|| <| |vs || D]} d|| < nt || D]} d|| < |sRt t || }n<| D]} d|| < n/|t ur|j|| fn|j|| fg} d} |jd|}|dkrnYt| dk\rd} nH|jd|}|dkr| j|t|fn| j||fq| l| D]A\}}||z dk(r|jt|f&|jt||dz ffC||z }|st|t|kr||fS||fSt|dk(r+t|}|jt|f||z }||fSt|}i}td}d}t}tdd dD]1} || | dz}||vr |||| dz<|x|| dz<||<|dz }||z }3t|}|gt|z|dd|jt |f||z }||fS#t$r[t|dk(r |ddzz }Y|r)|tur |rt}d}n|tusJ|s || rd}|j|| fY$wxYw) NFTrriri) bytearrayr'rerangemapanyr&r IndexErrorrrffind _mk_bitmaprgbytes_bytes_to_codesri)r[rSfixuprUoutr`charmapr\rVrWrZrirunsqr^datacompsmappingblockchunks rr*r*s C DnGHB; &="2Y&'  R5[%*2Y-. &/'GBK'+H&' 5[beRU1W-A %(]-. #$:-21X56 .6&3 &)]-. &3''*3w?';H!"A)*GAJ"#6\JJBx(KKR)8 }B D A  LLA  q5  t9>D  LLA  q5 KKCL) *  QF  DAq1uz GQ<( EAq1u:./  t  s3x#g,.=    7|s'" GT?# t H},GnG EnG E ;D 1eS !1s7# E> %e GAH /4 4GAH e QJE EMD" d D/'22D1IJJ D!"4KC =M &w<3&uv~-GU{ !1B#'!W},}'GBK'+H RH%5 &sA8KAL65L6s0111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111c|jtddd}tt|d| Dcgc]}||||z |dc}Scc}w)Nrr) translate _BITS_TRANSrnr)bits _CODEBITS_intsrzs rrsrss_ {#DbD)A3q61yj1 31 1y=!$a (1 33 3sAct|jd}|jtjk(sJt ||jzt |k(sJ|j S)NI) memoryviewcastitemsizerCODESIZErtolist)bas rrurusW1 3A :: && & q6AJJ #a& (( ( 88:rc~t|dk7ry|d\}}|tur|dduxrt|dS|tvS)NrFrr)rr6r3 _UNIT_CODES)r^rVrWs rr3r3sK 1v{ qTFB Z!u}0B0  rcdgt|z}tdt|D]<}||dz }||||k7r|dk(rd||<!||dz }||||k7r|dz||<>|S)aj Generate an overlap table for the following prefix. An overlap table is a table of the same size as the prefix which informs about the potential self-overlap for each index in the prefix: - if overlap[i] == 0, prefix[i:] can't overlap prefix[0:...] - if overlap[i] == k with 0 < k <= i, prefix[i-k+1:i+1] overlaps with prefix[0:k] rr)rrn)prefixtablerzidxs r_generate_overlap_tablersC#f+ E 1c&k "AElQi6#;&axaa.C Qi6#;& QwE!H# Lrch|tzsy|tzrtjStjSr)rrrrr)r s r _get_iscasedrs/ & & ! !###!!!rcg}|j}d}t|}|jD]\}}|tur|r ||rn||#|turn|\}} } } t || | } | t zr | tzrnNt| | \} }}|| t|}n|t||z}|j| |rnn||dfS||dfS)NTF) rrr}r'r6rrr_get_literal_prefixrrh)rLr r prefixappend prefix_skiprSrVrWr]r r r^flags1prefix1 prefix_skip1got_alls rrrs F==LK5!G,,B =72;   : -/ *E9i#E9i@F++0H-@F-K *G\7"$"%f+K!-"%f+ "?#" rc |j\}}|tkDrt}|dk(r|jtdd||gyg}d}g}|tzr |t zst ||\}}}|s t||}|j} | tt|} | dd} |rt} |r| tz} n |r | tz} | | |tkr | |n| t|dt}| ||rR| t|| t|}| ||j||jt|n!|rt|\}} | rJt|||t|| z || <y)Nr)r9r:rhINFOrrrrrrSRE_INFO_PREFIXSRE_INFO_LITERALSRE_INFO_CHARSETrr*r-) rKrLr rXr_rrr[rrMrYmaskr\s r _compile_infors~   FB G|  Qw T1aR() FKG ' 'EO,C':7E'J$ W)'59G ;;DJ t9Dd1g D   7**D &&J G| R W !H  S[  v;K [ F +F34 -g6|%.TT!DJrc.t|ttfSr) isinstancestrrt)objs risstringr?s cC< ((rc|jj|z}g}t|||t||j||j t |Sr)stater rr4r}rr5)r^r rKs r_coderBsJ GGMME !E D$5! T1665!KK Krc8ddjd|DzS)N[%s], c3RK|]}dtjdzdz|fz!yw)z%#0*xrN)rr.0xs r z_hex_code..Rs(M1gq):A(>>s%')join)rKs r _hex_coderQs DIIMMM MMrcddltdtttdz fddty)Nrrc  ddfd }fd}dz }||kr#||}|dz }t|}|ttttt t tfvr ||n|ttttttttfvr#|}|dz }||d|t!|fzn|t"ur4|}|dz }t%t&|}|dddk(sJ|||ddnK|t(ur4|}|dz }t%t*|}|ddd k(sJ|||ddn|t,t.t0t2fvr)|}|||||z|dz||z||z }n|t4t6fvr4||d z\}} |d z }||d || t!|t!| fzn|t8ur-||t;||d t<zz|d t<zz }nW|t>ur|}|dz }tAd jCfd||d tDjFzzD} |||| |d tDjFzz }dz tI|D],} |t;||d t<zz|d t<zz }.dzn|tJtLtNtPtRfvr|}|dz }|||ns|tTur|}|||||z|dz }nQ|tVurW|}|||||z|r;|dz||z||z }||}|r|d|||zn |t|r;|dz }n|tXtZt\t^t`fvr=||dz\}} } | tbk(rd} |||| | ||z|dz||z||z }n|tdur!||d z\}}||||||z|d z }no|tfthfvr0||d z\}}||||||z|d z||z||z }n1|tjur)|}|||||z|dz||z||z }n|tlur||dz\}}} } | tbk(rd} |||to|| | ||z|dz|tpzr|dz|dz\}}|d||dz|z}|dddjCd|DzddjCtst |z|z |d|z|z |ttzrdz |d||zdz||z }n tw|||kr#dzy)N)toc|j||d|fzfz }tdvrdndfzddz zt|y)Nz(to %d)z%*d%s :.z rend)addprint)rargslabelslevel offset_widthstarts rprint_z!dis..dis_..print_\sW~ 2bU*,, (lE%6/3sSSE!Gn & 4Lrc@tddzzzt|y)N rr)r)rrrs rprint_2z"dis..dis_..print_2ds c.dis_..s-(R1PA)* 4==#--(P1Ps47branch MAXREPEATrz prefix_skipz prefixrrc3&K|] }d|z yw)z%#02xNr rs rrz$dis..dis_..s.KFqw{Fsz(%r)z overlapin)<OPCODESr5r(r.r0 MAX_UNTIL MIN_UNTILr&r'r%LITERAL_IGNORENOT_LITERAL_IGNORELITERAL_UNI_IGNORENOT_LITERAL_UNI_IGNORELITERAL_LOC_IGNORENOT_LITERAL_LOC_IGNOREchrr;rATCODESrCCHCODESr)r,r$r+rerfrgrrrilistrrrrnr7rFrHrIrGrBrAREPEAT REPEAT_ONEMIN_REPEAT_ONEPOSSESSIVE_REPEATPOSSESSIVE_REPEAT_ONErrJASSERT ASSERT_NOTr8rbinrror ValueError)rrrrrzrVargrYrXr_rjminmaxr prefix_lenrrrKdis_rrrrs` rrzdis..dis_[s*!      #gEaB FABgwWF44r &(:*,B*,BDD1gQr<3C/9:r1gQ'#,'2Aw%'''r3qr7#x1gQ'#,'2Aw+---r3qr7#I}mDDAwr4AdF+QqS!D&!T /00a1BQr0BCGSW3MMNwr9T!Qi-?%@ABS)^#z!1gQsxx(R15aS$--=O9O1P(R RSr3(S$--'' sAId1a#y..@&ABCi'A$ h9L+--1gQr3tAwr4AdF+QvAwr4AdF+1af%IAE7Dx!D&9wQ N)+@BB!%a1c3)#%Cr4caf5QqS!D&!T & AaCL Tr340Q ++ AaCL cr440QqS!D&!T |#Awr4AdF+QqS!D&!T t(,Q! %eS#)#%Cr4US#!D&A!?*.21Q3!n+J O[9EE!%z)9:FJ"TYY.KF.K%KK"RWWSf-=%>>@Z'EKeU:5E)FGZ'E++QJEDM$'QJET  n$o#gr  r)rsetrr)rKrrrrrs`@@@@@rdisrTsF UF Es3t9q=)*LIIV CIrc t|r|}tj||}nd}t||}|tzrt t ||jj}dg|jjz}|jD] \}}|||< tj|||jjz||jjdz |t|S)Nr)rrparserSRE_FLAG_DEBUGrrr groupdictgroupsitemsrcompiler tuple)r^r rLrK groupindex indexgrouprZrzs rrrs{ MM!U # E?D ~  D ""J!''..(J  "1 1 # <<& qE*%  r)NNN)r)5__doc__rrr _constants_casefixrMAGICr'r%rr5r(rrrrr.r)r MIN_REPEATrrr MAX_REPEATrrrrrr rr4r-r*rrr:rintrsrur3rrrrrrrrrrr rrrs& " zzU111;'7#$ Ry( N3J/)74IJ&00, qIf6Ob MMA  >Q  (s3 *"&>*X9"v) NRj r