a
    al                     @   s<  d dl mZ d dlmZ G dd deZG dd deZG dd deZG d	d
 d
eZG dd deZ	G dd deZ
G dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd  d eZG d!d" d"eZG d#d$ d$eZG d%d& d&eZG d'd( d(eZG d)d* d*eZG d+d, d,eZG d-d. d.eZG d/d0 d0eZG d1d2 d2eZG d3d4 d4eZG d5d6 d6eZG d7d8 d8eZG d9d: d:eZ G d;d< d<eZ!G d=d> d>eZ"G d?d@ d@eZ#G dAdB dBeZ$G dCdD dDeZ%G dEdF dFeZ&dGS )H   )BaseStemmer)Amongc                   @   sP
  e Zd ZdZedddedddedddedddeddded	dded
ddedddedddedddedddedddedddedddedddedddedddedddeddd ed!dd"ed#dd$ed%dd$ed&dd'ed(dd'ed)dd*ed+dd*ed,dd-ed.dd-ed/dd0ed1dd0ed2dd0ed3dd0ed4dd5ed6dd5ed7dd8ed9dd8ed:dd8ed;dd8ed<dd=ed>dd=ed?dd@edAdd@edBdd@edCdd@edDddEedFddEedGddEedHddEedIddJedKddJedLddJedMddJedNddOedPddOedQddOedRddOedSddTedUddTedVddTedWddTedXddYedZddYed[dd\ed]dd\ed^dd_ed`dd_edaddbedcddbeddddeedfddeedgddeedhddeediddjedkddjedlddjedmddjednddoedpddoedqddoedrddoedsddteduddtedvddtedwddtedxddyedzddyed{ddyed|ddyed}dd~eddd~eddd~eddd~edddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddăedddăgZedddedddedddedddedddgZedddedddedddedddedddgZedddedddedddedddgZedddedddedddedddedddgZ	edddedddgZ
edddedddedddedddgZedddedddedddedddgZedddedddedddedddgZedddedddedddgZedddedddedddedddedddedddedddedddedddedddg
ZedddgZedddedddedddgZedddgZedddgZedddgZedddgZedddedddedddedddedddedddedddedddedddedddedddedddgZedddedddedddedddedddedddedddedddedddedddedddgZedddedddgZedddedddgZedddgZdZdZdZdd  Zdd Zdd Z dd Z!dd Z"d	d
 Z#dd Z$dd Z%dd Z&dd Z'dd Z(dd Z)dd Z*dd Z+dd Z,dd Z-dd  Z.d!d" Z/d#d$ Z0d%d& Z1d'd( Z2d)d* Z3d+S (,  ArabicStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    u   ـr   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   ﺠ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   ﻓ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   ﻵ3   u   ﻶu   ﻷ1   u   ﻸu   ﻹ2   u   ﻺu   ﻻ0   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   تمو   ىFc                 C   sT  | j }z,| j }zz| j }z| j | _| tj}|dkrDt | j | _|dkrl|  shW W W W dS n@|dkr| dsW W W W dS n|dkr| dsW W W W dS n|dkr| d	sW W W W dS n|d
