U
    adu2                    @   s  d Z ddlmZ ejdkstdd Zedddd	d
ddddddgeedd Z	dd Z
dddddddddddd d!d"d#d$d%d&d'd(dd)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDd=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdEdFdGdHdIdJdKdLdMdNdOdPdQdNddRdSdTdUdVdSdWddXdYdZdd[d\d]d^d_d`dadbd_dcdddedfdgdhdhdhdididjdkdldmdndodododpdqdrdsdsdtdddudvdwdxd&dydzd{d|d}d~ddddddddddddddd}ddddddddddddddddddddddddddddddddddddddddddddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsddddyddddkddmdnddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdydudvddddjdwdkddmdndddddddddtdydudvddidddjdwddddddddddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsddtdddydudvddhdidddjdwdkddmdndoddddddddsdd dxdd)ddd!dd'dddddd&d(d!ddd"d%dddddd dxdd)ddd!dd'dddddd&d(d!ddd"d%dddddd dxdd)ddd!dd'dddddd&d(d!ddd"d%dddddd dxdd)ddd!dd'dddddd&d(d!ddd"d%dddddd dxdd)ddd!dd'dddddd&d(d!ddd"d%dddddːZdd̈́ Zddτ Zddф Zddӄ ZddՄ Zddׄ Zeddddddddgeedd݃ eedd߃ eedd eedd Zdd Zdd Zdd Zdd Zdd ZeeddZdd ZeeddZdd Zeddddgeedd eedd߃ Zdd Zedgeedd Zd d Zdd Z dd Z!dS (  zLibrary 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.
    )	ucd_3_2_0z3.2.0c                 C   sB   t | dkrdS t| }d|  kr.dk r6n ndS |d@ dkS )NZCnF        r   )unicodedatacategoryordcodec r    /usr/lib/python3.8/stringprep.pyin_table_a1   s      r      iO  i  i  i  i  i   i   i   i`   i  i   i  c                 C   s   t | tkS N)r
   b1_setr   r   r   r   in_table_b1   s    r   u   μZssu   i̇u   ʼnsu   ǰu   ιu    ιu   ΐu   ΰu   σu   βu   θu   υu   ύu   ϋu   φu   πu   κu   ρu   εu   եւu   ẖu   ẗu   ẘu   ẙu   aʾu   ṡu   ὐu   ὒu   ὔu   ὖu   ἀιu   ἁιu   ἂιu   ἃιu   ἄιu   ἅιu   ἆιu   ἇιu   ἠιu   ἡιu   ἢιu   ἣιu   ἤιu   ἥιu   ἦιu   ἧιu   ὠιu   ὡιu   ὢιu   ὣιu   ὤιu   ὥιu   ὦιu   ὧιu   ὰιu   αιu   άιu   ᾶu   ᾶιu   ὴιu   ηιu   ήιu   ῆu   ῆιu   ῒu   ῖu   ῗu   ῢu   ῤu   ῦu   ῧu   ὼιu   ωιu   ώιu   ῶu   ῶιZrsr   u   °cu   ɛu   °fhilnZnopqrZsmZtelZtmzbefmu   γdZhpaZauZovZpaZnau   μaZmaZkaZkbZmbZgbZpfZnfu   μfhzZkhzZmhzZghzZthzZkpaZmpaZgpaZpvZnvu   μvZmvZkvZpwZnwu   μwZmwkwu   kωu   mωZbqu   c∕kgzco.ZdbZgyZhpZkkZkmZphZppmZprZsvwbZffZfiZflZffiZfflstu   մնu   մեu   միu   վնu   մխagjkotuvwxyu   αu   δu   ζu   ηu   λu   νu   ξu   οu   τu   χu   ψu   ω(        i0  iI  i  i  iE  iz  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  iP  iR  iT  iV  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!  i !  i!!  i"!  i$!  i(!  i,!  i-!  i0!  i1!  i3!  i>!  i?!  iE!  iq3  is3  iu3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  i3  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 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 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/ 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   s"   t t| }|d k	r|S |  S r   )b3_exceptionsgetr
   lower)r   r   r   r   r   map_table_b3   s     r8   c                 C   sH   t | }td|}ddd |D }td|}||kr@|S |S d S )NZNFKC c                 S   s   g | ]}t |qS r   )r8   ).0Zchr   r   r   
<listcomp>   s     z map_table_b2.<locals>.<listcomp>)r8   r   Z	normalizejoin)r(   Zalr   Zblr   r   r   r   map_table_b2   s    r=   c                 C   s   | dkS )N r   r   r   r   r   in_table_c11   s    r?   c                 C   s   t | dko| dkS )NZsr>   r   r	   r   r   r   r   in_table_c12   s    rB   c                 C   s   t | dkS )Nr@   rA   r   r   r   r   in_table_c11_c12   s    rC   c                 C   s   t | dk ot| dkS )N   Cc)r
   r   r	   r   r   r   r   in_table_c21   s    rF   i  i  i  i(   i)   id   ij   ip   i  i  is i{ c                 C   s.   t | }|dk rdS t| dkr&dS |tkS )NrD   FrE   T)r
   r   r	   c22_specialsr   r   r   r   in_table_c22   s      rH   c                 C   s   t | dkpt| tkS )NrE   )r   r	   r
   rG   r   r   r   r   in_table_c21_c22   s    
rI   c                 C   s   t | dkS )NZCorA   r   r   r   r   in_table_c3   s    rJ   c                 C   s0   t | }|dk rdS |dk r dS t | d@ dkS )Nr   Fr   Tr   r   )r
   r   r   r   r   in_table_c4   s      rK   c                 C   s   t | dkS )NZCsrA   r   r   r   r   in_table_c5   s    rL   r   c                 C   s   t | tkS r   )r
   c6_setr   r   r   r   in_table_c6   s    rN   i/  i/  c                 C   s   t | tkS r   )r
   c7_setr   r   r   r   in_table_c7   s    rP   i@  iA  i   i   i*   i/   c                 C   s   t | tkS r   )r
   c8_setr   r   r   r   in_table_c8  s    rR   i  i   i  c                 C   s   t | tkS r   )r
   c9_setr   r   r   r   in_table_c9  s    rT   c                 C   s   t | dkS )N)RZALr   Zbidirectionalr   r   r   r   in_table_d1  s    rW   c                 C   s   t | dkS )NLrV   r   r   r   r   in_table_d2  s    rY   N)"__doc__r   r   Zunidata_versionAssertionErrorr   setlistranger   r   r5   r8   r=   r?   rB   rC   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rW   rY   r   r   r   r   <module>   sP  ,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         &P,