Add GSC Wild encounter tables

Fishing is a different format -- todo.
This commit is contained in:
Kurt 2017-02-26 18:23:29 -08:00
parent c46875ffe7
commit 113706d1e6
10 changed files with 616 additions and 17 deletions

View file

@ -167,7 +167,10 @@ namespace PKHeX.Core
{
Evolves2 = new EvolutionTree(new[] { Resources.evos_gsc }, GameVersion.GSC, PersonalTable.C, MaxSpeciesID_2);
SlotsGSC = new EncounterArea[0]; // todo
var g = EncounterArea.getArray2_GW(Resources.encounter_gold);
var s = EncounterArea.getArray2_GW(Resources.encounter_silver);
var c = EncounterArea.getArray2_GW(Resources.encounter_crystal);
SlotsGSC = addExtraTableSlots(addExtraTableSlots(g, s), c);
StaticGSC = getStaticEncounters(GameVersion.GSC);
}
@ -1206,7 +1209,11 @@ namespace PKHeX.Core
// Pressure Slot
EncounterSlot slotMax = encounterSlots.OrderByDescending(slot => slot.LevelMax).FirstOrDefault();
if (slotMax != null)
slotMax = new EncounterSlot(slotMax) { Pressure = true, Form = pkm.AltForm };
{
slotMax = slotMax.Clone();
slotMax.Pressure = true;
slotMax.Form = pkm.AltForm;
};
if (gen >= 6 && !DexNav)
{
@ -1230,7 +1237,8 @@ namespace PKHeX.Core
foreach (EncounterSlot s in eslots)
{
bool nav = s.AllowDexNav && (pkm.RelearnMove1 != 0 || pkm.AbilityNumber == 4);
EncounterSlot slot = new EncounterSlot(s) { DexNav = nav };
EncounterSlot slot = s.Clone();
slot.DexNav = nav;
if (slot.LevelMin > lvl)
slot.WhiteFlute = true;

View file

@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
namespace PKHeX.Core
@ -36,6 +37,40 @@ namespace PKHeX.Core
int count = data[ofs++];
return readSlots(data, ref ofs, count, SlotType.Super_Rod, -1);
}
private static EncounterSlot1[] getSlots2_GW(byte[] data, ref int ofs, SlotType t, int slotSets, int slotCount)
{
byte[] rates = new byte[slotSets];
for (int i = 0; i < rates.Length; i++)
rates[i] = data[ofs++];
var slots = readSlots(data, ref ofs, slotSets * slotCount, t, rates[0]);
for (int r = 1; r < slotSets; r++)
{
for (int i = 0; i < slotCount; i++)
{
int index = i + r*slotCount;
slots[index].Rate = rates[r];
slots[index].SlotNumber = i;
}
}
return slots;
}
private static IEnumerable<EncounterArea> getAreas2(byte[] data, ref int ofs, SlotType t, int slotSets, int slotCount)
{
var areas = new List<EncounterArea>();
while (data[ofs] != 0xFF) // end
{
areas.Add(new EncounterArea
{
Location = data[ofs++] << 8 | data[ofs++],
Slots = getSlots2_GW(data, ref ofs, t, slotSets, slotCount),
});
}
return areas;
}
/// <summary>
/// RBY Format Slot Getter from data.
@ -61,10 +96,17 @@ namespace PKHeX.Core
Species = spec,
Type = t,
Rate = rate,
SlotNumber = i,
};
}
return slots;
}
/// <summary>
/// Gets the encounter areas with <see cref="EncounterSlot"/> information from Generation 1 Grass/Water data.
/// </summary>
/// <param name="data">Input raw data.</param>
/// <returns>Array of encounter areas.</returns>
public static EncounterArea[] getArray1_GW(byte[] data)
{
// RBY Format
@ -93,6 +135,11 @@ namespace PKHeX.Core
}
return areas.Where(area => area.Slots.Any()).ToArray();
}
/// <summary>
/// Gets the encounter areas with <see cref="EncounterSlot"/> information from Pokémon Yellow (Generation 1) Fishing data.
/// </summary>
/// <param name="data">Input raw data.</param>
/// <returns>Array of encounter areas.</returns>
public static EncounterArea[] getArray1_FY(byte[] data)
{
const int size = 9;
@ -109,6 +156,11 @@ namespace PKHeX.Core
}
return areas;
}
/// <summary>
/// Gets the encounter areas with <see cref="EncounterSlot"/> information from Generation 1 Fishing data.
/// </summary>
/// <param name="data">Input raw data.</param>
/// <returns>Array of encounter areas.</returns>
public static EncounterArea[] getArray1_F(byte[] data)
{
var ptr = new int[255];
@ -136,6 +188,25 @@ namespace PKHeX.Core
}
return areas;
}
/// <summary>
/// Gets the encounter areas with <see cref="EncounterSlot"/> information from Generation 2 Grass/Water data.
/// </summary>
/// <param name="data">Input raw data.</param>
/// <returns>Array of encounter areas.</returns>
public static EncounterArea[] getArray2_GW(byte[] data)
{
int ofs = 0;
var areas = new List<EncounterArea>();
areas.AddRange(getAreas2(data, ref ofs, SlotType.Grass, 3, 7)); // Johto Grass
areas.AddRange(getAreas2(data, ref ofs, SlotType.Surf, 1, 3)); // Johto Water
areas.AddRange(getAreas2(data, ref ofs, SlotType.Grass, 3, 7)); // Kanto Grass
areas.AddRange(getAreas2(data, ref ofs, SlotType.Surf, 1, 3)); // Kanto Water
areas.AddRange(getAreas2(data, ref ofs, SlotType.Swarm, 3, 7)); // Swarm
areas.AddRange(getAreas2(data, ref ofs, SlotType.Special, 1, 3)); // Union Cave
return areas.ToArray();
}
public static EncounterArea[] getArray(byte[][] entries)
{
if (entries == null)

View file

@ -13,16 +13,20 @@
public bool WhiteFlute;
public bool BlackFlute;
public bool Normal => !(WhiteFlute || BlackFlute || DexNav);
public int SlotNumber;
public EncounterSlot() { }
public EncounterSlot(EncounterSlot template)
public virtual EncounterSlot Clone()
{
Species = template.Species;
AllowDexNav = template.AllowDexNav;
LevelMax = template.LevelMax;
LevelMin = template.LevelMin;
Type = template.Type;
Pressure = template.Pressure;
return new EncounterSlot
{
Species = Species,
AllowDexNav = AllowDexNav,
LevelMax = LevelMax,
LevelMin = LevelMin,
Type = Type,
Pressure = Pressure,
SlotNumber = SlotNumber,
};
}
public string Name
@ -40,13 +44,17 @@
{
public int Rate;
public EncounterSlot1() { }
public EncounterSlot1(EncounterSlot1 template)
public override EncounterSlot Clone()
{
Species = template.Species;
LevelMax = template.LevelMax;
LevelMin = template.LevelMin;
Type = template.Type;
Rate = template.Rate;
return new EncounterSlot1
{
Species = Species,
LevelMax = LevelMax,
LevelMin = LevelMin,
Type = Type,
Rate = Rate,
SlotNumber = SlotNumber,
};
}
}
}