kr| dsW W W W dS n|dkr| dsW W W W dS n|dkr@| dsW W W W dS nl|dkrf| dsW W W W dS nF|dkr| dsW W W W dS n |dkr| dsW W W W dS n|dkr| dsW W W W dS n|dkr| dsW W W W dS n|dkr$| dsW W W W dS n|dkrJ| dsW W W W dS nb|dkrp| dsW W W W dS n<|d kr| d!sW W W W dS n|d"kr| d#sW W W W dS n|d$kr| d%sW W W W dS n|d&kr| d'sW W W W dS n|d(kr.| d)sW W W W dS n~|d*krT| d+sW W W W dS nX|d,krz| d-sW W W W dS n2|d.kr| d/sW W W W dS n|d0kr| d1sW W W W dS n|d2kr| d3sW W W W dS n|d4kr| d5sW W W W dS n|d6kr8| d7sW W W W dS nt|d8kr^| d9sW W W W dS nN|d:kr| d;sW W W W dS n(|d<kr| d=sW W W W dS n|d>kr| d?sW W W W dS n|d@kr| dAsW W W W dS n|dBkr| dCsW W W W dS n|dDkrB| dEsW W W W dS nj|dFkrh| dGsW W W W dS nD|dHkr| dIsW W W W dS n|dJkr| dKsW W W W dS n|dLkr| dMsW W W W dS n|dNkr | dOsW W W W dS n|dPkr&| dQsW W W W dS n|dRkrL| dSsW W W W dS n`|dTkrr| dUsW W W W dS n:|dVkr| dWsW W W W dS n|dXkr| dYsW W W W dS n|dZkr| d[sW W W W dS n|d\kr| d]sW W W W dS n|d^kr(| d_sW W W W dS n|d`krL| dasW W W W dS n`|dbkrp| dcsW W W W dS n<|ddkr| desW W W W dS n| dfsW W W W dS t	 W n ty   Y n0 || _ | j | j
krt |  j d7  _ W n t	y   Y n0 W q
W n ty$   Y n0 || _ q2q
W n tyH   Y n0 || _ dgS )hNr@   r   Fr   0r   1r   2r	   3r
   4r   5r   6r   7r   8r   9r      ءr   r9   r   r;   r   r<   r   r8   r   r:   r   rE   r   r?   r   rG   r   rF   r   u   ثr   u   جr   u   حr   u   خr   u   دr   u   ذr    u   رr!   u   زr"   u   سr#   u   شr$   u   صr%   u   ضr&   u   طr'   u   ظr(   u   عr)   u   غr*   r=   r+   u   قr,   rA   r-   u   لr.   u   مr/   rD   r0   rB   r1   r>   r2   rH   r3   rC   r7   u   لاr5   u   لأr6   u   لإu   لآT)cursorbra
find_amongr   a_0lab3ket	slice_del
slice_fromlab2limitlab1lab0)selfv_1v_2v_3	among_var re   =lib/python3.9/site-packages/snowballstemmer/arabic_stemmer.pyZ__r_Normalize_pre5  sd   


















































