a
    Ifu2                    @   s  d Z ddlmZ ejdksJ dd Zeg d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%d&d'd(d)d*d+d,d-d.d/d0d1d2d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBd;d<d=d>d?d@dAdBdCdDdEdFdGdDddHdIdJdKdLdIdMddNdOdPddQdRdSdTdUdVdWdXdUdYdZd[d\d]d^d^d^d_d_d`dadbdcdddedededfdgdhdididjdZdkdldmdnddodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddsddddddddddddddddddddddddddddddddddddddddddddjdZdodkdldd^d_ddd`dmdaddcdddeddddddddiddjdZdodkdldd^d_ddd`dmdaddcdddeddddddddiddjdZdodkdldd^d_ddd`dmdaddcdddeddddddddiddZdoddddaddcddddddddddiddjdZdodkdldd^d_ddd`dmdaddcdddeddddddddiddjdodkdldddd`dmdaddcdddddddddddjdodkdldd_ddd`dmddddddddddjdZdodkdldd^d_ddd`dmdaddcdddeddddddddiddjdZdodkdldd^d_ddd`dmdaddcdddeddddddddiddjdZdodkdldd^d_ddd`dmdaddcdddeddddddddiddjdZdodkdldd^d_ddd`dmdaddcdddeddddddddiddjdZdodkdldd^d_ddd`dmdaddcdddeddddddddiddjdZdodkdldd^d_ddd`dmdaddcdddeddddddddidddnddddddddddddddddddddddddddnddddddddddddddddddddddddddnddddddddddddddddddddddddddnddddddddddddddddddddddddddndd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g d΢eeddЃ 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g deedd eedd҃ Zdd Zedgeedd Zdd Zdd Zdd Z dS )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vS )NZCnF        r   )unicodedatacategoryordcodec r   lib/python3.9/stringprep.pyin_table_a1   s    r   )   iO  i  i  i  i  i         `     i   i  c                 C   s   t | tv 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 ur|S |  S r   )b3_exceptionsgetr
   lower)r   r!   r   r   r   map_table_b3   s    r<   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   )r<   ).0Zchr   r   r   
<listcomp>       z map_table_b2.<locals>.<listcomp>)r<   r   Z	normalizejoin)r,   Zalr#   Zblr   r   r   r   map_table_b2   s    rB   c                 C   s   | dkS )N r   r   r   r   r   in_table_c11   s    rD   c                 C   s   t | dko| dkS )NZsrC   r   r	   r   r   r   r   in_table_c12   s    rG   c                 C   s   t | dkS )NrE   rF   r   r   r   r   in_table_c11_c12   s    rH   c                 C   s   t | dk ot| dkS )N   Cc)r
   r   r	   r   r   r   r   in_table_c21   s    rK   )i  i  i  r   r   i(   i)   r   r   id   ij   ip   i  i  is i{ c                 C   s.   t | }|dk rdS t| dkr&dS |tv S )NrI   FrJ   T)r
   r   r	   c22_specialsr   r   r   r   in_table_c22   s    rM   c                 C   s   t | dkpt| tv S )NrJ   )r   r	   r
   rL   r   r   r   r   in_table_c21_c22   s    
rN   c                 C   s   t | dkS )NZCorF   r   r   r   r   in_table_c3   s    rO   c                 C   s0   t | }|dk rdS |dk r dS t | d@ dv S )Nr   Fr   Tr   r   )r
   r   r   r   r   in_table_c4   s    rP   c                 C   s   t | dkS )NZCsrF   r   r   r   r   in_table_c5   s    rQ   r   c                 C   s   t | tv S r   )r
   c6_setr   r   r   r   in_table_c6   s    rS   i/  i/  c                 C   s   t | tv S r   )r
   c7_setr   r   r   r   in_table_c7   s    rU   )i@  iA  i   i   i*   i/   c                 C   s   t | tv S r   )r
   c8_setr   r   r   r   in_table_c8  s    rW   i  i   i  c                 C   s   t | tv S r   )r
   c9_setr   r   r   r   in_table_c9  s    rY   c                 C   s   t | dv S )N)RZALr   Zbidirectionalr   r   r   r   in_table_d1  s    r\   c                 C   s   t | dkS )NLr[   r   r   r   r   in_table_d2  s    r^   N)!__doc__r   r   Zunidata_versionr   setlistranger   r   r9   r<   rB   rD   rG   rH   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r\   r^   r   r   r   r   <module>   s    &D(