IQgNddlmZmZmZmZmZdgZdeedeeefdZdeeeefdefdZ deeeeeefdefd Z d eedeefd Z d S) )UnionListAnyStrTupleOptional serialize_evrintgrreturncg}|}|dkr.t|d\}}|||dk.|dt|z||S)z Encode int in real-numbers segment. See http://en.wikipedia.org/wiki/Arithmetic_coding. @param intgr: int for coding in Float an segment [seg_begin, seg_end] @return: list encoding segment r)divmodappendlenreverse)r lstnumber remainders r/builddir/build/BUILD/imunify360-venv-2.5.0/opt/imunify360/venv/lib/python3.11/site-packages/clcommon/evr_utils.py"encode_int_to_real_numbers_segmentrsx C F 1**"63//  9 1**JJsSXX~KKMMM Jrpm_datac(g}|D]}t|tr#|t|nt|trD|r0|tt|nGt|tr |d|Dnt d||ddd|DS)z Encode List of parts of Version or Epoch or Release in real-numbers segment. See http://en.wikipedia.org/wiki/Arithmetic_coding. @param rpm_data: list to convert in double @return: Converted string c34K|]}t|VdS)N)ord).0chs r zevr_to_float..6s(..2s2ww......rz ThisStrange: rcg|]}|dS)02x)rns r z evr_to_float..:s,,,1qJJ,,,r) isinstanceintextendrstrisdigit NameErrorrjoin)revrelems r evr_to_floatr.'s  C   dC  4 JJ9$?? @ @ @ @ c " " 4t||~~ 4 JJ9#d))DD E E E E c " " 4 JJ..... . . . .2D2233 3 1 77,,,,, - --rr,cd}t|ttfs|g}|D]$}|tt |dzz }%|S)aw Converts epoch, version and release of package to unique string. Ex: ['1', '2.4.4', '34'] -> '810100008102008104008104000081220000' ['0', '2.2.3', '76.el5_9.cloudlinux'] -> 80000081020081020081030000814c00656c00810500810900636c6f75646c696e75780000 @param evr: List from epoch, version and release @return: str for given list r00)r%listtupler.split_segments)r,retis rrr=s[ C cD%= ) )e 66 |N1--..55 Jrstringc|gS|d}d}g}t|D]\}}t||zs$t||zr|}P|||r|||||}||}||dr|||d|S)a Split str of epoch or version or release to numbers and strings. Ex: '76.el5_9.cloudlinux.2' -> ['76', 'el', '5', '9', 'cloudlinux', '2'] @param string: str of epoch or version or release @return: List strings and numbers from EVR Nr) enumerater(r)isalphaisalnumr)r6 prev_symb begin_indexsegmentsr5els rr3r3Ps ~ q IKH6"" ( (2 y2~   & & ( ( C B,?,?,G,G,I,I I  +a- ( ( * * 3 OOF;q=1 2 2 2 ;'  kll##%%.{||,--- OrN) typingrrrrr__all__r&rr.rr3r"rrrAs87777777777777  eCjT%*=M$.4c6k 23.....,uT&\5=&@Af&8F+V r