zArabicStemmer.__r_Normalize_prec                 C   s  | j }zR| j | _| j| _ | j | _| tjdkr6t | j | _| 	dsNW dS | j| _ W n tyj   Y n0 || _ | j }z| j }zz| j }z| j | _| 
tj}|dkrt | j | _|dkr| 	dsW W W W dS n8|dkr| 	dsW W W W dS n| 	dsW W W W dS t W n ty,   Y n0 || _ | j | jkrHt |  j d7  _ W n tyl   Y n0 W q|W n ty   Y n0 || _ qq|W n ty   Y n0 || _ d	S )
Nr@   rS   Fr   rE   r   r>   rC   T)rT   limit_backwardr]   rY   find_among_br   a_1r_   rU   r[   rV   a_2lab4rX   r\   r^   )r`   ra   rb   rc   v_4rd   re   re   rf   Z__r_Normalize_post  s^    




z ArabicStemmer.__r_Normalize_postc                 C   s~   | j | _| tj}|dkr dS | j | _|dkrVt| jdksBdS d| _d| _	d| _
n$t| jdkshdS d| _d| _	d| _
dS )Nr@   Fr   r   Tr   )rT   rU   rV   r   a_3rY   lencurrent	B_is_noun	B_is_verbB_is_definedr`   rd   re   re   rf   Z__r_Checks1  s"    zArabicStemmer.__r_Checks1c                 C   s   | j | _| tj}|dkr dS | j | _|dkrRt| jdksBdS | dsdS nt|dkr|t| jdksldS | dsdS nJ|dkrt| jdksdS | dsdS n t| jdksdS | d	sdS d
S )Nr@   Fr   r   r9   r   r8   rE   r;   T)	rT   rU   rV   r   a_4rY   rn   ro   r[   rs   re   re   rf   Z__r_Prefix_Step13  s2    



zArabicStemmer.__r_Prefix_Step1c                 C   s|   | j | _| tjdkrdS | j | _t| jdks6dS | j }z| dsNt	 W dS  t	yd   Y n0 || _ | 
 sxdS dS )Nr@   Fr   rE   T)rT   rU   rV   r   a_5rY   rn   ro   Zeq_sr_   rZ   )r`   ra   re   re   rf   Z__r_Prefix_Step2O  s     
zArabicStemmer.__r_Prefix_Step2c                 C   sr   | j | _| tj}|dkr dS | j | _|dkrPt| jdksBdS |  sndS nt| jdksbdS |  sndS dS )Nr@   Fr   r	   r   T)	rT   rU   rV   r   a_6rY   rn   ro   rZ   rs   re   re   rf   Z__r_Prefix_Step3a_Nounb  s    z$ArabicStemmer.__r_Prefix_Step3a_Nounc                 C   s   | j | _| tj}|dkr dS | j | _|dkrPt| jdksBdS |  sdS nR|dkrzt| jdksjdS | 	dsdS n(|dkrt| jdksdS | 	dsdS dS )	Nr@   Fr   r   r   r?   rA   T)
rT   rU   rV   r   a_7rY   rn   ro   rZ   r[   rs   re   re   rf   Z__r_Prefix_Step3b_Nounv  s*    

z$ArabicStemmer.__r_Prefix_Step3b_Nounc                 C   s   | j | _| tj}|dkr dS | j | _|dkrRt| jdksBdS | dsdS nt|dkr|t| jdksldS | dsdS nJ|dkrt| jdksdS | d	sdS n t| jdksdS | d
sdS dS )Nr@   Fr   r   rC   r   rF   r   rD   r9   T)	rT   rU   rV   r   a_8rY   rn   ro   r[   rs   re   re   rf   Z__r_Prefix_Step3_Verb  s2    



z#ArabicStemmer.__r_Prefix_Step3_Verbc                 C   sT   | j | _| tjdkrdS | j | _t| jdks6dS d| _d| _	| 
dsPdS dS )Nr@   Fr   Tu   است)rT   rU   rV   r   a_9rY   rn   ro   rq   rp   r[   r`   re   re   rf   Z__r_Prefix_Step4_Verb  s    
z#ArabicStemmer.__r_Prefix_Step4_Verbc                 C   s   | j | _| tj}|dkr dS | j | _|dkrPt| jdksBdS |  sdS nF|dkrxt| jdksjdS |  sdS nt| jdksdS |  sdS dS 	Nr@   Fr   r   r   r	   r
   T)	rT   rY   rh   r   a_10rU   rn   ro   rZ   rs   re   re   rf   Z__r_Suffix_Noun_Step1a  s(    z$ArabicStemmer.__r_Suffix_Noun_Step1ac                 C   sF   | j | _| tjdkrdS | j | _t| jdks6dS |  sBdS dS Nr@   Fr	   T)	rT   rY   rh   r   a_11rU   rn   ro   rZ   rz   re   re   rf   Z__r_Suffix_Noun_Step1b  s    z$ArabicStemmer.__r_Suffix_Noun_Step1bc                 C   sF   | j | _| tjdkrdS | j | _t| jdks6dS |  sBdS dS Nr@   Fr   T)	rT   rY   rh   r   a_12rU   rn   ro   rZ   rz   re   re   rf   Z__r_Suffix_Noun_Step2a  s    z$ArabicStemmer.__r_Suffix_Noun_Step2ac                 C   sF   | j | _| tjdkrdS | j | _t| jdks6dS |  sBdS dS r}   )	rT   rY   rh   r   a_13rU   rn   ro   rZ   rz   re   re   rf   Z__r_Suffix_Noun_Step2b  s    z$ArabicStemmer.__r_Suffix_Noun_Step2bc                 C   sF   | j | _| tjdkrdS | j | _t| jdks6dS |  sBdS dS r   )	rT   rY   rh   r   a_14rU   rn   ro   rZ   rz   re   re   rf   Z__r_Suffix_Noun_Step2c1  s    z%ArabicStemmer.__r_Suffix_Noun_Step2c1c                 C   sF   | j | _| tjdkrdS | j | _t| jdks6dS |  sBdS dS r   )	rT   rY   rh   r   a_15rU   rn   ro   rZ   rz   re   re   rf   Z__r_Suffix_Noun_Step2c2  s    z%ArabicStemmer.__r_Suffix_Noun_Step2c2c                 C   sF   | j | _| tjdkrdS | j | _t| jdks6dS |  sBdS dS )Nr@   Fr   T)	rT   rY   rh   r   a_16rU   rn   ro   rZ   rz   re   re   rf   Z__r_Suffix_Noun_Step3  s    z#ArabicStemmer.__r_Suffix_Noun_Step3c                 C   s   | j | _| tj}|dkr dS | j | _|dkrPt| jdksBdS |  sdS nF|dkrxt| jdksjdS |  sdS nt| jdksdS |  sdS dS r{   )	rT   rY   rh   r   a_17rU   rn   ro   rZ   rs   re   re   rf   Z__r_Suffix_Verb_Step1  s(    z#ArabicStemmer.__r_Suffix_Verb_Step1c                 C   s   | j | _| tj}|dkr dS | j | _|dkrPt| jdksBdS |  sdS nn|dkrxt| jdksjdS |  sdS nF|dkrt| jdksdS |  sdS nt| jdksdS |  sdS d	S )
