summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LaTeX/bib/references.bib2
-rw-r--r--LaTeX/chapters/appendix-a.tex3
-rw-r--r--LaTeX/chapters/conclusion.tex18
-rw-r--r--LaTeX/chapters/implementierung.tex6
-rw-r--r--LaTeX/diplomarbeit.pdf3225
5 files changed, 1683 insertions, 1571 deletions
diff --git a/LaTeX/bib/references.bib b/LaTeX/bib/references.bib
index 197dc53..6639067 100644
--- a/LaTeX/bib/references.bib
+++ b/LaTeX/bib/references.bib
@@ -14,7 +14,7 @@
}
@misc{OOS,
author={Heinrich Fassbender},
- title={Vorlesung ``Objektorientierte Softwareentwicklung'' an der FH Aachen},
+ title={``Objektorientierte Softwareentwicklung'' an der FH Aachen},
year={2006},
howpublished={Vorlesung},
note={}
diff --git a/LaTeX/chapters/appendix-a.tex b/LaTeX/chapters/appendix-a.tex
index 341258b..d386b3d 100644
--- a/LaTeX/chapters/appendix-a.tex
+++ b/LaTeX/chapters/appendix-a.tex
@@ -1,4 +1,5 @@
-\chapter{Akronyms}
+\chapter{Akronyme}
+
\begin{acronym}
\acro{API}{Application Programming Interface}
\acro{BSD}{Berkeley Software Distribution}
diff --git a/LaTeX/chapters/conclusion.tex b/LaTeX/chapters/conclusion.tex
index 86656fd..6854d44 100644
--- a/LaTeX/chapters/conclusion.tex
+++ b/LaTeX/chapters/conclusion.tex
@@ -1,2 +1,20 @@
\chapter{Ausblick}
+Es wurde erfolgreich ein Simulator f\"{u}r die Simulation verteilter Systeme entwickelt. Der Simulatur hat bereits 10 implementierte Protokolle zur Auswahl eingebaut. Zudem steht dem Gebraucher ein sehr komfortables Protokoll-API zur Verf\"{u}gung, womit der Entwicklung neuer Protokolle quasi keine Grenzen gesetzt sind.
+
+Dar\"{u}ber hinaus verf\"{u}gt der Simulator \"{u}ber eine Vielzahl von sehr flexiblen Einstellungsm\"{o}glichkeiten. F\"{u}r jede Simulation lassen sich somit komplett andere Konfigurationen verwenden. Jeder beteiligte Prozess hat wiederum eingene lokale Einstellungen, wo sich auch jedes Protokoll f\"{u}r jeden Prozess separat einstellen l\"{a}t. Die Anzahl und Flexibilit\"{a}t der M\"{o}glichen Szenarien wird dadurch um einen sehr groen Faktor vergr\"{o}ert.
+
+Mit dem Ereigniseditor gibt es eine komfortable M\"{o}glichkeit eigene Szenarien zu programmieren und zu Simulieren. Hierbei kann entweder auf die bereits enthaltenen Protokolle- oder auf selbst implementierte Protokolle zugegriffen werden. Alle Dazugeh\"{o}rigen Einstellungen und programmierten Ereignisse lassen sich vom Gebraucher f\"{u}r eine sp\"{a}tere Wiederverwendung platformunabh\"{a}ngig abspeichern. Somit k\"{o}nnen auch abgespeicherte Szenarien beispielsweise an Komilitonen weitergegeben werden oder f\"{u}r eine sp\"{a}tere Pr\"{a}sentierung zwischengespeichert werden. Mit dem Loggfilter lassen sich mithilfe von regul\"{a}ren Ausdr\"{u}cken nur die relevanten Loggnachrichten anzeigen, was die Analyse einer Simulation erheblich vereinfacht. Weitere Funktionalit\"{a}ten wie Lamport- und Vektor-Zeitstempel sowie Anti-Aliasing ruden den Simulator ab.
+
+Durch den objektorientierten Aufbau ist der Simulator relativ einfach erweiterbar, was nicht nur f\"{u}r das Protokoll-API betrifft. H\"{a}tte f\"{u}r diese Diplomarbeit noch mehr Zeit zur Verf\"{u}gung gestanden, dann k\"{o}nnten einige der folgenden Funktionen (hier in alphanumerisch sortierten Reihenfolge aufgelistet) auch eingebaut worden sein:
+
+\begin{itemize}
+ \setlength{\itemsep}{-2mm}
+ \item Die Simulationsdauer beliebig lang machen k\"{o}nnen. Dazu m\"{u}sste \textit{VSSimulatorVisualisation} entlang der Zeitachse scrollbar gemacht werden, sodass der Benutzer f\"{u}r eine nachtr\"{a}gliche Betrachtung des Simulationsverlaufes zu jeder beliebigen Position zur\"{u}ckspringen kann.
+ \item Eine Zoomfunktion f\"{u}r die Simulationsvisualisierung.
+ \item Im Ereigniseditor selbst auch periodische Ereignisse programmierbar machen. Bisher kann nur jedes Ereignis separat programmiert werden oder auf Protokoll-Interne Wecker zur\"{u}ckgegriffen werden.
+ \item Lamport- und Vektor-Zeitstempel f\"{u}r Ereigniseintrittskriterien verwenden.
+ \item Weitere Funktionalit\"{a}ten wie zum Beispiel das Anklicken einer Nachrichtenlinie, was zu einer Nachicht alle verf\"{u}gbaren Informationen anzeigt und diese gegebenenfalls vom Benutzer editiert werden k\"{o}nnen.
+\end{itemize}
+
+Da der Simulator h\"{o}chstwahrscheinlich unter einer Open Source Lizenz freigegeben wird, und ich mich selbst sehr f\"{u}r die Entwicklung und Anwendung von Open Source Software interessiere, werden die einen oder anderen Funktionen nachtr\"{a}glich eingebaut werden. Komilitonen werden auch herzlich dazu eingeladen werden sich an diesem Software-Projekt zu beteiligen. Als Vorbild sei hier der CPU-Simulator M32, der von Prof. Ossmann an der Fachhochschule Aachen entwickelt wurde, genannt. Hier existieren bereits einige Erweiterungen Verbesserungen, die von den Studenten angefertigt wurden. F\"{u}r die Entwicklung/Erweiterung wurde keine properit\"{a}re Software verwendet, sodass jeder kostenlosen Zugriff auf die dazugeh\"{o}rigen Tools h\"{a}tte.
diff --git a/LaTeX/chapters/implementierung.tex b/LaTeX/chapters/implementierung.tex
index 1350f45..dafe28b 100644
--- a/LaTeX/chapters/implementierung.tex
+++ b/LaTeX/chapters/implementierung.tex
@@ -190,7 +190,7 @@ Jede Ereiginsklasse hat zudem Zugriff auf folgende Attribute, die von \textit{VS
\subsection{Beispielimplementierung eines Ereignisses}
-Im Folgenden wird als Beispiel die Implementierung des Prozessabsturzereignisses \textit{VSProcessCrashEvent} behandelt. Da die dazugeh\"{o}rige Klasse keine Attribute besitzt, verbleibt hier auch die \textit{initCopy}-Methode mit leerem Rumpf. Jede Ereignisklasse muss in \textit{onInit()} mit \textit{setClassname} den eigenen Klassennamen mitteilen TODO. In \textit{onStart()} wird das eigentliche Ereignis ausgef\"{u}hrt. Hier wird obligatorisch \"{u}berpr\"{u}ft, ob der Prozess bereits abgest\"{u}rzt (hier eigentlich nicht Notwendig, verbessert aber die Lesbarkeit der Logik) ist und gegebenenfalls wird der Prozess dann zum Absturz bewegt. Der Task-Manager \"{u}berpr\"{u}ft bereits, ob der Prozess abgest\"{u}rzt ist oder nicht, d.h. ein Ereignis wird bei einem abgest\"{u}rztem Prozess gar nicht erst ausgef\"{u}hrt. Die einzige Ausnahme bildet ein Wiederbelebungsereignis (\text{VSProcessRecover}), welches vom Task-Manager ausgef\"{u}hrt wird, auch wenn der Prozess abgest\"{u}rzt ist. Mit \textit{logg} wird eine Nachricht in das Loggfenster geschrieben, welche ueber das \textit{VSPrefs}-Objekt \textit{prefs} bezogen wird:
+Im Folgenden wird als Beispiel die Implementierung des Prozessabsturzereignisses \textit{VSProcessCrashEvent} behandelt. Da die dazugeh\"{o}rige Klasse keine Attribute besitzt, verbleibt hier auch die \textit{initCopy}-Methode mit leerem Rumpf. Jede Ereignisklasse muss in \textit{onInit()} mit \textit{setClassname} den eigenen Klassennamen mitteilen. In \textit{onStart()} wird das eigentliche Ereignis ausgef\"{u}hrt. Hier wird obligatorisch \"{u}berpr\"{u}ft, ob der Prozess bereits abgest\"{u}rzt (hier eigentlich nicht Notwendig, verbessert aber die Lesbarkeit der Logik) ist und gegebenenfalls wird der Prozess dann zum Absturz bewegt. Der Task-Manager \"{u}berpr\"{u}ft bereits, ob der Prozess abgest\"{u}rzt ist oder nicht, d.h. ein Ereignis wird bei einem abgest\"{u}rztem Prozess gar nicht erst ausgef\"{u}hrt. Die einzige Ausnahme bildet ein Wiederbelebungsereignis (\text{VSProcessRecover}), welches vom Task-Manager ausgef\"{u}hrt wird, auch wenn der Prozess abgest\"{u}rzt ist. Mit \textit{logg} wird eine Nachricht in das Loggfenster geschrieben, welche ueber das \textit{VSPrefs}-Objekt \textit{prefs} bezogen wird:
\begin{code}
package events.implementations;
@@ -281,7 +281,9 @@ In diesem Beispiel wurden zwei Ereignisse (Absturz- und Wiederbelebung eines geg
\label{fig:PackageProtocols}
\end{figure}
-In diesem Abschnitt wird auf die Implementierung der Protokolle eingegangen. Auf Abbildung \ref{fig:PackageProtocols} sind die Pakete \textit{protocols} und \textit{protocols.implementations} dargestellt, welche f\"{u}r die Protokollimplementierungen zust\"{a}ndig sind. \textit{VSAbstractProtocol} stellt lediglich gemeinsame Methoden und Attribute zur Verf\"{u}gung, die von allen Protokollen verwendet werden k\"{o}nnen. Jedes Protokoll hat im Paket \textit{protocols.implementations} seine eigene Klasse, die von \textit{VSAbstractProtocol} erbt. Im Prinzip besitzt jedes Prozessobjekt von jedem Protokoll seine eigene Instanz. Bei \textit{10} Protokollen und \textit{3} beteiligten Prozessen werden also \textit{30} Protokollobjekte verwendet. Jedes Protokollobjekt verwaltet sowohl die Server- als auch die Clientseite eines Protokolls auf einmal. Dabei merkt sich \textit{VSAbstractProtocol} anhand eines Flags ob der aktuelle Kontext server- oder clientbezogen ist und f\"{u}hrt dementsprechen beim Eintreffen von Ereignissen die Server- beziehungsweise Clientmethoden des Protokolls auf. \textit{VSAbstractProtocol} \"{u}berpr\"{u}ft auch, ob Client oder Server \"{u}berhaupt aktiviert ist. Nur wenn der Server oder Client aktiviert ist, reagiert der Server beziehungsweise der Cleint wenn f\"{u}r sie ein Ereignis eintritt.
+In diesem Abschnitt wird auf die Implementierung der Protokolle und das Protokoll-API eingegangen. Im Protokoll-API wird in der Regel nicht direkt auf den Task-Manager und auf die explizite instanzierung von Ereignisobjekten zur\"{u}ckgegriffen. Das wird alles vom API automatisch gemacht.
+
+Auf Abbildung \ref{fig:PackageProtocols} sind die Pakete \textit{protocols} und \textit{protocols.implementations} dargestellt, welche f\"{u}r die Protokollimplementierungen zust\"{a}ndig sind. \textit{VSAbstractProtocol} stellt lediglich gemeinsame Methoden und Attribute zur Verf\"{u}gung, die von allen Protokollen verwendet werden k\"{o}nnen. Jedes Protokoll hat im Paket \textit{protocols.implementations} seine eigene Klasse, die von \textit{VSAbstractProtocol} erbt. Im Prinzip besitzt jedes Prozessobjekt von jedem Protokoll seine eigene Instanz. Bei \textit{10} Protokollen und \textit{3} beteiligten Prozessen werden also \textit{30} Protokollobjekte verwendet. Jedes Protokollobjekt verwaltet sowohl die Server- als auch die Clientseite eines Protokolls auf einmal. Dabei merkt sich \textit{VSAbstractProtocol} anhand eines Flags ob der aktuelle Kontext server- oder clientbezogen ist und f\"{u}hrt dementsprechen beim Eintreffen von Ereignissen die Server- beziehungsweise Clientmethoden des Protokolls auf. \textit{VSAbstractProtocol} \"{u}berpr\"{u}ft auch, ob Client oder Server \"{u}berhaupt aktiviert ist. Nur wenn der Server oder Client aktiviert ist, reagiert der Server beziehungsweise der Cleint wenn f\"{u}r sie ein Ereignis eintritt.
\begin{figure}[h]
\centering
diff --git a/LaTeX/diplomarbeit.pdf b/LaTeX/diplomarbeit.pdf
index e8c2ee2..79d68c2 100644
--- a/LaTeX/diplomarbeit.pdf
+++ b/LaTeX/diplomarbeit.pdf
@@ -279,7 +279,7 @@ endobj
<< /S /GoTo /D (appendix.A) >>
endobj
192 0 obj
-(\376\377\000A\000\040\000A\000k\000r\000o\000n\000y\000m\000s)
+(\376\377\000A\000\040\000A\000k\000r\000o\000n\000y\000m\000e)
endobj
193 0 obj
<< /S /GoTo /D (appendix.B) >>
@@ -748,15 +748,14 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
255 0 obj <<
-/Length 1958
+/Length 1955
/Filter /FlateDecode
>>
stream
xYoF)(v1A64KflUH~Β\r%g(@&0`_;~YQ
#N `>-'봫 ^'WZ,^\s¬âW7-wzբd𣺾=(N՚?))b {$NQ?O1ar٧.|,WZWU\qc϶mmYroceF%(b[AqI1ȜSfV 1)!c+A&b dp1h#;M'iS|_<n.z`7U]u?g `3^Рq*}gsiS?C /4+M9 /zf gЧU}8 ~oڋ7qO\ '3"cc?Rgrщ6]!Y3%U`?Q(SDZ=Pvy%^8mj1?c ٚ
-}8NJƕu~W)"ZrYNN+n^"#OP+͉2Fͺԩ͞~ ]u٤EQZ:(UƓ~y~y}N"$]SY~J?RAH~}fϟ%#7EN:uw^85vcE~D,Shr$bV/$k_ϑdwGDN fcݩ2 YDYIWY1b=9zЃ+(MdDxcl.uwts_m֧WKp?A̱)A DFzȇ,sX"5̙y0H-XN^7<<yQm}=mMC~]NMuyUX+Tݠx͵ F89՜M܀%tzT# 'N2cD-EYu]:4IxFH"'22nsajhV,h6X緌ՋjR2qXv~[nͺ9}hPn]t%Ac֦]hߝ*Q2>?A#C#OW+P1' 3mӴĹpwE}|S]m}sgi{[Ne
-VDDSvƎ96rS;o'd1NwC7W dŮڽ-{!ZrI
-UƝ!?Ve2f~?>ZS* 9WCJf IMHƄם*JΑ/VΥSXS<PayT4ˤ3|OtPx͜.^جkmhϞkCzc߬M/ȸzN-Ҹ}F(LN&/wv4Ekgendstream
+}8NJƕu~W)"ZrYNN+n^"#OP+͉2Fͺԩ͞~ ]u٤EQZ:(UƓ~y~y}N"$]SY~J?RAH~}fϟ%#7EN:uw^85vcE~D,Shr$bV/$k_ϑdwGDN fcݩ2 YDYIWY1b=9zЃ+(MdDxcl.uwts_m֧WKp?A̱)A DFzȇ,sX"5̙y0H-XN^7<<yQm}=mMC~]NMuyUX+Tݠx͵ F89՜M܀%tzT# 'N2cD-EYu]:4IxFH"'22nsajhV,h6|6;ݨՋjR2qXv~[nͺ9}hPn]t%Ac֦]hߝ*Q2>?A#C#OW1Y9a`/i۝%΅+o;Nu/S԰"2 3v̱[,H~#8&k5hο_ȄuB%ɜ !,voٛВKV<2 9rf~/7ѲRa<ʇR(]<7aMπaRR"1uʸҧs䋝l0'x:
+>ө4\iIgPt:9]Y5'מ٩0#Srӟ=iE׆ƾY3^q7}Z¥q<P꙾ɝ"L*^Usli:7/=endstream
endobj
254 0 obj <<
/Type /Page
@@ -1152,15 +1151,14 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
343 0 obj <<
-/Length 1202
+/Length 1201
/Filter /FlateDecode
>>
stream
xKoF<㘢z)re%!EO!Kܡ8<pH~Xa$ԩ8-_O.2auϚ8eXp%B_\/]ۇEudQoק׻V}8)ZrBJ /pp~*E8-:br#nr:ި)C\tQ}:B-ӹ=Ua9Xb*`Ih"%9)jIABZ~{&"9ep{ SoJŢ^e8nCV28&{ky>ׇ}kp}Ӵ*DKK2I 1N8u2+9a^BD@'0a{d2 '059
q_>yޗ.֟J
 k!rX}<Sg-Fjg573Pa+&6*ꭅƢi
