From 4e9d8fa51aadf3b61b06e70bc30d2aab16843010 Mon Sep 17 00:00:00 2001
From: Pablu23 <43807157+Pablu23@users.noreply.github.com>
Date: Thu, 25 Jun 2020 13:12:33 +0200
Subject: [PATCH] Next version, Working with working Progress bar
---
ConvertTo16x16.csproj | 1 +
Program.cs | 79 ++++++++++++++++-----------
ProgressBar.cs | 102 +++++++++++++++++++++++++++++++++++
bin/Debug/ConvertTo16x16.exe | Bin 6656 -> 8704 bytes
bin/Debug/ConvertTo16x16.pdb | Bin 19968 -> 24064 bytes
obj/Debug/ConvertTo16x16.exe | Bin 6656 -> 8704 bytes
obj/Debug/ConvertTo16x16.pdb | Bin 19968 -> 24064 bytes
7 files changed, 151 insertions(+), 31 deletions(-)
create mode 100644 ProgressBar.cs
diff --git a/ConvertTo16x16.csproj b/ConvertTo16x16.csproj
index 8447e6e..21f5b58 100644
--- a/ConvertTo16x16.csproj
+++ b/ConvertTo16x16.csproj
@@ -45,6 +45,7 @@
+
diff --git a/Program.cs b/Program.cs
index db5e3e2..dd4f4aa 100644
--- a/Program.cs
+++ b/Program.cs
@@ -35,63 +35,80 @@ namespace ConvertTo16x16
//C:\Users\zamk\Bilder\RickNice.jpg
- string bildName = "RickNice.jpg";
+ Console.Write("Geben sie den Bildnamen an: ");
+ string bildName = Console.ReadLine();
+
+ Console.Write("Geben sie den Pfad an: ");
+ string Pfad = Console.ReadLine();
+
+ //string Pfad = @"D:\Pictures16";
+ //string bildName = "RickNice.jpg";
int PixelAnzahl = 16;
- Bitmap bmp = new Bitmap($@"D:\Pictures16\{bildName}"); //
+ Bitmap bmp = new Bitmap($@"{Pfad}\{bildName}");
Bitmap outcome = new Bitmap(PixelAnzahl, PixelAnzahl);
int Width = bmp.Width / PixelAnzahl;
int Height = bmp.Height / PixelAnzahl;
+ int counter = 0;
-
- for (int i = 0; i < PixelAnzahl; i++)
+ Console.Write("Performing some task... ");
+ using (var progress = new ProgressBar())
{
- for (int j = 0; j < PixelAnzahl; j++)
+ for (int i = 0; i < PixelAnzahl; i++)
{
-
- List Argb = new List();
-
- for (int x = Width * i; x < Width * (i + 1); x++)
+ for (int j = 0; j < PixelAnzahl; j++)
{
- for (int y = Height * j; y < Height * (j + 1); y++)
+
+ List Argb = new List();
+
+ for (int x = Width * i; x < Width * (i + 1); x++)
{
-
- bool Exists = false;
-
- foreach (var item in Argb)
+ for (int y = Height * j; y < Height * (j + 1); y++)
{
- if (bmp.GetPixel(x, y).ToArgb() == item.Argb) //Zu switch case umbauen
+
+ bool Exists = false;
+
+ foreach (var item in Argb)
{
- Exists = true;
- item.Anzahl += 1;
+ if (bmp.GetPixel(x, y).ToArgb() == item.Argb) //Zu switch case umbauen
+ {
+ Exists = true;
+ item.Anzahl += 1;
+ }
}
- }
- if (!Exists)
- {
- Argb.Add(new Count(bmp.GetPixel(x, y).ToArgb(), new Point(x, y), 1));
+ if (!Exists)
+ {
+ Argb.Add(new Count(bmp.GetPixel(x, y).ToArgb(), new Point(x, y), 1));
+ }
+ counter++;
+
+ double report = Convert.ToDouble(counter) / Convert.ToDouble(16 * 16 * Width * Height);
+
+ progress.Report(report);
}
}
- }
+ Count BiggestItem = new Count(0);
- Count BiggestItem = new Count(0);
-
- foreach (var item in Argb)
- {
- if (item.Anzahl > BiggestItem.Anzahl)
+ foreach (var item in Argb)
{
- BiggestItem = item;
+ if (item.Anzahl > BiggestItem.Anzahl)
+ {
+ BiggestItem = item;
+ }
}
+
+ outcome.SetPixel(i, j, Color.FromArgb(BiggestItem.Argb));
+
}
- outcome.SetPixel(i, j, Color.FromArgb(BiggestItem.Argb));
+
}
}
-
- outcome.Save($@"D:\Pictures16\16x16{bildName}");
+ outcome.Save($@"{Pfad}\16x16{bildName}");
}
}
diff --git a/ProgressBar.cs b/ProgressBar.cs
new file mode 100644
index 0000000..fc30f2f
--- /dev/null
+++ b/ProgressBar.cs
@@ -0,0 +1,102 @@
+using System;
+using System.Text;
+using System.Threading;
+
+///
+/// An ASCII progress bar
+///
+public class ProgressBar : IDisposable, IProgress
+{
+ private const int blockCount = 10;
+ private readonly TimeSpan animationInterval = TimeSpan.FromSeconds(1.0 / 8);
+ private const string animation = @"|/-\";
+
+ private readonly Timer timer;
+
+ private double currentProgress = 0;
+ private string currentText = string.Empty;
+ private bool disposed = false;
+ private int animationIndex = 0;
+
+ public ProgressBar()
+ {
+ timer = new Timer(TimerHandler);
+
+ // A progress bar is only for temporary display in a console window.
+ // If the console output is redirected to a file, draw nothing.
+ // Otherwise, we'll end up with a lot of garbage in the target file.
+ if (!Console.IsOutputRedirected)
+ {
+ ResetTimer();
+ }
+ }
+
+ public void Report(double value)
+ {
+ // Make sure value is in [0..1] range
+ value = Math.Max(0, Math.Min(1, value));
+ Interlocked.Exchange(ref currentProgress, value);
+ }
+
+ private void TimerHandler(object state)
+ {
+ lock (timer)
+ {
+ if (disposed) return;
+
+ int progressBlockCount = (int)(currentProgress * blockCount);
+ int percent = (int)(currentProgress * 100);
+ string text = string.Format("[{0}{1}] {2,3}% {3}",
+ new string('#', progressBlockCount), new string('-', blockCount - progressBlockCount),
+ percent,
+ animation[animationIndex++ % animation.Length]);
+ UpdateText(text);
+
+ ResetTimer();
+ }
+ }
+
+ private void UpdateText(string text)
+ {
+ // Get length of common portion
+ int commonPrefixLength = 0;
+ int commonLength = Math.Min(currentText.Length, text.Length);
+ while (commonPrefixLength < commonLength && text[commonPrefixLength] == currentText[commonPrefixLength])
+ {
+ commonPrefixLength++;
+ }
+
+ // Backtrack to the first differing character
+ StringBuilder outputBuilder = new StringBuilder();
+ outputBuilder.Append('\b', currentText.Length - commonPrefixLength);
+
+ // Output new suffix
+ outputBuilder.Append(text.Substring(commonPrefixLength));
+
+ // If the new text is shorter than the old one: delete overlapping characters
+ int overlapCount = currentText.Length - text.Length;
+ if (overlapCount > 0)
+ {
+ outputBuilder.Append(' ', overlapCount);
+ outputBuilder.Append('\b', overlapCount);
+ }
+
+ Console.Write(outputBuilder);
+ currentText = text;
+ }
+
+ private void ResetTimer()
+ {
+ timer.Change(animationInterval, TimeSpan.FromMilliseconds(-1));
+ }
+
+ public void Dispose()
+ {
+ lock (timer)
+ {
+ disposed = true;
+ UpdateText(string.Empty);
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/bin/Debug/ConvertTo16x16.exe b/bin/Debug/ConvertTo16x16.exe
index 062e25510348f4660bfac7beb7cbcb2c42c9a2e9..4e93c9c960fcc7dd42b914cc0fe525b6112a7146 100644
GIT binary patch
literal 8704
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
lj!*eA2sbi|F6<6VHL8
zH5bv$DwIO^=eqWQJO0=8@LhG|Q;q*LtN_mWf7O+^2F9%iQjPy~cl^igcwOs;
zUAlPbBF|x(%LvTC+Loi>RBo>N?B4OmQPE+=rF6*oleMz5X%CgR3Wlej1vQf$Xya{CsOj+5_
z@T1M`9ZCKCnl9(86V6HJ_mD(C6XpE6pH2F1MLJox8+}e+Zp!%s@kmsNSz?m65r!5+
zpSnh#DHeFQZrKxy2RlVU;@Mvn>F5Xs=$x4U-e5Qw4F$vuhrBKn{uZlq<~0Pn;>^o)
z=ry!QgUzj>aGSrOIkqE~q+cCv-VKTNLt5JJD$XDK)q@|@9xlr8y#4b-O|-R9R3jFI
zNJHBhPkfbRml-%5GvkM&+7E@uHw0g%e+3EYKkWy<_yYByKsL(JkF4Y0cwV55TCiqf
zigst~{2U?dxnkasE_JAD#&fu?4;GDG6_cs$PKDh{v36*nN)6m-zrfY}xGl3?TbH6UZ^U8JL0kGDN1x
z5%VRoPfcJoMi!)sIJOP?8U2;^ZqfGOZ)tB1kiO3Y`hatR8R9N&zW{YC9IEG2$k`T-
z0cj1`2j-eo4{itB;Qio3;1l3;V8-07;8oyya4UE(cpuoM(LKPpF!QrcAHe?M@LdMx
z*EZHVy_q0CS%(WJxp*Giag<^3W{#i#h^yA=4=$v+x!CIG8Cd5vFxL!Ni^y^L7
zSOobSs0jb%_~inf^^RnN_P#UPz5)AOFU-D?mM$!=Emob?W!XQr>~mK4607?mtNRC5
z_gSl_%IeFudLFZS{%ZBsruTMPy&gbdJS*|uuA8z1C}Ap`o08Y|4`O`K+79}SX1q90Ph60>iiH8w(W<3*e7fb
z6xMv3^PRXG$a)zkO!olM2D=xy26zBS`OkoBk$wqS349fZw%NY{Rs-Jx)&SoI(#|m;
z%l!#>FVbgp`YaHAvHu1{U+gS6Y&|d=xB-|0Wcz1o^Z{vS5wH&VoO|rIU*la`UJ2ZU
z{Pn=izzrH3wETXZ-Uj?CWvx
zMv=htRLswL^4W{rT#RrYqY9J@NdapD%|UKHqA4HeofYz}oU!Rgx&ZtAeNv|o=Yb;F
zE`prTloc}qLHUeaiPYaNWwf~tBeg=@BW0|w5+lEy(E`eaom_D%V%;y(1*nlaa~KsM
z)us}O%wMGI$VGeDmlcTaLfwA$(=XePnF7iYcgr)zr+C(Dt<2~1EAStE?vnBVzxCv0
z6o0Z0$#otfxDL=gFKT=h38op>#LXHp_hkA`oepYzU*~sgd_&_+TK3KB!Ny=A{7}nj-SQt(2EFilwMcB@~
zv3lm7JsZ3LjQxpwgM9yJ0(O9T-gz9%INlF_1$+qH5B@#arPLlM5L3OBWXRX`s!bc0
zZL0~#qkC|75(>w8zAKXQH0W543!qtIi6g(Hyo6Mm(B~LgB60C!^i{sr#|D_E?V~Df
zKXGYe$|#vGgTsv}^UI++K3hh~beWZjGXET^N56C+ZR$}nT?U6IQ_liSQr#EzqT(o{
zWV%c_->H?q8f6)Ep<(Q+JgtkviP3GvB(y}buFBK8IItOAj)O<27cpa3JEPR%xMqv&r*p(dty8hW^t0EZSl#ZRc@xdC*t!7xhASy^PBu#5m(x~uO36PGO*aCHLA#lGSPoy%^
zIZJpuMjaAwbV+A6mnFhbWx2nX?E$V|KJYtW95cnsnBqhd-=%EuVsJb73=Rqd7>0Au
zSp)tf{LiHq-*@Eb%m#9AFeAo0X0CsDw~%+PIY8bCv(D*Yu46O6Gr>25Zvk`7%muqN
zHXblDZft6EYZ-4I;A-#Q|BXBCw_qgl*{cn`;aK#hc13sMN-TS{02RYTWA5r;w6u9?4*W;*NyEgOwXL;d=
z&+!~vzUWk4=)ZSYAIf<)Vj(ZF5hHa4lGTw(5f_-53{s&GNBjWp%ORfi858Rj@_&;WN(U1TD
diff --git a/obj/Debug/ConvertTo16x16.exe b/obj/Debug/ConvertTo16x16.exe
index 062e25510348f4660bfac7beb7cbcb2c42c9a2e9..4e93c9c960fcc7dd42b914cc0fe525b6112a7146 100644
GIT binary patch
literal 8704
zcmeHMeQX@Zb$_$>wLIxg+&huf2W_oRA3jUui64?JQD6L$WG13SiIl7ly3+D)Nv?Ib
zd)mFDNy~ENq_G`0E-bVG(zHck2aWBt4cx+w^MTlj(Ld5O1`?!A3&eF@v@y~kg%zY|
z;lh#nd$W6|qv$&NvnVphee>R%H*em1^JZpeIeO+93K3Bl&y5>IUqQ{KU&0RuSJ0eX
z_q8Ow-1Nr!uZY8Mte=>*JiY8XGp#}G{WD#H<`w|Mf|s~^FviCIGuHA&oYUYWTzFny^E9$fY-(M%LG{)`*K?cN)^)CntEU5MRnw=j
z0K{{fR=amYTv0Bu&*`WZZ98?DQ7tMPvhC>nK=uy6PjBK5**k%z!-^Kp!rW-x^|zMA
zI%3i6I<(T8TR8qOKmqZ}w`dv9Lb@wVUqX#oYSbE6E^){mRv(fus{>uOHA=7`PSM!5
zwougJaeYZ2zb>|l)^u14cm9L79&O9jI~x>5PdgbfH>>E07{wj97~k9=;E!}V(bRff
zkx^|Sb)DW6^tv-ZNX^34I4L2S7F(VQrbfBM`4a^H+H2X(Jj7i*1pB+TOCe5WMCF6$
zvdzyfnQwmV=+>asVy18LV+QA%pm9qErbq+~q=nCr2pEX2&ydK$dftYzSc*~F@^}LW
zGm9w;XVDjRB#?mZVVZ<)~{(*4nq~297~3fu;m}LL~gAHm$Ai+VvYZTD=51rM7#vW^G#r4$Hlc{sc40XWoC~
z!5%LQLPCFm9Ds%N4(dk!gW!D+ygmrQds#9;S|bB#aQq{KfJ2Bx>9bIPt&27sIx#Yg`UTL>VB8IZ
zMP~{$7m(uqbS-b)b3lg?S
z{`(@!y&~TQObCX882%u{a6F7HmwLmGMxyi^f=AztaijG6fN?qz84ty2ZFn3q33`AW
zvSCl0OvxFP8XgI;hK$ra<#UKRACsC_%CU0c??TUi5$le`;vN$2Ev|D=qKx0@-ccU(v10f
zF5^>2&@W8imef0%l{bA}1C=s3)5!w+@$?#=R`vU4qp;^rF
z!GQWIvLQ-GeF}C8M8T+2pAahjrlhXY+o9hQ%V;N#q?$)aTa5Z1(n`>AB$c3Nk$N?b
z&-dXsLd@s&s89;A50TG_L=-vzUKG*iu{FRbtph-=oikx6se&tC+LLB>z3YUV0XA7YT8d_EVF1Gc*MFg~$+T
zA}mH|wKx|(i(U)iDZq<}+|MZ&UuL&0c6e=F|aZ{!V%ab&A3
zBV&BcGd=HoHyyUT3aSyi(%VBrjy-3(l?kW&p84*3XwRrqs20tAG-FoI4Y)H?Z=Ym{V+-
zT&As=s%vnZmo^WZUf#9JiyQrT$R5YdqA@QqZ)s=bWTBd`ENvKa$_uVFGy8!}rLti!
z-0X9_YFDh1$zx)iDXVBz8d~R!V%4N^V@}R+L#F4qxg6BhZ-(q9R-5
z3lNQ0r@R33`wqLtL)<=URAyyX-)|KH?67Ii0G)t!?vPO|P9dksu&t7ehg=pgj}DoY
zF>Br|(s&J#Yfq-UzxsSsu3)1S*eKPGBNQ}h;V}T}s_Sl;)4__Amep2^R9YtntxCx#
zQ*D13G+bUVF8ObKgH@|oFkRn?`wY8)G{+jjrXbxS4!uhUc!^^f6djk{Ibc`8H7cNT
zd4{8oZE+pMd)P8&Y{#oud5?Hk88`EeUGVWyt5~$WfDy>orbC9zDUX}(oRv4dnz~wZ
zZ5h_v{iTK3!KMartOHL5g8lO-Uv*v6uGAdo9UyO1=%C|bg6QbfgV>U!_A!(=-@C;CWkfCiK)^m)e(Wd~px_oGosCx`rT(miWC1|&4
zMvm)9{W?`3@8OKi$sa~ZOv00UaLzO2V$w^|?>v3?=;vFrz2AQHM_VbZ3!#Q|5)mMp
z#$=L#5@|_|h=k-m5Q>2&p^YY#XfmQJqJ0%Nq%Py+LxYk?Byf38G~**?ES5T^sA^JC
z!4d7v3X6w$1QlvS%uOcmXvZsxXm5%|RW)@&Ral3rs!?4@od~g9QicB1iDXPy6m3)+
zjl>kF-4VMZnN(9&%7SnTPfMyKQp;1zRaHr}Xcr}}XjMf~>Xf4JP)Qh?j8Z6x!Ukb1
zzpttji>4{+_rR+ka2-liwi(t7G(tr}xoJAg??;d2;pkw?C!6wEx`4w7-k@
z;T;s;H*2Y(MDfi>8x2KacNAe$K$-ANBp9?~9L;3qnkhAEChHe>BtuyQDvL%{;1!I^
zoqPwGP+ISIjq(x4#tCc6qW~K!4od;Km|(fIpk%N(YA+fTku7b4QuW*_;emuSPasQ8!UcAqk`IV
zM-EKXPrHs_3*U=d?!CDlSesl~Z{#DsXe=DT$+(hx>Gc*}O5-&iVUu>U7by8xU-%-|
zxG2y$JTK$x$IJL)*;x2K+*po}50Ae#|I<(Q&%OGQub+D4@2}qdJ0q-fsBiLwhhum0
zVWV_m(sQbA-kfx?b$FADV>RhaJvb@%vRfK*<-!#0_E(P_@dV?#M3;ctr(?h2+>qlQ
zm^bCQAz$Q7Ggl}U{l**EQ2LiB_%-AIS_BmN-9#t4!vA_1L%rBSUY+v)AWQfxcMB67
zUw(E;lfMGq#76Z@KmPxNx>gQ{_zToY+@{U}9-!mEMsUwL0(u1Spu8#LwiAB$x_^W5
zb=7V&`vXOMYpJ!=bPr43Nt_!l^zeCQLZ>ay7?#;c+-m}@d=hzRH*m^W{H=wXQCs
zEsc8o8RIvR67;%wC#Xf0U?tmrG#GBsa16G~*e~vX>kQl)|DCeW0KD>~k5lkq0TKCC{eCt?^wWk#@b1@N+p~YZRMhcK
z$#=88860yN-L&%#-&OWzPD~u^+?mmF6SWIQ(Xq|FnFZ6!?BAD&C*pgI;G(EQh3)Ol
zR9(Bz%g^F+=yjH?yz6+*bfq)zl==*>l$-0$=p|errcJL>J2K^XP^Rm3Wg`W=G2?=@
z$R<8|GrEmabZ=&K0ax#$g%@d9oHNSh%r;*`#jSdk5qsLXO?!GWvLD9AWuS^{_Ci2|
zBaY6+fYK&mMV2qle*Bn
z)^0>3Q-WSNvMm|eqDQm^S4A$nu8%a^Ha-$z
z{51zW69X)2QNRvPw)NL;l8*@>v??d9$BjTjeoYvGg!MIHgga$k0UStLd7I;4)!A<`
zjIkj@`H<ry!F*#kdeDAHbJ;J6kl8Javtg_OPDiw(R_3M#B3`@N=t=e3gd;!uv?rrnxXZ*iOR
z?OII0Q8Crzcht0&a#MM(Bc>8Q2elW4msH8#R%E=mO5Eay$z{fUlPbU=R?v6NOIMR_
z^J1FmcKRzx;1d;3GgK+n+sio{6WlO9r>xvWCR1UlZU1JV#%+XZ%8YwWs!6XrGroT@
zNqtY!6}~x`l*s~L
ziFM!+q6=7M9{>8Icb=iVfItT;VH~uRc3`pfAcoUDa9(Pgwp=8z-%qlnRzP;
zJ%u9LXeY*SD=~$&25&dG+2Dx5QG@$5)=*&AijtvD8hpgyd7_P<6FcyPk^h3Xtx^2m
zST*j&64tknHMlLi^Gc!iMWN_YKmYc6{#1P&kZm{&b
z_e=S%VJ%uD%c7q!iD_B1VQwl@orYaQLC1lB|z{~J(cnvdxBM=QRGaw)+kD*aQm0{)rSLOltUSvqE
z>jHzp#M-fGS9GnU);wG!QJ1l-CT*&vYuVJc+L+ihiN!W;h)G?kn8vPZmWBTQ-#O>b
zcZcCAtCity*!TaPbM`)uefD{N->ghFr#jLdn=|qHS@qMW$5*ah62GCUy1J}%Ov73O
z#f%AnS@2<4RAr&?+aD}&m1(^ud!j&>s0HTY!#}=6+g@n)i4*T`TD{=gm%m!xz1AGQ
z?TfL;Us!z0qyPTK_sY8$*zlmw-@m?m^Q-00O*7`*fyyhminLXec|QG%4hHSN&S-Ucfb4VH-B~bkr$SK=jp$Gwm;ggKecJ*WwtdQ
zd$&z{z$hJAJ-c^QG`aA6kyv2R-_``$1DK(X0j-NgAr9czhWo-WvG8+ITcFVY7j^f2
z;L7*a|K-d8(eeL*3n^sqp|wC?{XeYG{~y}^y3iFX?Ef#cMK7-WjvqUIOdI)sR<-Nr
zZ&;U3q|zHc(bTqWL%L&UsyVSCmDt{q-caAseorEmY3!(}?X0QYuqxHDC6!30>zYzk
z&1qwr=Wp0~3e9G#nQ@xio#rO1d5%RkwW+vsEX^ui?mA{Zn1R3I!XE);0e1j$v6l*5
z{cqL5laa=r>!FU<14erV>6N;CWZ6nsd6#c~ZNOHZWpPVd8x*xqr+}2d0sU_LIh4>gn%r`|vf3x7tZ~yTf|G4bWCzr&&^|eDArL)pB
znCrkI98F~oh66Le6cw95^t@LVe$cN>v1kzN135SoI8()-au=GNhlOJcNs2Tb?Oa
z9c!JP8szlQ%ND|4PRhlP@f4QPm~2a=mNvDwv?efDXs;P0ybDXm%gK%{#JvM+4C<1M
zM>EC5%T)v%_6v{3Pn&hE9nIV7J9f5X(J{#Bgq|mtV9q8{X|h)|E#vw@Z4oaylMPUg
z+CVlRMV>{22Mi9@2iY$N*?*1IsElIz$of#mUKyCDk@G}7id$)z+Gf^mZ)wUTLYGkc
zmr_P0I+FJ?YQIE@&b7a}qphu@eN`&4IoY`)(Y__aL{Wj9@;q72OIR6-$dl>Vnc2QG
zQ@1nO+7kAU@=>*;`E;<_wKi>cmbPs?4|^HeE0`DD8SME?u=hK$?BlV0B~g1FQNd7!
zh47b^sCW#O4(+ujkxpbnhdM8x_5HF+&H&X~2!9#a#W(tL8j@+&`Ea^DtFcJs{Mf)R
z!e{w~+V-F1e%O^0(25=Ic?fvOJr6P_JDg{(ow5@_Iy$Q{I}E%Yyb`<-90AsYBf$pn
zD)8grSg-|r>)7$E=8$oOwRVgLJHTte?O+_d%&ca0uY_m86X8klXt>yvn5iKn3YMBO
zMvhQvYR6Jo^;bJoKaotSx{0WJR{b;?jDu6anc%gc&A*2H=I8Qzi8MR@gWUXa1#yRA
z5wBUo{HBB0z{~(;C-ThF=CHkS7p6?Tm(Sh+R)fpH8e{fpEMdd!H$c*|&x73YW&aYC
zz5dRj>N1abTh9@>_7iQc#v{wja(FJh2p$hx+bCV+Z4}1~a
z6qLI!0LOr;i`uk^F#TuhzzHDzoz-|)2*RP9`hE%F<>1ZWT_DfdHgF}F1#boK2bJ%q
zz}pCa8e9eb0k|6cLvRhKK4=7=0M~&}fxiJ-TTH?hlm=O!s0gvdd2$ImlM+fTp~fZV
zCK#{F$zG40YKbd_r@&)#c9PH7aUJBwyX-;Vg>(ny%Vg_8*#SRy^;w$BqlV
zE+MWH7TxLcz&@e>Yy{;$P2knwCJ^5=%^tNe8#j8pYIRjXph=aN~$HLzr*7|
zSoIaD4RKg`t$@kL+zUSfKLg9xj>1wH1y_4T#TDrP%>qS~?AHk9h>$LKDB!s`6?6T(
zC6T#nQECf5l(*(@ck=QFPdpdz_Ij*fQ9ZwpdeR9;%fpw8_jo;(x2hwZ%p^P7k=5Gb
zb${-3qh;cu#Rt5u%Iu}<+ZlJh7cH0dsJPqfhV5+sMAO#RymsF1^rB@BM(?v;FKlOz
zp5K#hBwfTBm!mTD9`kyUef0*)s3cypKE1SO-^@(YvxlzlXl+e2%Q)$(n-lGcRI)j5
z-@PK)zC#7}wHF@~$*0lp#j6^d(%aH`@(rn`UD~DFJ#KqMHY9b~DEEvkbKo`Mx-MDkpFuc}Nu;-IoPC1!
z0Ft#n*>}FQf%$rJPS*Nh-}y>*3ah-&*ZN%F`LZuyU7V1UwSLxjzLKqAp7whd>pMZt
z=QPf>{)q6ctn4!klrL+qr9NYw$d*uEbj?$K8)4f=0jZYMw~g*udo$&yy_xdE-eG>D
zLD`j=d1m5WM)GqDcqIyXuzZJO^$UO}%j>u~#7L~u-$v=YJQsjOQ
zThZGDlv29wuVa9yMh%%ypHovsdJ>BND^
zX*_R=$TRQd$?taZE08Zj?(Ye=J9*U^zsr+f+?h;gxM)_I=BjA>bwkaSPFUZ2SC#eQPT05fb+uVTewWRN7fY9`?T;{X0%ERaP&^g?%XdUAmJzyhc1la>Y
z_MKqQ-eAvHgFQbB_ErXa*9UvMgT2RseYL^9u3+E41P9&=y2b@vpA5R*3l5YQ@1GIu
zpAp;tyC!!3>#?r;VqL?FAE*u-I?=Qg@n_r6)WGdwr$a`8G#+(i6ugE~KUfs_@V@1)mFm_E-w4Az5>fQtV-
z*g#n4z9rz};8O4l4!;IU?kN}k6L1;n-vF0`-*@Rh0%=qBHE;#^I=B-25Aas-E$}w*
z7^wVz4JzLf47r-{P*7o=iPsPw0j>oXfQ{fnQ0LGk;K#s?;2q%I;CgTysCMmecps?z
z_JcYn-VZJUA9VOAsPsPqf0KBvojMbK#o@Cq{g4Yk2W}+&d9Vq51(g0jfSU+^AEfWH
zKLT68*T4k$PoVOB1C;!Kfm;Zd#f)Jd%MJnAcVveYZMR=ms{nB{$KG(yQltPW6X_PquiOK3wXfh*a
zDrHP1UC&CJE$@dW=msZ5$=@BOO)%5JPIz9J{|Y>)R$d3G>?L?&jl4Gu&nGTU>lj^7
z1*J=7TsYJD`ppURQT%jQ-e~HkcGXhGWY-q8`MR(z)nQ(;hbMn`q4`_unZ}_=z$f
zqi})xj|KFt-A%O1
z@aryIGaRPV*H1&F?t5*IhVp_@^#j>w)ARcJY7Z@TV?*w+kE=KPk;e#QlSie52&`dqw9&e7cR$&L*E!*V9pOS$Nz&rAU7MrxZJV
z!l^2c)@hQ$JkOMFd&3qVs3`+Y)`tFXf3?pU1y6!CE9$JwI&NCwPPhy1hCc@%gb%@o
z;g{ea!bjn^;rHQzbeh)rI6MQM3pc>4VBPP0m}tBiQm*=3!TysS#%(L7-?g|sliJPQ
zSyJy9hndM?dJ!_b0SR9Kk2F&wan-feq8jbLt?Y}Ttb5VQvzNE=PM&3KjFXp*0+avJ
z)a%$Zr^ANQ>*&2<5Pg{#DaWQcojE-^odcv3d7&23v1v|+$;-Fp$DvNo%Q0Us8}H<6
zd*o%OnCZDF_3}2}$+Hpm`OD8@rssmx%iDM-Kewk1T90l1J(rta$EGJ#)q{XtkTi>;)WQKhM}S
zr?aU?XA;ig=CYG?Y?{;IAnDf?t%tE*>xzwYvMoKbE%;z>SsUkM*}VFE<lR~ca_v=Tg@qO@IzOaH(G{bhAQUaSo$?J-zqq28plR(_uDoj_P=`o5sz6lph-##ZGdlAhk1>CRiEuqQq1
zZ09G!-f4SIqj%smdflhd(|fK{m8bVw<*stQ>+%d~6Hbw)^Qzueh#a`*m?;Z03h-O&
z5&9cQt#=|HCmg_xBJ0Fp{S&dx3i%wrWA6EM`WzMQx6H=)@3vjl!@7h&s;H%bVdd>}
zPkOJX->m0w!#t7~!@G#T!%EQ`&4hz3eQ7fjnQ7bR;9_`aP;uuZ*rEmpY0*fx)zh;${;&3UZ
zE5y-^;)}!hARf)VH1s87J?L5wO;otKdSy1c`
z7AXAvM}O$W^KXOJ`ojHxXg@7cC(+s5pU0zGtc6kX`n{raB0k+l49&&+2bSQ|QsMsp
zwB|YMMD0AkHT-m@52|<{lCV4;r!p%
zy~U+-{>NntbctFZ&ceiTu21rN11*e&`~N;o)Gs2n$0*$YUAp&w&CehFs(j!tI^W#C
z@Sf+Ff9v*pfAH|s&n$a_xWfHkzZl}DY=rLK4#OYx{!jNvGhp5SRl?I@fB!d`XWhW+
lj!*eA2sbi|F6<6VHL8
zH5bv$DwIO^=eqWQJO0=8@LhG|Q;q*LtN_mWf7O+^2F9%iQjPy~cl^igcwOs;
zUAlPbBF|x(%LvTC+Loi>RBo>N?B4OmQPE+=rF6*oleMz5X%CgR3Wlej1vQf$Xya{CsOj+5_
z@T1M`9ZCKCnl9(86V6HJ_mD(C6XpE6pH2F1MLJox8+}e+Zp!%s@kmsNSz?m65r!5+
zpSnh#DHeFQZrKxy2RlVU;@Mvn>F5Xs=$x4U-e5Qw4F$vuhrBKn{uZlq<~0Pn;>^o)
z=ry!QgUzj>aGSrOIkqE~q+cCv-VKTNLt5JJD$XDK)q@|@9xlr8y#4b-O|-R9R3jFI
zNJHBhPkfbRml-%5GvkM&+7E@uHw0g%e+3EYKkWy<_yYByKsL(JkF4Y0cwV55TCiqf
zigst~{2U?dxnkasE_JAD#&fu?4;GDG6_cs$PKDh{v36*nN)6m-zrfY}xGl3?TbH6UZ^U8JL0kGDN1x
z5%VRoPfcJoMi!)sIJOP?8U2;^ZqfGOZ)tB1kiO3Y`hatR8R9N&zW{YC9IEG2$k`T-
z0cj1`2j-eo4{itB;Qio3;1l3;V8-07;8oyya4UE(cpuoM(LKPpF!QrcAHe?M@LdMx
z*EZHVy_q0CS%(WJxp*Giag<^3W{#i#h^yA=4=$v+x!CIG8Cd5vFxL!Ni^y^L7
zSOobSs0jb%_~inf^^RnN_P#UPz5)AOFU-D?mM$!=Emob?W!XQr>~mK4607?mtNRC5
z_gSl_%IeFudLFZS{%ZBsruTMPy&gbdJS*|uuA8z1C}Ap`o08Y|4`O`K+79}SX1q90Ph60>iiH8w(W<3*e7fb
z6xMv3^PRXG$a)zkO!olM2D=xy26zBS`OkoBk$wqS349fZw%NY{Rs-Jx)&SoI(#|m;
z%l!#>FVbgp`YaHAvHu1{U+gS6Y&|d=xB-|0Wcz1o^Z{vS5wH&VoO|rIU*la`UJ2ZU
z{Pn=izzrH3wETXZ-Uj?CWvx
zMv=htRLswL^4W{rT#RrYqY9J@NdapD%|UKHqA4HeofYz}oU!Rgx&ZtAeNv|o=Yb;F
zE`prTloc}qLHUeaiPYaNWwf~tBeg=@BW0|w5+lEy(E`eaom_D%V%;y(1*nlaa~KsM
z)us}O%wMGI$VGeDmlcTaLfwA$(=XePnF7iYcgr)zr+C(Dt<2~1EAStE?vnBVzxCv0
z6o0Z0$#otfxDL=gFKT=h38op>#LXHp_hkA`oepYzU*~sgd_&_+TK3KB!Ny=A{7}nj-SQt(2EFilwMcB@~
zv3lm7JsZ3LjQxpwgM9yJ0(O9T-gz9%INlF_1$+qH5B@#arPLlM5L3OBWXRX`s!bc0
zZL0~#qkC|75(>w8zAKXQH0W543!qtIi6g(Hyo6Mm(B~LgB60C!^i{sr#|D_E?V~Df
zKXGYe$|#vGgTsv}^UI++K3hh~beWZjGXET^N56C+ZR$}nT?U6IQ_liSQr#EzqT(o{
zWV%c_->H?q8f6)Ep<(Q+JgtkviP3GvB(y}buFBK8IItOAj)O<27cpa3JEPR%xMqv&r*p(dty8hW^t0EZSl#ZRc@xdC*t!7xhASy^PBu#5m(x~uO36PGO*aCHLA#lGSPoy%^
zIZJpuMjaAwbV+A6mnFhbWx2nX?E$V|KJYtW95cnsnBqhd-=%EuVsJb73=Rqd7>0Au
zSp)tf{LiHq-*@Eb%m#9AFeAo0X0CsDw~%+PIY8bCv(D*Yu46O6Gr>25Zvk`7%muqN
zHXblDZft6EYZ-4I;A-#Q|BXBCw_qgl*{cn`;aK#hc13sMN-TS{02RYTWA5r;w6u9?4*W;*NyEgOwXL;d=
z&+!~vzUWk4=)ZSYAIf<)Vj(ZF5hHa4lGTw(5f_-53{s&GNBjWp%ORfi858Rj@_&;WN(U1TD