View file

@ -17,5 +17,6 @@
FriendSafari,
Special,
SOS,
Swarm,
}
}

View file

@ -262,10 +262,13 @@
</Compile>
<None Include="Resources\byte\eggmove_sm.pkl" />
<None Include="Resources\byte\encounter_blue.pkl" />
<None Include="Resources\byte\encounter_crystal.pkl" />
<None Include="Resources\byte\encounter_gold.pkl" />
<None Include="Resources\byte\encounter_mn.pkl" />
<None Include="Resources\byte\encounter_mn_sos.pkl" />
<None Include="Resources\byte\encounter_rb_f.pkl" />
<None Include="Resources\byte\encounter_red.pkl" />
<None Include="Resources\byte\encounter_silver.pkl" />
<None Include="Resources\byte\encounter_sn.pkl" />
<None Include="Resources\byte\encounter_sn_sos.pkl" />
<None Include="Resources\byte\encounter_yellow.pkl" />

View file

@ -12472,6 +12472,26 @@ namespace PKHeX.Core.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Byte[].
/// </summary>
public static byte[] encounter_crystal {
get {
object obj = ResourceManager.GetObject("encounter_crystal", resourceCulture);
return ((byte[])(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Byte[].
/// </summary>
public static byte[] encounter_gold {
get {
object obj = ResourceManager.GetObject("encounter_gold", resourceCulture);
return ((byte[])(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Byte[].
/// </summary>
@ -12522,6 +12542,16 @@ namespace PKHeX.Core.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Byte[].
/// </summary>
public static byte[] encounter_silver {
get {
object obj = ResourceManager.GetObject("encounter_silver", resourceCulture);
return ((byte[])(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Byte[].
/// </summary>

View file

@ -7420,4 +7420,13 @@
<data name="lvlmove_gs" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\byte\lvlmove_gs.pkl;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="encounter_crystal" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\byte\encounter_crystal.pkl;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="encounter_gold" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\byte\encounter_gold.pkl;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="encounter_silver" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\byte\encounter_silver.pkl;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View file

@ -0,0 +1,165 @@
\\\\\\\\\\\\\\\\\\\\ \\\
\\\ \\\ \\\
m) m) m)mm) mmnmm) mmnmm) mmn Ą 
 ż 
6 Ł§Ł
0 0 0
±±±±ëëë±±±±ëëë±±±±ÂĂĂÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ%J))__J))__JÂ)__&J))_J))_J)Â_'
)*)J__)*)J__)*ĂJ__()))O)OO)))O)OO)))O)OO))))O*OO)))O*OO)))O*OO4

  ..
  ..+0+6Ł..9 )B *J )B *J )· *J: JB)** JB)** J)·**;K CJB**K CJB**KJ*· * *<))*BJ))*BJ))*·J=Ü)*Ü***Ü)*Ü***á)*á***>Ü)*Ü**|Ü)*Ü**|á)*á**×?Ü)*Ü*||Ü)*Ü*||á)*á*××@Ü)*Ü*||Ü)*Ü*||á)*á*××AÜ)*Ü|||Ü)*Ü|||á)*á×××Bb)Vb*VVb)Vb*VVb)bb***Cb)Vb*VVb)Vb*VVb)bb***Db)Vb*VVb)Vb*VVb)bb***Eb)Vb*VVb)Vb*VVb)bb***Fb)Vb*VVb)Vb*VVb)bb***Gb)Vb*VVb)Vb*VVb)bb***Hb)Vb*VVb)Vb*VVb)bb***Ib)Vb*VVb)Vb*VVb)bb***J+K,Ů*_-~-*öö+K,Ů*_-~-*öö+K,**_**-7.*.*K0*0C/Ů./0/öö0*0C/Ů./0/öö0*07.*./0/-Č-ČL3*0_0K2Ůöö÷3*0_0K2Ůöö÷3*0_0K1*-75*5*M0*.*2*./0/2/4/0*.*2*./0/2/4/-Č0*2*./0/2/4/N
