]> mj.ucw.cz Git - ads1.git/commitdiff
Grafy: Prepsani casti o BFS
authorMartin Mares <mj@ucw.cz>
Tue, 24 May 2011 14:52:46 +0000 (16:52 +0200)
committerMartin Mares <mj@ucw.cz>
Tue, 24 May 2011 14:52:46 +0000 (16:52 +0200)
3-grafy/3-grafy.tex
3-grafy/img4_susedia.eps [deleted file]
3-grafy/sousedi.eps [new file with mode: 0644]
3-grafy/sousedi.svg [new file with mode: 0644]

index 796f6a46f78c756432804248fb549ba279cc4c58..403124345a76c3f15317592026e9cb7472f57e79 100644 (file)
@@ -2,19 +2,28 @@
 
 \prednaska{3}{Prohledání do~¹íøky a do~hloubky}{}
 
-\h{Prohledání do~¹íøky (BFS) {\I Breadth-First Search} }
+\h{Prohledání do~¹íøky {\I Breadth-First Search -- BFS} }
 
 Jde o grafový algoritmus, který postupnì prochází v¹echny vrcholy v~dané komponentì souvislosti.
 Algoritmus nejprve projde v¹echny sousedy poèáteèního vrcholu, poté sousedy sousedù, atd\dots
-Díky tomuto zpùsobu procházení se nìkdy té¾ nazývá \uv{\I algoritmus vlny}, nebo» se z~poèáteèního vrcholu ¹íøí pomyslná vlna, která v~ka¾dém kroku nalezne v¹echny uzly, které mají od~poèáteèního vrcholu stejnou vzdálenost. Algoritmus se tedy skvìle hodí napøíklad pro hledání nejkra¹í cesty mezi dvìma vrcholy v~grafu.
-\figure{praseci-graf.eps}{Praseèí graf}{55mm}
+Díky tomuto zpùsobu procházení se nìkdy té¾ nazývá \uv{\I algoritmus vlny}, nebo» se z~poèáteèního vrcholu ¹íøí pomyslná vlna, která v~ka¾dém kroku nalezne v¹echny uzly, které mají od~poèáteèního vrcholu stejnou vzdálenost. Algoritmus se tedy skvìle hodí napøíklad pro hledání nejkrat¹í cesty mezi dvìma vrcholy v~grafu.
 
+Zatím pøedpokládejme, ¾e graf, se kterým pracujeme, je orientovaný.
+Orientovanou hranu $(u,v)$ z~$u$ do~$v$ budeme obvykle zkracovat jako $uv$.
+Pro neorientované grafy bude v¹e obdobné.
+
+\figure{praseci-graf.eps}{Praseèí graf a prùchod vlny skrz nìj}{55mm}
 
 \s{Popis algoritmu:}
-Na zaèátku vlo¾íme do~fronty $Q$ poèáteèní vrchol $v_0$. Dále si v~poli $Z$ budeme pro ka¾dý vrchol pamatovat znaèku, zda jsme ho ji¾ nav¹tívili, èi nikoli. Pro vrchol $v_0$ si tedy dosazením jednièky zapamatujeme, ¾e je ji¾ nav¹tívený. V~dal¹ím kroku pak zkoumáme frontu $Q$: pokud není prázdná, vezmeme z~ní první vrchol a podíváme se na~v¹echny jeho sousedy $w$. Pokud je¹tì nejsou oznaèené (tedy $Z[w]=0$), tak je oznaèíme (zapamatujeme si, ¾e je pøedáváme ke zpracování a u¾ je nemáme znovu nav¹tìvovat) a pøidáme je do~fronty k~následnému zpracování. Takto cyklus opakujeme, dokud není fronta prázdná.
+Na zaèátku vlo¾íme do~fronty $Q$ poèáteèní vrchol $v_0$. Dále si v~poli~$Z$
+budeme pro ka¾dý vrchol pamatovat znaèku, zda jsme ho ji¾ nav¹tívili ($Z[v]=1$), èi
+nikoli ($Z[v]=0$). Na poèátku jsou v¹echny znaèky nulové, jen vrchol~$v_0$, který
+je oznaèen a vlo¾en do fronty.
 
-\s{Poznámka:}
-Nejprve se podívejme, jak algoritmus pracuje na orientovaném grafu. Pro neorientovaný graf funguje algoritmus analogicky, co¾ si uká¾eme pozdìji.
+V~ka¾dém dal¹ím kroku pak zkoumáme frontu $Q$: pokud není prázdná, vezmeme
+z~ní první vrchol~$u$ a podíváme se na~v¹echny vrcholy~$v$, do nich¾ z~$u$
+vede hrana. Pokud sousedi je¹tì nejsou oznaèení, tak je oznaèíme a pøidáme je do~fronty
+k~následnému zpracování. Toto opakujeme, dokud není fronta prázdná.
 
 \s{Algoritmus:}
 
@@ -22,13 +31,12 @@ Nejprve se pod
 \:$Q \leftarrow \{v_0\}$.
 \:$Z[*] \leftarrow 0, Z[v_0] \leftarrow 1$.
 \:Dokud $Q \not= \emptyset $ opakujeme:
-\::Vyzvedneme vrcholy $u$ z~$Q$.
-\::$\forall w: (u,w)\in E$:
-\:::Je-li $Z[w]=0 \Rightarrow Z[w] \leftarrow 1$, pøidáme $w$ do~$Q$.
+\::Vyzvedneme vrchol $u$ z~$Q$.
+\::$\forall v: uv\in E$:
+\:::Je-li $Z[v]=0 \Rightarrow Z[v] \leftarrow 1$, pøidáme $v$ do~$Q$.
 \endalgo
 
-
-\>{\I Pozorování:} {\I BFS} se zastaví.
+\s{Pozorování:} {\I BFS} se zastaví.
 
 \proof Zpracováváme jen vrcholy, které byly ve~frontì. Ka¾dý vrchol se dostane do~fronty maximálnì jednou. (Ka¾dý je oznaèen max. jednou, znaèky neodstraòujeme.)
 
@@ -36,31 +44,43 @@ Nejprve se pod
 
 \proof 
 \uv{$\Longrightarrow$}: 
-Platí jako invariant po celou dobu bìhu algoritmu. To doká¾eme indukcí dle doby bìhu algoritmu:
+Platí jako invariant po celou dobu bìhu algoritmu. To doká¾eme indukcí dle doby
+bìhu algoritmu:
+
+První krok indukce je triviální, nebo» cesta z~$v_0$ do~$v_0$ existuje v¾dy.
+Nyní si pøedstavme, ¾e oznaèujeme vrchol~$v$ pøes hranu~$uv$. To znamená, ¾e
+vrchol~$u$ ji¾ musel být oznaèený. Dle indukèního pøedpokladu tedy existuje
+cesta z~$v_0$ do~$u$, a tudí¾ pokud k~této cestì \uv{pøilepíme} hranu~$uv$,
+dostáváme sled z~$v_0$ do~$v$, který lze v¾dy zredukovat na cestu.
+
+\uv{$\Longleftarrow$} Sporem: Nech» existuje neoznaèený vrchol $v$ dosa¾itelný
+po nìjaké cestì z~$v_0$. Uva¾me nejkrat¹í cestu $(v_0, v)$: $v_0, v_1 \dots,
+v_k = v$ a vezmìme minimální~$i$ takové, ¾e~$v_i$ není oznaèený. Víme, ¾e~$i>0$
+(nebo»~$v_0$ je urèitì oznaèen u¾ na zaèátku algoritmu). Tudí¾~$v_{i-1}$ je
+oznaèený. Pøi oznaèení jsme ho ov¹em pøidali do fronty, tak¾e jsme ho z~fronty
+museli pozdìji zase vyjmout. Pøi tom jsme ov¹em museli objevit hranu $v_{i-1}v_i$
+a oznaèit vrchol~$v_i$, co¾ je spor.
+\qed
 
-První krok indukce je triviální, nebo» cesta z~$v_0$ do~$v_0$ existuje v¾dy. Nyní si pøedstavme, ¾e oznaèujeme vrchol~$v$ pøes hranu~$uv$. To znamená, ¾e vrchol~$u$ ji¾ musel být oznaèený. Dle indukèního pøedpokladu tedy existuje cesta z~$v_0$ do~$u$, a tudí¾ pokud k~této cestì \uv{pøilepíme} hranu~$uv$, dostáváme sled z~$v_0$ do~$v$, který lze v¾dy zredukovat na cestu.
+Nyní tedy víme, ¾e algoritmus je správný, a máme pøedstavu o tom, jak funguje.
+Podíváme-li se na~nìj podrobnìji, zjistíme, ¾e je hodnì závislý na~tom, jak si
+budeme graf pamatovat. Zanedlouho zároveò zjistíme, ¾e nám reprezentace grafu
+v~pamìti znatelnì ovlivní èasovou (i pamì»ovou) slo¾itost celého algoritmu.
 
-\uv{$\Longleftarrow$} Sporem: Nech» existuje neoznaèený vrchol $v$ dosa¾itelný po nìjaké cestì z~$v_0$. Uva¾me nejkrat¹í cestu $(v_0, v)$: $v_0, v_1 \dots, v_k = v$ a vezmìme minimální~$i$ takové, ¾e~$v_i$ není oznaèený. Víme, ¾e~$i>0$ (nebo»~$v_0$ je urèitì oznaèen u¾ na zaèátku algoritmu). Tudí¾~$v_{i-1}$ je oznaèený. Museli jsme tedy pou¾ít hranu~$v_{i-1}~v_i$ a oznaèit vrchol~$v_i$, co¾ je SPOR. \qed
+\h{Reprezentace grafu v~pamìti}
 
-Nyní tedy víme, ¾e je algoritmus správný, a máme pøedstavu o tom, jak funguje. Podíváme-li se na~nìj podrobnìji, zjistíme, ¾e je hodnì závislý na~tom, jak si budeme graf pamatovat. Zanedlouho zároveò zjistíme, ¾e nám reprezentace grafu v~pamìti znatelnì ovlivní èasovou (i pamì»ovou) slo¾itost celého algoritmu.
+Mìjme nìjaký orientovaný graf~$G$ s~$n$ vrcholy a $m$~hranami. Jak ho reprezentovat?
 
-\h{Reprezentace grafu v~pamìti}
+Vrcholy mù¾eme oèíslovat od~1 do~$n$. Pro ulo¾ení hran máme na~výbìr hned nìkolik zpùsobù.
+Pøedvedeme si je na grafu z~následujícího obrázku:
+\figure{imgn_o4.eps}{Ukázkový graf}{\epsfxsize}
 
-Oznaème vrcholy grafu na~následujícím obrázku písmeny A, B, C, D.
-Pokud bychom chtìli tento graf uchovat v~pamìti poèítaèe, máme na~výbìr
-hned nìkolik zpùsobù, jak to udìlat.
-\figure{imgn_o4.eps}{}{\epsfxsize}
 \s{1. matice sousednosti}
 
-Matice sousednosti pro graf $G$ na~$n$ vrcholech je ètvercové pole $A$ o velikosti $n \times n$, jeho¾ prvky na
-souøadnicích $i, j$ jsou dány následujícím pøedpisem:
+Matice sousednosti pro graf $G$ na~$n$ vrcholech je ètvercová matice $A$ o~rozmìrech $n \times n$,
+taková, ¾e $A_{i,j}$ popisuje, jestli z~vrcholu~$i$ do vrcholu~$j$ vede hrana ($A_{i,j}=1$)
+nebo nikoliv ($A_{i,j}=0$).
 
