
"Ic           @   s  d  Z  d d k l Z d   Z e d d d d d d	 d
 d d d d g e d d   Z d   Z hd d 6d d 6d d 6d d 6d d 6d d 6d d 6d  d! 6d" d# 6d$ d% 6d& d' 6d( d) 6d* d+ 6d, d- 6d. d/ 6d0 d1 6d2 d3 6d4 d5 6d6 d7 6d8 d9 6d& d: 6d; d< 6d= d> 6d? d@ 6dA dB 6dC dD 6dE dF 6dG dH 6dI dJ 6dK dL 6dM dN 6dO dP 6dQ dR 6dS dT 6dU dV 6dW dX 6dY dZ 6d[ d\ 6d] d^ 6d_ d` 6da db 6dS dc 6dU dd 6dW de 6dY df 6d[ dg 6d] dh 6d_ di 6da dj 6dk dl 6dm dn 6do dp 6dq dr 6ds dt 6du dv 6dw dx 6dy dz 6dk d{ 6dm d| 6do d} 6dq d~ 6ds d 6du d 6dw d 6dy d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d" d 6d d 6d d 6d d 6d$ d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d4 d 6dd6dd6dd6dd6d	d
6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd 6d!d"6d#d$6d%d&6d'd(6d	d)6d*d+6d,d-6d.d/6d0d16d2d36d4d56d6d76d8d96d6d:6d;d<6d=d>6d?d@6dAdB6dCdD6dAdE6dFdG6dHdI6dJdK6dLdM6dNdO6dPdQ6dRdS6dTdU6dVdW6dXdY6dZd[6d\d]6d^d_6d`da6dbdc6ddde6dfdg6dhdi6djdk6dldm6dndo6dndp6dqdr6dsdt6dudv6dwdx6dydz6d{d|6d d}6d d~6dd6d d6d d6dd6d d6d d6dd6dd6d d6d d6d d6dd6d d6d d6d d6d d6dd6dd6dd6dd6dd6dd6d d6d{d6d d6d d6dd6d d6d d6dd6d d6d d6dd6dd6d d6d d6d d6dd6d d6d d6d d6d d6dd6dd6dd6dd6dd6dd6d d6d{d6d d6d d6dd6d d6d d6dd6d d6d d6dd6dd6d d6d d6d d6dd6d d6d d6d d6d d6dd6dd6dd6dd6dd6dd6d d6d{d6d d6dd6dd6dd6dd6d d6dd6d d6d d6d d6dd6dd6dd6dd6dd6dd6d d6d{d6d d6d d6dd6d d6d d6dd6d d6d d6dd6dd6d d6d d6d d6dd6d d6d d6d d6d d6dd6dd6dd6dd6dd6dd6d d6d{d 6d d6dd6d d6d d6dd6dd6dd6d d6d d	6d d
6dd6d d6d d6d d6dd6dd6dd6dd6dd6dd6d{d6d d6dd6d d6d d6dd6d d6dd6dd6d d6d d6dd 6d d!6dd"6dd#6dd$6dd%6dd&6dd'6d{d(6d d)6d d*6dd+6d d,6d d-6dd.6d d/6d d06dd16dd26d d36d d46d d56dd66d d76d d86d d96d d:6dd;6dd<6dd=6dd>6dd?6dd@6d dA6d{dB6d dC6d dD6ddE6d dF6d dG6ddH6d dI6d dJ6ddK6ddL6d dM6d dN6d dO6ddP6d dQ6d dR6d dS6d dT6ddU6ddV6ddW6ddX6ddY6ddZ6d d[6d{d\6d d]6d d^6dd_6d d`6d da6ddb6d dc6d dd6dde6ddf6d dg6d dh6d di6ddj6d dk6d dl6d dm6d dn6ddo6ddp6ddq6ddr6dds6ddt6d du6d{dv6d dw6d dx6ddy6d dz6d d{6dd|6d d}6d d~6dd6dd6d d6d d6d d6dd6d d6d d6d d6d d6dd6dd6dd6dd6dd6dd6d d6d{d6d d6d d6dd6d d6d d6dd6d d6d d6dd6dd6d d6d d6d d6dd6d d6d d6d d6d d6dd6dd6dd6dd6dd6dd6d d6d{d6d d6d d6dd6d d6d d6dd6d d6d d6dd6dd6d d6d d6d d6dd6d d6d d6d d6d d6dd6dd6dd6dd6dd6dd6d d6dd6d( d6d d6dd6d; d6dd6dd6d* d6d d6d6 d6dd6d d6dd6dd6dd6d4 d6d8 d6d* d6d& d6dd6d, d6d2 d6dd6dd6dd6d& d6dd6d( d6d d6dd6d; d6dd6dd6d* d6d d6d6 d6dd6d d6dd6dd6dd6d4 d6d8 d6d* d6d& d6dd6d, d6d2 d6dd 6dd6dd6d& d6dd6d( d6d d6dd6d; d6dd	6dd
6d* d6d d6d6 d6dd6d d6dd6dd6dd6d4 d6d8 d6d* d6d& d6dd6d, d6d2 d6dd6dd6dd6d& d6dd6d( d6d d 6dd!6d; d"6dd#6dd$6d* d%6d d&6d6 d'6dd(6d d)6dd*6dd+6dd,6d4 d-6d8 d.6d* d/6d& d06dd16d, d26d2 d36dd46dd56dd66d& d76dd86d( d96d d:6dd;6d; d<6dd=6dd>6d* d?6d d@6d6 dA6ddB6d dC6ddD6ddE6ddF6d4 dG6d8 dH6d* dI6d& dJ6ddK6d, dL6d2 dM6ddN6ddO6ddP6d& dQ6Z dR  Z	 dS  Z
 dT  Z dU  Z dV  Z dW  Z e dXdYdZd d d[d\d g e d d] e d^d_ e d`da e dbdc  Z dd  Z de  Z df  Z dg  Z dh  Z e e d`di  Z dj  Z e e dkdl  Z dm  Z e dndodpdqg e drds e d^d_  Z dt  Z e dug e dvdw  Z dx  Z dy  Z dz  Z d{S(|  s   Library that exposes various tables found in the StringPrep RFC 3454.

There are two kinds of tables: sets, for which a member test is provided,
and mappings, for which a mapping function is provided.
i(   t	   ucd_3_2_0c         C   sX   t  i |   d j o t St |   } d | j o
 d j  n o t S| d @d j S(   Nt   Cni  i  i  i  (   i  i  (   t   unicodedatat   categoryt   Falset   ord(   t   codet   c(    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_a1   s      i   iO  i  i  i  i  i   i   i   i`   i  i   i  c         C   s   t  |   t j S(   N(   R   t   b1_set(   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_b1   s    u   μi   u   ssi   u   i̇i0  u   ʼniI  u   si  u   ǰi  u   ιiE  u    ιiz  u   ΐi  u   ΰi  u   σi  u   βi  u   θi  u   υi  u   ύi  u   ϋi  u   φi  u   πi  u   κi  u   ρi  i  u   εi  u   եւi  u   ẖi  u   ẗi  u   ẘi  u   ẙi  u   aʾi  u   ṡi  u   ὐiP  u   ὒiR  u   ὔiT  u   ὖiV  u   ἀιi  u   ἁιi  u   ἂιi  u   ἃιi  u   ἄιi  u   ἅιi  u   ἆιi  u   ἇιi  i  i  i  i  i  i  i  i  u   ἠιi  u   ἡιi  u   ἢιi  u   ἣιi  u   ἤιi  u   ἥιi  u   ἦιi  u   ἧιi  i  i  i  i  i  i  i  i  u   ὠιi  u   ὡιi  u   ὢιi  u   ὣιi  u   ὤιi  u   ὥιi  u   ὦιi  u   ὧιi  i  i  i  i  i  i  i  i  u   ὰιi  u   αιi  u   άιi  u   ᾶi  u   ᾶιi  i  i  u   ὴιi  u   ηιi  u   ήιi  u   ῆi  u   ῆιi  i  u   ῒi  i  u   ῖi  u   ῗi  u   ῢi  i  u   ῤi  u   ῦi  u   ῧi  u   ὼιi  u   ωιi  u   ώιi  u   ῶi  u   ῶιi  i  u   rsi   u   ci!  u   °ci!  u   ɛi!  u   °fi	!  u   hi!  i!  i!  u   ii!  i!  u   li!  u   ni!  u   noi!  u   pi!  u   qi!  u   ri!  i!  i!  u   smi !  u   teli!!  u   tmi"!  u   zi$!  i(!  u   bi,!  i-!  u   ei0!  u   fi1!  u   mi3!  u   γi>!  i?!  u   diE!  u   hpaiq3  u   auis3  u   oviu3  u   pai3  u   nai3  u   μai3  u   mai3  u   kai3  u   kbi3  u   mbi3  u   gbi3  u   pfi3  u   nfi3  u   μfi3  u   hzi3  u   khzi3  u   mhzi3  u   ghzi3  u   thzi3  i3  u   kpai3  u   mpai3  u   gpai3  u   pvi3  u   nvi3  u   μvi3  u   mvi3  u   kvi3  i3  u   pwi3  u   nwi3  u   μwi3  u   mwi3  u   kwi3  i3  u   kωi3  u   mωi3  u   bqi3  u   c∕kgi3  u   co.i3  u   dbi3  u   gyi3  u   hpi3  u   kki3  u   kmi3  u   phi3  u   ppmi3  u   pri3  u   svi3  u   wbi3  u   ffi   u   fii  u   fli  u   ffii  u   ffli  u   sti  i  u   մնi  u   մեi  u   միi  u   վնi  u   մխi  u   ai  i i i i i u   gi i i u   ji	 u   ki
 i i i u   oi i i i i u   ti u   ui u   vi u   wi u   xi u   yi i i4 i5 i6 i7 i8 i9 i: i; i< i= i> i? i@ iA iB iC iD iE iF iG iH iI iJ iK iL iM ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz i{ i| i} i~ i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i	 i
 i i i i i i i i i i i i i i i i8 i9 i; i< i= i> i@ iA iB iC iD iF iJ iK iL iM iN iO iP il im in io ip iq ir is it iu iv iw ix iy iz i{ i| i} i~ i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i	 i
 i i i i i i i i i i i i i i i i i i i i i i  i! i< i= i> i? i@ iA iB iC iD iE iF iG iH iI iJ iK iL iM iN iO iP iQ iR iS iT iU ip iq ir is it iu iv iw ix iy iz i{ i| i} i~ i i i i i i i i i i i u   αi i i u   δi i u   ζi u   ηi i i i u   λi i u   νi u   ξi u   οi i i i i u   τi i i u   χi u   ψi u   ωi i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i  i! i" i# i$ i% i& i' i( i) i* i+ i, i- i. i/ i0 i1 i2 i3 i4 iG iV iW iX iY iZ i[ i\ i] i^ i_ i` ia ib ic id ie if ig ih ii ij ik il im in i i i i i i i i i i i i i i i i i i i i i i i i i i i c         C   s1   t  i t |    } | d  j	 o | S|  i   S(   N(   t   b3_exceptionst   getR   t   Nonet   lower(   R   t   r(    (    s'   /mit/python/lib/python2.6/stringprep.pyt   map_table_b3   s     c         C   sz   t  |   } t i d |  } d i g  } | D] } | t  |  q/ ~  } t i d |  } | | j o | S| Sd  S(   Nt   NFKCu    (   R   R   t	   normalizet   join(   t   at   alt   bt   _[1]t   cht   blR   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   map_table_b2   s    0c         C   s
   |  d j S(   Nu    (    (   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_c11   s    c         C   s    t  i |   d j o
 |  d j S(   Nt   Zsu    (   R   R   (   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_c12   s    c         C   s   t  i |   d j S(   NR   (   R   R   (   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_c11_c12   s    c         C   s&   t  |   d j  o t i |   d j S(   Ni   t   Cc(   R   R   R   (   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_c21   s    i  i  i  i(   i)   id   ij   ip   i  i  is i{ c         C   sC   t  |   } | d j  o t St i |   d j o t S| t j S(   Ni   R   (   R   R   R   R   t   Truet   c22_specials(   R   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_c22   s      c         C   s&   t  i |   d j p t |   t j S(   NR   (   R   R   R   R"   (   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_c21_c22   s    c         C   s   t  i |   d j S(   Nt   Co(   R   R   (   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_c3   s    c         C   sD   t  |   } | d j  o t S| d j  o t St  |   d @d j S(   Ni  i  i  i  (   i  i  (   R   R   R!   (   R   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_c4   s      c         C   s   t  i |   d j S(   Nt   Cs(   R   R   (   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_c5   s    i  c         C   s   t  |   t j S(   N(   R   t   c6_set(   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_c6   s    i/  i/  c         C   s   t  |   t j S(   N(   R   t   c7_set(   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_c7   s    i@  iA  i   i   i*   i/   c         C   s   t  |   t j S(   N(   R   t   c8_set(   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_c8  s    i  i   i  c         C   s   t  |   t j S(   N(   R   t   c9_set(   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_c9  s    c         C   s   t  i |   d j S(   Nt   Rt   AL(   R2   R3   (   R   t   bidirectional(   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_d1  s    c         C   s   t  i |   d j S(   Nt   L(   R   R4   (   R   (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   in_table_d2  s    N(   t   __doc__R   R    R   t   sett   rangeR	   R
   R   R   R   R   R   R   R    R"   R#   R$   R&   R'   R)   R*   R+   R,   R-   R.   R/   R0   R1   R5   R7   (    (    (    s'   /mit/python/lib/python2.6/stringprep.pyt   <module>   s|  	:							X							2			