
    =wgQ                     &    d dl mZ  G d de      Zy)    )uc                   D    e Zd ZdZdZdZdZdZdZdZ	dZ
d	 Zd
 Zd Zd Zy)RussianStemmeram  
    The Russian Snowball stemmer.

    :cvar __perfective_gerund_suffixes: Suffixes to be deleted.
    :type __perfective_gerund_suffixes: tuple
    :cvar __adjectival_suffixes: Suffixes to be deleted.
    :type __adjectival_suffixes: tuple
    :cvar __reflexive_suffixes: Suffixes to be deleted.
    :type __reflexive_suffixes: tuple
    :cvar __verb_suffixes: Suffixes to be deleted.
    :type __verb_suffixes: tuple
    :cvar __noun_suffixes: Suffixes to be deleted.
    :type __noun_suffixes: tuple
    :cvar __superlative_suffixes: Suffixes to be deleted.
    :type __superlative_suffixes: tuple
    :cvar __derivational_suffixes: Suffixes to be deleted.
    :type __derivational_suffixes: tuple
    :note: A detailed description of the Russian
           stemming algorithm can be found under
           http://snowball.tartarus.org/algorithms/russian/stemmer.html

    )	zivshis'zyvshis'vshis'ivshiyvshivshiivyvv)zui^ushchi^ui^uzui^ushchi^ai^azui^ushchimizui^ushchymizui^ushchegozui^ushchogozui^ushchemuzui^ushchomuzui^ushchikhzui^ushchykhzui^ushchui^uzui^ushchaiazui^ushchoi^uzui^ushchei^ui^ushchi^ui^ui^ushchi^ai^az