J)JJŘ)ÎJ)JJ))ÎJ)JJ))ÎO
J)KŮŘ**J)KŮŮ**J)KĘĘ**ˇˇ»»ˇˇ»»ŁŁŁŁĄ

 »»

 »»§Ł<Ł)ŁŁĄ
E »»
E »»§<EŁ)\\
E»»»E»»»ÂE)Ł\\J»»»J»»»)J) 
Ń  
? '
Ń  
? '
`  Ł
? '
 Ń :
? '
Á Ń :
? '
Á `Ł 6
? '
Á
ĄE:E:§ŁEŁŁ\\
 Ą::¦¦ :: §ęŁę¤¨¨ Q € ń ńQ € ń ń4Q¤444 QńQń4Q¤444   )*·** ˇS˘˘˘ˇS˘˘˘0¤011rlEFlllrlEFlllr<EF===JKĎčçăăJKĎččăăJKĎKKKK JJçJJJJ)r*M*,N)T+U+U)r*M*,N)T+U+U)r*=**,=(*,*,*˙ÂĂĂ%ÂĂĂ&ÂĂĂ'
HĂI(OO
O)OOP46
679
v·w;v·w<v·wD
HtIH
ttII
tIuK#w#7#vN<0F>
<EFBFBD><05>O<0F>
<EFBFBD><05>Q
<0F>
<EFBFBD>
HHI<<=<<=
HĂI HHI

667HHIHIâ
vvw <14><0F>
<EFBFBD><<=<14><0F><05>HHIHHI
<<=HHIHHI <<= <0F>
<EFBFBD>
<0F>
<EFBFBD><05>#=(=#<˙T
22 223332222333222 2 3 3 3U)J .
J##)J .
J##)J# .
J # #W
h J B )C i i
h J B )C i i ) J J])))X hJ_ )iss hJ_ )iss )J_)]**["K o!_"*##p#p"K o!_"*##p#p"*"K _$K&K(K(KS)*OOO)*OOO)*OOO ˇ˘ˇ˘ŁŁŁŁ
Ą ¦
 Ł§Ł¤¨¤¤









)## 









)##  Ń ?'??  Ń ?'?? Ł 4¤ ?'??   ŃQ 'ŇŇ  ŃQ 'ŇŇ 4 `Q6 'Ń'??Ń'??4Ćä5'??Ń?:'@@Ń?:'@@4¤?]'@@ iiii01)di}}di}}0d1)}} » Q»»» Q»»` 4Q¤aa!»»»q!»»»q0ä1ĂĂq!»ĽĽq!»ĽĽq0ä1ĂĂq!»»»q!»»»q0ä1ĂĂqXXYYXXÚYYXXXĆĆYYXX !X!Y!YÚX  Ú!Y!YXXX X!X!Y!YXXYYXXÚYYXXXXXYYr#rzzzr#rzzzr#rrrrTMTM<<
?
E  
ż
?
E 
0
+ + ?
E,,
 
