§
    ÎÁ³gj  ã                   ó¦   — d Z ddlZddlmZmZ dee         deedf         fd„Zded	edefd
„Zdedeeef         fd„Zdedeedf         de	fd„Z
dS )a	  
Given a list of integers, made up of (hopefully) a small number of long runs
of consecutive integers, compute a representation of the form
((start1, end1), (start2, end2) ...). Then answer the question "was x present
in the original list?" in time O(log(# runs)).
é    N)ÚListÚTupleÚlist_Úreturn.c                 ój  — t          | ¦  «        }g }d}t          t          |¦  «        ¦  «        D ]u}|dz   t          |¦  «        k     r||         ||dz            dz
  k    rŒ1||dz   |dz   …         }|                     t	          |d         |d         dz   ¦  «        ¦  «         |}Œvt          |¦  «        S )a  Represent a list of integers as a sequence of ranges:
    ((start_0, end_0), (start_1, end_1), ...), such that the original
    integers are exactly those x such that start_i <= x < end_i for some i.

    Ranges are encoded as single integers (start << 32 | end), not as tuples.
    éÿÿÿÿé   r   )ÚsortedÚrangeÚlenÚappendÚ_encode_rangeÚtuple)r   Úsorted_listÚrangesÚ
last_writeÚiÚcurrent_ranges         úL/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/idna/intranges.pyÚintranges_from_listr      sÄ   € õ ˜‘-”-€KØ€FØ€JÝ•3�{Ñ#Ô#Ñ$Ô$ð ð ˆØˆq‰5•3�{Ñ#Ô#Ò#Ð#Ø˜1Œ~ ¨Q°©UÔ!3°aÑ!7Ò7Ð7ØØ# J°¡N°Q¸±UÐ$:Ô;ˆØ�Š•m M°!Ô$4°mÀBÔ6GÈ!Ñ6KÑLÔLÑMÔMÐMØˆ
ˆ
å�‰=Œ=Ðó    ÚstartÚendc                 ó   — | dz  |z  S )Né    © )r   r   s     r   r   r   "   s   € Ø�R‰K˜3ÑÐr   Úrc                 ó   — | dz	  | dz  fS )Nr   l   ÿÿ r   )r   s    r   Ú_decode_ranger   &   s   € Ø�‰G�q˜MÑ*Ð+Ð+r   Úint_r   c                 ó  — t          | d¦  «        }t          j        ||¦  «        }|dk    r-t          ||dz
           ¦  «        \  }}|| cxk    r|k     rn ndS |t	          |¦  «        k     r t          ||         ¦  «        \  }}|| k    rdS dS )z=Determine if `int_` falls into one of the ranges in `ranges`.r   r	   TF)r   ÚbisectÚbisect_leftr   r   )r    r   Útuple_ÚposÚleftÚrightÚ_s          r   Úintranges_containr)   *   s§   € å˜4 Ñ#Ô#€FÝ
Ô
˜V VÑ
,Ô
,€Cð ˆQ‚w€wÝ# F¨3°©7¤OÑ4Ô4‰ˆˆeØ�4ÐÐÒÐ˜%ÒÐÐÐÐØ�4à
�S�‰[Œ[ÒÐÝ  s¤Ñ,Ô,‰ˆˆaØ�4Š<ˆ<Ø�4Øˆ5r   )Ú__doc__r"   Útypingr   r   Úintr   r   r   Úboolr)   r   r   r   ú<module>r.      sî   ððð ð €€€Ø Ð Ð Ð Ð Ð Ð Ð ð˜t Cœyð ¨U°3¸°8¬_ð ð ð ð ð,˜ð  3ð ¨3ð ð ð ð ð,�Sð ,˜U 3¨ 8œ_ð ,ð ,ð ,ð ,ð˜Cð ¨¨s°C¨x¬ð ¸Tð ð ð ð ð ð r   