;
Ιβ"Ic            	   @   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 l m Z m Z m Z m Z m Z m Z Wn e	 k
 o Yn Xd S(   u   Bisection algorithms.i    c             C   s   | d k  o t  d   n | d k o t |   } n xE | | k  o7 | | d } | |  | k  o
 | } q= | d } q= W|  j | |  d S(   uο   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    u   lo must be non-negativei   i   N(   u
   ValueErroru   Noneu   lenu   insert(   u   au   xu   lou   hiu   mid(    (    u#   /mit/python/lib/python3.0/bisect.pyu   insort_right   s    	  
c             C   s   | d k  o t  d   n | d k o t |   } n xE | | k  o7 | | d } | |  | k  o
 | } q= | d } q= W| S(   u  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    u   lo must be non-negativei   i   N(   u
   ValueErroru   Noneu   len(   u   au   xu   lou   hiu   mid(    (    u#   /mit/python/lib/python3.0/bisect.pyu   bisect_right   s      
c             C   s   | d k  o t  d   n | d k o t |   } n xE | | k  o7 | | d } |  | | k  o | d } q= | } q= W|  j | |  d S(   uν   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    u   lo must be non-negativei   i   N(   u
   ValueErroru   Noneu   lenu   insert(   u   au   xu   lou   hiu   mid(    (    u#   /mit/python/lib/python3.0/bisect.pyu   insort_left/   s    	  c             C   s   | d k  o t  d   n | d k o t |   } n xE | | k  o7 | | d } |  | | k  o | d } q= | } q= W| S(   u  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    u   lo must be non-negativei   i   N(   u
   ValueErroru   Noneu   len(   u   au   xu   lou   hiu   mid(    (    u#   /mit/python/lib/python3.0/bisect.pyu   bisect_leftC   s      (   u   bisect_rightu   bisect_leftu   insort_leftu   insort_rightu   insortu   bisectN(
   u   __doc__u   Noneu   insort_rightu   insortu   bisect_rightu   bisectu   insort_leftu   bisect_leftu   _bisectu   ImportError(    (    (    u#   /mit/python/lib/python3.0/bisect.pyu   <module>   s   2