E 
 
E 
+
Ł
0 ¤
E¤¤T MTT MT¤ ¤ĂĂĂTT MUUTT MUUäà ¤ ¤ ¤'r(M(N*)T+U+U'r(M(N*)T+U+U'r(=(*(=******˙S
vOw#HH#I
vv
w 
66
7
v
vw
v
vwHĂIHĂI#HH#I#HH#I#HH#I
<<
=
vv
w
vv
wHHIHHI(<#<(= #HH#I
<<
=
vv
w #HH#IXXY<14><0F>
<EFBFBD>#HH#I˙N
JÎ)JÎÎÎJÎ)JÎÎÎJÎ)JÎÎÎ
  ÁÁ
 ÁÁ
 ÁÁŁ
„˙˙

View file

@ -0,0 +1,163 @@
\\\\\\\\\\\\\\\\\\\\ \\\
\\\ \\\ \\\
m)m m)m m)mmm)~~mm~)mm)~~


ż  ż
Ł
Ł Ł Ł
ŁŁŁ
±±±±ëëë±±±±ëëë±±±±ëëëÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉJ))__J))__J))__J)_ )J)_ )J)_ )
)*J__)*J__)*J__ )))O)OO)))O)OO)))O)OO!)))O*OO)))O*OO)))O*OO,

 
.)..

  )..++).)..1 ))BJ· ))BJ· ))BJ·2 J BJB)) J BJB)) J BJB))3K CJB**K CJB**K CJB**4))BJ))BJ))BJ5Ü*)Ü)||Ü*)Ü|||Ü*)Ü)||6Ü*)Ü)||Ü*)Ü|||Ü*)Ü)||7Ü*)Ü)||Ü*)Ü|||Ü*)Ü)||8Ü*)Ü)||Ü*)Ü|||Ü*)Ü)||9Ü*)Ü)||Ü*)Ü|||Ü*)Ü)||:b)bV*VVb)bV*VVb)bV*VV;b)bV*VVb)bV*VVb)bV*VV<b)bV*VVb)bV*VVb)bV*VV=b)bV*VVb)bV*VVb)bV*VV>b)bV*VVb)bV*VVb)bV*VV?b)bV*VVb)bV*VVb)bV*VV@b)bV*VVb)bV*VVb)bV*VVAb)bV*VVb)bV*VVb)bV*VVB*_,Ů+K+K-*öö*_,Ů+K+K-*öö*_,Ů+K+K-*ööC-Ă07/Ů-Ă0*öö-Ă07/Ů-Ă0*öö-Ă07/Ů-Č0*ööD3*0_0*2Ů37öö3*0_0*2Ů37öö3*0_0*2Ů37ööE-Ă07/Ů-Ă0*öö-Ă07/Ů-Ă0*öö-Č07/Ů-Ă0*ööF
J)JJ))ÎJ)JJ))ÎJ)JJ))ÎG
J)KĘĘ**J)KĘĘ**J)KĘĘ**ˇˇˇˇŁŁŁŁŁ

 
 
  §ŁŁŁŁ
E 
  
E 
  §EŁŁŁ
