1 /* This file is (c) 2013 Maksim Tamkovicz <quendimax@gmail.com>
2  * Part of GoldenDict. Licensed under GPLv3 or later, see the LICENSE file */
3 
4 #include "belarusiantranslit.hh"
5 #include "transliteration.hh"
6 #include <QCoreApplication>
7 
8 namespace BelarusianTranslit {
9 
10 class BelarusianLatinToClassicTable: public Transliteration::Table
11 {
12 public:
BelarusianLatinToClassicTable()13   BelarusianLatinToClassicTable()
14   {
15     // Utf8ins()
16 
17     // latin to cyrillic
18     ins( "a", "а" );
19     ins( "b", "б" );
20     ins( "c", "ц" );
21     ins( "ć", "ць" );
22     ins( "č", "ч" );
23     ins( "cz", "ч" );
24     ins( "d", "д" );
25     ins( "e", "э" );
26     ins( "f", "ф" );
27     ins( "g", "ґ" );
28     ins( "h", "г" );
29     ins( "i", "і" );
30     ins( "j", "й" );
31     ins( "k", "к" );
32     ins( "l", "ль" );
33     ins( "ł", "л" );
34     ins( "m", "м" );
35     ins( "n", "н" );
36     ins( "ń", "нь" );
37     ins( "o", "о" );
38     ins( "p", "п" );
39     ins( "r", "р" );
40     ins( "s", "с" );
41     ins( "ś", "сь" );
42     ins( "š", "ш" );
43     ins( "sz", "ш" );
44     ins( "t", "т" );
45     ins( "u", "у" );
46     ins( "ŭ", "ў" );
47     ins( "v", "в" );
48     ins( "w", "в" );
49     ins( "y", "ы" );
50     ins( "z", "з" );
51     ins( "ź", "зь" );
52     ins( "ž", "ж" );
53     ins( "ż", "ж" );
54     ins( "ch", "х" );
55 
56     ins( "ja", "я" );   ins( "je", "е" );   ins( "jo", "ё" );   ins( "ju", "ю" );
57     ins( "la", "ля" );  ins( "le", "ле" );  ins( "lo", "лё" );  ins( "lu", "лю" );  ins( "li", "лі" );
58 
59     ins( "bia", "бя" );  ins( "bie", "бе" );  ins( "bio", "бё" );  ins( "biu", "бю" );
60     ins( "cia", "ця" );  ins( "cie", "це" );  ins( "cio", "цё" );  ins( "ciu", "цю" );
61     ins( "dzia","дзя" ); ins( "dzie","дзе" ); ins( "dzio","дзё" ); ins( "dziu","дзю" );
62     ins( "fia", "фя" );  ins( "fie", "фе" );  ins( "fio", "фё" );  ins( "fiu", "фю" );
63     ins( "gia", "ґя" );  ins( "gie", "ґе" );  ins( "gio", "ґё" );  ins( "giu", "ґю" );
64     ins( "hia", "гя" );  ins( "hie", "ге" );  ins( "hio", "гё" );  ins( "hiu", "гю" );
65     ins( "kia", "кя" );  ins( "kie", "ке" );  ins( "kio", "кё" );  ins( "kiu", "кю" );
66     ins( "lia", "ліa" ); ins( "lie", "ліэ" ); ins( "lio", "ліо" ); ins( "liu", "ліу" );
67     ins( "mia", "мя" );  ins( "mie", "ме" );  ins( "mio", "мё" );  ins( "miu", "мю" );
68     ins( "nia", "ня" );  ins( "nie", "не" );  ins( "nio", "нё" );  ins( "niu", "ню" );
69     ins( "pia", "пя" );  ins( "pie", "пе" );  ins( "pio", "пё" );  ins( "piu", "пю" );
70     ins( "sia", "ся" );  ins( "sie", "се" );  ins( "sio", "сё" );  ins( "siu", "сю" );
71     ins( "via", "вя" );  ins( "vie", "ве" );  ins( "vio", "вё" );  ins( "viu", "вю" );
72     ins( "wia", "вя" );  ins( "wie", "ве" );  ins( "wio", "вё" );  ins( "wiu", "вю" );
73     ins( "zia", "зя" );  ins( "zie", "зе" );  ins( "zio", "зё" );  ins( "ziu", "зю" );
74     ins( "chia", "хя" ); ins( "chie", "хе" ); ins( "chio", "хё" ); ins( "chiu", "хю" );
75 
76     ins( "bja", "б'я" );  ins( "bje", "б'е" );  ins( "bjo", "б'ё" );  ins( "bju", "б'ю" );
77     ins( "cia", "ц'я" );  ins( "cje", "ц'е" );  ins( "cjo", "ц'ё" );  ins( "cju", "ц'ю" );
78     ins( "fja", "ф'я" );  ins( "fje", "ф'е" );  ins( "fjo", "ф'ё" );  ins( "fju", "ф'ю" );
79     ins( "hja", "г'я" );  ins( "hje", "г'е" );  ins( "hjo", "г'ё" );  ins( "hju", "г'ю" );
80     ins( "kja", "к'я" );  ins( "kje", "к'е" );  ins( "kjo", "к'ё" );  ins( "kju", "к'ю" );
81     ins( "łja", "л'я" );  ins( "łje", "л'е" );  ins( "łjo", "л'ё" );  ins( "łju", "л'ю" );
82     ins( "mja", "м'я" );  ins( "mje", "м'е" );  ins( "mjo", "м'ё" );  ins( "mju", "м'ю" );
83     ins( "nja", "н'я" );  ins( "nje", "н'е" );  ins( "njo", "н'ё" );  ins( "nju", "н'ю" );
84     ins( "pja", "п'я" );  ins( "pje", "п'е" );  ins( "pjo", "п'ё" );  ins( "pju", "п'ю" );
85     ins( "sja", "с'я" );  ins( "sje", "с'е" );  ins( "sjo", "с'ё" );  ins( "sju", "с'ю" );
86     ins( "vja", "в'я" );  ins( "vje", "в'е" );  ins( "vjo", "в'ё" );  ins( "vju", "в'ю" );
87     ins( "wja", "в'я" );  ins( "wje", "в'е" );  ins( "wjo", "в'ё" );  ins( "wju", "в'ю" );
88     ins( "zja", "з'я" );  ins( "zje", "з'е" );  ins( "zjo", "з'ё" );  ins( "zju", "з'ю" );
89     ins( "chja", "х'я" ); ins( "chje", "х'е" ); ins( "chjo", "х'ё" ); ins( "chju", "х'ю" );
90 
91     ins( "nnia", "ньня" );  ins( "nnie", "ньне" );  ins( "nnio", "ньнё" );  ins( "nniu", "ньню" );ins( "nni", "ньні" );
92 
93     // cyrillic to latin
94     ins( "а", "a" );   ins( "б", "b" );   ins( "в", "v" );   ins( "г", "h" );
95     ins( "ґ", "g" );   ins( "д", "d" );   ins( "е", "je" );  ins( "ё", "jo" );
96     ins( "ж", "ž" );   ins( "з", "z" );   ins( "і", "i" );   ins( "ї", "ï" );
97     ins( "й", "j" );   ins( "к", "k" );   ins( "л", "ł" );   ins( "м", "m" );
98     ins( "н", "n" );   ins( "о", "o" );   ins( "п", "p" );   ins( "р", "r" );
99     ins( "с", "s" );   ins( "т", "t" );   ins( "у", "u" );   ins( "ў", "ŭ" );
100     ins( "ф", "f" );   ins( "х", "ch" );  ins( "ц", "c" );   ins( "ч", "č" );
101     ins( "ш", "š" );   ins( "ы", "y" );   ins( "э", "e" );   ins( "ю", "ju" );
102     ins( "я", "ja" );  ins( "кг", "g" );
103     ins( "бе", "bie" );  ins( "бё", "bio" );  ins( "бю", "biu" );  ins( "бя", "bia" );
104     ins( "ве", "vie" );  ins( "вё", "vio" );  ins( "вю", "viu" );  ins( "вя", "via" );
105     ins( "ге", "hie" );  ins( "гё", "hio" );  ins( "гю", "hiu" );  ins( "гя", "hia" );
106     ins( "ґе", "gie" );  ins( "ґё", "gio" );  ins( "ґю", "giu" );  ins( "ґя", "gia" );
107     ins( "кге", "gie" ); ins( "кгё", "gio" ); ins( "кгю", "giu" ); ins( "кгя", "gia" );
108     ins( "зе", "zie" );  ins( "зё", "zio" );  ins( "зю", "ziu" );  ins( "зя", "zia" );  ins( "зь", "ź" );
109     ins( "ке", "kie" );  ins( "кё", "kio" );  ins( "кю", "kiu" );  ins( "кя", "kia" );
110     ins( "ле", "le" );   ins( "лё", "lo" );   ins( "лю", "lu" );   ins( "ля", "la" );   ins( "ль", "l" );   ins( "лі", "li" );
111     ins( "ме", "mie" );  ins( "мё", "mio" );  ins( "мю", "miu" );  ins( "мя", "mia" );  ins( "мь", "m" );
112     ins( "не", "nie" );  ins( "нё", "nio" );  ins( "ню", "niu" );  ins( "ня", "nia" );  ins( "нь", "ń" );
113     ins( "пе", "pie" );  ins( "пё", "pio" );  ins( "пю", "piu" );  ins( "пя", "pia" );  ins( "пь", "p" );
114     ins( "се", "sie" );  ins( "сё", "sio" );  ins( "сю", "siu" );  ins( "ся", "sia" );  ins( "сь", "ś" );
115     ins( "фе", "fie" );  ins( "фё", "fio" );  ins( "фю", "fiu" );  ins( "фя", "fia" );  ins( "фь", "f" );
116     ins( "хе", "chie" ); ins( "хё", "chio" ); ins( "хю", "chiu" ); ins( "хя", "chia" );
117     ins( "це", "cie" );  ins( "цё", "cio" );  ins( "цю", "ciu" );  ins( "ця", "cia" );  ins( "ць", "ć" );
118     ins( "бʼ", "b" );    ins( "б'", "b" );    ins( "б’", "b" );
119     ins( "вʼ", "v" );    ins( "в'", "v" );    ins( "в’", "v" );
120     ins( "гʼ", "h" );    ins( "г'", "h" );    ins( "г’", "h" );
121     ins( "ґʼ", "g" );    ins( "ґ'", "g" );    ins( "ґ’", "g" );
122     ins( "дʼ", "d" );    ins( "д'", "d" );    ins( "д’", "d" );
123     ins( "жʼ", "ž" );    ins( "ж'", "ž" );    ins( "ж’", "ž" );
124     ins( "зʼ", "z" );    ins( "з'", "z" );    ins( "з’", "z" );
125     ins( "кʼ", "k" );    ins( "к'", "k" );    ins( "к’", "k" );
126     ins( "лʼ", "ł" );    ins( "л'", "ł" );    ins( "л’", "ł" );
127     ins( "мʼ", "m" );    ins( "м'", "m" );    ins( "м’", "m" );
128     ins( "нʼ", "n" );    ins( "н'", "n" );    ins( "н’", "n" );
129     ins( "пʼ", "p" );    ins( "п'", "p" );    ins( "п’", "p" );
130     ins( "рʼ", "r" );    ins( "р'", "r" );    ins( "р’", "r" );
131     ins( "сʼ", "s" );    ins( "с'", "s" );    ins( "с’", "s" );
132     ins( "тʼ", "t" );    ins( "т'", "t" );    ins( "т’", "t" );
133     ins( "фʼ", "f" );    ins( "ф'", "f" );    ins( "ф’", "f" );
134     ins( "хʼ", "ch" );   ins( "х'", "ch" );   ins( "х’", "ch" );
135     ins( "цʼ", "c" );    ins( "ц'", "c" );    ins( "ц’", "c" );
136     ins( "чʼ", "č" );    ins( "ч'", "č" );    ins( "ч’", "č" );
137     ins( "шʼ", "š" );    ins( "ш'", "š" );    ins( "ш’", "š" );
138   }
139 };
140 
141 class BelarusianLatinToSchoolTable: public Transliteration::Table
142 {
143 public:
BelarusianLatinToSchoolTable()144   BelarusianLatinToSchoolTable()
145   {
146     // Utf8ins()
147 
148     // latin to cyrillic
149     ins( "a", "а" );
150     ins( "b", "б" );
151     ins( "c", "ц" );
152     ins( "ć", "ць" );
153     ins( "č", "ч" );
154     ins( "cz", "ч" );
155     ins( "d", "д" );
156     ins( "e", "э" );
157     ins( "f", "ф" );
158     ins( "g", "г" );
159     ins( "h", "г" );
160     ins( "i", "і" );
161     ins( "j", "й" );
162     ins( "k", "к" );
163     ins( "l", "ль" );
164     ins( "ł", "л" );
165     ins( "m", "м" );
166     ins( "n", "н" );
167     ins( "ń", "нь" );
168     ins( "o", "о" );
169     ins( "p", "п" );
170     ins( "r", "р" );
171     ins( "s", "с" );
172     ins( "ś", "сь" );
173     ins( "š", "ш" );
174     ins( "sz", "ш" );
175     ins( "t", "т" );
176     ins( "u", "у" );
177     ins( "ŭ", "ў" );
178     ins( "v", "в" );
179     ins( "w", "в" );
180     ins( "y", "ы" );
181     ins( "z", "з" );
182     ins( "ź", "зь" );
183     ins( "ž", "ж" );
184     ins( "ż", "ж" );
185     ins( "ch", "х" );
186 
187     ins( "ja", "я" );   ins( "je", "е" );   ins( "jo", "ё" );   ins( "ju", "ю" );
188     ins( "la", "ля" );  ins( "le", "ле" );  ins( "lo", "лё" );  ins( "lu", "лю" );  ins( "li", "лі" );
189 
190     ins( "bia", "бя" );  ins( "bie", "бе" );  ins( "bio", "бё" );  ins( "biu", "бю" );
191     ins( "cia", "ця" );  ins( "cie", "це" );  ins( "cio", "цё" );  ins( "ciu", "цю" );
192     ins( "dzia","дзя" ); ins( "dzie","дзе" ); ins( "dzio","дзё" ); ins( "dziu","дзю" );
193     ins( "fia", "фя" );  ins( "fie", "фе" );  ins( "fio", "фё" );  ins( "fiu", "фю" );
194     ins( "gia", "гя" );  ins( "gie", "ге" );  ins( "gio", "гё" );  ins( "giu", "гю" );
195     ins( "hia", "гя" );  ins( "hie", "ге" );  ins( "hio", "гё" );  ins( "hiu", "гю" );
196     ins( "kia", "кя" );  ins( "kie", "ке" );  ins( "kio", "кё" );  ins( "kiu", "кю" );
197     ins( "lia", "ліa" ); ins( "lie", "ліэ" ); ins( "lio", "ліо" ); ins( "liu", "ліу" );
198     ins( "mia", "мя" );  ins( "mie", "ме" );  ins( "mio", "мё" );  ins( "miu", "мю" );
199     ins( "nia", "ня" );  ins( "nie", "не" );  ins( "nio", "нё" );  ins( "niu", "ню" );
200     ins( "pia", "пя" );  ins( "pie", "пе" );  ins( "pio", "пё" );  ins( "piu", "пю" );
201     ins( "sia", "ся" );  ins( "sie", "се" );  ins( "sio", "сё" );  ins( "siu", "сю" );
202     ins( "via", "вя" );  ins( "vie", "ве" );  ins( "vio", "вё" );  ins( "viu", "вю" );
203     ins( "wia", "вя" );  ins( "wie", "ве" );  ins( "wio", "вё" );  ins( "wiu", "вю" );
204     ins( "zia", "зя" );  ins( "zie", "зе" );  ins( "zio", "зё" );  ins( "ziu", "зю" );
205     ins( "chia", "хя" ); ins( "chie", "хе" ); ins( "chio", "хё" ); ins( "chiu", "хю" );
206 
207     ins( "bja", "б'я" );  ins( "bje", "б'е" );  ins( "bjo", "б'ё" );  ins( "bju", "б'ю" );
208     ins( "cia", "ц'я" );  ins( "cje", "ц'е" );  ins( "cjo", "ц'ё" );  ins( "cju", "ц'ю" );
209     ins( "fja", "ф'я" );  ins( "fje", "ф'е" );  ins( "fjo", "ф'ё" );  ins( "fju", "ф'ю" );
210     ins( "hja", "г'я" );  ins( "hje", "г'е" );  ins( "hjo", "г'ё" );  ins( "hju", "г'ю" );
211     ins( "kja", "к'я" );  ins( "kje", "к'е" );  ins( "kjo", "к'ё" );  ins( "kju", "к'ю" );
212     ins( "łja", "л'я" );  ins( "łje", "л'е" );  ins( "łjo", "л'ё" );  ins( "łju", "л'ю" );
213     ins( "mja", "м'я" );  ins( "mje", "м'е" );  ins( "mjo", "м'ё" );  ins( "mju", "м'ю" );
214     ins( "nja", "н'я" );  ins( "nje", "н'е" );  ins( "njo", "н'ё" );  ins( "nju", "н'ю" );
215     ins( "pja", "п'я" );  ins( "pje", "п'е" );  ins( "pjo", "п'ё" );  ins( "pju", "п'ю" );
216     ins( "sja", "с'я" );  ins( "sje", "с'е" );  ins( "sjo", "с'ё" );  ins( "sju", "с'ю" );
217     ins( "vja", "в'я" );  ins( "vje", "в'е" );  ins( "vjo", "в'ё" );  ins( "vju", "в'ю" );
218     ins( "wja", "в'я" );  ins( "wje", "в'е" );  ins( "wjo", "в'ё" );  ins( "wju", "в'ю" );
219     ins( "zja", "з'я" );  ins( "zje", "з'е" );  ins( "zjo", "з'ё" );  ins( "zju", "з'ю" );
220     ins( "źja", "з'я" );  ins( "źje", "з'е" );  ins( "źjo", "з'ё" );  ins( "źju", "з'ю" );
221     ins( "chja", "х'я" ); ins( "chje", "х'е" ); ins( "chjo", "х'ё" ); ins( "chju", "х'ю" );
222 
223     ins( "śbia", "сбя" );  ins( "śbie", "сбе" );  ins( "śbio", "сбё" );  ins( "śbiu", "сбю" );  ins( "śbi", "сбі" );
224     ins( "ścia", "сця" );  ins( "ście", "сце" );  ins( "ścio", "сцё" );  ins( "ściu", "сцю" );  ins( "ści", "сці" );  ins( "ść", "сць" );
225     ins( "śdzia","сдзя" ); ins( "śdzie","сдзе" ); ins( "śdzio","сдзё" ); ins( "śdziu","сдзю" ); ins( "śdzi","сдзі" ); ins( "śdź","сдзь" );
226     ins( "śfia", "сфя" );  ins( "śfie", "сфе" );  ins( "śfio", "сфё" );  ins( "śfiu", "сфю" );  ins( "śfi", "сфі" );
227     ins( "ślia", "сліa" ); ins( "ślie", "сліэ" ); ins( "ślio", "сліо" ); ins( "śliu", "сліу" ); ins( "śli", "слі" );  ins( "śl", "сль" );
228     ins( "śmia", "смя" );  ins( "śmie", "сме" );  ins( "śmio", "смё" );  ins( "śmiu", "смю" );  ins( "śmi", "смі" );
229     ins( "śnia", "сня" );  ins( "śnie", "сне" );  ins( "śnio", "снё" );  ins( "śniu", "сню" );  ins( "śni", "сні" );  ins( "śń", "снь" );
230     ins( "śpia", "спя" );  ins( "śpie", "спе" );  ins( "śpio", "спё" );  ins( "śpiu", "спю" );  ins( "śpi", "спі" );
231     ins( "śsia", "сся" );  ins( "śsie", "ссе" );  ins( "śsio", "ссё" );  ins( "śsiu", "ссю" );  ins( "śsi", "ссі" );
232     ins( "śvia", "свя" );  ins( "śvie", "све" );  ins( "śvio", "свё" );  ins( "śviu", "свю" );  ins( "śvi", "сві" );
233     ins( "świa", "свя" );  ins( "świe", "све" );  ins( "świo", "свё" );  ins( "świu", "свю" );  ins( "świ", "сві" );
234     ins( "śzia", "сзя" );  ins( "śzie", "сзе" );  ins( "śzio", "сзё" );  ins( "śziu", "сзю" );  ins( "śzi", "сзі" );  ins( "śź", "сзь" );
235 
236     ins( "ćbia", "цбя" );  ins( "ćbie", "цбе" );  ins( "ćbio", "цбё" );  ins( "ćbiu", "цбю" );  ins( "ćbi", "цбі" );
237     ins( "ćcia", "цця" );  ins( "ćcie", "цце" );  ins( "ćcio", "ццё" );  ins( "ćciu", "ццю" );  ins( "ćci", "цці" );
238     ins( "ćdzia","цдзя" ); ins( "ćdzie","цдзе" ); ins( "ćdzio","цдзё" ); ins( "ćdziu","цдзю" ); ins( "ćdzi","цдзі" );
239     ins( "ćfia", "цфя" );  ins( "ćfie", "цфе" );  ins( "ćfio", "цфё" );  ins( "ćfiu", "цфю" );  ins( "ćfi", "цфі" );
240     ins( "ćlia", "цліa" ); ins( "ćlie", "цліэ" ); ins( "ćlio", "цліо" ); ins( "ćliu", "цліу" ); ins( "ćli", "цлі" );  ins( "ćl", "цль" );
241     ins( "ćmia", "цмя" );  ins( "ćmie", "цме" );  ins( "ćmio", "цмё" );  ins( "ćmiu", "цмю" );  ins( "ćmi", "цмі" );
242     ins( "ćnia", "цня" );  ins( "ćnie", "цне" );  ins( "ćnio", "цнё" );  ins( "ćniu", "цню" );  ins( "ćni", "цні" );  ins( "ćń", "цнь" );
243     ins( "ćpia", "цпя" );  ins( "ćpie", "цпе" );  ins( "ćpio", "цпё" );  ins( "ćpiu", "цпю" );  ins( "ćpi", "цпі" );
244     ins( "ćsia", "цся" );  ins( "ćsie", "цсе" );  ins( "ćsio", "цсё" );  ins( "ćsiu", "цсю" );  ins( "ćsi", "цсі" );  ins( "ćś", "цсь" );
245     ins( "ćvia", "цвя" );  ins( "ćvie", "цве" );  ins( "ćvio", "цвё" );  ins( "ćviu", "цвю" );  ins( "ćvi", "цві" );
246     ins( "ćwia", "цвя" );  ins( "ćwie", "цве" );  ins( "ćwio", "цвё" );  ins( "ćwiu", "цвю" );  ins( "ćwi", "цві" );
247     ins( "ćzia", "цзя" );  ins( "ćzie", "цзе" );  ins( "ćzio", "цзё" );  ins( "ćziu", "цзю" );  ins( "ćzi", "цзі" );  ins( "ćź", "цзь" );
248 
249     ins( "źbia", "збя" );  ins( "źbie", "збе" );  ins( "źbio", "збё" );  ins( "źbiu", "збю" );  ins( "źbi", "збі" );
250     ins( "źcia", "зця" );  ins( "źcie", "зце" );  ins( "źcio", "зцё" );  ins( "źciu", "зцю" );  ins( "źci", "зці" );  ins( "źć", "зць" );
251     ins( "ździa","здзя" ); ins( "ździe","здзе" ); ins( "ździo","здзё" ); ins( "ździu","здзю" ); ins( "ździ","здзі" ); ins( "źdź","здзь" );
252     ins( "źfia", "зфя" );  ins( "źfie", "зфе" );  ins( "źfio", "зфё" );  ins( "źfiu", "зфю" );  ins( "źfi", "зфі" );
253     ins( "źlia", "зліa" ); ins( "źlie", "зліэ" ); ins( "źlio", "зліо" ); ins( "źliu", "зліу" ); ins( "źli", "злі" );  ins( "źl", "зль" );
254     ins( "źmia", "змя" );  ins( "źmie", "зме" );  ins( "źmio", "змё" );  ins( "źmiu", "змю" );  ins( "źmi", "змі" );
255     ins( "źnia", "зня" );  ins( "źnie", "зне" );  ins( "źnio", "знё" );  ins( "źniu", "зню" );  ins( "źni", "зні" );
256     ins( "źpia", "зпя" );  ins( "źpie", "зпе" );  ins( "źpio", "зпё" );  ins( "źpiu", "зпю" );  ins( "źpi", "зпі" );
257     ins( "źsia", "зся" );  ins( "źsie", "зсе" );  ins( "źsio", "зсё" );  ins( "źsiu", "зсю" );  ins( "źsi", "зсі" );
258     ins( "źvia", "звя" );  ins( "źvie", "зве" );  ins( "źvio", "звё" );  ins( "źviu", "звю" );  ins( "źvi", "зві" );
259     ins( "źwia", "звя" );  ins( "źwie", "зве" );  ins( "źwio", "звё" );  ins( "źwiu", "звю" );  ins( "źwi", "зві" );
260     ins( "źzia", "ззя" );  ins( "źzie", "ззе" );  ins( "źzio", "ззё" );  ins( "źziu", "ззю" );  ins( "źzi", "ззі" );
261 
262     ins( "ńnia", "ння" );  ins( "ńnie", "нне" );  ins( "ńnio", "ннё" );  ins( "ńniu", "нню" );  ins( "ńni", "нні" );
263     ins( "dździa", "ддзя" );  ins( "dździe", "ддзе" );  ins( "dździo", "ддзё" );  ins( "dździu", "ддзю" );  ins( "dździ", "ддзі" );
264 
265     // cyrillic to latin
266     ins( "а", "a" );   ins( "б", "b" );   ins( "в", "v" );   ins( "г", "h" );
267     ins( "ґ", "g" );   ins( "д", "d" );   ins( "е", "je" );  ins( "ё", "jo" );
268     ins( "ж", "ž" );   ins( "з", "z" );   ins( "і", "i" );   ins( "ї", "ï" );
269     ins( "й", "j" );   ins( "к", "k" );   ins( "л", "ł" );   ins( "м", "m" );
270     ins( "н", "n" );   ins( "о", "o" );   ins( "п", "p" );   ins( "р", "r" );
271     ins( "с", "s" );   ins( "т", "t" );   ins( "у", "u" );   ins( "ў", "ŭ" );
272     ins( "ф", "f" );   ins( "х", "ch" );  ins( "ц", "c" );   ins( "ч", "č" );
273     ins( "ш", "š" );   ins( "ы", "y" );   ins( "э", "e" );   ins( "ю", "ju" );
274     ins( "я", "ja" );  ins( "кг", "g" );
275     ins( "бе", "bie" );  ins( "бё", "bio" );  ins( "бю", "biu" );  ins( "бя", "bia" );
276     ins( "ве", "vie" );  ins( "вё", "vio" );  ins( "вю", "viu" );  ins( "вя", "via" );
277     ins( "ге", "hie" );  ins( "гё", "hio" );  ins( "гю", "hiu" );  ins( "гя", "hia" );
278     ins( "ґе", "gie" );  ins( "ґё", "gio" );  ins( "ґю", "giu" );  ins( "ґя", "gia" );
279     ins( "кге", "gie" ); ins( "кгё", "gio" ); ins( "кгю", "giu" ); ins( "кгя", "gia" );
280     ins( "зе", "zie" );  ins( "зё", "zio" );  ins( "зю", "ziu" );  ins( "зя", "zia" );  ins( "зь", "ź" );
281     ins( "ке", "kie" );  ins( "кё", "kio" );  ins( "кю", "kiu" );  ins( "кя", "kia" );
282     ins( "ле", "le" );   ins( "лё", "lo" );   ins( "лю", "lu" );   ins( "ля", "la" );   ins( "ль", "l" );   ins( "лі", "li" );
283     ins( "ме", "mie" );  ins( "мё", "mio" );  ins( "мю", "miu" );  ins( "мя", "mia" );  ins( "мь", "m" );
284     ins( "не", "nie" );  ins( "нё", "nio" );  ins( "ню", "niu" );  ins( "ня", "nia" );  ins( "нь", "ń" );
285     ins( "пе", "pie" );  ins( "пё", "pio" );  ins( "пю", "piu" );  ins( "пя", "pia" );  ins( "пь", "p" );
286     ins( "се", "sie" );  ins( "сё", "sio" );  ins( "сю", "siu" );  ins( "ся", "sia" );  ins( "сь", "ś" );
287     ins( "фе", "fie" );  ins( "фё", "fio" );  ins( "фю", "fiu" );  ins( "фя", "fia" );  ins( "фь", "f" );
288     ins( "хе", "chie" ); ins( "хё", "chio" ); ins( "хю", "chiu" ); ins( "хя", "chia" );
289     ins( "це", "cie" );  ins( "цё", "cio" );  ins( "цю", "ciu" );  ins( "ця", "cia" );  ins( "ць", "ć" );
290     ins( "бʼ", "b" );    ins( "б'", "b" );    ins( "б’", "b" );
291     ins( "вʼ", "v" );    ins( "в'", "v" );    ins( "в’", "v" );
292     ins( "гʼ", "h" );    ins( "г'", "h" );    ins( "г’", "h" );
293     ins( "ґʼ", "g" );    ins( "ґ'", "g" );    ins( "ґ’", "g" );
294     ins( "дʼ", "d" );    ins( "д'", "d" );    ins( "д’", "d" );
295     ins( "жʼ", "ž" );    ins( "ж'", "ž" );    ins( "ж’", "ž" );
296     ins( "зʼ", "z" );    ins( "з'", "z" );    ins( "з’", "z" );
297     ins( "кʼ", "k" );    ins( "к'", "k" );    ins( "к’", "k" );
298     ins( "лʼ", "ł" );    ins( "л'", "ł" );    ins( "л’", "ł" );
299     ins( "мʼ", "m" );    ins( "м'", "m" );    ins( "м’", "m" );
300     ins( "нʼ", "n" );    ins( "н'", "n" );    ins( "н’", "n" );
301     ins( "пʼ", "p" );    ins( "п'", "p" );    ins( "п’", "p" );
302     ins( "рʼ", "r" );    ins( "р'", "r" );    ins( "р’", "r" );
303     ins( "сʼ", "s" );    ins( "с'", "s" );    ins( "с’", "s" );
304     ins( "тʼ", "t" );    ins( "т'", "t" );    ins( "т’", "t" );
305     ins( "фʼ", "f" );    ins( "ф'", "f" );    ins( "ф’", "f" );
306     ins( "хʼ", "ch" );   ins( "х'", "ch" );   ins( "х’", "ch" );
307     ins( "цʼ", "c" );    ins( "ц'", "c" );    ins( "ц’", "c" );
308     ins( "чʼ", "č" );    ins( "ч'", "č" );    ins( "ч’", "č" );
309     ins( "шʼ", "š" );    ins( "ш'", "š" );    ins( "ш’", "š" );
310   }
311 };
312 
313 class BelarusianSchoolToClassicTable: public Transliteration::Table
314 {
315 public:
BelarusianSchoolToClassicTable()316   BelarusianSchoolToClassicTable()
317   {
318     ins( "ньне", "нне" );   ins( "ньня", "ння" );   ins( "ньню", "нню" );   ins( "ньнё", "ннё" );   ins( "ньні", "нні" );
319     ins( "нне", "ньне" );   ins( "ння", "ньня" );   ins( "нню", "ньню" );   ins( "ннё", "ньнё" );   ins( "нні", "ньні" );
320 
321     ins( "льле", "лле" );   ins( "льля", "лля" );   ins( "льлю", "ллю" );   ins( "льлё", "ллё" );   ins( "льлі", "ллі" );
322     ins( "лле", "льле" );   ins( "лля", "льля" );   ins( "ллю", "льлю" );   ins( "ллё", "льлё" );   ins( "ллі", "льлі" );
323 
324     ins( "зьбе", "збе" );   ins( "зьбя", "збя" );   ins( "зьбю", "збю" );   ins( "зьбё", "збё" );   ins( "зьбі", "збі" );
325     ins( "збе", "зьбе" );   ins( "збя", "зьбя" );   ins( "збю", "зьбю" );   ins( "збё", "зьбё" );   ins( "збі", "зьбі" );
326     ins( "зьве", "зве" );   ins( "зьвя", "звя" );   ins( "зьвю", "звю" );   ins( "зьвё", "звё" );   ins( "зьві", "зві" );
327     ins( "зве", "зьве" );   ins( "звя", "зьвя" );   ins( "звю", "зьвю" );   ins( "звё", "зьвё" );   ins( "зві", "зьві" );
328     ins( "зьдзе", "здзе" ); ins( "зьдзя", "здзя" ); ins( "зьдзю", "здзю" ); ins( "зьдзё", "здзё" ); ins( "зьдзі", "здзі" ); ins( "зьдзь", "здзь" );
329     ins( "здзе", "зьдзе" ); ins( "здзя", "зьдзя" ); ins( "здзю", "зьдзю" ); ins( "здзё", "зьдзё" ); ins( "здзі", "зьдзі" ); ins( "здзь", "здзь" );
330     ins( "зьзе", "ззе" );   ins( "зьзя", "ззя" );   ins( "зьзю", "ззю" );   ins( "зьзё", "ззё" );   ins( "зьзі", "ззі" );   ins( "зьзь", "ззь" );
331     ins( "ззе", "зьзе" );   ins( "ззя", "зьзя" );   ins( "ззю", "зьзю" );   ins( "ззё", "зьзё" );   ins( "ззі", "зьзі" );   ins( "ззь", "зьзь" );
332     ins( "зьле", "зле" );   ins( "зьля", "зля" );   ins( "зьлю", "злю" );   ins( "зьлё", "злё" );   ins( "зьлі", "злі" );   ins( "зьль", "зль" );
333     ins( "зле", "зьле" );   ins( "зля", "зьля" );   ins( "злю", "зьлю" );   ins( "злё", "зьлё" );   ins( "злі", "зьлі" );   ins( "зль", "зьль" );
334     ins( "зьме", "зме" );   ins( "зьмя", "змя" );   ins( "зьмю", "змю" );   ins( "зьмё", "змё" );   ins( "зьмі", "змі" );
335     ins( "зме", "зьме" );   ins( "змя", "зьмя" );   ins( "змю", "зьмю" );   ins( "змё", "зьмё" );   ins( "змі", "зьмі" );
336     ins( "зьне", "зне" );   ins( "зьня", "зня" );   ins( "зьню", "зню" );   ins( "зьнё", "знё" );   ins( "зьні", "зні" );   ins( "зьнь", "знь" );
337     ins( "зне", "зьне" );   ins( "зня", "зьня" );   ins( "зню", "зьню" );   ins( "знё", "зьнё" );   ins( "зні", "зьні" );   ins( "знь", "зьнь" );
338     ins( "зьпе", "зпе" );   ins( "зьпя", "зпя" );   ins( "зьпю", "зпю" );   ins( "зьпё", "зпё" );   ins( "зьпі", "зпі" );
339     ins( "зпе", "зьпе" );   ins( "зпя", "зьпя" );   ins( "зпю", "зьпю" );   ins( "зпё", "зьпё" );   ins( "зпі", "зьпі" );
340     ins( "зьсе", "зсе" );   ins( "зься", "зся" );   ins( "зьсю", "зсю" );   ins( "зьсё", "зсё" );   ins( "зьсі", "зсі" );   ins( "зьсь", "зсь" );
341     ins( "зсе", "зьсе" );   ins( "зся", "зься" );   ins( "зсю", "зьсю" );   ins( "зсё", "зьсё" );   ins( "зсі", "зьсі" );   ins( "зсь", "зьсь" );
342     ins( "зьфе", "зфе" );   ins( "зьфя", "зфя" );   ins( "зьфю", "зфю" );   ins( "зьфё", "зфё" );   ins( "зьфі", "зфі" );
343     ins( "зфе", "зьфе" );   ins( "зфя", "зьфя" );   ins( "зфю", "зьфю" );   ins( "зфё", "зьфё" );   ins( "зфі", "зьфі" );
344     ins( "зьхе", "зхе" );   ins( "зьхя", "зхя" );   ins( "зьхю", "зхю" );   ins( "зьхё", "зхё" );   ins( "зьхі", "зхі" );
345     ins( "зхе", "зьхе" );   ins( "зхя", "зьхя" );   ins( "зхю", "зьхю" );   ins( "зхё", "зьхё" );   ins( "зхі", "зьхі" );
346     ins( "зьце", "зце" );   ins( "зьця", "зця" );   ins( "зьцю", "зцю" );   ins( "зьцё", "зцё" );   ins( "зьці", "зці" );   ins( "зьць", "зць" );
347     ins( "зце", "зьце" );   ins( "зця", "зьця" );   ins( "зцю", "зьцю" );   ins( "зцё", "зьцё" );   ins( "зці", "зьці" );   ins( "зць", "зьць" );
348 
349     ins( "сьбе", "сбе" );   ins( "сьбя", "сбя" );   ins( "сьбю", "сбю" );   ins( "сьбё", "сбё" );   ins( "сьбі", "сбі" );
350     ins( "сбе", "сьбе" );   ins( "сбя", "сьбя" );   ins( "сбю", "сьбю" );   ins( "сбё", "сьбё" );   ins( "сбі", "сьбі" );
351     ins( "сьве", "све" );   ins( "сьвя", "свя" );   ins( "сьвю", "свю" );   ins( "сьвё", "свё" );   ins( "сьві", "сві" );
352     ins( "све", "сьве" );   ins( "свя", "сьвя" );   ins( "свю", "сьвю" );   ins( "свё", "сьвё" );   ins( "сві", "зьві" );
353     ins( "сьдзе", "сдзе" ); ins( "сьдзя", "сдзя" ); ins( "сьдзю", "сдзю" ); ins( "сьдзё", "сдзё" ); ins( "сьдзі", "сдзі" ); ins( "сьдзь", "сдзь" );
354     ins( "сдзе", "сьдзе" ); ins( "сдзя", "сьдзя" ); ins( "сдзю", "сьдзю" ); ins( "сдзё", "сьдзё" ); ins( "сдзі", "сьдзі" ); ins( "сдзь", "сьдзь" );
355     ins( "сьзе", "сзе" );   ins( "сьзя", "сзя" );   ins( "сьзю", "сзю" );   ins( "сьзё", "сзё" );   ins( "сьзі", "сзі" );   ins( "сьзь", "сзь" );
356     ins( "сзе", "сьзе" );   ins( "сзя", "сьзя" );   ins( "сзю", "сьзю" );   ins( "сзё", "сьзё" );   ins( "сзі", "сьзі" );   ins( "сзь", "сьзь" );
357     ins( "сьле", "сле" );   ins( "сьля", "сля" );   ins( "сьлю", "слю" );   ins( "сьлё", "слё" );   ins( "сьлі", "слі" );   ins( "сьль", "сль" );
358     ins( "сле", "сьле" );   ins( "сля", "сьля" );   ins( "слю", "сьлю" );   ins( "слё", "сьлё" );   ins( "слі", "сьлі" );   ins( "сль", "сьль" );
359     ins( "сьме", "сме" );   ins( "сьмя", "смя" );   ins( "сьмю", "смю" );   ins( "сьмё", "смё" );   ins( "сьмі", "смі" );
360     ins( "сме", "сьме" );   ins( "смя", "сьмя" );   ins( "смю", "сьмю" );   ins( "смё", "сьмё" );   ins( "смі", "сьмі" );
361     ins( "сьне", "сне" );   ins( "сьня", "сня" );   ins( "сьню", "сню" );   ins( "сьнё", "снё" );   ins( "сьні", "сні" );   ins( "сьнь", "снь" );
362     ins( "сне", "сьне" );   ins( "сня", "сьня" );   ins( "сню", "сьню" );   ins( "снё", "сьнё" );   ins( "сні", "сьні" );   ins( "снь", "сьнь" );
363     ins( "сьпе", "спе" );   ins( "сьпя", "спя" );   ins( "сьпю", "спю" );   ins( "сьпё", "спё" );   ins( "сьпі", "спі" );
364     ins( "спе", "сьпе" );   ins( "спя", "сьпя" );   ins( "спю", "сьпю" );   ins( "спё", "сьпё" );   ins( "спі", "сьпі" );
365     ins( "сьсе", "ссе" );   ins( "сься", "сся" );   ins( "сьсю", "ссю" );   ins( "сьсё", "ссё" );   ins( "сьсі", "ссі" );   ins( "сьсь", "ссь" );
366     ins( "ссе", "сьсе" );   ins( "сся", "сься" );   ins( "ссю", "сьсю" );   ins( "ссё", "сьсё" );   ins( "ссі", "сьсі" );   ins( "ссь", "сьсь" );
367     ins( "сьфе", "сфе" );   ins( "сьфя", "сфя" );   ins( "сьфю", "сфю" );   ins( "сьфё", "сфё" );   ins( "сьфі", "сфі" );
368     ins( "сфе", "сьфе" );   ins( "сфя", "сьфя" );   ins( "сфю", "сьфю" );   ins( "сфё", "сьфё" );   ins( "сфі", "сьфі" );
369     ins( "сьхе", "схе" );   ins( "сьхя", "схя" );   ins( "сьхю", "схю" );   ins( "сьхё", "схё" );   ins( "сьхі", "схі" );
370     ins( "схе", "сьхе" );   ins( "схя", "сьхя" );   ins( "схю", "сьхю" );   ins( "схё", "сьхё" );   ins( "схі", "сьхі" );
371     ins( "сьце", "сце" );   ins( "сьця", "сця" );   ins( "сьцю", "сцю" );   ins( "сьцё", "сцё" );   ins( "сьці", "сці" );   ins( "сьць", "сць" );
372     ins( "сце", "сьце" );   ins( "сця", "сьця" );   ins( "сцю", "сьцю" );   ins( "сцё", "сьцё" );   ins( "сці", "сьці" );   ins( "сць", "сьць" );
373 
374     ins( "цьбе", "цбе" );   ins( "цьбя", "цбя" );   ins( "цьбю", "цбю" );   ins( "цьбё", "цбё" );   ins( "цьбі", "цбі" );
375     ins( "цбе", "цьбе" );   ins( "цбя", "цьбя" );   ins( "цбю", "цьбю" );   ins( "цбё", "цьбё" );   ins( "цбі", "цьбі" );
376     ins( "цьве", "цве" );   ins( "цьвя", "цвя" );   ins( "цьвю", "цвю" );   ins( "цьвё", "цвё" );   ins( "цьві", "цві" );
377     ins( "цве", "цьве" );   ins( "цвя", "цьвя" );   ins( "цвю", "цьвю" );   ins( "цвё", "цьвё" );   ins( "цві", "цьві" );
378     ins( "цьдзе", "цдзе" ); ins( "цьдзя", "цдзя" ); ins( "цьдзю", "цдзю" ); ins( "цьдзё", "цдзё" ); ins( "цьдзі", "цдзі" ); ins( "цьдзь", "цдзь" );
379     ins( "цдзе", "цьдзе" ); ins( "цдзя", "цьдзя" ); ins( "цдзю", "цьдзю" ); ins( "цдзё", "цьдзё" ); ins( "цдзі", "цьдзі" ); ins( "цдзь", "цьдзь" );
380     ins( "цьзе", "цзе" );   ins( "цьзя", "цзя" );   ins( "цьзю", "цзю" );   ins( "цьзё", "цзё" );   ins( "цьзі", "цзі" );   ins( "цьзь", "цзь" );
381     ins( "цзе", "цьзе" );   ins( "цзя", "цьзя" );   ins( "цзю", "цьзю" );   ins( "цзё", "цьзё" );   ins( "цзі", "цьзі" );   ins( "цзь", "цьзь" );
382     ins( "цьле", "цле" );   ins( "цьля", "цля" );   ins( "цьлю", "цлю" );   ins( "цьлё", "цлё" );   ins( "цьлі", "цлі" );   ins( "цьль", "цль" );
383     ins( "цле", "цьле" );   ins( "цля", "цьля" );   ins( "цлю", "цьлю" );   ins( "цлё", "цьлё" );   ins( "цлі", "цьлі" );   ins( "цль", "цьль" );
384     ins( "цьме", "цме" );   ins( "цьмя", "цмя" );   ins( "цьмю", "цмю" );   ins( "цьмё", "цмё" );   ins( "цьмі", "цмі" );
385     ins( "цме", "цьме" );   ins( "цмя", "цьмя" );   ins( "цмю", "цьмю" );   ins( "цмё", "цьмё" );   ins( "цмі", "цьмі" );
386     ins( "цьне", "цне" );   ins( "цьня", "цня" );   ins( "цьню", "цню" );   ins( "цьнё", "цнё" );   ins( "цьні", "цні" );   ins( "цьнь", "цнь" );
387     ins( "цне", "цьне" );   ins( "цня", "цьня" );   ins( "цню", "цьню" );   ins( "цнё", "цьнё" );   ins( "цні", "цьні" );   ins( "цнь", "цьнь" );
388     ins( "цьпе", "цпе" );   ins( "цьпя", "цпя" );   ins( "цьпю", "цпю" );   ins( "цьпё", "цпё" );   ins( "цьпі", "цпі" );
389     ins( "цпе", "цьпе" );   ins( "цпя", "цьпя" );   ins( "цпю", "цьпю" );   ins( "цпё", "цьпё" );   ins( "цпі", "цьпі" );
390     ins( "цьсе", "цсе" );   ins( "цься", "цся" );   ins( "цьсю", "цсю" );   ins( "цьсё", "цсё" );   ins( "цьсі", "цсі" );   ins( "цьсь", "цсь" );
391     ins( "цсе", "цьсе" );   ins( "цся", "цься" );   ins( "цсю", "цьсю" );   ins( "цсё", "цьсё" );   ins( "цсі", "цьсі" );   ins( "цсь", "цьсь" );
392     ins( "цьфе", "цфе" );   ins( "цьфя", "цфя" );   ins( "цьфю", "цфю" );   ins( "цьфё", "цфё" );   ins( "цьфі", "цфі" );
393     ins( "цфе", "цьфе" );   ins( "цфя", "цьфя" );   ins( "цфю", "цьфю" );   ins( "цфё", "цьфё" );   ins( "цфі", "цьфі" );
394     ins( "цьце", "цце" );   ins( "цьця", "цця" );   ins( "цьцю", "ццю" );   ins( "цьцё", "ццё" );   ins( "цьці", "цці" );   ins( "цьць", "цць" );
395     ins( "цце", "цьце" );   ins( "цця", "цьця" );   ins( "ццю", "цьцю" );   ins( "ццё", "цьцё" );   ins( "цці", "цьці" );   ins( "цць", "цьць" );
396 
397     ins( "дзьдзе", "ддзе" ); ins( "дзьдзя", "ддзя" ); ins( "дзьдзю", "ддзю" ); ins( "дзьдзё", "ддзё" ); ins( "дзьдзі", "ддзі" );
398     ins( "ддзе", "дзьдзе" ); ins( "ддзя", "дзьдзя" ); ins( "ддзю", "дзьдзю" ); ins( "ддзё", "дзьдзё" ); ins( "ддзі", "дзьдзі" );
399 
400     ins( "з'е", "зье" );   ins( "з'я", "зья" );   ins( "з'ю", "зью" );   ins( "з'ё", "зьё" );   ins( "з'і", "зьі" );
401     ins( "зье", "з'е" );   ins( "зья", "з'я" );   ins( "зью", "з'ю" );   ins( "зьё", "з'ё" );   ins( "зьі", "з'і" );
402     ins( "зʼе", "зье" );   ins( "зʼя", "зья" );   ins( "зʼю", "зью" );   ins( "зʼё", "зьё" );   ins( "зʼі", "зьі" );
403     ins( "зье", "зʼе" );   ins( "зья", "зʼя" );   ins( "зью", "зʼю" );   ins( "зьё", "зʼё" );   ins( "зьі", "зʼі" );
404     ins( "з’е", "зье" );   ins( "з’я", "зья" );   ins( "з’ю", "зью" );   ins( "з’ё", "зьё" );   ins( "з’і", "зьі" );
405     ins( "зье", "з’е" );   ins( "зья", "з’я" );   ins( "зью", "з’ю" );   ins( "зьё", "з’ё" );   ins( "зьі", "з’і" );
406   }
407 };
408 
makeDictionaries()409 std::vector< sptr< Dictionary::Class > > makeDictionaries() THROW_SPEC( std::exception )
410 {
411   static BelarusianLatinToClassicTable t0;
412   static BelarusianLatinToSchoolTable t1;
413   static BelarusianSchoolToClassicTable t2;
414   std::vector< sptr< Dictionary::Class > > dicts;
415 
416   dicts.push_back( new Transliteration::TransliterationDictionary( "c31b24abf412abc9b23bb40a898f1040",
417                    QCoreApplication::translate( "BelarusianTranslit", "Belarusian transliteration from latin to cyrillic (classic orthography)" ).toUtf8().data(),
418                    QIcon( ":/flags/by.png" ), t0, false ) );
419   dicts.push_back( new Transliteration::TransliterationDictionary( "c31b24abf412abc9b23bb40a898f1041",
420                    QCoreApplication::translate( "BelarusianTranslit", "Belarusian transliteration from latin to cyrillic (school orthography)" ).toUtf8().data(),
421                    QIcon( ":/flags/by.png" ), t1, false ) );
422   dicts.push_back( new Transliteration::TransliterationDictionary( "c31b24abf412abc9b23bb40a898f1042",
423                    QCoreApplication::translate( "BelarusianTranslit", "Belarusian transliteration (smoothes out the difference\n"
424                                                 "between classic and school orthography in cyrillic)" ).toUtf8().data(),
425                    QIcon( ":/flags/by.png" ), t2, false ) );
426   return dicts;
427 }
428 
429 }
430