From 1feb3b60eea30d5d59a8c0481e26487b166bdf22 Mon Sep 17 00:00:00 2001 From: longfellowJian <779035789@qq.com> Date: Thu, 27 Mar 2025 14:13:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...a77544c9-3295-4de8-bc06-9d984523ce61.vsidx | Bin 0 -> 182365 bytes .../FileContentIndex/read.lock | 0 App.config | 6 + Empower3.ico | Bin 0 -> 13294 bytes Instrument Control Example.sln | 25 + Instrument Control.csproj | 102 ++++ Program.cs | 19 + Properties/AssemblyInfo.cs | 36 ++ Properties/Resources.Designer.cs | 63 +++ Properties/Resources.resx | 117 +++++ Properties/Settings.Designer.cs | 26 + Properties/Settings.settings | 7 + frmMain.cs | 475 ++++++++++++++++++ frmMain.designer.cs | 290 +++++++++++ frmMain.resx | 347 +++++++++++++ ...amework,Version=v4.8.AssemblyAttributes.cs | 4 + ...rument Control.csproj.FileListAbsolute.txt | 14 + ...nstrumentControl.Example.FrmMain.resources | Bin 0 -> 13860 bytes ...rol.Example.Properties.Resources.resources | Bin 0 -> 180 bytes 19 files changed, 1531 insertions(+) create mode 100644 .vs/Instrument Control Example/FileContentIndex/a77544c9-3295-4de8-bc06-9d984523ce61.vsidx create mode 100644 .vs/Instrument Control Example/FileContentIndex/read.lock create mode 100644 App.config create mode 100644 Empower3.ico create mode 100644 Instrument Control Example.sln create mode 100644 Instrument Control.csproj create mode 100644 Program.cs create mode 100644 Properties/AssemblyInfo.cs create mode 100644 Properties/Resources.Designer.cs create mode 100644 Properties/Resources.resx create mode 100644 Properties/Settings.Designer.cs create mode 100644 Properties/Settings.settings create mode 100644 frmMain.cs create mode 100644 frmMain.designer.cs create mode 100644 frmMain.resx create mode 100644 obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs create mode 100644 obj/Debug/Instrument Control.csproj.FileListAbsolute.txt create mode 100644 obj/Debug/Waters.Empower.InstrumentControl.Example.FrmMain.resources create mode 100644 obj/Debug/Waters.Empower.InstrumentControl.Example.Properties.Resources.resources diff --git a/.vs/Instrument Control Example/FileContentIndex/a77544c9-3295-4de8-bc06-9d984523ce61.vsidx b/.vs/Instrument Control Example/FileContentIndex/a77544c9-3295-4de8-bc06-9d984523ce61.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..d33f698661d2e63365955c72098b6700fb8b5f03 GIT binary patch literal 182365 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 dZ4RYZlsX-NdzsYZcczuG_fo;@Zdc z5jQe!Y}`z7bHu+PM!F|4W-%5qmNCj0eT;pKLyS|5bBs%jTZ~7HXN-4f={$`&kGYDu zi+LXljD-w+UdmYc*vQyIZ0S+Qc8Z;e-59$mZXs@mxU1ui$DIwJz-O_Su{W`IvF~F) z#{P``6~IED#eE<5XFOm$hf$331{JV88RKofHk&t*Jgygs;cAwG-v#Q2o)ImYKi@Fc$4_;K;S zi4}M!(Vyh~m3-*qC;UXfB~PG8ph}=lU`^nlRh7g)=u4u{F^Q)n$&%z(lE@@YlC(C<|dgjnPtF$OO`A=SzNM=$+9HNnJibb+{yAJYnrSgS=(ftlJ!c~J6WG( zi<1qLjVIffY+JIY$&SfBB?lyjCM=m;PjX}OK=M@S`zvK8WmC$Ql%44(P61L#2w)LN zN}(oDLM<(gqcncgo=f92jmtEy)A%cmF^yfCywl_>O>CODH2sl=+gF;}G#%3n(kxB0 zBF(M`|a z+NWusrG1t5nD!>^UE2G!pVEF0czodL(58b=hanx7bhy$H(}|@Mq%)@TnJz2<_N7Ue zIbF_lP16Db@ct#!OQ*L; zZK4S;N9~(j-|UvPNf3n>9<;92rJoWI@c3XQ(sm zGn_KqGTbwySI-Qu44;hu3}X$iGOja`WTMOjX2NA+%EX+BH4|qhA(L4qc_x=kUYV*g zg_&A2b!6(!G-SHS^q%P}3`Ry~MrUTuEM#`b>=8yKmuIfX9A=JZZqMA4wP)7eS=VM= zpLI*t9buO8Y34EWXV$Z<$E@dBFS6cdeV_Gn*6&$QFFo1NWP`~Dn+i-Png+@oU5;apSI!~l zTNpzH=0b#FRA#wsa%pnua@pnb$W@#xl`ESoALdk@<{EQ7bk6k|Y`S|1$!&F&bL0_ zmV7(%?a6nU?>673{P>?q`V{#o^Hb-i$m43ls&)0#$*&z`nqtz$MJ|ye{}$h@uc!2wjM-5PczrFzCyskgAYlp+uo{ zp=_aCp_W3eg}MsO3jHH60lF%5Q)pl4xzJmokHW~pbcN{)a~3u)>{!^faI$EjXnoNR zMLQPlRJ3Q&VbSrzo5F8Jk40~azAgH`=;xw8ivBG6tLX1yfMSS?AuWci7=~gPixG>F z7o#jjU5vgM>C9A&YcX!c1jU5KEQ?te^ZY-w1QshVR$Z)J;3qaLHah5wZ7jB_*!E(( zik%m`EOuS&ZLv?qJ{S95>}RplOHXk?abR)G#fin~igPP2D6XftvA9ifyW(z(do1p? zxVQ5CRWd9YFPSKrE?HZ$p=49Z=8`QXJ4$wzjF3GeVylFV_z~hbh^HVzp^W1)Y0Bg& z(;sD;&^{~EqD-4I#WG#W^eFSF%xzh|%koEA(!pAmM_FEF1!Yb5s;sfBb=eGMbCjq` z)Frkh`V#vRrxNE9>HJx8D0y7+x#UYJuoSu!z7%sQRVj5TZ7E$T`%~z`nWp|X_891R{m%SxeM&gFQO6O@xF=eV3@IjeHk<-C{kQ!YihT;(dt zRh8>hu5-Dr<+=qfYLn&W%B?TArQG&%JIg&T_oUph+xjc*V?8?<5APV614L{f>o z5?G0)5_=`CNYmC&<#pxHs#jHSs{RZ#;gD5>t_EKXLp99R@KhsKqo~HV8oO%r z)i_n-QjJG7KGg)((EfHJ8;atJzlbTrI>k@@mVft*SO(?OC;BwexD%)o!YN zsrIwluWEm)1F8e7!&HZ_jNM4PR~J-QQ{7c{+v=XH=ct~mdY(FhI{HWb*FWm_ zSKu#MQnRXNbpM#fd|FB#->KBk=N*JoNC-^JZd~^p440gmQLj=UaiJ$Cgt z)ZYv67tSx>f}Ts`@Ej_VogS=O_z=dE5`z3laB>b0v^U$1?=4)r?L>lC=&jo15F z?^nIwf%H9Oedziy^A*F1YV6Y3qp?>Y+FjK+(>NCx_m(%UZd%i{ z^z>>v7C89MG~M2G^z?4JCs6XHDhbvFUBopMkI+vS#4T;F_Ut zhPfH`W;mNM4W(|Zn^8BTZN{M)$7ZDSS2I4%#GA=BlWV57nTBTCni-lIn|W&HCvg7@ zHj8VPsadXOd4d!`&}_wK-J11k)~DI9*=)19W^0>mX||`?S%ZOa|M>YE@HdFxAb-R38T)+Qu{l@h-?!U$OTjKAD z?#u5*{a(i3tNOiezt{cufxoZyJBq%ezkf%s@96U##otl#9i`t<_8sNl5q?MfI}+cK z{EpOjWWOW#9rfSQ@EuLx(efS9k8j`6{v93P(fJ)+-+v|Ff9>Dt=R5y=^Z1)r--G%- z@;~Y4&u{qiTm1Qb{NetO>i?|wpH2PQ?4SSQ|G3Ee@`tPjq_rcPNejoHY49=x4U(8h zqOa&F4ZAe%kUU2E7BxVsue2>XV)ltZM|gU{?^rOx>sUy_!B`L?A;c*O zqG34@62fxBs-d1r9TY1nnj_YS~UWhm1gPb9cktcx+;5qU#pab57 z-^w|1fm|Y2$Tf0<+#+|#JLDeuh38LvEhVP8uhRQ;XAt(~Q%C(}mN6GlYR}uEHLjInDxSiF1$hjLR#i zB}?d*9W&3ZXetV+^SF>HjbOXP2py7bGWs*dE7?aX51FsR@^q+cHEv&NOps} z$9=+m#(l+o!~MX61tpy1og)ow;*sM~gmLz0Lg6_S9vTmaM~laZ$Arg>$AZU=$3yTo zRHl>TDe#ndYCIjD9iBa&GoA~cJ6?cS8LHRSA=UqD#B0K9#%sar!25;w2k#Q^I+V9t z;BD~k@E-A=@SgEr@!s*Kci#BqRR8eN_!xXVK0Q7IJ}W*aJ{LYWXGN%vKZzS7_Y9d@ zNUb6PglJJZL&OXX=rl8tYk^Re;Gj4d4wi%C&~oTG3>-!d6NiPv%Hbeok;BE~EL7as z@tAZDvJAAOcJP$(wBe~FmYk;>4>a^elqknD`(hCWIv7(NMLy~e6oBx`E>CaLc5yN;8bo}uA*!gku6Zk3k zDfwym+46JZ=f=;SpI0!FP@BCRzgm8Ie$D(k_^tWf@q6X>#_y9qz^So6w}{^4Srlv( zj6`~}e~~MT^c*q?k8^JM931CDvB~R|6&(qFUm=jhp181qo^m*41|nDLpvM< zCWNa3-%R9I05P=U2qjR1r-n*Bj~WuS6KV!jwMT&yRYrj;l_!A*6$skfwCe{Qi9#A7dm#rQXCW`4BB5SFflyyUeGBzR zC?0-JNuiWbMyOt>L8wWnMW|J%Q)nhM2;B%Rh3x8BAqp*{(i?C1d0l7Q?BKjMh7A=TYh*pZW740C}QM9w@UZQ&kxYP;JDbZQc zIngbmyMzbf^8ll~65a{l3EvApiars&7QGd{6a6FxC5BcEgBUY0N-=6N8ZowF?8NBB z*o%=~8pSw?aS`J#CKh~2Qx$O8B*bLJ#a(xtyo8~?qWR!Ip4RJ*xq9MA-0d$ zO0j*3?YG#Z*p%3u*k-Y`PqF<=>>ze2b|ZE#_Fn9x*e9{iVqe652y!Tsqw2^6 z&A7)Xj#(UwIM(2?I#E!CqXlwGadzVL;-vGZIB#*GxRkhzxJGdu;;zLl#BIdgi+d9H zD(;iaS>i$Q%;fu*(U*+=$iF`F70K6IzMOpZ@-@iUC|`?wt@5?W*CF3u^8HWAKz_9R zIQjANGsw>>KU=U%2d^Yq9!NPSNsY7@qV~y$M^3mVAm3mnqh%{4C<$7Ekzge_39W>l z%tjJM2@^ScBrFnE3G_R635SGJ!cDFb8H0>#nRJp=@N^2!vaFFA%1p>i%FM}Z2wt;1 zmqjcKAqy*uP8O>yZdsx%r7SyHgKX%IvYF*Cl)r@hrQ|Osf2}k|(xexBYGDqcfq`}y zVRS>7m9QWoIf)|yAc8d#H|pyWAIX164%F==A0!_opCrE|f24?{khDOhn4~!9>yh#m z@V<0XdMPI<7by=Z>HJOEh+yYe?_l6niBz>zUtuy(Tq+@zluAqGrRt>`q?)8!q*|rg zq&lR!fF0$Q%yw(+Ai0SC~ zkRGHj!a(Dd^jdl&y_3F^ewF?XR{FjPvkn!oUdmp}-pjt1{V4lY_J`~rIe;7zNg5H& zL&GSCT@IHVp5SpFV>u>r%;ae0*voN{;~Bj9Q!1xSPF7B{oEAClaysNhFI{rFgWr&x z9djz@T#^JaVSE@yh_30A}FCJFq zORJappD@X)-Y@ljtM`|B|5LsHtv;weoNVY}*#>jDBiFbJ25~ZlllhxW-aEOp$vmwf zQIL|cm>j+2$|YwlSz{F(WW!QPq!LgGSIMfd$ZWXC-b${rRt8AjMc=5eWXkED!}i(>v`g z8gyxxq(PBpJetr3g(J-*G%ygdS9mJC6+U6Y=A+`f;)fE65=c!{39W>qE~Uh%#H7Sb zHC>6Fs;!cdl7A`rQu3|j4<-L7iJ|vOrKD4GRC1zKrR1&@&?%*iQiD>HQnS)8rJ2&8 z^taNev{KqB-6`#rUXg{E9IT?Uine^H6*wCm+Idk zRnUK_9#zj(uT*bUKd63G{iJ$&+olFk!WYyHE$*XBp)1szTO`DodHRozZHA^*XHCr`%HTP;B z)V!}4KH76`4iX?Liz-J7Nr)g7NZuYmR>D`T1K@jYFX8? zsbyEop_WrEw^}2$zSR0w>qn9GcrDfXORZmO{i9Y?D-RfIRch60HEOkLb!zR^I;wS2 z>#EjGt-D$;wccubsqLdSP}_GPX*QuYr8ccLt2U>$R&8Ewz1jw~jcQxfwyAAb+pTs` zyHWe5_Cp;k*q;xj4y_KO4yz8Qjv*ML&zJ;Kb)q_@I*mG=I=wpSrBR)WI#+dW>fF`! zrXYyAKwYQ^FkV_+R$ZOCCUtGR&?r` z=nzZO`nBlymu8GYUz(*st7oNVwPsCVp=hWI0V-PBl#DVIWYVmoBoal8G@CSAC=o=N zAByp4c4~HM_UNCa^H8*d{M~UdVUhbL#0g0MC+(NiIeL|deB!rgTqEd8t&cX1)?hSP z4NgN#o@otUL$6^VN3w=V!%T)?vi54&H0&A<4JY|rHQX8=9fOXEEh9U5LY72w4F={c z;X08zS#+}N6m&Z2^wAk33zW_>@*(ML(mCo}>U_|JCdpqHr!I{yNuMKqlr*YT*Tle) z&=LpRLR0Fd(oLfq9^f`L>c;A3)y<`wM}J3ws6(Mq5}~Hi5%EN{k;Xl+cU)+`YJO+| zTEto)%?SapOQRLiQl@1@AA#1X{-6J`4!2(GQ|n9XTkA&~)JAFx+FEU$w!5~McCmJO zC^ODz=d~NOTY`PQO>~>NVuiDeeTlb**SogW^x$f!d zqX!6XnxW7`uZKYoqaH3jJbH}u_zv+SvgeOqfr%Vx+R%FRdK~n)=yBKMt;c`qi3R`u zgnAnEjC$q-YV@r2Z1sHU1w%z#yk2^}jCz^$TIyBn_0Zc}Z$I_+(HrRPE6|)&IO((5 zLGQKRQSV;whu+VS$)kM0QEM9g53P?~AE!P+(@1nmeeNMTaG@r6MMd|r`tthf^)>11 z36X*u!{>Srlr7Ltte-|doIYm#^d|Z;(I4|l%=^o{g<-w%(dJ{!$C-~eA38ah z&tyKU`E2GxzHrJiQN$>vxC_NjC^SMD4+EEp(InC&tw|=6EGAh^iYC=2YfQG8ya)_# z&dJ_na&7X~TIcpAKj6*4?GyfC~DY%$k{8^agF4ZA24@k}4fR zkhf7k0za*Im`as2N*iUVuTUMQ;%n4K1(B*iaOdef2zuHWZH*p`K8;C?$&Eq!ivuF2 zwrQNPFJmF}PwR~xjGc^KjoktT?znNnIBQ&M++f^f+-lrmS}<*DT47paT4y>ioiLp= z9*w6*W&CLTZTw?;G`%%_Yx>UgyXh}80Cj0I^kx{%u$U1;3}uSV)R>8m7c-q9l`@mN z5X~$CY@fB6otXzSUuHqGShI9y@n#v#8kzNF*0)*FtlX^9tlF%-Sy!`x*$P8E)@IEP zX3xxyW_M;^%zl}JnFGv`8j?MU<3Cz+42INzQ-tB*Y|Yu5b1~;l$ry7b=Bmuqnrkq( zGxuTc$55VzymF5<&u#wepXOgg54oVMpG+Gnj);6tvsx}gVv!O!5ymxf+mDKtXin$Q~$Q=wCbkzV|8kEX0@@} zTfJDlS-q2M*qS_uBt}>xX~|mCS~FX7gzPUxj%*gHvUS$3*3!w#+Q&Mujt8QJsrC&=;LJo-$(faEiZhop{|ZSs%bgX@ zN@tz3k8|jpaqbEUxi)rf;@Z}=yK7I^J|Q#LC9bQ27)bPaCtcUOZgw7mHt41E%6a3w zbKX0D1+|dah+etgx!${eaQ)=^oh~3j*F12;JH(eMghz_vAOdMYLl40js@$|`2Iq#> z4c-l-8zwibZrI#FKl`}hUvB(_=pMy!#=?!Q8wWRzZrnqdZ%W;y++^M4-L$!xyIHtd zx>>o|xY@e7cMG^hxn*$6>XySTr&~X6t=uXCYqBc0>d-n?=hn%sn_G9c9&UZy_M*IX z2n%jsVK}30y*amexAkrt-L|?N-7eg2+}^ppcL%s5bw?9q(nGn!xx>2?+==d#?lkTK zchO_-uGw9yyLMu0+&#Mcp**4^F_tF6r*qHbp4B~P%P2ia!D)&rQVxk?#uQ~Bn=_eb z%NDBOb0Ha))C{6>Lt>M1n1l_f0aEShDd5+_L`gXcvr#gQVrDJeEj%Ie7=l%#-%`4! zYLmK6nl`~Ux!UAzQ%1RwHf`FJx2bB=EhHm@r=OHw*5+xOR{?kiBlQ;IlEvBpO~tnM3hJ~It?OFXw{C6S-nz4ObpCGL6B3_o+O~C2u*3g@evxn6zHN`TJ=^vP zvUVrh&a|CtyQS^c)yNgFw#T;b+WrZd(IF4+=E1ka)DBxaobB+0ASwBsNf;md zc3j$VZ^x^h%67VgPEIV{?Av*6m$Y4`cDdRW+BIv}x?Qnd`*xk$b#FIlx31m#b{pDl zX}7!Gq1{!xFYW%c2Wt;#kA@`okXSwGQP7Ccp1wVY_8i;upcrd=#T1HaFVkLqdkyV% zwKueP-%>92@$ECV&)hyo`&`{C>Rw~_{_0pAH2iQajGnFm(Xq4pL5W97^;6hBrYt(e z$SKH8VQdOf2ftN}T|9OPcFEGEahIlDI#9T!%b?4)E@u=H=<=z{$$?!5R$BeBy_FrTGO>>*FIercb(|Eq4Usr(RtbVtLx*gS6x4J{nGV!xS+@Y-N3uSc7yAN zwj0K7n7U!@hOHZpaJdmORuJ46`)-`O@#!WOV#-q-Je3o6lkO(dOMl? zcJtOP&@E}VV7I8Sz?ZID&Te_Sm38aXtw*=s-THJJ1`2so-8OW4+U?)nzI6N19nc+3 zcew7@y5s0h=+3M=tM23-&8cVGon3eOj)K%z++B6B<6XMDmhRd^g!)$9t-E{b?w#V) z-4k~Y?;g=Ts(ZHX*?siGM}Pe5?O%z1zy14*uKD7b@vQZ1^FMpK;zl6J!i6*FsumRb zrAtoGl_2N>4V3T6J(R%_976tN03_9yC~%sa36W7-qpjR~7(FZ$Ev5jlhr`3^;iB{` zMPYs1P{h>7osTyk?;+<+xxtiCR?Vl{r^ctwr*vke2$s)GNP*{t&nurVK0kcHLMXh5 zebM+r`C{Un zNPM4Hi&rc0WnLX#(PYku?g>V010j?{h8@F$+F+D7+MCUr-J6q!4R1}Trq+8)XrTW8 z2)hgDIIbq~+ukrUa}<&yTQg#fWjh(BX6}v?CvhCd;n-n^nVFfHnVFgS4Kp*tzsm3L ze7oPC-LpB8pHvTMW~AxqzPGBb=Jn|DmP|RyAyM6Ewv1+5juMQfZ!|+gKVK80nHo*m zXGy7j*=V(mmM{A+%?4`MjCRv#TShxD+L8Rt8Ag|33>(I%CJN~bRMF8>!!``xFjB+F z40G5p3x-)W%(h|rhM5_bZCIXR`Gyr5R-~o;l3OJC0=7(k%E+snO|}f%GHlzhUBmVa z+c)gMutUR+4X4|1Y{Ts{+^XTW4c9T;%<#GmFK2jp!z&q{Z}^>t-(&cB!ynXSCBG~~ zxrW~~eB1El(!lUT!%vN%(+IkZAZG+aMlfsyO(QUkz%c^f2tp&Q8e!cC6C>(2q{l!s zq-_SI1S%fX)F;VYh|5M?G2*Hb*R=gWGH4_tMp7_jUN@0rx6nvCjI_&0d!#dgkq#Q^ zh>?z$oGBwM%S4cjAsK1QNF5{fjWjUQ$VgK|x*cR~BQuT6F|yd~7&SY6vokWgMx}3* zCR<7Kqn@(aQ_%tGo|@THmlif=k74#$W{++5IA)J$_V{K`VD?A>e7E#!(Si@{6*Qf*_Su_`pv#!voDZxM=iYWFPZ&@*>6jAoQ`!3 zxaNRw4rJzF%^Yl*!#Q)LXpUrNA!imMv!Ge3+R{uDG$kWb%6z5ZZ^$f8(!4Ou@RJer znvM`?+MFEQ%4fUet4Vs9WfpC-=$J*%Ec#|Kkene&4>F6Xr1eNHj^w-OxO>SkOETM? z(-bqEp>LVxw#=8CWzQ`8GKFlGW3$pNv#Mrg(5#frN?qpFw7*()J+sx{npK8vm z_L|j#SsgX26U^#FO;xLw&1zl$LaUZpb!04ChNR7EY*rJqy0gH5qrvnf1KZKK4Vr@zx32`#9 z->k?M({W74Go3(F_S}-`mQA-}x;4{nnyz8Gp*Gm? z1~i+`E9*J8XPbVPDP6eyv8Lany*K>4>5u9Rr(ZMurs=m$U#=6FeyrJlLCp-BX3#bR zTkAn3889rHVZ#g!Gc?W6HACMFBQxsO?j6yv85J~JFlw4n+l)*zO0|Sk>QN+rFs_(! z%Z%G*Y@4xb#(|ksWfaPkbE(8Ilh8~eGaWG{bx|^pWIi^no2g}{j+uJW5yZ@T&1_gQ z5Y4P)%4k;Blmk!MW67&%W|o=RX6BfgYi4p~X}8y9b&OgaldSautFy!E?6Nv5R%g}f zw5(3w>gu$*x~#5ItJ{*cR#s10`chdvH9ceNF{~ch=vh6!)e~4fq16*h3n%SIqTP|C z_mI@&4QW-4HqDWgd6^TI^E^2OcC4Ihh0+(p%E@gLE0;-|1}pDby&Y2C zZ}rOmB-+}fuixscTYZ7m7g>Fo)t|HaD^|Z_^(WSVG(PFp5$i$68kABiX@Vj(U4c|L zS;J*(xM>Z$)<{tj@vZT`OLDfXa!wMDG^0~fb0q(!Zj~F7F=Lh6lFK6L zCRRDJ%CWX%(dmD~s+cm>ZB=}$63M);HcG6nXH~nb>R6e1wW`Bbb=0a(&`cSfT$EuR zL+0mX?oDR7tg0{5OI9_MX(6jBx1D0ux@C^UstsASlAbQhKzzN!s&`uTE~`FPMyRcN z&Z-Yv^--%n!KzQxoYQ(mXY=ZYRrjrWVAVI0Av`TsZuV(9YSWN2bE|1t&A@7gRx`6& zRjXB#^Chcg%Nd2$3gtY(YGqctZnbTz9a~1uGD>=OZWxvkSZ2;L2W9W01Er>InXY9< z@^@)jIZ6Dntcp$~%B+G_m!Dx-hNb^y+M>qpmwHXhE^DTMjIi34WjmJbS+;N4fn~>* zlhagLNh5M9mQ%Hynw~t#KESapx6g7%EVpF270Wd(*RtHm@^Y3pWO)_Kt6E-7hHNdb zX?bnSb1W~kywvhLEx*U|2P}Wk@`o*dyyZ`@{E3!7$?_{Y)#*2Mu)+5%Kd}7J3OcNy z(+b8~L5~&WtYFj%CRo8F&D#yiIxiYDbYvnhtiZGa+X@^j@T|bM0=aEu1*sKeRxsHL zbDHNH$~>wJW5}_CX@#B@`c@cNQO=4AR#dT~sue}rut&-k$yGI(yS<(PbdcD~_p>$`Hj%m`5 zOxl4-KQHOYC4IHD#7f&&$+WQaC6V?*Lw3Gx=Ob-0q-{GS^Kr!PYuSCV-IqxB0nKZc z)Q|qE-Cwi&8+N~8_d9mKZ}*4xK*Js|?EzO?6Ak9=LHVE19*m@D)*hHk_r(|Thb}6t+lDU<$%YBmnCkcFZxoVf2k`iZ^ zW4qEJDOPr+%dU*ID?O3|WmiV+O4Y8^CGAH4kSn%b@$E`zR}#A-Q?Qb$V9Rv1U5)H& zYS%ioUt>+$z(}=_q*$u~T#4@~SH!Ct^Cc|NN(~&VL8T8RA##Y5{RduLL4o+L9 z-LmagBB%6rd#tv7YL_$}uU)mbB9AV`4d?wGB@WLv6Fm zHpj{ln{DQ7bG#h=*m`gyNj+8DY}%$NAG-1ZX`7LJ?>>bBL;!8}Wjpk+TI`vYIzQMMJ@R%A4)E$_rYP z=b%T~`k!OlzHJA#ooE+KM_O3**-pWBs`nw1P=?P_%=p9n|fhVFyh+XzSw*0y~K9FlUED zc39LbV9B!x>pGk-XAGfbhmIY3cIew-V27CpBj1iY z?YPH|rE%AIEe?n!!K!MM)a|5UCrvvs z?8LQ`z)o{^YTH@P&hmCPC`AT#R+3=@J9F&Jv$MpWQg%9fwf%{7v*;dlx`&+Zf)*lZ zpH|7@l*BGc5|L?PnUrWc-7Ot&kh34{UMjyLM|z1$w@{}$l&YYf- z)8k7oNJm>V=CzehPCBee!wl)WAm#f~t1Sh%Qpzb^^Q7WIn%qgcsI;Y%Y!sQAli3d$ z18(WShIUw!<3afVaiyD>^aYddT~01?a6c~=1!ur1HDfBsoey1?t6b7BbkfSA(1*cGvB1WA>)T+g%Q)oGbwo@>i zg6R}2{mU&lQVr-7e5VjNg-{CloI>mrQm2qP zZS?_}hj!`}r|vrS&}j^5W}i;K)pS%|XS`&h%hWfePEff{BXAmWwa95CPP5l(_BqXp z)2uqphSN0kC|)N3T&LCNwEDG*rPXj+hSQQQG9(%}t;}in%c!5zZaHnwX~)`s+UU|2 zr_!Cy=yi;K857Z@B$*H}3_T~%^JKZ291Y89o8g#|9GE&*$*~egy4gwVCc7Y?8IE0+ z9jKl_*mAfbyBK-@`|@sd>{$MM9mjAS%W-VS@f=6CB#x6hZcZy~+_Gjex;4l39XHeV zcwVpL4QWc0*KoY1Gt$QQScf7#y62~8O{G#KRHD}7NIlk}sv3Ar8icU~+f|?UF zWH!SIY$phvKrTw1Fz19tCoDN(%?SfXdhbPfCmM31VJ8}KqJk622;E-lhmA~?j#K-37jrUEmQqM_!Ck>>rpOcL^ zQp}o_oUG|&vL%#O(QdaCC`jkloSW;FexuT?QyOkci%hL>&3C)`hMPCE9bj)&8fLk@ z(i%xx1D4#rvSxJlxvq3a>X)y`?a$nSqB~I5G|z#WJK(#6eePhz9c;OSmUPFEZWQiN z%^hmHLxFTvaEDv&u+&`_+(JdFaNUB`*hr&6X{$5n7KgR4TZ<1RT~xABWOBZ#qv=`z zCTD?`TeS7Jq{T&2-jlhdoYp^S-G~f)$~mGOR61_SbxXcm3f+<yOqeT#BMd`R{Py*Q4$l~YTd26ZmnDLpWIrnTPwJ=qFZa|UsKI@Yq48P-1@Lv zuekMw%)x8pfksJF;B|Ui(rqla;kk{>ZRXr&(QR68Gj&@-Zp(68f!m7RR^qn%WIS5O zpW3lDWi)za%+WOpu2FN1x=uLg(3PBj<}^)DPySo3naY`)YxTQU$+ar3<+xVlTCp6A zx=y$3VO?iXtC^jW>-eslcin=Nk;yCQ>XWIvuHm|ttN+EWmv_Ck>jkbq;QAHUueyHZ z21Pfhxna=_OPUoJHr=r0MmaYsxKY!M%Whn8lf0YsNiva}1a2BiBS|;QyV;$G!*U{y5jP*K3y^cxJ?cM8K+w1J|Is>n3)a%Z9-9_oDEX|a? z9%&gVt%s!@uyo*)CSKBzX+T=mdbuI#=-}l>v_xB~3M4I2JCMr!p$v-4pq-p;NTW=7 zf4kDyQF=8>??o@4lTLhIZ->{L_j*U9MV;5%^m^OUNKU%NNq08weA!o(_F-P1=k-aO zC+W%6@CG7Jd+yY{!In1|Nh26-jX5+VtwX%wqBks!6>8py>lM1a!mwA6vOMXUDK*2r zUa?P0^t9;I&;bmsDwG00DVdYnHmO@nr2tIoth|!xl{~NHd!@iDNi{-FtNOI0L`p&A zct;YNC4+y0B&mB9nHrV$^U@i5)T>U^vOg)L&=gq7!IT^>xzyBCE6wk8y{hk31Fsr+ z)l_ozyjnp^E^4M8H`N@kCdn%~uRg4WgPQRp=`yZY_q|3=ayTSiLsMfKZLbk|jl^qY zUNfilg;Ln0^WQbES@)Wzp1n0~-DNfduNisG*pn`ytzOOYZZ*7C%WGLOZRWK+ujR|s zm)Gv}+GDkiXuHpAH@&tY6C^SZA=3$7JM)Z+XEbH>)-ysGOq2mT8GZ9i!!u3KbUoAe zWF$pLD8_4bqn^pjEU_V{qjEOr*#n+E=-I=bUDSdS$uXBiHa#?N$uY4E8hN&*2Z?%= zDTj%2{XmY}JUiBw>Us#0_nZOG8PqC&{VWMQM=nZa_v%TnQ>mnMOP*Wy+?wZFp6hsS zScK^>yyGz zPqOv1nwPb_%=fa$%VKY`<#&wrJ4R(023d4LN4`5vzti)(I{mILzpKaZ8uh!T_}w|_ z?e0rkcI~cS(juOoil+DW)cl^hPTk9RxeV0FX}uhe_c;2(^!R>HAPvf;nYgbFxTOoW zH0T=gwHdUuZrA(1u* z(t5z3G{G-+`_j2qnoen9yj1T=HIkGgNJf~{JWDyTlmyH9gd7V6I&ejH;vBP@y_e>v5$DO3EOrHNV={Nd`>^mmv^229dq8{7p$dw4^nMel^l{05lm_ zx{wyNY(g?OB}JlU`!&z6g?=sa>t)TSuGf6cW{dnrpXOF;@{^nrc}zO%BXc3KOegqePDa>$v!aRKI!ZS`DV>?KPcg(G$f`PEq8vL5`$-r>yDWlC>)NAdVqNfxhF&v7H>H zX-%_!{L5##d^|UO{rn4kH}Soq>}~xy`#UXq)>pG8Pf{MVPUHBdFDHn8?E9&%h$4;l zrDL%aMoSTAP}U^$pr(l@L0cz$vd zEcUY`=olMxj0Un!jINK;6?FCnoqa*)K+sv!!7yEqBn-Mbg08NhYcv>F4#s&}%&n^( zNc~(zv*zclOdu-|=&)Ij9rQRsk6cHdXb|*-L67u7mM;I&o>_X?_G{lY?eH#L+NIZy zv_UUQQ}Q5J(bRj%i*fIhq2gR~)lUFMUa-lR+4svmjOM+Y$wdUG{E(wOZgP~d=oxFzog5g3iTndIO(n%^94ujz& zn2?heA;F{x!6d0U@6fiL#qmLLVo;o<#kJZeqM}L4+Ww%Wlio!`CjqpQUrzDmfL)Gd zq#j;=nL$v>X)$i89Ly0Yh}!K^ zsCEX`uAn+r7haH-)z$G@9Iu5dm7r<_bILZPxFV>!x{ueog-D74bUBXNILVj~YP~^i zD5w>JnitfPpxztQi-BayYSyMCP)Y`*q%Xo7}8o>CVC|?N+v#K zb}-X6+h#!~#N2HmzGd^(az;X0L&k2G#r$%zZpp69F zQs7nsw;H%^Fy{bN+kWfOk{lJuaZE#wFyu2^K9~b947@n-(!lQs{I0+sE1xBSp9}nf zK(ZrsS7ir&pamcLqR5YzpX3ICC!2yG4Z;C!92kyh$AYjDgiSqZlh0m#<8}v8E{K|e z9P`GxAT9)PB}j5XQVbHgX)Z|ngR~f=WhqCKQj$PsdQ&;u3xhNXq@8)z7i1&S{wK(c zATxu^2_}2N#uKC_HQ2i&*n4u=ExAA4p)P2Vmn9!$xdmA@K^7_q^I@2e!(KD&wL)od z-Zv6TTU+gsYJ~ls^a%|IO5s2`9PAATi~86Hr6FBA9J0dU?r^vo4%^{KD;&wBbxv69 z4y7%+G`iESE)~ttmsDj*eAB)j(p*Dkz+@;(&Q0a`A`FX>v`z?1xo}RYe^@GqrDj-a zN&UQzb;-%A7J(O~Ksqef!m=wBwqaR{>!gmfDJ6DcwIi%{g>%Z%!s<|19Sy4!!s;X) zN7q7~R4PNlS~-+*fm%DP8G0(Lg#k%eOSR-(Ds<}=t;MO=!g@WdH^O=Ls}x#g zEjQGu7ef!k=FB>TRuo!OLc0{|aIhcRv5b_-0G76&)bXH6TF38HLdOgpCv;r>`*Nbt zk*mq6QBE6UxRubYg>EZ!+o3D74Y|--C>lIe&o_! zK+2%Qs4hp8VHAXMF^tP$TnS~QGxowH7bev(X@p5rKB>Ya2ot$=f0z!2X){dQ(p*2x z%3)@NnHgq&n5D98RisN&^+w%&(VP{hqVB<{dnnSyrDQ27DY=$nO{uk#8WBmBmpo<3 zdTVR$L$?)myLwbBpNI13<}5E1b;}(}|9V+tM!NXtwWGE)V3yXoIcdu(?L4J9pY(W> zmRizKM0zAhF}IX~N)?w>pGX?MBy~zolVnxMbgoR@*gEba=c#hkET6aX&erDs(y~91 zuKLmL~j{3}~Pnz>~OC#o}-;1Qr??6u^%Lqu@k^w)` zUao~`Fpz$rk*q2(G@{MDhDy;;OPX3nLs2x`E$tek;lW57EJ~L{8TARH;Yb%B7%4>~ zQB=rBh2E&p9~B0oLLr*dF-*%e z`yzKhTgA*728!Hjm1$jN`?^+sNwoW@69T~27_Of~Xak!M7n zBPVilwj-w^k)9sNDM2d=icw%j`k|G|{!uHL!g>_87X>~h|;#KAQ5G~Q8pN5r6>#JT2Yq7bC$A;JF9VzEE>@r>zYRWvSyDg zx+81n$oe~1U;qF-5hDPy7PMheAIB_8t7o;bbEJQFA7e}E_cV}TwKme zYY*+sqx~-=ebv+fp|Ynt744oNCDR>or7NzCmA(VoyhN+?rK(bjW27!Y5}hQm!qO4Y zN*rq)wNwk2rC2nsO8uA=G0L(V(tx=f*DG3usijA)SPOg7xSmOsNZe?~4NI1{ikri6 z(}k>QfN-D zPi)p=O{vKw0V1}FGSw|}ld)ZjZ7;SXnGunRir6W}P9=8a%v(k(OR-yy=L{FdZbJt0 zWb`d|9X%;`qu7CzIoXK)Kn|DVpcn_WI56VC zm(E5~ITwemIF$d7;xLw-R~!}PT^C129GP+C$Qge;=kG~=Px1=J`aIoO|4ZYf7AN&M zX~t=PoEBp#h)-K_YQ(84%az1gDbCC|vy#rPWSpsGtUdCtuZy|qQd_b@g><_g(8jmY z_f)!O>bgf#D=*cqk{T~F-ZIi4SC-?WNR~fI<}7L=OO@ynDEW~jU(}ps8HdP6Nj}y^ zQF=#Y`Gll5(A807y@7r+8R$+1=d6^XoqUsIIF}3?$*`4-6q6A%8F3PA+?gcWOjDZg z7L!6X(FT!8B25X4dF{!eP28l4rI{34NwJ+24QcWv{j+rBqZlRHR!Q0(1xYDPN|E%Y z(F)yiO}daI`k;_Px^n< zG~cH#?{z7u8cDP|$Vr;Tq*<1ljif36?m)BB{L$rs*KyGovz$U;#L#akTG9fXT~ceUN!OJ#FKMK8LE(e2Cc+55WmZYVe zuHm2!gY0xp&ziIxrrPZ#llCZSr6`?5^e|r=Nn~j?r)AvLdRleUTDR0Wr?o;_Yf5=- zTF+@aF|EM#QYqonT05x$lld7pZ5Gp}l{THU>7~sqZB>AUOCm#VJY@%Y6~>K zlKQpOm;bj@-<7eC)X&nOsKx6+GnHv)J?TnyRibb}`=#mex*TE0a>OQwQ>hfYM{XJy zrPq|S!_ih5u`7!grAaZ>w^>8}5Yu#6eo1NCNK-paoixj(S$~?9r3f<3q?(~So3p&1 zE{2dB$Z~^OZYawQXStC~ms^t-R#HPRCBjmFql;|m_@%B3B_FoB{F2^TF3V)0q(u(7lWAA?Bpc4@`V7Nm=~A7IbnD_vBgJf_rPFRB(u_5i73TDflMX<|iZn*l zM87#r1Em9?wDZ#;9BGgz>orMPbE&Rr@-kyDlXbEW)*f5E+896*=gUr}y^x};Qpqay ztdeAvG^=)I)m&CBXVprk9V?_{S_=E6(q4y~4Kx@(xsh^S3m#pPytvG9U>k?A!qP8Vy*R!^pNfm+7pBV$0 zQP1XNY-fg@8F6N$nVHYbe#yMDAU$`(w|8WFIrg~ zWpSLvS(XfC$%wY}(;cyyN$0<`mZfcZt7Q6TGS$kpg=udo%1QjyF5M_w2GgyVjiDv}Om5*+DXUilb}%c8uM7 z{Or9ad)~j-kRCHC3r1JQPo6$w=czkvF>P{nyB&AfZQ9Jq#T|F-nYzRFTh5sN?{%gB z`@j3n+i~6xPrd#h|HDnUoVlI3*^KRbrq25BH~M#c+&rg!{(szbi)piFOy7Rm%>RBL zH@^9Q-gM@)S-byFKlj!dr~hw1)tR}&^qHG&_uqfmf8NWvCwv*b`SSntT;--aPMf*& zjA^qb7iZ0yw%z92?$O+S%N_pnt~UE+3;+MTsW)xb4!g{pI&D@@=czvTe>`A++Ri)A*nax|?}v`r@6ClT_+NfG|K+Fte>a`Qeav~S z_^EeQbwTnmV-}e6@0c2~n@N zlzi*u%gVRj=Zf;J+gFxvz5i8+SHm^11J@Sy_UjRMiF&*BiN}h1c@FzTy}Vz(_2&%Y zFcwhXReHS%I1wj_`Z!DSt@m4%Z@pd(>!NON5x3DmQ`E~H`PQHBVIb=LgcxBg>h&}E z*4KK9eCzc#m2bWM=JKuaRNO+;?OPJ-yI(Kg3TKFVf7{BpUT=Hc5od~eeSPbzJL4{* zUVk@YeT(Yj*_(JD+*j1=?N59F@j-Y99>(Q|i~4wuB0gHw+aHU^v;727uXi%rPi6aQ z#AgtniD%*2cn+Q`>iwTjd;wmF7vaTt30{hq;pKP*UWr%X)p!kFi`U`xqCSoriEk41 z@9H+<+wl%juXh*m-FT0vugCqw58#9Nkf^tN1RoRi`cL9BqW*rL#pgu5{tLt};!F54 zzJjmfYxp|8fp6kl_%D1L-@$kBJ$xTOzz^{w{1`vMPw_MS9KR6t`F>6O4StK?iTZqh zApQ}5!k_UMQLpzK@$bZc;@@ol2lYkO*Y!VeE}UD``tQE$;riH(V{shz zU=H)xi+$LS12~97IE*7$!0|YW6L2C*0tYZV4*upj%XrhHS zI_RQ@J_ZYZibuVRNMlm;g&cZx562?HEx63;&!+_?tnYu zPB;^1;m)`V?uxtN?zji;iL-Gp+#C17eQ`hB9}mC-@gO`H55Yt6FgzTOz$5V}JQ|O| zWAQjV9#6m%@gzJMPr+01G&~*8z%%hIJR8r!bMZVpA1}ZQ@glq!FTqRkGQ1qGz$@`8 zyc(~;YwWs@XYo0F9$&y0@g;m2U%^-LHGCc4z&G(N{1?8B@8G-m9=?ws;D`7TevF^s zr}!Cuj$h!H_!WMQ-{80S9e$5L;E(td{*1riulO7Oj(^~v_!s_-|Db-j%Kwh}51b3< z#(8jFoDb*61#m%J2p7gha8XTn?AV6>vpd30KBda8+ClSI0F( z`5M!KYqNbFTvycNtuEsAv0Id{G2@7Pi1Wm~#Qivk!(2Wh>iv$geWEy@#APn8u)QYg z`AD1CMS^!Xnm>hn7k55vPn`5JSi{G-=9 zj_t?e32Z-=_%u9S)Z@vsiO<1vMSVOM5ML=5Otk6D{|9pd#w{d?_Z`&b-@J($Bh_F^CQ;{Xogkf=X*gt$OFN<0B4vV8;M z4Y7zNEQ@-7RpJ`fvBBjn;x-y+q9yA6IK(b`=yQ2U9AS(JrkLSII2kv_O>hcsikso) zI2E_RX}Bd$$E|P%ZjIaEwzwT`k2~OwxRWSfV|FIq1$V{WaCh7T_r%$_7w(Pw;J&yY z?vDrHfp`!ejECT%co-gzN8pio6dsMo;IVid9*-yBiFgv8jHlqKcp9FLXW*H57M_jg z;JJ7no{tycg?JHOjF;f0co|-fSKyU+6<&?k;I()iUXM56jd&B@jJM#ecpKi1ci^3P z7v7Ec;JtVs-j5I9gZL0WjE~@>_!vHpPvDdI6h4j5;IsG~K94Wpi}(`0jIZFU_!_>B zZ{VBw7XAz0#&_^td=KBp5AZ|$2tUS8@KgK@KgTcdOZ*DI#&7Uj{0_gzAMi)~34g|4 z@K^i|f5$)YPy7r2#(z*hWc2g)KX5Lb8|T4!aXy?M7r+H^AzT<2!9{T~TpX9cC2=WS z8kfOkaXDNbSHKl2FPVB<qMGt)p zFvJLBOfbbv)aN~!cw^iIr{JcdUT<^askjAB!!2<-ZiO>&YupC6#qDr=+yQsQop2`3 z!kuv!+!c4j-Ej}x6KCUIxHs;D`{I70KJNpF55$A;U_1m5#l!G$JOYozqwr`v29L$# z@OV4{PsEe(WIP2=#nbR~JOj_fv+!&@2hYXx@O-=gFT{)RV!Q+|#mn$=yaKPptMF>P z2Cv2I@Or!fZ^WDMX1oP&#oO?9yaVsVyYOzj2k*uE@P2#%AH;|7VSEH1#mDe*d;*`u zr|@Zf2A{>}@OgXzU&NR2Wqbu+#n7xt_wfV#5I@3?@e}+M zKf}-Q3;Ytl!msfg{1(5%??ru_KNA0hKjSa>EB=PR;~)4Z{)KJPZ%VBk)K(3XjHP@K`(!kH-`6L_7&k##8WAQJ>f8#Ao1{Y(Ja$96T4# z!}IY1ybv$Ki$%TvONlST%h`S<@l|*=UW3=-b$C7AfH&ezcr)IDx8iMhJKlkJ;$3(* z-h=nzeRw}UfDhtB_%J?#kK$waI6i?-;#2rEJ|pUJ_VdIqi26FdMEo+og0G75HRdh( zN3Zub+uy-=@jZMWKfn(~{du2=di&4V{yBcZz*B~Hh!a0YIT+u*jiov81J9dIX6-g;wpJK=SFrs`yb7@J74| zZ^m2jR=f>w$2;&&ybJHfd+=Vo5AVkZ@IibCAI3-UQG5&^$0zVfdlht!Rr*STv8|T4!aXy?M7r+H^AzT<2 z!9{T~TpX9cC2=WS8kfOkaXDNbSHKlz*B~Hh!a0YIT+u*ji9d3_1;EuQx z&cs=`Gwy=B;%>M*?ty#aY}^a?#(i*K+z{*YI_G1K$+&@&AkXZF~pc#rH(L-Uq}V;z#%~ zeuAIkXZSgOfnSPxe_s=SgWuwJ_&xrBKjKgLGya0V;&1pn{(*nuU-&ovgPPb;7sJJI30xAF!liK;To#wZ<#7dE5m&;MaTQz@SHsnD z4O|mDa4lRL*THphJ?z9TTpzn}ERMq-%wZmTu@C!k00(ghhj9c8I37oF0#3w9xB+g6 zMJ!<%D_F%E*0F(2Y+)M>G|@sE9dyw{9|H_A!Wa`wF~f~;GH#5U;1t{xH^a?wDsF+( za7&zyTj31c8n?l1aXZ`|cfcKSC!C41aA({Fcg5XsciaQ_#M!tP?v4B4zPKOmj|bp^ zc#x?3twV?p#l!G$JOYozqwr`v29FhWUgAXJlkj9b1y9A(@N_%_&&0DteSGH-pNr?= z`FH_dh!^3-cnMyLm*M4j1zw3);njEzUW?b^^>_o`h&SQQcnjW&x8d!02i}Qy;oW!- z-i!C){rCVrh!2VSx;;YtC_aXd;}iHKK7~)?Gx#h%htJ~+_#(c9FXJotD!zuV;~V%U zzJ>q7xA7f(7vID8@dNx2Kf;gk6Z{lE!_V;x{1U&yukjoF7Qe&q@dx}7f5M;f7yK1} z!{6}_{1gAezwsX&vml@6I2X>1^WeNVAI^^p;DWdiE{u!dqPQ3?j!WQ@xD+mp%iyxO z94?P5;EK2su8gbTs<;}ij%(nW*nw-|+PDs`i|b)0cH#Qijbm{f_Fzub_fs!%ANJz_ z4&o3F;|LaTJdWZ7oQRWf1KbdcSi&+^uqx`~tP?k|i7jlSfhJmLqk}Gb=wpB(Mi^s) zDQ374PR5OK6P$vZ;%2xxPQ@*78g7ZxaVwmGTjMskEpCU~;|{nZ?u0XO7VeC@;I6nE z?v8ulo;Vx#!o6`H+!y!5{qX=i5D&tG@en)|55vRp2s{#x!lUsRJQk0`063cM1p!mIHbycVy+>+uG> z5pTkq@fN%lZ^PU14!jfZ!n^Svych4o`|$yM5Ff&a@ezC!AH&D-2~qbCPZ2+j&)~E8 z96paP;EVVYzAWnfy-NHVzK(C;oA?&~3*W|f@LhZl-^UN|L;MIo#!v85{0u+GFYrtJ z3ctp0@LT*2zsDc&NBjwY#$WJP{0)D{Kk!fd3;)J{P#f6HIbX-QaBiFj=f(MOep~<- z#D#ESTm%=z#c*+40++<4aA{lym&N69d0YWk#FcPmTm@If)o^uO1J}e3TnpF6b#Pr= z4?D37*T-%gi{r2dbC}0o?8AN>z(E|sVI08%j>l1)fD>^NZh#wN5ldLc3Rba(b!=c0 zTi8YeO|;NP2VL~g#{ff&FvbK^%y1)|j2q)7I0ZMw&2V#^id*0`+!CkbRyYH<#%*w0 z+zz+L9dJk731{Lg+!=SlU2!+u9rwUJaW?LSd*eR1FYbr?;{kXe9)t(uA$TYrhKJ)3 zcqAT$N8>SgEFOo);|X{oo`fgkDR?TLhNt5hcqX2OXX80|E}nOX5F&3Cma!b$?PLu44n6*upj%XrhHSI_RQ@J_ZY zZibuVRNMlm;g&cZx562?HEx63;&!+_?tnYuPB;^1;m)`V?uxtN?zji;iL-Gp+#C17 zeQ`hB9}mC-@gO`H55Yt6FgzTOz$5V}JQ|O|WAQjV9#6m%@gzJMPr+01G&~*8z%%hI zJR8r!bMZVpA1}ZQ@glq!FTqRkGQ1qGz$@`8yc(~;YwaV1-Dea1e)Z7)P*x<8c%x;6$8+8{mdm#1fXVf>o?x9UIuh7Piqq6D_pSK^Hyr zF~ATbj4{C!Gu#L#3Z9Cm;pun=o{4AS*?10~i|66_cmZCB7vaTt30{hq;pKP*UMcGNz%`=o z|E|Lu@Fr2mOK&E=6>rBox%@8Td+f?Qt z_;q}f?Qe^kAN&E^Kf+H$&71f_)cgIC?O%&}f8P=Rz~w*UPh9>hm;cW8Kk!dc?|00i z|9<`E!g+8$QGee2xBxE5m*)Z)Z33E&WZXw`q@6j_7NN}>g`8y0#3w9xPhpDM@1~Ny+T|Q_2)K;+i0RK>d$eA zJq$#>T}+&c`gk`co+9e)HpR_wbDWA>;56J4r{h*Q1GmO)a9i9Cx5piDN8AZ#;w;=5 zcfnn8H{2cfz&&v`?uC2fKDaOLhx_9Jcpx5x2jd}lC?1A~;}Liy9)(BaF?cK+f~VqXcsibeXX06SHlBm$;(2&JUVs}@OgXzU&NR2Wl>+(SBYQ4*YOQ}6W_vr;oG9#{$1ktL@ALO^9kEOWBcd$1>3(O z{u;l*Z}B_)9)G|e@hAKlf5BhzH&ORPe~S8e=34CE`<=N(-98`j{J4Oq&toCtg>eyF z6c@wAaS2=!m%^oS8C({Z!{u=WTv61YzcTSExT>g+cMVbZqieH$9b6aJ!%pnN^|4#j z`yYonw&$^z?fp2&_8}a`5iH<%9K{JZ5hvjWxFHs?gk`K?6>C_>1~##UZ8XqC3vG1J zMGt)pFvJLBQD6U!h$oBsdTv5I1vkabaC4lBTi`U@5~t%%>8Ult{WW6ay)oa1}8e<-yKwn##Jl4jxF^oWy+pmgeMG&V{YCvdI)uv)B|eJy zXi=|!EFRDH6YxYl2~WmT@KjOn|19FOMSUM#OneDmikIQ#cm-Z5>f^nJ_*%S9)cd=Q z_;yj>{|^v9h!5ez_y|5K>hpVC)cx4A#Lsj23-}_wBEB=PR;~)4Z{w3=39J2)b zMVt%g#(8jFoDb*61#m%JNYv-I2=Su07%q-W;F6+Ve`(@na9Laqm&X-wMNx0JGVv<7 zD%)2lUIW*}4qOY@#&vLATn{_33)jbP9E;0elc2 z!iVt@d=wwU$3-bw9`l^2_xCc}U%^-LHBtXA-XMNc)YthP;&<^qd>=o+5Ah@X7(Ws9 zem^7rocK%PukdU9M%35od*UDPNBjwY#$WJPQGd?w#DCzQqTb&>#ABBH_x0uyb=-Jv zoCoK{`EY(*02joCaA8~o7sbVJaa;nI#HB=iT+0$Khs%rlJXXY&aaAr~4OeITn#3Kr z7Osu!hAKs4Kzi4ogHEqJ@hfa5F?B+!4xyx2q)vlxCu_dO>r~a9H-(II1RVN>9`fnz^!o` z+!nXP?QsX(5qH9wI16{iU2s?24R^;qa8I0#dx`pYwh!^XxF7D12jGEt5FU(&;GuXJ z9*#%gk$4myjmO}zcpM&&C*X;A5}qvT{_b?*Geq5Ao=bclo{tycg`%DZTuyuiUWr%X z)p!kFi`U`xc!Q{~<4t%A+i%6&@OHdI)a&0xd^hpEct6`8zz6Xmd>9|WNAWRyT-5u2 zlK3fn8lS;uMZMnh#4ixPgsd)ooA@t$2j3HQzw{~b=c4YfzrZi?EBqS2!Ef<9 z{2qV6AMq#r8GpfFMcr@wLHsB2Kg7DwwLagu#5tcMqF#SK;`wm_To4z+g+;yoV#JH% z61XHTg-hcyxGXM*%i{{TBCaIr<6H$-WBcm32Cj)6xE8K0>hGaj)cYBSIWEs*FWdWx z2XGLFa2Q9hfa7r#Cy07pUL~$!9UIsb^>s8vy?%(BaQPHbANOXWzQ3ojeM_8_sOt(O9!NZxc!;R) zrBTGAag3<_#u1Ol2{;ia;bc+UPbHp4JVVrdpG`cM`gx+hHy0Bx!KJtimy4QrC9bA? zji`CoQ@#;5;}%h$x2?Dhw~KmxcN6cyy|@qei#op}#7FTM9>)`S5>Mf2JcDQP9G=I& z@d94NOL!Uo!7F$bui~8VmJ(s5ilY~!pIl} zqhd6SjxjJM#=_Vb2jgNqjE@O0Atu7am;`+>DJH|@m;zH`Dol-OFfFFT^q2uNVkXRt zSuiVR!|a#?b7C&cjd?IH=EMA001ILvEG+7MUau&`Q85}u#~7lvizVvyj4SGMk%;=lm;`+>DJH|@m;zH`Dol-OFfFFT z^q2uNVkXRtSuiVR!|a#?bBcQ3p5^R>vAx6Ki2@tb=v29@fVO*bp0GV{C#=u^BeU7T6M7VQXxI zZLuA;#}3#LJ7H(+f?cs2cE=vr6MJEA?1O!=ANI!q7>EOL5Dvy6I8@ZK#*emsB&@em%yBX|^#;c+}6>NuzH44$L@JpPRr@FHHq z%lHpo!K-);uj388iMK?Z#~tFkcn|O61AK^&@Uf`-_)OG&ekE$YH~0=e;3xco-$ebq z{Ek2HC;r0U_(#<7d}4XV3oUB@Fc=oYiP|nAaU@aa7mYYN^|2_AM|pfqfC({?sOw5X z>`R=CI60=kl+>ptPJ?MNov8O$X5uWERn+enxry^&UQyRmfViNj^C^selouuT#}Zfy z%ZR!U6^H{w-M>o2Rfwx%HOgxc*Th;_8|z?QtcUfnfvD?hM%)}*U`uQz>blwxx5akY z9y?%1?1Y`M3wFhB*d2RdPwa)gu@Cmee%N2s`32%2$_L{R9E!tmIF7)PI0{GO7#xe^ zaJ;D3ZL+BM!8FRJ;|%KOh&sP{xPbB{qF(2vlrJYcc;W~c5hGz_jDk@y z8b-$$qV7*z;&`H7pG3roMct32#L0+LirOz7<>@hlsPoQ5eRj%oP@YTF{P{%9Tafa? zlou2Ay7&{9qP`546XpK}NU-Xn-Vb#tuP^F+nh-Y=HBWPFL3t}t$89U>-@Cg|-xa%I zcTv~Tleic5#y-^d6Ls7{ln=%sqONmx4=Mp5s}ti;(cJLbTg zm;O(V-fVjqF4<5u{f5%l2{5$V;L-q<*+17pF*d=b*bJLv3v7w4ur;>9w%88aV+ZVrov<@@!LHa1 zyJHXRiM_Bl_QAf`5BuW)48(yr2nXX39E!tmxTw$VNKxJq{43FapJc+09G@ik;cn;6w-*^Ep;w8L{|KJt8ir4Tu z-oTr93vc5cyo>knK0d&Q_y`~46H)i|8S!&bzlXddevcnSZTE@zGk(FZ_zl0~5B!P0 z@HhSu^*Z{*_2dsJ>h%jHYI#`7!&4psBVr_sj8R0LXEagolh~BU!MGR?<6{C$h>0*U zCP80JipelJrofb#3R7bmOpEC-J!Zg+mrvl; zxFI&e#@Ga#Vl!-xEwClF!q(UZ+hRLxj~%chcEZls1-oK5?2bLKC-%bL*a!P!KkSbK zMBS%>qVD?;%7@}G9F8M!B#y$-I0nb!I2?}?a3W5^$v6e4;xwF&GjJx(!r3?n=i)q^ zj|*@iF2cpQ1efA6T#hSnC9cBNxCYnaI$Vz%a3gNQ&G?t7*JCU3Hr$Roa3}7<-M9z$ z;y&Du2k@Y%*ZTzl-{4zO^SmeifFJP_e#S5O6~EzkQSO|q5Ev3eVQ35^YW{Gd?teteBVlBWf>ALVM#mT!Q`9_hh~tWyKR$5+;zY!WF$wx& zQcQ-)F$Jc?RG1pmU|LLv=`n+-^T|Y<8M9zk%!b)9hp7E>5$DD{m>2V5ek_0mu@Dx< zBIt)ju^9S``u(9aaTzR&<*+17p zF*d=b*i6*@ZGo*QZ;frREw;n<*a16YC+v(}uq$@M?$`r+VlV8CeXuX~!~Qq`192b@ z!ofHMhvG0Cjw5g+j>6G62FKz!9FG%lB2L1|I0dKTG@Onza3;>e**FL1;yj#>3veMW z67_wslz15~#}%T!=hqOg#dWwIH{eFxgq!g%+=5$i8*axPqTXk_hef5F(6ZN0*3x36K_#J=XPyB_y@ec-z&*vTbUI0y1*>8;td2FXCf35*SO@E3J*OyQQKb=b>27d7WKFB4&J5y zKJf#5Ncm&pC-@YfQU3y8QT`g=;9Gnr>U=&Bf5cDt8NZ0y?i=xUQQt4Wh=1cB43@yt z-bd8Gus$}xhS&%jV-swO&9FJPz?RqwTVoq+i|w#IcEFC<2|J7Wxzv-m7xut%&aTpHA5jYY@;bUuCPRAKI6KCOUoP%?5 z9?r)FxDXfNVqAhtaTzYh6}S>t;c8riYjGW}#|^jqwhQY8H4#Q&vjEIpiGDg9u7!9Li42+4fFgC`)xEK%PV**Tw zi7+uHL0?h7=OiOejwvuDroz;i2Ge3XOph5bBWA+Pm<6+9Hq4GWFem21+?WURVm{0- z>Us(i7sA3=1pTlm7DIn5jwP@pmcr7aj#HMn9G0iNB5?p#!pc|$t70{*jy13**23CY z2kT-ztd9+_AvVIs*aVwmGi;76uqCzD!}YiUH{vGTjDO)4+=|<9JMO@p zxC?jV9^8xja6cZvgLnuJ;}JZH$M86wz>|0iPvaRpi|6n>{*4zzeSR(xU&ep%3SPx) zcpYzu+W!{b5%u@rL+T&lW9pw0Kf~wv0$<`Qe2s7LExyC|_yIrSC;W_G@GE}9@Aw0M z;xGJ-e=t~LK9|u4Ltsb@g`qJFhQ)9g9wT5xjD(Rf3P#0f7#(9^OpJxGF%HJXco-iO zU_wlUi7^TKVp2?o$uR|{#8jAC)cYhYaXR7*#2GOY8}ndZQUCkQ zBE)`JRMdI+6Bj2gNnDD!3~^a3hvl&XR>T0Tgq5)hR>f*q9cy4stcA6)4%WqbqW;~b zA#o#YEb4RDg1Duq>ugQj2HRpgQS)>p?nK;G)I7Z??=5PczQp~ozo`8O5)Z<`I7HOH zSB(%g-&j%ejK_&MS=7IeO~I)+4X5J_oQbn=HqODhI1lIJ0$hlTa4{~yrMOJg`K};d zDeCX~^~4)+BW}XYqVCI9QP;nd@?E$a_uyVp_vaAtVLXCI@faS*6L?b8d7dUdgJjq7l|+7W&8)P;8juE-w<^jcSIfM9zGEDx;?~4_!ytyQ+$Tc@ddsVb(}Y%=6^@| zd;CE8C;USBSNul#58|K1zlr}~uq2*wLWnv}C{gDh8pDWs9U>A(6180v;;0x6qhkz= ziLo#?#=*E4Pt?2#FcIa6F$wxopG?$wrKUWMsQZbmL? z*T)9f5F24*QTMeOadT`TYMxfat+5TZ#de~$>p9Zm2oK{CJc`Hg zIGzx7|4!i<%Fp6CJdc0l1yTE5BEC#~h4?C7qx=T(O;NAg9m?WJh5EF?yucXAuL>(uEsOwEF>i5M=qLydDY@*IPJ8@3pT%zX7M|lCt z3t}NGEb718mLx7E>ONNxwSQ$%$FC;pIMuNR*2G#^8|z?QtcUfn0XD=&*ch8&Q*4IK zu?4ooR@fTbh`LYhh}&Za?1-JPGj_qQqV7X);y&0H`-z%=01g!OejFz1J`KkaI1)$U zXdHuMaU71v2{;ia;bfeGQ$?N6bmAE}6KCOUQQOTWo+s+{T_|e#Vo}$zf_Rmv>sgI! za4oLG^`hq4M7$aQ!Y#NJx8ZhC_jxbzKHM+rd=3&H!ozq3kK!>=$3KZ@M7^&s<1JCw zaU1X8UA%|)@c}->NB9_@;8T2t&+!Gm#8>zl-{4zO*ZCelQvL})Q~njdQ~rba7x8cW zLwWF|p7r`*2n;Fec%g~IU|0-?;V}Y6#7Gz!qllU>8gX=tfiW=_#>O}p7vo`kOn?b7 z5hlhY=!;1)879XRm=aTAYD|M^F&(DI444r!VP?#NSuq=C#~hdwb75}GgLyF@=Enk9 z5DQ^pEP{SmRMhL?k0r1amJx$XeOXbTmkPucF#s!JWvqf#Ma^HGxCU`8QS;R$u20;E zxQQ5C>YHLSY%XfPmc*^FHMYUF*bduc2keNQurqeSuGkH`V-M_!y|6d-!M@lJ`{Mvn z=Rc5m5Dvy6)DI&bjw5g+j>6G62FKz!9FG%lB2L1|I0dKTG@Onza3;>e**FL1;yj#> z3vi*R>t8JD^Ko-Vycl?Gf=~e1cE$nW*b} zEoz>(l)t0=Gv!|?|Ayc32mZug_#6LVuw2Od#qye2J4`3Ng5pr^Hm48qCVjWhfl&Y$w)SVGi!m!`hF=p%7OQO66wN>~}IU{$P!)v*TF6n!L5ZQ?pu7wchtY=8~1 z5jMsq*c6*#b8LYvu@$z)HrN*1VSDU=9Yx)jF2r528+OMY*b{q+KGLrbabN6*{c!*W z;y@gPgK>!HBl(8m2+Btik0u_2V<{gm>U}hY@~JpY)OF1yo`th<4$j4SIA8RUehY~g z;bL5ZOK}-4#}&8|SK(^WNAj*EUWe;(18&4kxEcS#Ew~l8;db01`p7uDhht$X z3?qINeZct8Ud)I2 zu>cmtLRc7!pdS{+V(5>>u>_VBb$?1@Su9U|1+0hx)K@01f>p5^Ru@A^-de=9u@2V7 zdRQMDU_)$#jj;(f#b($XTVP9Ug{`p-w#9bX9y?%1?1Y`M3wFhB*d2RdPwa)gu@Cme ze%K!eU?2{}K{yzP;7}Zf!*K+T#8EgJ$KY5ThvRVqPQ*!~-X~Ltr{Xl6jx$7UH;Z^S z&cV6V&nI3$yoh))F2SX^43~?VexC3|ME>ZjK zA>J#7koW-cK|F+q@dzHpW1{9cL3|QViTZxMKzxz-I`Iv>iMQ}J-od+g5AWjxe29-k zoyQa6r}zw?;|qK#YWvs3Z}2U?6ZO6Sh4?Fe!|(V5f8sCvjejs$3eV?6aP+|t7!pHa zXbgj4F&u`+2%@edk{D8qMjS)b&!w0c3u9v(jEnI^&69vQAtu7am;`+>DJH|@m;zIZ znm09Z8cZwd{hWz7GiJf8m<_XwA*6jSQS;>?&QE;-$_o(}#v+s#B`!u>oVWyWDdN(^ zWr@oXR}l60V0FrCU`?zghLrkxqRy{@sPk=1+?2S5sLw@v$~$6b>br>{rM{P_*RMC_ z{Y1SV2jfV}$B5c)tf=FTC!T;4DW5Fre$Nnf9SbO5giA!tvlN%%a$JEcaTTr>LrTB( z#2auUZW47~e-UrNt+)-h;|?*TwBJL#7x&?QJb(v9&3_n=Qhp4N;|V+|YWvf~XNb=c zpC`URd=W2+dOfe;b;@sun(r3ncSXIvPpE%N{d4MH5x*gRFY3O3z>oL|KjRntD(XCb z5dRc){NKcXMEky)(vvr|sMkFLaYRwuM<$L!91UZLA*DVJ^>HbWPn-Y~Vj@h8NzfOQ zVlqsQDMTG74RKmbC+hk#5@!-aNt|8OdFK?hK98vTmKXD3eo@;MBrb%7u?YHMQ7nf3 zSX|URC5cO6X)J?fMSY&C5LXp-el2!*~Rb;xRmqC-5Ym z!qa#L&*C{ekALF@yoi_ZGX8^C@G4%z>v#ii;w`+5cknLW!~6IEAL1i?j8E_>KEvnu z0$<`Qe2s7LExyC|_yIrSC;W_G@GE}9@AyO1_t|gaKcaoUr1D(nFrvPP!xD!lj(`y{ z5=O=-VkqeslQf*q9cy4stcA6)4%WqbSRWf;Lu`bNu?aTCX4o8CU`tW=r44agY=`Z!19rqt*crQE zSL}w}u?P0VUf3J^U|;Nq{c!*W;y@gPgGK#bFj~~_IpZmxfD>^NPR1!X6{q2JoPjfO z7S6^wI2Y&Pd{Osx5%FR%w8SfkSBW~$b)vT0Ncko)w8YzqcZk|<5Aj}6+aDl4h==en z9>Jq{43FapJc+09G@ik;cuv%DFA!f8LrZ*(_&VMY_51jJ;s^K;AK_zsf=@+#uAURW zz?b+6U*j8mi|<73{{cTy{u#gESL(kL|G=N3z8{09_Pk$xFa(CgP#7A+U|0-?;V}Y6 z#7Gz!qhM5whS4zw#>7|{8{=SHjEC_t0Vc#mm>83wFDAugm>g4JN=${RF%720beJA9 zU`EV@nK27y#cY@zb6`%)g}E^g=EZ!N9}8eXEQE!z2>M}BEQbDA97|wHEQO`943@=m zSRN~2MGU}7SQ)EeRjh{9u?E(}T38$FU|p<-^|1jq#75W{n_yFHhRv}Bw!~K08rxu7 zY=`Z!19rqt*crQESL}w}u?P0VUf3J^U|;Nq{c!*W;y@gPgK-EB#bG!cN8m^tg`;r{ zj>T~}9w*>LoP?8c3QomoI2~u;Oq_+YaSqPKc{m>z;6hx4i*X4q#bvl0SKvxqg{yH5 zuElk@9yj1d+=QF)FWiD#aT{*O9k>&B;cnc6dvPD`#{+l}58+`vf=BTf9>)`S5>Mf2 zJcDQP9G=I&@d94NOL!Uo!7F$bui z@fE(tH==&8cu)L6)X(uxlz*lC8-B+h_!EEOZ~TM7(s(}4gQE|Iz>pXULt_{Wi{UUl zM!<*|2_s_^j4JASq7%mub-l5P<6vBjhw(81Cd5Rd=1U^#_mvcsr^Hm48q;7}Oo!<) z17^fbm>IKRR?LRkF$d0#?KTtb~=Z3RcBxSRHF%O{|5ru@2V7dRQMDU_)$#jj;(f#b(%C)cdNHsP{#C z$~%aji`u@QsPzLV55$2u2nXX39E!tmIF1nY_sSSi^NtgBoQc#=!pS%V zr;6HchN%5!;T-Dc63-Vk|6DNYwF< zi28Syqj(ID;|V+|YQ8hXXYrh!M8NcFp>VJ#6FMlvtTHdedgCQ^^hQiPo2E$@F437~o zB1Xc<7zLwZG>nchFeb*r*cb=nih5rp7InXTDNicu{-hvIDe69^BTkPQMD3SJ)cwmw zd3MZ!IYn)kn>Y{V#eA3_3t&MkgoQ=TAs zin`t=qPA;_&9FJPz?RqwTVoq+i|w#IcEFC<2|HsK?26s6JNCey*h|#?=p*X&38Z`= z4#L4W1c!=Yr2QD;v7+V~Pdq`?{g^Cj-Win7#95-YpF=zs=iz)&`!5o8|Cdp|T-1Im ziC5ujTtodj;`O)zH;Ou+t)gDX-C{WLh-mLCJch^d1fIlGqR#6a@p=3kFW^PIgqQIj zynUepn&o64;0$30WVPPzSepnQXp+6SK5?B&T zVQDObWw9KV#|l^x1F#ZS#wu79t6_Dlfic#7@{5yNH^n8*z8+A!?r9#C?eS6A!>Z9EgK(Fb)wl|1jd=I08rF zC>)JrL>+%T@dTVm`4r-*I8D@XX5cKGL;YNwhx2g(E)=!@Vo{%y<&>|Wd=>F(;U@rh`gwAO`txEqiLZ(JTwNEn-A&?K zcpLBFUA%|)@c}->NB9_@;8T2t&+!Gm#8;xu=MBCSbzL8+|Ae1KUH5n5AENgAMf@B8 zV6gO_dLJ>YvJs)Gh-IairFwb=D?ho3v**0QTHPs7NEQ!7Q(_<1pTn6sQvv#y^bX* zFD2^!S0Jv40is@qs>Ic>x~T2z64w(oUqj+X*jUu@no{3_@|M^NTVoq+i|w#IcEFC< z2|HsK?26s6yQuT)CF=9rpYj2s&Tk;`ARH`e`(Zee@=-V%$KY5TC+hP(m3W${`DciF zpD&<%p{V(n5HA(A-EvX)do|^2aIL8Qw}{$qo2dPF67R;nqOR|dsL#=1JR)k|6QcG% zMSPC>^Y}Mjz>9bZFXKOW1+R*l_d4+nyh-_Oyi55#;s>Ix>jmX6@fE(tH~1Fc;d}gm zAMul@`}0-Qd3~q+2mZugqP7c`!Lwh%(Fa3dNDL)vzAzXLBTyfaII^gDqfs6mV_-~C z^TfuuqP9;!oQT+$IGL!|FBNebQLk@WOo!<)17^fbm>IKRR?LRkF$dUs(g7sNtX7>l4E78SLhKXGy5lEkI3G?u}#SPsi$1+0hxSP3g*6|9QYusYVjnpg{K zV;!uE^{_rRz=on;*CwK_vl+I)R@g?=>)DpLJ$A&-*j3ba-H3Y-_Z0R1=u6xW`-?jM zK;l8fLy3psa2!GXXi?`oR@C>&Bb~s|^*wYz)crb4e46+iUJ!NvFH(O))NyZ7ep}S_ zJRp83YW}Ch&+s|Ez?b+6U*j8mi|_EgsN;MQ^>g?au}?i5_j)aMd)pK@a!%!~OjKNb*myh6l7N@=>mZrQ6aXI4hSOF_iUkR&FUKOi}x<9puYhxWz=UERMU?b`q6F0@?*b-Zd zx-V^r+Yz_N4%iVpVP{dt?MmDYyNi0i_QJlD_Y?Jc4<;UhLva`m#}T6D8BII}$Kp5~ zj}verPQuAJ1*hUPoQ^YaCe9Ld{JF&QL|yL!;)SBFXF0B=e4VJz?N;J#qUPC2ybE`W znr|=l2Pi*?hp0b7d=!s~n(rj_r$xOl&J$mt{<5go^&e56%NxWu@fP03J9roGi8{_h z;zy#+_lcd38q;7} zOo!<)17^fbm>IKRR?LRkF$d#d264 zD_}(oz)Dydt6){EhSf!VKI#zH#d=sD8(>3hgpIKYHpOP5K0hsqTZwufwIOax+@81t zcBH&BcE#@46MKt#pZCGO*bn>T01U)|I0y&h5FCoba5#>@k)p0^jHvIO36xL7NjMp& z;8dK3({TpQ6m@@Q6VJi9IFI@TqK?0q@+G(wm*H|;fh%zpuEsUE7T4i=+<+T#lc?iw zA>NAHME$<8pZI{N>p3LqJ{=SF{d9)P_O5q}qTKYkPc!C;v^_j7Rc z!4Mb{Lt$tPgJCfohQ|mPQPk%=nyBN)B94zqM17uoF)8J#M4f*c%F|*x$}?al%p&SI zIYr&y0;1+ENPS`Sqr4~<6ZQTmE$aNri+Xm&3M%WmeU{h>{&9Mcx#8%iE+hAL4hwZTgcEnED8M|Ot?1tU32lm8X*c83wFDAugm>g4J zN=${RF%720beJA9U`EV@nMIvBG1ERH3xB$mR` zSO&{tIV_JAup$OvC9I59uqsx=>R1D7VlAvK>b}$`Zh#H35jMsq*c6*#b8LYvu@$z) zHrN*1VSDU=9kCO3#xB?uyJ2_ifjzMo_QpQg7yDs<9Dsp15C`F49D+k}7!Jn~I1)$U zXdHuMaU71v2{;ia;bfeGQ*jzj#~C;iXW?v|gL82n&c_9~5EtQMT!Kq+nW*oh6~rrX z6|TlLxE9ypdfb2;aT9LFziZzFARfZQcm$8)F+7eZ z@FbqX(|88Y;yFBzf8zzbh?np({)1QWs;KL~PJ9Dz;w`)_YP-9lzQ3PP{uH0#b9{j> z@fE(tH~1Fc;d}gmAMq1@#xM94zu|ZMfj{vV{>DETEGxgK&<8_cNDPIcF${*qa2OsV zU_^|BkueHJ74`EZwy66Xm-2WR9}{3gOoWLs3HoAEOoquZ1*XJQm>ScFI*)Xs&MOP$ zSw(%{=OoUBxiJss#eA3_3t&MkgoUvP`e9KlhW=O_OJGSXg{83!mc?>d9xGr)48TfQ zS=9AbC$51tu@=_GI#?I$VSQ|X4Y3h6#wOSln_+Wofi1BWw#GKt7Tbw>9Xk+r6!rUG zH{$Nt1AB`4JGu{XU+jndaR3J5KpcdFaR?5@VK^K|;7A;Wqj3z5#c`spX9Dp=oP?8c z3QiTZ{dD3PI1^{#Y@CC0aURac1-K9w;bL5ZOL3W~e2!0#D*8JdJ1YES|&j_%~j_ zi+Bky<3D%>ui`bljyLco-oo2>2k+uNQLpC%;)nPMALA2ziqG&lz7X}_y*?0s#83Dc zzu;H=hTriA{={GS8~y7z#sU7z~TyFg!-Uh!_bYV-$>v(J(s3z?c{d zV`ChQi}5f%CcuQ42oqxx^u?r@43lFDOo^#5HKxI|m=4op2F!?=Ff(Sste6e6V-CzI z>gP>f;(VAN3t&MkgoQ=DFa3y%Vlni`;-a=INn8p`V;L-q<*+Cb`I2EVi zbew@RaTd@UCq94&@em%yBX|^#;c+~HC-D@X#xr;p&*6Fe8!zBRQRjD= z_#eE2SMeHN#~XMPZ{cmcgLm;B-p2>{5Fg=Ve1cE$89v7s_!3`hp79Pi#Rvt!MvCc z^J4)lh=s5)7C}EOip9_$i(?5aiKVbKmcg=E4$ET&tcU?v2`gh2tcumJI@Z9NSPN@o z9juG>us$}xhS&%jV-swO&9FJPz?RqwTVoq+i|w#IcEFC<2|HsK?26s6JNCey*b94O zAMA_$us;sKKpcpJa4-(Rp*ReO;|Lsyqi{5i!Lc|F$KwQ?h?8(KPQj@-4X5J_oQbn= zHqODhI1lIJ0#To{#l%Z+DK5k1xB^$=DqM|ga4oLG^|%2y;wIdTf8iF~irYke{&$Ev z-`$k&!M(T-_u~OPh==en9>Jq{43FapJc+09G@ik;cn;6w-*^Ep;w8L{|KJt8ir4Tu z-oTr93vc5cyo>knK0d&Q_y`~46MTx#@HxJ~m-q@_;~RX7@9;f-z>oL|KjRntir?@% z{=lF33xDGu43>k>Q}n?Q7!pHaXbgj4F&u`+2pAC~VPuSgQ85}u#~2tBV_|HJgK;q) z#>WJh5EEfyOoG0c6q8|cOo1se6{f~Cm=@Dvddz?sF%xFSESMFuVRp=cIWd>0&vzco zM|plMfCaG-7RDmzCu*Kz#Qwx3uoUH`iOUj~!}3@GD`Egv!pc|$t70{*j@v@%zk+-I zW~%S4sQQl{QMD{k|BPBm&%$a&aGkY}{wHnzS~kK$J!`1#s_A#T0R5sARsPR@;Rg$; z-KuK7;(7?BVSx7VwS00CEVxz#*928HK@m%!VN`7rQfrIonawJ=E3OFn zz1I3`k5qcFe0C|STBwJxdI+w4N9e&OWCPh!t7(Gb+Qjz2Uz2*SpqANPGD^>^o4X@? zG?itxjYwmcR?8aN4rvy*{6RLZmU*tZ<_oW(-7nF!ht0*VzUKmH4-55#dq~f0lD2iB zTmo%l+aA?BjS-qOnl`a}!^W^%rJ6PltB3u1xUUCW%yI4Ec>?TmTZLY&;CAq~OQUDW z^bqK+us!fROu9B7O;FXc*v()E?O}bRx+|!SQ)xwbJ=o>(^)6wRmf6+?U7J?eEmhMJ zXucwP)h+HR2^R_kG}Hff-TKN{M^t#J_z?V?Q3=@!u@ z_4JU+yPZDXvwdzF+GL-l(ivD5Tje0Fu(c)A+WUG4tBba$*1dx4A&F&Ag&wTJ^J4Ut z*?Y(yT{~D4J6PZ1+Ro1G;419QMzab_YG?l1!@60Sg+ZFwK=vG2t)+75Ep+)@tu?Vj zfOqyTft!m<;LdC`>uWCxTeRCNYv*}+Xl83-jculO<_^})=I0XFS%7y|Zsk^CeO))J zwIN*sD{~co-c*(J%tFgz-C}83Og*?Vo2eawOvBn)H*4(1a5HezaQUp(4%Wkx+L;|( zyCC!P(^xuL-Qe4sL2Lw7Ix$u8CbYtFZaGi|5L0E^b`c*UqfM z-Mg00LbqOb=8{^Ot8htO6MtQntFVDAy&KonR@KISdax#Tu=K8p>t?B3h0APb*3Hg> z9IS`c+BUhyHfNX5LOb|*XJxf6!GF!qGP^muGndNBEOaxlX}I)mR&F%wW^-`~tX+W4 z&+>V`RNC8HU#eE?z8TqvgZ1^4Nee!h^#$s_hZV6<6ZmT?e|^XL=op?4fBiz>nW>)n z+tso+u=ksSefL?c74|K|=BG)5+4qg$_D0wAHldjI4L}>)ci@;dq}ImNq;^MmDm1;V zD3tZpcJ?_P(w*4{i2mwu!w!8xCQE2B^|AjR%FtH=No`l zc(zW>EW?OR6)qZ;bYt z7pQ$byQZ~&yes#!k4h~It35nFDKv8tt+2ieG_(&$%iQ1f@Mf{iaUZTe-o86+H19^( zI&7wH2DWRqeEZ_+r#+Va?+)2FkKk@x?|o(8F>UbQI!W6}``Tz{w%L`n!dH{pxNkJH zZ`?NIbMKdl&0694ildExSSTl+Uq$wS+1FLO@7=f8ojOyyJ8k)%1h)5@#aFWg>Y0r@ z%59h~!ERtnWp}5oBbhcHq=&iM#IA>33eVlC`7-H{etKWokhau7-5k%CS*@_A+wRkJ z+T*+CvmLU>&wf|fBk2F}yqjnnVJ`*u+2dZ}F}0n0;n^xZ?+vX8(!;g0CNA_`L7T3( zn+<6%1qqy#d-5a(JHw_!eeRkX0tTvX8Ym2ea#_;^w@lGh3 z?w|c3z%j7}mt~4YKXl*HYP; zHMY=ggll4Rv8!eItcmroq}I+h)~0LgsHW5K(}U~b8e6Spu^txM72r>g}VzoAqjp1hC zDr}WDUF%Uvcg-4Gg`bAj*bXkVvjA^xEbp1Mv(S~<{#j;M<_2;zwZ3++nc9}vK(+*{ za0zUZR%SD`gY~e*gwhGwnUz^S%i>a5nJvNkS}JSo4pwFZ*>tV1&A`g6oi(uvTczc* z6yp81lG+OTZNrjnH~H!l_hnf+5Bt_S7EzhO>8t5+6Rk$ z3Rz}5*kUZbWr?QmQ_nXt9nJc>#x?^tQ|oK%b&IxItFXb{imbv@D~UZ{KJC?KyWs|M z>8-+zVP`f2OKN?sTXCJKm04dKHpSQE=)>8;GR&e~ZP+fysES}Sv_ zv|5{sJ6M@Du}!owEP>6%%B-yCycI9o&T6oUO5ic7s?q3teX05*y9U z)a|4tuv#~+jpk-*p*69MwS2D3y1CG5UD5#WC#Ox#D(qnMbL0B!MX@qJ@0lfanXQTS zwK8k$n%J3*VQaH?mfk8{=o0vO?*r>*q4jW?t->X66?SQ@hs)>A?8DGs)7x&?*}rPF z;=iV5>D}zDhYe&iu(`Ny|C*_8v9Bg|J?zZ#1!#r!wKA8*YOT!DyUaGE)%s~)yXMx! z9bC6c+QizqnOYCekos-YzK6N=HX%!2M87>)Dl4<}R$+bJG~8&hbTk{%%3OtYvjl$L zIoktaW!BARU|)$Xv;Fw7KW6%B57*BA-NiDyIeVt7?cAC5a97JJT3$aD&?z*4W0dgSE3WtFR`v&vxdT z*wpL_T3L`(Hl*FuF1?jm4_l1OXJ?+x_RiT;roW1+dA~c_)GUij>iYV7x7{XWp(S|oujhs$E^ z>|o2XG2EFowxqT;%kp16T!kgD9xj#bhIO+FJF_xNYNOdeu8EadXceB&eoNX9Mg75R zADZ?L6!ug4ux*q5-q%Bs|7~oexxeBTIY^-&2ccQ-zWZkSsfQHt?LU-`2+`AYz$smm_bTe?7T@Raqg|3||b3@vh z<+FXUCU$UR`2FuTS%qt72`qG}+%((_?963$SpqbDkbG{=med`rvFmGhm}_hm*4T|} zp`~|cuGT87n`aaC#Z!Y`yJo^JqGVdpt=f$nHo`2BS#+JpUvN0@aCGYL+ zX`kTcvuX|u^G1g5F zzTU=x-icd!%WRLSXTz+q_0@yFxADLJTB~L5v9iA?`FeW<=$Tv5zgFpOVzal!xU>Jd zQ0}VQnF}qc%UsRgS2nI5Tw@!22b6=J^cJeE<3+anF`LR(kb4 ze~hzxR}c1p*=ybI&eK+*6Y|VdL%Z+o;HwpGT>B3M>;+&4`xtwwJp#S$Jpa(5W%kf{ zHq359EwfbitEj8?uo+k?Yv+1cJDa3usoK|951w|~*KJ*p9db>quP1?xrU$Ea_kECB z*CR+$3teMB?}}_YU4@%fEbow3Ygf=6+$7yuRqbJo-J@Z(b|1KWmc=UUV4=UauPd`u zK_+f1w+cI0UpJbYfpxP~|Fu`v*H4EG(k@75&u#X556{MJ#%xm=~@r_ zt9=S>Vyko&c4nFX>tKDY!rcs(-gei{JO`VzruWx_m034SA7nIlQ9LWx9(F0Ln>F?% z@FulXo`Jkeu$#eExHD_#ukGCIt=5g^&fGm@O)PYct(}{_Wws|JNSU>>9kPRatSnW4 zcYzjK7VF`!6|T%GEOU^9RoKCLSgnQD*ABKDK?brh{B#W0*cKQhy(P6KuELU9g`HWg zYhq;yw#;@% zSUa~HR%=^lP22)4bYX#W|zvX z!?m+o*ThxWncXjTW_?`(JF^{fJzN$W+?oV<*Jh!sux@s+GV5!jS?JnXH#bQ)7dLK@ zGwWexuCYsC7tb{bGMek=`r4VFt|Q0`&(p+v=UA;BEWI6UMK-uKcGK{j>HX(wJzxEF zAkTj%qqX*h#eJOkTCE;}%+HN$XIAU~AMM=K+=Sd_+gyU&gl-_)15Xpp>{7W`!T zkS>)?$eLKK%j}w1K1*eDc41ZTVqBSZvwZGZuv(j+Jw2|m<#S10g`Z}&+uQAsommq% zHCJo%bF;U0cCaQ^VFwr5?5&AS*AlpVuCL8GNQL#Vd~QY7#17WiO~}gpynAKcg4DVm zc89sqTst?vf7R*@5~!K&S@qX5OBJAJHl&3`{`c>2c4cB|6Km%(yB)GJH!B-5NEoEA z)!HRu;a6_WXK3b*Z!@X7PO%vX` z5!S@M%m#YPJah4eA-&VERsJiLHu02s8(UwuK&y56EVNoXv%&2Ku_ktA({;1AvmiIR zpN?i(>|nLl*D73QOKJ(MorUgT6|S+Jxmwr54P>=;|5=&!a0e^1r0&5EQtQUB#`cg{ z4>uQUVxf%|WFUWCxm8#@tF?m-X%#{G26(TLOJ(g`Dys<6*QK{Jt91uAXU~~Timz(+ z_jV0E|4Ssj9anf~@Lx%bYpq>8n}(acHMY>Muhm*(yMgWI_xu^$dv{vnAk%gCuGQL( zyBpZgJ2k8D*U$#CgQfbfgR6CCb^+YMGFwt>VuQPbl?8Z5vyHX2*_oSjRc{mPYjd&t zFP2ugeX(wq)Ry2bl$}{SOW-Ojfo;3Z*+NV2+F3p;vvz*oxmblA+_)>`CJb-UF+tWxHD_)2Di}7z;&}TtFR`nn~f2mYYQ?LKkpV>W2?2ja_!u7 zT@yEFJF~`~9{McU>)H+euYaWRzPRmD*x=U9Chi8ZnOXw3N(-%t?YNtPr=4a_p^LH5 zT@(w0^tI9KesK?pmAQ8A%r0Y)(cHae-E0X#cFq1fk3jE)DtXVWhYLN+_deZL8=#Ht z%%)*YYzB5_2dfA&d#mvG4&?3w>uYm%2`s%^mK!ZdnN`@q`np=1f#3hm)UK*)VrMQv zfVZ(rWj(CP|5bKBA(v-oUcft@M9NaId#u-4xVe^%6vY@qvXOD~-f#;dT~46{xc=Cx*QiptQ!>`WFJf-ARKNC-@8y9phcfWibiPTKeTd7AUR z_2ca^Hq_~J&h!7zdCvKr`@8oo*+xl%%DKAeaXZ=#8EF6*lzrz=fVQ_8LY7S%_J*MQ zm{n*66@{iaS9?QBmbP=HkbkujpeE?y(z!=VA!PKcaKl4T%oR|P=J2B$3Q)S3GX#LV zStL~mGFENs&JAr-lnJ0!qdmek<~r0H+tx*+MdIW;FKpx`lleMLd@wJ|_R)Qas|aVx!`%JtEx>8mm9Q?zK*nVgTv;bA<#1og5o37N0Ihn7|`lW1GX_M z(94^DAN@)}UNEyIcp>M11#hcRY14DaI^1+-m3h^Na6Wh(fK>VTUoHrjQMa6<+CD?S z#lYhX^xYOOSQrYZ-h5Xp6f{7K>67^2Kd%5thEHe6<5%fjgiN!)>3sCd1tH77`Et=1 z6TE&&{wzFV6joM`T$6o0E~;5pqd4W3z3>a^*T3N#p8pL-lH(ZzOSy4%f%=RH@!Ns z$eW-X!?|-P$Ti2=XvGcGa33;w=ANt}4XCSEhe6&94@tdWT(;pnO^$x^8zg~};dP1c zWQhG6@e3KgKd7YnV%$^5#^faEnF#^VfDBOP@59tw^+RSzad;Pmhcmz|urR%|>fd}* zFJ`?LWL(fH0E!2*Fm)yR{ou`Tsc}eej9GKl1v1z946QGE37JyBBI?RIpH%ynAK__;pwlDpDwlr>8lDv)*y_ zFeqoevak8@1~~y>s{;ZNy`HA((xB2nH$y1h4GQIFtCkPY ziqX7v72zt#Mq1UFUNpVG8m1o6#uzSnT>tf0mVll@b_yOfHqu6+P`ILLzWAQ?@5|?K znXiF{3yaj^v62k?QC3tp=F8>Xu`R=^BVA*dr+(i8&#TL)i_@Rg2sajVR3 zio(|R8$tQTvSW-9o@k0+m+3e=$h4B#r<>7hHa@>U^aoaVXshnn7JCm#pNok68AmL+ zRsi9?VWd|EY%}DGy5U{%*V&tfl@s&D z8O3KT;)L;KxCkE3KaL#&KZzMUx_s%T^O~1S{fxyhrF|Iqt-Aie!x$Lo^fjo+IIusl20uC4grWhg?REvt27Nt)df{M zk#z|{mNaTaDJaQx16`aa88UpF1{9ZhJY?@e#(=cq;ru8lhcx>%BbQHO?^WgqlIVWW z;(M91NXiNs_ElW+%N$-C1H<$#2CG2anai-ZU|a{Ay(yVu1x{$fmViin1j+MLqh;4h7BIY z4LQfYmDP7Py>`zDXHmg(iH8(reo7Oi^F zJj4VHZqw?>URH*mDj)zt@nD&cfp|EeT}3s}TG>@0F?}*$zrd3Rep-(%lpL+X&o9fc z?a^&=Ge-@fxX2LG+GcJz+Z%aknMGa5$oTKqmd9DntQNtEB`(3cib!*~jNCxyVJ{+W zkQ_k`@i^P*!o@C0#^#{J=(3kInsIxCA73>ZGGpop6!7*z9&e;qetH1)1_q7``&cA+ zpjD`EPGL}y7GjkY1sYTam!PN`;c&To(Hl9<@mVqrkq)pfRF>@6C=k!tZ|g`T60xc$S70 zl}1V_9y<#=&DnuILzRaAB(UG<^)bizASL&(&YezfJyRcJ`Ca~tE>mdJqvT|EXbtf@ z(=>QcxM^G*Ru9tLU0!<_Ja+V}=LCrihs~1>xlzc2r^hrRbEIj^>G2;sJd@1+8mx2FdaTcR7zx!{Hzn>UQP%?D) zaP*iF6FdTZC0r&a1IWLz{M(W1kYyM5L6B#mpN8Tw;bAXXZG5bpLK|;fr+L1RtE9NG zm(CyC)Hy{FEev=KfU{2#go0}Jc;^jA7lntW?^8U@811vWVUhfsc*xLWi}fpMeu)P0(4WYr#LYTaprqa|P-@IkBg2Qw&hX)xMugRQ;;b)FZ8sGLt(8B8w`^q@eYAFed zLT@6ypa2AE%2^LGzzB*DeChOgdQj$omZ23ThwNL5rJwYZLzCXYbGmVTA~L7U{Z<_N zBF@=IH9u;8KY(2TL>k^*LkmJ-q~9TA8bgZ9adXE&aaOMk;kAK`>|!|w?WZzqnKR@K za|I|% zRcIBh`N`D`X{9Xr?&jy0lGM0fKB&Xykd>T7CiPwqtM`(GyYyb9r-IN=S(;z544M6M zs$P(vt?J0sUyn%D!p3sztyS3HU8`a?|FE*uaN(i(@IH9sXFF5a`O<4J`D5+j9GK9b8G-gmHlm_8W}WYZ=nFy8KCy+@xf(;KcIbt zmrT!sD6P4T3`2lI+oPIz2#=u({4!>JAtEstF7`J*SPhEd*X#`5At;A%d7f;NYnH)> z0oW0rq*wj0(rhk0i^7S>icGj+{Wn}*RdSypQ{kQ6i$=+7$-gL|klS9+rqb|`aBtM0 zi>Iew2=-N)U%)iIuccQC&+*lCj83F?OH=V>FV1v12I|R>Mdm=uxpM_zbqH-)6|ZWP ziymZ+1VMq79uHkCrsb?x|CN+?4 zAacq`SiK#ne4z%49|rKtYq^XGaiSx;m2xL2znNx!7&<*3=gC8m>&at=0Akb}@57$; z2GECo0YIj?EqIM!KR>62=5gfqRA8>ZMT2Q0y$|v{%*UsHH8s|Qr)=ua8Ta^0(@`=7 z1;5&1{T{;993OOxsoeI?-gODT%KZy#yQ{s92Es^#0VE23wp>7WEK0Mn?coZo$F#Et zgdnqnudtsNZQ_y-{n&1PNt@j8Q*LniN$_5T{TBh!Ok~n) zpyr&Ixkn47c_j%AQM67{jo0+3!Mmq$@jN4kDhRE_Jd5C~x=0#F)9tw~c%r5LO%BDt zm#=2~!`SO+TAim*#O<>}t6vy6`v{NcvIk*svZ;qcj{7@0eq(<=4XViCv0Ux^`(o*Q z6&V)$P>6Y;O7r&fh4PC+cbSmh{iO@PJhOyEI?(?brsO)t&qAcZ5`K>zL1xxlQBAbY z4u)asZ9WU}+hO2G>nZNSkJkjxQ-?+JNlt7N6DD^f(%%v5A0?PqZlcDA(OF7OWzF1m zxX2P#DnWuL+|~l9f;_plZ)yO4k7^ceC6t`%AV$6!puA1N}Zf?ru+M~#oDsIZ}#SS@C&&4R3Dl%tf zUAWWG@9YGXIqJ@He0* zST+iU-+v4q14mkhpGosx`1LQY^rl0G$;qi}Oh6V2Tt*@B6@{i$@IK)Ch0KIQhIJFp z%F<-cLT2D(cDPtuPDXb!^hX!xX(B<9*=!q+FD{fMLyz!D>Y&W}NDrBYE+`BkBZCY| zwMJ$fu{N(5ezujPP;*eQ$eiX;gqM9afH$RTq43`%aOONxz%!>o0iXw3LD+*bknm$z z>A^FES0A)jhmFypC8I;gbTMbRPl9xa3mN7*guIzMMnX`TO;zh$?V!*cjw5%fUSy0euR6>ebww3FbM-T6 zwHFE*0JdH=;^mEqk2af>G?m7d@G=Q(BlXy#K%KZV`n_Pj;pz?NHKb5AcpMYV+1@#} z6aclukhn;H&tA)Q8NLY4m!gmaA;=LH*%{Ly|HJ5f2(9l0 zy8W1Q6BAYi7TWQ1*gsv0o8v^0aS1)cpy)ASEMIev(=#VLwBiFzGqLJI*3?(nL(zzv zyWu;FJqmco%oUFb^N$?&w^NeNhd}k32VB?TqoBY;rm4|}P*m!&0x;~{rU&H^_IjA=_2eNP z$BAppY8WA3gh4}Qj`l1kvf(x-P(|6$Qlp!a#pEU$0NEiT^)$x}Yn!5HYVgd?&>Q`eBrOprMn6ONJgl;Rwl;VHd0BSQ~o{Ki+Rckq5Ec)~+a zr70eb^pIImp=iqMAuIcfpcrcAk25ZZ%>_hICQsADV54Le!ews3qVogn)3f$#IesOp z_MIc+u=J})C@6T>a7;+yzKk@FrJ%^nU1yak($mD_yRg4!|4rjqaU{}k2`59=p(tlN zlc$||Zp11YNE%5_H)08U)oWGCC|-`I)O$1z=kCxIhNbP`vETVNkr1 zQEhGq<0}_44u*`ri0dRUJ9^WxTlsQau@rL-t1jkhN43Hf)H^o5h!5&9P2rhdH2B)e z5}aoX4B&Z6hGac0HAthbUWM!NLDi_kI0B#!+b_8QZAOhip#b1q7wb6-%%@919<8Fd z6rB@U%9oH`I1>hX_6!?nIaj|5s_>0|^#OG^P09Gh@UZMvXs0FOl`xHup%WZ<@{wm0` z?Wmohm>VUEuOTi~NZcfA0c2Fu4rN&Jpzr~d;xSNTeRPNdgHq^Obi%!lre%e~M(kBlD1qoJNvR6p0BUTx{0b~5J4~Dg;o-}Q>A3(N`AtbFyDl; zn}&AqR_@Ye?p}j3cexSduD;8Urn``RIZ#V?ZoD$|SA^$a6BNmCrqwzw^e)_G*V~S7 zX~yW~66|^W>~SQVoqasJI2G(-(J+k~rwlKH=UxDGd=RK7rCp?Pog=%`&4f0zp1Vuy zLu${Q9_OAd_R6dKV)qQ5qpkxLt;_U8fn!xJYrm(tze`#gmGJtev%SISu?K_QGLS`N z=(RCdfL`-JZ_|i=@j5g&c^V}L5Dg^1lJ@CD)yMNb9g&F#D9mEu3dJW^X;w?(Qr6qKE7hv*`B0{YpY$c(I^=|v)mu?mc=yiwPBw;&a1#tt&W|bB*>9CKSDI| zh%`4l^KFjh7Z(dezCmR8?KyjKF8kRQ!}|R|8KaSUgm042K~AysUcnhO(iEr{i&cw4 z4?AN~MAC|qqfq9gg;lHWlJ+owA0(ybb;YpvqR3pLs%xH<;sZ~|a%kScU^HoA;FKnJ zFmrZprKV?ek%-~ig|ixQBBPz^7R#k-SPo@`rT6{ec zTn2h=%B5sQJ}lu?XrDP`GC~ino(6+$FUjS_1X`WFKa^yUb=9gGH0#LFh`wG8RHcX% zK@6ZcpXvcXDcOcgp&RYtRlofT4?GPNO?9aqy1l5;ju%**^q}KS{1MSN`ZlIg}*h6Nt9_YB~)ld|s&4mLEW!T{Vhqu707xFG|VA{7{(N;DOQrD-Aq=a?z`_0!mRbv}c(e@6P+8QNue~9QI@x?H4x0 z^66S-_;JKWnmLhv=CL3VJS9e)=;?TFiV{$Gp8Y)B`i$PtqsNH`Vcz+j1X?5;}r=m0- zOuSsW57UQX<%`QKH}nGfyc-{vpqMA6P|UmCA^YNb&^dcZ3g8sHznSKWbE2~krRF{& zC|`*#ey437LW1mu*{{NRZuHe@Po%ujCz0_Qhb`ZmgD0D;o+hiFhD!=48Nk`a7M-K% zpC)O%u;CX}4iP!J1iDM(Yl6cx!?~Ua9@lxnaY7L*PXX*f(~JfIc>Qr722g5m700Ey zVaQkAUX$yrN%+lj=O#z1Et5rd+(_{HJc|6TL(Ju`ylUHsv=1tG2``tkCvp7du)Mdg? zdbP1u9s^Iv_!-mS$e6qo#7kS7zBf(+qN4SPM_ z*c9K5!y30TKuf=Jf!F*~9#nynjYUxs@`O98x!UauVJ#j2OmznZa0mk?;7r}>LLnX! zM*GYzF7e_HkJmuAOp;YL-Q}jWQsy16%(8tj*9HfDFoP5?gty-Z|&W_2&TxoS_i_mP3A4f5AAWWsz96k7GF zR$7Q&;2+mv8oU?QjM}suafp>yfj(FkVRhC7+A3NP>9ygA4l$6nexd*LTL zo2UPZ@My)mJ`IxN3bGHr#)(n)ZwL8akSD&&7@oWz6rV46!+^&p$0OJ7yj!MX;EOs> z6KTuEkFh8eM-=fIW4b5v#%CTD&X~s6({cr>XC`vqS3g za~ouRUVwt^xL7r_u_}roq9~(9<)3@UxP{%#^~iR1cnZ7;03PDhZ0>PzI4!A4vH!u-EPua(_UzC%oxJD@%M5t@7f?bg zo93}Eb4A%NE_#ys5=A^YPzfB7jz?o}=EjZyo-Hn*vxC{=<6?7;5ND_BmBsVjkrljS zSSceP2v6~%kUhm(olg(RrC)lCwr@RML&5=gXmkmb_5h;Ab%sSD=oDno*@~7sd4sz1 z^ZIebZwFa6G2v@L#sFs`6^a)DINKIrPaYSCmEBavQiul9cGmRb44`N|itxiy7ohBg zRz^(Rf>$5FBZv%7h8UO|#Y17(retM$3?4u=&})N1Q51!;BD_Nip=IEHsbNlDsT;4y zCBGsalM%|p*pZnKVlC*VFq;L?%V;Le`*Y`DKN9To3K@ z2%;Y-&Wfs#{j;$8#{{LJ^Iyx{e@J7qk+$rWtbBkU4{`CZk3vPM!wvzkoQn-LWyNdV zApkT0XNT0VGKZC(2C_Mt(n?cg&|?^=G(|ClXAWM48=gVq&e1Qu;d0Y?&Fcd+#g8K_ zx_f~RgShxIj(sa?9MgL@F*;>v)0{Vr1L)S~gluy?rQC3nteX$u1aT_Sx8m(-GxSYLB5ER+|AUfY&$TYAj)Vgm3?>m8x zE*bh(9)9x!cwr!SH^=jCSrdTJIz3pI*CD&k97oLae&#@__M_B$`}B?mX%1;fgYx@O zHak;>UL)DOSbh;{4Ip-7^0jvd=>0KhLJGAN#Q1SRxm?}dAzWcFH|Bj~Mo$ksc# zW-%p8oL()1U655DwPZL)t797F>jWi@_3?IkpX9alXv#Tc(6n3(56j9zr-FpRRiJ1! zYM3a@k6XnK@vv5LhDT(BVy@S&KMGTF`ESmDOO5J>0j;Ekli>RiIcBBjateDJDIYvl z3Ie^K#Ki9+-n|!#q~7yLb8c6CZ25IDe)Yya$j&dwKwCH9@r$`Sd$bBIhk14Pw5&wd zhLVPqd=^dT6}&}(^DO5;Pfpj^$2OkaWvKet5v9C`{_&{{<285|ScZON;25u|3_ixU zwxpgFiaqc8!jTJIp_tptC8^meoa|-;N;29>n%bxVKdLxb$BVGQ+;}^smvT z@pmrf`_pnfI`f(vuXi{ia_LN=?N4At7u8nb9(VF&6p|6&w2AOWbn)~qg7Y&zVem3g z@!%%uGs6g%DjZ=8G@SJj6E@eWE|X?ituVe|!b0wO_acB{8suY!8u4w<{!5`Y++^4~ zDMdAy(xr2HB_pHI4&^-)%%RX2ZW>k80Zoln!*=nh?L_f4$ERK=a;}rlP^MzWIf6V2 zWr$3m?iq4ontoFN@|YTc6sWIgstVNdYG1RUZ2SUmzeI8g6w>rCg*Q4cu)po) zpfMqFyRt&*XQ^!z3X1Fe*%C6`DH&N1)p`6J=<{&tVdoC^0oX*O)YG-%XO9X$3)@CT z(1h`}GhC2moqbTr)qE|2zJ(QI(y)?C^eAa4z5Amr7SoyQLhA>NJihKSY~c0g{GyO8 zW7y_1Lnw!k9n;K475$ts>B4mYkei91hPNqRI}QoJ{60fCtM{`Lr?Og{;zkfM4W>j& zuAgvcl-w^Xd7}!6jJ*-7G7zYHA(QvslD7x+6LWHf``Vo%=N=C=e2!O<(e)G z%y536+8&UhUk>t{M7Ca=*W4L}qNege)0-WxCYetIJEsHlQHmy(KFP$?0Z1lJxT6&% zFX$K7xjP((g@IodoXs#$#aDK|A5%R=_x5czszht^7OL>8Y2-U=^&Df7&Hw$d^4!S$IdVoMofWqxp*(G3(obf8aplYF;q2l= z3Y?av{IcOkMs4ds3E3gEO&`5+No0`w8Ig(6&LC4-Sed!!7_7|ZjR|O=-pOLjT&|c) z^S?tzT}y2;EC7+AhHJUYo2iM+TwBM_&Rp&ZrIeDUTJ)1HNlmV%hu&+7C$ryOoGp8f zkW#0m23kRW8j6Q;1QhxK+zs+ojN#%*>f5R)rrg9~;Wx!C0Q|;HD=p*!qxV6%4%ubM z?gwRT3t$J3o`3?-Me0d7aRcBm@n!EIi|>-FZeYdKVNdbMcpeR|lZi}KOWdK{U0krY z=y>RCy|H|m&vnmepN7s9!r+)WLrK^_oj1NGEhya7zqt1-s(JoJCQBx{DkHS~LbWTb z*e1Es`)sT{y9WtVuIt*GkJGt5%?Dwx{%tlEPTb5fwf5R^#?+@H5ol0=X`pr4}x;&!mS7xm3f&++${? zp&A)9#r{i+mWK#JK~ww+KuaWAP{?|i;-^>hK~Z2}SQE_cqXqy5kTvB3uK*NS#%2ilOj=y$#CVEaf}p6AKV8SNpX1ZWIkSdKqdKfIS2YN)OAOgz zg%(;`Zt`SfNAwgk{E`uNA*Z=Hvqst+cF4UMo&7G@oK-^B)5yHzwM@Nr3k)k7+-fBm zK{+II9Mu@O&zv50+tkmjgu(~R*OW`^=`s9z*1PSSX86%`?rH4jDL0OJKZ)foWj7jB zHH+9??wnpDa-5x1v1)74^uqMS)O8m4lSM`$+4MAXOc-g%!gTw$?a&6WOOF#ZV_W9P z<)%>$MH(oZ28uZ@ra@6~(a67hiD;Dwh*qU-uX0h;YcznjX^PTbh2wIuV#x%)0%%j$nL8{BObs{4 zhM;ImVW^>LdxoVj)L;cquYk_cSu)hhl9lN(iW_dAnBvEir7%}$X))liq7?5@1nrkJ zfHG|&m0wW`HAhfsM@EX#DePqg4Qw`c?CSuK(O`DJ6t@Qfcm)MigYzMP;gVi;fkK8J z6co2*2>_9xhGj*yUCRG#1Tn#vF~rSoV5d`>H4me+UlVd19Cg=q%;nl3x3_svVh3F| zX(7HWq9pwc;hAIQ#v4!ycyx=yK=H%MaBfZ(^5IqQ@{qYo+qkX(#$d0hcPrOQZd6MP z*-&rOl%hT7_Ic=!&U2F*k6+&Wn*^CNO~UwLn(IW%k@Lw-XI?0tkNa~5VU`!<-A8z7 z%HsoF=55z7@Q^M=_sds&?*MMD_M+ttw_w{F3~rBb&lPh^7fs(=oSSR!1@OH9aCww{ z)p^5n#XQ+0ciA!C2xr+Oci)L~P;f+-nxnWIK3|1!V*E)2`2^-gnC>I|u4gb@%mu~q z&GXU24Cmk#WY;#8A#StIL)#YvuRu$8I~z`^4iYaYQ&s0v{o|q zWyJ@6h#gZgIxYsyNvG{o-$%x>2^@Ro!X_y8; zkS93?z8_Yg9v*KyxSl0fkQvz2t8MVctY~$4^KV-~i&8h~0Z;3&;yz^E z#RuMc=_g6ln9p%m&A#d=I0aryPU#P8!R3B7NIMZ9FtrYmz3( zKxcL6dM&lN&W|)MvCbQ*nM<5}ojEA&V{}BZ@mL$~A9#qPQEBQ<~2P zMeTf$o?o!FmvO98@Vf!*qN&}_oP6o7J8$^}?*qcI&+zFj@x54cmJ5Z{p-G?mFFpQi zK&8rULx47i&~~lL17uJPHFN=eaT+5}7=&NQ*vyY*7(Zv#~LSF3HF9S#J zin;H$j8<`?@VpH2A&zyFq{~!`07l&)^Q56HrYTmciadC_iYg^-^mK8VG{=Al5qyK|0H`k#&Y^dH z4mBRKLe=q72)wm0WhrgK_f_-lGc5N@adto1`KG!N24DTyEj7?dTPq;G zCkPkzUO`D?52%OqG@}*ArZLt?Ai&0xnWOIP`@9j(o{Bt`zZswUa+Vr9n{`kOeW2yzi6&byC8;R)AoRQSYh z%3;X5^7`__E^7FSO?@yq9)%b<7KOpQ9~MB5biRB%M>;YR1H}#`4hp;LS-P ztmXs|6CB^Vx_!N!aL-3)XReSvO*6T6)0rPo5I6RYhX|rL)mD#ckgXXG6ABH$oa#d% zb7oV*Aa=kLsGryEqgohLkRDz5`B^M-;_-QuUC5i-f^7A?2+BWA^TRa%+zytW$3AC0 z0hLl-V&jP4k!!)bvlhvjfq|Z)+MIH&X=xD(C5V1FYu*Y#?+fX9FMR3&8DTZU7KQNh zL`pRawx!ewl%V&*;2IbC5>{N-Mm#h&2T5&@GH2OO1edd04(};x0YGj5Iy_cnkg*c| zYM=m=0+&MDt1fz#b{haxQ{=LeC5NcS1p7Y!K|wL@EXsCA&SazB6@}YrzYX@tTBVIoFNH!(Qgh zU2c^0SpuI z`UtW;Z#JN4W#^ndIWqe0IaZ9p#ZgTiKfC0J$L%<0R~xCe(rmtH7h`5|M%r7E;g@b7 z-*i5D_cD%{Kt)O0BFpF3eq$RA&Q>y}X=FCD9Bk%*8yQo4(|aB~;Ss3I3}wVHjaFX` zp1h(dJdJ=-ji9k3$c@7IG+gek)ic>1K~o+AeK%ybJGXZ~havoZg7f(TD@ z&kmd3F$sK$L57C~5FT2M!xrr)(laMA8gm+_5p&jzr7;N{8FJDC?^#`o`BJ5;Or&qU z^NnyPw@C)($FYj4L!j;HEX~%c-9^wJq_F}{VKsq|YHp&rSWZs*1R(kzwRS8I1IGnN zKZ|%DfJ@o4brf2wXCk;9J08a>VLWq0=Eeu0w>0B>tYY*V%lylm(X1IqcFP4+D4JIk z|Bwk`e@x?nd=^uNC}wM08pv45f0em$&O$y*hB#X`eVDwO+lAm!$d_a0i1;e4rQ00B zeoTcIbw!KoMB1WLGBluNpa68ZU(x`myJ;AWqQW_+0KJ;3w{gT_3Bn4B-sO!2AMMyd zp%7YrhS%QE3Nm*l(!DV7Ome-rR1KA@aicv}dbPY3&9)Qo-u4C){YHDzR?-kTUq1){ zXJ6evdwL2$@x4e-hCNJg&IjqK40AbTr0z~l5< z^-z=xrl93#PJiKN%OFPDlev|RKU$U_A{MoR;^1_}=aln%=UpisJCRpdf3-NzBf zG#6>$>1k+y0Y_+{pf#+O9g?d#hUpA%I57TmHFQ#=9 z{e+@S(c)5_t6FLG;Nimjvaff|L7|J`A^PbdgN#+V=%E00+2D{>00tLa66YvO^EEOl znj&NQp;fBT)-3F+Jt%&98ZxMMj3Bi8SG6x5R%Kr<<}Rb8Mk&CB26Y5MG%$y(`hm8= zz^$Ki*ygpZxerU-#i}xdyIk}tjn0pksa)rI!JS*VI5rOFIGb5tPx*4eknx_ z#Hu9&;BbrFqSSxow^68S=!q}RBR9!4Nh6yQo~eoH`F1sD(|I3Vs*vI2UjWBfHLVPI z)sGtHpdix}1puCgMQtbq8J?a7in#)sqUBen?V)JgHe9gxki>jUi?SJ3je9C)T>LC2 zG8X}}0^)28ylanQAOGnc(>qfwq3~7qF*QSPIYL23@eLVP;sy`x#fnjf&4@#w04%~l zLsMJ`G6aCkqUr}wPeMUaF6PRBlAuM_Ba(i4<+8yud=%~7hwX1V^H@raHn?cYe$-g; z0IdlwYt+B1u&3!EJt)-~**<_{8URo9Pu8$HPYGWDtS}f&g*(kIT4CUb?X!u`tp(fT zc|Q)B&qqRjjjHtzUQyaB;J9oX_OS!MIW9!2@8ui; z+81muLdL}vF8Um+R{$3qZWJ%zwjNfaOQfOI(3wISD*yl&J>l7C0HCQZos*M9VygFe z$@N?99TL<76@Emboomw2RuI53bB8pB8gk*`r`IcBD4b2xav2T63R3|30YI*Ba|J*K z6+y_FVd^;JB=f4K`wYt&7rrmQ5#*6J3?|z{W@%I*a*=%^k9{tpT$$P50LpakhLf0F zeB0+F<;?enbU7}aN3{&~&e#_vx`0-{dBLnGan8^CI#Ffpqy0WE@dJnSo4d$}Ji8T- zAY@gtCg{mTy|RBJWQR1!x*+P8GKCC)i(%(5Fhrrp?fb=^a|{Ur6<@vMGNBBr>4yD9 zkTv*KhPfi^wV}NRXAR*M1d4*X>?l8Ywen*DWnXFS;f%J@s=+?CRfge)wopqK)X8J= zB@B?U?ak#_A`c4+u+abt_LX6-c(xsH#k!L62z6SwQM30XV{Iq65Lvl(;&G`~hoPu6 z!a>`EqG5s_Xd4WW?IQz9xtObrLW^v zUw$dS&JomxYQ-Z+Q)3_#1kVskd!?W_Jk4z`ezbfF1#KxXAiPZX%OWB-t}6p%*pqu$ zWM!}NlQEB*Nxfr^8uO#vNj;xUXrARDa!RB3H2j8a;a#Qo<)C;J+@<%kG!ors>VKM{ yedhJ_%xN4OvG+t}2oLnx4X*!EtpCbK{lEUv|Np_io6g(6I{*Kd-wo^6Ui-ftn$qO} literal 0 HcmV?d00001 diff --git a/.vs/Instrument Control Example/FileContentIndex/read.lock b/.vs/Instrument Control Example/FileContentIndex/read.lock new file mode 100644 index 0000000..e69de29 diff --git a/App.config b/App.config new file mode 100644 index 0000000..4bfa005 --- /dev/null +++ b/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/Empower3.ico b/Empower3.ico new file mode 100644 index 0000000000000000000000000000000000000000..aefa6623e6b902eaec3dbc11a5b049e2f866382d GIT binary patch literal 13294 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 literal 0 HcmV?d00001 diff --git a/Instrument Control Example.sln b/Instrument Control Example.sln new file mode 100644 index 0000000..fbee7ef --- /dev/null +++ b/Instrument Control Example.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29609.76 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Instrument Control", "Instrument Control.csproj", "{BFBFA096-A2BE-460A-BEB4-037A20FBA03C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BFBFA096-A2BE-460A-BEB4-037A20FBA03C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BFBFA096-A2BE-460A-BEB4-037A20FBA03C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BFBFA096-A2BE-460A-BEB4-037A20FBA03C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BFBFA096-A2BE-460A-BEB4-037A20FBA03C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1748282C-4D93-4608-A089-5DC2662DF59B} + EndGlobalSection +EndGlobal diff --git a/Instrument Control.csproj b/Instrument Control.csproj new file mode 100644 index 0000000..9c8fce4 --- /dev/null +++ b/Instrument Control.csproj @@ -0,0 +1,102 @@ + + + + + Debug + AnyCPU + {BFBFA096-A2BE-460A-BEB4-037A20FBA03C} + WinExe + Properties + Waters.Empower.InstrumentControl.Example + InstrumentControlExample + v4.8 + 512 + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + Form + + + frmMain.cs + + + + + frmMain.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + {984EF3B1-C6E4-11D0-8713-0020AFEE2C2A} + 1 + 15 + 0 + tlbimp + False + True + + + + + \ No newline at end of file diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..a5a9299 --- /dev/null +++ b/Program.cs @@ -0,0 +1,19 @@ +using System; +using System.Windows.Forms; + +namespace Waters.Empower.InstrumentControl.Example +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new FrmMain()); + } + } +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a3b4937 --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Instrument Control Example")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Waters Corporation")] +[assembly: AssemblyProduct("Empower Tooolkit Example Code")] +[assembly: AssemblyCopyright("Copyright ©2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("1e453e70-f33b-4725-987a-268ff82ecfdc")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs new file mode 100644 index 0000000..f9e7154 --- /dev/null +++ b/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace Waters.Empower.InstrumentControl.Example.Properties { + using System; + + + /// + /// 一个强类型的资源类,用于查找本地化的字符串等。 + /// + // 此类是由 StronglyTypedResourceBuilder + // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen + // (以 /str 作为命令选项),或重新生成 VS 项目。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 返回此类使用的缓存的 ResourceManager 实例。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Waters.Empower.InstrumentControl.Example.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 重写当前线程的 CurrentUICulture 属性,对 + /// 使用此强类型资源类的所有资源查找执行重写。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Properties/Resources.resx b/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs new file mode 100644 index 0000000..7649010 --- /dev/null +++ b/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace Waters.Empower.InstrumentControl.Example.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.2.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Properties/Settings.settings b/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frmMain.cs b/frmMain.cs new file mode 100644 index 0000000..a7674bc --- /dev/null +++ b/frmMain.cs @@ -0,0 +1,475 @@ +using MillenniumToolkit; +using System; +using System.Windows.Forms; +using System.Threading; + +namespace Waters.Empower.InstrumentControl.Example +{ + public partial class FrmMain + { + private Project _project = new Project(); + + private Instrument _instrument; + + public FrmMain() + { + InitializeComponent(); + } + + public void FrmMain_Load(System.Object sender, System.EventArgs e) + { + // TODO values are hard coded .... + string username = "system"; + string pswd = "manager"; + string project = "Defaults"; + string db = "empower"; + + // Perform the login. + try + { + LogIntoToolkit(username, pswd, db, project); + MessageBox.Show("Login Complete", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); + + // Info can be posted to the Empower message center also + _project.MessageCenter($"{this.Text} Login Complete"); + + _instrument = new Instrument(); + LoadSystemsForDisplay(); + LoadNodesForDisplay(); + LoadSampleSetMethodsForDisplay(); + } + catch (System.Runtime.InteropServices.COMException ex) + { + MessageBox.Show($"Error: {_project.TkErrorDescription(ex.ErrorCode)}"); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + } + private void FrmMain_FormClosed(object sender, FormClosedEventArgs e) + { + if (_instrument != null) + { + // when the form closes disconnect from the instrument + _instrument.Disconnect(); + } + } + + /// + /// Log into the Empower Toolkit + /// + /// Empower username + /// Empower password + /// Empower database + /// Empower project + private void LogIntoToolkit(string username, string pswd, string database, string project) + { + _project = new Project(); + _project.Login(database, project, username, pswd); + } + + /// + /// Loads the Systems ComboBox + /// + private void LoadSystemsForDisplay() + { + cbSystem.Items.Clear(); + + object obj = _instrument.Systems; + if (obj is System.DBNull) + { + MessageBox.Show("There are no systems available", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + else + { + string[] systems = (string[])obj; + cbSystem.Items.AddRange(systems); + } + } + + /// + /// Load the Nodes ComboBox + /// + private void LoadNodesForDisplay() + { + cbNode.Items.Clear(); + + // Obtain the available nodes/acq servers + object obj = _instrument.AcqServers; + if (obj is System.DBNull) + { + MessageBox.Show("There are no nodes available", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + else + { + string[] nodes = (string[])obj; + cbNode.Items.AddRange(nodes); + } + } + + /// + /// Loads the sample set methods ComboBox + /// + private void LoadSampleSetMethodsForDisplay() + { + cbSampleSetMethod.Items.Clear(); + + SampleSetMethod ssm = new SampleSetMethod(); + + object obj = ssm.SampleSetMethodNames; + if (obj is System.DBNull) + { + MessageBox.Show("There are no sample set methods available", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + else + { + string[] nodes = (string[])obj; + cbSampleSetMethod.Items.AddRange(nodes); + } + } + + /// + /// Connect to the selected node and system + /// + /// + /// + public void BtnConnect_Click(object sender, EventArgs e) + { + try + { + string nodeName = (string)cbNode.SelectedItem; + string systemName = (string)cbSystem.SelectedItem; + + _instrument.Connect(nodeName, systemName); + + // while the connectionstatus says the connection is not 'Done' ... + while (_instrument.ConnectionStatus.Done == false) + { + // Sleep for 1 second + Thread.Sleep(1000); + } + + // Declare and obtain a copy of the connectstatus object. + ConnectionStatus connectionStatus = _instrument.ConnectionStatus; + + // If the connection status text is either + // "Successfully connected to instrument server" + // OR an empty string + // Then call connection succeeded, otherwise show the text to the user. + if (connectionStatus.Text.Equals("Successfully connected to instrument server") || connectionStatus.Text.Length == 0) + { + ConnectionSucceeded(); + } + else + { + MessageBox.Show($"Instrument connection failed with error : {connectionStatus.Text}", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + catch (System.Runtime.InteropServices.COMException ex) + { + MessageBox.Show($"Error: {_project.TkErrorDescription(ex.ErrorCode)}", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ConnectionSucceeded() + { + RefreshInstrumentStatusInformation(); + } + + private void RefreshInstrumentStatusInformation() + { + lbStatusInformation.Items.Clear(); + + // Note casting should not need to be done, but there is an error in the IDL that means the return type is incorrect + InstrumentStatus instrumentStatus = (InstrumentStatus) _instrument.Status; + + // Add each piece of instrument status to the list box, replace the empty string with the correct field value + // for all of the fields below + string instrumentState = string.Format("State : {0}", instrumentStatus.SystemStateDescription); + lbStatusInformation.Items.Add(instrumentState); + + string systemState = string.Format("SystemState : {0}", instrumentStatus.SystemState); + lbStatusInformation.Items.Add(systemState); + + string sampleSetLineNumber = string.Format("SampleSetLineNumber : {0}", instrumentStatus.SampleSetLineNumber); + lbStatusInformation.Items.Add(sampleSetLineNumber); + + string vial = string.Format("Vial : {0}", instrumentStatus.Vial); + lbStatusInformation.Items.Add(vial); + + string injection = string.Format("Injection : {0}", instrumentStatus.Injection); + lbStatusInformation.Items.Add(injection); + + string runTime = string.Format("Run Time : {0}", instrumentStatus.RunTime); + lbStatusInformation.Items.Add(runTime); + + string totalInjectionTime = string.Format("totalInjectionTime : {0}", instrumentStatus.TotalInjectionTime); + lbStatusInformation.Items.Add(totalInjectionTime); + + string sampleSetMethodName = string.Format("SampleSetMethodName : {0}", instrumentStatus.SampleSetMethodName); + lbStatusInformation.Items.Add(sampleSetMethodName); + + string sampleSetMethodID = string.Format("sampleSetMethodID : {0}", instrumentStatus.SampleSetMethodID); + lbStatusInformation.Items.Add(sampleSetMethodID); + + string InstrumentMethodName = string.Format("InstrumentMethodName : {0}", instrumentStatus.InstrumentMethodName); + lbStatusInformation.Items.Add(InstrumentMethodName); + + string sampleSetName = string.Format("Sample Set Name : {0}", instrumentStatus.SampleSetMethodName); + lbStatusInformation.Items.Add(sampleSetName); + + string methodSetID = string.Format("Method Set ID : {0}", instrumentStatus.MethodSetID); + lbStatusInformation.Items.Add(methodSetID); + + string methodSetName = string.Format("Method Set ID : {0}", instrumentStatus.MethodSetName); + + lbStatusInformation.Items.Add(methodSetName); + } + + /// + /// Starts a run + /// + public void BtnStartRun_Click(object sender, EventArgs e) + { + try + { + string sampleSetMethodName = (string)cbSampleSetMethod.SelectedItem; + string newName = txtNewSSMName.Text; + + // Start the run with the selected instrument method and output sample set method name + _instrument.Run(sampleSetMethodName, newName); + + RefreshInstrumentStatusInformation(); + } + catch (System.Runtime.InteropServices.COMException ex) + { + MessageBox.Show($"Error: {_project.TkErrorDescription(ex.ErrorCode)}", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + public void BtnRefreshInfo_Click(object sender, EventArgs e) + { + try + { + RefreshInstrumentStatusInformation(); + } + catch (System.Runtime.InteropServices.COMException ex) + { + MessageBox.Show($"Error: {_project.TkErrorDescription(ex.ErrorCode)}", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + /// + /// Pause the instrument run at the end of the current injection + /// + public void BtnPauseRun_Click(object sender, EventArgs e) + { + try + { + _instrument.Pause(float.MaxValue); + } + catch (System.Runtime.InteropServices.COMException ex) + { + MessageBox.Show($"Error: {_project.TkErrorDescription(ex.ErrorCode)}", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + /// + /// Modify the next line to be run on the sampleset + /// + public void BtnModifyNextLine_Click(object sender, EventArgs e) + { + try + { + // Obtain the instrument status + InstrumentStatus instrumentStatus = (InstrumentStatus)_instrument.Status; + + // If the instrument status contains 'paused' ... + if (instrumentStatus.SystemStateDescription.Contains("Paused")) + { + // Obtain the sample set method name + string sampleSetMethodName = instrumentStatus.SampleSetMethodName; + + // Obtain the current vial + int vialNumber = instrumentStatus.Vial; + + // Instantiate a sample set method object, set the name, and call 'fetch' + SampleSetMethod ssm = new SampleSetMethod + { + Name = sampleSetMethodName + }; + ssm.Fetch(); + + // Obtain the sample set line at the current 'vial number' + SampleSetLine ssl = ssm.SampleSetLines.Item(vialNumber); + + // Update the 'Runtime' property on this line to 1 minute + ssl.Set("Runtime", "1"); + + // Store the changes to the database + ssm.Store(); + + // Continue the run with the newly changed sample set method + _instrument.Replace(ssm.Name); + } + else + { + // If the instrument status is not paused - show an error message + MessageBox.Show("Wait for the instrument to be paused first", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + catch (System.Runtime.InteropServices.COMException ex) + { + MessageBox.Show($"Error: {_project.TkErrorDescription(ex.ErrorCode)}", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + /// + /// Add a line to the end of the sample set method, and restarts a paused run with the changes made + /// + public void BtnAddALine_Click(object sender, EventArgs e) + { + try + { + // Declare and obtain the instrument status object + InstrumentStatus instrumentStatus = (InstrumentStatus)_instrument.Status; + + // If the instrument status contains 'paused'.. + if (instrumentStatus.SystemStateDescription.Contains("Paused")) + { + // Obtain the sample set method name + string sampleSetMethodName = instrumentStatus.SampleSetMethodName; + + // Instantiate a sample set method object, set the name and call 'fetch' + SampleSetMethod ssm = new SampleSetMethod + { + Name = sampleSetMethodName + }; + ssm.Fetch(); + + // Obtain the lst sample set line (SampleSetLines.Count - 1) + SampleSetLine ssl = ssm.SampleSetLines.Item(ssm.SampleSetLines.Count - 1); + + // Call the returnLineWithNextVialPosition with the ssl and the ssl plate layout object + ssl = ReturnLineWithNextVialPosition(ssl, ssm.PlateLayouts); + + // Add the newly created sample set to the end of the current sample set lines class + ssm.SampleSetLines.Add(ssl, ssm.SampleSetLines.Count - 1, MillenniumToolkit.mtkConstants.mtkAfter); + + // Store the changes to the sample set + ssm.Store(); + + // Restart the run using the new sample set method + _instrument.Replace(sampleSetMethodName); + } + else + { + // If the instrument status is not paused - show an error message + MessageBox.Show("Wait for the instrument to be paused first", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + catch (System.Runtime.InteropServices.COMException ex) + { + MessageBox.Show($"Error: {_project.TkErrorDescription(ex.ErrorCode)}", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + /// + /// Creates a new line, with the vial position being the one AFTER the vial position + /// of the line that is passed in. + /// + /// The model sample set line + /// the plate layout to use for the positions + /// + private SampleSetLine ReturnLineWithNextVialPosition(SampleSetLine ssl, PlateLayouts pl) + { + // Get the position of the vial for the passed in line (call get on the vial field) + string lastKnownPos = (string) (ssl.Get("vial", true)); + + // Create a plate position object from the plate layouts + PlatePosition platePos = pl.CreatePlatePosition(); + + // Move to the last possible vial of the current plate layout + platePos.SetToLastVial(); + + // Store the value of the last possible vial in the plate layout + string maxPossiblePos = platePos.Position; + + // Move the first position in the plate position + platePos.SetToFirstVial(); + + // If the plate layout is not lastKnownPos or maxPossiblePos + while (!platePos.Position.Equals(lastKnownPos) && !platePos.Position.Equals(maxPossiblePos)) + { + // increment the vial position by 1 + platePos.IncrementVial(1); + } + + // If we did not reach the last possible plate position, increment the vial position to get the next position + // -i.e Is the current position the same as the maxPossiblePos + if (!platePos.Position.Equals(maxPossiblePos)) + { + // increment the position of the plate pos + platePos.IncrementVial(1); + } + + // Update the vial position on the line to the new vial position + ssl.Set("Vial", platePos.Position); + + // Return the now modified line + return ssl; + } + + /// + /// Displays the current instrument configurations for this node + /// + /// TODO this is a bit Ghetto ... + /// + /// + /// + public void BtnShowInstConfig_Click(object sender, EventArgs e) + { + txtShowInstrumentConfig.Text = ""; + + // Loop over each inst config in the instConfigs object + foreach (InstConfig instConfig in _instrument.InstConfigs) + { + // Add a line divider + txtShowInstrumentConfig.Text = $"{txtShowInstrumentConfig.Text}\r\nNew Instrument\r\n"; + + // For field in the instConfig fields object + foreach (string fieldname in instConfig.Fields) + { + // create the string description which shows the fieldname and its value + string desc = $"{fieldname}:{instConfig.Get(fieldname, true)}\r\n"; + txtShowInstrumentConfig.Text += desc; + } + } + } + } +} \ No newline at end of file diff --git a/frmMain.designer.cs b/frmMain.designer.cs new file mode 100644 index 0000000..2088bd2 --- /dev/null +++ b/frmMain.designer.cs @@ -0,0 +1,290 @@ + +namespace Waters.Empower.InstrumentControl.Example +{ + public partial class FrmMain : System.Windows.Forms.Form + { + //Form overrides dispose to clean up the component list. + [System.Diagnostics.DebuggerNonUserCode()]protected override void Dispose(bool disposing) + { + try + { + if (disposing && components != null) + { + components.Dispose(); + } + } + finally + { + base.Dispose(disposing); + } + } + + //Required by the Windows Form Designer + private System.ComponentModel.Container components = null; + + //NOTE: The following procedure is required by the Windows Form Designer + //It can be modified using the Windows Form Designer. + //Do not modify it using the code editor. + [System.Diagnostics.DebuggerStepThrough()]private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain)); + this.txtShowInstrumentConfig = new System.Windows.Forms.TextBox(); + this.btnShowInstConfig = new System.Windows.Forms.Button(); + this.txtNewSSMName = new System.Windows.Forms.TextBox(); + this.btnModifyNextLine = new System.Windows.Forms.Button(); + this.btnPauseRun = new System.Windows.Forms.Button(); + this.btnRefreshInfo = new System.Windows.Forms.Button(); + this.lbStatusInformation = new System.Windows.Forms.ListBox(); + this.btnAddALine = new System.Windows.Forms.Button(); + this.lblSSMNameTitle = new System.Windows.Forms.Label(); + this.gbRunStatus = new System.Windows.Forms.GroupBox(); + this.btnStartRun = new System.Windows.Forms.Button(); + this.lblSampleSetMethod = new System.Windows.Forms.Label(); + this.cbSampleSetMethod = new System.Windows.Forms.ComboBox(); + this.lblNodeTitle = new System.Windows.Forms.Label(); + this.lblSystemTitle = new System.Windows.Forms.Label(); + this.cbSystem = new System.Windows.Forms.ComboBox(); + this.cbNode = new System.Windows.Forms.ComboBox(); + this.btnConnect = new System.Windows.Forms.Button(); + this.gbRunStatus.SuspendLayout(); + this.SuspendLayout(); + // + // txtShowInstrumentConfig + // + this.txtShowInstrumentConfig.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtShowInstrumentConfig.Location = new System.Drawing.Point(40, 538); + this.txtShowInstrumentConfig.Multiline = true; + this.txtShowInstrumentConfig.Name = "txtShowInstrumentConfig"; + this.txtShowInstrumentConfig.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txtShowInstrumentConfig.Size = new System.Drawing.Size(391, 208); + this.txtShowInstrumentConfig.TabIndex = 33; + // + // btnShowInstConfig + // + this.btnShowInstConfig.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnShowInstConfig.Location = new System.Drawing.Point(462, 543); + this.btnShowInstConfig.Name = "btnShowInstConfig"; + this.btnShowInstConfig.Size = new System.Drawing.Size(127, 31); + this.btnShowInstConfig.TabIndex = 32; + this.btnShowInstConfig.Text = "Show Instrument Configuration"; + this.btnShowInstConfig.UseVisualStyleBackColor = true; + this.btnShowInstConfig.Click += new System.EventHandler(this.BtnShowInstConfig_Click); + // + // txtNewSSMName + // + this.txtNewSSMName.Location = new System.Drawing.Point(166, 172); + this.txtNewSSMName.Name = "txtNewSSMName"; + this.txtNewSSMName.Size = new System.Drawing.Size(235, 21); + this.txtNewSSMName.TabIndex = 28; + // + // btnModifyNextLine + // + this.btnModifyNextLine.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnModifyNextLine.Location = new System.Drawing.Point(462, 343); + this.btnModifyNextLine.Name = "btnModifyNextLine"; + this.btnModifyNextLine.Size = new System.Drawing.Size(127, 31); + this.btnModifyNextLine.TabIndex = 27; + this.btnModifyNextLine.Text = "Modify Next line"; + this.btnModifyNextLine.UseVisualStyleBackColor = true; + this.btnModifyNextLine.Click += new System.EventHandler(this.BtnModifyNextLine_Click); + // + // btnPauseRun + // + this.btnPauseRun.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnPauseRun.Location = new System.Drawing.Point(462, 306); + this.btnPauseRun.Name = "btnPauseRun"; + this.btnPauseRun.Size = new System.Drawing.Size(127, 31); + this.btnPauseRun.TabIndex = 26; + this.btnPauseRun.Text = "Pause Run"; + this.btnPauseRun.UseVisualStyleBackColor = true; + this.btnPauseRun.Click += new System.EventHandler(this.BtnPauseRun_Click); + // + // btnRefreshInfo + // + this.btnRefreshInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnRefreshInfo.Location = new System.Drawing.Point(462, 270); + this.btnRefreshInfo.Name = "btnRefreshInfo"; + this.btnRefreshInfo.Size = new System.Drawing.Size(127, 31); + this.btnRefreshInfo.TabIndex = 30; + this.btnRefreshInfo.Text = "Refresh Status"; + this.btnRefreshInfo.UseVisualStyleBackColor = true; + this.btnRefreshInfo.Click += new System.EventHandler(this.BtnRefreshInfo_Click); + // + // lbStatusInformation + // + this.lbStatusInformation.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.lbStatusInformation.FormattingEnabled = true; + this.lbStatusInformation.ItemHeight = 12; + this.lbStatusInformation.Location = new System.Drawing.Point(13, 21); + this.lbStatusInformation.Name = "lbStatusInformation"; + this.lbStatusInformation.Size = new System.Drawing.Size(391, 232); + this.lbStatusInformation.TabIndex = 0; + // + // btnAddALine + // + this.btnAddALine.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnAddALine.Location = new System.Drawing.Point(462, 380); + this.btnAddALine.Name = "btnAddALine"; + this.btnAddALine.Size = new System.Drawing.Size(127, 31); + this.btnAddALine.TabIndex = 31; + this.btnAddALine.Text = "Add A Line"; + this.btnAddALine.UseVisualStyleBackColor = true; + this.btnAddALine.Click += new System.EventHandler(this.BtnAddALine_Click); + // + // lblSSMNameTitle + // + this.lblSSMNameTitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblSSMNameTitle.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lblSSMNameTitle.Location = new System.Drawing.Point(24, 170); + this.lblSSMNameTitle.Name = "lblSSMNameTitle"; + this.lblSSMNameTitle.Size = new System.Drawing.Size(136, 21); + this.lblSSMNameTitle.TabIndex = 29; + this.lblSSMNameTitle.Text = "New SSM Name"; + this.lblSSMNameTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // gbRunStatus + // + this.gbRunStatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbRunStatus.Controls.Add(this.lbStatusInformation); + this.gbRunStatus.Location = new System.Drawing.Point(27, 252); + this.gbRunStatus.Name = "gbRunStatus"; + this.gbRunStatus.Size = new System.Drawing.Size(415, 270); + this.gbRunStatus.TabIndex = 25; + this.gbRunStatus.TabStop = false; + this.gbRunStatus.Text = "Run Status"; + // + // btnStartRun + // + this.btnStartRun.Location = new System.Drawing.Point(24, 206); + this.btnStartRun.Name = "btnStartRun"; + this.btnStartRun.Size = new System.Drawing.Size(378, 31); + this.btnStartRun.TabIndex = 24; + this.btnStartRun.Text = "Start Run"; + this.btnStartRun.UseVisualStyleBackColor = true; + this.btnStartRun.Click += new System.EventHandler(this.BtnStartRun_Click); + // + // lblSampleSetMethod + // + this.lblSampleSetMethod.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblSampleSetMethod.Location = new System.Drawing.Point(24, 121); + this.lblSampleSetMethod.Name = "lblSampleSetMethod"; + this.lblSampleSetMethod.Size = new System.Drawing.Size(378, 21); + this.lblSampleSetMethod.TabIndex = 23; + this.lblSampleSetMethod.Text = "Sample Set Method"; + this.lblSampleSetMethod.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // cbSampleSetMethod + // + this.cbSampleSetMethod.FormattingEnabled = true; + this.cbSampleSetMethod.Location = new System.Drawing.Point(24, 144); + this.cbSampleSetMethod.Name = "cbSampleSetMethod"; + this.cbSampleSetMethod.Size = new System.Drawing.Size(375, 20); + this.cbSampleSetMethod.TabIndex = 22; + // + // lblNodeTitle + // + this.lblNodeTitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblNodeTitle.Location = new System.Drawing.Point(24, 13); + this.lblNodeTitle.Name = "lblNodeTitle"; + this.lblNodeTitle.Size = new System.Drawing.Size(180, 18); + this.lblNodeTitle.TabIndex = 21; + this.lblNodeTitle.Text = "Node"; + this.lblNodeTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // lblSystemTitle + // + this.lblSystemTitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblSystemTitle.Location = new System.Drawing.Point(222, 13); + this.lblSystemTitle.Name = "lblSystemTitle"; + this.lblSystemTitle.Size = new System.Drawing.Size(173, 18); + this.lblSystemTitle.TabIndex = 20; + this.lblSystemTitle.Text = "System"; + this.lblSystemTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // cbSystem + // + this.cbSystem.FormattingEnabled = true; + this.cbSystem.Location = new System.Drawing.Point(222, 33); + this.cbSystem.Name = "cbSystem"; + this.cbSystem.Size = new System.Drawing.Size(180, 20); + this.cbSystem.TabIndex = 19; + // + // cbNode + // + this.cbNode.FormattingEnabled = true; + this.cbNode.Location = new System.Drawing.Point(24, 33); + this.cbNode.Name = "cbNode"; + this.cbNode.Size = new System.Drawing.Size(180, 20); + this.cbNode.TabIndex = 18; + // + // btnConnect + // + this.btnConnect.Location = new System.Drawing.Point(24, 66); + this.btnConnect.Name = "btnConnect"; + this.btnConnect.Size = new System.Drawing.Size(378, 31); + this.btnConnect.TabIndex = 17; + this.btnConnect.Text = "Connect"; + this.btnConnect.UseVisualStyleBackColor = true; + this.btnConnect.Click += new System.EventHandler(this.BtnConnect_Click); + // + // FrmMain + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(629, 758); + this.Controls.Add(this.txtShowInstrumentConfig); + this.Controls.Add(this.btnShowInstConfig); + this.Controls.Add(this.txtNewSSMName); + this.Controls.Add(this.btnModifyNextLine); + this.Controls.Add(this.btnPauseRun); + this.Controls.Add(this.btnRefreshInfo); + this.Controls.Add(this.btnAddALine); + this.Controls.Add(this.lblSSMNameTitle); + this.Controls.Add(this.gbRunStatus); + this.Controls.Add(this.btnStartRun); + this.Controls.Add(this.lblSampleSetMethod); + this.Controls.Add(this.cbSampleSetMethod); + this.Controls.Add(this.lblNodeTitle); + this.Controls.Add(this.lblSystemTitle); + this.Controls.Add(this.cbSystem); + this.Controls.Add(this.cbNode); + this.Controls.Add(this.btnConnect); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimumSize = new System.Drawing.Size(600, 797); + this.Name = "FrmMain"; + this.Padding = new System.Windows.Forms.Padding(10, 9, 10, 9); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Empower Instrument Control Example"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FrmMain_FormClosed); + this.Load += new System.EventHandler(this.FrmMain_Load); + this.gbRunStatus.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + private System.Windows.Forms.TextBox txtShowInstrumentConfig; + private System.Windows.Forms.Button btnShowInstConfig; + private System.Windows.Forms.TextBox txtNewSSMName; + private System.Windows.Forms.Button btnModifyNextLine; + private System.Windows.Forms.Button btnPauseRun; + private System.Windows.Forms.Button btnRefreshInfo; + private System.Windows.Forms.ListBox lbStatusInformation; + private System.Windows.Forms.Button btnAddALine; + private System.Windows.Forms.Label lblSSMNameTitle; + private System.Windows.Forms.GroupBox gbRunStatus; + private System.Windows.Forms.Button btnStartRun; + private System.Windows.Forms.Label lblSampleSetMethod; + private System.Windows.Forms.ComboBox cbSampleSetMethod; + private System.Windows.Forms.Label lblNodeTitle; + private System.Windows.Forms.Label lblSystemTitle; + private System.Windows.Forms.ComboBox cbSystem; + private System.Windows.Forms.ComboBox cbNode; + private System.Windows.Forms.Button btnConnect; + + } + +} diff --git a/frmMain.resx b/frmMain.resx new file mode 100644 index 0000000..5f24ce1 --- /dev/null +++ b/frmMain.resx @@ -0,0 +1,347 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAMAEBAAAAAACABoBQAANgAAACAgAAAAAAgAqAgAAJ4FAAAwMAAAAAAgAKglAABGDgAAKAAAABAA + AAAgAAAAAQAIAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAACswAAA5UQAAS10PAFBsAABhfgAAa3wPAFBC + KwBnaTIAdGVNAH9sTQBqZVoAa2VaAHdvUgB8dmoAgX1TAI17YQBkgwAAZYQAAGeFAABrhgEAbIcDAGiJ + AABriAAAbIkBAG6KAQBsjgAAZ4ELAHKOAwBvlAAAc5AAAHGVAABxlwAAcpcAAHWWAAB0lwAAdJkAAHWb + AAB3mQIAeJsAAHuaAgB4nwAAe5oFAH2XDwB3jyMAfIRnAISfDgCGmxEAjJ8dAICgBgCFoAoAiKQTAImi + FwCJoxgAjaMfAIGMKgCOmiUAjpYtAJCcIACNjzoAmp8xAJKgIACYpjAAmaY6AJ6sPQCMhEQAg45TAKGS + XACpml0AqqBMAKa0RQCsoFUArLNUALCyWQCXgmAAnYRhAJ+LaQCPiHcAkZtxAKCHZACjj2EAootkAKWL + ZAC9nWUAvZ1nAL6dZwC+nmYAvp9mALWaawCymG0Av51oAL+daQC9nmgAup5vAKGQfAC1m3UAvJ9zAL2f + cwCaoGsAsqdkALijZQC/pGUAuqNpALS5YgC1u2MAtrhkAL+jcgC+o3UApbZyAKq1egC9vHEAvr10AMOk + bgDEpG4AxaRuAMWkbwDBo3AAwqNwAMKkcADDpHMAx6RxAMancwDHp3MAwqd3AMSodgDFqHcAyahxAMmp + cQDApXgAx6R5AMileQDGq3sAyat5AMisfADJrX0Awr97AMO/ewDGu3wAusNgAMTAfACalowAnpmVALqp + gwCmppwAv6+VALKtnwCysZAAt72SAKmnogC/vrgAxKqCAMuvgwDLsIIAzLOGAM+2iQDPvpEA07qQAMe9 + qgDLyYoA0MWOANbMnADYypoAwcakAMXIrwDdwaIA0MmpAMzAsADHyrEAyc20AMrOtwDGwroAy8a9AMzQ + ugDR1L8A4dKtAOXTtQDq1rwA6tu5ANTYxADX3McA2NbIANrU0wDb2dMA3t3TAN7c1ADs18AA7NfBAOzX + wgDs28EA7djDAOzbwgDv3sIA797DAO7ZxADs3cQA793IAPDcwwDw38QA8t/HAPHeywDz4MkA9eTIAPfi + zwDl59sA5+jcAOLg4ADk4+MA6+rqAOzr7ADv7vAA9PTyAPj2+gD+/f8A////AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBxa0zIEiaKS+YloJ7dXBTu8jDRR8q + jTYEQl5qfHh+Vr2+wGYZGg4MAgcPUFxzcVS9vrptF6G3tbbLqklXc3FUvb64hhSmzJSps5JPYHNxVL2+ + uIcUos0NCEs6OGV2clm9vrluE6fOCwYJTkNjgXJZvb68aBKoz5OLkF1RRjs8Ob2+wEcQq9DR1NSRBSEk + KCS9v68/EazSjExhKxUiJjEuvcSuNRKx0woAAQMYN0RkUr3HnycWstSOLE1BQF+Ad1q9yWceG8rU1NTU + tEpcdXFUwrA0HD6ka2ycpY9YaXRwVMaJIzKgPR1ilX96hYN5fVWdMCWKni2Io5uZl4R7dW9bAAB+AgAA + ggIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgA + AAAgAAAAQAAAAAEACAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAxMxUART0wADlGBABGWAAAUV0QAFNo + AABcdAAAV2MUAGB5AABifAAAZX8AAGt5FQBGQC8AVEs6AF1UPwBgWjQAZWwjAGVaRQBvYk0AdWhNAHdp + UgCEc1UAindXAIV2WgCJd1kAinlbAJB9WgCMfGAAZYAAAGaAAABogwAAaYUAAGyIAABtigAAbosAAG+M + AABxjgAAcY8AAHKPAABxigcAcpAAAHSSAAB1lAAAdpQAAHeWAAB4lwAAeZgAAHmZAAB6mQAAepoAAHua + AAB7mwAAe5MMAH+cCwB2iBkAfoYoAIKdDACHmRcAiKMYAIyZJwCRnCgAhYQ4AI+aNACUmzUAoZ07AI2j + IQCUpysAmKg2AJqlOQCdqzsAg4JBAJuZSQCUgF4AoJZOAJejXgCkrEYAprJJAK+hUwC0oF0Aq7JVAJaD + ZACbhWEAnIllAJKCaQCSj20AnpFoAKOMZACjjmkApZBkAKOQbACpkWkArJNpAK+WawCqk20ArZVtAL2c + ZgC9nWYAvJxnALydZwCwl2sAsZhrALWeagCymG0AtZptALacbgC9nWkAvZ5pAL6eaAC+n2gAv59qALme + bwCum30AtJ1yALqecAC6pGUAv6BqAL+gawC5uWoAq6B0ALugcgC8oHAAvqFxAL2icgC+onIAuaF1AL2i + dQC8pHoAvrp0AMCgbADAoWwAwKFtAMGibwDBo28AwKJwAMCjcADBo3EAwKRwAMKkcQDCpXEAwKRzAMCk + dADCpHQAwqZ0AMKldwDEp3UAxKh2AMWqegDFqX0AyKx9AMDCdgCOjIcAlpOMAJ2blwCjnZIAvqmEAK22 + hgCro5YAtqeQALW5mQC2u5wAt72eALi8nACtqqQAtbCkALmzpQC6vqEAtLOuALq2qwC/u6kAxq2DAMqu + gADDrowAzLGEAM20igDKvIwA0LiNAMu3lADSupMA1L6ZAMK+tAC9w6cAycOFAM/HkADRxZIA1sCZANnC + nQDVy5oAw8atANrGpADbzaQA3s2qAN7QqwDMz7cA4M2tAOLRsQDj0bIA5dO1AObVuADn1roA6Ne7AObb + uwDp2L0A6dm+AMjIxQDW1c0A1tbQANnZ0gDb2tQA3NvVANzc1QDq2sAA6trBAOvbwgDs3cQA7d/HAOHa + zgDg3tcA4uHZAObl2gDj4t0A5OPeAOPl3gDk5N0A6ObcAOvp3gDk4+EA5OTgAOfm4QDl5eIA5uXiAObm + 4wDn5uQA5ujhAOro4QDs6+AA7eziAOjo5QDq6uUA6ejmAOrp5gDr6+cA6+roAO3s6QDv7uwA8O/sAPHx + 7QD08+8A9PTuAPX18QD39vUA+Pj3APr6+QD8/PsA/Pz8AP7+/QD+/v4A1tTTyca/MzMzM0K8uXUzMzNL + ra2sqpSSkZCKhIJ0amHV0srHxcRFMzIxMH+ysTQrKzupqZOTkpKRjomEgG1rX9XSysfFxH8yMS0rO7Cr + PyEgIHB8fHx9jIyOh4OAbWxg1dLKx8XEtjIuKyUgdm9VCAYGRldXWmZoeouHhIFzbGDV0srHxcTDMSwo + IAlGUxsQAwMHFRlIVlxueYaEgHNrYNXSysfFxMNCKiEJBQcSEQ4CAgIPExVIWGZ4hYOAc2tg1dLKx8XE + w0IpH6Hq6t/a2t/g6urqpBpWY3GFhIFta2DV0srHxcTDTCgenurZ0M/R2Nnf6uqkGlZkeIWDgXNrYNXS + ysfFxMNPJR2e3tDNzdDY3unr66hRWmd5hoOAc2tg1dLKx8XEw08lCp7Zzs2ml5yjp6GhSlhnbnuIhIFt + bF/V0srHxcTDTyUKntvQz5cNEhdQUjcfNmV7i4eEgG1sX9XSysfFxMNPJQqe3NjZlw4SGVJZXkk0OU6N + iYOBc2tf1dLKx8XEw08lCp/j29yXDREVG1JXXnBHPHKJg4FzbF/V0srHxcTDQyUKn+nc4pcBDhIUGEhW + Xmh6jYmEgG1rX9XSysfFxMNCJQqg7eTilgABDQ4SFRpWZneLik1AQD9A1dLKx8XEw0ElCqDw5eHk7PL1 + 9/fOFlJcRzwzMzMzMzPV0srHxcTDLiUKpfLs5ufv8vX4+M8ZPScpLzMzMzMzM9XSysfFxL0uJQql9PHu + 7/L09vj42AsdIyovMzMzMzMz1dLKx8XEtS4lCqX28/PLmKKns7ubCSAmLDAzMzMzMzPV0srHxcR1LiUK + pfj19ZgNERMQBgkdISgsMDMzMzg5OdXSysfFxEwuJQq0+fj4mA0RBAUGCBwgJisvOUBOc2tf1dLKx8XE + QS4lHLT6+fmYDAIDAwUFCB0iO06Hg4Bta2DV0srHxb8zLiYdtPv6+pgAAgICAwMFC0loeYeEgG1sYNXS + ysfFfzMvKB67/Pv75MvMzM3O0VRIWGd5h4OBc2xf1dLKx8VFMy8pIMD+/f39/f3+/v7+mUhYZ3mHhIBz + a1/V0srHvTMzMCsjzv////////////+cUVtoeYeEgG1rYNXSysdMMzMxLT7X9e3o3d3i5efu8Z1aZneL + h4OAbWxf1dLKvTMzMzI1rrJHHx0JNllZWVldXnB3i42Hg4BtbGDV0spFMzMzMk+8riooJD6amn5+fn5+ + j4+NjomDgG1rYNXSlTMzMzNCvr5FLy5Esa+traypqZOTkpGQiYOBbWtf1bo4MzMzOLrBtzMzRbm4sbGv + raysqpSSkZCKhIBtbF/IOjMzMzO2wsFFM0W5ubixsa+trayqlJKRkIqEgnRpYgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAADAA + AABgAAAAAQAgAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAO3fx//77NL/7NzE/+rawf/q2b//6di9/+fW + u//p1bz/zseP/4iiGf90lwD/epsA/3ubAP95mgD/fJwC/5CkI//Bu3f/3sip/97Hp//MvYb/sLJZ/4Oe + Dv93mQD/eJoA/3qbAP+SpCb/rqxT/8q0hP/RtY3/zbOH/8yxhP/MsIL/y6+B/8mtf//GrHz/xqp5/8Wp + dv/Fpnb/xKZ0/8Klcf/ApHD/wKNv/8Chbf/AoGz/v6Br/7+gav/Ip27/u5tm/+zexf///+X//+/T//3s + 0P/9687//OnM//voy///6dH/4tmf/6W5N/+Epwb/hKcA/4SnAP+EpwD/hKcB/4+tE/+9wF//59Oo/+3U + sv/o0Kb/xsJw/5OsGf99owD/gaUA/4OmAP+Sqxf/tLZP/9XAiP/hwpr/3MCR/9u+jf/avIv/2buK/9i7 + iP/Xuob/1riD/9W3gf/VtYD/1LR+/9Kye//Rsnn/0bB4/9Cudv/PrXT/z61z/8+tcv/duHn/vJtn/+zd + w///8NT/7t7D/+vbwP/r2r//6tm9/+nYu//t2cL/3M+k/7C4Wf+Joxb/e5sA/3qaAP97mwD/eJkA/3ia + AP+XpjH/vrZ2/9K+mf/cwan/w7V//5CfKv91lAP/dJQA/3WVAP95lgf/k58w/7urcv/Mr4v/xq2C/8Wr + f//Eqn3/xKp8/8WrfP/Gq3v/xqp5/8SpeP/EqHf/xah1/8Smc//DpXH/w6Nv/8Kibv/BoGz/waBr/8Kh + av/PrHD/vJtm/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+fWuf/p1r3/39Cr/8HAd/+VqCv/eZkA/3eY + AP95mQD/d5YA/3WVAP+AmRH/nqVI/8Gzhv/SuKP/vq2C/5idRf95kBL/booA/2yKAP9piQH/fpAa/6qe + Yf++o4H/uqJ6/7qheP+6onf/u6N2/72kd/+/pHf/wKR2/8Gldf/BpXT/wqZ0/8Gkcv/BonD/waJu/8Cg + bf+/n2v/v59q/8Cgaf/Nq2//vZ1m/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+fVuf/o1br/49Kx/87G + jf+erTv/eZkA/3aXAP95mAD/dpUA/3OTAP9wjwL/hZYk/6+ncf/DrJT/t6SC/6GZYf99iiX/ZH8A/2J/ + AP9gfgD/boIO/5OOSv+qlW//rZdy/66Xcf+wmHD/sppx/7adcv+5n3P/vKBz/76ic//ApXT/waV0/8Gj + cv/BonD/waNu/8Cgbf+/n2v/v59q/8Chaf/Nq2//vZ1m/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+fV + uf/n1bj/5tO3/9nMoP+lsEf/eJgA/3SVAP94lgD/dJIA/3CPAP9ohwD/dYoT/5mXV/+tnH3/q5d9/6CQ + b/98gTb/XXQE/1hyAP9YcQD/YHQI/3Z7Lf+PhFT/nYlo/6CLaf+jjGj/p5Bq/62VbP+ymW7/t51v/7ug + cv+/o3L/wKRz/8Gjcf/Bo3D/waNu/8Chbf+/oGv/v6Bq/8Chaf/Nq2//vZ1m/+vdxP//7tL/7NzB/+nZ + vv/p2L3/6Ne7/+bVuf/l1Lb/6dW8/+PRsv+stFX/eJgA/3OUAP92lAD/cpAA/2yKAP9igAD/aH4I/3+D + Of+Sh2H/l4Rv/5F/aP92c0H/WmcU/01iAP9LYAD/TmIA/1lmEP90cDn/inlb/5B8Xv+UgF3/m4Zh/6KM + Zf+rk2n/splt/7iecP+9oXH/v6Jx/8CjcP/Bo3D/waJv/8Chbf+/oGv/v6Bq/8Cgaf/Nqm//vZ1m/+vd + xP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bVuf/l1Lb/6tW9/+bTuP+2umb/gp0Q/3WVAf9zkQD/bYsA/2J/ + AP9UcQD/UGgA/1llDv9rZjj/dWVR/3BfTf9hVzv/TU4c/zdGAP8vQwD/MUQA/zVHAP9NURP/aFs6/3Nh + Rf99akv/inZU/5eCXv+jjGX/rJRp/7Oabf+6nm//vqFw/8CicP/BonD/waJv/8Cgbf+/oGv/v6Bq/8Cg + af/Nqm//vZ1m/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bVuf/l1Lb/6dW7/+XStf+9vXH/jKIf/3eV + AP9tjQD/bYkF/3KJF/9ziCb/coMs/3N9Of9/fVb/hnxr/4F2Z/98c2T/cm1V/2BmNv9YZCr/WWYq/1to + Kv9pbj3/fXdY/4h8Zf+Mfmb/jXxg/5F9XP+bhWD/p49m/6+Wav+3nG//vaFw/8CicP/BonD/waJv/8Cg + bf+/oGv/v6Bq/8Cgaf/Nqm//vZ1m/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bVuf/l1Lb/6dW7/+XS + tf+9vHL/jaEh/3WUAP9niAD/dI0U/5yoZP/BxqP/0NO3/9HRuv/Qz73/0M3B/83Kvv/Myb//y8i9/8jH + tv/Gx7L/x8mz/8nLtP/MzLj/09DA/9TRw//DvrH/pZuH/5KAYv+Uflr/pI1k/66Vaf+2m23/vJ9v/8Ci + cP/Bo3D/waNv/8Chbf+/oGv/v59q/8Cgaf/Nqm//vZ1m/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bV + uf/l1Lb/6dS6/+XStf/Cv3r/k6Ut/3aTBP9jgwD/dY0b/621hf/k4tr/+vf0//j08v/w7+j/7Ozk/+vr + 4v/s7OP/7u3l//Lv6v/08ez/9vPu//j18P/49u//+/nw//j47v/d3NL/squa/5ODZf+SfVf/pI1k/66V + af+2m23/vJ9v/8CicP/BonD/waNv/8Chbf+/oWv/v59q/8Cgaf/Nqm//vZ1m/+vdxP//7tL/7NzB/+nZ + vv/p2L3/6Ne7/+bVuf/l1Lb/6NS5/+XStf/Jwob/nKo+/3iUCf9hgQD/c4oZ/6ave//a2cz/7Ovi/+fl + 3v/e3db/3NvV/93c1f/f39f/4eHZ/+Pi2//l5N3/6Off/+vq4f/u7eT/8/Lo//Lx5//a2M7/s6ua/5eF + Z/+WgFn/po9l/7CXav+3nG7/vaBw/8CicP/BonD/waJv/8Chbf+/oWv/v6Bq/8Cgaf/Nqm//vZ1m/+vd + xP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bVuf/l1Lb/59S5/+XStf/LxIr/n6tD/3mUCv9ggAD/cogZ/6Wt + ev/W1cj/5uXe/+Hg2f/Z2NL/19bR/9jX0v/b2tP/3t7X/+Df2P/j4tv/5+be/+rp4P/u7OL/8PDn//Dv + 5v/a2M3/tq6b/52La/+chF3/q5Jn/7OZbP+5nnD/vqJx/8CjcP/Bo3D/waJv/8Cgbf+/oGv/v6Bq/8Cg + af/Nqm//vZ1m/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bVuf/l1Lb/59S5/+XStf/LxIr/oKtE/3mU + Cv9gfwD/cYcZ/6Ssev/T0sf/4+Lb/97d2P/Z2NL/1NPO/8vKxf/Cwbv/wb+5/8bEvf/Ny8T/09HI/9bU + yv/W1sj/2NrI/9jbyf/Fya3/rKmE/6OQbP+njWf/sJds/7acbv+7n3D/vqNx/8CkcP/BpHD/waNu/8Cg + bf+/oGv/v59q/8Cgaf/Nqm//vZxm/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bVuf/l1Lb/59S5/+XS + tf/LxIr/oKtD/3mUCv9gfwD/cYcZ/6Ssev/S0sf/4uHb/97d2P/c29X/0dDL/7W0r/+XlIz/i4d9/5aR + hv+knpD/raaX/7Orm/+0r5j/srGQ/6yyhP+ZqGH/jJlH/5eRTv+qlGT/t5xz/7ufc/+9oXL/v6Ny/8Ck + cf/BpHD/waNu/8Chbf+/oGv/v59q/8Cgaf/Nqm//vZtm/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bV + uf/l1Lb/59S5/+XStf/LxIr/oKtD/3mUCv9ffwD/cYcZ/6Stev/T08f/4+Lc/9/e2v/g39r/0NDL/6Wk + nv90b2X/YlhJ/29kUv+CdmD/j4Fn/5mJbv+hkHH/nJFj/4uPQ/92ihz/b4kN/32MG/+dlkn/uJ9w/76i + dv/AonT/waRz/8Gkcf/BpHD/waJu/8Chbf+/n2v/v59q/8Cgaf/Nqm//vZtm/+vdxP//7tL/7NzB/+nZ + vv/p2L3/6Ne7/+bVuf/l1Lb/59S5/+XStf/LxIr/oKtD/3mUCv9ffwD/cYcZ/6Sse//T08j/5OPe/+Lh + 3P/k493/09PN/6Ohmv9rZFn/VUk3/2RWQP95alD/iHdY/5SAX/+eiGX/nopf/5SKSv+GiS7/eIoU/3KM + BP+Ckxr/oJxG/7ahZv/BpHX/w6V1/8Kkcv/Bo3D/waJu/8Chbf+/oGv/v59q/8Cgaf/Nqm//vZtm/+vd + xP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bVuf/l1Lb/59S5/+XStf/MxIv/oatE/3mUCv9ffwD/cYcZ/6Ss + fP/U1Mr/5uXh/+Xk3//n5uD/19bR/6imn/9xal7/Wk89/2hcRv99blb/inpe/5eFZf+gjGn/p5Ft/6yU + b/+plWb/mpRK/4mSKf+AlBX/i5gk/6OeRv+4o2X/waVy/8Okc//Co3D/waJu/8Chbf+/oWv/v6Bq/8Cg + af/Nqm//vZtm/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bVuf/l1Lb/59S5/+XStf/LxIr/oKtE/3mU + Cv9ffwD/cYgZ/6WufP/W1sz/6Obi/+fm4f/p6OP/2djT/6imn/9vaV3/Vkw7/2NXQ/93aFL/hHVa/5B/ + Yf+ahmb/ooxq/6iQbv+slW//rJdq/6uZYf+gmUv/lpo1/5acMf+poUz/vaRq/8Kkcv/Co3H/waJv/8Ch + bf+/oGv/v6Bq/8Chaf/Nqm//vZtm/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bVuf/l1Lb/59S5/+XS + tf/GwYL/mKc3/3eSB/9gfwD/cYgZ/6WufP/X1sz/6efk/+jn4//q6uX/2dnU/6alnv9qZFn/TkU2/1pP + Pf9sX0r/eWtS/4R0WP+OfF7/loNh/5yIZP+jjWn/rJNw/7WYdv+1m27/rJ1a/6aeTf+woVj/vqRt/8Kk + cv/DpHL/w6Jx/8Khcf/CoG//wqBu/8Ohbf/QqnP/v5tp/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bV + uf/l1Lb/6NW6/+XStf+/vnf/j6Mn/3SRAv9hgAD/cYga/6Wuff/X183/6unl/+jn5P/r6+f/2NjT/6Cf + mf9bVk3/OjIk/0Q6Kv9VSjf/YVQ+/2xdRP93Zkr/gG1P/4h1Vf+Tf13/oIpl/6mRa/+ymG7/uJ1x/72h + df/Co3f/xaV4/8ald//EpHP/v6Js/72haP+6n2T/up9i/7ugYv/Iqmj/upth/+vdxP//7tL/7NzB/+nZ + vv/p2L3/6Ne7/+bVuf/l1Lb/6dW7/+XStf+9vHL/i6Eh/3ORAP9hgAD/cYga/6awf//Y2c//6+rn/+np + 5v/r6+j/2NjU/5+dmf9ZVEz/NS4j/z01Jv9LQzP/V0s5/2BUPv9rXEX/dGRK/35tUP+Jdlf/lYJe/6GL + Zf+sk2z/tppy/72gdv/Co3f/w6V3/8SldP+9o2j/saBW/6qfSv+lnUL/o50//6SeP/+yqUb/pZtB/+vd + xP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bVuf/l1Lb/6dW7/+XStf+8vG//iaAd/3KRAP9hgAD/cYga/6aw + gP/Y2tD/6+vo/+no5v/n5+T/3t3a/8LAvf+fnZf/jouE/5OPhv+cl47/op2R/6ehlP+tppn/sKqb/6yj + k/+YinH/jntZ/5uFYf+tknH/tZly/7KdZv+uoFn/qaFL/6GhPP+ZnzH/kp0l/42cHP+KnBf/iZwW/4qd + Fv+VqBn/j5sf/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bVuf/l1Lb/6dW8/+XStv+3umj/gpwS/3CQ + AP9igAD/coga/6ewgP/Z2tH/7Ovp/+ro5//k4+H/5OTh/+bl5P/q6ub/7e3p//Dv6//z8+7/9fbv//f3 + 8f/5+fT/9ffy/+Hh3P+vpJT/jHhZ/5R/V/+ij17/opRT/5mYP/+Rmyr/iJwV/3ycAv94mwD/epsA/3qb + AP96mwD/epsA/3ucAP+EqAD/epsA/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bVuf/l1Lb/6tW9/+XS + tv+wtlz/eZcE/26OAP9jgQD/cogb/6iwgP/b29L/7u3r/+zq6f/l5uP/5ubj/+rp5//v7+3/9PTw//X2 + 8v/4+PT/+vv2//39+f////z/+/z5/+fn4/+zqJn/i3hV/4d9QP+DiSz/fI0W/3qSDf97lwf/e5oB/3ib + AP93mwD/eZsA/3mbAP95mwD/eZsA/3qcAP+DqAD/eZsA/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+bV + uf/l1Lb/6dW9/+TStP+stFX/dZUA/22OAP9jgQD/cogb/6iwgP/c3NP/8O/s/+3s6v/n6OX/6Ojl/+vq + 6P/v7uz/8vHv//Pz8P/29fL/+Pjz//v69v/+/fj//Pr6/+nm5f+sqIn/d3cw/3B7Gv9uhgj/a4sA/2+R + AP90lgD/eJoA/3ubAP97mwD/e5sA/3ubAP97mwD/e5sA/3ycAP+FqAD/e5sA/+vdxP//7tL/7NzB/+nZ + vv/p2L3/6Ne7/+bVuf/m1Lf/59W6/97Pqf+osk//dpYA/22OAP9jgQD/cogb/6ixgf/d3dX/8fHu//Du + 7f/q6uj/6enn/+bl4//i4uD/4+Lg/+Xl4v/p6OX/7ezo//Hv7P/08vD/9PHx/+Hf2P+dpWz/Y3cI/2F7 + AP9riAD/cI4A/3STAP93lwD/epoA/3ubAP97mwD/e5sA/3ubAP97mwD/epsA/3ucAP+EqAD/epsA/+vd + xP//7tL/7NzB/+nZvv/p2L3/6Ne7/+fVuf/o1bn/5dO0/9PJlv+hrkL/dpYA/26OAP9jgQD/cogb/6mx + gv/e3tf/8/Lw//Lx8P/w7+3/6Ojm/9LS0P+6ubb/sa+q/7e1sP/Avrj/yMS+/83Jw//RzsT/z8+//7/D + ov+Km0j/YXsA/2OAAP9tigD/cpAA/3aVAP95mAD/epoA/3ubAP97mwD/e5sA/3qbAP96mwD/epsA/3uc + AP+EqAD/epsA/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+fVuf/p1rz/4dGu/8fDgv+ZqjT/dpYA/26O + AP9jgQD/cogb/6mxgv/e39j/9PTy//X08//19fP/5ubj/7q6t/+JhX7/c21i/353av+Qhnr/l458/5WT + b/+Pll7/i5hS/4WWQv9yiRv/ZoEA/2mGAP9wjQD/dJEA/3aVAP95mAD/epkA/3qbAP95mwD/d5sA/3ab + AP94mwD/fJsA/4CcBf+KqAj/f5sF/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+fWuf/p1r3/39Cq/76+ + c/+Spin/dpYA/2+PAP9jgQD/cogb/6myg//f4Nn/9/X0//f19f/5+ff/5eXk/66sqf9sZl3/UUY3/15R + P/9uYkj/bmk7/2ZsIf9cbwj/WXIA/113AP9jfQD/aIMA/2yIAP9wjgD/dJIA/3WVAP92mAD/d5kA/3qb + AP99mwT/gpwL/4WcEP+LnRf/kZ0h/5aeKP+iqC3/lJsm/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+fW + uf/q1r//3c6m/7e7Zv+NpCD/d5YA/3CPAP9jgQD/cogb/6qzhP/h4dv/+ff2//j39//7+/n/5+fm/66s + qv9rZVz/T0Q1/1pOOf9dWi7/VV4S/1JkAv9TaQD/Vm8A/1t0AP9hewD/Z4IA/2yIAP9vjQD/c5AA/3SU + AP92lwD/eZoA/4GcC/+OnSD/nZ42/6mfSf+xn1X/tZ9a/7efXP/EqmH/tptb/+vdxP//7tL/7NzB/+nZ + vv/p2L3/6Ne7/+fWuf/r18H/2s2h/6u0Uv+FnxH/d5YA/3CPAP9jgQD/cokb/6q0hf/h4tz/+vj5//r6 + +v/9/fz/6eno/7CurP9tZ2H/TEQz/0xJJv9LUxT/R1kB/0tgAP9SZwD/WG4A/1xzAP9feAD/ZH4A/2iD + AP9piQD/b44A/3uUC/+KmR//l50x/6KfQf+toVH/t6Ff/7+ga//DoHH/xKBx/8SgcP/Rqnb/wJtr/+vd + xP//7tL/7NzB/+nZvv/p2L3/6Ne7/+fWuv/t2MP/1cqa/5ysOP96mgP/d5YA/3GQAP9jgQD/cooc/6u1 + hv/i493/+vn6//v7+//+//7/6urp/62rqf9hXVP/NDMV/y00AP8xQAD/NkgA/z1QAP9DVwD/SF0A/0xj + AP9SawD/W3UA/2R9AP9uhgj/fI4W/5GWMf+onVD/uaFn/8Gjcv/Do3P/wqJw/8Ggbv/An2z/v59r/8Cg + av/NqnD/vZ1n/+vdxP//7tL/7NzB/+nZvv/p2L3/6Ne7/+fWuv/r18H/zsaO/5CmI/9zlgD/d5YA/3OQ + AP9kggD/dIsc/6y2h//k5d///Pv8//39/f//////7Ovs/7Cuq/9cXEr/KC4F/yUwAP8uOwD/NEMA/zlJ + AP8/UQD/RFcA/0ldAP9OZAD/V24A/2d6Df+Bhyz/m5JL/62aYP+5n23/wKJz/8Skdv/DpHT/wqJw/8Gh + bv+/n2v/v59q/8Cgaf/Nq2//vZ1m/+vdxP//7tL/7NzB/+nZvv/p2L3/6de8/+fWuv/i0rH/v791/4mj + F/9ylgD/d5cA/3ORAP9kggD/dYwc/624h//l5+D//fz9//7+/v/+/f3/8vHx/8vKyf+Vlon/dHhf/3R6 + X/98gmH/f4di/4OKY/+Gj2T/jJZo/4+ZaP9/ik7/cXoz/3x7N/+Vh1D/q5Jo/7eacv+9n3X/v6Jy/8Gk + cf/BpHD/waJu/8Chbf+/n2v/v59q/8Chaf/Nq2//vZxm/+vdxP//7tL/7NzB/+nZvv/p2L3/6ti//+jW + vP/Uy5n/q7VS/4WgD/91mAD/eJgA/3OSAP9lgwD/d44c/7G7iv/o6eP//v3+//7+/v/8/Pv/+Pj3/+7u + 7f/g4N7/2dnX/9ra1//d3dr/3t7b/+Df3P/g4d3/5ufk/+bn4/++va3/lIxu/5F/Xf+dhmH/qZFo/7KY + bf+5nnD/vqJx/8Gjcf/Bo3D/waJu/8Chbf+/oGv/v6Bq/8Chaf/Nqm//vZtm/+vdxP//7tL/7NzB/+nZ + vv/p2L3/69nB/+nWvP/HxIP/mKsz/3+eBv94mQD/eJgA/3STAP9mhQD/epEe/7a/kf/s7Oj///////// + ///8/Pz//Pz8//v7+//8/Pz//Pz9//38/f/9/P7//f3///79///+/f/////////////Tz8j/oJOA/5SB + Yv+dhV//qZJn/7KZbP+5nnD/vqJx/8Gjcf/Bo3D/waJu/8Chbf+/oGv/v6Bq/8Cgaf/Nqm//vZtm/+vd + xP//7tL/7NzB/+nZvv/p2L3/7NnC/+fVuP+3vGj/hKAS/3mbAf96mQD/eZgA/3WTAP9mhwD/fJUe/7/F + nP/y8PL///////////////////////////////////////////////////////////////////////// + ///Y1M7/pZiF/5aDY/+ehl7/q5No/7OZbP+6nnD/vqJx/8Gkcf/BpHD/waJu/8Chbf+/n2v/v59q/8Cg + af/Nqm//vZxm/+vdxP//7tL/7NzB/+nZvv/r2sD/6de8/9fNnf+jsUT/eJoA/3aZAP97mgD/epgA/3aU + AP9rigD/hZso/8nMqf/49fv//////////////////////////////////v7///3+///9/v7//f7///3+ + ///9/v/////////////Z1M7/q52J/52JZ/+jimL/r5Vq/7abbv+7n3D/v6Jx/8Gkcf/BpHD/waJu/8Ch + bf+/n2v/v59q/8Cgaf/Nqm//vZ1m/+vdxP//7tL/7NzB/+rZv//u28X/4NOt/7q+bP+OpiD/eJkA/3ia + AP97mwD/eJkA/3aWAP94kwj/maZF/9HPsf/07vL/9/X2//Ly8f/u7+z/7e7r/+vs6f/q6+f/6evn/+rq + 5//r6uj/7Ovq/+zs6//t7ez/8fHx//Hw8P/UzcP/saCI/6aQa/+qkWf/s5lt/7mecP+9onL/wKRz/8Gj + cv/Bo3D/waJu/8Cgbf+/n2v/v59q/8Cgaf/Nqm//vZtm/+vdxP//7tL/7NzC/+rZv//v28j/1s2c/5yt + Of97mwj/epoA/3qbAP97mwD/d5kA/3eYAP+PoCj/uLR0/9THq//Wzbf/wsSY/625ef+js3D/orFu/5+u + av+erWr/qLF7/7q1mf/Ct6f/wren/8K4pv/DuKb/xryq/8i8qf+9rpX/sZx6/6+Xbv+ymW3/uJ5x/7yh + cv/ApHP/waR0/8Gjcv/Bo3D/waJu/8Cgbf+/n2v/v59q/8Cgaf/Nq2//vZtm/+vdxP//7tL/7t3F/+zb + w//k1rb/v8B1/4miGP9zlwD/epsA/3ubAP96mQD/eJkA/4KdDv+rr1b/08Cc/9S/of+zrG7/iJUr/22H + BP9igQD/Yn8A/2R+AP9vghL/hoo5/5+RY/+pk3T/p5Jw/6eRbv+nkW3/qZJs/6qUbP+ulm7/sppw/7ae + cv+6oHP/vaJ0/7+jc//BpHT/wqR0/8Gjcv/Bo3D/waJu/8Cgbf+/n2v/v59q/8Cgaf/Nq2//vZ1m/+vd + xP//7tL/8N7I/+zbw//NyY7/nq89/3+cB/92mAD/e5sA/3ubAP93mAD/f5wI/5qqN//EvH7/3caq/9K/ + mv+hpkj/c48C/2mIAP9lhgD/aYYA/3mMFP+Wl0T/rp5t/7Wgev+1nnn/tJx1/7Occ/+zm3L/s5tx/7Sb + cP+3nnL/uqF1/72kd//ApXf/waR2/8Gldf/CpnX/wqZz/8Kkcv/Co3D/waJu/8Cgbf+/n2v/v59q/8Cg + af/Nqm//vZ1m/+vdxP//79b/793G/9/TrP+vuVr/g6AP/3qaAP96mgD/e5sA/3qaAP95mgD/j6Ui/7y7 + cP/dyaf/28ek/8G6ef+SpCr/cZQA/3CSAP92lAP/iZsi/6moWf/EsYX/zLOT/8mwjv/ErYb/xKyE/8Os + gv/Dq4D/wqp//8Kpff/CqHz/wqh7/8Ooev/EqHr/xKd4/8Ondv/Dp3b/w6dz/8Klcv/Co3D/waJu/8Ch + bf+/oGv/v59q/8Cgaf/Nqm//vZxm/+zdxf//8dr/5de1/7/Bdf+SqCj/eJkA/3iZAP97mwD/eZkA/3iZ + AP+HoRX/rrRW/9fInf/q0L3/0sOU/6WuSP+BnRD/dZgA/3mZBP+PoiT/sK5d/8y6jf/WvJv/0LmS/862 + jv/MtIv/y7OK/8uyiP/KsYX/ya+D/8eugf/HrX//x6x9/8eqfP/Gqnv/xql5/8Sod//EqHb/xKd0/8Kl + cv/Bo3D/waJu/8Chbf+/oGv/v59q/8Cgaf/Nqm//vZtm/+7dxf//79H/z8yO/5uuNv99nQb/epsA/3uc + AP97nQD/eZoA/3+dBP+lsUX/0seU/+TQsv/m0LX/xr9+/5CmIv91mQL/fZ0D/5GmJv+2tGH/1L+T/9vC + n//ZwJv/1b2V/9O8kv/SupD/0bmO/9C3i//Pton/zrOG/8yyhP/MsIL/zK+A/8qtf//JrXz/yax6/8eq + eP/GqXf/xql1/8Snc//DpXH/w6Nv/8Kibv/BoWz/waBr/8Khav/PrHD/vJtm/+vdw//08Kz/r8FH/4qr + C/+ApQD/hacA/4WoAP+BpgD/jKsP/7C+SP/b1JT/9+LD//jiw//i1Z7/t79V/4yrC/+Epwj/o7Ux/8fE + b//l0KH/79Ow/+vRqv/nzqP/58yh/+XLnv/kypz/4sea/+HFlv/gxJT/38KR/92/j//cvo3/3L2L/9m7 + if/Yu4b/17iD/9W3gf/VtYD/1LV+/9Kze//Rsnn/0bB4/9Cudv/PrXT/z6xz/8+tcv/duHn/vJxm/+bc + vv++yWb/haER/3iZAP96mgD/e5sA/3qbAP91lwD/h6EW/8TBff/i0LD/5tK3/+PQsv+7vG//l6kw/32b + A/+Kohn/qq9N/9TAlf/ew6X/2cGc/9bAmv/VvZb/1buV/9O7kf/RupD/0beO/8+1i//OtIj/zbOG/8ux + hP/LsIH/y6+B/8mtf//Gq3z/xap5/8Wpdv/Fpnb/xKZ0/8Klcf/ApHD/wKNv/8Chbf/AoWz/v59r/7+f + av/IqG7/u51m/wAAAAAAAH0CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAB9AgAAAAAAADw5AAAAAAAAzgsAAAAAAAByWQAA + AAAAAM0NAAAAAAAAclkAAAAAAADMlAAAAAAAAHFUAAAAAAAAt7UAAAAAAABxVAAAAAAAAA4MAAAAAAAA + cVQAAAAAAACNNgAAAAAAAH5WAAAAAAAAmikAAAAAAABwUwAAAAAAAGEAAAAAAAAABAAAAAAAAAB9AgAA + AAAAACAAAAAAAAAAdAAAAAAAAABhAAAAAAAAACgAAAAAAAAAcgAAAAAAAAAuAAAAAAAAACkAAAAAAAAA + YwAAAAAAAAAqAAAAAAAAAHcAAAAAAAAAZwAAAAAAAABsAA== + + + \ No newline at end of file diff --git a/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs b/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs new file mode 100644 index 0000000..15efebf --- /dev/null +++ b/obj/Debug/.NETFramework,Version=v4.8.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] diff --git a/obj/Debug/Instrument Control.csproj.FileListAbsolute.txt b/obj/Debug/Instrument Control.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..7f09b41 --- /dev/null +++ b/obj/Debug/Instrument Control.csproj.FileListAbsolute.txt @@ -0,0 +1,14 @@ +D:\Code\Instrument Control Example\obj\Debug\Instrument Control.csproj.AssemblyReference.cache +D:\Code\Instrument Control Example\obj\Debug\Instrument Control.csproj.SuggestedBindingRedirects.cache +D:\Code\Instrument Control Example\obj\Debug\Instrument Control.csproj.ResolveComReference.cache +D:\Code\Instrument Control Example\obj\Debug\Waters.Empower.InstrumentControl.Example.FrmMain.resources +D:\Code\Instrument Control Example\obj\Debug\Waters.Empower.InstrumentControl.Example.Properties.Resources.resources +D:\Code\Instrument Control Example\obj\Debug\Instrument Control.csproj.GenerateResource.cache +D:\Code\Instrument Control Example\obj\Debug\Instrument Control.csproj.CoreCompileInputs.cache +D:\gitcode\Empower\obj\Debug\Instrument Control.csproj.AssemblyReference.cache +D:\gitcode\Empower\obj\Debug\Instrument Control.csproj.SuggestedBindingRedirects.cache +D:\gitcode\Empower\obj\Debug\Instrument Control.csproj.ResolveComReference.cache +D:\gitcode\Empower\obj\Debug\Waters.Empower.InstrumentControl.Example.FrmMain.resources +D:\gitcode\Empower\obj\Debug\Waters.Empower.InstrumentControl.Example.Properties.Resources.resources +D:\gitcode\Empower\obj\Debug\Instrument Control.csproj.GenerateResource.cache +D:\gitcode\Empower\obj\Debug\Instrument Control.csproj.CoreCompileInputs.cache diff --git a/obj/Debug/Waters.Empower.InstrumentControl.Example.FrmMain.resources b/obj/Debug/Waters.Empower.InstrumentControl.Example.FrmMain.resources new file mode 100644 index 0000000000000000000000000000000000000000..8c49518ed43696ff25955f37bcc8783c36d02ee0 GIT binary patch literal 13860 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 literal 0 HcmV?d00001 diff --git a/obj/Debug/Waters.Empower.InstrumentControl.Example.Properties.Resources.resources b/obj/Debug/Waters.Empower.InstrumentControl.Example.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001