Eł»Â)Eł»ÂEłÂ))»»))»»)))) 
`  `
? 
`  `
? 
`  `
? 
 `
?
Á `
?
Á `
?Ł
Á
   : ę  : ę::  Ł : ꣣
 ę: ę::: §ęŁ:§§§ QS ń € ŃQS ń € ŃQ ń € Ń QSńQSńQń8 ł´´´8 ł´´´8 ł))´´´ ´Ëł0´Ëł´´´´Ë¤0ł00rFElFllrFElFllrFElFllJKĎŘKKKJKĎŘKKKJKĎŘKKK JJ''JJ''JJJ'')r*M*Ů,N)T+U+U)r*M*Ů,N)T+U+U)r*M*Ů,N&×*×*×˙ÂĂĂÂĂĂÂĂĂ
HĂI OO
O!
OOP,6
671
vvw3vvw4vvw<
HtI@
ttIA
tIuC#w(w#vF<0F>
<EFBFBD><05>G<0F>
<EFBFBD><05>I
<0F>
<EFBFBD>
<<=<<=
HĂI HHI

667HHIHIâ
vvw <14><0F>
<EFBFBD><<=<14><0F><05>HHIHHI
<<=HHIHHI <<= 
<0F>
<EFBFBD>
<0F>
<EFBFBD><05>#=(=#<HHK
222 2333222 2333222 2333L)J .
##)J .
##)J .
##N
h
J B)C h h
h
J B)C h h
h
J B)C h hO h J_
)iss h J_
)iss h J_
)issR K *!Ů"_$_#o#o K *!Ů"_$_#o#o K *!Ů"_$_#o#oJ
)*OOO)*OOO)*OOO ˇ˘ˇ˘ŁŁŁŁ
  
 Ł§Ł¤¨'
'
)'
 '
'
)'
  E ???  E ??? ++ E, ???   EQ ???  EQ ??? ++ EQ ???::::Ć:Ćää?:@@?:@@¤]?¤:@@  8 99 8 99 8 99dĂ}}d}}}ĂdĂ}} `Q`aaa`Q`aaa`Q`aaa!»»Ăq!»»»q!¤ĂĂĂq!»ĽĂq!»ĽĽq!¤ĂĂĂq!»»Ăq!»»»q!¤ĂĂĂqXXÚYYXXÚYYXXXĆÚYYXXÚ Y YÚXÚ Y YXXXYÚ Y YXXÚYYXXÚYYXXXYÚYYrr#rrrzzrr#rrzzzrr#rrrzzTMTMME
E ? F0FFE
ż ? F
EFF0
+ ? F
E
1
1
E0 ?
FF
E
 ? FF0
+
1 ?F
E
ET MTUĂT MTUU MĂ Ă ĂTTĂ MTT MĂĂ M'r(M(Ů*N)T+U+U'r(M(Ů*N)T+U+U'r(M(Ů(×*N*N*N˙
vv
w 
66
7
v
vw
v
vwHĂIHĂI#HH#I#HH#I#HH#I
<<
=
vv
w
vv
wHHIHHIJ
vOw(<#<(= #HH#I
<<
=
vv
w #HH#IXXY<14><0F>
<EFBFBD>#HH#I#HH#I˙
  ÁÁ
 ÁÁ
 ÁÁŁ
 ŃQS ń € €ŃQS ń € €ŃQ ń € €F
JÎ)JÎÎÎJÎ)JÎÎÎJÎ)JÎÎÎ1 ·)B·J ·)B·J ·)B·J˙1
v·

View file

@ -0,0 +1,141 @@
\\\\\\\\\\\\\\\\\\\\ \\\
\\\ \\\ \\\
m)m m)m m)mmm)~~mm~)mm)~~
 

 ż  ż
Ł
Ł Ł Ł
ŁŁŁ
±±±±ëëë±±±±ëëë±±±±ëëëÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉJ))__J))__J))__J)_ )J)_ )J)_ )
)*J__)*J__)*J__ )))O)OO)))O)OO)))O)OO!)))O*OO)))O*OO)))O*OO,
  .)..  )..++).)..1 ))BJ· ))BJ· ))BJ·2 J BJB)) J BJB)) J BJB))3K CJB**K CJB**K CJB**4))BJ))BJ))BJ5Ü*áÜ)||Ü*áÜ|||Ü*áÜ)||6Ü*áÜ)||Ü*áÜ|||Ü*áÜ)||7Ü*áÜ)||Ü*áÜ|||Ü*áÜ)||8Ü*áÜ)||Ü*áÜ|||Ü*áÜ)||9Ü*áÜ)||Ü*áÜ|||Ü*áÜ)||:b)bV*VVb)bV*VVb)bV*VV;b)bV*VVb)bV*VVb)bV*VV<b)bV*VVb)bV*VVb)bV*VV=b)bV*VVb)bV*VVb)bV*VV>b)bV*VVb)bV*VVb)bV*VV?b)bV*VVb)bV*VVb)bV*VV@b)bV*VVb)bV*VVb)bV*VVAb)bV*VVb)bV*VVb)bV*VVB*_,č+K+K-*öö*_,č+K+K-*öö*_,č+K+K-*ööC-Ă07/č-Ă0*öö-Ă07/č-Ă0*öö-Ă07/č-Č0*ööD3*0_0*2č37öö3*0_0*2č37öö3*0_0*2č37ööE-Ă07/č-Ă0*öö-Ă07/č-Ă0*öö-Č07/č-Ă0*ööF
J)JJ))ÎJ)JJ))ÎJ)JJ))ÎG
J)KĘĘ**J)KĘĘ**J)KĘĘ**ˇˇˇˇŁŁŁŁŁĄ    ŁŁŁŁŁĄ E E ŁEŁŁŁ
Eł»Â)Eł»ÂEłÂ))»»))»»)))) 
`  `
? 
`  `
? 
`  `
? 
  `
