+
    	:ij  c                   s   ^ RI t ^ RIt]P                  ^ ,          ^8H  t]'       d   ]t]tM]t]t ! R R4      t	R t
RR ltR tR t ! R R	4      t]P                  R8  d   R
 tM^ RIHt R t]R8X  d]   ^ RIt]	! ]P(                  RR7      t]P-                  R4       ]! R4       F%  t]P3                  4        ]P4                  ! R4       K'  	  R# R# )    Nc                   s>   a  ] tR t^!t o RR ltRR ltRR ltRtV tR# )	ConsoleProgressBarc                sT    ^ V n         ^ V n        W n        W0n        Wn        RV n        R# )r    FN)blockscurrentsteps	indicatoroutdone)selfr   r   r   s   &&&&2/usr/lib/python3.14/site-packages/sepolgen/util.py__init__ZConsoleProgressBar.__init__"   s&    
"	    Nc                s    R V n         V'       d#   V P                  P                  RV,          4       V P                  P                  R4       R# )Fz
%s:
z3%--10---20---30---40---50---60---70---80---90--100
N)r   r   write)r   Zmessage   &&r	   startZConsoleProgressBar.start*   s2    	HHNN9w./MNr   c                sZ   V ;P                   V,          un         V P                  p\        \        V P                   \	        V P
                  4      ,          ^d,          4      ^,          4      V n        V P                  ^28  d   ^2V n        V P                  V,
          pV P                  P                  V P                  V,          4       V P                  P                  4        V P                  ^28X  d9   V P                  '       g%   RV n
        V P                  P                  R4       R# R# R# )d   TZ
N)r   r   ZintZroundZfloatr   r   r   r   Zflushr   )r   ZnZoldZnew   &&  r	   stepZConsoleProgressBar.step0   s    kk%uTZZ/@ @3 FG!KL;;DKkkCt~~+,;;"TYYYDIHHNN4  &/r   )r   r   r   r   r   r   )r   Z#N)i   )	__name__
__module____qualname____firstlineno__r
   r   r   __static_attributes____classdictcell____classdict__   @r	   r   r   !   s     O! !r   r   c                 s,    . pVP                  V 4       V# r   )Zextend)sls   & r	   set_to_listr   B   s    
AHHQKHr   c                s    \        V 4      '       g   \        R4      hV'       d%   \        V 4      pVP                  4        V^ ,          # V  F  pVu # 	  R# )at  
Return the first element of a set.

It sometimes useful to return the first element from a set but,
because sets are not indexable, this is rather hard. This function
will return the first element from a set. If sorted is True, then
the set will first be sorted (making this an expensive operation).
Otherwise a random element will be returned (as sets are not ordered).
zempty containerN)ZlenZ
IndexErrorr   Zsort)r   Zsortedr   Zxr   r	   firstr   G   sF     q66*++N	tAH r   c                    \         P                  ! 4       p V P                  V4      pV#   \         d    T P                  R4      p T# i ; i)z/Encode given text via preferred system encodingutf-8)localegetpreferredencodingZencodeUnicodeError)textencodingZencoded_text   &  r	   encode_inputr(   \   T     **,H,{{8,   , {{7+,   * A
	A
c                r    )z/Decode given text via preferred system encodingr!   )r"   r#   Zdecoder$   )r%   r&   Zdecoded_textr'   r	   decode_inputr+   i   r)   r*   c                   sN   a  ] tR t^vt o RtR tR tR tR tR t	R t
R tR	tV tR
# )
ComparisonzClass used when implementing rich comparison.