ui^ushcheez
ui^ushchiez
ui^ushchyez
ui^ushchoezui^ushchei`zui^ushchii`zui^ushchyi`zui^ushchoi`z
ui^ushchemz
ui^ushchimz
ui^ushchymz
ui^ushchom
i^ushchimi
i^ushchymi
i^ushchego
i^ushchogo
i^ushchemu
i^ushchomu
i^ushchikh
i^ushchykhi^ushchui^ui^ushchai^ai^ushchoi^ui^ushchei^u	i^ushchee	i^ushchie	i^ushchye	i^ushchoe
i^ushchei`
i^ushchii`
i^ushchyi`
i^ushchoi`	i^ushchem	i^ushchim	i^ushchym	i^ushchom
shchi^ui^u
shchi^ai^az
ivshi^ui^uz
ivshi^ai^az
yvshi^ui^uz
yvshi^ai^ashchimishchymishchegoshchogoshchemushchomushchikhshchykhshchui^ushchai^ashchoi^ushchei^uivshimiivshymiivshegoivshogoivshemuivshomuivshikhivshykhzivshui^uzivshai^azivshoi^uzivshei^uyvshimiyvshymiyvshegoyvshogoyvshemuyvshomuyvshikhyvshykhzyvshui^uzyvshai^azyvshoi^uzyvshei^u	vshi^ui^u	vshi^ai^ashcheeshchieshchyeshchoeshchei`shchii`shchyi`shchoi`shchemshchimshchymshchomivsheeivshieivshyeivshoezivshei`zivshii`zivshyi`zivshoi`ivshemivshimivshymivshomyvsheeyvshieyvshyeyvshoezyvshei`zyvshii`zyvshyi`zyvshoi`yvshemyvshimyvshymyvshomvshimivshymivshegovshogovshemuvshomuvshikhvshykhvshui^uvshai^avshoi^uvshei^uemi^ui^uemi^ai^anni^ui^unni^ai^avsheevshievshyevshoevshei`vshii`vshyi`vshoi`vshemvshimvshymvshomemimiemymiemegoemogoememuemomuemikhemykhemui^uemai^aemoi^uemei^unniminnyminnegonnogonnemunnomunnikhnnykhnnui^unnai^annoi^unnei^uemeeemieemyeemoeemei`emii`emyi`emoi`emememimemymemomnneenniennyennoennei`nnii`nnyi`nnoi`nnemnnimnnymnnomzi^ui^uzi^ai^aimiymiegoogoemuomuikhykhui^uzai^azoi^uzei^ueeieyeoeei`ii`zyi`oi`emimymom)zsi^azs').esh'zei`tezui`tezui^utzish'etei`tei^utnnoilaylaenaiteiliyliiloyloenozi^atuetenyzit'zyt'r   lanalir   lonoetnyt'r   zui`ilylr   r   enityti^ui`ln)$zii^amizii^akhzi^amizii^amzi^akhamiziei`zi^amiemakhzii^uz'i^uzii^az'i^aevovr   z'eeiiir   r   r   r   amr   r   i^aaeir   or   y')zei`shezei`sh)zost'ostc                    d}t        t        |            D ]  }t        ||         dkD  sd} n |r| j                  |      }d}d}d}d}d}| j	                  |      \  }	}
| j
                  D ]  }|	j                  |      s|dv rp|	t        |       dz
  t        |        dk(  s |	t        |       dz
  t        |        dk(  sX|d	t        |        }|
d	t        |        }
|	d	t        |        }	d} n2|d	t        |        }|
d	t        |        }
|	d	t        |        }	d} n |s6| j                  D ]B  }|	j                  |      s|d	t        |        }|
d	t        |        }
|	d	t        |        }	 n | j                  D ]  }|	j                  |      s|d
v rp|	t        |       dz
  t        |        dk(  s |	t        |       dz
  t        |        dk(  sX|d	t        |        }|
d	t        |        }
|	d	t        |        }	d} n2|d	t        |        }|
d	t        |        }
|	d	t        |        }	d} n |s| j                  D ]  }|	j                  |      s|dv rp|	t        |       dz
  t        |        dk(  s |	t        |       dz
  t        |        dk(  sX|d	t        |        }|
d	t        |        }
|	d	t        |        }	d} n2|d	t        |        }|
d	t        |        }
|	d	t        |        }	d} n |sS|sQ| j                  D ]B  }|	j                  |      s|d	t        |        }|
d	t        |        }
|	d	t        |        }	 n |	j                  d      r
|d	d }|
d	d }
| j                  D ]$  }|
j                  |      s|d	t        |        } n |j                  d      r|d	d }d}|sK| j                  D ]&  }|j                  |      s|d	t        |        }d} n |j                  d      r|d	d }|s|s|j                  d      r|d	d }|r| j                  |      }|S )z
        Stem a Russian word and return the stemmed form.

        :param word: The word that is stemmed.
        :type word: str or unicode
        :return: The stemmed form.
        :rtype: unicode

        F   T)r   r	   r      r      r   N)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   rF   r1   r2   r3   r4   ro   rp   rq   rr   r)   r*   r+   r,   r-   r.   r/   r0   rk   rl   rm   rn   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rc   rd   re   rf   rg   rh   ri   rj   r   r   r   r   r   r   r   r   rs   rt   ru   rv   rw   rx   ry   rz   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   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   r   r   r   r   r   r   nnr   )rangelenord"_RussianStemmer__cyrillic_to_roman _RussianStemmer__regions_russian+_RussianStemmer__perfective_gerund_suffixesendswith#_RussianStemmer__reflexive_suffixes$_RussianStemmer__adjectival_suffixes_RussianStemmer__verb_suffixes_RussianStemmer__noun_suffixes&_RussianStemmer__derivational_suffixes%_RussianStemmer__superlative_suffixes"_RussianStemmer__roman_to_cyrillic)selfwordchr_exceededr   step1_successadjectival_removedverb_removedundouble_successsuperlative_removedrvr2suffixs               S/var/www/horilla/myenv/lib/python3.12/site-packages/whoosh/lang/snowball/russian.pystemzRussianStemmer.stemw   s    s4y! 	A47|c!#	
 ++D1D" #''-B 77 	F{{6"44CK<!+S[L9UBCK<!+S[L9S@#Mc&k\2#f+.#f+.(,#f+.DMc&k\*BMc&k\*B$(M	" 33 ;;v&#f+.DMc&k\*BMc&k\*B 44 1;;v& ""> ">F F|a/V=FF|a/V=D#'#f+#6D!#Mc&k\!2B!#Mc&k\!2B15.!#Mc&k\2#f+.#f+.-1*c1f &"22 "F{{6*! &- - !#CK<!#3S[L AU J "CK<!#3S[L AS H'+Mc&k\':%'#f+%6%'#f+%6/3 %#'#f+#6D!#Mc&k\!2B!#Mc&k\!2B+/L!%"( &l"22 F{{6*#Mc&k\2#f+.#f+. ;;s9DCRB 22 	F{{6"Mc&k\*	 ==9D#55 ==(#f+.D*.'	
 }}T"CRy(;}}S!CRy++D1D    c                 r   d}d}d}d}|j                  dd      j                  dd      j                  dd      }t        d	t        |            D ]  }||   |vs||d	z
     |v s||d	z   d
 } n t        d	t        |            D ]  }||   |vs||d	z
     |v s||d	z   d
 } n t        t        |            D ]  }||   |v s||d	z   d
 } n |j                  dd      j                  dd      j                  dd      }|j                  dd      j                  dd      j                  dd      }||fS )a=  
        Return the regions RV and R2 which are used by the Russian stemmer.

        In any word, RV is the region after the first vowel,
        or the end of the word if it contains no vowel.

        R2 is the region after the first non-vowel following
        a vowel in R1, or the end of the word if there is no such non-vowel.

        R1 is the region after the first non-vowel following a vowel,
        or the end of the word if there is no such non-vowel.

        :param word: The Russian word whose regions RV and R2 are determined.
        :type word: str or unicode
        :return: the regions RV and R2 for the respective Russian word.
        :rtype: tuple
        :note: This helper method is invoked by the stem method of the subclass
               RussianStemmer. It is not to be invoked directly!

         )	AUEr   r   r   r   r   r   r   r  r   r  e`r  r   N)replacer   r   )r  r	  r1r  r  vowelsr   s          r  __regions_russianz RussianStemmer.__regions_russian  sr   * >UC(WUC(WT3' 	 q#d)$ 	AAwf$a!e)>!a%&\	
 q#b'" 	A!uF"r!a%yF':AZ	
 s4y! 	AAw& !a%&\	
 jje$e$d# 	 jje$wsE"wsD! 	 Bxr  c                    |j                  t        d      d      j                  t        d      d      j                  t        d      d      j                  t        d      d      j                  t        d      d      j                  t        d	      d      j                  t        d
      d      j                  t        d      d      j                  t        d      d      j                  t        d      d      j                  t        d      d      j                  t        d      d      j                  t        d      d      j                  t        d      d      j                  t        d      d      j                  t        d      d      j                  t        d      d      j                  t        d      d      j                  t        d      d      j                  t        d      d      j                  t        d      d      j                  t        d       d      j                  t        d!      d"      j                  t        d#      d"      j                  t        d$      d%      j                  t        d&      d%      j                  t        d'      d(      j                  t        d)      d(      j                  t        d*      d+      j                  t        d,      d+      j                  t        d-      d.      j                  t        d/      d.      j                  t        d0      d1      j                  t        d2      d1      j                  t        d3      d4      j                  t        d5      d4      j                  t        d6      d7      j                  t        d8      d7      j                  t        d9      d:      j                  t        d;      d:      j                  t        d<      d=      j                  t        d>      d=      j                  t        d?      d@      j                  t        dA      d@      j                  t        dB      dC      j                  t        dD      dC      j                  t        dE      dF      j                  t        dG      dF      j                  t        dH      dI      j                  t        dJ      dI      j                  t        dK      dL      j                  t        dM      dL      j                  t        dN      dO      j                  t        dP      dO      j                  t        dQ      dR      j                  t        dS      dR      j                  t        dT      dU      j                  t        dV      dU      j                  t        dW      dX      j                  t        dY      dX      j                  t        dZ      d[      j                  t        d\      d[      j                  t        d]      d^      j                  t        d_      d^      j                  t        d`      da      j                  t        db      da      }|S )ca#  
        Transliterate a Russian word into the Roman alphabet.

        A Russian word whose letters consist of the Cyrillic
        alphabet are transliterated into the Roman alphabet
        in order to ease the forthcoming stemming process.

        :param word: The word that is transliterated.
        :type word: unicode
        :return: the transliterated word.
        :rtype: unicode
        :note: This helper method is invoked by the stem method of the subclass
               RussianStemmer. It is not to be invoked directly!

        u   Аr      аu   Бb   бu   Вr      вu   Гg   гu   Дd   дu   Еr      еu   Ёu   ёu   Жzh   жu   Зz   зu   Иr      иu   Йr      йu   Кk   кu   Лr      лu   Мm   мu   Нr      нu   Оr      оu   Пp   пu   Рr   рu   Сs   сu   Тt   тu   Уr      уu   Фf   фu   Хkh   хu   Цt^s   цu   Чch   чu   Шsh   шu   Щshch   щu   Ъ''   ъu   Ыr      ыu   Ьr      ьu   Эr     эu   Юr      юu   Яr      яr  r   r  r	  s     r  __cyrillic_to_romanz"RussianStemmer.__cyrillic_to_romanR  s     Qx[#.66q{CHWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[$/(T0JWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[$/(T0JWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[$/(T0JWQx[%08e1LWQx[$/(T0JWQx[$/(T0JWQx[&1''!H+v2NWQx[$/(T0JWQx[#.wwq{C/HWQx[#.wwq{C/HWQx[$/(T0JWQx[%08e1LWQx[%08e1LA 	B r  c                 |   |j                  dt        d            j                  dt        d            j                  dt        d            j                  dt        d            j                  d	t        d
            j                  dt        d            j                  dt        d            j                  dt        d            j                  dt        d            j                  dt        d            j                  dt        d            j                  dt        d            j                  dt        d            j                  dt        d            j                  dt        d            j                  dt        d             j                  d!t        d"            j                  dt        d            j                  d#t        d$            j                  d%t        d&            j                  d't        d(            j                  d)t        d*            j                  d+t        d,            j                  d-t        d.            j                  d/t        d0            j                  d1t        d2            j                  d3t        d4            j                  d5t        d6            j                  d7t        d8            j                  d9t        d:            j                  d;t        d<            j                  d=t        d>            j                  d?t        d@            }|S )AaH  
        Transliterate a Russian word back into the Cyrillic alphabet.

        A Russian word formerly transliterated into the Roman alphabet
        in order to ease the stemming process, is transliterated back
        into the Cyrillic alphabet, its original form.

        :param word: The word that is transliterated.
        :type word: str or unicode
        :return: word, the transliterated word.
        :rtype: unicode
        :note: This helper method is invoked by the stem method of the subclass
               RussianStemmer. It is not to be invoked directly!

        r   rQ  r   rR  rJ  rK  rB  rC  rD  rE  rF  rG  r  rP  r   r/  rH  rI  r0  r1  r   r)  r*  r+  r   r!  r"  r#  r   r$  r%  r&  r'  r(  r,  r-  r   r.  r   r2  r3  r4  r   r5  r   r6  r7  r8  r9  r:  r;  r<  r=  r>  r   r?  r@  rA  rL  rM  r   rN  r   rO  rS  rT  s     r  __roman_to_cyrillicz"RussianStemmer.__roman_to_cyrillic  s     UAhK088(LWVQx[1''$(2LWUAhK0q{1KWT1X;/ak0JWT1X;/Qx[0IWS!H+.wwtQx[/IWS!H+.wwsAhK/HWS!H+.wwsAhK/HWS!H+.wwsAhK/HWS!H+.wwsAhK/HWS!H+.wwsAhK/HWS!H+.wwsAhK/HWS!H+.wwsAhK/HWS!H+.wwsAhK/HWS!H+.wwsAhK/HWT1X;/Qx[0IWS!H+.! 	" r  N)__name__
__module____qualname____doc__r   r  r  r  r  r  r  r  r   r   r   r  r  r   r      sU    .$1 D1J *#O-O 1-dL3j1f!r  r   N)whoosh.compatr   objectr   r\  r  r  <module>r_     s    cV cr  