-zkwyⱨ N|0ě k-]r uq<ا My 8`5=ܨcong)(EK5:gPJFR;o8]e2 lVq^#7Ⱦ_[ǰF` zk?D7o{#ަ5-Fvj"1UoFFO5F[q1tppTOǔr'Q^)><ߎ{} 3r2r%IFBJ w]
-vԒ( Q`S3ͤEj$"_h#Hendstream
+zkwyⱨ N|0ě k-]r uq<ا My 8`5=ܨcong)(EK5:gPJFR;o8]e2 lVq^#7Ⱦ_[ǰF` zk_4 |#9f7XyX?m[C"Nhd&s_eMOOmToT[#Om4,'M wMԼ}L)whiLB80#*G,c*'ZYd$pץ`7YJ-
endobj
342 0 obj <<
/Type /Page
@@ -1521,8 +1519,8 @@ endobj
429 0 obj
<<
/Producer (GPL Ghostscript 8.61)
-/CreationDate (D:20080809025807Z00'00')
-/ModDate (D:20080809025807Z00'00')
+/CreationDate (D:20080809115815Z00'00')
+/ModDate (D:20080809115815Z00'00')
>>
endobj
430 0 obj
@@ -1620,8 +1618,8 @@ endobj
438 0 obj
<<
/Producer (GPL Ghostscript 8.61)
-/CreationDate (D:20080809025807Z00'00')
-/ModDate (D:20080809025807Z00'00')
+/CreationDate (D:20080809115815Z00'00')
+/ModDate (D:20080809115815Z00'00')
>>
endobj
439 0 obj
@@ -6312,8 +6310,8 @@ endobj
774 0 obj
<<
/Producer (GPL Ghostscript 8.61)
-/CreationDate (D:20080809025806Z00'00')
-/ModDate (D:20080809025806Z00'00')
+/CreationDate (D:20080809115814Z00'00')
+/ModDate (D:20080809115814Z00'00')
>>
endobj
775 0 obj
@@ -6459,8 +6457,8 @@ endobj
787 0 obj
<<
/Producer (GPL Ghostscript 8.61)
-/CreationDate (D:20080809025806Z00'00')
-/ModDate (D:20080809025806Z00'00')
+/CreationDate (D:20080809115814Z00'00')
+/ModDate (D:20080809115814Z00'00')
>>
endobj
788 0 obj
@@ -6598,8 +6596,8 @@ endobj
807 0 obj
<<
/Producer (GPL Ghostscript 8.61)
-/CreationDate (D:20080809025807Z00'00')
-/ModDate (D:20080809025807Z00'00')
+/CreationDate (D:20080809115815Z00'00')
+/ModDate (D:20080809115815Z00'00')
>>
endobj
808 0 obj
@@ -6773,8 +6771,8 @@ endobj
831 0 obj
<<
/Producer (GPL Ghostscript 8.61)
-/CreationDate (D:20080809025807Z00'00')
-/ModDate (D:20080809025807Z00'00')
+/CreationDate (D:20080809115815Z00'00')
+/ModDate (D:20080809115815Z00'00')
>>
endobj
832 0 obj
@@ -6908,8 +6906,8 @@ endobj
847 0 obj
<<
/Producer (GPL Ghostscript 8.61)
-/CreationDate (D:20080809025807Z00'00')
-/ModDate (D:20080809025807Z00'00')
+/CreationDate (D:20080809115815Z00'00')
+/ModDate (D:20080809115815Z00'00')
>>
endobj
848 0 obj
@@ -6974,20 +6972,24 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
859 0 obj <<
-/Length 2023
+/Length 1968
/Filter /FlateDecode
>>
stream
-xڝX_sOGc!@d:M:N㹇},XbL
- :4)Q X,緋yI0<z<|H}wS~yB4TL䂿
-;R+kZdy,j$T"9V[fOnHX>eTT,Z δγ)Igh\MT,$ɔ[$nmۺ6Oh%mhD>lA4gy3]򂉂磮kyhm6=*T483g}}w_4 *K/ V^ \l.t OD;O_>DZɨd.Ap
-@ݛɟ[SVȔAe29z?Z~- XH pp׹hjvfW¿3W2I|vSA8ԂW;O0eT0*=s˦")2evi1\
-N3hzpMuǐ2_겇F
-(\̽g@T{L@%PMW# Ku$}4L *of=+
-@*gaA _p|l^bM`,wx uMXjɅ rɛ0Jg@Yjgԉ)/f0Fۥ
-On~'͢p:,}xEO7S&R*0bJ eu-1²5kZi\ڏu)^£P֌8?|~b<,rŒZ_F_H;!X(e/]j4Js]zu v0A^m?0ll?:nds{Xbںr;ޤY*Tjj6 o:HU*~08
-RAQ$Q r5'08 , fVyb1 +@ p)B@)ɽHyp~k1 h iFщצX !toۇ0AW3OuM6cH k(/,}x3 Gr% 'e`f'PNc0.F-J Lƻ0 &X;Lme[cp켸+QKoZ<3li6tW[.*Lr_J7ڒޤ~[Cpi|T"#2γ<P.wPگ\/=ik}qr uR$9qtr-
-kuH]KH*Vmv6;Wd9O
+xڝX[s۶~#ձPJuq3'/'灒`E$t.EvNf%ˇA<OrTV$/$'Ula/˞yy O,+Qc"f
+"aCTyW/"dβrpwx5rbuzj=|aЯEƬ1U0M,g{ƥ\
+5$L+87Ӏ.X"$~ܷ G/c] Ŝ5Y˭6_UYfe&GA]m\ʣOWǦCc?q,oW]=2/k.,ϸՒqF/Pjn4+_DfuN_gwioWoæ1Rd4P
+Іeɹ [/r) m~u:rJ3ArdS >q4ɂq1p͌4kQľ)̔K)r iXQ3D)YϦ2&#@LtSYu]SyOvCTyzP/l67mH*L.a $Ye7ÅGˮjn[ 9&^!b"!}
+dV-cx
+IFPo'fFOZYƭ7euL4&g>%zs#b;R.% b}W3#Jy>uTT[R9e9VP|kq
+&x$ݵuIPqz+c&пS@(2qca6LDžhۀpeBR&r$9cv-]WqlOҘ %CY|t!ve#yC{
+2i` [H0rɢoO.;@(FL4eRDK\tbÿ18 <+U{X-hiLZh>XJ^?Pց=R ,E1Gla\ 8rjt͊\"0fFoմKeg/%=h!jxngmTe2),3g5]\1ą?B?g
+_ybKÉ
+ L68|ro#{Q.h
+pP֌>nO Vչ^BC4^6q4E#6
+:h -Uo]?K
+AP$->gfP'qQBg7vB}ԕ \E€v&"kFO&+Jˆq<=W%,ԤBU0nWll2isa8l& a]nds˛Qb_}?֐Oрs0N^@sO>& q{0"?fmc
+Mc}[5I NJޘ~rm^;ǟi59AM r(~ZzÔ +-Pf1bfVK/hj~> 2~>chah)^ endstream
endobj
858 0 obj <<
/Type /Page
@@ -7021,8 +7023,8 @@ endobj
862 0 obj
<<
/Producer (GPL Ghostscript 8.61)
-/CreationDate (D:20080809025806Z00'00')
-/ModDate (D:20080809025806Z00'00')
+/CreationDate (D:20080809115814Z00'00')
+/ModDate (D:20080809115814Z00'00')
>>
endobj
863 0 obj
@@ -7051,7 +7053,7 @@ endobj
861 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [444.1785 411.9436 458.6341 422.5258]
+/Rect [134.2125 357.965 148.6681 368.5473]
/Subtype /Link
/A << /S /GoTo /D (figure.3.8) >>
>> endobj
@@ -7062,10 +7064,10 @@ endobj
/D [858 0 R /XYZ 74.4095 771.7323 null]
>> endobj
158 0 obj <<
-/D [858 0 R /XYZ 74.4095 748.8047 null]
+/D [858 0 R /XYZ 74.4095 748.8303 null]
>> endobj
365 0 obj <<
-/D [858 0 R /XYZ 256.0589 463.2247 null]
+/D [858 0 R /XYZ 256.0589 466.8618 null]
>> endobj
857 0 obj <<
/Font << /F61 259 0 R /F26 206 0 R /F28 209 0 R >>
@@ -7073,15 +7075,19 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
869 0 obj <<
-/Length 1565
+/Length 1570
/Filter /FlateDecode
>>
stream
-xڍXMs8 WhD,%nڝٶك3Yneɯ_dv
-t g
-R%  V/r sҮc*l]׿SifZ2+Rл-|nV%Gs>]AV
-@7$ <~4a&azqd/^Cfhk1g P4FF'[S!<qȽvi]1 fSH
-0ediH =fO?8q57^m 4QZ)t^sqm%ˠivΟDfnendstream
+xڍXKo8W(1˧SiiQA,wCɒ8A8fo>R?i( 6g<ZW˛we,OGR&3)vNoğGr6i+6+gizXڍZg0qWf|:p37,Iے:a$i4%I=*L\f2SAg)c>OG/Lި4ϾEC`ޱp9A"OI 2ӡ2Uy 0b&xp j&ci&U4rˀz%Com3,IXli+m^x6]gr#|+΁9:Ѽ%OxHbqq
+׃h#.`*a~ecfWWXfm h]i˱X#o*feѝO^W-M.ls^rvቀӟ, Х@U*ghc%AۭDp\5H}Q^ϔ1+GSfxE5Ottuz`qŒTi^X[$NPu*tit5;.(x3 R5D<`
+"|DeYzA hYz/{sdY:E^p4 ~xׂl]T[LXk+EZ3 64FSaRTNϯzp+)gIݒ
+>q^WG2nZKmvog\pmBz>#asKȱ"
+:kPz&2!_%L;:`ċ6ȔIuU3fLtGX@q0Bǒo(
+f
+TRQ'r'JyRNNRi3QJRjbI-H7$:~^0<(i0{d9CUo.kB^
+&٢;\
+_LE*d:o|#;,12\bN)$'"|xendstream
endobj
868 0 obj <<
/Type /Page
@@ -7187,18 +7193,15 @@ endobj
/ProcSet [ /PDF /Text /ImageC ]
>> endobj
873 0 obj <<
-/Length 2749
+/Length 2829
/Filter /FlateDecode
>>
stream
-xڥZY۸~_Gʃk0Yoƕq8SHSӍH(Rp4h#VUE
- !V7|u_h<CHo}UΊ4ի+&s)M?|zSod<$\Riʜ7"Y__~Drj2A)JU3"%˲L"d%+DL`Vj C>qMYd D׫p+kt3c宇˓jrn$_Վldn=懺';u:0#Po<ԥTLyFP[疿3ݻΗM(ʚח`?LAϚ7n)Jdϰz>In QYI ?M;vݱ'Y&D:Q32TxޜAIm8R>?ldB' TKdw1u \c jZqciw4Kh7'hZpq8Na8ñrm81҃iPCA>@xdzM]A4,Z.#!Z@@v \$\qGB5;'a@6Z;^Gf^{V]O rڦv_*NUOuu8 Wo;"VtwmZu hP׼Xn ! { \HUywhj.J;Dסa_w.'<>D
-sБz}gj= [ &S>>=^ˮgsVpEg{C &OYT-1=@+ `RרXu۱3\s7f/ȱy1ZUޯ@a ͳ^Ϧ&a-j^/%L<E$4D Nʺ=~
-gbp1f_j)͔
-
-7 ]HwR-(l E®+,p` ܶmmʆfef⮞ҥ9q pXs8R8't}u -)WQÑP +~F?Š /<6n,),G~H'OvOK\G<MSup
-]B:Mrx@h͞ژ34Ds]w$|(@r&9h?]D7Ŵlc0#U7C}jB mDNHvr{D[iswE 6Aqt1cԞ{f
-3r13w
+xڥZ[۶~У4c!
+KS<35/6OO,4c\l>= .ru:kn`gcߟZ%@;ŀ8 rqBFShÉ#'"Tk8s+T]Tul
+B|AGKv K\$ O )[ohAp&:h6ZuسzuGjfMc8W=%DVv$hT@G{<Nv<!
+AF`ҳv9 ڟ6fu`zbh|i C[4)zK@GfZPȏ\C>ZBWZiIwHsG,M"L{o&k1+o\TS$T QՑ݋\]T:UUu2oy?|p{#6syLS)\քau(;.r#¯A
+-cHE.~Cp#h>Nqh DžA*8FP H7 #n
endobj
872 0 obj <<
/Type /Page
@@ -7215,16 +7218,17 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
877 0 obj <<
-/Length 2469
+/Length 2394
/Filter /FlateDecode
>>
stream
-xڭZ[~_GDQf/n,2-L46cc[ζ{(u#4X,Fx.?H98KiŦ|;K}= 2!e n҇ˏKQjMSdhN0^-+_TU]jMڭ~{Ǜw-~B1B\ tf 2z⑒ iJGbɂ% ϔ$9L?#&,E|7BuFcB Q_.O+bcpjvp8>凇T8h~Oeo T/zo̗?O:RiLm?ű:2U ^/Gv W餈YxqfQ^B/C^| /F$CH9[B>#d(*Z(J<^GBooH+,|:w$tfdrRX{U_2 2ؔ$a|
-3r[!*ӐRxӅ@Xr9>XTRF0|z;zPά[oYUE.euF[Y6\ Pe٤5z3Pgw_:x .UN^[eESMepBFs~r[Jl[MW_%;?
-uh7cvEUj>ӳOW"a, [$ښ$Dm%:Bh5x8VR^ %/[\~ ({KX0~'\q .@,)\w!8u"Nַ
- ęEB2D˧Z2-MvޫmUCLrambF[w&("+aUYMa?\GdBoΐ*v،PU{NG en?ACZk'O
-BNA@w{aR7_z,F+M9Gz;cfڿ<!zN5"ᩓ{V(: G~4r P:'XgQٴ{ߚ?6+'}}Hg{@{hJwwY賂wBanXZ<G}a0:.7{{h|A?TC-3:1LI I{bNF1Qc8FHͺ:',H@I]mbݧ;{S'o ɠ)d8RV(ӚŢL2#(Cb ~!O)j5^}n;hpߝ5.y>\@Rh%YB,9(K!Ԏ! K>j/$]ZL`*Uy A aoM&D*wl. >'* aoܔs~]_%.\ڠauuu98a4iʪD
-VX0pBsfQP; Qg4棆Ą9"%8~8\mR"'ɞq E"Rendstream
+xڭZ[o~_GY&Q6EAX,{N~Dȸ(Ԉ %^% ($pjz/6[kuJ㘭ZX=,6[5E-M.u鹐'Y6<o/޼9c2#dń̔x$!ݔ(_aRΉS`T:35'A MQ #yېh]{tQD?e]QM3yVC#՘|G kq S_;#Q1zh48/L4*4 XfA:|=c:\16a>>YR0!mwyŇsDY$iD$:V>YDjOuDuLbQz_TO^R쩹Ȣ0ۮ͏YWețk+U8\,ċe:
+9Niۛk<@qZVٚWهگua]`;.F!'GP=$ ڱ5 _1zSjU} !W6†+p+e>tj75zv?N,Ks? MS9 \iєf
+2麭>ʃET0lZmL!bFw59OPl/4Viƫ4B=PƎg*\K{Tź Z ])3d;(K5ȳ}A
+fD@*Bƺ0H zka,17um8SО:`9e&ɸmGϐQs
+}+7JS=)T&BcvyYnl|Av~!$S'3MS$:&o`ԊUţT|klU7C+v] D(<$:?u_7nMMX:L Z2
+Gq ʸV(ә2(3@h2 T`;vc]ov>U/kOq*-n w_ب:C.Bu_; 6+\uJfԔ
+Pendstream
endobj
876 0 obj <<
/Type /Page
@@ -7241,17 +7245,20 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
881 0 obj <<
-/Length 2198
+/Length 2083
/Filter /FlateDecode
>>
stream
-xYs6_Gi&B MMٞCP,(IIg殣c]` $)n$1BL3>Y܏@<Rp{݇XLRfXMn',J#vc7ͣ$J6kΧsKnl䶚۟ͅ.n[:,u*3d2ő4]#G҆%IGz"3ZGx&#Xd:iHw\$C!Mjk :ڻHAD>קbi/gs%v[جc+[Ć:0#P>DiS*OCoiONnF;ԝ:_>̝L%>UػAӖoh~楗hmvaCs| Ö 8RELϿ
-mj[/yP~[ /=d $#9#âXh,5&[-Po3FP+<lWޟ3mI
-NIe+tRoL*N;7шneksCM˲kqI7%Qn`m00ҲEC-A3؄A]&Ayh?|%EMcG-5 YC+~W>6tBEU͓sY 0MF#Dvhuư^=\O˵ѵK唹q eR\u9lBhp#nf˒@GS55f:GutH j表H"a, r#) |8:Tc d/nuC'Pj rY6>Y\B9
-h P$]
-|bHkQ)jT)Ayẖ¦=CNHT!R _ubD΅-PL&BEחG%1Ӂ΋iE൯:nDjΔ4}uzZdT (yYddEyO-̎:>R PN- ~!uH2,e3X+]j^h"9D$Tua^UoP\ծheV7Au I)ekь|m >=<;y]32[QG{p"7C(j?G@rXJ]t`zx^P%8mukĈ#LmJk|M>HP?^u =!/BY@`q$p[D=6SXw%0=vQw/pl_ѻF~V+N\8B3$\^˱@0t7G)I=:_}|v&׈ۣ@W y_.`ІEƓdXqEb;84D73 kۦguF E D_XS£YVl׌g4hsj"v.m1.9o,>/(̲AD,!D(#g8-y:[ˆA [!,k۴(Q dw^K
-ŴoHҺ
-3endstream
+xYKs8WHUE<>oٔ=RK\SWf뷛 P EQ<TJx4э_p+&qBI*1Yn?~l9Ow$,p2HL8:_+)3'bә< -m_ 5et&tp(_p3okYE}†aBœR,*SDZlDj-N`IIKWz" NN:SE
+azXL%|9)5i,Tăwn+>YU<q@q%LYD㿧C~52%-}LǕnaO4_ƊܸlT٭;sBMf3T۾]wEQNѓ%0ZUFVv|(_|W6
+yPr9<@yq09 yx ۘݺHR:1j c"Ƹ1zc>WclmMUeksw=).R-A
+G+}|FQ%y2vjD-%rm~uXזq
+419dEJ=ـ6AΙ"I7|SRۼIRq3O
+,B;h{6fi<Ŕi楕hmfaܬٝTgoqQbq " SEA카ʕ)j$#9edM[@BoS }784+:]
+ =VF
+TIҾ'm.Rc ;P Y D%-
+qE=o5Nm \\(jWd ZG^=Eenh:Eۯ Д-i+<&"Y7.Ŋ]zC,WhCփ.IlR F;vBK&CXVnQRSd{%ċrd/`Aӓ7$iC
+Jo۽m5IE"OӨmH Vg[u;>endstream
endobj
880 0 obj <<
/Type /Page
@@ -7264,22 +7271,26 @@ endobj
/D [880 0 R /XYZ 74.4095 793.4011 null]
>> endobj
162 0 obj <<
-/D [880 0 R /XYZ 74.4095 451.5497 null]
+/D [880 0 R /XYZ 74.4095 357.4533 null]
>> endobj
879 0 obj <<
-/Font << /F61 259 0 R /F35 221 0 R /F28 209 0 R /F26 206 0 R /F83 824 0 R >>
+/Font << /F61 259 0 R /F35 221 0 R /F28 209 0 R /F26 206 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
886 0 obj <<
-/Length 1636
+/Length 1599
/Filter /FlateDecode
>>
stream
-xڵXmo6_! IM6 m5}[Ц(dqr&ɖa}w"(xEX4Nb0Mf4»_Od`]_ I2$pR:>ޤ׮yŤ?^:Nf׹٢v-iϣSb+"B* !T|D _P'FF0% fMa%?I$ae~#eaܲlM R%Ko8b$4aNE J`jf8q2/-9UN3tD񤑾^s7 yZU~x><Kǹ}k7I<o0E bm-L'-?N3l_④/v׶DWϿG|]RHgiXm"|X +N#bT´h6TPZYGR*wZCVLjye |gӲi"0jy
- ǣƭKyLq!nhlEܻ0n\R4W`."z/js c&~MRFhZ[WfˋXҏ3Npɕ-kJx+zc[[imþӓcƶ%+Y$sIk3Bc*`!7>UMO2[0,+s[p&CM'Wu+n[ }ZW/"wo+?O!iN,-A%[L.!]YGp
-W Ä8!L*} V&
-&
-osWczf(Ż'NR--lM`lendstream
+xڵXYo6~ϯd1K tmn b6JtҦH*Es|6((D,Lhڣ2/; “Mg~T,JIfg1)gFgX]'<IG'1FeWF7 Gj94{ìsJRJUMxJ)J
+~G8 %,xI7I
+Ȯ1G9Bט ʭxm0`.ANRMS8Gg"[{pmŹKmv^S9kMiV{e:JYxHK5c6
+Ro(wi#TPh qϗK{0HF]m
+]i93S
+.q#!iU7$H\CгIp7k-$ s2b'#2aqDu BXyb
+n2 Q|nb4&"Utb׭qQ&y :MHrD@wvAr [D
+ηݮ+]jI Cm)d;.ܸ뙏ۺyuVhB}P(J}1_31U>StiT_@QB%P}FAUr]M6檛{Dn=ˆ}_զpr7rɜW}TڳmexlcD1Nc- L-}G%Pҳ ĶZo0a+(pt| 08ԗÑd xtSuY_UK"JY2-e
+(dI.@fauX <?ELaZ)/f ]`ߺXjtro!Uww
endobj
885 0 obj <<
/Type /Page
@@ -7292,7 +7303,7 @@ endobj
889 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[1 0 0]
-/Rect [484.3906 485.6988 498.8462 496.2811]
+/Rect [484.3906 388.0752 498.8462 398.6575]
/Subtype /Link
/A << /S /GoTo /D (figure.3.7) >>
>> endobj
@@ -7300,31 +7311,25 @@ endobj
/D [885 0 R /XYZ 74.4095 793.4011 null]
>> endobj
888 0 obj <<
-/D [885 0 R /XYZ 74.4095 568.6296 null]
+/D [885 0 R /XYZ 74.4095 475.8821 null]
>> endobj
884 0 obj <<
/Font << /F61 259 0 R /F83 824 0 R /F26 206 0 R /F28 209 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
892 0 obj <<
-/Length 1801
+/Length 1829
/Filter /FlateDecode
>>
stream
-xڵXIs6W>dI @䐭MkOzHz%HbL*x&Pt|o`1'Fb=JL !F-E+<4Ow\}c,F)3qFW4[WwW&om1$Gl2՜6.֛®m涞Lwr˳W~-9KX؞ZXG@$t^/TRx$ʧE_X%=ZDkq4xi7(QnquM6/-HxV.lipiv"Amil=%q7UQ0:cQm
-?N4((
-Λ$6~H n:/hkfLFS0#}
-|>#|{
-^eEdv0]<s2KVnl2#\'r)
-/i"9.9zLE>TUa!qhYִZ_v &BܕmU>Pxk+lXU5.pz@KʒfyT
-(550Bng6'Oz]OeW (kҾ .v"b_9W5,~.maaSWLK:);N',N>(#e4~mU5CCSv%߉d*$a-[%m( Vǩ%eH-٧<!"NA=Oo/!"m5`"aI$yp`'І%w௳w3"-|p&R1S:NNqvy[/E) <)9˞e_Tf$R"G/&&+t~&Íf4D@m4ڝ`@A]Rʘq)$PD |ް&d{DwXTʑ׶Z2nck@j=չRS͸R;
-`Ttq:ܲB"Dot(--z}[^kl}gL?A;{RŖ~0x/|*SA}:WKg"XayHd 4,JT$_ GCkega`=_y$:/S !0mTr3kҽV@ຟ[t
-DnIVY>9Fi!|6ug( "&t{hcy"+GE;Sg/DPYz&GI^
-iJǏov*B]C8Y+g&CSKGHWY9Eˈ]Z-#Jp>X-PD^ǛgȺf "x/\M~h (.[0֥%hc_LIEݑ(
-K#ݥh?`g=I( ;(zrM<<!w?B¿D_sy*)Eqz
-Op]Wh,5
-E:e6bV6e͔ݰXS&1_b=ݗ6v ~;҄i|<8u'.aGj<&>?\Uee7zN渰j>A![4ڶ]]L(`?}Əs{|w88} 达`;Xä?0Ӕqa'e<
-TDw䎰Ctf5endstream
+xڵXKs6W9diI䐴iiؓh SKRL:tLx.}`EO$f[dVBd9
+8;̳}g'$g6MurL2LR씞/L~)Uәbә|}p}Lɶ^M:`H4۬)&͒:GOœp|™I3aL6'PT'g' :y2-ˌ"92JRa~m}<RhX($\%3˭ n5~tB7VM]UB_o/?DL"Of"eІt+WQ[G؊iU!_r-[},PNlcE,K̰+٩M.YBٝܥ:r&R1!2i>)ȳRvd; 8-Oz9Pn xkuB'+wվU^`'pehEʋzN+G+S1&]Okdr$5U՟SbQ.#SekFSimڔj&5 ΆCIj4ejC ׻*W,^͇)iu9<ַJ\aoEG][L1Mnc
+%θ0DY8q?3%mY)TٽV}9/I)([q| Buv+S 5b׾jewozEU2r`8o8B\^
+xѕܡWO~
+[925۞
+l.]0n֯I*8C4$ց2R72~G[P
+9qFc0
+XN,6c=#Dy7,HoXBt>//Fw. ~x}2j&~.~zpֺڼ@wB080|~| y9~W%uH+YjdD._fnОendstream
endobj
891 0 obj <<
/Type /Page
@@ -7337,23 +7342,19 @@ endobj
/D [891 0 R /XYZ 74.4095 793.4011 null]
>> endobj
890 0 obj <<
-/Font << /F61 259 0 R /F28 209 0 R /F83 824 0 R >>
+/Font << /F61 259 0 R /F83 824 0 R /F28 209 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
896 0 obj <<
-/Length 1602
+/Length 1369
/Filter /FlateDecode
>>
stream
-xڵXo6_Ij[!m!-:tKk nj#T<}$@#)Ev&](Oy"
-,J$Ԩ(1Ƣ͌FkXeY]̋1O4RbEą"<fM[[<IcA Ei2~x-Ɩmn+g?+NI5Rj"NO 2Ef?hܯg>(ah3L1;6I㆘TÛyA
-rƚ%&k"bj)Q! t[[ZϨ^i &JOdEa͋|#8J1.Iʤrwu6M/gˬ]~xN|1 A47#j]umPӑׄ,=CE$}0<JyqHbn((z6M;:tƫ /1K۵/9Ose~>4G{^ڰŋ"ʋz |AQEOu&H)T~^b"Y PU.p m/8A$Tf&NiBGf\%)I
-` 1<gunW= m$ظ'=ȼ1+'a;HT7A#"
-|Ř$w4$B)FQH-.n QX~8WuqXFIPT-x-xPw D2vmhiB̀ZHMp9qQ΀yRbeO1ЫUQ4bwV;q@ \JkNWs>:.8uJʨk7oxԶ>%
-uG: D M\"
-{]O=M{&l5G0o+<k&9F"[o/@T*4-Aǥ`l;SX8l=/4)OsqO8'.<zA(gEތ^ mUwٗvˍ|o2W:|a{f. *,>a|la9m
-gs;`u׎eGB1sXxFUg9bXQ[^ـ Uͫ/S7%k tZlWbTkPڃUU
-
+xڵXYo6~_IfY^yH
+q„ ,[u}/pX)D&3"$<sl;=mt7ա<cHP~T֫wәԕ'>4n[p=S\eNKͥ .5_+?֗17/7ԁNҬ1xe)^,ܘAN}ZWzٗ_r>ɸd*X鶫p&i2 O9aCPE+^_0egLvhV?k*mŕYL)NQn*T, VQ]6S
+x_v6‡I;0
+#~lx1䟾\:XWE}֕L]),=wSD0v`dlg$p 7ٴ!wL+m}ꎎT
+}%ÉAdtځ9{P0A}CusC17B Pץ.%fC$>y8ѪS00==g geAxAGUe#BQvxXendstream
endobj
895 0 obj <<
/Type /Page
@@ -7366,24 +7367,20 @@ endobj
/D [895 0 R /XYZ 74.4095 793.4011 null]
>> endobj
898 0 obj <<
-/D [895 0 R /XYZ 74.4095 453.2236 null]
+/D [895 0 R /XYZ 74.4095 336.0153 null]
>> endobj
894 0 obj <<
/Font << /F61 259 0 R /F83 824 0 R /F28 209 0 R /F26 206 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
901 0 obj <<
-/Length 1500
+/Length 1431
/Filter /FlateDecode
>>
stream
-xڵXKoFW9I@7=$u:A$2C-%||حpI)ʉ[r|3s(|I"i/`Y3/7keNJ@k\^;\(}vF/O76LpYylEMLj*6ej^gŗ׳W);H=>R(D zF|%,zv'-g{lA <ƽƬ"cW7&b,pRG$,D@8.( h0$P
-0
-fh>
-˯HVa@Ё~\ߑTO{N'vt@tqFWcRx<$iSa
-iW)iP+=
-pnzU,Jڴɰp]W JI`rBT7rv# #y.8zR mI-޿6`b~1Easp\A2١1v.4||eܾhHן'M _`͗rm7tt 1I1"!<DS_*OF!{;ւ6 Z\=gS(cqgĭR16^
- <#LNdfO}2NUަЄӕͦR]q]|\{6Y<3nj^myV
+xڵXKs6Wprf"o`ikgI#O{s)H☢T>i:@%˩Ab- "I$MT%Ƃl5~t“觟5 bh-y"<s>)š ㉢4<ˍc6YM50bb_qJbӜRtLxL1J53Q"XwA KF&$ö[4M d RP"`$4a%0%(/eLDo<-j1R`4TV}xJEsA$?GŨ}6@Qub:DDҞϱ)KbZ3YHL1Wa4yi۴WcFt٦ZEceڼtTvW뵷kXY_Mjo4ϖj,\-<Kf[-]€FcE$ ,rf1@ ÓΖp+!"S.<0 smJS(jǟa"qjJH HӺݰRS0þ&zw^&-_9>Ɯ7o_3XA-,H<q9!@ .V
+ 0sA /L H/Md\d [}h޵8s]Dc0+t< SnKɿKi`5b<*ҫlD1\DX<ޓLX P! I\^ڴu>sԺ+tkO&1`V\›ϝ蒅iǕyݧ $;1,n_wf`ћ w'͋RS)jIe lY!
+"5Yv8C@I|W\@0|#8+LuAuQ)ba/K0kci;q:pYP<~ ,Jw_s710N;#5gĦmVИ|_?pϗj){pȅ)#|#>"MhK%[l]> ,nOnZμ^D  Ow@ax.k'NFn<gCendstream
endobj
900 0 obj <<
/Type /Page
@@ -7396,61 +7393,140 @@ endobj
/D [900 0 R /XYZ 74.4095 793.4011 null]
>> endobj
166 0 obj <<
-/D [900 0 R /XYZ 74.4095 358.2768 null]
->> endobj
-903 0 obj <<
-/D [900 0 R /XYZ 74.4095 266.732 null]
+/D [900 0 R /XYZ 74.4095 221.4355 null]
>> endobj
-904 0 obj <<
-/D [900 0 R /XYZ 74.4095 238.7914 null]
+899 0 obj <<
+/Font << /F61 259 0 R /F83 824 0 R /F28 209 0 R /F26 206 0 R >>
+/ProcSet [ /PDF /Text ]
>> endobj
+906 0 obj <<
+/Length 2732
+/Filter /FlateDecode
+>>
+stream
+xڭZYsF~ׯ9q>e'8:VG$lT
+vfP<o9Q"{*jڕ$
+86۬ZH(Tq3LQ?WlYcZ<[
+zz`Mؗ'08FHWZX&Wi/:Y#.XH$"Yy$"/i<1Y@X;P5T(UuY͋l'SVO
+zP%j״){`JhXLj$YS φ:rDOxc3r7g^5MKPrzz>1+ o8AWx`O8\5%ɯn~i8209)ErCJ
+S/@^#ǡ\u
+ʍ%x]­S$rСJo_ j*`P!$=K J[~J!?CT4j
+ؙ.aei_ޟʗ.&sF xK'"inëD<kUu*TdxӺcڼz2?dXh pkc#ܬr?UL
+=dHD8
++v4컴('T҇~=DQX i(^|iN-h~ |sMTflSG9uU=.Ohq~T@uЕ#_4b '`iK/=lN)Ң â
+a!wTk&b\OhZIFB71[_72Lc/
+I8^.zj2ZZz79ʟr'(xIؑi[hbqkpD"da3]?yf DHDhsb7m\r[$eQJ)O;҆Oڀ4㌌&Ew9N
+ Iĺ(`WJ0
++s5Íy&"
+v Sw!B3
+endobj
905 0 obj <<
-/D [900 0 R /XYZ 74.4095 210.7431 null]
+/Type /Page
+/Contents 906 0 R
+/Resources 904 0 R
+/MediaBox [0 0 595.2757 841.8898]
+/Parent 883 0 R
+/Annots [ 915 0 R 916 0 R 917 0 R 918 0 R ]
>> endobj
-906 0 obj <<
-/D [900 0 R /XYZ 74.4095 164.7675 null]
+915 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [265.8494 326.1609 280.305 336.7432]
+/Subtype /Link
+/A << /S /GoTo /D (figure.3.8) >>
>> endobj
-899 0 obj <<
-/Font << /F61 259 0 R /F83 824 0 R /F28 209 0 R /F26 206 0 R /F35 221 0 R >>
-/ProcSet [ /PDF /Text ]
+916 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [448.8126 243.1787 463.2682 253.761]
+/Subtype /Link
+/A << /S /GoTo /D (figure.2.1) >>
+>> endobj
+917 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [361.8513 207.3242 376.3069 217.9065]
+/Subtype /Link
+/A << /S /GoTo /D (figure.2.3) >>
+>> endobj
+918 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [504.4211 153.5425 518.8767 164.1248]
+/Subtype /Link
+/A << /S /GoTo /D (figure.2.5) >>
+>> endobj
+907 0 obj <<
+/D [905 0 R /XYZ 74.4095 793.4011 null]
+>> endobj
+908 0 obj <<
+/D [905 0 R /XYZ 74.4095 771.7323 null]
+>> endobj
+909 0 obj <<
+/D [905 0 R /XYZ 74.4095 757.8898 null]
>> endobj
910 0 obj <<
-/Length 2192
+/D [905 0 R /X