-$$ A_{i,j} = \left\{ \matrix {1 \Leftrightarrow \{i,j\} \in E  \cr
-                               0 \Leftrightarrow \{i,j\} \notin E \cr                                  
-                               }
-\right.$$
-
-Na~pozicích $i,j$ je jednièka, pokud v~grafu $G$ vede hrana z~vrcholu~$i$ do~vrcholu~$j$, jinak to je nula.
 Ná¹ graf z~obrázku vý¹e by tedy v~maticové reprezentaci vypadal takto:
 
 $$\bordermatrix{
@@ -72,8 +92,14 @@ D & 1 & 1 & 0 & 0\cr
 }$$
 
 S touto maticí se pracuje velmi snadno, napø. v¹echny sousedy $i$-tého vrcholu
-zjistíme jednodu¹e tak, ¾e projdeme $i$-tý øádek matice.
-Má ov¹em dvì zøejmé nevýhody: èasovou a pamì»ovou slo¾itost. Projití sousedù jednoho vrcholu trvá v¾dy $\Theta(n)$, projití sousedù pro v¹echny vrcholy (co¾ potøebujeme v~BFS) pak trvá $\Theta(n^2)$. Velikost matice je v¾dy $n \times n$, bez ohledu na~to, jak \uv{øídký} je graf. U grafu s mnoha vrcholy, ale s malým poètem hran, tedy budeme zbyteènì plýtvat místem v~pamìti. Tato reprezentace je tedy nevýhodná pøedev¹ím pro tøídy grafù jako jsou stromy, které mají $n-1$ hran, nebo rovinné grafy, které mají nejvý¹e $3n-6$ hran.
+zjistíme jednodu¹e tak, ¾e projdeme $i$-tý øádek matice a najdeme v¹echny jednièky.
+Má ov¹em dvì zøejmé nevýhody: èasovou a pamì»ovou slo¾itost. Projití sousedù
+jednoho vrcholu trvá v¾dy $\Theta(n)$, projití sousedù pro v¹echny vrcholy (co¾
+potøebujeme v~BFS) pak trvá $\Theta(n^2)$. Velikost matice je v¾dy $n \times
+n$, bez ohledu na~to, jak \uv{øídký} je graf. U grafu s mnoha vrcholy, ale
+s malým poètem hran, tedy budeme zbyteènì plýtvat místem v~pamìti. Tato
+reprezentace je tedy nevýhodná pøedev¹ím pro tøídy grafù, jako jsou stromy,
+které mají $n-1$ hran, nebo rovinné grafy, které mají nejvý¹e $3n-6$ hran.
 
 \s{Pozorování:} BFS s reprezentací maticí sousednosti bì¾í v~èase: $\Theta(n^2)$.
 
@@ -81,38 +107,57 @@ M
 U¾ jsme si uvìdomili, ¾e ka¾dý vrchol se dostane do~fronty $Q$ nejvý¹e jednou. Pro ka¾dý vrchol ve~frontì potøebujeme projít jeho sousedy, co¾ nám trvá s~reprezentací maticí sousednosti $\Theta(n)$. Vrcholù je celkem $n$, tedy èasová slo¾itost je $\Theta(n^2)$.
 \qed
 
+\smallskip
 \s{2. seznam sousedù}
 
 V~matici sousednosti jsme museli procházet jak hrany, tak nehrany, co¾ bylo zbyteèné. Bylo by tedy výhodnìj¹í pamatovat si pro ka¾dý vrchol pouze jeho sousedy. To mù¾eme zaøídit napøíklad jedním ze~dvou následujících zpùsobù:
 
-Uchovávejme pole indexované vrcholy tak, ¾e v~ka¾dém prvku pole je ukazatel na~spojový seznam sousedù tohoto vrcholu. Tedy $L(v)=\{w: vw \in E(G)\}$.
+Uchovávejme pole indexované vrcholy tak, ¾e v~ka¾dém prvku pole je ukazatel
+na~spojový seznam sousedù tohoto vrcholu. Tedy $L(v)=\{w: vw \in E(G)\}$.
 
-Pokud se nám nebude chtít pracovat se spojovými seznamy, mù¾eme vyu¾ít reprezentaci pomocí dvou polí. První pole~$V$ bude opìt indexované vrcholy. V~druhém poli~$E$ budou pro ka¾dý vrchol ulo¾eni jeho sousedé. V~poli~$V$ si pamatujeme pro ka¾dý vrchol~$i$ index do~pole~$E$, kde zaèínají jeho sousedé. K sousedùm vrcholu~$i$ se tedy dostaneme ji¾ snadno - nalezneme je na pozicích $V[i]~\dots~V[i+1]-1$.
-\figure{imgn_nei.eps}{Znázornìní polí seznamu sousedù.}{\epsfxsize}
+Pokud se nám nebude chtít pracovat se spojovými seznamy, mù¾eme vyu¾ít
+reprezentaci pomocí dvou polí. První pole~$V$ bude opìt indexované vrcholy.
+V~druhém poli~$E$ budou pro ka¾dý vrchol ulo¾eni jeho sousedé. V~poli~$V$ si
+pamatujeme pro ka¾dý vrchol~$i$ index do~pole~$E$, kde zaèínají jeho sousedé,
+a navíc dodefinujeme, ¾e $V[n+1]=m+1$.
+K sousedùm vrcholu~$i$ se pak ji¾ dostaneme snadno -- nalezneme je na pozicích
+$V[i], \dots, V[i+1]-1$.
 
+\figure{sousedi.eps}{Znázornìní polí seznamu sousedù}{40mm}
 
-Na tuto reprezentaci u¾ staèí prostor $O(n + m)$, co¾ u¾ je, na~rozdíl od~pøedchozího kvadratického prostoru, docela pøíjemné.
+Na tuto reprezentaci u¾ staèí prostor $\Theta(n + m)$, co¾ u¾ je, na~rozdíl
+od~pøedchozího kvadratického prostoru, docela pøíjemné.
 
-\s{Pozorování:} BFS bì¾í v~èase: $\Theta(n+m)$.
+\s{Pozorování:} BFS s~reprezentací seznamem sousedù bì¾í v~èase $\Theta(n+m)$.
 
 \proof
-Algoritmus vezme ka¾dý vrchol i ka¾dou hranu do~ruky nejvý¹e jednou. Èasová slo¾itost bude tedy:
-$$\Theta\left(n+\sum_{v\in V(G)} {\rm deg}(v)\right) = \Theta(n+m).$$
+Algoritmus zpracuje ka¾dý vrchol nejvý¹e jednou a stráví jím èas lineární
+v~poètu odchozích hran, tedy $\Theta({\rm deg}^-(v))$. Èasová slo¾itost celého
+algoritmu tedy èiní:
+$$\Theta\left(n+\sum_{v\in V(G)} {\rm deg}^-(v)\right) = \Theta(n+m).$$
 \qed
 
 \s{3. orákulum}
 
-Dal¹í mo¾ností reprezentace je pak jakési orákulum, které nám øekne (spoèítá), kam vedou hrany z~daného vrcholu\dots To se hodí napøíklad tehdy, pokud si nepotøebujeme pamatovat celý graf, ale staèí nám naleznout sousedy nìjakého vrcholu, které orákulum jednoznaènì výpoètem doká¾e urèit. Napøíklad pøi øe¹ení známé úlohy odmìøení daného mno¾ství vody za pomocí nádob rùzných objemù mù¾eme tento zpùsob reprezentace grafu pou¾ít. Problém pøevedeme na prohledávání grafu do~¹íøky, kde vrcholùm odpovídají jednotlivé stavy. Stav øíká, kolik vody je zrovna ve které nádobì. Potom nám ji¾ staèí ze zadaného poèáteèního vrcholu (stavu) najít cestu do~cílového. Orákulum je zde vlastnì funkce, které pøedáme vrchol a ona nám vrátí v¹echny vrcholy sousední -- tedy takové stavy, ke kterým dojde, kdy¾ vyzkou¹í v¹echny mo¾nosti pøelití kapaliny z jedné nádoby do~druhé.
+Dal¹í mo¾ností reprezentace je jakési orákulum, které nám na po¾ádání øekne (spoèítá),
+kam vedou hrany z~daného vrcholu. To se hodí napøíklad tehdy, pokud graf vznikl
+výpoètem a nechceme plýtvat pamìtí na jeho ulo¾ení. To se hodí napøíklad u~u¾
+zmínìného hlavolamu \uv{Lloydova osmièka}.
 
-\h{Roz¹íøení algoritmu:}
+\smallskip
+\s{Neorientované grafy}
 
-Abychom mohli vyu¾ít toho, ¾e algoritmus prochází vrcholy grafu ve~vlnì, a jiných hezkých vlastností, tak si dodefinujeme následující oznaèení:
+Chceme-li reprezentovat neorientovaný graf, ulo¾íme ka¾dou hranu v~obou orientacích.
 
-V~poli $D$ bude pro ka¾dý vrchol ulo¾ena vzdálenost od~poèáteèního vrcholu.
-V~poli $P$ si budeme pro ka¾dý vrchol pamatovat jeho pøedchùdce. Dále budeme vyu¾ívat fáze bìhu algoritmu, které budou simulovat onu vlnu:
+\h{Výpoèet vzdáleností}
 
-\s{Definice: {\I Fáze bìhu algoritmu}:} Ve~fázi $F_0$ je zpracováván vrchol $v_0$. Ve~fázi $F_{i+1}$ jsou zpracovávány vrcholy ulo¾ené do~fronty $Q$ bìhem fáze $F_i$.
+Abychom mohli vyu¾ít toho, ¾e algoritmus prochází vrcholy grafu ve~vlnì,
+k~výpoètu vzdáleností, doplníme do nìj dvì pomocná pole:
+$D[v]$ bude øíkat, na~kolik krokù jsme se do~$v$ dostali,
+$P[v]$ bude obsahovat {\I pøedchùdce} vrcholu~$v$, toti¾ vrchol~$u$,
+ze~kterého jsme se do~$v$ dostali po hranì a jeho¾ $D[u]=D[v]-1$.
 
+\smallskip
 \s{Roz¹íøený algoritmus:}
 \algo
 \:$Q \leftarrow \{v_0\}$.
@@ -120,70 +165,87 @@ V~poli $P$ si budeme pro ka
 \:$D[*] \leftarrow \infty, D[v_0] \leftarrow 0$.
 \:Dokud $Q \not= \emptyset $ opakujeme:
 \::Vyzvedneme vrchol $u$ z~$Q$.
-\::Pro ka¾dý vrchol $w$, který je sousedem vrcholu $u$:
-\:::Je-li $Z[w]=0 \Rightarrow Z[w] \leftarrow 1, D[w] \leftarrow D[u]+1, P[w] \leftarrow u$
-\::::Pøidáme $w$ do~$Q$.
+\::Pro ka¾dý vrchol $v$, do~kterého vede hrana z~vrcholu $u$:
+\:::Je-li $Z[v]=0$:
+\::::$Z[v] \leftarrow 1, D[v] \leftarrow D[u]+1, P[v] \leftarrow u$
+\::::Pøidáme $v$ do~$Q$.
 \endalgo
 
-\s{Lemma:} Na~konci BFS pro v¹echny vrcholy dosa¾itelné z~$v_0$ platí, ¾e vrchol $v$ byl zpracován ve~fázi $F_i$ právì tehdy, kdy¾ vzdálenost $v_0$ a $v$ (délka nejkrat¹í cesty z~$v_0$ do~$v$) je rovna $i$. Formálnì zapsáno: $v \in F_i \Leftrightarrow d(v_0,v) = i$. (Kde $d(x,y)$ je délka nejkrat¹í cesty z~$x$ do~$y$).
-
-\proof
-\uv{$\Longrightarrow$}: 
-Dùkaz provedeme indukcí podle $i$ (èísla fáze bìhu algoritmu).
-
-První krok indukce je triviální, nebo» ve~fázi $F_0$ je oznaèen (dle definice) pouze vrchol $v_0$ a to je jediný vrchol vzdálený~0 od~$v_0$. 
+\s{Definice: {\I Fáze bìhu algoritmu}:} Ve~fázi $F_0$ je zpracováván vrchol $v_0$. Ve~fázi $F_{i+1}$ jsou zpracovávány vrcholy ulo¾ené do~fronty $Q$ bìhem fáze $F_i$.
 
-Pokud je vrchol $v$ zpracováván ve~fázi $F_i$, pak musel být zaøazen do~fronty bìhem fáze $F_{i-1}$ jako soused nìjakého vrcholu $u$. Pro vrchol $u$ mù¾eme pou¾ít indukèní pøedpoklad, tedy ¾e délka nejkrat¹í cesty z~$v_0$ do~$u$ je $d(v_0,u)=i-1$. Pak tedy $d(v_0,v)\leq i$, nebo» je¹tì nevíme, zda cesta $v_0, \dots, u, v$ je nejkrat¹í. Kdyby ale existovala nìjaká krat¹í, tedy délky nejvý¹e $i-1$, tak by byl vrchol $v$ objeven u¾ døíve ne¾ ve fázi $F_i$. Proto $d(v_0,v) = i$.
+\s{Pozorování:} Ka¾dý vrchol~$v$ dosa¾itelný z~$v_0$ se úèastní právì jedné fáze,
+a to té s~èíslem~$D[v]$.
 
+\s{Lemma:} Po zastavení BFS pro v¹echny vrcholy dosa¾itelné z~$v_0$ platí, ¾e $D[v]$
+je rovno $d(v_0,v)$, toti¾ vzdálenosti (délce nejkrat¹í cesty) z~$v_0$ do~$v$.
 
-\uv{$\Longleftarrow$}: Ka¾dý dosa¾itelný vrchol padne do~nìjaké fáze (viz. minulé lemma).
+\proof
+Nejprve si uvìdomíme, ¾e kdykoliv je~$v$ oznaèen, vede do nìj z~$v_0$ nìjaký
+sled délky~$v$ (indukcí, stejnì jako jsme pøed chvílí dokazovali, ¾e BFS projde
+v¹echny dosa¾itelné vrcholy). Proto nemù¾e být $D[v]$ men¹í ne¾ $d(v_0,v)$.
+
+Sporem doká¾eme, ¾e nemù¾e být ani vìt¹í. Pøedpokládejme, ¾e existuje nìjaký
+\uv{¹patný} vrchol~$v$, pro který je $D[v] > d(v_0,v)$. Nech» $P$ je nìkterá z~nejkrat¹ích
+cest z~$v_0$ do~$v$. Z~mo¾ných ¹patných vrcholù si vyberme takový, jeho¾ $P$ je nejkrat¹í
+mo¾ná. Jeliko¾ pro vrchol~$v_0$ je zajisté $D[v_0] = d(v_0,v_0) = 0$, musí být $v$
+rùzný od~$v_0$, tak¾e má na~$P$ nìjakého pøedchùdce~$u$. Pro toho ov¹em je vzdálenost
+spoèítána správnì: $D[u] = d(v_0,u) = d(v_0,v)-1$.
+
+Uva¾ujme nyní, co se stalo v~okam¾iku, kdy jsme~$D[u]$ nastavili. Tehdy jsme~$u$
+ulo¾ili do fronty, po èase jsme ho z~fronty zase vytáhli a prozkoumali jsme v¹echny
+vrcholy, do ní¾ vede z~$u$ hrana. Tedy i vrchol~$v$, tak¾e $D[v]$ v~tomto okam¾iku
+nemù¾e být vìt¹í ne¾ $D[u]+1 = d(v_0,v)$, a~to je spor.
 \qed
 
-Ji¾ tedy víme, ¾e vrchol $v_i$, jeho¾ vzdálenost od~vrcholu $v_0$ je $i$, bude zpracován v~$i$-té fázi. Jak ale po~skonèení algoritmu zjistíme, ve které fázi byl zpracován, neboli jak je vzdálený od~startovního vrcholu? Tato informace je právì ulo¾ena v~poli $D$ s indexem $i$ (v~$D[i]$).
-
-Zároveò nás mù¾e zajímat, jak bychom nejkrat¹í cestu z~$v_0$ do~$v_i$ rekonstruovali. Pro tento úèel jsme si zavedli pole $P$. Nejkrat¹í cesta z~$v_0$ do~$v_i$ bude v~obráceném poøadí vypadat: $v_i, P[v_i], P[P[v_i]], P[P[P[v_i]]], \dots, v_0$.
+Víme tedy, ¾e BFS správnì spoèítá délky nejkrat¹ích cest do v¹ech vrcholù grafu.
+Pomocí pøedchùdcù v~poli~$P$ mù¾eme tyto cesty dokonce snadno rekonstruovat:
+pøedposledním vrcholem na nejkrat¹í cestì do~vrcholu~$v$ musí být vrchol $P[v]$,
+jeho pøedchùdcem $P[P[v]]$, \dots, a¾ do~vrcholu~$v_0$.
 
+Pøedchùdci nám tedy kódují strukturu nejkrat¹ích cest do~v¹ech vrcholù.
+Mù¾eme se na nì dívat také následovnì:
 
-\s{Pozorování:} Pokud víme, ¾e $v_0, v_1, \dots, v_{k-1}, v_k$ je nejkrat¹í cesta z~$v_0$ do~$v_k$, pak $v_0,v_1,\dots,v_{k-1}$ je nejkrat¹í cesta z~$v_0$ do~$v_{k-1}$. Neboli prefix nejkrat¹í cesty je nejkrat¹í cesta.
+\s{Definice:} Strom nejkrat¹ích cest je orientovaný strom s~mno¾inou vrcholù
+$W=\{ v\in V(G) \mid \hbox{$v$ dosa¾itelný z~$v_0$} \}$
+a hranami $\{ (P(v),v) \mid v\in W, v\ne v_0 \}$.
 
-\proof
-Kdyby existovala krat¹í cesta z~$v_0$ do~$v_{k-1}$, pak bychom mohli zkrátit i cestu z~$v_0$ do~$v_k$.
+\s{Pozorování:} Koøenem stromu nejkrat¹ích cest je vrchol~$v_0$, cesta v~tomto
+stromu z~$v_0$ do~$v$ (jednoznaènì urèená, je to strom) je pak jednou z~nejkrat¹ích
+cest z~$v_0$ do~$v$ v~pùvodním grafu.
 
+\smallskip
+\s{Komponenty souvislosti}
 
-\s{Pozorování:} BFS u~neorientovaného grafu projde celou komponentu souvislosti.
+V~neorientovaných grafech mù¾eme BFS jednodu¹e pou¾ít na nalezení komponent souvislosti.
+Ji¾ víme, ¾e BFS spu¹tìné z~vrcholu~$v_0$ projde právì ty vrcholy, které jsou z~$v_0$
+dosa¾itelné, co¾ jsou v~neorientovaném grafu pøesnì ty, které le¾í v~té¾e komponentì.
 
-\proof
-Víme, ¾e BFS($v_0$) oznaèí $v$ právì tehdy, kdy¾ existuje cesta z~$v_0$ do~$v$. V~neorientovaném grafu existuje cesta z~$v_0$ do~právì v¹ech vrcholù, které jsou ve~stejné komponentì souvislosti jako $v_0$. Pokud tedy spustíme BFS na~$v_0$, tak se postupnì projdou v¹echny vrcholy této komponenty souvislosti.
-\qed
-
-\s{Pozorování:} Pokud BFS postupnì spou¹tíme na~dosud neobarvené vrcholy v~ neorientovaném grafu, nalezneme nakonec v~èase $\Theta(n+m)$ v¹echny komponenty souvislosti.
+Staèí opakovanì spou¹tìt BFS z~dosud neoznaèených vrcholù, poka¾dé nám oznaèí
+jednu komponentu.
 
 \s{Algoritmus:}
 \algo
-\:Pro v¹echny vrcholy $v \in V(G)$ opakuj:
-\::Pokud je vrchol $v$ neobarvený $ \Rightarrow \<BFS(v)>$.
+\:Pro v¹echny vrcholy $v \in V(G)$ opakujeme:
+\::Pokud je vrchol $v$ neoznaèený:
+\:::Spustíme $\<BFS>(v)$ a pøiøadíme objevené vrcholy nové komponentì.
 \endalgo
 
-\proof
-Ka¾dým spu¹tìním na~dosud neobarvený vrchol neorientovaného grafu obarvíme právì jednu komponentu souvislosti (tu, ve~které je tento vrchol). 
-Postupnì projdeme v¹echny vrcholy od prvního k poslednímu a v¾dy pokud je vrchol neobarvený, spustíme na nìj BFS. Tak nakonec obarvíme v¹echny komponenty souvislosti. Èasová slo¾itost bude stejná jako u~samotného BFS, tedy $\Theta(n + m)$.
-\qed
+To, co jsme o~BFS zjistili, mù¾eme shrnout do následující vìty:
 
-\s{Vìta:} $BFS(v_0)$ v~èase $\Theta(n + m)$ spoète:
+\s{Vìta:} $\<BFS>(v_0)$ v~èase $\Theta(n + m)$ spoète:
 \itemize\ibull
 \:vrcholy dosa¾itelné z~$v_0$
 \:vzdálenosti tìchto vrcholù od~$v_0$
 \:strom nejkrat¹ích cest z~$v_0$
 \endlist
 
-\s{Poznámka:} Algoritmus na prohledávání do~¹íøky bude fungovat i na neorientovaném grafu. Mù¾eme si jednodu¹e pøedstavit, ¾e je to orientovaný graf, kde ka¾dá hrana má oboustrannou orientaci.
-
-
-Prohledávání do~¹íøky ale není jediný algoritmus, který nìjak systematicky prochází graf. Jak u¾ název kapitoly napovídá, budeme se zabývat je¹tì druhým algoritmem, prohledáváním do~hloubky. Podívejme se, jak bude vypadat \dots
+\>Prohledávání do~¹íøky ale není jediný algoritmus, který nìjak systematicky prochází graf. Jak u¾ název kapitoly napovídá, budeme se zabývat je¹tì druhým algoritmem, prohledáváním do~hloubky. Podívejme se, jak bude vypadat \dots
 
-\h{Prohledávání do~hloubky (DFS) {\I Depth-First Search} }
+\h{Prohledávání do~hloubky {\I Depth-First Search -- DFS }}
 
-Tento algoritmus neprochází graf ve~vlnì jako BFS, ale prochází ho rekurzivnì. V¾dy se zanoøí co nejhloubìji a¾ do~listu a pak se o~kus vrátí a opìt se sna¾í zanoøit. Vrcholy, ve kterých u¾ byl, ignoruje.
+Tento algoritmus neprochází graf ve~vlnì jako BFS, nýbr¾ ho prochází
+rekurzivnì. V¾dy se zanoøí co nejhloubìji a¾ do~listu a pak se o~kus vrátí
+a opìt se sna¾í zanoøit. Vrcholy, ve kterých u¾ byl, ignoruje.
 
 Opìt uva¾me nejdøíve graf orientovaný. Následnì si uká¾eme, ¾e v~neorientovaném grafu budou pouze malé zmìny.
 
diff --git a/3-grafy/img4_susedia.eps b/3-grafy/img4_susedia.eps
deleted file mode 100644 (file)
index c36d758..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-%!PS-Adobe-2.0 EPSF-2.0
-%%Title: img4_susedia.fig
-%%Creator: fig2dev Version 3.2 Patchlevel 5-alpha7
-%%CreationDate: Fri May 11 20:03:15 2007
-%%For: onti@onti-laptop (Ondrej Tichy,,,)
-%%BoundingBox: 0 0 158 56
-%Magnification: 1.0000
-%%EndComments
-/$F2psDict 200 dict def
-$F2psDict begin
-$F2psDict /mtrx matrix put
-/col-1 {0 setgray} bind def
-/col0 {0.000 0.000 0.000 srgb} bind def
-/col1 {0.000 0.000 1.000 srgb} bind def
-/col2 {0.000 1.000 0.000 srgb} bind def
-/col3 {0.000 1.000 1.000 srgb} bind def
-/col4 {1.000 0.000 0.000 srgb} bind def
-/col5 {1.000 0.000 1.000 srgb} bind def
-/col6 {1.000 1.000 0.000 srgb} bind def
-/col7 {1.000 1.000 1.000 srgb} bind def
-/col8 {0.000 0.000 0.560 srgb} bind def
-/col9 {0.000 0.000 0.690 srgb} bind def
-/col10 {0.000 0.000 0.820 srgb} bind def
-/col11 {0.530 0.810 1.000 srgb} bind def
-/col12 {0.000 0.560 0.000 srgb} bind def
-/col13 {0.000 0.690 0.000 srgb} bind def
-/col14 {0.000 0.820 0.000 srgb} bind def
-/col15 {0.000 0.560 0.560 srgb} bind def
-/col16 {0.000 0.690 0.690 srgb} bind def
-/col17 {0.000 0.820 0.820 srgb} bind def
-/col18 {0.560 0.000 0.000 srgb} bind def
-/col19 {0.690 0.000 0.000 srgb} bind def
-/col20 {0.820 0.000 0.000 srgb} bind def
-/col21 {0.560 0.000 0.560 srgb} bind def
-/col22 {0.690 0.000 0.690 srgb} bind def
-/col23 {0.820 0.000 0.820 srgb} bind def
-/col24 {0.500 0.190 0.000 srgb} bind def
-/col25 {0.630 0.250 0.000 srgb} bind def
-/col26 {0.750 0.380 0.000 srgb} bind def
-/col27 {1.000 0.500 0.500 srgb} bind def
-/col28 {1.000 0.630 0.630 srgb} bind def
-/col29 {1.000 0.750 0.750 srgb} bind def
-/col30 {1.000 0.880 0.880 srgb} bind def
-/col31 {1.000 0.840 0.000 srgb} bind def
-
-end
-save
-newpath 0 56 moveto 0 0 lineto 158 0 lineto 158 56 lineto closepath clip newpath
--13.2 71.8 translate
-1 -1 scale
-
-/cp {closepath} bind def
-/ef {eofill} bind def
-/gr {grestore} bind def
-/gs {gsave} bind def
-/sa {save} bind def
-/rs {restore} bind def
-/l {lineto} bind def
-/m {moveto} bind def
-/rm {rmoveto} bind def
-/n {newpath} bind def
-/s {stroke} bind def
-/sh {show} bind def
-/slc {setlinecap} bind def
-/slj {setlinejoin} bind def
-/slw {setlinewidth} bind def
-/srgb {setrgbcolor} bind def
-/rot {rotate} bind def
-/sc {scale} bind def
-/sd {setdash} bind def
-/ff {findfont} bind def
-/sf {setfont} bind def
-/scf {scalefont} bind def
-/sw {stringwidth} bind def
-/tr {translate} bind def
-/tnt {dup dup currentrgbcolor
-  4 -2 roll dup 1 exch sub 3 -1 roll mul add
-  4 -2 roll dup 1 exch sub 3 -1 roll mul add
-  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
-  bind def
-/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
-  4 -2 roll mul srgb} bind def
-/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
-/$F2psEnd {$F2psEnteredState restore end} def
-
-$F2psBegin
-10 setmiterlimit
-0 slj 0 slc
- 0.06299 0.06299 sc
-%
-% Fig objects follow
-%
-% 
-% here starts figure with depth 50
-% Polyline
-0 slj
-0 slc
-7.500 slw
-n 1125 450 m 1350 450 l 1350 675 l 1125 675 l
- cp gs col0 s gr 
-% Polyline
-n 675 450 m 900 450 l 900 675 l 675 675 l
- cp gs col0 s gr 
-% Polyline
-n 900 450 m 1125 450 l 1125 675 l 900 675 l
- cp gs col0 s gr 
-% Polyline
-n 450 900 m 675 900 l 675 1125 l 450 1125 l
- cp gs col0 s gr 
-% Polyline
-n 675 900 m 900 900 l 900 1125 l 675 1125 l
- cp gs col0 s gr 
-% Polyline
-n 900 900 m 1125 900 l 1125 1125 l 900 1125 l
- cp gs col0 s gr 
-% Polyline
-n 1125 900 m 1350 900 l 1350 1125 l 1125 1125 l
- cp gs col0 s gr 
-% Polyline
-n 1350 900 m 1575 900 l 1575 1125 l 1350 1125 l
- cp gs col0 s gr 
-% Polyline
-n 1575 900 m 1800 900 l 1800 1125 l 1575 1125 l
- cp gs col0 s gr 
-% Polyline
-n 1800 900 m 2025 900 l 2025 1125 l 1800 1125 l
- cp gs col0 s gr 
-% Polyline
-n 2025 900 m 2250 900 l 2250 1125 l 2025 1125 l
- cp gs col0 s gr 
-% Polyline
-n 2250 900 m 2475 900 l 2475 1125 l 2250 1125 l
- cp gs col0 s gr 
-% Polyline
-n 2475 900 m 2700 900 l 2700 1125 l 2475 1125 l
- cp gs col0 s gr 
-% Polyline
- [60] 0 sd
-gs  clippath
-2201 881 m 2343 933 l 2364 876 l 2222 824 l 2222 824 l 2325 894 l 2201 881 l cp
-eoclip
-n 1350 540 m
- 2340 900 l gs col0 s gr gr
- [] 0 sd
-% arrowhead
-n 2201 881 m 2325 894 l 2222 824 l 2201 881 l  cp gs col7 1.00 shd ef gr  col0 s
-% Polyline
- [60] 0 sd
-gs  clippath
-1482 878 m 1623 933 l 1644 877 l 1503 822 l 1503 822 l 1605 894 l 1482 878 l cp
-eoclip
-n 1035 675 m
- 1620 900 l gs col0 s gr gr
- [] 0 sd
-% arrowhead
-n 1482 878 m 1605 894 l 1503 822 l 1482 878 l  cp gs col7 1.00 shd ef gr  col0 s
-% Polyline
- [60] 0 sd
-gs  clippath
-881 812 m 975 930 l 1022 892 l 928 774 l 928 774 l 980 887 l 881 812 l cp
-eoclip
-n 810 675 m
- 990 900 l gs col0 s gr gr
- [] 0 sd
-% arrowhead
-n 881 812 m 980 887 l 928 774 l 881 812 l  cp gs col7 1.00 shd ef gr  col0 s
-% Polyline
- [60] 0 sd
-gs  clippath
-510 764 m 510 915 l 570 915 l 570 764 l 570 764 l 540 884 l 510 764 l cp
-eoclip
-n 540 675 m
- 540 900 l gs col0 s gr gr
- [] 0 sd
-% arrowhead
-n 510 764 m 540 884 l 570 764 l 510 764 l  cp gs col7 1.00 shd ef gr  col0 s
-% Polyline
-n 450 450 m 675 450 l 675 675 l 450 675 l
- cp gs col0 s gr 
-/Times-Roman ff 190.50 scf sf
-495 630 m
-gs 1 -1 sc (1) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-720 630 m
-gs 1 -1 sc (3) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-945 630 m
-gs 1 -1 sc (6) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-1170 630 m
-gs 1 -1 sc (9) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-495 1080 m
-gs 1 -1 sc (B) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-720 1080 m
-gs 1 -1 sc (C) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-945 1080 m
-gs 1 -1 sc (A) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-1170 1080 m
-gs 1 -1 sc (C) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-1395 1080 m
-gs 1 -1 sc (D) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-1620 1080 m
-gs 1 -1 sc (A) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-1845 1080 m
-gs 1 -1 sc (B) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-2070 1080 m
-gs 1 -1 sc (D) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-2295 1080 m
-gs 1 -1 sc (B) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-2520 1080 m
-gs 1 -1 sc (C) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-225 675 m
-gs 1 -1 sc (V:) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-225 1125 m
-gs 1 -1 sc (E:) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-495 405 m
-gs 1 -1 sc (A) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-720 405 m
-gs 1 -1 sc (B) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-945 405 m
-gs 1 -1 sc (C) col0 sh gr
-/Times-Roman ff 190.50 scf sf
-1170 405 m
-gs 1 -1 sc (D) col0 sh gr
-% here ends figure;
-$F2psEnd
-rs
-showpage
-%%Trailer
-%EOF
diff --git a/3-grafy/sousedi.eps b/3-grafy/sousedi.eps
new file mode 100644 (file)
index 0000000..269b26d
--- /dev/null
@@ -0,0 +1,1396 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: cairo 1.8.10 (http://cairographics.org)
+%%CreationDate: Tue May 24 16:18:27 2011
+%%Pages: 1
+%%BoundingBox: 0 0 90 58
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%EndComments
+%%BeginProlog
+/cairo_eps_state save def
+/dict_count countdictstack def
+/op_count count 1 sub def
+userdict begin
+/q { gsave } bind def
+/Q { grestore } bind def
+/cm { 6 array astore concat } bind def
+/w { setlinewidth } bind def
+/J { setlinecap } bind def
+/j { setlinejoin } bind def
+/M { setmiterlimit } bind def
+/d { setdash } bind def
+/m { moveto } bind def
+/l { lineto } bind def
+/c { curveto } bind def
+/h { closepath } bind def
+/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
+      0 exch rlineto 0 rlineto closepath } bind def
+/S { stroke } bind def
+/f { fill } bind def
+/f* { eofill } bind def
+/B { fill stroke } bind def
+/B* { eofill stroke } bind def
+/n { newpath } bind def
+/W { clip } bind def
+/W* { eoclip } bind def
+/BT { } bind def
+/ET { } bind def
+/pdfmark where { pop globaldict /?pdfmark /exec load put }
+    { globaldict begin /?pdfmark /pop load def /pdfmark
+    /cleartomark load def end } ifelse
+/BDC { mark 3 1 roll /BDC pdfmark } bind def
+/EMC { mark /EMC pdfmark } bind def
+/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
+/Tj { show currentpoint cairo_store_point } bind def
+/TJ {
+  {
+    dup
+    type /stringtype eq
+    { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
+  } forall
+  currentpoint cairo_store_point
+} bind def
+/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
+    cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
+/Tf { pop /cairo_font exch def /cairo_font_matrix where
+      { pop cairo_selectfont } if } bind def
+/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
+      /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
+      /cairo_font where { pop cairo_selectfont } if } bind def
+/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
+      cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
+/g { setgray } bind def
+/rg { setrgbcolor } bind def
+/d1 { setcachedevice } bind def
+%%EndProlog
+%!PS-AdobeFont-1.0: NimbusRomNo9L-Regu 1.06
+%%Title: NimbusRomNo9L-Regu
+%Version: 1.06
+%%CreationDate: Thu Aug  2 13:14:49 2007
+%%Creator: frob
+%Copyright: Copyright (URW)++,Copyright 1999 by (URW)++ Design &
+%Copyright:  Development; Cyrillic glyphs added by Valek Filippov (C)
+%Copyright:  2001-2005
+% Generated by FontForge 20070723 (http://fontforge.sf.net/)
+%%EndComments
+
+FontDirectory/NimbusRomNo9L-Regu known{/NimbusRomNo9L-Regu findfont dup/UniqueID known pop false {dup
+/UniqueID get 5020931 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /f-0-0 def
+/FontBBox {-168 -281 1031 924 }readonly def
+                     
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+ /version (1.06) readonly def
+ /Notice (Copyright \050URW\051++,Copyright 1999 by \050URW\051++ Design & Development; Cyrillic glyphs added by Valek Filippov \050C\051 2001-2005) readonly def
+ /FullName (Nimbus Roman No9 L Regular) readonly def
+ /FamilyName (Nimbus Roman No9 L) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch false def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+end readonly def
+/Encoding 256 array
+0 1 255 {1 index exch /.notdef put} for
+dup 1 /one put
+dup 2 /three put
+dup 3 /four put
+dup 4 /five put
+dup 5 /seven put
+dup 9 /A put
+dup 6 /B put
+dup 7 /C put
+dup 8 /D put
+dup 11 /E put
+dup 10 /V put
+readonly def
+currentdict end
+currentfile eexec
+f983ef0097ece61cf3a79690d73bfb4b0027b850f3158905fdac1bc024d7276e0a12b7ddcede59
+e3601ab4509dfe0977ed5bf624ebc1f818c45f1350d41b052a72743accb053eb06ed043568d319
+6a30bed220227e2a15bacef508449221cf338a8666e92410a9aa91d5a31900a93c01ec21742cd1
+4dc46bffa111ce10b78ae01abaeba7f36cdf79a4733245c63f6d36234d6b0961f1ac295d617793
+1b9ed554bb5fc6741a63c493daabf03d753c7d2b8e8c01e3e280898f810da5985212c8c0bbdee4
+e8ab9b22bea83671c0460443ede9be044168f8ab53c69bc49ad71a0547df6f3447fc6ffd34e2d3
+9ed48de6bc2089b6b5552aa4085f6c1987df2caca5508fa11423e466bf458fecda5995f25f0324
+14e6f58c6c59ce2ffc8c211b06d42d5a7b8a72fa665c59275415182aa8381c14ac61c786471323
+36963a5eeed481f9b51f45d790f579fef6f6027eae46127239042d2b16b6d1361b86fa7dfd08bc
+82c364a6d545c39c36dead5411eb689b2f50c96fd178f942869a35f0f6891ba5b60ea8635b461f
+2046c2a875cd629a9ebd077d8e8fb197aa8af4470528a6f71daca21dec753c632d273cf515faa4
+de0ddf08d221ad58c716869dd0bebafbac5ac5ecd59d904d0e5945dffe802f30d4c3d18e64f593
+28924caf91832420f387cd6e5761c589c4280665c32eca518a60a0690bfda35df9911050e6cebc
+d48090f6237ee6070fe0a47be80820fb3c0200e22ddd432fa006c0a4687afa406cf2aa0d45e77c
+b2d5a436342baf07e35e65b72f2683cd2e1065b4b16cb42c4bd06c6d814975fc77063df25dab93
+459ceb04bfb4f66fd36d907428db57278b68a763f405b1156fcad7e27686b6c3908df3b3d83c76
+03ca5ebfaa2b9eabe8e6fb747b8ca1268d646f46dd5e6dc67435654dca97e30c71c4f463717063
+c5f1c6a85482f677271ee47383bb9cd3a11c7fbf5cf708c24fd1c879a2ffb67640865bc36d08e0
+898faf149794e9e4205bebcaaef0646103349eacaee5ceb5db05c87be2a4d6eb6a752b3bf41e00
+125f0f55bdd01e769c06bb93c67b95d3c02e25d76c78ed8c63a2f05cb7a85f1f7593e4bfe852ce
+6a7c07faf7171616a5a8bec8c453c2c3c22743132bc02c2f4a11de7e58e31f3734f94733b13d2c
+7278e41d6db7deb9214d00c66e3eda6680b9965718cb56615b3613bf2a19e37dabf09d1216dda5
+71e79c07a3accf8673702928cfdeecc81b2a0359b2f927c2815deb2a1a51ad21520c2d969f8c7f
+3c67631418badea64103c9777237f7418fa1e4c9034e3af0fc85fa63f6615f5ab8c473404fde7c
+b801cb443e03c4f3d52c1daf37bb0952873fe67392ee576dc91c291f148e2df4310325fdddf02e
+5499a2017bda7960ceeafb8a581caad7d1e87e63d85dc99eff45fd6b8c9e83296b0307a987daa9
+398547381beacf5338d38d8e008bb8327c990095f805ffef64490d4f1e9f89eddaf8d60e81af47
+79a7c386552c2ec1f2397b36992f8eb492c23bd50e967d9126aca191048973bbf708a9e6e0d742
+736dacf5b09159fecd6e5b679c0cc507f2f479c150e079fb13f7da493e8588d6834d7e4df9efce
+f21988e67b79f5eab2c00ec0335fbf5ab821c88024725ff83ee1708143489c69009fe16657e68d
+533037e0e7cee1d3b132e4ad03b876d12a04e52946be29a027e2dec925faf22db3c819a4978811
+75a07edcec18c28f2ab11c07aa2749e3e885f7dbadb8021fb24656c1c3acdb6232c3db1d353c1b
+0ab8e2f252ec70527aec582bf99d5ef1d4c43253012b070333d465a4039769428617614bdbc829
+0a7af5421dd3071e112d6b64f78d956923a530e3c0c1c4120d65ff13ac7cd54385577cdcf77d63
+ac2dcdb8e467609de84d142abf564b93a80e2abddeba49743424dfb6bb1ab386b87a7657aac296
+08f6156642c9b46f9efde1c4963cf919780124a63d6f86bcbbbe42db2800ae2a7a358774efedd4
+5c96c9816b046fe44ba12d853067c01deaba7d23500443a3530075e9d41d0cdc73a2f7d31ddab2
+ce734fcb918f9e27eb37352d5d4b42112b7748eca670880181d830ed35141bb7e7134a353726fc
+a3dbfb50e6027d821224dbeadb2d8909fabd711753f0712c71d7c4193257f33db3388db8cbceca
+89a0524843b46815d1baa04c3308c33ad99d4f4d490b34849cb91dfed06962dd67e62f0e2639af
+b9a9f3a33c59e317a9600a0cb01c2e6662d82e2b257f1f6c07fc7e2b0b973b74948aef6444f688
+3c1db3f518fef3274eb38a260eadc9a22bef425ca6360e099b6175575a4db1d3ce6bd22c56e81b
+a0a9b57448d847eae41816a59e0b7c6a93be20e3caaef6667920303aaa9be83cfb57f2d7dbd928
+9f94b9584a0596b2a49c06a582965019446870e6a7d6b1fc20d9b6dd0d9a6fcc3bae71f926dd71
+c9ba32dda0a065379d10d4ea820c649b306b09912ba9bfbcd90a5b33f753deaf16a6ae74d5d97c
+e3c2912587c6ca0022078ea689c3fb5363c993b7c7c255fa5de668e1094a881da5dd7384e8079b
+725b1fd175eff99d567c8680e565a17ced65952792a75c2d4b9d5d69b8f6d987a7be6da9e404c4
+21b41a7813223bf8246dfcbbd6fa0ba8b7ef1aa08b494642dd3941137e649d17f31b1f88214b99
+e6b34dca411dffbc3ea9299f675f3ae7129196dee244fc629001b03391a861e4d457be024a2838
+84a7463f97e378a96f3623f195a854913666475563f813a774ff0b2bc3436cf69d4bfb55282ae9
+3165088e1e2bd1ede8ae9f0ce65bcb4ec48bf06c5d17b78fc9f05489d648286bd61d7ebfd949d1
+94798119e95f438aa8a48f43c0f43d24c906b737c98f7a1527f949992fa07910d5c1ac8a0f7091
+8eaf52d45fe82b10cf5b560cd06df291a1793f9a355a2266e22a68dcf5d64d93d3699f0c2da9cc
+2b3777817ca130c41d9ccfd3e7f44dc831062b6c17388aaa6bbd48a22b13487f02908ccd6c5ac2
+6424fe97dd950b5e6e7168bf46ff87062cd352af50a81a7890f822d302a268be250971e6ee73bb
+4dd5effb630d0d50caa3260fa8fd2a2d0769dd483fd2e0d4cfdf3bec4a20af1b55979ac2178ffc
+4a2e162d98f61082b5bae7a5a60d8c042d97bb87abecef118ee66879710229d6aeaca50bef4ec8
+cf06e58fd3a63c5725c28b5ed9abdabde509d1c0c1a575fef23b9dcf8e403a4a3cc541e618d1fe
+1b119628a299eb83dbbfdaefae37d3638a4a74769fd219766efa01ebcc81a780106266b80f15c0
+1a51af1ce978184ecf65c60cb5b3f5d28cf6e62630198ad9ad1c32a244b1968ee962f61a3b49b7
+d13a0d9cb5694c291e72696c40f4dea8a00fde7c01f8b6a20d42ad93d71cd8d8aa207d123e5cc0
+bf86d8dcaea33672b45a2f9c0549c70a6681780a9a8c555b5a2913a27638e851d9a26c738051c5
+d51e643d5bc972c4d254bb9064b1a9a0c1fc0b903c3f823cda898450360ff79f9aa39b9f63f58b
+310fa0b487ad57bd5ac10185458b77a75ffe10103004fdb4b55b09b9c336b8e227ab44db4681a5
+15dc7bfb6c0a417d266732815b299412d0855664922d76d25211545e99b50c31b4757e63825dac
+ed9c08504af7e46fdbb1ee3c731c355712999949d55ce4a8c7e1e5e1b5d94659d2b93a6792188e
+9abf7f082a352f95115fde60b7e4098e064935272618e3ce37efa02620233ef48f1c12eabbafce
+286cc06a8d8f46462f5d6fbbf167bd30cb5ac44901030d03bdc02840f8839bdcff2d378c4fdc93
+0a30b765b5670cf81d762b465bd4737c9b00955758d32b7b2f80b942c018c6169cb98d9fb2424b
+23a3638cc270b82ba760a18534f8b27e18519f6f3aa73afa9e14d07e457e24c30485bacf933ac3
+a15f15c2347d04eeb30b5b441401d941bd01c148a6dc8420c6c38a7c97f02320f7771c180940ba
+28a7dbb6db8d49a3a03b863b08c2d383bb3ec558adff2953567537c0a185261f358631583344a1
+1e3b4423f60ee3f770476348674ac64df8f848d4d000eb6fd06a44d0320975a8eee85173e4d7e3
+9ec9db03a8ed20daed86d273ce5762a5d35d300f438e9070df37bc2c3f45d2848e638edf15fdb5
+fb9a0015993012c5b8277e4f92584d393531cfa0059a6531f8c9cbccb00ba73413eb4555bd30cc
+0fa8e414502447dd977bf5943db2f0a740efcec3fbaa039960f39302b719195650c5ffb637594b
+34f2f9681477258d010390c241fa41249fd5d57c310cb6dfdc9dfb0039d3a95486dbd4f45daec8
+997aa6661bf11eed2aba5cafd6ceb7f90a8ce42c7b215eab422bf1522bc47fb7d001ebfb76223f
+2471326d68d6fd5279ff5fd6ef5276bdcb4b1264381d165d31f039b19079561a2a2dc9b35562bc
+d336a90c26a055a92b70be2a20494b535bcc643e7f6c45c0b441cfa4300c7c4c30ba2ef8d6215b
+8da8945e544dd54a416412f4517280ef73dfb1a9a2390fbc863f64ef977ab4a4813bcb17ab2b74
+b95eb97028ce0c714f52ee9f28b403bb57ebc7fec24061e5cf24442126242a4b5a68a0fa55089b
+45d722a99e0a45ef6dd44e35adf911ced9ee958e8d313844ab95690451f710352d4c8ba639a65c
+05b74c6f4804149d60500c911878999f654a0fd0d7f50bb09e450960bc58fef8e386171d627d27
+955467f4687a461eb761837e03967a42fbf184ce21de728741313680519767f305c820e2fa0372
+4a1433c7a5262a45df14c33d8d5f88b3d7d6edf43fde8bdbd9462081a187a4514ce22c899d9a0f
+7a85b16457f0ce8dc4dd1e9073db73cc9852479ad04aae56d96648fd728e38de754fcbdb79dab5
+4945564ae229faa128a214335aa91e552e34bd83d8cf2d7f993ba85f3785957ce6d510ce754122
+d8ab98c5edb24361b663dfcd536c0e8fa6f8f1b592c3485025d9ca93950f6668d45adbd13c6080
+652a5abf36da54779f09dfdbc3d676045d6593a3b5fdfd247afb5f8598bfbacc85109dc162f584
+5bb10cc35962c69416a3e08cf90d80bbcc3e7327d090fb6093644e4664346cc132d26081c1d90a
+00cdf6ad438ff32acb23ba5615f432d266723e02f58e506c6c712c22965e01b17413cc9772df09
+86d37ceb16ab8c74815e5a2e9abf6a2174c7595ef44ddfbee56fd6d2ef863b4242f0b18ce448a3
+fb7fa0c196c6a2ba6946a98f2e5990c59efac14b8f1afc93cf67445bef35ad0d02999956b690e3
+2cce52671b118df8a4ade5ef0faf91c725c0d3d9a507cb96c1bdf2ed7ba88b286e10dce55717a7
+c7aefb7cb8f6ed79ee02a10fa81b0f166a5cc099337aea3ca0e3ae8c913786b7281f502d1671d3
+62f08ef104e22c14cb5b76633331786dc234becbf5065fdbbe4885078d43e18be29bad865b0ad8
+610decc2000b7094dd66e60ed379f4ec09fe62d6527bc0259b52c64c3350a0602a27ea6edbe5b3
+7e64677301f26e5424c4ec2227ebda1c2ec113b6f17fc736a945ad1ec770161fa135637e09971f
+7a86e8175a82a82e1627fa27cd1852e0544739665b43564495a9f6fa7e460a881698b7fcee0e8d
+8d31dff340f8847e11d53e276423f3cd3ca6cbd46feccce37891b7d01fa50f472924e42fba1a4c
+59e34c674bb5aef3af1b574b318525678ecf72020ec8db2a75da1b89e990fa6a0450b5ae0a4d87
+a0d5edc8c4b83b7c45af21cffd544b9e71b68999cf86ec685bd3de4acf886ff0ccdf9ccb662c92
+ef968b219843708bd979c308dfe8958ffa0d81b4ec770ac6c024fc80f4c1e3b526745195754a42
+eaac4b118aa0e5f9a3582a47bd21bf8ff0dce46bc2cea77f74a0701ee0792d50a03951821a2769
+e904e2ba8eb38b58a34380e6842a31a5432041585d6e5345df42b9f61688bb32506b8585e457ea
+527354244b9d1dfe6414c54379794bb53f75a594147e70a8a4fa5541e3de1c060d7f464d3e5f28
+86b9d1dc713086f50ee7239dc30edbc09c66dc474a4095d8523fc6ed58a4383d3c91239b818ad2
+e0bd1fc2949f874dcf2f8d32ccc1f19a6b6708f527681f87c252cd0e1f35c786d62a8b4560cf99
+ecd7d3302355237e9b236e91aa76c17a82513316afc2fe509ea03a0f79463ec4432e4bfeb70f60
+3adcb299a8d9998fc80c656366a15be322418c8de6f4b5953e170609fe61ea36c3b80dab055443
+e77e8232bceb0fe40fc3774c465e7ba2e867204895a939addda4c7f8baa794a682922580ecb60e
+1f019d6abd81e43e7901a45bbc8ad4c9bbe51cff7dac8ef9a584cb1a4bcceb089d9e255a50f086
+89cfb53ec006f39a8b54177e938e5cf853ca526df863c25093fe0f2f5404f71dcf9201c54ee93b
+edef0a6338d0854ec381d3570e481b00ed9b8b2cc643c0c78b4afe0d41d222e79e006660ec133d
+4a28d4a1117400842e0ffc4336104e1a28c1558a9d1d021ef26a883babe54cbf2f0d6646e4a270
+bc0aa7e0d3af3475c8a3f753ccd99326d74d5c7da9921b040427312c74c46eb4b68d97d798a6c3
+fd359e67c11207d8b10c2da5756507f2b0d4393f0d6f0a6bcb59fd36b31ed4f6befc12cce1bedd
+4143fa6bbf62b02feb004a630bf5322573ec2ad3dae6b969abdcc72d7322c72d54f1acbd5009d4
+0577eeae4e41ae0c9337d4bc98f11555aa1bdf48e7efbbf4841f29181555df6f2e45c014f954cd
+7a33a9d6ef8a5937eb9e2e0735e531e1271eb071e9203b643cc7b0e87903020ae27032cdd83338
+248fa24c7b9921e53d5fcd7b80540fcd5228cb26ccc01201f2130106faff96dfa9ff08de5e2e12
+d0110bf01f2e14562e1114cd3059322d16ac31b25deb911b4e1c3eedcfc792688981483021de41
+0ada3b3853ef43b6f1102bf6f10c1e4344d3ef4e36004b6acdc95d9c41bdbec1958501560080dc
+85bbce4bb5080bd1bde1be32cd52ea9a7c868ca3d01f7a838156da7035bcb781855f939539ea62
+eabae3d3d1e25c27e54aaa10bc74a5af5db40eddb60ef60b33d73acfdfcc31579a65b9f0fbb799
+e584a35fa33134a7122207d40dbd2ad29d613a646aefe020077b80d330d170f674950e877db760
+b4e252bcb1fe7f7dafb5f6eaea4e09a99a628621014013d52089cb721097dbd897d27d6717d53a
+92c1e11c903da5a5b1abeb1ecab75a03fd67f8a815157461f2933d39762f1f4598475ef113a0b5
+49574d320d4106cf45aac7d1bdfa6d88db48abdbf5d2d0df10f56001cbc5af1b3ded7cd411233a
+1d4ee7a727c4096df37376e220b32f06c16533df3e80be8bc8264a869676966418a183b4805e5f
+eb6bf898dd5169aaf084222fc6bad9e652d0927a18933ed9e577a0714ea7a05ae4aafa4a318488
+30d7ba321429e950ddbac048e8822caf7a036aa3f9e9b15b5e099cc05a9126e194f41b9c1dd893
+754fb5a1c276c583c00fc740279a658eb3612d62ddb153609f2208cb761d963da2a040ebe2b8e6
+235589709b65d32eb73775a77721248f6ac3999b3766c98aa313f98943ed567aec3f0ef2cca4ea
+c94e2b507fdce890b42ddee560d64e411e20943e16105f6438b749292eef7d79edeae660a6411f
+4845a851b09232031d8e3435a5ac79dd6b227a8722063c6dfeeb6ef0d3ec6ff1370eb04856c7e3
+ef3b2e29c54e7fbf7c5f73736b71029145375acd7e1bca48959e42de232b0b8acada48a82597f4
+668917c7f95984938037974ab763b132c9f71692da966de63f50191603be855c1062c4dbccd685
+579d76adfbaa7abfe3ea6bb0693a8e4ebe98e222b9dddc7b5c00caaa52ad4d2d275906e992f9e0
+5b608246414b3e944b2835d1a7a79cb5fa2f9b04edbf7fc84073fef6de04f4158fe121df4ce9f9
+a828cfe8e09a5c80141404cc220b2492565c5d3f24fdf03570ed0da8d729d7e8dba4dd98111d62
+0de366f47d61c1a538d89e0bc0a6dbceb6105a45e9e2ad4e64924abdf7c765b72921dc524e7b68
+7d2dd93db6c721db754360384a227ad94136b61fd0c9fc317a75f71b204ae0a1d12bfca52b12a6
+9c77a40028b1db87c7c276a37ec21a4093f304bd8e3b7f0aad86ce3b32ce1fe568beb0e813ffcc
+947f0a668fbefaaee7ff65cdc29d672cbfcb74712c3938b6418bf4855b615a7795153883a56058
+fbdbebcd65cada5d34a61d70cd617bb515057020d51d1371fbb261e63e6c23540cc9e698c72444
+e85512a3a8fbf302559e325df1768d6728be219a29034ca77d63df6f6c33d01b7f6aa1e57b215a
+e09a4afcfa3de019d248d658dc0cadba830983343b1f6a0fe0aa632cc9d8e63f708ce4913c5ee5
+54c63640e25ddf5f3b367e903158c2a8417cdb13fc06549f626022dc215e337a6c2340475fe7cb
+315f8731d69fe05517fcd1c2a38c8420b80c36a46f6325c15e51a9bc975ce2587501c1cb0e2aae
+d78b597281c3c3e7310cfff0e3c85765e40c1296c519bc5af94fcba2ce9921da3cfbb167e89208
+8b08a5ce362317abb13a9b56c345ca242f0d9c56aaec4f3697ced94b2756a36d46e220a9b019c7
+60b2bbada8cc2de32391dcaf69852e1dee5af96a005086494d4a3577c38789e9f85b61aed7e1f9
+101a34ff49f3aa8a56adcc26a4d95291ef9e30e7731a77bba5cba0cfa815c79668eb7be0e876db
+7b1cb4ec3b9b6b4a34a696234f6f3464517ed20118dd0816c060d65c25299de85eb82284f22e63
+e72ee85db0f0146f709624d03ba2fbd0e9a45b9630a1e1e51e77dc4957b683947d5123b3940858
+7da74d5762d9249ac57df97b9caab46531cd721c279f399582bf9c5053dd01cd1edd8d952d9ab8
+1af734cb3b071cc8eeb7c4a17eb93fa70328bd173e40cf598237fdf689fb6dcc1a7fe4a39989d3
+d07baf30c9238de48f3cdfb7b8083480c618c17f22ecbe03e17ae58d5a5302e66d1877977681a6
+4bed45e04377760fea6fee94f600c14f72828623e817cb7e3a77abfd02b599b1bf22246bb182e3
+5226f866443ac56d00f9a2f5a5d4e544b79a96d64225504bd6f495b4e66b953a9f73e61d097b78
+d2f352b4f6f9c5597928c8bcb5d025daa394e7ef44c3bb70752d48dedc9f3d23ef391875c2a1b5
+30cbf48cc805e58d6031f84f7c720d86f92d64a05860d0930d7ccac8fdae6fc1041391d7b72d5e
+c23d61b6c19f0070633fdce59227298d61d11551b6b6ae8351866f05e01bd28ff119bbab93dd3c
+f197130f33a60eaf5dc311a72eec2470a1f5b39b7aabf29adcb58605aeb866b17ce6792930c5e4
+5c2a0d591596c314cbb29a3e1db62fadffb71a0f483ead0dab78243e1b814f750eeb68dde418b6
+8579987a3f9eafbf822f2294cbe6cabc1964d60682e6e3eb568f46cbeb0d5340a11fff797e9be2
+ccce52a78f44a3eadb8836f6a05f4b5a2869e3bf9d3aa5ad4f5c84f6f213e4aaca4ace86f3d9af
+9f2aecb1786f9d7e5cecddd509806ab8fe48f3e078103bdad53f1aa7a1ca25fc9936d78cd6face
+27b8684baf1be330e9fc25cf66c40f22f2334343e76d05311c161bda86efb6ab83df042babe7a0
+6ba62fa4a1b6bee3496ea31276759782dab87c4b54acb5b9e8470a092420f85b6d0bea08c6894f
+0e5a7f35eaaad80404d0e5575a39e3726a7aec1955dfa1ecac8f6e13fc8ab66a7c0da4a116b4da
+009e7e281d007fdedf6a3a762aa2fe26baa2c138fafeb131911f7666297152fb0607de8547aab5
+0d0b0f2bab32dd9e786b204c9b24de509c4da30495b6720ac2e7cf2c0949c1f06ab488adfa3a23
+7101eb114a760a876f98ee3175f28fd4255528d1a69acb56d6bea042b9a60d195f2320a679ff52
+cc42b63c5c2f00caa693f24f0aecc8ed325d4d31a824cb11799d6816faf915555c1e80f2f429da
+b159fae3acb9643116a94fe53549e70d5ba3822ebf5feaf74739e4e40820028df966eb23ae7845
+153b6d4f7b38e1ecb62e88412ad2ad0fbb57416eec03ef4bf8be88665373bae70abe2b1cf93711
+a7442266b6aeba326c41f6958f98f9f1e2f003ebe609152e87a39847ff0757e1e1b9d9ba4a4079
+022e655eebd49475d051a15b56985862a382a57e5b14fe47d2296a902f7407f9cccf2d3a89e2e1
+bfe23beada43a639dd96700754adc3d3559fb459fb5bcc8dd9c7dd5343491ddfbb3a5337384068
+f087a72872ad5e1ba648fb3ef6ae5f33d44db04554d733d695923379d728d45886741420514425
+925792ee1c8098760d2832bb5907ed1d4869931806ffa3c7df99fd8a67b9ef5877c2fdd7e68e36
+42416a75061a2ea63087f9493895e51aedcdee51753dff830b2a3c0fed585198bf248d54c82e7b
+d9251166e344439260bcc5515a693bbf25c4bccad9e4abe7139460c81e334d81fe3741d9345285
+0928c577d8d553070ede10f93bc4c570ad001c65b820e957b42582fb3c27e568e2578ca7dd711d
+cab24b60c9a6ae98c997840fe854c664ae533d0f92fda0d06c94363b21856c795aa938b25f4f0f
+e139e0756e167fb5af5381a92d68df6c072e6ac00bc612165d43610f11f06a04461697a0fd90cc
+bb01c6ecbe840bd48dea7ec65fe35b0c1f7bc3a2d0cd22d577521cd643e2c9e361c08aa256350e
+cd928b65f780a78eee6f16092907d6842efc3f488f7276f50b435e4d44e14e24e3aec5ce35da36
+abe646d80633fef98e687e71499b5d6165891be53962254434acfd46e4e0c5c71b205e3d99fa2e
+021da55abef4143932e03f040b32a67b6bcc41ffca6f98607bc14eda3a1fde8db62c98be6ca9d4
+0ca81333341bf12262c632e614928a2beac93a95de5ddd14adbe77f8d22a04a44e7a653e292a6a
+329cb356fdf912c8a7000dface3f76dbbeeddba0b678076b40ff1f5dfe2f876b77646224b71666
+9e4bdd284cf9bda248b56ce8b5084386844fa4fc1602aa61bd000c1f857ec06292420ab6e5087d
+363cd5916312b691f3a5be51b3a2ab70633c18482c30cd0679e6a076ad97434781787b04642aec
+0605d4338a3d9785bddf5dbca9844db42742e36c5d0624f76fa067a34ba8b2af6b7f8ca5e1c2ae
+ee1911eb141ef20d20835cf085c8be26925b3a48b07caf2cc10791f6b901b4a1d13fe57614efca
+bb48e25e60f3417d14478ec7968821241392dec9a233b3956970c6df9db4946fc82a5afa2f9f42
+8c4351af7490319fee108306bcfd772d8b7bf3cd52e7fc86c8f80571796b13e9063b77e84f3bbf
+5421249b9e863a5544bac66f0a683823ee7064facb2df3175dd6700c07e30142e87c847f15f44c
+3e1660bea63c4b5c5d4891ccd48865059b4822cb8ec6a76eb90f760cb7168c466f7d16a6264d42
+3b9ec972510092504ca3c67588a4e2cfbb0fd13176649b1a4c795bfa772f49585603b95799664a
+2eb2cb1f3d2d6bcb6b46b1066b89c1278ccc389abe6ab60356e4f1940074dc11f71043c6c4438a
+ab313f8aae241b20898192e6f01ea6b19e1fcc802b57fbaa5c7497a59048136bc04f421980fc4f
+2f938b24f17968f9ae872e75c24ef0ed78d3575b1ee316c2829385e86d7f5c2ce73e3f83cf98ba
+0cf7c5c9a781d3e26a130bb340b62d648682cdb1cec0f08128054acee9fc810cb3571cc97bfe88
+d16875e054acf05579bdaba0348c46bfe2f6ca73f7a7a225bf9a6d9354bfa15d53f6d1c19ace9e
+af98a5c74cd983ebfdc608ccc92cff820cbbaa1e0e046ef963eaf961b1d388305a86b6dc304a37
+62b6e7f2d5beb908cc73e8030e9605093090c5261ccf3ea6496b88f0c048c6c08628a9dc0d3830
+37685611fddab2e8ff6492b03cecf23559d66406bb4b48babb6056f68d01002223606ef8ec3527
+45f6abbee7827731f30f909bf6c375513b21154e3489b4897d560535beba631c1b78533e434394
+ebe1bdf97e751abc41ec0480995af7c3bb9cbfaba3a85139790dac9b894505504c24c03b84b19e
+26e63f6949c353d72a8feabacba896b58ca5e1c2aeee1911e883d0b949d631d13a972d0eb877eb
+69d743d49866b318fddcdcf2ec97b5aea02a3be1064f9f5aca4b5c3dda2aafcb493b02ad003f00
+521247fdbd5f19cc22b64e687e934875e8903ab9d3a9020e613b5e9ee618d8b0557695f5cdea80
+3796a28c50cc8944f509788da6fc54433652bd966a27f7653fcbca31eae9b8db60b9a04a3896e9
+1dea876880c45a5868bebd934c4532334a69112fcaca803d774c5e1d01dab6cabb68729a5c5055
+b6c15f2840207c82aecdf910cacef518c514d8fbc1e93253a9256c34a5211fae935a10a7524fa9
+0823cefee811cb29333ab7e12ce04b67c8b2bc53f6b9bc8b796d2532988b41207f5a57eb76ad2c
+7737a66cbd32cec38b59988ec6233329a2b1d9587c729cf1e6df63a016e3f493558cbcfbb63ed1
+3a629a163a7a871e0eb49b4a575186507fb6eff4b361719b43e278d44320b723392e3f9f76b8fc
+9b5e5e2a138f523b253dce1ab8ace2adbaaefb0955169e3da2614f93cc04b117c2d3d810d4914b
+8af9a5dd39b8a71f5b257a79d3de97e3b5db6efde2c9e9bff343cd81c64d8bce65e50bad074048
+0cb40d65bf919b7fa2358dee3f542d813c901577cc263a5060376bef699d2053cb3a4029ffb949
+7706044bd059bc088330dbea582f3885e62d21cf3d8d6ddb71415e2125e099e370879b537e40f7
+1b2937f917a612e49069b3ba6b8c2360af00c6606f129da0784efd24461bd360d2d3a2cf4e0abb
+247e1e75c50612f7461a55a99726d521a57007624900bbb8d1ac63fca7a33ce20c97aa3d34bb90
+f4c558f69233dc9b54bfdf6d9002332871b1e9437a2e7c81f7e9dcb158dfe918189117726aef85
+cdd22a8e99ff877d6d555dceb7808f2420e3c9e9a3954c90c7a98338f962cd1669daccbec9262c
+1e9f8f50ee38aeb7b58ef34a68cdbca54795f83711c6911f0728fb73b1c2df58fadaa277875824
+1d740646487e90627af9a7385bdaab8a283bd61972caff17f9355b3dfd2d678366625fffb2365a
+cceb89d8538c5ac51cfc78549b57dfe1580fd6ca889f0f112f18f8926049598b93fa87b131766a
+95cf9e7fbb2ed66ff04a85c0e2ca89bb70cdeddcaf259a1e7c3455c98edfbc8db6bb326d4053c7
+fc59b42b4d95d4d518bba44ee9341922caa4a6b1076b5076bccdacf0046027231c2a64c1f53f94
+dc215efe1fe39a7d7826290289b684d262f3f8282eb89065edbc11bf6a4100c6aee3a5c7fd9b2c
+acd39369a512d05cf9d7d56ae2576d3502691cf7df2d60bcf2f42631a399665ed361c7df044853
+d514cf497f764a4037cdf75053c1d2665c643e53e9b1af63230ad782e40dbfb96fd97d509f46e9
+dd7dabbb066949a02c4e3b0e60d4433e74367b17d83e7bb5a9a69adc8a683a2610db6eec6d1d59
+387a789eb1909ce126caf1fee17922ddcfb6109d6a9f69fc7147d6f80644dad55da20c484eec0c
+4da206176726a993866edc659c7fdd2eaf01fce28a4efeafdf138b03a7fa9c0212c334ce28d96a
+021b88cf4a7c02d28f6f6b5572d0c76674fb25b5c822950233f7fc40550bd56a9947413cdb022e
+579a55405e8c7dddd29d570ab15fff400124ee7c8370b7adbb1fd6c6a8ad9978d9fbbd72ba5370
+a7946074af8d0e23163bd94e7a08d50778a5127592484975ed2bc4f15651a7bda3d2cdba9f4c60
+2e25a5e9ff521c76d11ead82c76f627a97a30a404a6b949333624ac369aea0c6a3010fb206fc42
+ad1b381a743d28d12c6ffaf87b73a1b5c45b19feefa65beaaaa4fb47fbed955cbd6676a0d66dbd
+9042da2061960bc5c681533931730fadb9714718314a1b1430d4e9bd3c6faa72805d6ec5f45a02
+25ed905d9d95b9fad0e6141de2ec85c9eb381dffbb27d28d337ce77206e45cfa1f38c1ae394645
+3ba2bc243168c39ade170ae5fdd179d8129d8c13d0f39af7288dfe54a51cd684dd23b82e80c5c7
+8220cfacfc8f893e32aa1e47a0894cd7e3bb6af701e71a8a07a3c3ba80fab18c7e376b747f197c
+1a3a1f1b2d566e5ce8065f679119f27131d06aa79181742aff68ba4f8832a4de2bb999f2ed8611
+77a083d1a1d297ce4ad6170ef2b7704c68df3612fd625cd34ce19140dd9aa4c57ccc60da6b88be
+7b40d1a22f1e83ca5246537a6b090a6153101315a509eb9f39b3512295c669411d14c90eb2dcad
+7e8dc9b3c1f174f5cce666c84dda7de146bf300f4d0a4098809a845e6a771f180872d18f48b474
+53117d866ed494196f0c6f84305df4e2bbd1868c6a1e92870da7d8d14b286d71d2a5be4aa42649
+64c05dec546dc0722994a326581cf1b4dabfcc1060cf072d79559b316b818ed7d2205ace22bb34
+cebd19934a55ed8a634d55faf25a3e226271c826e5ff825b8a1648c6e7491769f42f5f0757ec77
+ce2b7c46c99b85e899241c75a1d77ae9cd36b33605916e357bdd9638c09dc2604265d72b870e39
+bd550c41a5565f015c2bdbe0299e0ca1b8fc7fda71d0f0669cd6136ed66910a4c6ec12999bbab0
+02791e2651a2cafa52e932a595183e68db4a20a355c38850ef8a01dbb7a704dca24cd8c1385273
+a4ecca11eaa6789d5d447e2fdad5a347428000e45517a3215daeb02c2e3cbee053ffa227fd6a13
+a5d94492e934cd1c1c06276dc96a923ee5546f3f73a13b9d02e1f0b52519d2db901a29fb2fa1db
+1e584d072da6d04072d53f8ad1ea23e9db5a309dac737c05b7cb3d1033f086487194d89a34384e
+d4151892c757d5ce7e9082069bf2b9f75106cca90e75b245d9a124cc0c86c3fcf051055c55d01f
+49a8c2fcdd5050214e76604babe23ff62e75fca072d358b2ba74e02030235d715872eaa472acd0
+16b502fe8cc362833fcbe17dd19f81b2125f91c8ffb294f850bd82e25b1c684cfff7f2151df018
+5f72b3dfd6b99bf18f27dcaa97f910a573bb9165265bcae4217f702f0898d239a79740384d09cd
+8fcdc5fb7e4b2ee4d0744dcb42373fda688cac30b79f90c2984e95892f8ab2246012cca9aaeddc
+541afb970603a8dd560065402bd298e2d52bd57e75f08edf66b627b992cb430e1d335fe24670c9
+97835457419caaac6292699efe4439389ec9a25555ef5e6d275325886f28f8b4b958259c398eae
+666e3afb25512749f002e1148bfdd03e877d6fa5be869cd6915655bf86a9a5e32c8b2cbdc068ef
+e9c1b3f203f5d8acb7a8160564d89ed2370fdbd15f910289fa4a0bf6881ce0b4112c48ea1da297
+4bb4cc54f9c49d8b4a36350e4c81d98048832d66542eda4b50f95ab5df23a71731265cbb011085
+0159e6cc25181ce1f11a41ff52fbf0a3ff5d8e4f07f9912bfb99dbb010e78dd13e371e3e4c5071
+08ec02a41ae9357bb958351952f58ccd9503f30eadf2050b71a79d626ab5e6b7c378e954640ba6
+bcd84bb21909335b962bbc6539625b7925fbd5ec0ac0ec175754b2b77f64db973ada6d1d1446c2
+43a78ae13408f8d49ffbbeea2a08de617e64369511cc1700423e85d5f30a46b31c47834c7d5d40
+f8631717124d2437e0589f5e3afd749939bad15b1df9dddfdf674d1b0beadfe2b7d651b09faddb
+25664aab69118ed79d40a2bf7a476be87ca1d1ab125d2e706ca2416a6961ffd3e15ba209e9add4
+0e2c158167c6056fc3f2a110223eae59468a84bb36478855d76cd3e8d71ec1886fabddeb99b3ca
+d8db0549a90bb07f1d98884881e11ab9f1cc61d0976311e44f49b3b5e105d7f599caf2c2f8d666
+190460816997bfeaa50df080a2f81fe7226f6720890d7e8f26a527005d27adf863bce450f0245f
+e4403f8700e951ee476e74cc8398bff88df3cd9b962a65f8e0bffa011270d15aa6aa721f747657
+15a41c3a76694ecb340caa78ce0b13629b96aa542bcb0a74b8b6aae07cca7db485267531e0f850
+989a181c92c5245695e407c55ae387134f03f680b364932404fe0fffcb2f47af836e1672687daa
+98c7e7ba5ea1a04e90c0777f71643993d17b5f5f4fb264fcc9a0bb561f52cbd16f8122a624d8d0
+bd74d7271ad0063b79bbd12504ad946ed45c4031441c4ec2fcb8f10c3e3b60b4207dd1752df69b
+7947afc113b823df518fb28e189884f2cce516a9016738e0751fa7e79a9d4fef6f61cf1eea988b
+f14a7ddcc21f34cbe80de64140df590f683e02c5dfaf5ace30b0c0916e420d3a98ec11b3eabee7
+6b8f11c73397a0e87a3a825b26c186721fd866a1c7021cdb2d27a88e8bff0d46bfe8a5678e8551
+941b6425f826c6ced1363691b7f6b9647887fda7cefef6dbf60dd648a764b9ddc59c6afc460af1
+6c2f2b848121924abf4fbd5568f7b439c565f75e3f384644def4162689a4e66686049683186cc1
+5763a9af8f56ce5eb781c8c269359114e9d71f432290bc07278b799f5a0f73eaed95957cd91efe
+46d01a0e23aaf07104a626401f96f39b153ee7a6ead32ae761d2026262a445611c7f985411cc1e
+2a04fda80d1c7aa144223601321f145466c033bb6857d45cb45ab9857d2b3d84564e0ded1d0682
+8dce13d4ffb757607f302f134bb403429cdc0788f4aa2e1eb637170d4d6483b039ef9c2c397740
+f2460c68b9cf6dea9816a86b3ca72c381dcf8b7422572fbbb3f37e804934ffa3ef4a1695f38979
+79e496316c1f1c191d0d9a769f7939b676a24e4e3d0d01341a77f5f142b39b36a8f70ab70ba56c
+6691bb9b5049cb6a4504f7e9b99452483bc41b415182f40f510c4e017b7c5b1708fdecbac9e163
+4d9e48e35df1b397dc9933c4829076e0908328ea88fca6e3640e617a6f969a725240cf2c3e5289
+953cb37c6e405b6eb35137e28f1ea1564f1ec6f3c4155e02815e36fb783e94768b812fc158bcd4
+7eb5006a4a643f7121edddfec4e1b245534436ce86ea59ce6f433f335ecf1169c9998cf110f9a8
+b388fd67d78a0c21e9cb6267ef13e1cfcf2d46328ff7d602b3cda255d8491e562b682927cfbf61
+8302ac8a798e9a820e20864ea8411bbc0d62479fe454187ec7aac472e857c7c610ee2a4cdae12d
+494fd11a621d5784661cdd3f1845446eeb72bd5cf45b79d85210647015409326d0303df1eac4a4
+37973a55968eba1d4b6243a9b70551f3474014dcb8b79269ac43e028b9d311239195b682250f00
+9c5e8158d68f71f943a808fd6bd8f1f59ab4719def0c320226de0786bf33a2f9d2613e709fc8c0
+f634cababb7b430741af84169c5d1ae52a96a61b51305b75bd1f43391725efe0f2c66827fb1807
+e2ebb95cb9908cf8398e921cf653e16786f8f92da938ab5850bc2722a3537ac19a2708b6321f88
+1e98b4c2f658c59636777ff1caf1fd646f7dd1fbd1033e3586ca34cedf2e7cfaa02e26ccd1364e
+0b7d1a8be1c409b27118f8364096934d087ebb2560e5a5e90050853317185e95a7c2542aee0144
+6cdea9ee9d2d351469e8ffa0b17941b4c73fa310aea78cb3d2e0eee24f96df41cbd6c21c53d5c9
+b29d95b3b4c5e45e45c97f6f6c01f4876077d10a511bf3bf93207bef3438f3fb5a606fd7ab479a
+f0a512b890193ccba5e698a6d227a123811d47a6af8c99d610b23102836127b4cf4f93bd559c83
+cde791e14a1b635326eb72f3a0d8f7d7a4e37a9b97377bde17a52a09c143145abb75e9da80c96b
+c892eb43f680319da302aa75a053d631f7f03e0ce6ffd4f19952e4160a45ac4ec2a3b6891d0fb3
+1dbd4191b2946d5b1352397bc54b157bedeef04d2e06c09308ff76b12e80767f221f6b31a92f2d
+039523c1224a946b868f9ab139e7a9e7f540841ad97a31791899f585db87b1eda70818b70a2184
+a295d9dbaa50bc9fc8cba83a30b03bc1db36ef60b3ef59795693343325a0d07904b47db3bdb247
+b58605068367ae8324e8da87aa538d0397c83cb855fcb09db190cfd0c29a572cab9b1ff7dca7e3
+5c0094b487892425c63c09d85a4e0ea8b050dba0275285dae071bc623e13c6cf937cb46aa847b6
+179ddf5ba4eb4d6229c413802ac069379392d74a6e87188510250128639aa4d1b5072c12746545
+bfec081e56c697f39c2f11bad5dbc4faf80cb1112329a103da1f842a900602754362a2208591d2
+c3a1530cab8a48f2f63ff672b098bf71196b775c4ab39e63365811ad034f87b778bfecbb3f8a14
+4a1afb91c22e9c96cb12426e38bcc3c78ef0034c5bca084f21560f713e704d5a9a8a0af2c184ae
+cf1a3e9dec3bc638ee7a49acdb394cbbc16c8d8d4e15c0608395a9943f2dd64b400a83690310bf
+2ef3a979e4c7b4bea87d0b1a70f9cda12a6717ce9e01ed863a37b297acde06c32e5b8584ad0153
+74be3b97737dec8d7f3d549b735242a8df17256fe24bde4391a08d3e34061f97ce7f002c36a408
+f3a2d60072f7d57121ea52cea26e5df9ec1b523757f6ae29273eef3c8ac2fec3b92746e8ac0c04
+2b8c2e270d744b24606019a0692bc7c507bab3555b26557c8385906de50ea638f7ba5953bdd6a2
+bcda13031567a1d3668be5f841c39d1a87e974fe271b838893322cf26f6d54245a10f24abdca42
+4fcb439d517f9c8fd76e98d69edd67a699a0a4b1b07dc58f88f1605c5aafb1c09ae018a1bba38f
+181e2090b06cb8429e2cef1de02e119e92d0e49663a574a2b5dc0824db92b6bf6cbdebd978a70e
+297a70422ce6379a53bd8a5a69b6a484523b0cc51ae61e60a09262425c9a4029575d34da0ca127
+bd4b46e063b23abc6260d092fc663f5b6075d28b255582847195f4dd09c2306aafd4699df814c6
+62e328eebb75bfe991d82919a96f08f6f5f52c89a8c5f7f4cd68a17eb811f343f487965003ba5d
+782dd6781463c359218f5268c9a288e3ca0751b950ca43b36014ea8e2ddf17a42c766a5973f855
+141b237df5df3d73ba6fa4be1af75df4268102cb0a9458f22010616cc101b8eddf6ce870e720c3
+f3ddb4c3c518ede986c92ab11f0562c7722f59c47b588f189a2937b6254bbad5754adf5d3023ed
+497541c57e8ff810bece918ba3ba1fe68b7323e5ab76071dbdef556a83b6dc816b0e01f8965f55
+4602989860b096e996fd516eed4b684ef90ae3258e3cab0f4719d0c3b184e4743e0cda74b2fd94
+7f63822d39b03063bdd6ce4ac99f9db9965171ff22f317ead878f10350cc0488352578eced0d24
+dec8f8441d0a19efc9ca35be670269ca4c677af5f0cc81333957bb1e1a314c3183b3ebb1ab16c0
+de4bd0456d00f921db695c5e87d71add662551a7bd6fc76d57a6345beb8557540141dd12d2a827
+9ab11072021e4776b14f7345ed6dbdd37bf728e56482114dd7cc1ea29f6baf6484faff97e25bec
+43f029644e0019f07fa901e8967a14f6f01a4d2ff12b7bbc1875f8c86005347072c59e17db3f7a
+c65c642f77d8c4203897cbe2dd1cffae3971568310b0c79415dc783abe7c1de5bede6696b97d7e
+89b1f4e3d7dabc89af2164808b50380483fffa5ce9e569e850e209a8ab856960f7588e6392fc18
+7987360663ed8073f00446138407ebda2f6525d7c275131537572ed8008c31c93008bb2aa43b06
+017ca6f516d9335ea8f8d025c855f08306c9e0616c674ca5960fb04d0bddccba3dd14ac4c8c748
+6f367c16cbb89ebce3aebe1acdad637e14f8afb20a76e0fdb5644b4be8a1966327daf824a0ffe7
+beb6605e5903f898268a2779dc472cc0113e27d40903a2d7e5e8774cd33dec122afe13b4eefed1
+15eca90fecb3d435499d35a59eb97569a023c014e7cc24a809c27fe2bead4bc7b9fda937969387
+d82689119bb8567562db6bae4163af02ef1ae190f1c67762a8370e3d0113f075df38903f572ccd
+a10e3dc034f20209318cc3f90592022c6ae04a9f88c32cd9916cd6150697ffe3c16937cea1c949
+af50e42b492ae0966d5dc68dca400b1fe7795760e4b20ad835243df7b68e47ac505246c151b2e0
+4e291ee8f477a85c1c32545de433e0f48654a52788b2e841f0256a91a59e3169bd8fbe932f0b2d
+00821f57c31b2cbbdaac6e85ee9390c42c12c9388c4c9a6f581faa640552827d972962d53700e2
+c3900316e47a26b2e2c1877d5635e50c9603cd2140f45196a9b31cfc2ae1a2957e0b0d56a6b195
+c2950c60c9a435fff9a707e8da83426ba8c1ce3e0b2890d255aca598ce65a17bd377cb8918ae76
+4721af852399414a0045504ecc9573ac94ee56a5d3f3d56928702fe676e70e47b6b19d83ac19b4
+687f352dba807e1ceff4c3a789e1467125dc747be988b684d7cbd6b0aff783697aadc5e9bab5a8
+bdb1e296511a4e9bd0ecd85b80344d57bcce2accbcb3c2dcf4972e5a4a42446fa34f89ed1837ef
+8e302cc35b8fb58275ad8b86e4e2c88c8362dd1c52b310f0a2cc89c048fec738f2a9fa4b1c0c4b
+a97d0c2a76ac25d74bf760793686d2ac6dcfdea15864e73339c9c22cecd0ca998062c949a438bb
+9bf1cfc4b04f79c53b4bdb3bfccb82e636b61bddcde3c7f017af07691a3b3d10a22d325342496b
+4d9103ca65128f9de563d88f981eb6dc94585475986267e5389ad32e960d5b1652dd08e0dc7b2c
+50f200d5facb6a9b0a113aceae5a69a437182878467d18e14df81f4091362a9c93d5a3fba31eb7
+816888826930854328c9ebb4a41ea584cf2d21b7fd132735b2a66d494cb31bce89999d8ce24f7d
+64e77cf58d522f78b0127e0d544aa18698cf1cca45f05a28a12c0aabb668b9403c44deafa91e18
+fbc5e7694e88be4550106414764553064a55fcc16dca18147bb2331da489df133da705aac69dac
+9107a418f686dd27656c6b679dfc327765554bc30345d79e3504ed4623b1db4a693e8388f9bab0
+01d5f9da84fa530b8c3e306e210738463cf5e497b60c63b4b8831b5143ba317f637bddd9114cc0
+34d12e749e4883e39ff433f53314aec22a2023afd261c420b5550b1db55a525838d09ad6352cf7
+0c280e0cb65699e6b3f4ab7e650489918e68dd5219f3e20418e6ba77b07f488ccf955c73b7de0a
+18083d0b1c4496607f32826d4aa98965b8d22a9ea714a50a832d84278a9ce756a625697eefe344
+f7665d5f14cb1ac9f827309125af67cb75583ae6db39b480565fc71a70691dc01a69860e393c9c
+bbcde129dbf5b79a0561a1787b6aafaccc40d768dee46159f0995c78613c8972a98f61ab77b55b
+84f9ab0557eec63dd272ab0742c982c2c3f942191f230f371fa6b0a5a39b0be7214c83497962c3
+7259923992da457be4764fdd0bbccfc45e6f692b2b1efcd4a73cce9ccfb97c9541da8c5c8f24c3
+ae7b51650dd97083f1535b46eca4037488a6fc19aaa54c49f6f0b64ab63ec32cc9f233d8f920bb
+80f42154793566e229e32dc75b43ba4e951f53d733841c68473c143fdd94630c43039c38888f03
+462f7d40faad9b51373e4e829dd5c3b6b1397242a49a6573b02db77e1d34173aaacece4ca687da
+702d37855e9bd2f84f0e1339008a3ccad2763a5e2680b25d047ce722735406143aa9e08bfb53e9
+3a3e1f83cc9140ba35f5454f5b6991e29dfcacc972eba8d717968b4da7f0addba6dc3a902357d0
+0f813e49030bf707fab995b10e3b6a07403dd7c02a944e1bfdef5a013688082a120346ab81e636
+cd8862de39d8808f5323591c6ccb2b0868996b8a54d245f60dac4695832d953ae7d54e2e2f08f9
+3124bd64edf780c3c7e93efcb87c7a974fe8405dbe5f2f64f168b93fbb1cf8f4358b68b6bfbb6d
+c21e4a202b61825a785fbe59e846ebd6893ee1d4f26bcfba9b1fe209c5f74c458bda2441a9f48a
+86059a0af3dde8de83133ffad295dfbcbb21e026953949028a6b799ceaa211a83dd2eca7d9340d
+08177da0c3ef7327e832ae703cbbf1831aa563b6d8d882c0942c94290316750f761f923582e6fd
+fe49e70e39fc08c247c2450997c6636def6469d236c37bbd245fc3241e86af2f253fe4fb45ec63
+3d72f1a5186f44ba82fa255e7a51746fc85e9b1d817c9b2b323971d4433e7436377a3a42b115cb
+92194e378dc098e664d87939bd2a99fb4f329405e7d9bb1d29f2a535971edeb19281c5432d61f2
+f1437b3cbbb22b8171385f752721620db180142b1748cff3eaaf5e954ea825622237a10f391cba
+573512f0a4abbbb358c99f62b0eeea2eae31dbaa343545fc766144223c1cc6e4ce98e1bde9fce0
+f94fed6596a5985ea2e86a77ac6f4922cc21bd916b1bfa3cfb370231d9b6f13c89ad60ef687620
+6529808f0164c6155f4e7134be594b65d76a6562bc0ad2dac57265b10c61e750bcf683e7e2fe91
+51d7ab1315e9068c032ea11909b00862126e0315f375e3976f4a62b403eced0b33a9022072655e
+cb439bfc22e1039da8f12967c9a597855474b3e7e6a9d3950f701cc10075045d0c67e537c0bd61
+bb16a18d25b4cb0250e80d494d8e5807bdff71918df8d8ab19d68db8499320fe11b2a16adf4c7f
+6d99b81ace9e44268b795b293caa58a3c0ead908f4d83d5fd640739e1f09d5c6809038545dc083
+25bbcdfc3beacb013f42744251b4a5f833d152b5c4397872ed1e0eca6611029b236f55afdb456a
+e68abf3b1fbb19987bdfe9d6a94ce602c9dbaff952e9bac6071caba2392a9c90ffa2bd45e805f3
+4b93fcc9b6283788bc2d28a26f9fd48481b0b8843277ab75e35fb75bc09df9cfb48500f2269c78
+3babbbcbe50f0743745033e903863c24a7f34d001c171e940b8337459ae77fc1f75c64a43c9c59
+8e805e55d79c954243e49e2d7faf8df04268833ba03ec63259bb6fb16a107c9b86748a47a2c63e
+73e008b91248d7c626a9bb4a46a0ff7cc6b6e646bb4153fdf97b486b183e16168a0cfb11610d40
+62e3b392d2cd315269deb9f8af70ad7f40f012946dd6b35f0a9e1e42d20875a6251813ce12b762
+0d9e936c51c3bbfbae1e813be8ee4fc8e59e021016a3ae46fe3e9e1d2f2969f0b9741dc347d2c2
+b30e1357be9cb67cbc0f28496c63e4ac27852da64abdb26319009b54dd1e3441cb94438e929359
+3279a68145d13aa5728233ab1aaee370ea9d3f6fb2e660b6e81234db67462a7bd9dc7d5a096a27
+e49adc7644336d42e17f72e5d4ae26386c408b232b495409afce46ec0b079d2ace296665a587d3
+2482b903e093f21c60763d27c1203062685eabfc7fcfefa45f58235ae7166ec1c6791564b46a46
+6236f0f4f5ca3128f504642cfd43087a04ba0c2d4c4bc01ed743253cb9ca5314fdd187b4cb7d4c
+71476a07e66cef10819e7bbddbd59ba237cdff874a28814a01dff1ac1977f6b1a617f5e1149821
+6351cdcaf05ab723a1b2c3091d836b0116f86fe277ae156c944338b077c5f0906a77e8d5df0c5b
+ff35f8a2ab67b2bb03ec5328708a1bf28565eaa7746f76db8997b17d1c2e1758a5b6c86e44d459
+7260aa1708b258e175bdffb8cbc48d5f896d11a91fd72fdc60587c657b4e1ceb70bc1215de431e
+b82884916126057cb7036bc110b3109181679b80295eb03272915ddfcbb59703ccc55d02579b8c
+8bd76459801747b196d84556c5799566db79acbff46fe69bb209a2d6857d7c042f50546a7c8987
+7ae16b68e8007da8e76b97ccd0c91a7efc0ea0dec74850c00876d0bc4f0043d348b72b421b65e0
+1e42ab0d74158620ca2ec6e8d48134f2eb771306dfb8454f8ba1291accceaf267ee0a8d8ec8043
+0f9f84421853a61dffbd122ee2a7a74d1b6769b0c95745075a86a6b27d65fceb8e52aecdd9ce9e
+2bf18c7ad10f52e354f0ba788ac382497dab70698f205276dc4a015d874299e2ee01599f5749f5
+fd07bc969fc293cbdf7584cc8213acb6af903489ab5a877c304b74bfab8621e3dd17123b1df2c5
+d154f2da9d4ecdbc04838badf9113292e7eb5d7247d67938ef7712166dbf49762628126e974503
+0171081e5c94a283f2c3b62aef766262a6cc2f4fa8f3af77b782dc7a34c602d0f73a09ceab1f95
+b5c6a7023f9b8d2f9a1d322f8016bff20be9b1ca3542fdfdcea667d31ccf1d47117c01d70565b1
+675da33cc6d9d6b9e276699c8130ee883aa11255f1b91fc64b4646020f583dee0de828d2d8db9f
+ac3f8b9e76b744bea5948af8103db096641e253803e77bca54543e6c3c2de149887657c7015ebb
+135a74905a8447d6f933e1eeb3b34b4a40ed658c53d493b4138611002fe7e928296853f9208b50
+accd1a7f81350f7d1631f3ffafb188cf71e32354f8ed963b8bf87dc9ca5cedebecb581a2473351
+ab8465f9654172b253e923d6e4f02ac96d0127583c88bda7e4d8f38d89877323fc108aa48b64aa
+d12e2547f722ec1761735f1c062ef5046d9a5b7a0c017a1f0f2b7666090d58bb202f4259cad572
+e92821903a6bdab437507983b4f3e713b1f93646a1076a7b0c540999429df6ee345312a596bb7e
+9eb7d8e6d93d9365063ac2160d6800fa73d978e0432bc088934913c79209a4456459434c8c92ad
+ba54020e30950ac924a4470c68a59ce1743d38225d5f1098e2c358e55c649acebd39faae26f58c
+feea8b256a28ba358a9c467d7a83de016be16f62182295336fc0d6688e2517227eb22dff00d790
+5117bdd0effe8e63c7ee1a84a1cc10f75e16848553cf983ed809212e64386afd784df6a8cb9e07
+3c548341a957ddd557cfe418dcbff8ca16eb948613a24aface9c455a33cbfe7d13f68ae4ce5711
+5c86f37c3bf3aa17a6a3c0d0233bd0b05ddc8e8e53c96e282571569bb3e9f893376ae4c639609d
+34f16e12c6fd2489d86b8aa7aa0b278f8a01c7489ef0a956e5790b65eedcc5cdf4692db6669607
+1d422ce5d6e697321fe6384b23f746bea71f25870ed15ec74bc0ae9b724520ac4d6a008ddd561f
+78d7fc8e3fc41b1e5315b36847cf0c3901379810521dc2cd1d85390a0383bfe780e23bb321da54
+7f134d18fe1f396331d0464dcb1c85527e330e3d2acf8bc20b2fe0eb7dcc2b2fab0e45b310ad8c
+11feba0379753d626d113ec765cd393519b87843b9d8ce643099c260a0759aa24af3af198492a6
+76f6b639809e47efb4a4d72c6ffaf8a02f36a822df49c8e0182455c884268d52a082831e4152ec
+9b7c5a80518ee0f489d7391a57018904d0d481d1a1d4f2dab9a4f6bb8f03be7225981770457924
+b08bb03835b688b7b9e1d7976a2d80ccd06059ca058d5d5b292a271029e3285854498f736738cd
+221bfd7ce1638f9890eb2545cb6da6306c89d289a05c06e93b75c6ea39c25decd54933d2fd96ae
+f4c713e5dad8d8e688ef05765442eae1a775affba5c9f38903bd17d96beda8093da3c0eca054cc
+6cc54e728be33c16a4cadd1dfc720ce6ab86535c7cb519b75fe9f3c1536a76d7cf66e07db08cba
+811ee316214d14c0ce8c639148e6ab844d745196aaf73f063fcaf82a9d6d9f2965cc9ed98665ed
+ad0a2b7b7d799ee69d78f6e30386c7073a6e046da695e4f1ac61ebafb71d4a23a296c4e1a1ea6c
+ce8058b0a09937e41a1fad23d1baa7aa3db5b30f0fc81515347a0b264ff62a4b206b13b77d6fe0
+d7affb3d444bdb40d35e3e3fef7ecdc696db17c21fb2de99dd2c1d01b398b310d8820ac6909f09
+19cfeae8f609e3760d4628eb188501c275a0cd98b742b1e842d5a02971494c76bbf144716e2a5b
+f069fecbb05ad81767eaa420d8d9b2667cc6ea3092b883926e0c7a3ba07b0c03ade9ffa67c4418
+8fc3a87d4801fcf509dd397bf70ffc32244b6960f7588e6392fc1924e75720a2be7ef0efd80c2e
+84af45b6cdf6e4d969605fcd175d665e6910dfd7d0a73b1dcd5d08e64d9e7ce74419f9a211f4dc
+b2406c4d859ee43951bfad362aeae5be031aac818e4f0c4ba8b5934f04cef427df83c81a7ccf85
+0b73aadd91993e707c36f5c9c3963bd9d11e5567f7c972aea5f0f962241cbd8444b4cd747077b0
+cc652e3a1d12e611a1c820232591f6378da8126b4543d05bf4ca0e81c249b2065140e766550cd9
+5881b9bc5d670e884b1345a65d701a87e3b77b3acd80c68e94951bd32b882d3431f1b3baad046b
+767f289a7043afc60c1cef5206acf2f1a4ad4f426e58bcc821f802ff77e689da82232160f41510
+4f62ad5c44a6c69f92676d92fbf21e5179e3714d8d275b539858ea6502f74b1152c31f722011ba
+97e4c097ad3ec5c9afc18168ae7d0ca7d6b9681a771e74218704ef9a96d5576cd8b7b84a0bd425
+72a8ff8c36ee08c33ad29c43d03202f3cff9f39a21bea90debe92954d19366994a2a0506e319c3
+1656a11809029ba5af7582590c7498e5bd50262eb4b1d8a303ad2d2b18d8154d1217cdb8faacec
+51d93834407a06e7184df00e2d38dd80f3d20224165d79e3765505f87b9e3a938503f5a2f27a0f
+151d8fa624508a353dee6f68e1bb830092d277b49b8b609cc875a81b450e360b14a60f5c943adc
+35ea48b807851dba98a4f39edf0116b99b506dcbf9ac0d226d76e60cfee7e401eccc913e20fc2c
+6493bf20b33dca5e677d33e34cacd6044c6bb91ec150913c1f7786b5cf17685e241c308dd47df9
+9f57feff70fb85413738776a0ecdbc8836fc489c50d8d3fc517992e331c58553cfb9da2d1e3a68
+2f37245eaf97acdcacd25e3bbb2fa53d9822ac81134d0b144e3226bc5a8be75f404f0c55aa4558
+3c4cea7453d17ee21be265b4a75982aa7a875b75315dd48f24d6c0cf6c2a4461dfd464c41ea8ad
+8081d66b60c20bed7ae3afc8dc8e8e81a239c9b6830c39d30fa1c452909e74f81bfd7ce74ee84c
+533ee2360377fc1431c1bdd2c8142eaa51bd2da74dfec01d9651239e1cfaa83d82d886b5734b6d
+7e4d99b2a4b6ef118c221bd1aa4d27665bf4cf6ccd990ff00a6b5746dd5571ad7c4eeed07e3d79
+c6e81c47d67143e96675284e19875217e22fd73b0bda2ea2ee5ba19ac90d64425dbefa53f7656e
+8478693666149e0ba22e172dd3f6f9ed53a2932535ae2dadb4c19b15e219a3b3a612d6cde03ddb
+e0ca4c8a8c962280bc55ff448c6f5069a08f74586fcd6a69e41ff7f1407a9df7275990ebe5d703
+fc61652e855af829d5582c71efbb7865e6e09b25feda4b580c677074f6284965f00f59bf602d29
+4f3d14a12ef9fe7c131fc66c45e2aa156b15ac523c8a25c18ceda0e92b06c5b89bf521c6805994
+cfcceebd4d5fd86a6db5f75c4c166f04b69fb11eb731e0a3f4145286d5f018f559c47cd137c9a4
+c25fc74ac115f4311b2533b83971e3268925e473f3a868b6145fa9d6efd3abc250b916e2002c90
+3d70a2fb33d736a9e10871acd7cd327cb211e2a8d1ddb650c5202a9351bd752d740385c94953a6
+91f9d4a1650823e40ccf6cfe964a70ee9b4dc7b8bfb18cea58cabda3fd2405cda94987754becf4
+81aa8da417bb91fe7034b551077510a1a5e600d85174316902c83adccbbe39c8a154e886c85758
+5ece83b38c9641af153d7d485f9473ebb6fe93ad2ab352b72a73ea254a518d583f72cdbfa0581e
+77893c1d0500c1cccaa1362e0ba23c6b217de0c4687745355991f2f49093ac40f695bab690ca03
+c6b0a17d886065e29fbcfee2c2838982303318bb11ce039b94e4e4da53060475e83ef789708096
+48278db6d0d96483a20f405faf96268e80a6eb6eceefcd256916c4f5e710d106a194d299427e8d
+1dbeacd2a6e1ce4f9bef7c5b7d4075346afbb640759844970a2f58ff916ebee63b3c7796042bdf
+2827d9ef674bc80d68c72d509dc188856924e38c75b868492b1b5b25846397aac98e5bf76a1cdf
+5b4a38e988146ed0183dbdcc932934227cdbad1b668ceb594bfffcbf41062c3ccd93ee009e1da8
+01f37ae3a2f3bed7afb4dfbcb357835f33bdebac1dbe692970e57cee127e91d849fd68a04d353b
+c73a03713778fa15a087c34afe3fab902fa53d9e8bcf2b5f61c428ef540b6c136657394fc9be0a
+292c8c0d03f6bff39b64f7292874e9ee717d1dc8352e4bd2361e66c3a6591c979eaadaa9f01d18
+0373534b80829d52ba7c6323c096f06335cc949855b31dfebae3f022eaab02b41c6f494949bd5a
+2df2a8bd7069400dbe669a85e32512bdda448537e5908b773be8a081fb687f9e3e4596ac634db5
+ec852d4f4054312f2c1ae8e7c5d6e4640e82f3ac46ca94b0914a775f66e92646351a7610e9d59a
+4aa3f910183354369365a4e42b76674922658a2b5810fc40ec9835d74b688e063a5f1968c3486f
+f3336e2521a0556fe93e87216ea0a9cd05c926f294c97fc63cc8c27838f8237f29f96d615f431c
+ee1b49153930bd20fd21f2b81c6dea490278f094c99cb59f49498e7c65f892af377b15e81683da
+38c158535130628da275fd4f4f72fbcffa94e8231d206fb689123c3795d820f5ce408ee4cc165a
+e03526ba0a1ae37a79da5ffa1a246b043ce44e65f1feada40a90f8e2b468553d6b0aca75790064
+be1df4255534d2347fbafdf0983714733c61e3fadfdcf3bc90cba8188a853bf7547990c8fadd81
+2efb70ee6a41ba8b2186d3521c53f9a18c1e46212d176f34bb509b5085445a66b6ac6b4918f870
+5d30040804bc4cd9a81c5e900ba65d3441e802eb6db2e2da6c528d11990b09c6a749c3666a8d6a
+491a3d2748e0a63eb87f03ede54bcbf01d2858338689a56a07ac0ce6694f6c02e32e98bbe3ac41
+b9657c79a4e5286f1231a9ebb314d912dc5ce36f1d16c0b1a2ea372db1166a15b783f18ab09a94
+29877a05d75a70508cadb80126a14768f4aa518ca03f68f5e538bfe98336d9d7487f82ce91802c
+472c22ec0c3382cea4728d8a51f076ce4e76e82e5f0595f407289e98697653dfa3919067e6ec1f
+2eb96cd045e94986cbfb7395a35889dc366166dbaa8fa639741307654683a71df52411e739b9eb
+9a8c73f4086b3e79a8f1111745902d56b314d1432804548d6c426e89a2fae3d78265d2042a4f2a
+c9bdbfed310b3f64aedba9a6c4bf547433a9ebc1ecb111763117eed34f871c1fc043ca4d1d312d
+b5738d7fad7ca8c45b9778198bf98f372c2be70e07de81b12c803bb279c41a020d27370879760e
+f6abdf5e22832adcb17ed835a50a26d7ecff2f9e3f8f096228a3712c3dac46433b076c49d5c807
+298d645af23b3a23c2c7a7609fdf39a16da7c2ce237a6af1c15e72d98469a9d96e9dc31bb8b2f1
+725a28f0641f5b43a7fcbfcd73e9622c3b9256a80685c7c2fc38653792abbc4ba8a26219a79515
+3772fb5055eb3b6fa92d8b9d5bc89bdaa676ee581489c150e29465f64bf67b7e04373259d9868a
+4da824258e8cc2ff7171264e853c4c643f890fde616f49022ebbec8405102f4edf4965f689004d
+e9e8269aa764a66819e3aa2f6e8d3e18079c3f96432fdd1a87b88169fde54e42b77954509a3c46
+0139f6d683eaa9f7ed484f7f246de65950b0c5298c7c9867ff23eba3dc54306c9c9617e201c51e
+84d9573c7cb18a9eb2d2b67a0f5c832569735d3ff3f64788b7d2edbe61b7053e5448f8c9e46f21
+3b789a5e829800bc5be28fc0e4b139f0b9f47af035366de7bc3b003ab2add4cb2cf23c5e8f4527
+2a0775cde353666d113ec79528a29638a6d678b1b438caccccfe3cd96248044c6646e450c3bdae
+cd3d7d61570dd8755324d909913da64dae08fff8d317976de1656f4b317f01907b51a2cce937fb
+f361e35f61c384e035beca98dba6dc41477bd875edd2f63e574e17d9a23ac7391a3b54b16ae43d
+835f447e2fb591a3d5c55971a9b380fdd6bebca5cad0036886e5e2930c7d542e1f50bff7e38ebc
+2adad53b1d36fcd9cf230f4b05040f461cdd90503c5690e5d2e7b4ba8af3f7dc0e917126366e57
+a25259b56f17d0341dde448d6b0b9de5bffc671b1c47222126b2b8687376a3c7eea45802a7ccf1
+17c49fa1a9eac6d9fba58d8d35e53cefc1cf67aef0edadfa69b4ed4a659aec0b1034bbf6e02840
+eae82fc6e8801746bf28e0ae421d0b583ce2684751cfca419875ef923a31f5439921ab685c1702
+bc5399fd34aaf50641658e22003a8484c73dbf1486a8cbbae6560882e522f26ca641ec12c4405b
+520af6d7b0dc46d2382e870ddadf23f5a93c0fac5d1a866c1069b24e0adeb2bcbfd402ce19d594
+74e9ecd4d27415611b8da574bd2707f85e27b5b47c107ecc3e2d5def0634548e86773c0b4579d2
+6df0fb31831b180fba28962e989b5d032fb06b5dcad88e97d3b6df2de44e21adb5e725abe897f5
+d3b502534e18c7e370d04fa4bdc14873c90b5505296a58fb3570f9abf57c5f44878cf5c4518215
+7c7116a42974ccc2404a560bbc0f9ebc14a24918ff2e80911771e97ae39023b0f0b14ce681cfc1
+ccac426117dda7d3a2152df7f28208f879e1eb68973fc93f4e072726edd7ce015ebedec0eb0811
+40600d15fd66a7c4d3ab2cfa6445dcd06655046b051dd92a06bc93441efc33a284ae4d3fda08fc
+f2eae974ce9de438d0f8a828fa7c2b3bf01142f83ea5feca2f9a658f4700da1509a0a06f95bcbe
+11defb8b83ce6b106ac298e471f03c2c1a78d554f14a7dca3a33866161d31f64c2efb77d6f7c5f
+2c3cb3d990fde0871cc150a8f410c1b16293351e692791568626d2007d6136143082cff05f4185
+357c3bd19240823b10c465406c282297a5aa9f3ff56d808b6c3229ab971fe7af5d73cf662779bf
+65f072a4b4c1b811a9db4e7da47182964b7dd728fa4d51cc8b25996ada56edd51eae4684c75bfd
+284049d0f9f9c3e8816c2eb50d72bdf391486a9c83ef038c188d3a47eb85ab3f011e787205b933
+d73098db286236366ce937f92d550f4f49b3f587daf0cd9aecd1699a4de5661939aedeca3e47ee
+03e246ac7e6402537543d86d39f047711c0b25c9b7329f0de9abfdc5a833e61ce4edb9b82f734b
+106bfda12be9a03340e77d39ccf1947c24625384f265d443940f00dd0007243f409731ffda563c
+41087360cef500c60f6481dcdf845cc4b3f705301c98bb0d75f0e38b4c191f26bd3145c75c837c
+649f7b42471631464e8e7de1f9d1f6305df14648a2353e6d4d7e7652336e2dd2ae00bf389ebd1d
+9a4a20297e89eab1726b224403ae519427ab4d0da8d8ea2256cf0f87f4c858261fd65d01673588
+30f014301e498ab53a92ca2fd99503b903b6fab8280cecaea7fe970e52168022034590af577977
+91f9ea75a9703f6616452468601bdd4e04a953be37b3cf8e163ecc9a26157549f67ef84e00628c
+46cfdde6442bf963849fb967e53f55820567f240b47bd731378c527596c666da5930686163303d
+2ea142ee83d2923a2b2295dc58adf9936cb4c16a4b685931c6271d94d39ff198632f01a8ddcc58
+a7f49f5081f1fe0ab4d7b7d1f6124b9350320b53f034b1eb2288658ca44500ef8f9eb229b18094
+dc4ac3216e314994cfea86a00d25806da776265eec67889d8dce351f3d867151591b9125790765
+a06db62acbb029289b737df02e54b72ac91b969b0c6778a81328c628ac9f3bb4c6e1ac6affd240
+f52cd9f865208e7580a4da97ca2c391a577672a5daf6f2d7d9f68564d33940fd240a52c8ccdb62
+7b26fca132f8601f22d2bb10af2cfb318565ca285beee68a54d143cd1a9edcd173ee37b834d9fa
+a6a668759d6f39361118f148ef1c781590af0d9b1c87a87822afa2c2bd6014a27f399af55057f1
+a6bcca68912cd0fc36134baa2f09227f5ed9c179a927713588bb8fc5eec5f0b8c643aa2abe189f
+f408599a852c806f1fa7cc70aad701e5fc0bd3804a3fd46d6c80ae2a183af2b92be00f21bdfc9e
+ed8497563f754872124fe234e3abc85f77e3e150439d42f6869eab7fe1dd5170fc71f4209f1e97
+8b56885370f621b2bf25b8652a7c35c85f01b42d692328847e7286151bf11c6a8d058ceb00954b
+77528fe4cd9adb55755801227a7531269ba1af0ec4d0251f21ff313c641f848280f08d774693d1
+e9fe695523774d9f99afde22b0d95f880bd138bcbadaa65c09d1f83a469326881f51d87a4194c9
+4296dbb2671eab498d7911dc00dc459b6f2be3736d8591874e42696af4c58d4d5ceaf7d402b382
+4089da459941e06b32d9d19990d6d149cc6cf2f506e3e7fedd7cadf4c8f16ba74030759458b7c8
+9c1473622c6324425bf3a2260144e414d0d8c3c13c84e89aebabf1e47e95a423b716ef5f442e94
+49be807d09949f54fef7fd67f6b43bc205fe3af3e02dacf8024e276bc225599356426545f2b0c7
+dd765d95c3c70a40ca45ebc4f69029ea6a156cb71db60dba994449a1f9fb61cfccd7feb9e668d8
+278ab4aa076ee47458b20f98505568bbbca91bd5350fc7c3043bbb84c29df8f46014f1e1c3a7be
+9004b36ba396264a4684f490bfaa5d40d7a9dab831fea159a40de56ab52b72132bbcca9ebc3a3d
+4a1b475bc16c140dd6cc502f49f178d8bd2d4ece6567c01811730eff7c25dd5ac81a59b9dd3582
+4a7d11569cf7e137c35442276380500395ef5adb4c4fd32dd89efc6dd8e4fbb6003e416348d9d2
+2c0dfe852de17e1546b90850c36af8018b24eec417de74673ddc5bcec48a4e7d06dea97ebffc01
+b4b0e4b6051978d0995f020aaf930a2a8d5ca62c9440297c7b76d73f41981fea96b455a11057e5
+ac78202a04b2bf00912928369b865ee67c886b919596bfac2561e8bbbac8e0d7e8b2a2097bedf0
+d06e2c0a5491130e312ed1d6d857273ddda29f1c8b732d80bc6da17e4e3c5c277e06af14739eb5
+d889f25658d8691122d44db0892fc49add3b72363e61e749dc40009cdf62731eaddedbd87c6ce7
+5bc0580f75b3bb64794dd2677bfc36d0a66cfabeab9a2ae0759a25c6de2fc9f354354027885448
+fc5b9567ca5876b77f7e5c81feb1d95906c3fbb7c8102787500ac0bb76a7a86c9a9b2d36b725d9
+534f2c1768de50ea4e11d886f6d1e19f77a5fbbe40fd1834d9e93b5d30f4db785fc73b9961dec5
+5c94e4d98290fa5b2fe7c01e83b17221e5a292c1a1b4de255ee139317a05cadb5e600da725b541
+d82be703227fa2702d5777ebe1a5945c37a704bea35e0c52860f04cba02b7bfdaa586078aad71a
+0f8fba420cde49d58deff36954e9922286067e84baf0b03a91a9e69e726b3803bd65955c6570ca
+9a3253f2a6407b9c63e4b215ceabfe2739080fb47f44979b717dd30458e5a7c849f2a636bd8618
+c06193186949fbd03225d3aad84e1774c518699a2e4f2ae29ca13ed2ae02b2c284e5fc3039132a
+62177a1251e271331314ad09ec0df8a77f5e207c1ac8636158b5aeff0a584f6bcc089afbc0c0da
+9d25f0ba74f45ec7079bade2f80e6c23cc4967fcb90fd32b527070f72957717daef3986d42c8fb
+2d3095a2e0802f857b909d9b36764fec2ce5821de2c15e8609a92942b5cf2c29f79df162f1df68
+bc9ffabfe61abda33b9048405ad748719b84432383997da60fd3d8831e44b91bfb729d9c2ba375
+680f40b2415b7729fdb34221fb4c063368cd55a2e1dae7c5a9af6207b70534640e2d552b621808
+79213e0e8904d750fb174b1b1aa17f75d36f7194c41a14756d88ef98cf8f7d3cdc47ea11d14842
+143f083b92bc85af361cccd7a89f9d218170f77f45277b7bd61d7366b10cb186c4eb23531bc9b8
+70bab0e8a85a40ce114179484431f2e22830568d30fa749fab51a9e9852ca2f5c7bb60c8f8bb99
+6b6e87645dabf81a0370418e4020afad9b94d2efe87d8b0d60cceb07f3d61307e485c929382848
+0eb6b68edeb6db03983ac330299df329ecd5d48eec85ef95c67df21e598bc6d56c3d3e74f11c05
+d3474d67b822aecfbea664b181310fa663b956da4b9994b74c3fc7792a09620fd0e20298c4e879
+50bc4194a8aa19b9c43d064173030b88b5c8f0faf13722f8ac58c2bc29e4e3e8838691bd29e19a
+9d4fefe1f777fcae58f7fcf81f9788babb535d69f23ea8a2f04b18772a84bc1da8718ab74e76f9
+487490a8c7b0b6b2f68e7972c1f40c7191aeb4e1919ccdf43d6253d85dfdfef68302d05979dc47
+2cc0113e27d2a938670cc570216fcd4aa1e260bd7d8e77f1696ae915c4dbbae138fb7b5abab186
+4d85aaed9d0f282025b826da522b057a28a34e6601cac3015b9811af06b352b816692d69934865
+1f043d4f0f898283d78d78db2a5e3adef155c56f64936090570a8108d97d920ee1df477a9b62ee
+e213ec8671211d8fb304aa154ffc39b5404583dbf447eef78e8b5e1551482ebd9960e2d99fc4b6
+ea3c28bd8071c97999f671fb826da34e5d3d4f295e8ed9c86f75ec40e8921325dc30a4c527bafa
+acd9b9d0cddc006ea3fa03e362e93bec71477ab6dd5928ea3decc5cf896e077d03a5661dbba6ab
+117b16ea657ade33765d31d9a30ac03796c3ed07b8fc0c24a6c60768344522022ce62f3f103c22
+ba37368a21e37a346eaabb0758ae7e1dc4146b9bfe67acd6aceacd930e2ef9a2edfcb9b130137d
+cdf53560435e4e503b07ec3df25245c7de17cae70cd328567690f0a718c1672d00a0211d828753
+ba0a8d07bcc5cca3f5a54b455829093cd02931932be775e961a7edd6d0ca5412b1f6b49279a69c
+a197b98a635e508c2d6f8501d8f12547fe7ae413682825c57d968d38aa3844cd7e94eb8b57e0a4
+714429b56c33910c1d7918ea727de4a08de56f91e3d8bfec2554c462c415290bf8b1d9bb93d00f
+1a0aca7cded2975c83129bd4f0302a61c41e33e4629e86f2fc82e8e15f4effe80a9cacf961354f
+6d8b88a0961e160cbe7e0fe93bf7beecd78b8ae3b5a395089e9eec4a39cccc292e0ae0ac8277af
+c87807c10eccec57a586b2ceafbda7bbfb2afcd73e9755d707f9fddd2d2bc3cfd1133225b2bb1d
+c53cf6ba0b3fbe22fad89fb3df4e722b208b19b97882e8f13ab037a2cdb7939c1741b6bf5313a1
+9c5b1509cc27b12f968f528f95903a5c5e06de7ef756440f870da4b7d1a70ad46c8df598eabb51
+7609c829a67cbbd739c2c4f56bdabbb2765aad409b239f1d951c0f9078e4add48dae47de9eb50d
+1e5905e11de808c2bfb1c098e7d9910f85a780a61df255244778f32a4e74e464ad75a289bf9173
+9fa7d3c0784c31e3cb9cce2e1a20ebe47a73de3b805a31f7b99c347739827219f753ff4f773312
+6140269f4996b1665e21bd14dc3bab96201cf5f21ef0a62a7512d5de4a22ee4d35d40eb0eb897a
+c130405c2c69bed26322f81c55917cc7e5b7e5819e5e6a8acb62dd34e1a69075c1046db5dbf0d3
+84e5be9bb51a98d5ab964b3dfce0e2a95ea2c604dcb5ca833b9f86ab3787c9dd6f85b7b5cb7a23
+c8c3ccbad050ff9f36d705096d25d9000cafe7c8ac5ccfabea87ff6e81814b1cb5499dd1c8991c
+33d9d60416b1aa65dc26d45a6961659663a6b171a4716ff440dbcec04f67a6645025eb7644f5cd
+6beb26469413af1833effd4fd11a8979e5ae8461172c00c2c8e4cde0faead0001d368dbbbfa3dd
+09a8f6980bed2586498a878c57fb4d3b34aa7032073367a61a91b741b704ab22e42d953286a539
+a0df28936f919d08e8680676c9f9f2817a7cb8d56d747d1f82d049a0760e7d19bab654b8ec69c5
+78a40f175994becec282929560f02f06ef6a88e40fd4c806a80095091979f6f20136de4499e0f4
+33d3b003828ea47348e15acc7397d257ffc0c95c333cb7fee6396b67707edd3908b23ab1624d63
+9864c1b492741b56acc20e56d1a1d02fbc16adb867ddb7ff0678f64570b6ab6d363aee23ef3674
+e160af8e57bb1c05d056f20a13a6ea36c16b339b68a2ae149962936bb1921bcb25fb96b5d43732
+20314803e5fdc115f5f21d94a0b6464e844043f51ea4b67e162f81797528902077843cb5fcabab
+dd298f8f59b7abe98a82246816c8c3ac902e5fddf6355dbccff311ca9de7e2bd2e4a16db7ccbdf
+5447999a285a95297a464eeebad2361289f8e5f6a5962cb9ae8ba6d7cf0cfb0682b51d8c3edd49
+3ade1b35e4e32d72b0db5e6eb6f3a2e2eff19c41acfbe7ddd4dbc0eaf833280ec448b1ba433996
+2dbee9b22002d122cda79ff4786c0832447cc1bf33587444d969e47f4de0bf14ef07eec4b1c325
+0ae70c8a915f25d47e993d65622e741d7d1955ce986eb454a595f183d4b288aa29686847529f68
+dea6ffb1702c6c533e6eeb730746c8255e0ddb493de3ddf9ad785b70bca117de21b332ce4982a6
+e068f41421eefb75b5163f2713c64cd19460f3d6a0f72afeed8c8974920f33400b499e55a49976
+e40697c536995bb09e8a6689ac997c90e800b80d5cd6e675919fc74e043c813da0ce1f3898d1b2
+881ecc1bc104bc1584ac5f430dea2fbef509b5450718a1199d1dd9e3dccae2f30d96abbcaf7fe7
+95d4c89f58397fe17e63e8f721a0d9515c829d36ded6122865eff6e0477d445de206c4a7db04c4
+5fd6c25635bf227ba5b2cac696f3d186a97890c34fdbc5050d62259f4ccaa1ffecc58bfa8e26aa
+3f20a00546e0f30fcd4ce0ea91d8b1dbb042b0271f3d87965e5380efc9154c11d0b751ec99072e
+0da7522c427d486cdf22c2e368106ad923c9aed88018c66a72d8d75d0004e79e567c2c4df2f994
+5ec14657451c49a490fb053f46e2dc802cc9f2e7fc0a2eef1baf283a314adbb1cdd56084ca90b7
+7297481177dd9237bb77a7792c1e362c38c8d3a8ef4bc50aab7fc4ffbe3ad517e8c7520422438b
+ebd7663aff2dd1cf41141a1d36ff8d6ea27741f28a9a452b84ebaf4c3c22665cef758f0f477a4f
+e6fdefe5bf321175bf76d7e7c84ae6e31405c8abbac65bd20c747dfd12055eb7ca991f6e6720b5
+67a918171169d866981800ab4466785f606c9509c047af0339a50f949e04aa2054181c94fb8144
+c1a4a1b56dcca040c9f83e4b3e9c27156ab08a3da74898081d6e704e015c65620e0220d00efa01
+df0cee93483cfe6b7de09dd4e824a2a6f2f6d806cce3dd0b6587653db5db8fd79f8e51811a1004
+f862a1636bf28e9749d339f763f5a7411e7058187373a9cfa2ec5bde1b0694a89879677af9c0ba
+22be5419bcb2a3582ab22ed05c6490e10b226dd187a1416ad0ff1299606a8d64272167df4d3111
+4b2e6ce883e9fbb6de0049e9be7ac0525b51f5c93a6d3be68b0ad4ddef63f92df3afb2d3f8f643
+612af97af2e70fb8622a406716dcb1456a2d300853221918d1d24a848f0069911b3072dd1bf681
+82687f064f08653abc4f26ee131e4c8ccae6adc35341e5486c8d45c7b6440252e5f67c10a38b79
+23957a15d118bb4f73af407acb8faa88fef13f2f40fb2f488cd8d314bda019798c00715a9ddb81
+f4d2813af997375cbc66d1c20d637a560a5a5b0610214f0a6cb8d09537af8526b89815b2f285b5
+c61c5432f4f3edd9e5f15593233d9fecf1a4bdc13ce643376148d332a57e20b087254b4182ba01
+61537a4b2e5568caeb3840298842fa57d5ba5ea7a940ade51aeb9fe24ca94d77a267efbbf99e1c
+9c496a30f49459a9e1106658a3697fd4f58dd7b68352047071fe51f9cb7023a9e7bd825414635b
+ac65914dd14e5761f9137a735e96485e6d35b8e58a3c4a7f7fed1bb66f729e339885778e76f6e9
+c61903a300db92a2aab353cbd20c49511a1853d0195d5e74d8c66e6094bc89abed3bfc179cd6e3
+7e21ec28a29b63ab2b88804c9dc195f5f68c6ff022a5d67ea9eb2987b6810a2aa1a1dbc2cb22b6
+3342a643f78e0505f28adbc7e6f8fc2e0e23c2d635144818646634a1ed34a59d5a58e2edce4eba
+368135d98ebd6f3d6d6d5ca2cbd3caa3ebd9d1add2a3d82e43d5c75a57207aaadf134b08d1542b
+46fb134415623ad8128e60fb742db29cd82879da9761a4e7822997965f5f5ac69f3e71e5a34581
+3dda859797a1358d838795736a381b4015df55bfe27f1e415095132d308f0c0aeb337791da2c05
+46ce84af55580849399827e85d877ee14a1bc3724d57ce1b3a6679b3b232cd9570ded42da87fcd
+d0c481e278ee68c59e95345de3cffddb3192733c645e34e240b1b2b3c5476fb0f676d28758a8d1
+43e8e615d30a802099e758158913edf94ff83f50b583699048f7f0f8e5b487edc7da982f4dfa14
+de43146ab416128ee688ca4a3b96f1a12be4e32eee74ca4fd2b90cf151c735aff76416750b0da1
+1a89494276fda492539af6aaee657a04d85df0fa624e6882a389adad56d71eb6ad667c388eec05
+37ed483d34e3b8b4fe8ca231ec1c52cbcbc8a1eae07099b167ccbaa29fbf3067b3270a8d8f428c
+2d751aca16b5634d86ef4517fb93ccdce35033ed5649ec7de7de0b386482b84148358a86a394b2
+1897fd7a0ee302bb8214194533bb07935a351e7a302eada542e45e04e73d2412b2238ac52bf38f
+f7129738b8565f1816de4ff14d4b23b18640b003d77233a407aeb6f362de13c8a0102a61991360
+e02ef132e2bc2e473ea20b9f6110da8725b7996592fb0395e3b140cba6b75b332ad8668e6024dc
+7e8771a5116e169dac29368195d6f9ac47e4501c0e3ab2a60a80632c0903af6dc89a8edf0b249c
+546f54664b3fa32c8fa07672a5daf6f2d7d9f7b0addc347e10eea2f16a068c70cc107ca43c7b95
+e558eef3a654fd58ab5b719225bd4ab0e542f61e91324bb2bc583dd029acb55af474e876bba652
+7c5232b5e620d17c56c662689a4f1a5512562359cc821e816e60e8c94fba3a7726d3615445da95
+fca11cb848c0c14803ac30aa78fcdb3aa3e8d8a0fe3622826ec83cc42dcdd2b87dc2f865aa2afb
+89730a42dc48143601867bc9627cdda5ea294389c6d8269c3e1d4ecd4dd8b065aff2e2b22336e1
+884723a3f3927812b5932c151210110cd3c8f6840890de1089b42ac6fa2682fb89b797e70ed847
+f8e7361211e149298482b497066da119773d4ce717137a40a1174b600c1f59dba1a19de5721a3f
+61de714e59452fe785460d8055fef7d276c337bd52199d303c71fead7c9ecc49f2c7dfc7e2a339
+cdfce1f3d81cfdcf3091f076510e97b6a8a603faf333c179a41730cec3ab5f5182d31c81e5a02a
+6fb124c060dc63ae5ca6d98baca13bcdbd11fb3fa483a1fd7dcc0f6e46f6bd8313af73dde72f22
+a185a86b1930feb9aee6bca898ed70f237f3d12c8cb17480ee31fc186fc89f305ed006aa52a231
+14fb83f52030ec66e9dfd594dbbc01fe68269b35aac855a94b88b72e8a18a61736a7e4d6b43ed0
+d9c945f9982113791c051ae5b8336d1ee0e31f9952ce69528aa90aba95fe0890d4708c63ee2c07
+2121c6a64b7e538b102ca065a8cffcf44024e31ab358fadd0a12ab7d67f1459f5f4692490bad40
+a592591b0ed5b9dc22b3145e8346a1c5f56c5146718b051e238b5353dbaafc7096780e0351f7ce
+af8af69a67a01b21fe76b0dd7a35005aa59030a849adb34ed65ba4b6d70b90ff0ae61e54a7000a
+e4575efbc3984ed30c8aa7a7b9ed57ded677d4e3015fce4a2eac39d5fad9f125b2599b59a9afd7
+0a6a51186d5a3ce58e671f00d8edefb995ff11775e4acab93d41ffdfc1958ec865dedf781d4a94
+28003574f695cfbecb763e03e336a0821826d40cc4a03b1450e3ad3f4ca8013a25867ef523c2d6
+cf2188e66f62eb7428737b6ec4c804bb5f52cf340ae45d366b6558b9873135b201304263eff2f6
+a8faed7fc2795abb3e9ea254e18ed75367b003f34b47856f1be8fd4e0b5a7a9b6e99fed552edf2
+9cf86d8efdc13144ee9e518b79ba3e8ce84960dcd6a036f1cd7400fdc5804794284ce3f6fa6e71
+c726a34ceb2a7c0c4bba2857121780f7165e60b2287490fe084a286a586db495b96d2ab7f852cc
+f64721ae3d8f141b29bdc9d599dc7492db649d99fc986144c49abd6771734405a64a1afa4f4932
+0360b0957d602149a047174d6b86f15759f0721d652da85f2502641b30e39abbdf32297f718af3
+a2138e2af93b695f6d8173df35a1f352a1706231c9436c41d0b00b214c7757b412ec0692d1c6cd
+40bbb35a56822b239def7d0ff60af20f9d21dcb6fd2fd10640c2c88f9c190b10876ed86ec6b179
+7ec7d6131076ba25edc028b0a961238a3673dc292aac184f09ca00d90de9d695e819120c3403f4
+ad3c43753221e10461a0747b9a8649b6eb4713426f2c075b7a5c960bae9a7a6f5e55ca66bc3ab6
+916757fcda7f4bc52a027cf0cba54dd1c476aeb59a4fd8add6f279a64e39ea28126e85d181e120
+db93870c367283588c77761955f54aeb98fd894d99c4be9e6ee4b5e85320d1d9d85dba90839bbb
+0c75295dd6757a7e184e60f61322c9733888b2a57e3d2667abfed58e96f1e506428bd9c31b9c31
+5c84c1949d89dd9b7b688eff2c292693b9371f2a412b438e857f1e23337c75e72db2fafb8b2feb
+b2ee0fe7f054d0c7a1f3b8b89494f1b59570b5438a409027c96295b73d1c209da616f6d521685a
+c95249ea9f95c6f0bfd55d175992a0556951f6e2c28c5451b189140643c0010c97852e03bc071d
+aa2f6b30aa789ae450e415028e7ba9df6eae34cb16992ea079f666352f540d5d655bb2a41dbfbf
+b965c82a608c74005c1c22fab2479cf2ff2bb993af8b4f50e6080fbd133bc0e2f6d0a7ddef8292
+236a1a39dde56a260fe5fffc6f4ebd5e2952106e4736d377a5201322eaae00fa90801cfea6e97b
+1940687b8c638f671528b5d26b4d3ad45d08150bf5d61514ffc41edf7f07af550f3c88d1a6672e
+3068f4e5fdbb99deb9693726407ce5b2efbe7be24c79b35b51e17b078702b63950d9303d2fb5b3
+16fa8f6565b7c10505292251a21703256e0ea9e4627dfeb3e0ccd1460dc5461995e42e8281a9f3
+a29f14b86128ad23cc83daf836ed4b747e2b6b7cf63dccc15bdc405c282ac9c208691cdc5ff4ca
+8a9d63a29ae25fdce2481c81770aeaf939efd72a6d9d057a413f721b4eba5671f5bdb495765987
+4862baf1aabfa445874f17efb66ff2d65c533a2c80d292ee0320b1b6af535a42cbaa57e80bb677
+667ad478876c807628ce82d846601ba9b19204736ba70de5307f85eb045535e44a66fc0553472b
+64f115b86fc2cbe517122bd55b7589dfe34009e4676825def2c8a3ba6c5ca907dfe8a447843a39
+a71349bad6e997959642ac2061939146ddd4f7f86413c41aa4caea852257aa441d84db6b030fa1
+4975f1b0e73f1e6fbdc796e2a1fb57d1ce1178d2986187855b8242de1144e6c68a1c1cfcd2555e
+b5b6e1c160e3118186a8742bbb8c3b24bf4a95557bd33e236ce75bc0580f75b3babac8e3520d69
+d361c3ff224e9c2430d0486e52079623821b213961db24b4d253d51d6ab031382e4e32d290f9be
+6fc97d23c3256916c46121fb30c41a38f470fba325f63e5c85d663262e317ce2034863eac94191
+09d47c0acead46984367b601aa43231e45b7e9ef63d347f98da5ce5c5654eb7803dc9f2435e28d
+7f46decb70d5bbfd5246f8e6eeb064eecf0c690369accd185f5059250e09ae3e9e3c8f88d41680
+b3de697ab5e3c1bc8a6fc52f9deee12d3c44bae1c4fb6d8277c2af40f4e411dd9f49ac35b4a1cb
+a54e43df9053a3367bb8f03fb14a6794f674ed1f3dc46be0c992f0fbf2b96739a28ce1bfce1b9f
+780fbf196641b33946c150b7255b98724eed79c45a576446d8c053b36e6af9900d2cabf1e49e88
+4543f6088eb791795c0ae03be1f5daed2e659ddc6e4733de20c6cd0ecfb5c62c42b8b0b79cb443
+ae805c2dfb7f1d795d06253343a8991cdac13ebdcc46df2ac625a0d8e1437eb21bdaa456a340c5
+3755329ffdaf72a54f9a330b97295836c8018f1d90338cc250bbac0369c3a76e3c19200c152c98
+b55904f4b6d7190d52c6fd682c9f93e81b136999c1ab1f6ec50005af5d97ad2e187c22dc9fa7ef
+fa9c63c3ccdfa2512a2f89486b8a152a2fadefa2c9988099ffa273a3b7c1142353ba41019496c8
+4e2a3c8b7a438997fd2bce853e99a6c68b84eb905455640c8404c74c1847b8a8a91da7766c901e
+1a37010e003492387fba513e480876458bb1de4833ef0843e88cdd366e36189cc5d55e57cc6849
+a365f9ac70c00ef062bc6b73cfec679e7c0c45402bb03609e40498b9ea407725ff461106d388e2
+d8693ea21c5e47e698447967d412ffa831964c7eff13980c999155cdf92564b809a3f2d596c227
+12d0a47dcd8bedd97e0a51a7af49ef140b6938e0fcd719ab46e005031e37ba569f6512033b0407
+136308a1130e65044f34150e0a11f833f015b20958e5facbe49c158a1ba936630c731c0732ab3e
+a168a6167114fdb944bc51604ee7b8c0a27829964503b719b6660eb94d779c40e36aa7b75c658b
+19e5482163e5f59e7d7a18da95b66fdb2867a9fc6f3b6da1c470bf4f7aa425b22952fac7b13562
+0bb9134d811e7eb330a752982dc2ecdc1e562daf5667947ef96b65945445c0d61609cf04656a00
+40d64afa3344ab3563e652bcf2b244445ebb23d548147ea1149bc4221211777e242665b7a48b8e
+2ba8d0376340bec013b783e6a8703667f9383e83b3ebb12fc01f8806911d40b8a458d178304b99
+e0176f7a3bee9885548b0c1ca4897fd8cc8341af8affeae7d7fb9e4a55691cde5538acf3b65171
+0d6e40dffd4601d647001d30887c6e2e6a460461e1a5211f32737b89e5357b655e067072e04e3c
+78dab918f9564c2797a77b666b84bc13b96b9742b8c0919e1157ff128a048b6ca0af8a510c59e6
+2519a76fcd8f3e0397fb5c747ea295f65a55cce5fbad45617aed71f6b5cd27b129c8e2caacf637
+ff627f58689d858e745609c6841729ba4fb26ada192b22d6b75361c9de43c88de17f76a1e71cf9
+ea6dd837fdba6aa1c426ff75f62476f16cad863f6d5f4a8afaea913ae1c75760fc0bb15a943f40
+7201043cdb908e4377b72dd91f93abd6c03e1999b2479fa57056a5208ef198cd09e67e8f45b014
+0ad715978400c17a957cbc3092355fdd7e47a770946cb7efd9cdc4fd1abc2246de27fa98d21c0f
+6eaa05d6c487368a8e082ecbce8aff8b670b5533be88dd098bfca0b05b5b2eef8d8041f8bda431
+2fad270d665c3d3bc6a2967ba6f69a20c62fd4558a44093cdde2cd59003909b4ba5088697a57ea
+eac1cd4e44fc097ec6855dab0ceaab8d6638a10a1a3b48ba293c3fe07ce48816894bde76c22106
+ca436ac2f50732e62a55a5180c6514eb1d6239984f05a0fcbd03df49a79035f7f19487e8c2b17a
+5664c7b4cd07f35837ed1ccf42b0207729becb860bb079eadb0f4ece3d3e9a8d466edf09418c39
+5d27db5b5a607d19733e3c197ea5a3fbf84363f172deb319f48181ec0088e780fa9587def1626e
+51c8ce43b13c866d2a6cc5a8638a32c04a9af984f76675066bb4f30c40106141eebef102cd5185
+c273434791f126b416991272db78c7a97eaa3af1d54904977c8c4ae20029034c88696770a85df5
+61bfbd413d4c7a93fd4d49fa7a30a247d12fec067d4e750be4a0474f1cd3131ac5aae4c8c229f2
+a1a950f5a7bcfae2002c8cf67b4c50356cb93bf3a8e459c019975a39a15219a8cd21db44aa01db
+5b4060e1394571392c38d403ab451216c8028ea208777ab2dfb9d61710c081cee56bc16523bf09
+dbe1fcca1649fcbec66c1469d99d90192916a0b97ac70bb33c4038257148b2bc583df7a455bf35
+15f23d9482b048e7e27aacf68d279b1b95711ffafb87a2aa66218c431da7a9e5def03cdb67f174
+cc2cc6cfb24a9aeda62afaa04ba2b687062b0e3697deae5ec9454b9f1dfdf2fd32c072b8ec8b8c
+819c0f4409c6e1cb0491e31b5f25eed63b0391615d173d985d922da1704039dafc5d3f2cd1246d
+fd3d847dad4001140dae105785d55edaa8717e967b450036241dc252dc4b2f8662317af5b48451
+c4ed8341d289343250289c120e81862168a5bfef67372d56511e4b2a56d4aa6504df8c2a102fd4
+c70352ddbd40ca349dca1aa932dee260b5f66abbd45b9cd87f4f8f51da7962595162691ef7a85b
+fe2a0ae04f9e53bdc5476aa391009ea7d6cece0758d75ec68604e1f1e3e899e89044cfad402abf
+2203cc4f4b57a96179a98c4db453beac08c681bf711721b13f1c5a037e83d4d692261622c9768f
+fb51f71e20b82d2a137cc2d29804d2ce0ff0609c4e263e700768ae3dcc96bfd4168cde20542a53
+ddff1bb821c5577f7abe9243e81b3ba2e0a37f2460aa177b0787f48333be725da6aff680d47f3a
+39bd235891c27fd76604580cdc0b07e9fbac7d589528ec1b8acf3f1f7ec7694b9c56f90b2384bb
+3ba5660c2b3c59646b09f8db57d12dab33e429c3eca8635b7a063de2b3f4a9fd7e2b251170dea9
+7b259b88ff470f2e815e4a5967628c80dab80ade5e934b55cfaff2c9edf25bbabadab0b1581b2b
+17655c4c355db2199e5ac60f1e693967ac396e33b9903aeb44264a9f1158bdf1c8925f1c4d6392
+3a92343bfeb7cc1cea6bba9e563bb914b7d0b1200292fdad39e9ba9a26887011c58a5f3dedb431
+ca7080b49e279b6928fc1b1b40c677d65d9ae6690fbd75238a656ca96fbddcc6167fd29136a0b3
+69624415d752a43f35f17b4a7acb5fad1b8fd797f779607832a200678b2eca7611b6a444e7ed97
+41178e2197d7688ac4fa0bfea6f24ba68a5c47bf8d6175d47be40ed14a5f000942edc6227f7434
+a82e02714a6fcf67f627eb771d29faea23982814df811a87cb2248b8ecb968077f633faa14df38
+08546bcfec58c5637bdee6294ba95c96443824e6030176f7bcc4e935e56f0c89e761869bcbaeef
+ba9470aed118446854782bbcaf0c2791ddab14fd2a0777963976cad0463dfa42d25a6d79779ace
+9f5614dfb74a61b4e28d79ff89df6134f3a0b7edcffa83ed2fff1da45b7f4e296074f34d0e5878
+64ec063be12e1502f38fcd0a3c36f5d9030bdcd7f308ec7289969b9dfcc411c7e5021ab5f7ec60
+6395e8ea0531e7b2829c6b7ce7d09ceb37435d69fbf4e91d3d53db4d95b713553484857fd06f20
+8421e9aa74859520cf563b7b733427e5e5fdfd76c36353a20a7646f29a69d212c6abff5bfbcd25
+0501fd93af59e5d5cbae81e0f6f3ee7b1bcb14ba1fe21a65acd1052fb77654018926161b55b3a9
+f90069a5a5bed38a580c85e3695a0772c6c235f8422fa80698c76f25d6da9b0f9340f6c78747e2
+3057b5b438579cc1d98680f411392968d56d35da1b4a95d671b82bb80c556de19c702617d08c10
+f4dc9b491ab2e6bce3ce0be12fe856b8368e7d28c5608ef5abcb24fe1f9d5169056ef64d5fa80b
+f96ee240d203df767024491b6bc5885dee4b75db4c049f1393f34e4253675279390c4f38c8027b
+b30605dd3c38a8883ce977cb59e6bc7b81d36b45f63de5270df6e26d667c2a9c8bb532e6c35a91
+f58a286da052fb58bebacf98d7a2bdf7edebefe76fb0f792eb9013e83a070600a6a676caae0dfd
+9716bd259435f8ddae81dc909b7b5ee95e9da046bec1de73dae47b42a9bedae51171cb5460eb2c
+1bc4419616ef317e85838400bda929823313b83a283fe65546127c301cd49e9444272caf41e826
+5a38a567cbd60309ab4b8aa8864613bea82f83a92dccb63b19b7264310106f8c2f027d5af7d43b
+436cacfac60a98039b250178f106488328477233d06f98e6af933caa25959674ce55a7b0193e40
+8c5e237adad6b06d656ce868315e87b9a15ab5301fe9db47b7744c22f69f12b68172e987631ba9
+905b777f921741047cf898894502c840269f338d158653fffe670e4d71eb9c98d707cd67751cf0
+196cc8241ddcefdfd7ac3a00cdb7acb2425ddff076da703e79e5b6329a40b9a86aa57dad8da9f4
+2ae4975f17d3786773e5929e1bb1d4c4b5090715ee52e55768361965b26afd0225dd371e140c40
+79a5238e7196327f04454ec32181bdf92a8f32eca926690da587269afd6f5aba67db15755394bb
+47ea1959cc587482f02543fe5a980ab0d45aa22865938545d527da4b1ab29e96fcf2b90ad4a9d9
+17eeffa58f9ad49622482d509351bc4fd6f358d58d527a855c1488d5a5214a874a05bfd0544ca5
+cc81ccc335075c0bc8b59108ed389b48e57f5448092deccb9a8f70dc715977afdb890e15ea0104
+a3adebf547321a92bc6023552b7a9716759d5bd3c0623a49c91ed38835d5bbd8475b85430da2a8
+86b498fb2e1c9e50f27be1a90282bb20acafa2979be9c40dfb3072e671df117892f09268108428
+018fd38c814b5a0c25055f231d98cec741dbc435b3377b61cec4390e6b85cbc0ccf8cce02756e9
+1e631b0c676e1793290648642ff9e15c446b6347e651e51c977af7fb45919e6bbcc6155de08735
+07ad5eddbec3e371d8e011195bae933c8ba1a3cc403911bc5f13009851133c8e000cf29c0e2d82
+79ae61c2d785f48ff7d81d46e1000ef5c3998cfa0142ae58d0e4fc80c54976a7bcb2d899084e69
+02eec50739697b219c7eefbbe263254390ba49c5972e7193e0fc862230d02e55ad21e5e65dac1f
+c585c0bf4779faf68f6428c0e65c5726eb9d729f31f7a04dc1b78045a2d718d4d22fe60b5c5830
+f5885526c86330dda2419c993e7ba1e3a61b918d59a5f1fe7dcf86d9ee51182340c99374d76dfa
+d93e63ff88965db5a0e2166c98457317f943868b2710e6871b793721eaf7db986512810be48070
+fe95b34709aa5fcabf8a936f77e61d8da97bf05d0a4848c98a47a4d5ada874ba8e5e38d1613006
+5a1c7432acd289a2ef87db6d5d17aa5afa1aad86af987241bc7e06184b51e4978b2d3d080109ef
+89ab1a408539f82ab7d1d42cb22da74943dd55ad456ad59db3a790d521a76e013b504da1ed6a78
+3bd595fa3b5b6763cf9d7778b94e7ec214ceefde387fe1a8a9e4412bbf6e8ef219347b4201face
+0430f087d0b1ff6bda3b461fa0c3b9a96081b44a1830f03d34ca6966db37d73f97dcf71d9c12e6
+b2ac6b01cafd158ebfbe3125b2b8e2dc547d0d3c95cecd96ca4a2fb08726b3cab14d80ee209c49
+1cf36c27c98d919b97efb95fd09e9562cc5c1e575beb27c0209574ff5f503111447baefc1351ef
+cce686284e8609077f29d884efe9d3dc6f3aa19e84c3e53c5bb9be30b7af5f0303e0d1796667c3
+cbf816ca1c08debcca36a18872046de3144a4daf8e892394e37324f68f2914e076e6e1f79c1d2e
+da958187738bc3a43cd744fe1d377bce7b3aa0edcf48f968b231a3ead2ef7379bb81f6ee8a0f92
+7eaaadb9297fbeae436a2fe761e33f55ade34da34f15fe0d2944bef7831418b12a55711f785ee2
+ac0a5c728efeeaa58a092865af1fc6fed26c2e09d6426ad54bab480a8a16470c322d32eeda3dff
+2e9be10a2a4a1a2cfbfa86c807765751eaa12a05ee716c7198752410800dad36f41274fb0bff9a
+6c3f4d1546cf004af407ff54a6bfef46f790c8c8541f7f85bc331159aae8c1b5b9e19081f2559d
+3585e78ff11f1a06af00af5aceef7369e2c411d2f866ed3d5750ac182a98736a2faa7ce98861c2
+29f741990b7c107a9c8bf7d0cdcab1cb049f2428ebab2c9045408765a8ddf5b4453c69c4ae4747
+12550f43bfebf6411ba15f932341f48ca11574a79017390ed51c4b9ec023e466fb6be8a2f5bcb0
+063534e38279aba8c8ed0ecb0baa4ffd7ad8304535df2610a02167a8b2c3fd081879b2e63dba04
+04258106cb8e807d456ca672da9533a07d16523c8f0fae34daceabac6b592df5a2184312b0f5d4
+819ca566acfa76da712e22b6474799e2152566dd4141a8c4a74c826f6215afd02ec33692ce6b3c
+ac57f6c501195d34460b4cb5746a199ab648c64f3f70ae5d631357e35a28f3d74fd9f077cb2c56
+58e154fa82811e5defcc4dae3fa63b475d523bd0058190512abca83c952d929605a3f66a754857
+78fff763bdcd1deba70524159cea86d08acb2be370c08f93cf0fd1905ae04c0d39f55ca6262437
+2d9d6010e32503ffe34c50fe308fd7e82301f0cabf31998c4e5544d11f4dabb23698a0a662c8c6
+f1956e3415a7a5c05b5ff5cf2e33b2765df15fc2af3c573897a432c148b5a0566206d37c6d443e
+b6474eee8dbed51f79d36493da986f489cd2af12aba0eafd807364293e9f4ad0c0af7f37bf56b3
+ec18a2a74be60548d04892f3032b68a3aafa100a7df7f05500a60cbfeb09746f35d475eb20ba90
+1e5f26be860a030c21ab1b25294e714bed255928d02b0c462e0ec4970aacf8e85d9a4352eccf2a
+0cb03b82e4643c46f50fe57733c66d490d193f2123eff7198b52310ef26f6b66f0133f50b43a80
+049684bc628996b0b3762957fa583a637e055eead74dbc7f335c48ce86caa238281a59f23ab99e
+f88d1951bbfa35b49e1dfff19a796a0f0af820d6e8492db6acfb5e31ece59832d86f2a7581d2b7
+5ea105ad71763d3820ea4b74422dd6b0afc3fe617c8bb65bfee31c6100426223e98150c0814d3e
+4478fa61f6aff96e6e603f0f1fe74e20608b90bfe6b60d8f01164f8348e43783b0d58bd114b8f4
+7ffde258d24454db8bac957ba2d6a3a2090f42fdf6cf23dff5a72881a4bb76214211a83709caf4
+cc21f34c06944684b97c98af73f3afa9a6110763e66403b559a97389dd185dfabac4c2171ddab8
+95085073ce2a78ee30a57f7451166057295a963767704175e65225f9b2089cb89f084555cd4271
+b9993d4ad899a66ee65e95c30aa21ad0016f26735ccd81f40888988d5a49ba53306674cb663bb1
+ac6c03816963d52adf4aba205649ca40e40a99d9bb1fdbb75bc2ad6e4c9f009711cc1700e24074
+5ec6f812e7fbbb59a2161201f7b2cc5d85855641cb3154b0988d59f0e28526927ce86c3becfcff
+413404348fd13af9b048fecd2ecae49b9bb9dcdd81df17c7d6b4495dde0fbcc96a76a8ff881df9
+839557699d46d76b71d818cfde80def09187b19cdb4701576dee9c2efda897594095146cabd483
+17ef633967357341aeefc98d4111f133b4d460725c52f19480f3ed974aa1df8a1cd80363c84fe2
+8d4f96665d3e2853fc8a43ac7837a96ed2899b89da6b6e1191afe20a3c8517c7e9198d9c60072f
+86f2f0ebd297af37a0db9ab0a4dada1b37558100d7cdb9e3d836ae22204aef7714755235fcd4e4
+0b005bd3d75727470b4955ae37fc74c93036b94664ae512aa3c303547bb76be6e069d594cd96f3
+c26bc222071a5590f3204aef560944c96382c4f694c3684c63522705e82b3c172e6dbde66cc57a
+363cb681b598f26b29a9da2086758149e5792894681dd314cecb29eaba84d66af8fde5aa3b4f95
+36b42573e59a844c7333afc20f5d4804f641e5329f12b7a6e4864701713717ada2cf173d4b3d84
+05a532787657febf82ac73b4cb3f0d85e458025e9f83b01e9972e4c6c056ea700fcdd7c9f41cbb
+723fafb1f2709511dfe8203f3eb31ba09fc5b92b01f1a10305f088a52d2087ca692eeb2a093df8
+fc23914ccec434919ea899c9ac75b793604f0e42addc6c9bc406701eb817de38359c63db2201da
+771206072ed8855f9d77784bd303af08b8c78b470a98648df5fd1072580999253f1ead62cfe5f4
+223bcf4873b5ae9c58f548455de627c345b91118f9a1c7bbc42460a94bbda4007aa0625badb356
+6db5d260971241a05a29cba6254cb8073525909942f3dcd25b6ec828d732021ea6a3d4232b990b
+dc42a45478a55c4c7e02f8105d5dcb6329716090a774a6fd91aeaf3376c79814f7816702309c0a
+bf06921828c1d631f5fe99931ebb437ac11bb268efb00395dbd0924c2169221f039e88322c5c64
+17e63e409c7ba5b1dec68405b633673f7ff134434643be865c036675ee087680b74f9bc2c24fa3
+b52e5157ea7a2fa886f97b3a3491e6726b3d132e3723afc56fe6a245970c5ab0dfc8caa081ac79
+becff4ddd078ffe97d9259978bf1a03941687a4a5eb04c2b932e1ec07f53ba444345a637865f18
+89c3b2e4400bfc889d16c70a40669223c458dd1092b2d4a3e3c536568e47626f780be364b539ba
+0441b3d89f4ce0a679ac3c5861b57a7db6faf92ac71fe2ed3a46b63bdcc8e06c1cad39c68477e1
+aef7f4302834506d470f7ee2c90776b8717db03a69e294649cb3a9acdbfd249dadf5401a76c34c
+ad3b1505c4a71b99314fbdf82240c6365d2dcdcee9f8dc8e6d77ad9ecf1fc03470abaa6e6c1baf
+a50300b62b5c44ccce7956077154e46f464c014ed9caa419040b70415b8580ba97b98c4c2e74e0
+95dba064950dc5a7d789ef4a570af475f5855ce8602a1d03ce1f3e79e94152f4d05cc34a1d0c69
+ac7f39b18a7f1ad39f624ce325f2aac96a3ecb7db1f4f0cc4394e5a0e034cb9a468dd2d0325e2e
+403ef17f1401494ce151f7c6a5050b8eb4d74944dc48ca9fed95d736691a74b2283fe9dbbab1bb
+973477494f2ad30066c95dfa972d74e1268779ac7b20ea3ddac21d5e51cf357428c54073b24e81
+09116ddd8a3ad007f2080a94d543cef0bea7796eb5d9b113df2bf9f0b78ca4fc67f221d6f67721
+14b856acba0b8e2ccb1e778f43955c3249312e618cc12d5fe2654b17450dcc5d1a446c2b6973ba
+234891f79794ebe06eb14366886f9e714a5b3f709b830948326117fbb64fc28e76fcf5a73b32b1
+117fc01a1425d5a6527c31995360cac2579654db0faa53b295a17db9b3b4ff44fb792b312b96eb
+964b0ee3194aab4575c579993e1b08cae03400dd06c22a0d391f65f88b6c02c60aa01066142aa0
+9617526941251668b48ef3048421f172d46b7efc316f1382cd9aca69af921f39dcd5237d1c2636
+5c537e389e989dee2e43066b73856983e3b38440597a4292bf375e2ea828a258be7c44293d2828
+6015891061cdb11f8aac7cbe98b724b4de5196f307073526caabbd3c7daf9a3c1e6d2a3f84da45
+4d6b075f665cc712fcfbda69335f25129dc43e85f0a58db9eabed16f82264d452ad9e1ef5095cf
+fe10766560d66c8a9a6f9e656c46b36bbf8027a4cb158b169b121155cc01828edf965a63d5dc30
+6bfc727614510f039076d5e70fbcc6b172667e7daad8f5c9ab0a007bcb764ef223e58d65753d18
+ef3faa5a3b4643e46701181fae0066c08f124a1bebc697822ce1518c99f39e93822d29c3d26758
+2fedd78abd6d5a448f9b520ea55bfe89129adeb2470b5a0305d5b647533443458396531ab95e84
+5d06570ae9d28aa20fc296d973b4ff7506a51b33b6040a33dfbec01580dfd31ae9dc3af412d6c0
+8faf4b1b9b4c5c15113a9aab18daa17c7660825588732dae07809c52a54366e1cb74567ed813ab
+c9cd9533db03ddff8bcddba4cdf20f9b898cf1799e167c31e283e074772274885a3b00cb7d0038
+8de49e0cad09250bab1574c26588628e9387969acf34ec6f25884efd54dd5cf053c070cdef3f33
+56400b46c13f989b6e601270261e1819c00b829e73e9c198530f5ef08a5772273bc425cc845e89
+0f0c4227ff6407ab9ef8ab76181ae029b387278769bb68764cc1a263e061fa0c1eaa675dcf34b1
+9159a5a44bfc9817f1d981c19e1c7c8666fd593e568b7c46c201a182c98d5b11158c03d1179f0b
+fac1e6ca108e6e69fc2da3c16f8b13e7b08ae39bb5b3a06b17b1c3a13a96e9d7044ec6001bc3ed
+6f83a6a52e2aa4d5a86aebc02e476647e85c41be52eabaf99a963e9f1ae42fdc0ee820c474f0d5
+5313f0754c8d85fc1ba9cdb18dbf7655df036f5c3f12ed437b2349155d05dbad905d95fa414736
+9235a70e6f9ed301f8d9c02bd16ac8867dd9b096e06df5ce01e9228177b1ff8b21e21ea788d225
+d0deb8af4ee618585e3cf4faf18ab4e29b19edb2b334a7eb1075316e4a85fa54621101b189cb73
+92a9fd057c9fea05dc07d9317edf181338ed3d565c61220f255bae44924afe09bc77aa616e7ea5
+51d981a08aa153e57c0eee25061c0e9d9096cf23d493073539b85c3a6cf8acba2b4943e87ba87d
+03f5c6f89577c3333daa935fda4cccaf45413a61dd7a3fd9373f9a7055cde72d3a64c470e13170
+ca2d9ec92dfd7420ef690bd56ca757cd1912f93210f985e8f73b3acddf7812846b45320ea8a02e
+40e4cf93dc96c140853b7f2364d5751f36b404375bf498b80dc3aa9a2c8d77be7895b3831773b8
+bbf160cd37c36e6cb3eadd9072989483845fa43255ae3494167d1557f07ac8a414627abd84bf9e
+abc3819215bfd3ca5a542821e532872b8c5443ceb91fcd114e149975bf2e95d90af261dcc32d73
+ceffa3e0a58aeed535b0220ee1edd6f7153dd25cb52a4995b4b56a1b371fe6e43c31a82d8cb977
+7beca40e4f1143482632beaaa6d8913d27e6b22e9565d889eaa144b586d112d30e93a936d36670
+bef78737aed84b96212b8e167bf475da0bec2cda35273131913ca0458c7615e330375d7035ecd5
+dcd8e19eb2b930b7176307e07600fd82ec22d5842611047d1f978f987092fb42760781736c8f9e
+2c91f2da72d06ecaec61c67ddc5b9157989e3483bdb759b9fbbade4a238e98f7ecdd1fbf3fbf6b
+7c77d503945a07d7bceb0c7938c80f6a8f8cffcf0165258ef2881c427fb63e79204a9d45a5b705
+1321c2790e49845965e7b506808f2e9f469a4f48788c69adb41622847347a942cf4d7676c0b327
+fe37363ebae6a30eea477a393162c94a8c4a02a1aef55d5f2204c2cf9fb85b294f8b287ad0d677
+5cc861796f841d00679a4168a9eae317242c297ddc0439013f29928e41575ca5c284df585a6d55
+63da95329180142f923c5e9e5a35d543a9763cd697ecc84a77d3c36a6a943543ce8a2e8b06c21e
+92b8d20aa385df90d43954a54b9c7e7bcffaa07bf3204b0e2bf59c06672bd57bcc4aafa325a040
+62e48431ca0eeaea9e916901f18e577035ff3496c61f9f8a1e248d02ea39e57ceaf2d79b726b55
+f419ab45ab8443f8b24ac016b8e050cf42c847298381c2c3638957319b2706c0e592aac981dc17
+8c19356a745f2e593d45091be7771f0b6fe633e9cd99c7b3bceac664be083fc6a444a519fd6e2f
+a7d7521d7d4b3fc402cea6d981bc0e3b26ea2637d8c9806754800f17e3d142199e2b07597e1478
+693ddec029a676adefb4397f634fb8cca478c878253213886fc4505314b7328af3c9c79b130235
+1c83ce8b1f266d9f9d702375504e78bf62adef39221f61e139c1ffa5691a48a336a8ea563d7b55
+a0b9d3e11b741aede8aaa4568b0e94ee627ccd8306928e97114016cbfdc66a0d179f941fbd4a60
+7cbeee447ff5f7239c65681c5292465bb94d2e312330a170a0f87aabcdd42e6a79a96738f228f2
+d7da027e7cd5bc354d681fccf0ebaf37f707e8f4191d7947dd3a9460e5cf65631d0e801d50d960
+49a2777ddf3089f2bdcbb20de53d3db55a403ff69ca9a88319d9327a71159a04e3dc8941028005
+1d8ac1dfe0651173a70ff6039f1c7d2b8d845d3f92f839227fcca240040c1c1d5a7e14902a6738
+d35093ad4770064c4d9394c3d118827dc2646554f3bb9bbe00313077fdfa6db83cbe3886647aa6
+f47e4ecf56938b8d78bf15754b331a9b6328a61c50310dbe4455554a1e9ac87b68e8c9d53e39ab
+42025baf901113110747860243a35b5e2bbc48d572b4502aec15e8b3454931f5b2c6bc11a5d085
+7fb6ce2a35e0a2043bf8dc51096b86bac6d087da09112cc860d0fdf1ee117e489915b4ebf111fb
+c357924c89dfb60a9fb088ddcb10080ae9e846cba40721ca7f62b5b531162738be1b8ec7282012
+1ba30cfb2d60773f46afb28d81b61402710b826ee28ed59ac65557bfa0c123c0dbc44e6b08c6f7
+84c2dae0009630390018029e38f6d8b411aa6879218fb9c5079480f30eb64479f6bea314be7fca
+9b2752e7591fb93cf8b3b134ee2a7b0046d1e6dfcb130e3c8936d23d73c22f6bf7a4fa9b1ade39
+036b7d65aa887aaf650b1adf959e359cdfe24f314cb6f32cd967558a91a46c647f10a4495e0170
+aade0e2676cac462ad8bd7d6a29f685f1f25f8bda0a595e3399083f25cfecdd9f3a53f7f0bd13f
+0f148c8cb3a1f3237f7522f406fd9302250be7851bbfe51a0db9eab4d0102ba88d8551f355f43b
+832176ca82d8124f27a2a8bac827c6108724459881056c63163526a07e474c0650ba7c65a4f2a8
+328a0d8f04506b658ced3a31d5158bd9121f52279ae3615576860db4599fe5afcc41f5d81c0623
+75b289612b773bc5ef556193f50ad905bac8aabca1a51f760827a10c62d9c858d1de83ddcd90b7
+ab882a2c4506d566a0a93bd458a2669ab3923c6a6ae1252062c082c2c9fba014011f44a284761b
+e599424a911a94ebbe36e05991217c6a73c1e0be00cc35bceab7b8baebfda498826bcc4685addf
+a6bbab805d099d7672cc666418608ac5daa94198a7109947cb97c30a4e32b2555ad409689f146f
+2f339f4e730a261da32c9a0e9884b4cc39752bb065df483c647f694320e6df10b6d6428b7ae71a
+2fc30363d95970eabb740f277073de4ad05a40e74e5ec481d8e9ef87b75b2c4328053a2240fcd2
+cef212868b14e4f3dda230dc92b957e668cd5ce0a8f1e21cc0386c8d1d2c93d089b506324a0678
+5fc8d1b97ccc845cb741724859c4930a1245f533f4d8c5cbca99555032043b776f2f2df52f2f49
+3499f063848e098500a5f97f88cc74d55543fb93ba5928ab58d4e033f179a44cb48d855c98351d
+f39703d656702efc3900457784d29e0d18e3ee09cb6795046cfc6a323be94c3b7747eb215121ad
+069d041275dd000e0ae908826a58949566b68413cd8686071fb0a53dbf1cfede77ef24dfd7a1a5
+3a41929663c1c9f71bbceb9e457140e0d2c11edfeedfec70832fa3e3f25e0099b60117c21d95d8
+c1aa64faac7952cf907dad813238d58a7c0338fa7e7343a60ee0dac92e8ad2f7d94e38622452e8
+caaf194ee82d8ae4eaa9867c4b607345f55e9c0ec8d645a0aa1267edd7e9ec0919b0ef3b127304
+fb30fe28fa6f49ac178ee69bd8d75869cbe9843f0ee896ade39c9167be8ea65c78cb3bb3f1eb2d
+016026f4b3c51c7ace0ce11273facafe3b3c392c28acc6065d9503a81ff225461a812a23570b0c
+96b15aba1eb5a211424cf34a431f05d80e5a5887c19c4340fd718d0bbfd514d0fd72dc885c1fb0
+3a55968eba1d4b62450fbbd408ec28761d16321eabf76b74e38b1d40142489397190524b540390
+ae9b564e285f6798934435b9931a5c0779349fa6768ac554bd17b82da9589685b9b333a781a6ba
+cff491de55dd9c50b92711bccbcda201f6fe36e510b9e74a8d23fbb5035205a6e77500b2748c8f
+7036232167df4d34eacaf854318bf7b01fda85b1472af13bfc5bc6445c4e60175cfba592bda358
+b1a86c91b4a4ef1d0a4a63b80ef2c2f3d3f5dbf751dc75858af77952df1ebe4339fc3a444513e0
+601f7e23ca5963e61eef2aafff325f9f03a90f4ec6c29ad7a77de3602da50c2f8ec071f3d8c8d8
+cbb300c2df61316c5883b98ffb0157fecc6744854c4fed481b4c19b7bd31b5b4473dbe71ff557c
+f436a6cb6bebc7d073e4c7114a0dc75ac9eee371b0dcd75be58a03de5f52c5383a3eea71e99a01
+fd3efc2d300b3c16e36c130e426ba5f4dd683ebc1a18b1286297a936d95239541b8fbec696c75d
+1e4dbbcb4ec6f21b7ba241bf0f8fffb3c9bc3213a5ba19d271905c42f8ef9edaea21ecaa187add
+8c4ad0236f7c846d5c70debae7bf7a16f17d7141a995bb78ebbfbc5bc2a9ce8424be1848a0e36f
+cd9a5a9728469be7052d8023da704fbcb943ed61937e37312569b89f8b1d06278e80d55de50210
+3ed527317f89239b41e152fe3e7218a138ce125ed50b0f18873396272540e832a185987f8332d4
+9aa9948b4841b063c14587aea8ceec0befc1f3bc56dc2e620f610f6d97e20b36c59fbad963d6de
+c930bdc3e824214183d73d794b32172df2153e9d3d22a7488d822f1f59efa9ba71e54738c3ff4c
+5f183d5b2ee491cacdf80db842d08249bc421baf4c3952df07d0750a7ae087ca45f1a55f3f5f9e
+7f48e3500bd07a0ccd6a590b3f69dc1942d4079bf3d263f7b4628390ca6d4ed4484dc088180ee7
+aae4fac0cb7d5591b503176b7d5574b96c93522159bf96fbac1833a87ffdbebaf18f8e0a685c6e
+25863531492e412879511193b5d9362326398fe89d84955f1a4188153040c8e0b305782111979e
+afe22f9efc3d892b07bafd903bb3cdb219b9113a7e4e851e392a76b6048284f1b9f949d7595dd7
+0d5682839f1530b0538c6eda2b115eb1abcd1a7971b53851d4f182238958941e9860711626f945
+b76b12ea0a52b3828e7fbe1ab5cf06a6ad70f1360b02f177e7467755abf903eecb882738821a84
+89436ad95165332d922895ee54f616b2acb25d3b9d318255725f7b6c1aaabd28ce832c8cdf0f04
+f04bf584e7b28633e241dab407bb8ee15f5c77a0bcb187f59fb9333b6aebee1de49000952b4a4e
+e1038845d0df3a40f7745b27898b0065c90eb8b7165d38fb03a2ae26a714aa0862ddcc1f103192
+c7ab31996f7470ef26f47969e2ca3c226f79ae419fbde437f83d0c828f0eaad2e52d2d724b8c1c
+8b7de81a657258626983a4ca72e58efb955c93061eb0b68a3e330c6d3b4c470328d74ba501f092
+5cc899206483930f47745e5d7d2174ed0c047738b8371e938e16576959b5a0d4147272b4c5395c
+cbcda437879db81e41307cae1f9f7a5b42499304dcd9a5b9faaae2c2c2be82fac01f1a11c6f4e0
+c639048f783cacd5f358fe4481f75bc3f7676d9a0b2ea9258afd7dc62f4832c2572882aedacbfa
+c1fc1ac4a25038a17fa58fbcc6f87894056d90d74c3b06e1606e4609dcd50b9948a9b5ef2e1efd
+2a8003ef2e01f133086362637501a82a5e230905b36c66b2a403da36b68f3fc3f2c7c181c88eb2
+fe8037d5677c7c749c3aa48d2d73399219fb5d2817f266a77007534fd25c4d06ffbff3fe3b0df8
+ebe56b781430b043de2d295134eef3c3a96cbab4803a018df11c2f6d59d2ad7ebf772e0d5e5532
+968b4829127c7a4c1a1c611f1807d1d4d9daa9683b2a54fcad387780706b0c45cf07734093892d
+1c7f4bdcfbc6c391c87c0c52f5257a4c49b9102ac1a3ec743d9ec55f2b78fb4b3f615ea48359f2
+236d10c2586b57bb27489fa290fdbd134d2f9bf67bd27ae0c1c474c35b6a50dc5fb990bf6cc1b2
+2543a8601201e168e79b3e9429eac6d98a8b9c2ec43cc4521dcde98aa4c60583906515e274e4a9
+fcace4a8d5210571a4821d40054bf0c0dc3d621b2275d99d016e857784fc33b3f068a41cfa47bb
+5bbb5d0fa6257a2d2cbe22433b74911dede67f6d729a22711f6ef240ab6b8df2adda47bd86e02c
+fee1f9e0f288ecaa75cc63ec86da01cec2f849ff4bb0a8c28500073b09d77f9df706fc0999dd48
+be3ab0f969259dc9eedba781a7b521856d3e9baa85913af97f21dbeb0a83fc660bef71df281d00
+81ecebfd4926a76557e1206590cc945ed426d802a044272369a7514834ba26e6f9bef66c192d94
+1eb85166fb6e723a9698cc1a0de34eef2734dc075f3a34545ae6fe75a8bf27f110780897221637
+9eed6af9bb7abf03dfd6ba60936a4060f4c1ddf32f84f8d410dd557bbaeff27cff924a5bb2e2fd
+6640cdee35b9ed33a75f9e6dba4b006ef2d0fa0c0450d6599af701c356b2347bdf51743169a795
+7180749b050629b40e5e1c45e617e379ade775125bfc88543980b0786b0dafe1af578f28dbaad1
+f26cbdad9204af6c3eeee50c877de0a30c1102e89acfed8f11b2ae902474580684af437056dd95
+a5e76684ab53e7ed4237c70391f944ada68815645d2180d8c19fd6c5c2bd7992830ac576e556a0
+d4bf58985018c9c7be5d67e7d0b68509acd089ef12d906da12dff7b46e5815312b852a91596021
+2c4fe808d8d515c07a32e3c6cc0e28bc29fede40f0cf8f3bde27d26330ec976032727eb358caee
+95f6dfdd4dfa4e3d7cd7394c00ef74386f22ed1e660ca0a2299c45909ed085332c875877c2ebff
+60bccb1d131569a65162215f468979fc6012a039a6a1a41dbfbfb965c82a6267918b091e898ab9
+a75cc7ea2bc2d8c8f6e4332974ef6658c4d2c5175b182125bca2612b68a70e5245fbada7d25057
+6f09b34137b90b32e032e2bcd026180bece2da3e7a63818ec474a22a97caa11ddf2e76a90714d6
+6840b70ffe9348e7ef138144f8dc5241b6b72d46465b803ee88571ad9b1dac5e141d39c7011079
+a5f867842b48ffc95e69ef85d68e16b5ae0aca666fcb0e5d5ba83c6935503304da411bccf06b31
+667b16d67c24ddeb44fbfe435f9d8b0e52395a3268f7fbe4c8f7f5507f38a24980703dbda5595e
+13d601a99b16d4cd22ddd43ffbc488d3c98ea2fa1c2d2943b1c6e81bc1e8dd97f3785e6dc70004
+ddb5000e90a4a412ca7c8f5f4392e0d570b9ecee1481e62370441491d5954bba48bbe7431651f6
+abca0f8d6b76ea2bae0472180506fdaf1538f4485a2aea55611677fecf6eded9f75353bfe870bd
+ac919b8fba323d588f7184d5afc702407a7d0ce6617bbd3a575523f0c5416e276500cd8610cc27
+6944bdea255789ef593f0ca46b47a0b14463ca31db141846a864263656a128bb4dedb9eec86061
+85b02b0847b95633be22e59c9412b7678e491e0a309492040eb91d05c77117b8d0afc8803a83dc
+ec688abf2793f061e5d5fae769e7d1ddd468227a6b2aaddae832a630ff4aa030e7f125dd1fff30
+04b99f5cb5f763d2337a0c2c1c8960ba7227d5a1c4b1a6c9974e54a8cc45b962ad4b4f15f6a8e6
+bc6985696923df5f6e3b75a014f71bcb5a2758378efe4ad6037901d5d9ceac1091b9957694e083
+86adef28fe2f143fc076813497a380bab3c175c2f4a30202091f8319a2dfe0380bfc464fee43cc
+06ff89a82d8f4bf93dc508d33479382441abfcd3d4cfe327a1e7b751d7b5ecca935f41f1696dac
+b7145878e161d1287f832955e2ee7c56bd8448e43beb5d6a7f58fa5f4c45399634f9993dddfb53
+59042cd7cd343613ee5cd2d55d82ca53a2ea2e953d64bd1f3175b0d1197a1d4324bb3f3b642d2b
+98eb8df0bdcdf2c2ae8437066f86201b2b120efe360e5357f1f08d395748e5f8a32cf69a6d89ec
+db7f8e6e3d7d5f2e0a2f8ac09a27bec020fa832c74f0ab87fb9d54ee3b6c18c6830b09cd9d2b2b
+3e5b454a761a7a9577bd4122cd4e69a92200fc7b2b6c28ee23a92c79a06585275553c1b72b91d9
+07982b145e476b1231e990a295ffa970908df92a2805b6872a15728ac4f3bc3f813fb780a4e2a1
+732b3620b3d710acbfb8df640a46e912738aae1651b0e58ed9b3c79596931053f2d680d531822a
+283c3ae34ae233023a69e022f030f09ebfd4677a6d6646f9b833e2dc08d3453029352dffd44356
+0511cf8298bec82a764a26040568875067438690688a08b03d8bb576e9780f97412e5fb9cdc8d5
+04600bc000bf8b06bab14cc3b293e85cb8bec9127de5dd0a2d36220610d31a1c81d22f3dff4f5a
+32d70795e0242f2558ca02af359919d7a483fa0239876c5de0c2e56bde225057205bf6b9734d07
+09eec3473a3365a1aa46339c4b91e57c7bc09b05d12294a7067289f107d3b17d2574f10d33a2d1
+bd273bfd18cadc9f09b1be0ae785d4ae6bbf7ccd50cb2b92e10a374af5a99c111feef77a70d726
+89d9c05cf8eca2b28549c6b3b33e8ce4e2a0ced04798bb90c7891d6bfa68ba944322807cdbbca6
+106282ffc4ed92465362aefa21b1ac171cd45305aeb4e95bda64ec6d195501214a9f8f60f97617
+880b6ad7af07c273c0d3a02d7e89fc4b1778c8518581743cdc54fc805ba561be287bdb249f22dc
+626948a781b6b67c79a5a1c362e45d9cfe33c06211d97e4409ed1527e40e1d0f2fdef36c296314
+c817d496dca8ce772f9750dacb2baa0128995eb7cb6920da999ccabed0a41cd6d1ea5eaf915407
+977133050a73ad80e6392ffd3f969ec093cef801c35bb88d44319fba9042eada9ae99184c4f4c4
+117a002ebb136480e754da7e9c8c1b5a4d84e8231ee00f06fcda81aa3216831e318d32d4390499
+ae3db2d828dc013a72f4b8d50af4e6577d321a040fa5b6597a09277765497c7abce2c2dc6e9dee
+a5ce316bc44663926beec8f59c5ea13973693a93580c64f7b914208085dc06c970d14333e58fed
+b47db7b2efb34b6e84afdf0394118e7c85754d84f4051de1a042888bfcc7d504c919424cb6212a
+980df3e29d99def5fe46c5f3eba9a6593100fd8c2a31f4f5217e790b4d179632154e9a135868db
+504a8d9afdd60f2b41310677a3a4e4538a0ebed0fdaed96dcd6070a8a1087a39fcfdd277ef7c18
+a4c84766965920873f6bab1c2fa6b331688eac45d45c7c711370711176f6163261ea7282c03832
+56cb36700dd75d219b76cd8674717e33c18588592ffa73f6888a7a17e86127014ebf9f845020a2
+8cdfb497491efc81f1942712805b6d68798ea5b825e700ae341ea1ef3777923e71ca7d89958426
+970d26a730fe72b48d971233928863fb1e838aa601a6ed69f5221f092caafda5166b75472657d4
+e90f339cbc7e8368bdf34d83c5a5c343329d2b46db93cbca2ad6b195ae767316995baf94486568
+dbc607901bd15dd5f9d51bf7ff5568cafc50b1252f7f03865a67a170c1943adb0c2e9b4e9b9023
+b08c7ce8d5f54f2aab0464fe5ac993a3546db65e1dfc9e3408d5ab4d5f32b3b3797948b14d5a8d
+0c3299fd37752945da2c501097553635c3b5a8d9a0395f67c481a8b1462e4aa597a228ae84512c
+47e2bdd2c3b6d80b425aae69b37bf9793b2a0c5e09ed6332d1300f938889d0f62039d381ee82a6
+59aa295c2234f3cc6854eee693c7ab84f1acbca890d874b3b685020254604b974f883ed14c7b25
+48071375eba9eb221aa8d0dc07fd71a53748b264436d8ba9fbbe9510b2cf87a9b9d9d9acfe80b3
+0d701fd058c683c45a1e7c58e74f3fbd6e3f72660aba509aeb817556ed7d69b4b94ac2ef044748
+dd04b11ffa69906609d3b3d215feb84f5e1643e30046e872fa63960d3ea3ce8a943cbe2d420276
+a3a0d1819d8e7af25d8e1b40c3287c3150763a05c3c91313af61f7b43d35b4f89845f3c13d4d97
+de7c02499ac5b64088c4d5bea66ccd0bf1e82f032cce6be4d003f68ffe2ebc7880134f6ddb2174
+ae418398b1f328005757412c587b3021171c5241265282f3503f9f044883a4cc6c9d8525c0515d
+b4d66fa9763d03f5da64a1558e2981dfed80e9729d37d90374147066f209d7b64df3f3e3d9c2ee
+dd620bb695e4245064d4cda9d2c72df5cffc4ccc821a9978b9bc4ceab5b3d9807a3191d839c2a5
+b0ab60ab8e2c9596fa44ae3dde2675c7712e121b403643040866fb55664aa7d6b957bee16ca0ef
+27878c2d74c00b18027bb80e9a82a5e2b9e4efcd5d76083f45bb62fbbc504f7b235af81d9c07c4
+008cbef287cfb0ddf9a3d549a53049fc9f3a2f9f26897f1d4bde48ffbed2dc08fce3979d2d9049
+b4a3ba37ee668eb1803a6bf75cf09d30287a555c921e306e4fd7f53ffe59bd53284076eeb4dc25
+7aceaa3438fac6f09273302f2429fd8391adac8207f9e5e779703a846f8cdfe1645bac22d55102
+00140e93b534704e462a46e13fc78dac987922e0a5e9c5b7070b51f14ea19964d864ff7c56b456
+4784cb3ad5f0aa9101264e9b43d4995c6c5a1399dfc2c60d316558f46390b581339ec3736fcaba
+a4569522f314b3dbf08cff1b54bfed3b61b8c4111d17db990826700ed994bbe1f2b787935f0e7a
+722ef618dd5e853c8e29ffc55c7e34bf1b9da69a4778fc486e663a570659797d26147b362998d7
+8e82cfd4bfb741f72140766d37229d9886f2cab2b61f652cc7f85c12ca1c77dff0d17430ea244c
+73ded450d7371adc8e78adddbeb3de64f4dfec55e0b487fdebb3f8aaa3fe7744a2f385a8d507fb
+7381214f82b28aa4b39f8456fd990d7db2172e72cc306942d6e0553e0b426eff686e224e9b0a4d
+e46f7a98d686bfa9458438d8efcdee4c69affef891073a459ac5f587fa9a6ebdbfec51e993babb
+f872449d3ab69c043f560659dea86f6c24ca7194560c382d09517d38719bab0676a40a8130f051
+2b263116320e3e2a83d52770e72a5be7773d06332f86747d3b0cb5f7ea2d1d6d356d2b743c20d3
+ec9721bbca36ff9a1e7efe21f959b2883a0a8c02d62da83f0010c76084e179bc67462388504f3d
+4d6a89e15f3c0fd35d2ae1719bdc0fc702f8c5556d4abb054acfab54c14d15b4c4d90ec71de9e5
+80cdf83bc2b890ce1f65688f125b816ef6d24754bd72e20ea7a1ad6d9c60abbc10971bbc364a58
+bc2ce4865c0bcaf2374d9589552494a9691b59ddecaeb552fab43afb2fcbd7d07d345f89948528
+cca05a22a08b6654daa467d1384ed343721871a58bacb0b03b93e5e0b946a7baf251bb449b9c65
+682b30c6e27d9afdcfbbe51a13607b5b64c0b4fcdf743d1f7c48218350a75e7ecd508cb4a6bde7
+2b2fd9e93dddd9a8d5832ff37cf558079e9a20abbe9629326e8a40f7a13d4bf8dc734ad8c2a727
+54e8ea8e3662affab23b350bff49b9bb47d3cdae2dd4edc648097295319926682f11852e61433b
+01bc2aa1f5c7360fc6d02e553d3213abb82fe214b287835c55a5d0d9d2646073abe76df9d9b1bf
+382e6c9a8347e2d9a1d5b5cec7204dbe62b001427b16da0b6a6d84b2137da8ab7b6e411e938e3c
+7ff86b64216c55096271e463788a6e022fbd8a611dc0ac42633cae1065dbbeb9d51d97a0ec45de
+c057353c023d212be260f28925bc818f4fdcdb0a705e8c2eead305192cb2d69e0dd314ca8443ba
+ea7aa551dcf0fc83951829001dbde23143347f71e19338e3be489e900dfc627efbf44e2cb42b80
+a858e4c5ce481d6a6c8e343019d37aa696f1820b25c3bf5e3511a48196ac133194037b20a83bd4
+82e2610c2c6a71bdd1f34e5e3b4da1ace18e6a32b82b68cffbbcd2eb759682e2a6cfe366381fd4
+7e80c9ba832ebff2432a7bb0a83ba097b4c681000267b28f25ce0dacd06e34055d5e2393426409
+68539b4f0574b07f65c42e9bc4ba58e9b635fd87a0e65e72da6ad6d906c91fb0a9763c50e4e04d
+9f285c8cfff98ce5ba1a3e113302a7d8b13b33c8acb63896cada9cc50fcfe92ee8203858e9497b
+ee0d59f88dff202e071481376123cd47825e746b3ac725a1cfdf9c6886059af01cdbef20e6393a
+61171903b93e6e90e908999122860ed8de6749f66c9845c4ec534a2c4f6d0667228eb0353480f7
+909f2eca8c9fa32910a4be48cbc44166ff8602342d2981566c46337d862d36b6bd321ce5f502cd
+13c427d922b8e1418cfd71875500b3c804c4caf7267c143f82cd87085ee0292416e864ef411943
+0b65f20ac79bc7685dc09b2370ae34fb4cd48950d0fcd7808211ee2894bdac240c9f18ec785642
+e089980297239d00b3ccdb24a985516f64aa0cdcc26287e1556ad69cd30bf1057232ee2c74d1c2
+069fafeff795e3a0c4f14d381387b0bb48a01d38ef710bcb3f8a81f1ad577872e9e571735a8bd3
+aea8d182f2937534d1a2ca1aed1e8abeceafc61408e9aecd252ac82420fc86598ff281ce58dcde
+5905c1283ff22e7ebc5fbb4f773fb0d55b2d001f5ecc8a7de7f16cfc6ab5280edb766583d709ff
+5c9cce4c9fb568d66f600e5e0ff57e196202a5955fd2de21cac330d3f64623f3d7e57bce564546
+187e72386220a534f923fd49e546532c2709d7bbb8658bfd8b02e624142e0b59669018dac6f971
+087e98b0885eee04560d2e8fed752a63a032b327c270712652e93be6d8c94dca29bd6477c12992
+42ea0c3e3ae91c26890e52b31a995677cd0fed93752b494e95195714d0c2f24424519834382bca
+b5b080da
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if
+
+%%Page: 1 1
+%%BeginPageSetup
+%%PageBoundingBox: 0 0 90 58
+%%EndPageSetup
+q
+0 g
+BT
+8 0 0 8 15.884005 39.545998 Tm
+/f-0-0 1 Tf
+<01>Tj
+1.514999 0.00700073 Td
+<02>Tj
+1.495499 -0.00700073 Td
+<03>Tj
+1.507001 0.00100098 Td
+<04>Tj
+1.5005 0.00999756 Td
+<05>Tj
+ET
+0.5 w
+0 J
+0 j
+[] 0.0 d
+4 M q 1 0 0 -1 0 57.785614 cm
+11.902 9.535 m 23.902 9.535 l 23.902 21.535 l 11.902 21.535 l 11.902 
+9.535 l h
+11.902 9.535 m S Q
+0.5 w
+q 1 0 0 -1 0 57.785614 cm
+23.902 9.535 m 35.902 9.535 l 35.902 21.535 l 23.902 21.535 l 23.902 
+9.535 l h
+23.902 9.535 m S Q
+0.5 w
+q 1 0 0 -1 0 57.785614 cm
+35.902 9.535 m 47.902 9.535 l 47.902 21.535 l 35.902 21.535 l 35.902 
+9.535 l h
+35.902 9.535 m S Q
+0.5 w
+q 1 0 0 -1 0 57.785614 cm
+47.902 9.535 m 59.902 9.535 l 59.902 21.535 l 47.902 21.535 l 47.902 
+9.535 l h
+47.902 9.535 m S Q
+0.5 w
+q 1 0 0 -1 0 57.785614 cm
+59.902 9.535 m 71.902 9.535 l 71.902 21.535 l 59.902 21.535 l 59.902 
+9.535 l h
+59.902 9.535 m S Q
+0.5 w
+q 1 0 0 -1 0 57.785614 cm
+11.902 45.535 m 23.902 45.535 l 23.902 57.535 l 11.902 57.535 l 11.902 
+45.535 l h
+11.902 45.535 m S Q
+0.5 w
+q 1 0 0 -1 0 57.785614 cm
+23.902 45.535 m 35.902 45.535 l 35.902 57.535 l 23.902 57.535 l 23.902 
+45.535 l h
+23.902 45.535 m S Q
+0.5 w
+q 1 0 0 -1 0 57.785614 cm
+35.902 45.535 m 47.902 45.535 l 47.902 57.535 l 35.902 57.535 l 35.902 
+45.535 l h
+35.902 45.535 m S Q
+0.5 w
+q 1 0 0 -1 0 57.785614 cm
+47.902 45.535 m 59.902 45.535 l 59.902 57.535 l 47.902 57.535 l 47.902 
+45.535 l h
+47.902 45.535 m S Q
+0.5 w
+q 1 0 0 -1 0 57.785614 cm
+59.902 45.535 m 71.902 45.535 l 71.902 57.535 l 59.902 57.535 l 59.902 
+45.535 l h
+59.902 45.535 m S Q
+0.5 w
+q 1 0 0 -1 0 57.785614 cm
+71.902 45.535 m 83.902 45.535 l 83.902 57.535 l 71.902 57.535 l 71.902 
+45.535 l h
+71.902 45.535 m S Q
+BT
+8 0 0 8 15.46401 3.602004 Tm
+/f-0-0 1 Tf
+[<06>-808<07>-813<08>-778<08>]TJ
+5.944498 -0.00599976 Td
+<09>Tj
+1.555502 0.00599976 Td
+<06>Tj
+-9.445001 4.505499 Td
+<0a>Tj
+0 -4.505499 Td
+<0b>Tj
+1.889499 6.096951 Td
+[<09>-834<06>-807<07>-813<08>]TJ
+ET
+0.8 w
+q 1 0 0 -1 0 57.785614 cm
+17.902 21.535 m 17.902 45.535 l S Q
+19.84 16.434 m 17.91 11.192 l 15.984 16.434 l 17.121 15.598 18.68 
+15.602 19.84 16.434 c h
+19.84 16.434 m f*
+q 1 0 0 -1 0 57.785614 cm
+29.902 21.535 m 41.902 45.535 l S Q
+41.766 16.86 m 42.383 11.305 l 38.312 15.133 l 39.707 14.895 41.098 
+15.594 41.766 16.86 c h
+41.766 16.86 m f*
+q 1 0 0 -1 0 57.785614 cm
+41.902 21.535 m 53.902 45.535 l S Q
+53.766 16.86 m 54.383 11.305 l 50.312 15.133 l 51.707 14.895 53.098 
+15.594 53.766 16.86 c h
+53.766 16.86 m f*
+q 1 0 0 -1 0 57.785614 cm
+53.902 21.535 m 65.902 45.535 l S Q
+65.766 16.86 m 66.383 11.305 l 62.312 15.133 l 63.707 14.895 65.098 
+15.594 65.766 16.86 c h
+65.766 16.86 m f*
+q 1 0 0 -1 0 57.785614 cm
+65.902 21.535 m 89.902 45.535 l S Q
+88.312 16.579 m 90.66 11.504 l 85.586 13.852 l 86.984 14.063 88.082 
+15.168 88.312 16.579 c h
+88.312 16.579 m f*
+Q
+showpage
+%%Trailer
+count op_count sub {pop} repeat
+countdictstack dict_count sub {end} repeat
+cairo_eps_state restore
+%%EOF
diff --git a/3-grafy/sousedi.svg b/3-grafy/sousedi.svg
new file mode 100644 (file)
index 0000000..e8fd428
--- /dev/null
@@ -0,0 +1,585 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="119.32"
+   height="74.230003"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="sousedi.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend"
+       style="overflow:visible">
+      <path
+         id="path4321"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6,-0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible">
+      <path
+         id="path4297"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible">
+      <path
+         id="path4315"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective3654"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3654-2"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3654-6"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3654-1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3654-4"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3654-40"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3654-28"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3654-7"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3654-3"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3654-9"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3759"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3759-5"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3759-4"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3759-8"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3759-0"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3759-9"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3759-3"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3759-83"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3759-2"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective3759-1"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="4.0691681"
+     inkscape:cx="42.879397"
+     inkscape:cy="12.800434"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:window-width="1272"
+     inkscape:window-height="1004"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:snap-global="false">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2816"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       spacingx="0.5px" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-290.12,-503.44469)">
+    <text
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial Black;-inkscape-font-specification:'Arial Black,'"
+       x="313.05228"
+       y="507.15948"
+       id="text2818"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan2820"
+         x="313.05228"
+         y="507.15948" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="313.41553"
+       y="527.25916"
+       id="text2826"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="313.41553"
+         y="527.25916"
+         id="tspan2830">1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="355.98376"
+       y="522.81683"
+       id="text2834"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan2836"
+         x="355.98376"
+         y="522.81683" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="328.56552"
+       y="527.18915"
+       id="text2846"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan2848"
+         x="328.56552"
+         y="527.18915">3</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="362.54974"
+       y="524.07953"
+       id="text2850"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan2852"
+         x="362.54974"
+         y="524.07953" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="362.10556"
+       y="486.96829"
+       id="text2854"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan2856"
+         x="362.10556"
+         y="486.96829" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="343.52051"
+       y="527.25916"
+       id="text2858"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan2860"
+         x="343.52051"
+         y="527.25916">4</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="358.59052"
+       y="527.24915"
+       id="text2862"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan2864"
+         x="358.59052"
+         y="527.24915">5</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="373.59552"
+       y="527.14917"
+       id="text2866"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan2868"
+         x="373.59552"
+         y="527.14917">7</tspan></text>
+    <rect
+       style="fill:none;stroke:#000000;stroke-width:0.625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3749"
+       width="15"
+       height="15"
+       x="308.44052"
+       y="516.37915" />
+    <rect
+       style="fill:none;stroke:#000000;stroke-width:0.625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3749-2"
+       width="15"
+       height="15"
+       x="323.44052"
+       y="516.37915" />
+    <rect
+       style="fill:none;stroke:#000000;stroke-width:0.625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3749-24"
+       width="15"
+       height="15"
+       x="338.44052"
+       y="516.37915" />
+    <rect
+       style="fill:none;stroke:#000000;stroke-width:0.625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3749-3"
+       width="15"
+       height="15"
+       x="353.44052"
+       y="516.37915" />
+    <rect
+       style="fill:none;stroke:#000000;stroke-width:0.625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3749-6"
+       width="15"
+       height="15"
+       x="368.44052"
+       y="516.37915" />
+    <rect
+       style="fill:none;stroke:#000000;stroke-width:0.625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3749-8"
+       width="15"
+       height="15"
+       x="308.44052"
+       y="561.37915" />
+    <rect
+       style="fill:none;stroke:#000000;stroke-width:0.625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3749-22"
+       width="15"
+       height="15"
+       x="323.44052"
+       y="561.37915" />
+    <rect
+       style="fill:none;stroke:#000000;stroke-width:0.625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3749-1"
+       width="15"
+       height="15"
+       x="338.44052"
+       y="561.37915" />
+    <rect
+       style="fill:none;stroke:#000000;stroke-width:0.625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3749-4"
+       width="15"
+       height="15"
+       x="353.44052"
+       y="561.37915" />
+    <rect
+       style="fill:none;stroke:#000000;stroke-width:0.625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3749-245"
+       width="15"
+       height="15"
+       x="368.44052"
+       y="561.37915" />
+    <rect
+       style="fill:none;stroke:#000000;stroke-width:0.625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect3749-7"
+       width="15"
+       height="15"
+       x="383.44052"
+       y="561.37915" />
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="312.89053"
+       y="572.18915"
+       id="text3854"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3856"
+         x="312.89053"
+         y="572.18915">B</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="327.63553"
+       y="572.18915"
+       id="text3858"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3860"
+         x="327.63553"
+         y="572.18915">C</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="342.43552"
+       y="572.18915"
+       id="text3862"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3864"
+         x="342.43552"
+         y="572.18915">D</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="357.43552"
+       y="572.18915"
+       id="text3866"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3868"
+         x="357.43552"
+         y="572.18915">D</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="372.33551"
+       y="572.24915"
+       id="text3870"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3872"
+         x="372.33551"
+         y="572.24915">A</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="387.89053"
+       y="572.18915"
+       id="text3874"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3876"
+         x="387.89053"
+         y="572.18915">B</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="293.44052"
+       y="527.13416"
+       id="text3878"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3880"
+         x="293.44052"
+         y="527.13416">V</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="293.44052"
+       y="572.18915"
+       id="text3882"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3884"
+         x="293.44052"
+         y="572.18915">E</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="312.33551"
+       y="511.21964"
+       id="text3886"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3888"
+         x="312.33551"
+         y="511.21964">A</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="327.89053"
+       y="511.21964"
+       id="text3890"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3892"
+         x="327.89053"
+         y="511.21964">B</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="342.63553"
+       y="511.21964"
+       id="text3894"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3896"
+         x="342.63553"
+         y="511.21964">C</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Nimbus Roman No9 L;-inkscape-font-specification:Nimbus Roman No9 L"
+       x="357.43552"
+       y="511.21964"
+       id="text3898"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3900"
+         x="357.43552"
+         y="511.21964">D</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend)"
+       d="m 315.9405,531.37918 c 0,27 0,30 0,30"
+       id="path3925"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
+       d="m 330.9405,531.37918 15,30"
+       id="path4925"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
+       d="m 345.9405,531.37918 15,30"
+       id="path4927"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
+       d="m 360.9405,531.37918 15,30"
+       id="path4929"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow2Mend)"
+       d="m 375.9405,531.37918 30,30"
+       id="path4931"
+       sodipodi:nodetypes="cc" />
+  </g>
+</svg>