Inherit from this class if you want to have a rich
comparison within the class, afterwards implement
_compare function within your class.c                s    \         # r   )ZNotImplemented)r   otherZmethods   &&&r	   _compareZComparison._compare}   s    r   c                (    V P                  VR  4      # )c                 s
    W8H  # r    ZaZbr   r	   <lambda>Z#Comparison.__eq__.<locals>.<lambda>       r   r.   r   r-   r   r	   __eq__ZComparison.__eq__       }}U$788r   c                r/   )c                 s
    W8  # r   r0   r1   r   r	   r2   Z#Comparison.__lt__.<locals>.<lambda>       r   r4   r5   r   r	   __lt__ZComparison.__lt__       }}U$677r   c                r/   )c                 s
    W8*  # r   r0   r1   r   r	   r2   Z#Comparison.__le__.<locals>.<lambda>   r3   r   r4   r5   r   r	   __le__ZComparison.__le__   r7   r   c                r/   )c                 s
    W8  # r   r0   r1   r   r	   r2   Z#Comparison.__ge__.<locals>.<lambda>   r3   r   r4   r5   r   r	   __ge__ZComparison.__ge__   r7   r   c                r/   )c                 s
    W8  # r   r0   r1   r   r	   r2   Z#Comparison.__gt__.<locals>.<lambda>   r8   r   r4   r5   r   r	   __gt__ZComparison.__gt__   r:   r   c                r/   )c                 s
    W8g  # r   r0   r1   r   r	   r2   Z#Comparison.__ne__.<locals>.<lambda>   r3   r   r4   r5   r   r	   __ne__ZComparison.__ne__   r7   r   r0   N)r   r   r   r   Z__doc__r.   r6   r9   r;   r<   r=   r>   r   r   r   r   r	   r,   r,   v   s2     ,989989 9r   r,   c                s"   a   ! V 3R lR4      pV# )z,Convert a cmp= function into a key= functionc                   sp   <a  ] tR t^t o R tV3R ltV3R ltV3R ltV3R ltV3R lt	V3R lt
RtV tR	# )
zcmp_to_key.<locals>.Kc                s    Wn         R # r   obj)r   r@   Zargss   &&*r	   r
   Zcmp_to_key.<locals>.K.__init__   s    r   c                sD   < S! V P                   VP                   4      ^ 8  # r    r?   r   r-   mycmp   &&r	   r9   Zcmp_to_key.<locals>.K.__lt__       TXXuyy1A55r   c                sD   < S! V P                   VP                   4      ^ 8  # rA   r?   rB   rD   r	   r=   Zcmp_to_key.<locals>.K.__gt__   rE   r   c                sD   < S! V P                   VP                   4      ^ 8H  # rA   r?   rB   rD   r	   r6   Zcmp_to_key.<locals>.K.__eq__       TXXuyy1Q66r   c                sD   < S! V P                   VP                   4      ^ 8*  # rA   r?   rB   rD   r	   r;   Zcmp_to_key.<locals>.K.__le__   rF   r   c                sD   < S! V P                   VP                   4      ^ 8  # rA   r?   rB   rD   r	   r<   Zcmp_to_key.<locals>.K.__ge__   rF   r   c                sD   < S! V P                   VP                   4      ^ 8g  # rA   r?   rB   rD   r	   r>   Zcmp_to_key.<locals>.K.__ne__   rF   r   r?   N)r   r   r   r   r
   r9   r=   r6   r;   r<   r>   r   r   )r   rC   s   @r	   KZcmp_to_key.<locals>.K   s-     667777 7r   rG   r0   )rC   rG   s   f r	   
cmp_to_keyrH      s    	7 	7 r   )rH   c                 s    W8  W8  ,
          # r   r0   )r   Zsecondr   r	   cmprI      s    Nv~..r   Z__main__i  )r   zcomputing pigMbP?)F)i   i   )r"   ZsysZversion_infoZPY3ZbytesZ
bytes_typeZstrZstring_typeZunicoder   r   r   r(   r+   r,   rH   Z	functoolsrI   r   ZtimeZstdoutZpr   ZrangeZir   Zsleepr0   r   r	   <module>rJ      s   &  
 
qQJKJK! !B
*9 98 e& %/ z3::S1AGGN3Z	

5 	 r   