From bc7ef715562cabe6710a3e8c08fd2300397766cd Mon Sep 17 00:00:00 2001 From: jonsd Date: Wed, 6 Jun 2007 16:03:52 +0000 Subject: [PATCH] [1.25.18] Adjusted [la], [wi] Added mechanism to reduce [t] before unstressed vowels (for en-us) Fixed X (no vowels) operator in pre-rules in *_rules files. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@35 d46cf337-b52f-0410-862d-fd96e6ae7743 --- dictsource/af_list | 12 +- dictsource/af_rules | 52 +++++-- dictsource/dict_phonemes | 24 +-- dictsource/en_list | 2 +- dictsource/hr_list | 329 +++++++++++++++++++++++++++++++-------- dictsource/hr_rules | 81 +++++----- phsource/compile_report | 76 ++++----- phsource/l/_l | Bin 1018 -> 1018 bytes phsource/l/l | Bin 673 -> 673 bytes phsource/l/la | Bin 690 -> 690 bytes phsource/ph_af | 4 +- phsource/ph_croatian | 15 +- phsource/ph_english_us | 15 +- phsource/ph_welsh | 7 +- phsource/phonemes | 1 + phsource/r3/r_trill3.wav | Bin 39980 -> 2220 bytes phsource/r3/r_trill4.wav | Bin 0 -> 39980 bytes phsource/vwl_en_us/a | Bin 6237 -> 6237 bytes phsource/w/_w | Bin 680 -> 680 bytes phsource/w/w | Bin 679 -> 679 bytes phsource/w/wi | Bin 962 -> 962 bytes phsource/w/wi2 | Bin 962 -> 1283 bytes src/dictionary.cpp | 18 ++- src/phoneme.h | 1 + src/phonemelist.cpp | 20 +-- src/synthdata.cpp | 2 +- src/synthesize.cpp | 6 + src/synthesize.h | 1 + src/translate.h | 4 +- 29 files changed, 465 insertions(+), 205 deletions(-) create mode 100755 phsource/r3/r_trill4.wav diff --git a/dictsource/af_list b/dictsource/af_list index 79fa4f18..c6f66b24 100755 --- a/dictsource/af_list +++ b/dictsource/af_list @@ -53,8 +53,8 @@ _4 'fir _5 'feIf _6 'sEs _7 'se@v@ -_8 _'axt -_9 'ne@x@ +_8 _'ax2t +_9 'ne@x2@ _10 'tin _11 _'&lf _12 'tw'A:lf @@ -97,7 +97,6 @@ mosambiek musamb'ik thaba tA:ba (thaba nchu) tab'A:||ntSu europa Y@r'o@pa -paarl p&:r@L portugal $1 pretoria prit'o@ria stellenbosch st%&l@mbOs @@ -111,6 +110,7 @@ André 'andreI annette an'Et aucamp @Ukamp benjamin bEndZ@m@n +bester b'Est@r botha bo@ta bothma bOtma breytenbach breIt@nbax2 @@ -126,6 +126,7 @@ der d@r deventer d'e@v@nt@r elize il'i:z esegiël is'e@x2i_@l +estelle %ist&l eugene judZ'i:n eugène yZ'En ferreira f@r&:r@ @@ -138,8 +139,9 @@ grange x2rA:nsi gustav gustaf jacobus jako@bWs jacques ZA:k +jean ZA~n jesus ji:sWs -joey dZ@ui +joey dZ@Ui john _^_EN le l@ leandra li'andra @@ -150,6 +152,7 @@ louis luI louise luw'i:z louw l'@U maria mar'ia +martin m'A:rt@n michiel $2 natasha n%at'aSa paul p@Ul @@ -555,6 +558,7 @@ vergete f@rx2e@t@ vergewe f@rx2e@v@ vermy $2 verre f&:r@ +verregaande f&r@x2'A:nd@ verreweg f&r@v&x2 verse f&:rs@ vers f&:rs diff --git a/dictsource/af_rules b/dictsource/af_rules index 8ec283e4..a274c405 100755 --- a/dictsource/af_rules +++ b/dictsource/af_rules @@ -79,6 +79,7 @@ aanwen (_ 'A:nvEn // to correct pronunciation of e in aanwen/aanwending _) af (@P2 'af // afbreek/afdwaal/afdwing C) afel (@ A:f@l // compounds starting with tafel/ontrafeling/uitrafeling + _) a (ffA %a // move default stress: affêre and compounds/affekteer afgee (+ 'afx2e@ // see rule: _) afge (@P4 afx2@ _) afge (@P4 'afx2@ // stress on 1st slb afrik (aan %afr%ik // exception to af prefix and move stress to end @@ -105,6 +106,7 @@ agent ax2'Ent algemeen 'alx2@m,e@n alleen %ale@n // to handel stress in compounds with alleen + alleni (g %ale@n@ // fix stress and e sound: allenig and derivitives, eg. allenigheid amandel am'and@l // amandel/s/-poeding/-tert... _) am (A %am // amorfe/amok/amortisasie/amalgamasie amer (ik %ame@r // Amerika/Amerikaner @@ -140,6 +142,7 @@ .group an an (djie+ aIN ange (lier %aN@ // angelier/-e and compounds + an (gina %aN // move default stress, fix n/g sounds: angina angl (A %A~Nx2l% // anglikaans/anglisisme/anglofiel angola A~Nx2'o@la //Angola, Angolabos etc. angol (e %A~Nx2%ul //Angolese etc. @@ -163,7 +166,9 @@ _) be (@P2 b@ @) be (C b@ C) be (rsie b'&: //kombersie etc. - @) ba (rend b'A: // onrusbarend/opsienbarend and derivitives + band (A bant // fix t sound: bandomslag/-ontwerp/-opname + band (e band // fix d sound: bandeverkoper moterbande etc. + @) ba (ren b'A: // onrusbarend/opsienbarend and derivitives ba (ret b%a // move default stress and shorten a sound: baret/-te ba (riton ba // shorten a sound: bariton and compounds basi (s bA:s@ // basis and compounds @@ -218,7 +223,7 @@ ba (lkon b%a // move default stress: balkon and compounds ballade b%alA:d@ // move default stress: ballade and compounds baller (inA b%al@r // move default stress: ballerina/-o and compounds - ba (llet b%a // move default stress: ballet and compounds + balle (t b%alE // move default stress: ballet and compounds ba (lletjie ba // restore default stress: balletjie/-s ba (llon b%a // move default stress: ballon and compounds ballo (t b,alO // move default stress: ballotasie/balloteer @@ -311,6 +316,7 @@ deur (weeC d%y@r // move default stress: deurweef/deurweek/-te diaken d%iA:k@n // diaken and compounds dia (m d%i%a // diamant and compounds + di (GK dI // force default stress: GEDIG/-TE/digbundel/digvorm, etc. dilemma d@lEma // dilemma and compounds &) ding (_S4 dIN direk d%irEk // direk/-sie/-te/-theid/indirek... @@ -515,6 +521,7 @@ &) ers (_ @rs &) erei (_ @reI e (r & + Ank) e (r@ @ // ankerpaal/kankerlyer/donkerbril lew) e (ns @ &d) e (r@ @ // not initial or final syllable @@ -604,7 +611,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar @ks) e (ms @ // bliksems and compounds @) e (spel_ @ //gebarespel/kleurespel/klokkespel/parespel/poppespel/samespel/snarespel ar) e (sse_ 'E // bibliotekaresse/sekretaresse - _s) e (na @ //senator and friends + Ks) e (na @ //senator and friends/watsenaam p) e (talje @ // fix stress and 1st e sound: petalje and compounds interpr) e (teer @' //stress and e sound interpreteer _) e (ks %E //move default stress in words starting with eks @@ -635,6 +642,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar @) fonie fun'i // kakofonie/simfonieorkes/telefonie fon (tein f%On // move default stress: fontein/fonteinwater, etc. _) for (C f%Or // formeel/formele/forseer/fortuin + formi (da f%Orm%i // move default stress: formidabel/-e _) for (se_ f'Or // stress back to 1st slb; se rule: _) for (C foto fo@tu fo (togra fo@ // move default stress: fotograaf and similar @@ -718,6 +726,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar h (h @C) hal (sA h'al // reikhalsend/waaghalsig hal (sstar h%al // move default stress: + hand (o hant? // fix d sound: handopsteek/handoplegging _) hane (C hA:n@ // hanekam/hanekraai/hanepoot/hanetree hard (C@ h%art // hardhorend/hardkoppig/hardnekkig/hardvogtig hard (lo hart // restore default stress: hardloop/hardloper @@ -729,7 +738,9 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar hemel he@m@l // hemelblou/hemelhoog and many compounds with hemel _) her (@P3 h%&r herder h'&rd@r - here (_ he@r@ + her (eK he@r // here/herehuis/heretjie + her (eni h%&r? // fix e sound and stress: herenig + her (eva h&r? // fix e sound: herevalueer... hersen h&rs@n // restore default stress and fix 2nd e sound: hersenskim/-me/-mig/hersenskudding hel h&l _) helde h'&ld@ // heldedade/heldedood/heldemoed... @@ -756,11 +767,10 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar ie i _) iese (C ,is@ // iesegrimmig and derivitives ieus i'Y@s // this ending always takes stress + C) i (g @// figuur/figure/stoksielsaligalleenA i (tief @ i (tiew @ def) i (n @ - f) i (guu @ //figuur - f) i (gure_ @ //figure at word end C) iater i'A:t@r // psigiater/pediater C) iatrie iatr'i // psigiatrie/pediatrie C) iatries i'A:tris // psigiatries/pediatries @@ -843,6 +853,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar ar) is (_ =@s // but sekretaris/argivaris/kommissaris litar) is 'Is // but militaris AC) iste (_ 'Ist@ // aktiviste/humaniste/kommuniste/pianiste/soliste/violiste + @C) isties 'Istis // kommunisties/liberalisties/humanisties @) iseer is'e@r // analiseer/kategoriseer @) iseren (d is'e@r@n // analiserend/kategoriserend @f) iek (_ 'ik // manjefiek/compounds @@ -962,6 +973,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar kolonel kOl@n'&l ko (loni k%u // kolonie/-s/kolonialisme/koloniseer kolo (ssa k,Olu // move default stress: kolossaal/kolossale + kolo (sK k%ulO // move default stress and fix 1st e sound: kolos/-se kombuis kOmb'Yys ko (medi k%u // move default stress, correct o sound komitee kOm@te@ @@ -1065,6 +1077,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar media mi:dia // compounds of media me (dium mi: // fix e sound mee (doë m%e@ // move default stress + meerder (jar m%e@rd@r // move default stress: meerderjarig/-e/-es/-verklaring medisyne m@d@s'eIn@ //medisyne and compounds meganies m@x2'A:nis _) meege (@P5 m'e@x2@ @@ -1100,8 +1113,10 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar mevrou m@fr'@U middagete m'Idax2_e@t@ // middagete/s middel mId@l // middellyf/middelpunt/middelste/bemiddelend + middel (jar m@d@l // move default stress: middeljarig and derivitives milit m@l@t // militêr/militaris minag m'Inax2 // minag/geminag/minagting/minagtend + minder (jar m@n@r // move default stress: minderjarig and derivitives miner (A m@n@r // mineraal and many compounds mi (neur m%i // move default stress: mineur and compounds mikr (o mikr @@ -1114,7 +1129,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar mis (lik m'Is // default stress again _) mis (m m@s // mismaak/-te/mismoedig mis (noeg m@s // stress on 2nd slb - mis (o m@s_ // misoes/misopvatting + mis (o mIs // misoes/misopvatting mis (plaas m@s // stress on 2nd slb mis (rabel m@s // stress on 2nd slb mis (reken m@s // stress on 2nd slb @@ -1194,6 +1209,8 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar netel ne@t@l // netelig and derivitives/netel and compounds nommer (een n%Om@r? // stress: nommereen in compounds like nommereenspeler normaal nOrm'A:l // normaal/normaalweg/abnormaal + nostal (gie_N n%Ost%al // stress on last slb.: nostalgie + no (stalgie n%O // stress on 2nd slb.: nostalgies nou (keu n%@U // noukeurig/-e/-heid/onnoukeurig no (velle n%u // move default stress and fix o sound november no@f'Emb@r // fix 1st e sound and stress: November and compounds @@ -1287,6 +1304,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar omgewing Omx2'e@vIN om (h %Om // omhels/omhein/omhoog/omhul om (ha Om // restore default stress: omhaal/omhang/omhaak + omkeer Omke@r // restore default stress: omkeer/handomkeer and similar _) omker (A Omke@r // omkering/omkerende om (ring %Om // move default stress om (sig %Om // move default stress: omsigtig/-heid @@ -1301,6 +1319,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar onheil (spel %Onh%eIl // stress: onheilspellend/e onreg 'Onr&x2 // stress: onreg/te on (regv+ %On // stress: onregverdig/e/heid + on (skuld_N 'On // restore default stress: onskuld _) ont (@P3 %Ont ont (d@ %On // remove t sound: ontdaan/belastingontduiking/ontdooi onteenseg Onte@ns'&x2 // onteenseglik/e @@ -1368,6 +1387,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar oppon (A %Op@n // opponent/opponeer op (roerig %Op // oproerig/-e/-heid, but oproer op (sienb %Op // opsienbare/opsienbarend + opti (mA %Opt%i // optimis/-me/-te/-ties/optimaal op (winde %Op // move default stress: opwindend and derivitives organisasie Orx2anis'A:si @) oties 'o@tis // antibioties/eksoties/eroties/neuroties @@ -1383,9 +1403,11 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar .group p p p p (p + _) paarl p&:r@L // Paarl/Paarlberg/Paarlvallei pajama p@dZ'A:ma //pajama and compounds pak (A pak? // pakesel/pakos/verpakafdeling pakistan p%ak%istan //first a and stress + pakke (t p%akE // pakket/-te and compounds panga paNga // fix g sound: panga/-s papaja pap'AIa //papaja and compounds pam (C p%am // move default stress: pamflet/pampoen/pampoentjies and compounds @@ -1405,6 +1427,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar pastorie pastur'i // pastorie/-paar/-moeder _) pa (tA p%a // pateties/patee/patent/paterniteit pa (trA p%a // patrollie/patroon/patrys + pawil (joe p%av@l // move default stress and fix a sound: pawiljoen and compounds polio po@li;u // polio and compounds // @) pene (_ p@n@ // geroepene/ontslapene/uitgeworpene pene (_ p@n@ // geroepenes/ontslapenes/uitgeworpenes @@ -1702,6 +1725,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar @) stiek st'ik // statistiek/akoestiek/artistiek and many similar @) sties =st%is // statisties/akoesties/artisties and many similar sti (pulA st@ // stipuleer/stipulering/stipulasie + stof (o stOf? // fix 1st o sound: stofomslag/-omslae/stofopskoppery stok (A stOk? // stokagtig/stokinsek/stokoud stok (e sto@k // stoker/-y storm stOr@-m @@ -1715,7 +1739,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar su (mmier s%W // move default stress: sumier/-e swag sv'ax2 swart (gal sw%art // move default stress: swartgallig - swerk sv'&rk + swerk sv&rk swinkel svINk@l .group t @@ -1727,6 +1751,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar _) ta (ma t%a // tamatie and compounds _) ta (mb t%a // tamboer and compounds/tambotie and compounds _) tant (e tA~nt // nasalise + taverne t%af&rn@ // fix stress and 1st e sound: taverne and compounds te (aa t@ // beroerteaanval/geboorteaanwas/lenteaand... _) tekere t@ke@r@ // move default stress and correct e sounds tele (C t%&l@ // telefoneer/telekommunikasie, etc. @@ -1746,6 +1771,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar _) teraarde t%&r?A:rd@ // move default stress and fix e sounds: teraardebestelling/-s n) terie t@r'i // galanterie/infanterie and compounds _) tering te@r@N // tering and compounds + tesou (rie t%Es%u //tesourie and compounds moles) tering te@r@N // molestering/kindermolestering _) ter (l t@r // move default stress: terloops/-e @) term (_ t&r@ // correct pronunciation of e @@ -1761,6 +1787,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar A) teur t'Y@r // outeur/ouditeur/operateur k) teur t'Y@r // akteur/inspekteur tabak tab'ak; + teen (stryd t%e@n // move default stress: teenstrydig/-e/-heid teen (woor t%e@n // teenwoordig/heid/verteenwoordiging _) te (we t@ // move default stress and fix 1st e sound: teweeg/tewerkstelling _) tewens te@v@ns // fix both e sounds @@ -1893,6 +1920,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar vangen f'aN@n // gevangene/gevangenis/bevangenheid van (pas f%an // fix stress: onvanpas/-te @) ve (_ _^_EN //words ending in ve is English + veel (jar f%e@l // move default stress: veeljarig and derivitives A) ves (_ _^_EN // words ending in ves after vowel are English ve (l f& // maagvel, stress on 1st slb @@ -1924,6 +1952,7 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar verbete f@rb'e@t@ // verbete/verbetenheid verte (l f@rt& // oorvertelling/rondvertel and similar ver (velA f@r // vervelig/verveling (see: _) ver (@P3 f@r + vi (cto@ v%i // fix v and i sounds: victoriaans/-e video v'idi;u //video and compounds ville _^_EN @@ -1960,11 +1989,12 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar _) voorge (@P6 f'o@rx2@ voorspe (l fo@rsp'& // voorspel/voorspelling/voorspelbaar/onvoorspelbaar voor (sk fo@r // voorskiet/voorskot/voorskrif/voorskryf + voorstedeli (k f%o@rste@d@l@ // move default stress: voorstedelik/-e vs voorstede voor (trek fo@r // voortrek/voortrekker and compounds voort (v@@ f%o@rt // voortvarend/voortvlugtige _) vooruit fo@r'Yyt // vooruit/vooruitsig/vooruitbeplanning vooruit (strew fo@rYyt' // change stress - vorm f'Or@m + vorm fOr@m vreemde fr'e@md@ // vreemde/s/vreemdeling vriendi (n frind'I // vriendin/vriendinne/vriendinnetjies vrygewig freIx2'e@v@x2 // vrygewig/-e|-heid @@ -1993,10 +2023,12 @@ C) ensie (_ @) enswaar (dig @nsv'A:r // noemenswaardige/bejammerenswaar w (ese_ v //words ending in wese t) w w it) w v // inkuitwisser/witwyn/uitwoed/witwatersrand - @) wa (_ vA: // words ending in -wa: afleweringswa + @) wa (_N vA: // words ending in -wa: afleweringswa @) w (aen v // strydwaens/afleweringswaentjie @s) w (And v // kranswand/kuswind/meswond @s) w (An_ v // plurals of the above in -de: de treate + wapen vA:p@n // fix problems with compounds and derivitives of wapen: ontwapening/wapengeweld +//wapenopleiding @s) ware vA:r@ // kruideniersware/bronsware/glasware/kombuisware bes) ware wA:r@ // geloofsbesware/gewetensbesware @) wekkend v'Ek@nt // stress on wekkend at end compounds diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index 297f5d5d..a47ec3fe 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -66,9 +66,9 @@ Dictionary en_dict 0 3 3: @ @- @2 @5 @L a a2 A: A@ aa aI aI@ aU -aU@ E e@ eI I I2 i: i@ -IR O O: o: O@ o@ OI oU -O~ U u: U@ V VR +aU@ E e@ eI I i I2 i: +i@ IR O O: o: O@ o@ OI +oU O~ U u: U@ V VR : ; b C d D dZ f g g- h j k l L m @@ -112,12 +112,12 @@ S s2 t v Z Dictionary fr_dict -@ @- a A A~ e E E: -E~ i o O O O~ u W -w^i W~ y Y +@ @- a A A~ e E E~ +i o O O~ u W w^i W~ +y Y y" -(o) : ; b c d dZ f -g h j k l L l/2 m +(i) : ; b c d dZ f +g h j k l L l/ m n N n^ p r R s S t t2 tS v w z Z z2 @@ -139,9 +139,9 @@ t.h th v w x z Dictionary hr_dict & @ @- @2 a A a: aI -aU E e e: eI E~ i I -i: iI l- o o: oI oU O~ -r- u U u: uI +aU E e e: E~ i I i: +l- o o: oU r- u U u: +y * b d dZ dZ; f g h j k l l^ m n N n^ @@ -284,7 +284,7 @@ Dictionary pt_dict & &/ &U~ &~ @ @- a A aI aU e E eI EI eU EU -i i/ iU i~ o O oI OI +e~ i i/ iU o O oI OI o~ U u uI u~ y * : ; b C d dZ f diff --git a/dictsource/en_list b/dictsource/en_list index ff86babf..e75aa73c 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -2674,5 +2674,5 @@ like laIk $strend2 // General American -?3 status statVs +// ?3 status statVs diff --git a/dictsource/hr_list b/dictsource/hr_list index 467b74cb..862d98ac 100644 --- a/dictsource/hr_list +++ b/dictsource/hr_list @@ -34,77 +34,77 @@ z z@ _?? znak // unknown symbol _?A slovo // unknown letter -© 'aUtorsk&||p@-*'av& -% posto +© 'aUtoRsk&||p@-*av& +% p'osto + plus -€ Eu*o -@ _Et -& _End +€ 'euRo +@ _'at +& _'end ! 'usklItSnIk : dv'ototSk& -# b@-*'oj -/ k@-*'oz +# b@-*'oj_ +/ k@-*'oz_ \\ b'EkslES -^ tsirkUmflEks -~ tild& -¤ valUt& -§ oldom&k -µ mikro -¶ tSlan&k +^ ts'irkumfleks +~ t'ild& +¤ v'alut& +§ 'odlom&k +µ m'ik@-*o +¶ tSl'an&k ° st'up&n^ _" n'avodnIk -_‚ 'otvo*,En@||n'avodnIk -_„ sp'utSEn@||n'avodnIk -… t@-*'i_||t'otSke +_‚ 'otvoReni||n'avodnIk +_„ sp'uSteni||n'avodnIk +… t@-*'i||t'otSke † k@-*'iZ -‡ dv'ost@-*'uk@||k@-*'iZ +‡ dv'ost@-*Uki||k@-*'iZ ‰ p@-*'omil -_‹ 'otvo*,En@||n'avodnIk -_‘ 'otvo*,En@||n'avodnIk -_’ jedn'ost@-*'uk@||n'avodnIk -_“ 'otvo*,En@||n'avodnIk -_” zatvo*,En@||n'avodnIk -• k@-*'upna||t'otSk@ -_– en||ts'r-t& -_— em||ts'r-t& -™ p@-*'oizv'odZatS -˘ b@-*,EvIs -¨ p@-*Ijegl&s -_« 'otvo*,En@||n'avodnIk -_­ p@-*Ivr,Emen&||tsr-tIts& +_‹ 'otvoReni||n'avodnIk +_‘ 'otvoReni||n'avodnIk +_’ j'ednost@-*'uki||n'avodnIk +_“ 'otvoReni||n'avodnIk +_” z'atvoReni||n'avodnIk +• k@-*'upna||t'otSk& +_– En||ts'r-t& +_— Em||ts'r-t& +™ p@-*'o'izvodZ&tS +˘ b@-*'evis +¨ p@-*'ijegl&s +_« 'otvoReni||n'avodnIk +_­ p@-*'iv@-*emen&||ts'r-t'its& · p'ut& -¸ s,EdIl& -_» z'atvo*,En@||n'avodnIk -® r,Egist@-*'atsIj& -ł l@||s&||tsr-tItsom +¸ sed'il& +_» z'atvoReni||n'avodnIk +® R'egist@-*atsIj& +ł l@||s&||ts'r-t'itsom × p'ut& -÷ p'od'ijeljen'o +÷ p'odijel^,eno -_$ dol&r -_- minus -_* zvj'ezdIts@ -_= jedn&ko -_@ t'r-gov,&tSko||'i -_( 'otvo*,En&||'ok@-*Ugl& -_) z'atvo*,En&||'ok@-*Ugl& -_' apost@-*of -_* zvjezdIts& -_, za*Ez -_- tsr-tIts& -_. totSk& +_$ d'ol&R +_- m'inus +_* zvj'ezdits@ +_= j'edn&ko +_@ t'r-g'ov&tSko||'a +_( 'otvoRen&||z'ag@-*ad& +_) z'atvoRen&||z'ag@-*ad& +_' 'apost@-*of +_* zvj'ezdits& +_, z'aRez +_- ts'r-t'its& +_. t'otSk& _; t'otSk&z,a*Ez -_< man^I -_= jedn&ko -_> vEtS;I -_? upItnIk -_& t'r-gov,&tSk||'a -_[ 'otvo*,En&||'ugl&t& -_] z'atvo*,En&||'ugl&t& +_< m'an^i||'od +_= j'edn&ko +_> v'etSi||'od +_? 'upitnIk +_& t'r-g'ov&tSko||'i +_[ 'otvoRen&||'ugl&t& +_] z'atvoRen&||'ugl&t& __ ts'r-t& -_` g@-*'avIs -_{ 'otvo*,En&||v'itItS,&st& -_| okom,Its& -_} z'atvo*,En&||v'itItS,&st& +_` g@-*'avis +_{ 'otvoRen&||v'ititS&st& +_| 'okomits& +_} z'atvoRen&||v'ititS&st& @@ -112,7 +112,7 @@ _} z'atvo*,En&||v'itItS,&st& // Numbers _0 n'ul& _1 j'ed&n -_2 dv'a +_2 d'v'a _2f dv'ije _3 t@-*'i _4 tS'EtI*I @@ -188,55 +188,203 @@ xxxviii $abbrev xxxix $abbrev // Abbreviations -ab $only $abbrev +aaa $abbrev +aac $abbrev +ab $only $abbrev $capital abc $abbrev +abk $only $abbrev abs $abbrev +acc $only $abbrev +acf $only $abbrev +acfm $abbrev +acg $only $abbrev +acgm $abbrev +acl $only $abbrev +acm $only $abbrev +acw $only $abbrev +add $only $abbrev +adn $only $abbrev +adp $only $abbrev +adsl $abbrev agm $abbrev +ahk $only $abbrev +aif $only $abbrev +aip $only $abbrev +alg $only $abbrev +alm $only $abbrev amd $only $abbrev +amf $only $abbrev amg $only $abbrev +aph $only $abbrev +apj $only $abbrev +apl $only $abbrev +apm $only $abbrev +app $only $abbrev arg $only $abbrev +arj $only $abbrev +asc $only $abbrev +asf $only $abbrev +asm $only $abbrev +asn $only $abbrev +asp $only $abbrev +asx $only $abbrev +atf $only $abbrev atp $abbrev +av $only $abbrev avg $abbrev +avr $only $abbrev +awb $only $abbrev +awt $only $abbrev brf $abbrev brl $abbrev brx $abbrev cca $abbrev +cda $only $abbrev cdr $abbrev cdrw $abbrev +cgi $abbrev clr $abbrev +cpe $only $abbrev +cpu $only $abbrev cr $only $abbrev +crt $only $abbrev ctrl $abbrev +daa $only $abbrev doo $abbrev +dox $only $abbrev +dqy $abbrev +dsr $only $abbrev +ear $only $abbrev ecdl $only $abbrev +ecp $only $abbrev +ecs $only $abbrev +elm $only $abbrev +emf $only $abbrev +emh $only $abbrev +eml $only $abbrev +ems $only $abbrev +epf $only $abbrev +eq $only $abbrev esc $only $abbrev +etd $only $abbrev eu $only $abbrev eur $only $abbrev +exc $only $abbrev faq $abbrev fbi $abbrev +ffa $only $abbrev fr $only $abbrev frm $abbrev +frt $only $abbrev frx $abbrev +gho $only $abbrev gr $only $abbrev grr $abbrev grrr $abbrev grp $abbrev grps $abbrev +grs $only $abbrev +grx $only $abbrev +gui $only $abbrev hho $abbrev hr $only $abbrev hrk $only $abbrev -hrt $only $abbrev +hrt $only $abbrev $capital hrv $only $abbrev +hta $only $abbrev hzzo $abbrev ibm $abbrev +icc $only $abbrev +icm $only $abbrev +ics $only $abbrev +idb $only $abbrev +idc $only $abbrev +idm $only $abbrev +iff $only $abbrev +ifu $only $abbrev +ilk $only $abbrev +img $only $abbrev +iml $only $abbrev +isdn $abbrev +isl $only $abbrev +isp $only $abbrev +iss $only $abbrev +iq $only $abbrev +iqy $only $abbrev +itw $only $abbrev +itz $only $abbrev +ivf $only $abbrev +jpi $only $abbrev jrr $abbrev +jse $only $abbrev +lha $abbrev +liq $only $abbrev +maq $only $abbrev +maw $only $abbrev +mda $only $abbrev +mde $only $abbrev +mdi $only $abbrev +mga $only $abbrev +mge $only $abbrev +mgi $only $abbrev +mpa $only $abbrev +mpe $only $abbrev +mpr $only $abbrev +msi $only $abbrev +mup $abbrev $capital +nco $only $abbrev +nfo $only $abbrev +nji $only $abbrev nr $only $abbrev +nra $only $abbrev +nrb $only $abbrev +nrc $only $abbrev +nre $only $abbrev +nrf $only $abbrev nrg $abbrev +nrh $only $abbrev +nri $only $abbrev +nrm $only $abbrev +nrq $only $abbrev +nrs $only $abbrev +nru $only $abbrev +nrw $only $abbrev +nsa $only $abbrev +nsi $only $abbrev nvda $abbrev +obd $only $abbrev +obj $only $abbrev +obt $only $abbrev +obz $only $abbrev +ocr $only $abbrev +ocx $only $abbrev oem $abbrev off $only $abbrev +oft $only $abbrev +ofx $only $abbrev +ogc $only $abbrev +ogg $only $abbrev +ogl $only $abbrev omw $abbrev +oqy $only $abbrev +os $only $abbrev $capital +oss $only $abbrev +otf $only $abbrev +otm $only $abbrev +pda $abbrev +pdi $only $abbrev +pgi $only $abbrev +pho $only $abbrev +pko $only $abbrev +pma $only $abbrev +ppa $only $abbrev pr $only $abbrev +prf $only $abbrev +prg $only $abbrev prn $abbrev +prt $only $abbrev +qbr $abbrev +qpr $abbrev raw $only $abbrev rb $abbrev rba $abbrev @@ -249,10 +397,17 @@ rds $abbrev rgb $abbrev rh $only $abbrev rk $only $abbrev -rn $abbrev rm $only $abbrev +rma $only $abbrev +rme $only $abbrev +rmf $only $abbrev +rmi $only $abbrev +rmt $only $abbrev rmx $abbrev +rn $only $abbrev +rnk $only $abbrev rp $only $abbrev +rqy $only $abbrev rs $abbrev rss $abbrev rta $abbrev @@ -260,19 +415,56 @@ rtf $abbrev rtl $abbrev rttl $abbrev rtv $abbrev -rx $abbrev rw $abbrev +rwo $only $abbrev +rx $abbrev +sbr $only $abbrev scr $only $abbrev sr $only $abbrev srd $only $abbrev +ssa $only $abbrev +sys $only $abbrev +tpu $only $abbrev +udf $only $abbrev +udl $only $abbrev udt $abbrev +uhh $abbrev +uif $only $abbrev +uip $only $abbrev url $only $abbrev +usd $only $abbrev +usr $only $abbrev +uss $only $abbrev +uu $only $abbrev +uue $only $abbrev +uup $only $abbrev +uxd $only $abbrev vba $only $abbrev +vbe $only $abbrev vbr $abbrev vga $abbrev +wax $only $abbrev wbr $abbrev +wiz $only $abbrev +wma $only $abbrev +wri $only $abbrev +wta $abbrev +xam $only $abbrev +xba $only $abbrev +xiw $only $abbrev +xla $only $abbrev +xpa $only $abbrev +xpi $only $abbrev +xsi $only $abbrev +xxa $only $abbrev +xxe $only $abbrev xy $abbrev +xyz $abbrev +yu $only $abbrev +zaa $only $abbrev +zoo $only $abbrev +br $dot $abbrev dr $dot $abbrev mr $dot $abbrev mrs $dot $abbrev @@ -314,7 +506,6 @@ ili $u $pause // or // Auxillary verbs li $u // question -da $u+ // ?? sam $u // to be, short form si $u @@ -362,7 +553,11 @@ u u $atend // Exceptions -utf u||te||ef - - +docx d'ots||'iks +jpeg j@2||p'eg +macx m'ats||'iks +potx p'ot||'iks +sisx s'is||'iks +start st'aRt +utf u||te||ef diff --git a/dictsource/hr_rules b/dictsource/hr_rules index 6c591c50..2f2f16ad 100644 --- a/dictsource/hr_rules +++ b/dictsource/hr_rules @@ -3,7 +3,7 @@ .group a a a - aj (K aI + a (j A a (r A // don't reduce to [&] .group b @@ -30,7 +30,8 @@ e E j) e e e (j e - ej (K eI + r) e e + ._) exe (%ekse // filetype .group f f f @@ -44,10 +45,11 @@ .group i i i - ij (K iI + ._) ini (%ini // filetype .group j j j + XA) j (_ j_ // short pause after final [j] in one-syllable words .group k k k @@ -70,7 +72,6 @@ .group o o o ou oU - oj (K oI .group p p p @@ -100,8 +101,6 @@ .group u u u - uj (K uI - X) uj (_ u'i .group v v v @@ -135,7 +134,7 @@ ü _^_DE ß _^_DE - $ dol&r + $ d'ol&R . totSk& . (. _: @@ -146,52 +145,52 @@ C_) - (_D _ --) - - * zvj'ezdIts@ + * zvj'ezdits& *) * (* ** **) * (_ _:: - = _j'edn&ko_ + = _j'edn&ko = (== =) = (= ==) = (_ _:: .group 0xce // Greek letters - α alf&_ - ά alf&_||tonos - β b'et&_ - γ g&m&_ - δ delt&_ - ε Epsilon - έ Epsilon||tonos - ζ zet&_ - η et&_ - ή et&_||tonos - θ txet&_ - ι jot&_ - ί jot&_||tonos - κ k&p&_ - λ l&md&_ - μ mi_ - ν ni_ - ξ k_si_ - ο omi_k@-*on_ + α 'alf& + ά 'alf&||t'onos + β b'et& + γ g'am& + δ d'elt& + ε 'epsIlon + έ 'epsIlon||t'onos + ζ z'et& + η 'et& + ή 'et&||t'onos + θ tx'et& + ι j'ot& + ί j'ot&||t'onos + κ k'ap& + λ l'amd& + μ m'i + ν n'i + ξ ks'i + ο 'omIk@-*on_ .group 0xcf // Greek letters - π pi_ - ρ @-*o_ - σ sigm&_ - ς grtSko_||z&vrS@no_||sigm&_ - τ t&U_ - υ grtSki_||IpsIlon_ - ύ grtSki||IpsIlon_||tonos - φ fi_ - χ h_i - ψ pss'I - ω omeg&_ - ώ omeg&_||tonos - ό omi_k@-*on_||tonos + π p'i + ρ R'o + σ s'igm& + ς gr-tSko_||z'avr-Sno_||s'igm& + τ t'au + υ gr-tSki_||'ipsIlon + ύ gr-tSki||'ipsIlon||t'onos + φ f'i + χ x'i + ψ ps'i + ω 'omeg& + ώ 'omeg&||t'onos + ό 'omIk@-*on||t'onos diff --git a/phsource/compile_report b/phsource/compile_report index 570ebc2a..45b99b00 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -1,39 +1,39 @@ 34 phoneme tables new total - base 95 95 - en 52 142 - en_n 29 142 - en_us 36 142 - en_sc 39 144 - en_rp 34 142 - en_wm 30 142 - af 37 126 - cy 29 121 - de 29 119 - eo 13 107 - fi 40 126 - fr 32 117 - fr_ca 11 117 - hi 49 130 - hu 24 113 - nl 26 116 - pl 15 106 - sk 26 123 - cs 5 123 + base 96 96 + en 52 143 + en_n 29 143 + en_us 37 143 + en_sc 39 145 + en_rp 34 143 + en_wm 30 143 + af 37 127 + cy 29 122 + de 29 120 + eo 13 108 + fi 40 127 + fr 32 118 + fr_ca 11 118 + hi 49 131 + hu 24 114 + nl 26 117 + pl 15 107 + sk 26 124 + cs 5 124 hr 25 133 - ru 36 123 - it 25 114 - es 6 114 - pt 28 131 - pt_pt 20 131 - ro 36 138 - el 8 114 - sv 25 117 - no 28 121 - is 32 120 - vi 41 132 - zh_yue 32 123 - sw 14 104 + ru 36 124 + it 25 115 + es 6 115 + pt 28 132 + pt_pt 20 132 + ro 36 139 + el 8 115 + sv 25 118 + no 28 122 + is 32 121 + vi 41 133 + zh_yue 32 124 + sw 14 105 3 b/b base hi ro 2 b/b_ base hi @@ -416,7 +416,7 @@ 1 vowel/3_3 en_rp 3 vowel/3_en en en_wm af 2 vowel/@_4 nl hr - 3 vowel/8_2 en_us hr sv + 2 vowel/8_2 en_us sv 1 vowel/8_3 zh_yue 11 vowel/a en_n cy de hu nl pl sk hr 4 vowel/a# en_sc it pt @@ -490,12 +490,12 @@ 2 vowelr/aa_r en_sc 1 vowelr/oo_r en_sc 1 vowelr/o_r en_sc - 3 vowelr/r-voc hi sk + 4 vowelr/r-voc hi sk hr 2 vowelr/V3_r en en_sc 1 vowelr/V_r en 7 vowel/u en_n cy de eo fr cs 5 vowel/u# en en_sc - 3 vowel/u_2 fi sk ro + 4 vowel/u_2 fi sk hr ro 1 vowel/u#_2 sv 1 vowel/u_3 ro 1 vowel/u#_3 en_n @@ -509,7 +509,7 @@ 2 vowel/uu_2 de it 1 vowel/uu_3 af 2 vowel/uu_4 fi sv - 8 vowel/uu_bck fr_ca hi hu hr pt no zh_yue + 7 vowel/uu_bck fr_ca hi hu pt no zh_yue 2 vowel/V en en_sc 3 vowel/V_2 af ru 3 vowel/V_3 en_rp hi vi @@ -610,7 +610,7 @@ 5 w/xw base 20 x/b base hi ro is 1 x/b_ base - 9 x/d base hi hr el is + 10 x/d base en_us hi hr el is 14 x/d_ base fi fr hi pl hr ru it ro el is sw 23 x/d_dnt base fi fr hi hu pl ru it ro sw 6 x/d_pzd pl ru diff --git a/phsource/l/_l b/phsource/l/_l index a3fc544d98c47e2369d2e3238438a78d4f0ffbec..77345bf14422f27429a437e89b1a1012a96adb67 100644 GIT binary patch delta 18 acmeyx{)>IXE=ER%$&AeMn{P2HFaZEUeFfD3 delta 15 Xcmeyx{)>IXF2+gB3Y%{+Dlh>6H;V<+ diff --git a/phsource/l/l b/phsource/l/l index 44af64f677a1e6575f4fd5b2eefa9278277d19b4..a4621aabb865c6d29a3ee11b20662d6ccad0bf4e 100644 GIT binary patch delta 30 fcmZ3;x{!53JbMaj1A7}|+r~6|Mi_hY8pf{xk4Fj6 delta 30 fcmZ3;x{!53JUauc0>=YJosDVsj4<}(HH=>YctZ$E diff --git a/phsource/l/la b/phsource/l/la index acc8c310bfb69b7a22be2a14fdc270f8459a8815..7f426a507af5ae6cc1fefd5f8dcd6871a268a678 100644 GIT binary patch delta 46 xcmdnQx`}my4&#=Iy0UT%9J3f_F){!_1!Du>62=TLJB5{j^B?0s#*GzF!A@1?=Gzs?fo@S|TMy zMrbPCqt#TZA=)C@`XZg72lN-JRx7(?q88Cgp3jRYU28>Tv|iLj6vRz5kml$Zb@d4S zKy#^F({&o&vo%|n=^8z$Ln)kZa3iPiXo}VMq}Ddrn=+NY;qN$<{rX7arI+lJD;mUQ ze2%*@(Npi)h)VJtF$e3qz1i*YaETjD)p#rrPga0 zrO*QGF_b!Bm4{FqM=R+R{fquYlPQfp!6(s9L|LrO8bdMEhFlG$SLp>@EA%YZh=6(@ z-Nap$9@b2F?F}fY*A5g$zrpi0@X37W_(^-yXc~g`_9C9YV!T69GywX4MNP=UD>Rj6 zLQf)|bwy61vCHc;9;-L#KM_xR%0z||Ft$o>>U~Y3GrZcQnJT^D-_SBO@Cp5B9-BsP zOCsGR(#F}Dn&ezHr=19TXnWfo_M)_*Uen+yzFFCKRuu^POf*U z?|bJ#;8@et=19BLeCylji}r3YyLgfYONPvs&Vj3qJAawou*&V}TmRgiHhqGIdZ#-t z*rMi3PkpWZ;yu(RyvZ%_|1!@Duwg~Qy)%&)>_SYM9m{0IT zUI70Vxfy}sZkD9cd`@(hn)9A?Z<4pnv(n7qf5>pRTVQeE&+a_iPAU z>!g{p&Uqfj@$BU~&5=X4$(Bf-#?t_faH^eA&z$eP%}?ZjyFI{e7duS;03Rl!Iv?m0 zIU^e+N4}P2n!%UMTVCT0HI>LmhQ!K3Nz}O%!uj-DJ!A*krPd=?WGwY@J~m^`X^x^z zdPq}soFv;pHcE1JImPk;KF@Kinj!;jqMa+v8qQn!YiL|g7qplDPguL?UF=yRNji`Q zbAY=zli1Ksd0_j30QvML;#op@Aje=GfU2$J3=Y5z+qJ7!OC3nI2kzZRQ_ypdF*cN1 zWU{2mEy>r8@bpoTZ53Qvfi56)R|5U4EA%6{E|Xk(o{Q+D{zt~hYxYsa-zjJel!xLyYF@^uDsw4LAN$uva|$UNC5L(zFh!O&h@K`&9R-odkf zORU!ENt(oCcnjkAz21;|nS(C+kzU~^h-i&Ir{BssiAJBtfa3eZ6tbXz0*uH)9O<}5 z(LLP=@-?DnyKqWmAd6wts6VKoROIv&Z2=)FbvkCx1|!12%ye+12FzQbMaarYJq9M; z*1KThr#eW(bRxb5Q#dMlT0ckaX5;mxey5#5$a+vb94s78gV0@_LBwWcI|G?51PRk< z8of`+6p6XdNSp`_6Yv>>)x1#UYEMd{Su_^xdZ^dI*J>!euYRa?!LLGH0$mqD#!i?M zOsg~qd0@>2l{0AxqRzzGI-c6oZXKdNjnN%Ym4b+#^}2=Uo}Cp5*dYd0uF*)G7OC_i zh};R9-=_~TwX}&YE;K}AOceeX_>to+@Ng+89z$2KQ!ivGjTRxQ zV(>f^vHNI`zNhb?TRy@me^D>v?2UFNIIYe)r$!BW`UpjvO%xpH(dv~tPrIP8W;*Jd O=sn{5g8i*|P5%dm9WNUI literal 39980 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%0AMMdJ z*!FcQ0aeKB>=G5sI5I_P(82M{Ln4+q;yU>Fjo6@n1oyt7-)6Hi1ISn{!a9%P zuMy;ZOW|oxP+EN(u4j z_Ndgsc=beLo>ACw2dX4K(#?Z>N8zmD`yCl!6EhmcI}K#_C#$`Zr+o#de}WPHs4IOF z^I?ww^H%#)C6Tb+W3yDGB$oLXul#9Rhl3VePnisK%+^wB8e zRMc%kz^X6!br0f#k*wfrJg@=27lsyYg9d7be{BU(H}L!jvJbO)`h0Pk{NYl43!QQU zEJ{RPWG~p6NVGSfs8y$dmw$k#elX%aQ9>4y{bfZp!`kIp9528|1%-lan8ceFZFG+0BfqjxTg^r-KS>i zuxi2J&M>hD54g&n4rkr6Gs>xG%{Gj|7G9#k?W|69a4D79LEY^gadZe3nBK8iwSkzS z1sd}=5mQxGrz6NPi|fa-_n*iEH3dC8;(<;1$A^s78?t-xz`LAq`w%|O0%j%S6Msfq zkZ*iIt4$zkD-UBA1;gT^u>FYBe#5#$LD_iZT+i^Qo1cFO%IqQ*IKo|jVl%JUp$DwQ zc>H1mvBM8?a@F95O=M6f6DFi*rAl5yhNq@fw^v_xC!>`gT_A1I9~FPg*6mnz4OL$ z$4mV1JU_>=s}WdNMb;-d_uYX_CnDE*lBnPWO6@$1dWYDlFp)fNv#7@uy)dZm)*qp2_$mC38rC3fW9#*p=O_2G@kai%n%^ zE5NEQr2R3fZA>%M&uZZ*t!j~*{AxDHV5-WFJ>6cS_sT`q3spqic8)k5%}Q+bH>2NV zrivc;z#20GRp6L(vJWi3gG})oy#W{?^I_6E}oTuJU&IIfBdJg%gYif%+CKF2~)5;4VY(1iuu^?Pi z@*KIrv`*kmOZiIrsC)FQ3=#eCtXjG)D)b?UI~P@ao4jK?X7kKR0e+MvGw1_)8W3lR z4u^g6ij?G(JE&5!thkA;SZI=wkE#vYcBW=}8LL0X_-hj%{X`YL(Uq|M?jUM!bjsk^ z8bKjq;_vWLB%de3x2KtA;vCjK4b>Y&{-wCQ15<^9Nqxz^PC=O`~fP;D#Prz9)cnRU5Eg|RgAx&v}O1Uo9Bb(e$M zzfoo{K>j*-Z8o!#uA)dYNvwo>))E8cgHvV`)%PG;sX`WM6CP0npI?G19gfl)Do*m< zGU5n#o{Lu5g_qwm?Zj(rYdRU}9X#(5|G3%ieelMApxs?jh?RZ^D=nnADS%kx7W;FS zd`c>M7=G#vPL{d4p+2?E5L1R z_cr=tBv{-B{Hw=r+zzD4#AK16K?Bgw?cbSzg$uIitzqBeAmuVLP$kH2&A>({VLOk| z=x^Y+J8=Is{=Cd{(qKPHV4OJgcho|U*o-tA{C*o9UJwq*gOX~CW_|)|mjKh#QTe%# zog^iKp9~87Qg3_B&eg*Hx-#?&r@;*KoH?a8XA1$`Fml;4|Nd zK9Yks7OPnw4$DTo=dSd5w8ltr35HLNweF*KaFI`P^0!K?u$w7+0;j%Vz02|`{cSwq z1AFumMPHLud5q^2#?xl0=T;k4Utf!^8FkRBMOx1=tU6;eg{Q&GkH}MdZwn8 z)IY}miRYWsH0oYtBKxa2p+?BhSVRGG47qf9XQFe;%(O=Mp7!nT=_krNf9;+6yzw#f zoJjio2I(g{KXc758>yUDH*1}eauLevqP~g-4@Nyd)OoS|ymGM|FXza(WR&j8xuT)j zuXpR8x&b>CY3_)4%29V!HyCmP{W+_2Vsa}(VBwi!g$$xcBaCa~sBOdscSKF?Z^!jc z^LDW>*im*F=ZiDJ6p@!?CL*pwWZ3$taH4}Q=7{d36Y88~#M6l5GQBm+%5BwFZR8;k zXr{T$bLQ)OV0CBgz9xB=Q>HyTwio;80gfGYI?$o?R;LtYq*T>a4z&w^jzCRM#s-7& z=P6v3g$Sz*cu^X>Eh2NFaxo1_P{g}JvqvtRyi2oS`j7wbOs;4%f zNqK4z0ciV4cxOsHa=wscx*L+|by4pV8t#+6qU&I5f#{cD5OgiNB#{_oBGKfV$=0?+ zRn5VBSD~7#!T}MnKDQTrIuWfn3x(gCu_U9bX9TFeN@%$MDM~dS`JzCw-kr#Kt!DPO z&^d`=?SVwgafvB%qC>l2#n*`w{(+q=?v?=U@EnzuhK%nP@&azQX)kxrMo&je7&Hnb z5ctz=zT*SNwS*CCVxwu{fj+GC0?;HiTzeU=83Z4+2eVIt>sz=gG2T@cEJ%ufRVF_^ zmf!wmy}N?Or@$UJ&m7DS4<& zKtVYjow~&75n_y-Pu$m-&b>V*6h%0gZmLi0$Pw173|utPS&(=DHkTPDsl$BE68{zjlSY8l=ZSf{ z!wx5jEf#{TPl+dfi7mcbL!MRfd_pW<+ks>m&AUz1T%QD2jPnvPp4j7?sILC_{PY{-dF`G4E6PhVH@0(XVh?y9j$)0a+peJ`YC7p5ljR;n0RVFe-g=ASePnW5=(jzuFTf8m3 zjp@87fGwh=MQ^!CT~vM4OtfeQd}E>hhJX1|*~kN(x{ zuv{8&;W+DBhrPH*{6CMCIWM-!vMRUAD~}UT3@0;ChWhAHI*9%=vzVJlC8yRrP_9F9 zltM+erK6@Hxt;P@&NlPiNn-c(rnIlxe$*YdF~%OUg_X(k-kNU>v_e&GIZBtb=Xz_} zyPf#pniA9?tSp{0)=G7n+(I|HOJ146+O`urap<9s)XmuOAbCQDQ`62$hf*q7Es1%r zm(d|xf~s^vwNK`tv$L$MCpSw4y(m_@zdIGA)A&ASvd9tN`f(99V- ztbp=9O8+HF8xHtOY_=37=Vm*S;j{ku>M^{kIoCBr7ahfxFOdDcPE_nitspaFszDb; zYLf!b$bfdrjMZ&|3x?sBOZavqb%jIJI)CEFK``1+vJYuN{*Lrg^akg*^Vto2-o{fM zcCsRt-H(Vr2z*J4#h&9y&)~GlR2I^}GYvuN5N6$n3c^)z=>Tlnk$$KwsM(hE^tGlc zQCXZJ*Z%@!S7c^_7+W&-cORCY53P1GHs)GF#&;BI_$E1^JYelNkj0<4YBcrZf^hCQ zJUmjAm-oo#4kHe0$|w_}AXC6y`^li6qAq=gtWiD2a*Mn4Vg-AUIq1bI)iOV@m_KGZ zE3}3@%}UnzBvD{Be19F;z0R=}T(>W!7kHEcBufnw{vspx39sLRF3QEeJR-Jp>m@~) zQC9FLgzV5TvOAx+^8~VbN+ngrQ~{LELHSF*C1O1Z7xps+^gDZ%ea`7ggmjuwwK5}h zE;<4U26>{8QEJ)@`U2O*dodASi*Yq!ml(!Sz8MrJ?6J8Qo{U zxYr!ADam4U%weof6Gk%#Bgg=qaS|~TH!gPZO?aaGt+)x{vFsV3*4~^)X&07 zKSv)2Q^BtVgYV%-p^1Zth!cv-ppgdzdk2Q+APSvf zm7sViqr1&~$6?!XxOZtr-jh*|gNHtIzbF_o3+s}e=Ul^D8nBCbcxnbdD+q@ifKTs& z`ZI{r!>AiyBF0J%_C~R*pJBD5_)7z9=|0x%LnQ82Uf#kFg|VkjSim{FWeekd!b}}d z+Lv_*XY?ER^ck6>0AdE4uBy!ZS30;Ynl<^(Oe0{K4?HnBzL$yE=sK(Mjr>6g?%V*5 z2*8s|u~HV1gWDl{fjyeTh^Us5&#S>&9w%n+E-eulR$WM((qf8T8nQn10p9!e>6#aZg{$hqIPP#yBOig?rAGhIn|w!;aRT5l6Ox88!H ztOLR|Q&CoXPaSKf%r6>{YkKdLf?Klczs4(5Sr1iCl|qH68dhgjNaQBZu*Es*EGNU< zQwN(U;X^)d5{MN_kNH^LpPzYTG~VOwTgf;~q_5--_}&wH7=sZg4RVC^!{MK7#KAa-OFydq0C8Ul8s#9`G;9?LNp~oy=MTB9;y?PGT@1rQ9y( zN?$oE78`%l^R|`KVzcPWenzj+F05uQmKP0Ioa5fl!MC^gX9c>23xJ4|$Y1BcdM{zS zZ&ByVsCC4^Sjj{>vsQ=eIgHg0E{Vh0i<5ZzR5)NF<2wy!WQ4&|Gbc%o`wCIaWwIY5 zP-K2)&FbK1N+^#Acb3`7?M8N4rbEMPhKfP@uU*R?O{aJxW64QsxK+V= zFN=uF`nuEHIp%!Pjfryxs~6P$n#oJVEGg-O{iSD;ovcpRVp+9@tnOLP8LrcZbwWm( z4PL7*o1jaU|a$?nt_}><6RTCG4 z;Xht-YuT~hqg-dfm|syL35eT|VJ&CTEDllUQRe9f=e9>LjUl&t3Ok8|b-s#?jJ{Db zYKP~!_3D3k+GFnjiCC=!vvgyRT|@)fPuMmH};~>4E&u5_S?txVd$}moax-4(pp70y*4Cf zWb_GpxD51MvBJetH0*nER?ZiBIB)jJc`AY|4;6}C=B~5R*{Np}b8R9=f0RnXR{0h+ zBlS9Gw|*{S)F^AC{Hb?11?YJAO?Qx#=j0BxTSbfgdZVtWHv4|@?J9pnPx;#|`h%`7 zJL)*maUvNSZcu-IU_w>vOY>%#c4ly-oSaO?9Fb>S;9UzK}6=LiIr-^+7>RBN|SK zidcLGx&0xGIBY!J~`Z-9B%pcx6L)Oeik9Qz$VNfLzRot5Bnu{QNL-J;O$(t;q z2PP7XXhH;Wfj!%bQm+IPy+;Kfp)YALcygTIt%5%zK?`5_VH2t~KiQ=A=*buqRA2Vu zG&$;LSj4_{ls%>v8%KnIJz_Y7+gi zAE@iOoe!VD+YO=)D7+86x7MQLJ_8N`wX{7nqEx*2}AqFfdR4rU$ea)kj~Pq6!nPaCmn1Bgie5(&6* zt9#b{E~+~(jL{DCJCBt$gdb+HcYa{uTYi59{rv}pe2#B#jYY%D9WE2_PI;k_z$W$1AJ5qi*CxlEAhAQ;Cw-_rWpA~P3OZ%a&L#;1(oD{JFg zXMb`_zc@L16pfmje8n7MF!z+7+oM#CwJd`^U&mE$hAkE79?9<3CJR;uJ^v6y4~Iv} zkU#y6K1oPstRMc7h)icA;y*ufYDuW-+=Z)ZW2rMxL?Nu_L)P*Y_PvLZ#N`|A2^6>D z5*My5%zC`UBVNa{r61n#6&qQKC%auJ^RVwo)+#Rywvp9+N^EtXsNoFXxPVXo;RJ3R zqT7!qA6bqNGHiX>k6&EnRyoUY4s3yZLas56S*5d+=~^R8t5w!E&kJj>*yN29^*pMx zQ_TA48|LH4qWZJro5OBcE}iDo6)|(}SD_dJZ|Z{ltQo zP^b0qTq&zk4Zi}K+@eqOhpz1M32$Q9hCjX{d(#ikIn62d7BX1*S;-aETxY!fkA2c^ z?tG)plSWr2DtJNcQ%qFlr8rM}8dRc6KwY)4{DAL#Lg%i6xmq%|m(+jvQa4RPP2(lGr@`p4vWz$x z794{9zltiFhdw_G^3xd%GDp)d5WuO}IN(%IYBNQtqYh-(@8Tb@$FJ*pt&fQCUghgL5(jYHu6IwuEQR;;?M4z7E0lb2GsPhr)BWOlRSS8e!806 zZ#yh+GI7y*=2?$gdN}!cjrBI7j?=;0{{SaKT0G}KM$GC6n zxUajxw(DWiM`X~ZvnoCKDJrIrm0iSK>T%z+tZN;{cEThl7D`6kpPbBVO`_AgAf&B* z;m83*R<}hTqJaD4)JB>QWJhPx(=Z>^Hkwi2C2|@~_eObHPD~(j3xrvJo7|j$_)E82 zckuHNHNjeRq{f&1%qpj+J;}c6%t3>!M&oQX`8XRF&spmX)NS#QQB3Zw;`?GGLPX4wiQ)i(~xUAnW8-biaW4FHt6+ zQP2x`&T{6rAEY@+|5NVR-j2z1U3I|rLO`=9n8iK45DNBXCgz+<=4CC{H(~q@cy@NK z2*LVX3`|e{F9{l9JhnNUX!kPsm>X+2z~3z5kgY@+O_=duBD~~`H#JtL;Gq)4q4~k> z^l-#e?EOCaAt!n)8&!Y~D3YVxwGfv20j3*@B^)E#%*IT@@Qzbxn`dbHGyE=+xXR}G zw`9nQf$aOR^4}oz2`q3d%;;7XZozAHSfR2Ydu4RTZ8$p)W5~!%5_5Gz#$6NrF#?v0 z;Q9^VeE>{Yhmk726%V!b1~fX)Y)->%g|QL~^*azxIRRgk;5%+5?GIj+n*GSkQ+HAm zoXn`G2ypWGs9dhIc#FhTb%Nz%>a5$uE$Y5!=!kD88tID;r~KqGb&d-6Oy{I?+uW96 zDDw6w1x+{in%GmGD|H7kLzTDA%3|h((?gdO|H*|i9&fu?t|LqibSgqWqSLxNxe6vq&v*O5I z&S|HH?CY6nt=8|Ni$r&^GswFh;nP5R>Dz5bUuj$uY^SyV=!RA&pKexP6Jh6fQW;-V zQ50F_&L&V6QeEUmGnU@1|HNSWmM)4tx+F2dHuC*d$;XW4)Z7&HR=zZEsSvi*o7szM zX1q>h22l+eh;sX+)1vmK5$Po%w_g(_x)SBTn?CyfG9PNNw&)2KwAA@Hm)28Gp`Y=T zC%;um9C8xd?_)Z|EQsmpeQy7&50Zt57I9Tc%UH!d!B#5OpYsKii9236wzEpVHgBjK z-UH_o$};LRX9)jbu`hKMq9uRlmR*H9PG-?X-oy6?vIoC)W|Z9~Y_B26;^vyaa!xiA z)%Ay}k9CHs%Xcg{3H>kiiKWt$J8VW3b22`$f!Nv)RtqIMeE};4=_KT>Q(~#(h^F@A z-#_sAoM^8W#Nb20@=s)Xeo)n@0lG$F+coj{4ERGV%6?=iTvIDni)jAUt&}b{~Lu%s>kt zCr9hn=F5@8ZwB&f6nFu;?uV0CEP#654Pq1}9}vVk|0sE=-*QoO9puvXKmrdy3)<-?m^qFR?`x zEa@fO^bmH~%6-$}Q)Re|#cF=$dzw)ehsEaLcmJ|ZPqFOK)m??JrJ%{o9CxBTZdAIKrfM z-}9r#3#p2zy`npPf|i=6D#(pGty3uWl-)u!_7YUdSTPTs`M^2iEnrs?Z+zFs4e}di zhDFZ*)jc9Onu?yMjL%O`DW5l0C(1Yhp8LN0JS{~={a6=9NnFsIoiOJh z=Zl7OzW{mwuadbRq*s~d>VOp{H|wo-gzaZqaB^=ok=i-2h0_X)WqA`yJ-t0S`+ree zHOQ4*i?x?%&UsJgT;C#9M7EBTq8}chI%&S* zML)3g9K46<1#Hn89d>{mW;(QCditgJlbd>?`*M!AI%=*sRb>yc%Uuw&DOn32`pg>R z3G|(!zSe@vQ&{)1oI~r(r^V1lgV01{#TRgm(>>;z{;XSpY|DsQUJ=WzA~u+U-O`%_ z#?K%()R1!?#qh!e)J;#KNPWl-zW}qInd*4>AnblPzBQloZ&~n=$uNyCHT~M`pQERf zbsZh6A2Z?S>B$REWG$wnsd!HooZE*UpBB=W^F!B(mjdM|SSSZk&O*8y^7Gw)$h7a1 zQFNm=Aum5bYpkoC>}%cjEb?qnPs|kFa?#r^N!_R`@kKxQT&i25yh%V$^-brO6PNR) zn@vtxTxC}c+1GG=*(u?SbLzm;`NeEGO!ZUCv4(7BIC;KBdJM7PCwkkO%igjx@4C2; zhOZ0axK-I^a9Ita^E9#~>T({nSGRh4mizoi{cIo^jK*-}LzuTOIPn&i|3-aSz})V8 zj^2V6b5P+oI6dD83$Q@{4BUS{h`bhrI}S$=1n-NIAqW9?UZOms(bTo!jus$oAa}k7 zN4Q+1VuaDoObkJWmGG7avGMJkST!-yfTc&&6Hyfvh{g{nIG# z6(D^A)=Hux*0WCQs2mOFCl!4Q*T8uKjrB{!y#C-94?y*P?4U0?4NU?6y4C0` zFzH@c^ak8;5p9)L_7nx^C0gT*(8)wiSw;>tb1k`mv*cQUXu zKiPq{M0j`b@aG~OQEgS$&H-mT&?SFGAE2rkQ|7!Y-#h z)z-V#4C|Q;f>{b;6*=Ws-um^+YHsxxjhqtRu$T|_C^HYmGEk&Zx2?~ppdL4!Hy;{)u@7&K27>aW?xU?P#Z~xhWokB13rx&36$czw#cOH1a4p ziZkR-&Z4q{$sk-YrQ{P%8omUZ9vKPKv3Mw$4Bde2W3U@P9xmMIp~g0M38Y+`+|bPQbo7LDYdFRns8z@HrWWoF$Q8~O^v zr3Zm`@tw=44EJ2nT4Dh|*5NI0$GHb~_z{1+K;dy-8Sd-_0)0RUUm|mtiyTyYJhUCE zstK#H8P#8aTxKS0GsL7NYu=t*<7xV5FM&^AiIL}!rKm*a_c#@;)np`Av-TdkZ|Cx} zjL82*tY4kQXA7c&Hj|+o0)o^ahkXKmS&eVUp?02|8p;YP%74uZ(9p%hGIB9zL;AK@l&e)1S3J*^5itP^8N21#~<(^h6SbR3{_$JTT z4c;bY|Jq?MCE2Zy_(T>^>Jd-B4dR{!!4EM84W50+o;Fb>*$Dr-d8P}X_8$-^7nn8| zuHsFeoLB3>XxzGjz~-)iZa2{TxrlF)Q=6KKmFHleC&Bb}n6(7G+|0NaP5g~a_HL{- zC-(drjLZQSxV=P)v5JD=V-@oE(L^uJh(3uFvmYGYcQs>LFK@MN_mUHg(_Y8qMcxsBpYv zt=xXlJ6P-$G6ci8%0=_G>{BKBfab!N)rftHvY+Sp##gdub@|&H5a1W9d71SB{Xl>B z+(j|&^qT65`=|T%+F#}@%Ic=u;mbQvZt0)qDIVCEeTcz=GP4%b>7%HPf6o^~k(qzRn9nH%?&DF%D;q+sMf>M*5mCkydRa92C^@tPo_w~b=TTvro z0(C!mQ!U|i*B-JOgXrGyh@vt(U7C5sbG??#ht2t$19m^}Xm2s+q&X-5@a~F(R%11t zPPg7<5eHJo@~2*#hzj8rqWX+tq#UB^^A^<))Hpqyeha38yIuEY&2OW(2eOXgFwk0l zH&5nM|IxR7LS*3`ad-4QxaJsfdko6)BrExndC#D_Hi0wEyrCA4FU>CJVQt+rz2A8c z&pviw3N@}?y!oLV-LC6&MKUvObQb=s%Id{eT7*wmS_g+sOB(6HDet3x5}RW>gWhdfVfX!!Zhdhk_BxI3p6&4QSF>7V-drS%r0Ib}B~9`W5x>5YBuBkiU7&6)Va4 zbmSClXS#eonN@Vp&BI2n5%aijN%(?|Hy4lfR40YgL?@8fEq|Zho*yccjL`9%Kswt7 z=ylkRgbyB2V>r#}fe^h;SKzH7=k;hbQ(s|tC#wO?L-bt7&uPbdWe%Wfa?)AaUv?#T zxK(V!FoZEjvgf{>saS}wU11Gsf~h&d+`}+Nd`9Hfq}>hz zx*_?^M54)x%;X$wm6E(see_T`>wkqki_fZN0I&OEr-`YroMtDA!*Z?p+Yx4di?ulm zABOSGBCJ9A*y!kaECWR{o+qfY>pb-rch1WGWM}SYx!W`}Zc}>8<5C^$Eq@Y|Y+~OR zQ&9@nw{YqS>)nO%td{Q+G=@FX9B&FDb-O?TraoF z>ku{8_lVC?Qy?nepY+i^L?@rio^c|?X=jdG1AVtx#hjH<38Du%o#ZunT2z*f+HGBu zJ)PB2*&-jtj1ZSBf6r&NnRghK=ADbRgrDy0JkT3?ufYy7n*Tap-9?^Kf8-D_uC$tI z{Zv22OdUh!`W`cZ%c;1n;_cW)>A9It7JI9_O*ETFoYG0rZ`p{s=AbMak`0L99mk{a z{%@$rRdgG!V~yLJ7WxW3O6};SoDB!WCF`+>m2L&5^3G}UuxB~Hf8Onxf}_6ap}bMz zunHH;^lK-f`GpcMh{jGpRWlVn7q0I)K03ZwsrFctRc*ZA=pED)kMrJ_Y`o$7jFs5x zET%Y?UCxf?=RWVVSg$is6G+bKvij;fT~l?e>}nwI^Sg$}KeTH)>+~Y=RNj!6IFa&% zyb-6>!1ejkqeiOQs=oYgCNYC@Is-ZIc$_=vPj)VbxTHKMWH(UPCeI>jbIyE|eoaof z9K9&_nBf>Qo;P8uA!PPK@P>7<*Ve)R=F{o#A z`H>CSKqQicQ~8DI$oi>=!j{RTC6|L@J;Aa)sJ`?l$vezynrThOZY%nIu&g5QkqKDE zNvs8&PhSKM^M8w=vM~!C?{-Tr1!0=PZT-w>uzfKn4hN$MN8+Xac;_v+sxCZ}1O_e5 zJA=ki{q<0z??zoE8S!BVkzHr@C=q(OFP2${RdL@1+K$n?omEXh>;O7-(i7G0B<@@c zp1LRc%2F-fj@7TH8)Gsm;5RwENyOea(4JX|3G%YGpU7#rir+y~C*~gEtU^^*XFiCM z1fBX4%+suKBz+Ur!5a6CZS~0^yA{U!vALBZL_v9|zApv!HlloT!{SS^uGG|$@(~$c zB;rWVb;Z#X@8Ila)PLR6kuyQ`7mUQ!8k{aA>+kS$1`fCfZn+hp5A4)tP}7Geh@Y8 zCu8Nl12rjkNzL!?!Ax$BJ`VeKli!`h-(Q2^NwAI>VvdW9^gFz2^Q|PT(n;pf6MIY# zzDKYM&xjpbz<-tbb^wf;i!951qF?tEL<8)y2$_}La9b+)(LIZ2u~S#D7X!=9=Kk)x zvfZ~LWd-AFqf?%;NAJMyT>Q5n)=Eg0XgjEHv9oy?aUwWx9@kE1#p&%KyHJ2U@+Xv2 z1r%6ZzIU6v%mA!?J$56Qm;1)m{j9<+&Q85Y$!r5%!g)tgDOFx=5jQyl*^6^kb>((; z@}fy4o2ixZi{5VEw3X?mf_;kmwz5*`9Z?Pc&WyV6JX4iC?_?!1n$4-Y?&nl&2hpG1 zeh6z$FqZbSCwh}P5A}60Vl94HkW&Litb5iFRa`8jYS@J?vRrynhx^OkKK^E^0$( zWeq&2Et=a4*9XEI2Z%Qg=$p<7XQDo4K5-JEC7Ijuc;-cv$OYcmpm z%s`gp2OTQ|K?;A-lGDx~^>Q+Hv$2c{=-^^l*9p{wdtxj%+4|Fb9v_%Ji%D+uGhDQq4m!7_u~jnQFg&~o9##_dsIVPL{>yy*(|7#abbjF^v>NT8mLE9xr_>$`zFKxE9p+aZ7jP! zfbVDTb4-O0WezDxhD?z$L#2>Pp*K+(8f0itz9RKXlTsw1B&8XZk`yYEkPH!#IbTj>qD+{m|&%s zLB=oX-v)Tp$k^I=&JotF3Z(uGE`4oH+Okj~SGJv#?6tCKcUi}-tk)q{bqJgfJ$DxK zerH;<6(Su)tilPiZ4E*H;2FP!Ic^cHyV?^PL6e%WxtyIWj1AYqY*%2FHN4|JafuW= zvd9w}`)*s`=;HYkd?Vy|eriN#Joh|n68c-0m!UPKY>52)LV}ifa;|K+2g&W(ep&>E=aGtcX;fF3xRv)F z`dSCSak?{_i7+z<4=)HYLI;ZCEZuSMPVy5sdsb1h{k`#zc8)d5w~Be@znF9Ak^Pfc z)0f6t)tlz+=oCrA)6KPUe`qE|GndZv5;7nz|#)aJNCq*ejj7SD#7{r-VyG73LI>WD$jZPG+Y($OZOJ7ReO?X6&01o)t}Tn zg2{BU`a{H0M_AEuI79HQ>L#`&9?_AqPP7xJoXS7HnHTdiZ!_09?cLF`OkI8Jb|!vF z4b$KM@ASOWFPmF7KuIiPWnF z8x|;*SfBG`&PDNz4e9$(Y^oW?vB^2%$@p6H z?gC4?*ss2rR15huXY{9N5S@gbBQwY2Hst3+ZAl%IA8L5b6Jm_ zHTL<(SeoYQQO;(0uY!XkXz5T=)r&p2m%qPHHs(f|tIPTCmx^4jB|l?up~7&!0}G_j zox5GylkqFDhSD+-_hU`3JALS5ckaNO{`IzEKJ$xg$3A%1eWbFY75|PjuHrR4!J{5) z{jLx%ngVCPf{J%Q^bq;&=Q-CxwgULsBgR$3oOY>hnQJXt8qIq0UJV~gh)s{OX7gyr ze4id-jW&uHZ-xmWJAan{kET;0>o3%8?WXUGVbWBx{wtsD8j;vr)cn>HyHaO>|5moH zbMb+H=-Mk#{Q-9U1yPP(yuRBYT7M@7`=Qr!nRVhNJ7f7{@(W&1o{8S&bu3rW@Qu%8 z^Zss%x;ZN^Y&DujKdXo8nmq1=`sd6`@vBamYR4Bj%~^zvt`rv-Bnv5{$H}j8QM_Uj zZQVdp+UDoGo`JM8WJoQJU(Bzz{E+rJ@exVLqCLkUaC4Y+j7=JxA4lE>9b3WHm#x}9 zGB^!)IAq5|ZeGaD4y?F@y=sfWUV%k^DJnV~Gg+h7Z8%hJ&X$MH3xC4vNxZeGR=XAp z@d_Q8mygI7vykCdu)Vyg3NZ2_(%%r9zK@0e!}l&GC%tg{#(s7XeqU(cSJ|I3Y{4V` z^&m`ojg$tzhpt#5AG82A zU*4z#*RMfq)?52Ku&GM0crvX0SR83F3A@y2LhkItWb038U($D5L)uvoJ@j!n8^`#Z z#XNwa*CgTmXI3cXPu0zEH5(Fo(5-^d#I(1dng{h61r*kKrE`DZM-sD7))Zt{U(K35`In>a$JaRbfQI-XlNM~ z4nN_G8!*hH^7=N&&mKy$VyyB8avONcv-*NXB9Na)&n5qe)@Srbl?l2uo?tKbCYD6k zCvSB^aYJHZd|1|f9rZKE;^$@3e`UPiL?^sG66;vU|Ca}$R%g^_@;KKMCMMG`4=6or$o0U3Ssl(aQTo$@uAPSkBB|!DSG;o zGx1S+7`0MImlJou=eN?5i=cTUamCKMTvUQIQ|QIbzB_=nw4p~Ik*?5XcPi;=nBNiT z8WOPp2MLzyI3&)+z<$RZpXKqax0;1`O*cS^fFMOZWgc98%eiptKo7lrsX8RGuTWB5+@wxhw_E5hWx@#Z6*8U;~=R%-E zJhJVyVK;QI#NJPa>zjP0Go)p($XSalvcd;wiTdO)&=3T2C?soXnnqDh* zpTKS}5KsBuGk?GWvaC!MUfysk_=|U(1+$95=3Q`VJf`!y&;3bj_rkla*8FR`-_OtA zB9miD+Pj!Wf7T;p>+dETbNsGi-Yu*_E#th1kFnj{DwT zUQ?8GT^+Qk}#v)00XI*?5aCwH&0VXZ}T&V{u*pmsMq^e7Lw3@M+JkL-0= z$zY#K`Q}G-uM4i!72{vdRur@97eL?7J-a4$($q+f8SxqO+RU=tn>#v@8f(~`W zrtZZaN9rLzF5mx4dh-$40c*(Yn#8c=w5$iSSEg2H2Iky$s`jbfXWC{4q<+ZyJhd$v z%k$YJ!*EPIPw(fZS$7mjXRnD0`6Ub;6#Dy1rBA!$y8!#URLhX z+)^rS2SqZu-A7Xpp4E>wt2mkJ#@FIm)v~H43up53Zcjff2jcfcC-qa+oTZ(1&RQs1 z6D3k_rM^lo5#!FJuZo*li>_9?6qfoB{uuIoTgc_;ryJK!Y^k=o)N-;HU*$jV_N$MK z#MU@sw$&O$LaNcZby)RMC#GZL9xU7>b!Gpkkj;Z1v+aMl-=Qa|TY({$jOV7ml1I@o z&a#((iJA=I0d%y>VFqQL!nR61B}%^|s+E`@7t#s1gS9!N3TsomF7p+Ho`4x<_(>z9 zSu!DCkLSB{ROLIA1okjQV6(jq@f7g+mW5y6}WBE{A>|A@* zjfOmcU5@dF#<*WQe611*-a%5!1WO`Zi zaH@49#vdY>E5x?{6k{35Yb_7YuVyta;XSXQ7omUqP`l7vockT`sfpn=q8)Xt#Utc6 zWH#6K`6e)QsrQ9@wT{As-)U7B$hA^5|5;;v3*!t?xX<+3{ZoW>mJ$5G185)<{#ntt z@-%i$Vo3C;?AOV5sH;v(C+Np~_rKi17p|@QRDUd`l}=4VqYt9dvVt*AeB(rX4O|!? z-(M`yj$9$$vl;I{SC`lyot+(w@5I1n^7G}5^3Uez*K^RB((%mW;+p4*9=+lxBjrnt zHNUe+<1$g73vrxdR(KN(-Nb7BO!8yM_kpO?G;6m*45EWrPDyhgWrjVh$!c+fK4L1H z@=r&TP`$df2~p}rkYsZ{!~WZTY-HK*6FvMtIx@gY{^hhG+}+#JbGv(g>-~$G7_695aDGRX`8iw9K%fzQc zw~k>}>3cF(TpVOM?K;6Hnv2KmgYeDaVt8&%JSz0Asf)1&)GTNBXNq`VMnlGuiSIpk z7Yo+_E2)6_)`XPTLjSG2;R(>89=-3*6Dn)&`+ah+r*AUf-B$LfRp~&wR(axTW81?! z`M}S%k(+sbt;7S$Sg-nG@86QOG4vFTOgPvTa$#s$(x^7_Z;sfQ`y)|J-DQmO1zon(#( z{@Qfu^q%xx`WBXP8}BR?p&#*52Se;o8QDX$e4~!cKk8C<4c_>V`mqddeGR1Dg4t!W zjnl|(9h~49X!b2uIV_e%qTlCB$r3Um_4dvTl9kheH!)mXzUbVa$c@y)VOON3>z0O~pC@T0OhJJN&NNR@u z-))lJVMkNv9fjjk?lu@1pJwA)MswtKW=C71i;|6^@14SKj4Oyn&($xbB{}$QRTKf;Zyr}2&xtk-rD^sIcEZ{lwF?swwGHASCBMuXG@ zTo-Rjr_*=FpRlN6f=(n}ltJ_xy$=0PZkBym90J`(sz1S@!u=NCTFqiImLG%YyAlm_ zk(^3*o)f`%nWP`0)uCpmq`oZUFx1v6eddX^hTQ8~qH4dB@nNv?(9WNd|>baBI?~YDgrr{n{S;I?{4N{5J57DKGZ2oW|sQCgd98X*Y@4Cy&EaLp=kb6%5O+OT04@a&u|EW%Hu7>KZ zS&5p?`FB|1uIyAL%=T_R$#!1NGS;*k7XJc<(cV7Y$OCANtJc6=D!_^Hr~&ZkHNw+>?l@=LpSuPr;YP}7+(Pz{R06uiH9FIue7x)#u{|;?_Xd?Pl-`H zBf`0qb=m1Nfp_e)H*+EXd7eCtbj)D8mO$dFW)N<5-zv|jj&t?U3-BRpaG}qA?;RE4 z-UVjcRSf7-oUb;_s(`JG@R`fmpDgqK*L#le+j_F5ouFh%Yjdv8T|!p+k;#e9Fb=R} z<*}bUtmB6K_sxanlkHU)Qzblq8$4ZM9Tq|VJyzofMs?AI!MvEi zSdHpd<^XwE>+PZbtP3_X#VVDQ{uB(H0q_x$X4Deu`!!;j;j1HI#vr+uSZ zwSBxkQz*JC`buoS0(-CmC#apcCG&wZqpvgX@x@ou!oiU67B{DFNM4wFHT7QVqvSb> zLAeJ{RXtTS$K7PvYYP@Ba9dI>ce+&ia9-iO7P;@_jY#~N>XUUUIWsW|tNu!toVjkg zT&KphLVP~F%iz%uWe!Jor*ISqtFz=C%%F!% zj_b(pAsOOJRA+vMjkXq-E~iiag(Q0uuJ8q1{3suBJ|X#UlDWsQxqn0&nn#V@BRnPk zAK3~2tLtG?1IXNHyy{;2^b6k76E}NA zJ!KOa+U=rs@FC6T&vOQzo!*?jRBzD_qQ;_Rzrx$a{!}j6koVO@tW!Tuo1<%KV1q?uoe_mmFd4+h~W*kYbD-6YbUHO^NG! zdu%RC@Y0RWklr)G%OOKI7O$+lp`lj4ByM@9S%njsz=3bgXWxB2Bb+%F!fnsM^-*N} zEHeLJPYC@6oLNBLKY2oB>DzoBQ+HB&2;$FyVFi7!6vPS<(aPRY&YH@)_U!AttsFF8 zD8}%w2+#zP@KD(kZsrPIDf6IXd#l*m8=f=zU}+As>*2PzU{8MaZ=d=03M;JhtuZI) z#$3O?#atKo&RsMm+=LqL2>XsSzvhz_Sc`hzx{3sbsBA%Fx!dk6Hj4cau7y*#r_Dg8 zBU08{gz-mKtEu_SgykQZ&j9C9BkgSo^QvK{rJS*bxXj<4xt3iyneTfH#Lwm*w6*ul2dzB+zek0%MG?{EqDi`@&M~IWd5`5^X&Aceb;{p1I*Hq4okG^oC2Z8y_TzV2 zaUDF)$geGiF{W6x_vznhx-!w2PKZ1oGwvaAZ$k0rt4&(tjttSZcFxxDu{}FB2#`sa(|*z+&TS8JSLiv z+Lx@KI6v+Y_ezY1zw6^R=|A!or5DK5-kaW%9+H_GO>|piak2NU;zx6$s(P^%!$(hu zj5bfdnOiOImv}~WCi$lfqS0G859zrUz#hL_L%5@s?+Z zvpf}DllVQpRJYyXBmoD>uZ^n>^E>Ngu*<}rqJ#LOo&VuJRxwp8XzSTcrE#1}7wuy_x4dZFp{Ze`07n9C*-Zu=gmFBBWg3$f# zajtmw(04R&#! zZ|yAYo$OS&(h11)Is*+$%(Ww?o#bPo9nUCReKM_M7j^Eo=61shjd zzdCe(83r?uhn@|qSBaL4H~$vozKM*0(KNNUy$E+_X0t1|n$HLL$b93^PP|9Yu65G9 zH_=zDBJ=_%D(9&l@3ShoE)KzV@~uztAfCr{C;1zH2FhS+~Z(l!!P57~Wl==JsHHx^2rhA|)Uk}nozYAWvV6}*|k8*fPSM3k+>C+6-}3asEK z6>fDhYRQtPlciHvCQC<`ITIb|e55^m`8X<(+MRkRwJOrJR`=w}YV#h+Yn9hC-JON5 z;r^cqnE^b&96j}JOHWV#6Tgud7d^u&u4lD&%9Nd`qu!FZ9^M_hH)5Y?&`<15sL@#n zAExuk{?hyDv#6J<*&A@Tk6Fjr*5P)xrBJlUIzPe2hYZxe*|v_NUQ3*c_92&DVT#-^ zQOQ1jKOp+j-HG)hPwAK|b3Ad@=h&JdO+I}UyR;n|g^c`Wp0P(H@Nu8{!`sf~ z^-tkFg&rRJjUnW;hfjvCXJ?VbBUaVDDD>?D%rNwN&Sk%*`Pa~qIYd*oInk)jMzq3F zUb0^E@xYW7y~pQ+tqb?SU(V`;e5Ithtt8Vo8voVC9U}F`cvJ3Nr`;)*wz2s?CBE3g zTkEjZ#@|QiBah(xxeR@ zlhfWkt9$mXsV_1;(pRUi#C5jIc-av>nVOunJT-)G+brvrf-SPY&KrNM@Zq*6*Jnx= ztWj`%v?p(E-fM}asf$tv;(KD zJ3f|qB^sXkBvl|Pn!Y!uU(RQFr!&u}N@|%ZsAvB}Q7QcSV_xqciI&N!QB}9cmvu|U zznNaq%xJDVFveun&i){^AQ7jR=H;e8l{MNU+KiQr63pw%R;V*3TW?oi6?St{X5O#nF zSo!Eq*%;r(=RuYCX-i9t3`dJkr+2Ywx(-9`5K~zvv#~|yH2l9V-W7+AYE{|v0pcqC zotiZf1L}+`561A{AkRhM<37=~DWolQ2Y*?e)LiDIXCJ; z3g^;{+{}k6g1_VMTpo3Gdu=siY3q46JFThBv)@QMI*^TZP8xgQ1%G&2=yg1vMrT3s zO5)2Kyzy}-lZ*JFO)>pjX~{maR}XJ1Pdm!UH5n?Rf7EX5=H=yzY}eA^{zn~lOW{fv z^rLa# zVEQkT@`n7BE#ln!A(?cE)nKZ~vdT*z?hY(da}Mcje8DJ117D$Sa;a6isxO zLaRgrXCaj{`x5)y$W=czHu_73=0Mi99xmQQ25#j{k`4F@TYD1bmCyzJV7jKWllSBV zU59yAP)++|{Ibe|OL!%@I?et<;yS>BLsq$(Q^IgFOaZpzanXlxZ-}lVJQh8hoXYO- zhM!uhtPY-%}qGjx0u90@y2j7)mB)2rO`})5yNnoagb>$?CuQNU*ey%fQ2Ki z_3hJ-<@DqL z@AXZenkRx%odw+FdFQD7c?%9UWv?%zO~1je(`2~>zI~G3{EUe&FuqEx=QQ@Dv}p9> z)?=rfsKIR188+e;{GbzyaT2ao^DESIoCmKCL;cI`?&Z9rQ`W4QeNN-br^vxSVmh5* z=yF{Bh)k8{Y~XGyyFy%jHmeb`e{Zr%4e9V3{DWycz_+oNiqO_j5dmMCxV=EpLN!x8bCw^!?nKMnlgT~V&!r}3N{EoGOum^c zo%tsBtK41j#N?o?X{mD2j7;IEc4}Jk>$qsnJO7S6JvX;QW^>da)jst~@+|dFe?`|t z9mN|u#eb%MOK(h{mVeMem&)0S92%%ok~^Bbon0uDyppb+j4x03&3id-WV(!KdofuH z^^;d8H$}I)ldeBTQ(o7Cs)<2rc3(?3mNhvWv%W1;(ycL1L%mJb?VuBxGCGq_z=y7a z06kf}XGz}@K1*rLZoc?UF8jO$;xrb?m+vZ`)JAWWXK}?rB<=vd(m;g!ptG>2X~{D@ z%GqROvYibv!^`;6&GB!yJF5+PQEgL4-}xjlBf34AN-nd$FRI~M2km>wIJ_e5KJX80Wls_R56tCixO~L@aV?{_Y2G*N*oSyt75Ad8<*n6&|7)RKhVNRGMoloU z|B5B9P48iKT^3*F&9v^k8p>VmF~T{vm6y){1u)5nXE+zJ$Tg;#;Nh)kC_`guBs_?i1aC zp&i2PjyZ?>*r`{j1UrI>9--YeL=)!o5Fa1|t3_;jneDx}f8f}Kaq$;fjq4y&!Ww2^ z%wZaT!jq1$ZPPLAPa)4q3_E11{D`l=X?B%)GNGemIMrxnhx)?ir0?HvU7r&{=mu3o zPqQSvzQNB97|S*oR+@ZQx3a6@N>SG3A5qPDFy%*YXpY|=bn3k=u1He$8{1hT_aS<` z)kvRbIiI2l+u>Px*cp0RzGv*=E~?NS;Z^f1LXPLL4V55QAMAA>+pvXy6gps*F@}(N z6Y7*gMEh*((%u-=ag(JG`JN-9^P5qw#4|eXXEEKTLg9X;geCgggWG&Gt zv2SvFVpBXZZ+On`Gq=chnH9a2y|v)w1qwuqa&J9TF{f=_#dwBZkmL0{8<)H}D(N(} zv3qRqOVvy^&Gbvp&a1-TtQ<{HrC&BNCV4PxZ&qHkIsIks&FMj6$-@)NomiDfoN(`m z8<*Wh@^NBxs&H0^1cXzXC0zXMnM$@$+cQ8TA$jg9LGG2~^k+ZT!m zY=wAPvOd<~EscDu8)PaA%Od(7YV`_Yj7`|BC&ZF=#gED|SjJ;N#*?_7et!$UKGhGX u6L!@C-~3u0(n`L3@N!?(iMOm6*gkkZSItCmalKG4e=T$>>L+ho@&5-N?_EUz diff --git a/phsource/r3/r_trill4.wav b/phsource/r3/r_trill4.wav new file mode 100755 index 0000000000000000000000000000000000000000..f29faa83efdd6bfeef06534fde4fd26c1fc15f12 GIT binary patch literal 39980 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%0AMMdJ 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 literal 0 HcmV?d00001 diff --git a/phsource/vwl_en_us/a b/phsource/vwl_en_us/a index dfb450af211a605272be44154f2b2b1b2b191051..83e46101811d172988d432cf88727fde8483337b 100644 GIT binary patch delta 46 wcmca>aMwT}IKb68B-k~Ok%56Bk&PjKqd*V~qwwZr7H$xg&jF^Yc^+{C02vbtHUIzs delta 46 wcmca>aMwT}IKb68B-k~Ok%56Bk&Pi{qd*V~qsZoD7H$xg&jF^Yc^+{C02u5GHUIzs diff --git a/phsource/w/_w b/phsource/w/_w index 1e7438aa9ca7c37cdf74c53ee4efec903ad407a1..cfde5014968d1cf034a83b3d5a67297a1adbe897 100644 GIT binary patch delta 66 wcmZ3%x`K5=j-&-A1Iq)(2aF6rAj8wf1Y_UX*s9BjBJ09q1(!{ke46nt02vk#Hvj+t delta 66 wcmZ3%x`K5=j^qpu29^hm4;UGMU_6O7%yu~nB5MfL%=6Ia5J#L*!wrO@-s@!U}O-^ XV9WrkoXNt#_JDB-RM+Npj3P_`aQ6}+ diff --git a/phsource/w/wi2 b/phsource/w/wi2 index e2519a88897d20e991fda25d320261d0debb6d50..9b21e189d33a404848ba7d67be631533c706c10f 100644 GIT binary patch delta 243 zcmX@a-pnNs9N_9466_kt%)r17TPwVjJiA;u!0DaXr A6#xJL delta 158 zcmZqXI>gQ&9N_9466_kt#K6E%p2<8>KzedEqn6mnemonic == 't') && ((prev->type == phVOWEL) || (prev->mnemonic == 'n'))) -{ - if(((plist2+1)->sourceix != 0) || ((plist2-1)->stress == 4) && (next->type == phVOWEL)) - { - ph = phoneme_tab[phonGLOTTALSTOP]; - } -} -#endif + if(langopts.param[LOPT_REDUCE_T]) + { + if((ph->mnemonic == 't') && (plist2->sourceix == 0) && ((prev->type == phVOWEL) || (prev->mnemonic == 'n'))) + { + if(((plist2+1)->sourceix == 0) && ((plist2+1)->stress < 4) && (next->type == phVOWEL)) + { + ph = phoneme_tab[phonT_REDUCED]; + } + } + } if((ph->reduce_to != 0) && (ph->type != phVOWEL) && !(plist2->synthflags & SFLAG_DICTIONARY)) { diff --git a/src/synthdata.cpp b/src/synthdata.cpp index e2596c4b..d3b8eec8 100755 --- a/src/synthdata.cpp +++ b/src/synthdata.cpp @@ -35,7 +35,7 @@ #include "translate.h" #include "wave.h" -const char *version_string = "1.25.17 04.Jun.07"; +const char *version_string = "1.25.18 06.Jun.07"; const int version_phdata = 0x012514; int option_device_number = -1; diff --git a/src/synthesize.cpp b/src/synthesize.cpp index 9cda3c8c..37c40787 100755 --- a/src/synthesize.cpp +++ b/src/synthesize.cpp @@ -652,11 +652,17 @@ static void SmoothSpect(void) frame = frame2 = (frame_t *)q[2]; modified = 0; + if(frame->frflags & FRFLAG_BREAK) + break; + if(frame->frflags & FRFLAG_FORMANT_RATE) len = (len * 12)/10; // allow slightly greater rate of change for this frame (was 12/10) for(pk=0; pk<6; pk++) { + if((frame->frflags & FRFLAG_BREAK_LF) && (pk < 3)) + continue; + allowed = (formant_rate[pk] * len)/256; diff = frame->ffreq[pk] - frame1->ffreq[pk]; diff --git a/src/synthesize.h b/src/synthesize.h index 0000776d..b07f1ee5 100755 --- a/src/synthesize.h +++ b/src/synthesize.h @@ -31,6 +31,7 @@ #define FRFLAG_LEN_MOD 0x04 // reduce effect of length adjustment #define FRFLAG_BREAK_LF 0x08 // but keep f3 upwards #define FRFLAG_BREAK 0x10 // don't merge with next frame +#define FRFLAG_BREAK_2 0x18 // FRFLAG_BREAK_LF or FRFLAG_BREAK #define FRFLAG_FORMANT_RATE 0x20 // Flag5 allow increased rate of change of formant freq #define FRFLAG_MODULATE 0x40 // Flag6 modulate amplitude of some cycles to give trill #define FRFLAG_DEFER_WAV 0x80 // Flag7 defer mixing WAV until the next frame diff --git a/src/translate.h b/src/translate.h index 8cba17dd..762f2445 100755 --- a/src/translate.h +++ b/src/translate.h @@ -206,7 +206,7 @@ extern const int param_defaults[N_SPEECH_PARAM]; -#define N_LOPTS 12 +#define N_LOPTS 13 #define LOPT_DIERESES 1 // 1=remove [:] from unstressed syllables, 2= remove from unstressed or non-penultimate syllables // bit 4=0, if stress < 4, bit 4=1, if not the highest stress in the word @@ -235,6 +235,8 @@ extern const int param_defaults[N_SPEECH_PARAM]; // bit 4=only if the second word has $alt attribute // bit 5=not if the second word is end-of-sentence #define LOPT_COMBINE_WORDS 11 + // change [t] when followed by unstressed vowel +#define LOPT_REDUCE_T 12 typedef struct {