Nr@   Fr   r   r   r	   r   r
   T)	rT   rY   rh   r   a_18rU   rn   ro   rZ   rs   re   re   rf   Z__r_Suffix_Verb_Step2a3  s2    z$ArabicStemmer.__r_Suffix_Verb_Step2ac                 C   sF   | j | _| tjdkrdS | j | _t| jdks6dS |  sBdS dS r}   )	rT   rY   rh   r   a_19rU   rn   ro   rZ   rz   re   re   rf   Z__r_Suffix_Verb_Step2bS  s    z$ArabicStemmer.__r_Suffix_Verb_Step2bc                 C   sr   | j | _| tj}|dkr dS | j | _|dkrPt| jdksBdS |  sndS nt| jdksbdS |  sndS dS )Nr@   Fr   r   r
   T)	rT   rY   rh   r   a_20rU   rn   ro   rZ   rs   re   re   rf   Z__r_Suffix_Verb_Step2c_  s    z$ArabicStemmer.__r_Suffix_Verb_Step2cc                 C   s6   | j | _| tjdkrdS | j | _| ds2dS dS )Nr@   FrC   T)rT   rY   rh   r   a_21rU   r[   rz   re   re   rf   Z__r_Suffix_All_alef_maqsuras  s    
z)ArabicStemmer.__r_Suffix_All_alef_maqsurac                 C   s  d| _ d| _d| _| j}|   || _|   | j| _| j| _| j| j }zz| j| j }z| jsnt z| j| j }z*d}| j| j }z| 	 st
 |d8 }W qW n t
