Browse Source

Merge pull request #973

master
Juho Hiltunen 3 years ago
parent
commit
38c0bae42f

+ 285
- 285
dictsource/es_rules View File

// translation rules for Spanish
// This file is UTF-8 encoded
// Conditional rules
// ?1 Castilian
// ?2 Latin America
// ?3 mbrola VZ1
.L01 l r y
.L02 b d g n m // change [s] to [z] before these
.L03 f h j r s y z // allow [B] [D] [Q] before these consonants
.L04 b v f p // labials, nasals are [m]
.L05 g k // velars, nasals are [N]
.L06 j w l r b d g n m p t k c
.group a
a a
ai aI
ay (K aI
ay (_ 'aI
au aU
au (_ 'aU
.group b
b b
_) b ($unpr b // phoneme definition may change it to [B]
_) b (L01A b // Only bl, br are allowed at start of word
_) b (A b
b (A B
b (cY B
b (L03 B
m) b b
n) b b
b (iA b
b (uA b
.group c
c k
_) c (L01A k // allow: cl cr at start of word
_) ch tS // allow _ch
c (Y T // ce, ci
ch tS
A) ck k
.group ç
ç s
A) ç (A s
_) ç s
.group d
d d
_) d ($unpr d // phoneme definition may change it to [D]
_) d (rA d
_) d (A d
d (A D
d (_ d
d (_A D
d (cY D
d (L03 D
l) d d
d (v D
m) d d
n) d d
r) d d
.group e
e e
e (nC E
e (Ch e
ei eI
ey (K eI
ey (_ 'eI
eu eU
eu (_ 'eU
.group f
f f
_) f (L01A f // allow fl fr at start of word
.group g
g g
_) g ($unpr g // phoneme definition may change it to [Q]
_) g (L01A g
_) gh (A g // allow _gh in foreign words
_) gn (A n
_) g (A g
g (A Q
g (_A Q
g (_ g
g (cY Q
g (L03 Q
m) g g
n) g g
g (Y+ x // ge gi
n) g (_ // ing
.group h
h // silent
_) hi (A j
.group i
i i
i (A j
C) i (A j
gu) i (A j
?!3 l) i (A %i
?!3 r) i (A %i
?!3 Al) i (A j
?!3 Ar) i (A j
.group j
j x
.group k
k k
_) k (L01A k // allow kl kr at start of word
.group l
l l
ll (_ l^
_) ll (A l^ // allowe _ll
?2 _) ll (A J^
?2 ll j:
?2 n_) ll (A dZ
ll l^
.group m
m m
// @) m (_ =m
_) mn (em n
_) mb (A mb
@@) mente (_S5t m'e/nte
.group n
n n
n (L04 m
n (_L04 m
n (L05 N
n (_L05 N
n (j N
ny (A n^ // catalan words
_) nh (A n
.group o
o o
o (CK o
o (r o
o (Ch o
// Ar) o o
oi oI
oy (K oI
oy (_ 'oI
ou ow
.group p
p p
_) p (L01A p // allow pl pr at start of word
p (t p:
_) ph (A f
ph (@ f
ph (K f
_) ps (i s
_) ps (eudo s
_) pt (ero t
_) pt (ol t
.group q
q k
qu (Y k // que, qui
_) qw (A kw // qwerty
.group rr
rr rr
.group r
r r
r (_ r
r (t r
A) r (A r
C) r (A r
_) r (A rr
l) r (A R2
m) r (A R2
n) r (A R2
s) r (A R2
.group s
s s
&) s (_S1 s
_) s (K@ s
ss s:
_) sh (A S
_) sh (L01A S
sh (K S
?!1 sc (Y s // sce sci for non castilian accent
.group t
t t
_) t (L01A t // all tr at start of word
_) th (@ t
th (K t
_) tx (A tS
tx tS
.group u
u u
u (u u
u (A w
!?3 l) u (A %u
!?3 r) u (A %u
g) u (e
g) u (i
g) u (é
g) u (í
.group v
v b
_) v ($unpr b // phoneme definition may change it to [B]
_) v (L01A b // Only bl, br are allowed at start of word
_) v (A b
v (A B
v (cY B
v (L03 B
m) v b
n) v b
v (iA b
v (uA b
.group w
w w
_) wh (A w
.group x
x ks
_) x ($unpr s // ?
?!1 xc (Y ks // xce xci for non castilian accent
me) x (ic x // mexicano, mexicana, etc.
.group y
y i
_) y ($unpr J
_m) y (A j
_l) y (A j
y (A j:
_) y (A J^
u) y (K j:
n_) y (A dZ
y (_ i
.group z
z T
zz ts
.group
á ''a
é ''e
í ''i
ó ''o
ú ''u
ü u
ñ n^
$ d'olar
_) - (D m'Enos
A_) - (_D _
C_) - (_D _
, (D koma
// translation rules for Spanish
// This file is UTF-8 encoded
// Conditional rules
// ?1 Castilian
// ?2 Latin America
// ?3 mbrola VZ1
.L01 l r y
.L02 b d g n m // change [s] to [z] before these
.L03 f h j r s y z // allow [B] [D] [Q] before these consonants
.L04 b v f p // labials, nasals are [m]
.L05 g k // velars, nasals are [N]
.L06 j w l r b d g n m p t k c
.group a
a a
ai aI
ay (K aI
ay (_ 'aI
au aU
au (_ 'aU
.group b
b b
_) b ($unpr b // phoneme definition may change it to [B]
_) b (L01A b // Only bl, br are allowed at start of word
_) b (A b
b (A B
b (cY B
b (L03 B
m) b b
n) b b
b (iA b
b (uA b
.group c
c k
_) c (L01A k // allow: cl cr at start of word
_) ch tS // allow _ch
c (Y T // ce, ci
ch tS
A) ck k
.group ç
ç s
A) ç (A s
_) ç s
.group d
d d
_) d ($unpr d // phoneme definition may change it to [D]
_) d (rA d
_) d (A d
d (A D
d (_ d
d (_A D
d (cY D
d (L03 D
l) d d
d (v D
m) d d
n) d d
r) d d
.group e
e e
e (nC E
e (Ch e
ei eI
ey (K eI
ey (_ 'eI
eu eU
eu (_ 'eU
.group f
f f
_) f (L01A f // allow fl fr at start of word
.group g
g g
_) g ($unpr g // phoneme definition may change it to [Q]
_) g (L01A g
_) gh (A g // allow _gh in foreign words
_) gn (A n
_) g (A g
g (A Q
g (_A Q
g (_ g
g (cY Q
g (L03 Q
m) g g
n) g g
g (Y+ x // ge gi
n) g (_ // ing
.group h
h // silent
_) hi (A j
.group i
i i
i (A j
C) i (A j
gu) i (A j
?!3 l) i (A %i
?!3 r) i (A %i
?!3 Al) i (A j
?!3 Ar) i (A j
.group j
j x
.group k
k k
_) k (L01A k // allow kl kr at start of word
.group l
l l
ll (_ l^
_) ll (A l^ // allowe _ll
?2 _) ll (A J^
?2 ll j:
?2 n_) ll (A dZ
ll l^
.group m
m m
// @) m (_ =m
_) mn (em n
_) mb (A mb
@@) mente (_S5t m'e/nte
.group n
n n
n (L04 m
n (_L04 m
n (L05 N
n (_L05 N
n (j N
ny (A n^ // catalan words
_) nh (A n
.group o
o o
o (CK o
o (r o
o (Ch o
// Ar) o o
oi oI
oy (K oI
oy (_ 'oI
ou ow
.group p
p p
_) p (L01A p // allow pl pr at start of word
p (t p:
_) ph (A f
ph (@ f
ph (K f
_) ps (i s
_) ps (eudo s
_) pt (ero t
_) pt (ol t
.group q
q k
qu (Y k // que, qui
_) qw (A kw // qwerty
.group rr
rr R2
.group r
r r
r (_ r
r (t r
A) r (A r
C) r (A r
_) r (A R2
l) r (A R2
m) r (A R2
n) r (A R2
s) r (A R2
.group s
s s
&) s (_S1 s
_) s (K@ s
ss s:
_) sh (A S
_) sh (L01A S
sh (K S
?!1 sc (Y s // sce sci for non castilian accent
.group t
t t
_) t (L01A t // all tr at start of word
_) th (@ t
th (K t
_) tx (A tS
tx tS
.group u
u u
u (u u
u (A w
!?3 l) u (A %u
!?3 r) u (A %u
g) u (e
g) u (i
g) u (é
g) u (í
.group v
v b
_) v ($unpr b // phoneme definition may change it to [B]
_) v (L01A b // Only bl, br are allowed at start of word
_) v (A b
v (A B
v (cY B
v (L03 B
m) v b
n) v b
v (iA b
v (uA b
.group w
w w
_) wh (A w
.group x
x ks
_) x ($unpr s // ?
?!1 xc (Y ks // xce xci for non castilian accent
me) x (ic x // mexicano, mexicana, etc.
.group y
y i
_) y ($unpr J
_m) y (A j
_l) y (A j
y (A J^
_) y (A J^
u) y (K j
n_) y (A dZ
y (_ i
.group z
z T
zz ts
.group
á ''a
é ''e
í ''i
ó ''o
ú ''u
ü u
ñ n^
$ d'olar
_) - (D m'Enos
A_) - (_D _
C_) - (_D _
, (D koma

+ 20
- 10
dictsource/eu_list View File

etara $u etara $u


// Abbreviations // Abbreviations
adib ad'ibidez $hasdot
adib ad'ibid,ez $hasdot


// proper names and surnames // proper names and surnames
juan $alt juan $alt
jorge $1 x'orxe jorge $1 x'orxe
jose $1 $alt jose $1 $alt
josé $alt josé $alt
joaquín $alt
joaquín xoak'in
joaquin xoak'in
julian xulj'an
julián xulj'an
jacinto xaT'into
jiménez xim'eneT
genaro xen'aro
gonzález gonT'aleT
san $u $only $only san $u $only $only
santo $u santo $u
aristoteles $3 aristoteles $3
hume hjum $1 hume hjum $1
humer hjum humer hjum
google g'uQ@l
googler g'uQ@l
moodle m'uD@l
moodler m'uD@l
doodle d'uD@l
doodler m'uD@l
google g'uQel
googler g'uQel
moodle m'uDel
moodler m'uDel
doodle d'uDel
doodler m'uDel
nietztsche n'itSe nietztsche n'itSe
ainara $alt3 ainara $alt3


aktibist $3 aktibist $3
alajain $alt alajain $alt
album $1 album $1
[aldez-alde] 'alDez_'alDe
[aldez-alde] 'alDez_'alDe
(aldez-alde) aldezalde $text
alfanumeriko $4 alfanumeriko $4
algebra $1 $alt algebra $1 $alt
aljebraiko $3 $alt aljebraiko $3 $alt
alokutibo $4 alokutibo $4
alproj $alt alproj $alt
alprojakeri $alt alprojakeri $alt
(bat-batean) bapatean $text
ijito $alt
garaje $alt
jertse xerts'e

+ 223
- 252
dictsource/eu_rules View File

// This file is UTF8 encoded
// Spelling-to-phoneme rules for Basque
// $w_alt j as [x]
// $w_alt2 don't palatalise l
// $w_alt3 don't palatalise n
.L01 b d g
.L02 e i
.group a
a a
ai aI
au aU
a (_S1 a
ak (_S2 ak
ari (_S3 ari
aren (_S4 a**en
arekin (_S6 a**ekin
arentzat (_S8 a**entzat
arentzako (_S9 arentzako
an (_S2 an
atik (_S4 atik
ara (_S3 a**a
arat (_S4 arat
atatik (_S6 atatik
atara (_S5 ata**a
atarat (_S5 atarat
ako (_S3 ako
atako (_S5 atako
araino (_S6 a**ain^o
ataraino (_S8 ata**an^o
arantz (_S6 a**antz
atarantz (_S8 a**antz
agana (_S5 agana
arengana (_S8 a**engana
arenganaino (_s11 a**enganain^o
arengatik (_S9 a**engatik
atzat (_S5 atzat
.group b
b b
_ez_) b (A p'
.group c
c k
c (L02 T
ch tS
.group d
d d
dd J
A) d (A D // ??
_ez_) d (A t'
.group e
e e
ei eI
ehi eI
l) ehi (A eI
eu eU
ek (_S2 ek
ei (_S2 eI
en (_S2 en
ean (_S3 ean
etan (_S4 etan
etatik (_S6 etatik
etara (_S5 eta**a
erat (_S4 erat
etako (_S5 etako
eko (_S3 eko
etarako (_S7 etarako
etarantz (_S8 eta**antz
etaraino (_S8 eta**aino
engana (_S6 engana
entzat (_S6 entzat
entzako (_S7 entzako
engatik (S7 engatik
ekin (_S4 ekin
ekiko (_S5 ekiko
ez (_S2 ez
etaz (_S4 etaz
.group f
f f
.group g
g g
A) g (A Q // ??
_ez_) g (A k'
gana (_S4 gana
go (_S2 go
.group h
h // silent
zi) h (o x
.group i
i i
K) i (_S1 i
le) i (h j
arraz) i (on j
.group j
j J // try [x] [J] [j] [J^] [Z] [S]
j ($w_alt x
.group k
k k
ko (_S2 ko
.group l
l l
ll l^
_ez_) l (A l'
l ($w_alt2 l2 _afi) l (ia l2
.group m
m m
.group n
n n
n (_S1 n
n ($w_alt3 n2 mi) n (is n2
afi) n (i n2
agluti) n (A n2
alpi) n (A n2
.group o
o o
oi oI
.group p
p p
.group q
q k
.group r
r r
_) r R2
rr R2
A) ri (_S2 ri
ren (_S3 ren
ra (_S2 ra
rat (_S3 rat
rantz (_S5 rantz
raino (_S5 raino
rako (_S4 rako
rentzat (_S7 rentzat
rentzako (_S8 rentzako
rekin (_S5 rekin
rengan (_S6 rengan
rengana (_S7 rengana
rengandik (_S9 rengandik
rengatik (_S8 rengatik
.group s
s s
.group t
t t
ts ts
tt c
tx tS
tz tz
tan (_S3 tan
tara (_S4 tara
tarat (_S5 tarat
tik (_S3 tik
tatik (_S5 tatik
taz (_S3 taz
tu (_S2 tu
tuko (_S4 tuko
tzen (_S4 tzen
ten (_S3 ten
.group u
u u
.group v
v b
.group w
w u
.group x
x S
.group y
y jj
.group z
z z
_e) z (_L01 %z
_e) z (_l
z (_S1 z
.group
á ''a
é ''e
í ''i
ó ''o
ú ''u
ç s
ü y
ñ n^
// This file is UTF8 encoded
// Spelling-to-phoneme rules for Basque
// $w_alt j as [x]
// $w_alt2 don't palatalise l
// $w_alt3 don't palatalise n

.L01 b d g
.L02 e i

.group a
a a
ai aI
au aU
a (_S1 a
ak (_S2 ak
ari (_S3 ari
aren (_S4 a**en
arekin (_S6 a**ekin
arentzat (_S8 a**entzat
arentzako (_S9 arentzako
an (_S2 an
atik (_S4 atik
ara (_S3 a**a
arat (_S4 arat
atatik (_S6 atatik
atara (_S5 ata**a
atarat (_S5 atarat
ako (_S3 ako
atako (_S5 atako
araino (_S6 a**ain^o
ataraino (_S8 ata**an^o
arantz (_S6 a**antz
atarantz (_S8 a**antz
agana (_S5 agana
arengana (_S8 a**engana
arenganaino (_s11 a**enganain^o
arengatik (_S9 a**engatik
atzat (_S5 atzat

.group b
b b
_ez_) b (A p'

.group c
c k
c (L02 T
ch tS

.group d
d d
dd J
A) d (A D // ??
_ez_) d (A t'

.group e
e e
ei eI
ehi eI
l) ehi (A eI
eu eU
ek (_S2 ek
ei (_S2 eI
en (_S2 en
ean (_S3 ean
etan (_S4 etan
etatik (_S6 etatik
etara (_S5 eta**a
erat (_S4 erat
etako (_S5 etako
eko (_S3 eko
etarako (_S7 etarako
etarantz (_S8 eta**antz
etaraino (_S8 eta**aino
engana (_S6 engana
entzat (_S6 entzat
entzako (_S7 entzako
engatik (S7 engatik
ekin (_S4 ekin
ekiko (_S5 ekiko
ez (_S2 ez
etaz (_S4 etaz

.group f
f f

.group g
g g
A) g (A Q // ??
_ez_) g (A k'
gana (_S4 gana
go (_S2 go

.group h
h // silent
zi) h (o x

.group i
i i
K) i (_S1 i
le) i (h j

.group j
A) j j
A_) j j
j J // try [x] [J] [j] [J^] [Z] [S]
j ($w_alt x

.group k
k k
ko (_S2 ko

.group l
l l
i) lh (A l2
ll l^
_ez_) l (A l'
l ($w_alt2 l2
_afi) l (ia l2
_ki) l (o l2

.group m
m m

.group n
n n
n (_S1 n
n ($w_alt3 n2
i) nh (A n2
mi) n (is n2
afi) n (i n2
agluti) n (A n2
alpi) n (A n2

.group o
o o
oi oI

.group p
p p

.group q
q k
qu (L02 k // que, qui
_) qw (A kw // qwerty


.group r
r r
_) r R2
rr R2
A) ri (_S2 ri
ren (_S3 ren
ra (_S2 ra
rat (_S3 rat
rantz (_S5 rantz
raino (_S5 raino
rako (_S4 rako
rentzat (_S7 rentzat
rentzako (_S8 rentzako
rekin (_S5 rekin
rengan (_S6 rengan
rengana (_S7 rengana
rengandik (_S9 rengandik
rengatik (_S8 rengatik

.group s
s s

.group t
t t
ts ts
tt c
tx tS
tz tz
tan (_S3 tan
tara (_S4 tara
tarat (_S5 tarat
tik (_S3 tik
tatik (_S5 tatik
taz (_S3 taz
tu (_S2 tu
tuko (_S4 tuko
tzen (_S4 tzen
ten (_S3 ten

.group u
u u

.group v
v b

.group w
w u

.group x
x S
_se) x (u ks
_o) x (i ks
_ta) x (i ks
_a) x (iom ks
_fle) x (io ks

.group y
y jj

.group z
z z
_e) z (_L01 %z
_e) z (_l
_e) z (_n
_e) z (_zA tz // It should transform verbs starting with z like "ez zait" to "etzait", but I am unable to merge both words... Also, adding each auxiliary verb in eu_list is unfeasible.
z (_S1 z

.group
á ''a
é ''e
í ''i
ó ''o
ú ''u
ç s
ü y
ñ n^


+ 1
- 0
espeak-ng-data/lang/eu View File

language eu language eu


status testing status testing
stressRule 15

+ 14
- 0
src/libespeak-ng/dictionary.c View File

max_stress = STRESS_IS_PRIMARY; max_stress = STRESS_IS_PRIMARY;
} }
break; break;
case 15: // LANG=eu. If more than 2 syllables: primary stress in second syllable and secondary on last.
if ((stressed_syllable == 0) && (vowel_count > 2)) {
for (ix = 1; ix < vowel_count; ix++) {
vowel_stress[ix] = STRESS_IS_DIMINISHED;
}
stressed_syllable = 2;
if (max_stress == STRESS_IS_DIMINISHED)
vowel_stress[stressed_syllable] = STRESS_IS_PRIMARY;
max_stress = STRESS_IS_PRIMARY;
if (vowel_count > 3) {
vowel_stress[vowel_count - 1] = STRESS_IS_SECONDARY;
}
}
break;
} }


if ((stressflags & S_FINAL_VOWEL_UNSTRESSED) && ((control & 2) == 0) && (vowel_count > 2) && (max_stress_input < STRESS_IS_SECONDARY) && (vowel_stress[vowel_count - 1] == STRESS_IS_PRIMARY)) { if ((stressflags & S_FINAL_VOWEL_UNSTRESSED) && ((control & 2) == 0) && (vowel_count > 2) && (max_stress_input < STRESS_IS_SECONDARY) && (vowel_stress[vowel_count - 1] == STRESS_IS_PRIMARY)) {

+ 1
- 2
src/libespeak-ng/tr_languages.c View File

static const short stress_lengths_eu[8] = { 200, 200, 200, 200, 0, 0, 210, 230 }; // very weak stress static const short stress_lengths_eu[8] = { 200, 200, 200, 200, 0, 0, 210, 230 }; // very weak stress
static const unsigned char stress_amps_eu[8] = { 16, 16, 18, 18, 18, 18, 18, 18 }; static const unsigned char stress_amps_eu[8] = { 16, 16, 18, 18, 18, 18, 18, 18 };
SetupTranslator(tr, stress_lengths_eu, stress_amps_eu); SetupTranslator(tr, stress_lengths_eu, stress_amps_eu);
tr->langopts.stress_rule = STRESSPOSN_2L; // ?? second syllable, but not on a word-final vowel
tr->langopts.stress_flags = S_FINAL_VOWEL_UNSTRESSED;
tr->langopts.stress_flags = S_FINAL_VOWEL_UNSTRESSED | S_MID_DIM;
tr->langopts.param[LOPT_SUFFIX] = 1; tr->langopts.param[LOPT_SUFFIX] = 1;
tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_VIGESIMAL; tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_HUNDRED_AND | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_VIGESIMAL;
} }

+ 4
- 4
tests/language-pronunciation.test View File

sim b,erQu'EnTa sim b,erQu'EnTa
la m'as ,ekskis'ita tSamp'an^a Del men'u" "Benjamín pidió una bebida de kiwi y fresa; Noé, sin vergüenza, la más exquisita champaña del menú." "Latn" la m'as ,ekskis'ita tSamp'an^a Del men'u" "Benjamín pidió una bebida de kiwi y fresa; Noé, sin vergüenza, la más exquisita champaña del menú." "Latn"
test_phon et "p'8dU1r z'agrebi tS'ellom,&Ngijaf'Yl^jetonist ts'iko k'ylmetas k'ehvas kar'a:Zis" "Põdur Zagrebi tšellomängija-följetonist Ciqo külmetas kehvas garaažis." "Latn" test_phon et "p'8dU1r z'agrebi tS'ellom,&Ngijaf'Yl^jetonist ts'iko k'ylmetas k'ehvas kar'a:Zis" "Põdur Zagrebi tšellomängija-följetonist Ciqo külmetas kehvas garaažis." "Latn"
test_phon eu "giz'onem'akum,e Quzt'i;ak 'aske JaI'otzen di**'a
du'intas,un ,eta esk'uBiD,e BerB'e**ak Dit'uztel,a
,eta ez'aQu,e**a_:_: ,eta kontz'i;entz,i;a Dut'enez Q'e**o
elk'aR2en art'ean sen'iDe leQ'ez Jok'atu Be'aR2a D'ute" "Gizon-emakume guztiak aske jaiotzen dira, duintasun eta eskubide berberak dituztela; eta ezaguera eta kontzientzia dutenez gero, elkarren artean senide legez jokatu beharra dute." "Latn"
test_phon eu "giz'onem'akum,e Quzt'i;,ak 'aske jaI'otz,en di**'a
du'intas,un ,eta esk'uBiD,e BerB'e**,ak Dit'uztel,a
,eta ez'aQue**,a_:_: ,eta kontz'i;entzi;,a Dut'en,ez Q'e**o
elk'aR2,en art'e,an sen'iD,e leQ'ez Jok'at,u Be'aR2,a D'ute" "Gizon-emakume guztiak aske jaiotzen dira, duintasun eta eskubide berberak dituztela; eta ezaguera eta kontzientzia dutenez gero, elkarren artean senide legez jokatu beharra dute." "Latn"
test_phon fi "l'orun s'aNNem p'ieneksI h'yYdyksI j'&iv&t s'uomeN k'irjaimet" "Lorun sangen pieneksi hyödyksi jäivät suomen kirjaimet." "Latn" test_phon fi "l'orun s'aNNem p'ieneksI h'yYdyksI j'&iv&t s'uomeN k'irjaimet" "Lorun sangen pieneksi hyödyksi jäivät suomen kirjaimet." "Latn"
test_phon fr "byv'e d@- s@- (en)w'Iski(fr) k@ l@- patr'O~ Z'yZ fam'Y test_phon fr "byv'e d@- s@- (en)w'Iski(fr) k@ l@- patr'O~ Z'yZ fam'Y
sa m@- f'E p'Wr d@- fEt'e nO'El l'a sa m@- f'E p'Wr d@- fEt'e nO'El l'a

Loading…
Cancel
Save