Ñò
mÈKc           @   sš   d  Z  d d d „ Z e Z d d d „ Z e Z d d d „ Z d d d „ Z y2 d d k l Z l Z l Z l Z l Z l Z Wn e	 j
 o n Xd S(	   s   Bisection algorithms.i    c         C   s–   | d j  o t  d ƒ ‚ n | d j o t |  ƒ } n xE | | j  o7 | | d } | |  | j  o
 | } q= | d } q= W|  i | | ƒ d S(   sï   Insert item x in list a, and keep it sorted assuming a is sorted.

    If x is already in a, insert it to the right of the rightmost x.

    Optional args lo (default 0) and hi (default len(a)) bound the
    slice of a to be searched.
    i    s   lo must be non-negativei   i   N(   t
   ValueErrort   Nonet   lent   insert(   t   at   xt   lot   hit   mid(    (    s   /usr/lib/python2.6/bisect.pyt   insort_right   s    	  
c         C   s†   | d j  o t  d ƒ ‚ n | d j o t |  ƒ } n xE | | j  o7 | | d } | |  | j  o
 | } q= | d } q= W| S(   s€  Return the index where to insert item x in list a, assuming a is sorted.

    The return value i is such that all e in a[:i] have e <= x, and all e in
    a[i:] have e > x.  So if x already appears in the list, a.insert(x) will
    insert just after the rightmost x already there.

    Optional args lo (default 0) and hi (default len(a)) bound the
    slice of a to be searched.
    i    s   lo must be non-negativei   i   N(   R    R   R   (   R   R   R   R   R   (    (    s   /usr/lib/python2.6/bisect.pyt   bisect_right   s      
c         C   s–   | d j  o t  d ƒ ‚ n | d j o t |  ƒ } n xE | | j  o7 | | d } |  | | j  o | d } q= | } q= W|  i | | ƒ d S(   sí   Insert item x in list a, and keep it sorted assuming a is sorted.

    If x is already in a, insert it to the left of the leftmost x.

    Optional args lo (default 0) and hi (default len(a)) bound the
    slice of a to be searched.
    i    s   lo must be non-negativei   i   N(   R    R   R   R   (   R   R   R   R   R   (    (    s   /usr/lib/python2.6/bisect.pyt   insort_left/   s    	  c         C   s†   | d j  o t  d ƒ ‚ n | d j o t |  ƒ } n xE | | j  o7 | | d } |  | | j  o | d } q= | } q= W| S(   s€  Return the index where to insert item x in list a, assuming a is sorted.

    The return value i is such that all e in a[:i] have e < x, and all e in
    a[i:] have e >= x.  So if x already appears in the list, a.insert(x) will
    insert just before the leftmost x already there.

    Optional args lo (default 0) and hi (default len(a)) bound the
    slice of a to be searched.
    i    s   lo must be non-negativei   i   N(   R    R   R   (   R   R   R   R   R   (    (    s   /usr/lib/python2.6/bisect.pyt   bisect_leftC   s      iÿÿÿÿ(   R
   R   R   R	   t   insortt   bisectN(
   t   __doc__R   R	   R   R
   R   R   R   t   _bisectt   ImportError(    (    (    s   /usr/lib/python2.6/bisect.pyt   <module>   s   2