y   Y n0 | j| | _qq|dkrt z| j| j }z|  st t W n ty   Y n0 | j| | _z|  s>t t W n tyZ   Y n0 | j| | _| j| jkr|t |  jd8  _W n ty   Y n0 t W n ty   Y n0 | j| | _z|  st t W n ty   Y n0 | j| | _|  st W n ty.   Y n0 t W n tyL   Y n0 | j| | _z| j slt | j| j }z@z$| j| j }	z|  st t W n ty   Y n0 | j|	 | _zDz| jst t W n ty   Y n0 |  s
t z| j| j }
z|  s*t t W n tyF   Y n0 | j|
 | _z|  sft  t W n t y   Y n0 | j|
 | _z| ! st" t W n t"y   Y n0 | j|
 | _| j| jkrt |  jd8  _W n ty   Y n0 t W n ty"   Y n0 | j|	 | _z| # sBt$ z| j| j }z|  sbt% t& W n t%y~   Y n0 | j| | _z|  st' t& W n t'y   Y n0 | j| | _| ! st$ W n t&y   Y n0 t W n t$y   Y n0 | j|	 | _zHz| js,t( t) W n t(yH   Y n0 |  sZt) t W n t)yv   Y n0 | j|	 | _|  s| j| | _t* W n ty   Y n0 W n t*y   Y n0 | + st t W n ty   Y n0 | j| | _| , st- W n ty0   Y n0 W n t-yH   Y n0 | j| | _| j| _| j}z^| j}z| . s|| _t/ W n t/y   Y n0 | j}z| 0 s|| _t1 W n t1y   Y n0 z| j}z| 2 st3 t4 W n t3y
   Y n0 || _z(| j s"t5 | 6 s2t5 t4 W n t5yN   Y n0 || _| jsdt7 | j}z| 8 s|| _t9 W n t9y   Y n0 | : st7 W n t4y   Y n0 W n t7y   Y n0 || _| ;  dS )NTFr   r@   )<rp   rq   rr   rT   _ArabicStemmer__r_Checks1_ArabicStemmer__r_Normalize_prerg   r]   r\   #_ArabicStemmer__r_Suffix_Verb_Step1lab5rk   $_ArabicStemmer__r_Suffix_Verb_Step2alab7lab6$_ArabicStemmer__r_Suffix_Verb_Step2clab8rX   $_ArabicStemmer__r_Suffix_Verb_Step2blab9r^   lab10%_ArabicStemmer__r_Suffix_Noun_Step2c2lab13lab12lab15lab14$_ArabicStemmer__r_Suffix_Noun_Step1a$_ArabicStemmer__r_Suffix_Noun_Step2alab17lab16$_ArabicStemmer__r_Suffix_Noun_Step2blab18%_ArabicStemmer__r_Suffix_Noun_Step2c1lab19$_ArabicStemmer__r_Suffix_Noun_Step1blab20lab22lab21lab23lab25lab24lab11#_ArabicStemmer__r_Suffix_Noun_Step3)_ArabicStemmer__r_Suffix_All_alef_maqsurar_   _ArabicStemmer__r_Prefix_Step1lab27_ArabicStemmer__r_Prefix_Step2lab28$_ArabicStemmer__r_Prefix_Step3a_Nounlab30lab29lab31$_ArabicStemmer__r_Prefix_Step3b_Nounlab26#_ArabicStemmer__r_Prefix_Step3_Verblab32#_ArabicStemmer__r_Prefix_Step4_Verb _ArabicStemmer__r_Normalize_post)r`   ra   rc   rl   Zv_5Zv_6Zv_7Zv_8Zv_9Zv_10Zv_12Zv_13Zv_15Zv_16Zv_17Zv_18Zv_19re   re   rf   _stem|  s   

















































zArabicStemmer._stemN)4__name__
__module____qualname____doc__r   rW   ri   rj   rm   rt   ru   rv   rw   rx   ry   r|   r~   r   r   r   r   r   r   r   r   r   r   rr   rq   rp   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   re   re   re   rf   r      s*  















































































































































  




	




	








	































































 83 	r   c                   @   s   e Zd ZdS )r_   Nr   r   r   re   re   re   rf   r_   O      r_   c                   @   s   e Zd ZdS )r^   Nr   re   re   re   rf   r^   R  r   r^   c                   @   s   e Zd ZdS )r\   Nr   re   re   re   rf   r\   U  r   r\   c                   @   s   e Zd ZdS )rX   Nr   re   re   re   rf   rX   X  r   rX   c                   @   s   e Zd ZdS )rk   Nr   re   re   re   rf   rk   [  r   rk   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r   ^  r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r   a  r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r   d  r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r   g  r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r   j  r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r   m  r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r   p  r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r   s  r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r   v  r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r   y  r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r   |  r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   c                   @   s   e Zd ZdS )r   Nr   re   re   re   rf   r     r   r   N)'Zbasestemmerr   Zamongr   r   BaseExceptionr_   r^   r\   rX   rk   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   re   re   re   rf   <module>   sV           P