?
Á  `
?
Á  `
?Ł
Á
   % ę   % ę%%  Ł % ꣣
 Ąę%ĄĄĄ ę%%% ŁęŁ%ŁŁŁ 4QS ń € Ń4QS ń € Ń4Q4 ń € Ń 4QSń4QSń4Q4ń łł´´´ łł´´´ ł)ł)´´´ ´Ëł0´Ëł´´´´Ë¤0ł00rFElFllrFElFllrFElFllJKKçKăăJKKçKăăJKKçKăă JJ''JJ''JJJ'')r*M*č,N)T+U+U)r*M*č,N)T+U+U)r*M*č,N&×*×*×˙ÂĂĂÂĂĂÂĂĂ
HĂI OO
O!OOP,6
671
vvw3vvw4vvw<
HtI@
ttIA
tIuC#w(w#vF<0F>
<EFBFBD><05>G<0F>
<EFBFBD><05>I
<0F>
<EFBFBD>
<<=<<=
HĂI HHI

667HHIHIH
vvw <14><0F>
<EFBFBD><<=<14><0F><05>HHIHHI
<<=HHIHHI <<= <0F>
<EFBFBD>
<0F>
<EFBFBD><05>#=(=#<HHK
222 2333222 2333222 2333L)J) .
J##)J) .
J##)J) .
J##N
h
J B)C h h
h
J B)C h h
h
J B)C h hO h J_
)iss h J_
)iss h J_
)issR K *!č"_$_#o#o K *!č"_$_#o#o K *!č"_$_#o#oJ)*OOO)*OOO)*OOO ˇ˘ˇ˘ŁŁŁŁ Ą¦ ŁŁŁ¤¤'
'
)'
 '
'
)'
  E4 ???  E4 ??? +4 E, ???   E4Q ???  E4Q ??? +4 EQ ???4%54%5%%4Ć%5ää4?%@@4?%@@4]?¤%@@       dĂ}}d}}}ĂdĂ}} `Q`aaa`Q`aaa`Q`aaa!»»Ăq!»»»q!¤ĂĂĂq!»ĽĂq!»ĽĽq!¤ĂĂĂq!»»Ăq!»»»q!¤ĂĂĂqXXÚYYXXÚYYXXXĆÚYYXXÚ Y YÚXÚ Y YXXXYÚ Y YXXÚYYXXÚYYXXXYÚYYrr#rrrzzrr#rrzzzrr#rrrzzTMTMME
E ? F0FFE
ż ? F
EFF0
+ ? F
E
1
1
E0 ?
FF
E
 ? FF0
+
1 ?F
E
ET MTĂT MT MĂTTĂ MUUTT MUUĂĂ M Ă Ă'r(M(č*N)T+U+U'r(M(č*N)T+U+U'r(M(č(×*N*N*N˙
vv
w 
66
7
v
vw
v
vwHĂIHĂI#HH#I#HH#I#HH#I
<<
=
vv
w
vv
wHHIHHIJ
vOw(<#<(= #HH#I
<<
=
vv
w #HH#IXXY<14><0F>
<EFBFBD>#HH#I#HH#I˙
  ÁÁ
 ÁÁ
 ÁÁŁ
 Ń4QS ń € €Ń4QS ń € €Ń4Q4 ń € €F
JÎ)JÎÎÎJÎ)JÎÎÎJÎ)JÎÎÎ1 ·)B·J ·)B·J ·)B·J˙1
v·