From d8a5d2de6ba1fdc911267d100ba5a9420767828e Mon Sep 17 00:00:00 2001 From: Nicola Carminati Date: Mon, 1 Apr 2019 12:57:44 +0200 Subject: [PATCH] Fix features --- Libs/CMS_CORE_Library.dll | Bin 9276416 -> 9276928 bytes Step.Model/Constants.cs | 1 + Step.NC/NcHandler.cs | 100 ++++++-------- Step.UI/PasswordForm.cs | 26 +++- Step.UI/ServerControlWindow.Designer.cs | 101 ++++++++++++-- Step.UI/ServerControlWindow.cs | 61 ++++++--- Step.UI/ServerControlWindow.resx | 3 + Step.Utils/CandiesController.cs | 171 ++++++++++++++++++++++-- 8 files changed, 358 insertions(+), 105 deletions(-) diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll index dff8f077f5167eef5a5b9ddf6ab204193784c0b0..2bce764e68385553cd7b8c08e0b2d323056d18cb 100644 GIT binary patch delta 93756 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 z℘|KjS0^3f5p*|IXoW; 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 Zq=Y+#-;h!gq~cJ9y|wLddbJ1g{{!<3bN2uM delta 93629 zcmcep@oG8ESxjI!Aov z&@O|&IkXfaB>{(aAN0zhrAZRJeYQhufS?X7+a!Cmmlry;%!{z2HAG%Kq-i&rX=&ee zMoy1j@s5IB-pU@ApE10ouLi#gwf>Jdv^nLscp)xD~T+_Kf7EtsWgFZXIB zG8V`plQgeiv9re&j<8+3clNmBOe3NnhFz>ZQt!|{&DFHiXQmK&0?08SnycJGeh1RS z)ktIqXnM}ov@>0&O;TWX635c(%IuGkR|UsHxBGy`>q;1nWR3RpN1Ar7NiqyV>z{CF z0|0SX6_K0Yc4(IZ>FtWXT^76WU5AzcB;1upqyhpB2NG~q5Sau+H5y1CS38jr5N8~a zb6lCJGR~C{XEKm;UA3u(M9+PtX*qz-b9IvFF(3~E>FbKPLu!s5b!by{P3z|xPvp>} z4y^z*QLX|DSq|iUSEWhTX$_!R1>^!(Gif%4JGAvc2Dm!!(6IhBTCay4+GBvCT~T++ z%4VM9(6$4)&{a(2qLZ3d2jpT`J(2zGn)W`B7+1s?S!&Ran)WU<@e)@fkvo7K1kFHK zRvK#7X(NIT?J$r*u3{iizeKHoE_YR$qC#^Nak^aL>NLq7t$m$CTMA^bt6>}l%GaJ> z;n0pksll$`-IA<^ZXmhJm3A+ZJ=&jCD#3N!B>CE-55fF_|CZoNxF7y7AkY3M3P+fM8|3cIL2V}S_CDYUxTEzu2u_Ij3Q)IDL=zZ@TO&j4V zn<~lXW=-o457{sH62h22j~`83Xzp_H0>fNb&D%{y3{-lBo4?ZS2htN z9Y!$$P>L)10V(=B7pewwo2!nsT}D*|$lD;1^_YLeX!Z5@z%U5!NEoULh(1G&%D4!uUr6R{3$2apM_M5q->MZj=q zF9XVO)kE76Rl~Nu8^~l=$2>_s`T$l21e@y8=S%W4RB;`UY*!SKV;!2A{28tUljLhJ z9?-O25MhREXdae=48g7)4kX7lp2(XAVE*?9G|$yeXeYGsQXmUl?GMY!-uc*}H9>=x zxH1+#JI|^i(D{Gn)NWN zaJjB^wGtUt?9lpxW}Pc(iPSX1AVeF0*1K{F5#?*euv-m*-fwh;EtMk2oeu40&}?=! z5_$3tNgi{R7D-JwX`XPUFO!7lNX-^k)N)C>jg{mn*9nv4YvDx>?WTE7}9S*8%y$6-5Li{{-Y~R|1hXh@(Rs5W8&!3B365U1WoWGs|=5QxXnPZJvY zjzb#;$glg?%6=dj2jpx$X`LikY!Q(DdewSKF!ZxPF4BV=CBX*m2Qo-c-XsY&=r)C`7VgMg&! zwM6b32Ioy6WAxZ3rKTC;j0G}I-$3N3aNAQqz;jJ$ltsv^jhQ>A4R?107mAkg0kj6?+}7?s!F;rjLI{R+a}F$a)}IdKnR4 zqC?vUWV#-^O=_}{qkLLwEH zIkc~V%+xm!d5g#_y^6>|AQ(DFZz6IxTvc9zQnU5iDjB)qh(r4f$U}M)5(Do~(OF+Rv|oYD)x&nmVt;?8X=gyA=IPsBl*D~lk~}?Umn7!_`3p)d(Cca>nf?xe z@DD&%==HlH4s_$1e6S%9r&zCgTapKXoCo9)J?9-H`Pzi*z!br-mgo&8*<)zMsSa%< zh*s&xCDP7=^WZiht97kj26_#uzZ1wBJxFBDMu&!jRI0}k*#cxLkac=8ks***oUj}8 z@kB1_BDqA2)zHQqD7HZ_Arv>yq2&YFsBa@O18mwOKsM=hMCL$)HUrtLHxrrNUygm5 z-cIBmB9H0LcV#y!Gvo?-T#qEO63;)c!0*TPctV3Zr5@KHNgo({Y~oA$cp?+uSEQ84(lHKg1C)A6&v{>#N`Z?q zPU>pCm`EdD|1i+YddG)Sg^WtDv;OohyyZC9&B;On}A-|iwHHt=I|kqTD_9Um{AVx z5RfKpp|ZF1R3e`ohNBfst+(`~LsIh_ki$^wZM_qcj@@`^fkW#AYxb_5 zenJx8R!uu*fM}22a9W~#82ff04SLi+lEh4dr3j=^Pa|>*5a)bN+pE_);IIavPr)U} z3uK?3(p{3TpOJSF4(cUDPIi&~L>Q1!BVhkMs5gblVmE#uC($82<_sjOv=^h`%nG5K z^k$RfYu?Xg&py=)ddO0@!J5Y8AJ#Vz=?|lP9+diAFYhTeeW9-x0r^5dex?~&-4!sj zFZD{76dmdb2W=32si*4y5^1e^tPhDaraj?S2x>2;RH)5i+QHoH(HVk zI3uCMbh$^ug$^~!VS3zocQ|1E0a6x|xl3VdMWQTbz+Fk?SckkW1l{!}30cgby9OK( z?gU^cO+R_II}f&BB+d-3A2e-=ir*dA>V(tQ09jd4ao(h%%G| z+^s~=KB9Y!cIUte7vm_4d6CYlqGuFKg5fEi4FLSru zBZ)GUaqgUZB~ga*3U{+fLhf;}J2+lyOp6HyCf@D4PZH%PuXZO)Kmz9Z* zSp$0T>fbV-zZ9OmvIqTJ(6?xY7yjiD+3mh3(u zk%smW{o5#a<%2SiGGeLj(?pb68|xmKEj7xT-Q(6~NTOWd1a}G%<@z$+D8Q(;r4rzP1Q15Gk--{OXQ{^9mMIX0g*CL+pW_VAn_qAX@FPguUJ zUb)9JJyDA!k?s-pKbI$gkaB&xCzXiuZ*ET(5#@wDo&qAubb38yM3l$#d8&yh_sBer zM9B0R8uzrRVz95HrSf}D6H)H9x5vL&wpzK@a8C>oWjX_%BqGW^20iISlrucblS4%L zN#kr!F(G9r&+$|cQ4aS!Pc0GU@ghAdywLE( z5mKfz#xs(La)tvv8B1g!CO1j%tv{ zNM0sI%D-La@hz7``M1kGl|+<(i}Nf5>wuw^dyMlm5>f8)3eSd>Qls4CU{4znDXYNF0vYAW z0|M(mUt>*he;d%Po@NsL29>P?lHy5yQWit<1d!W2)kKuT9qnl+avCmS+dy->$M=*h zHS7|HdH4JdPjrPO&%GyaY>n}hA-NN(FDI1dX(!RgP+1iO8taLC0gHtmqTc1%U?T;6 zL1OVncX>{%-}zaOvBrP@Lxv~18pBB&g{CRPlWUTYX`1XA`3h=6rfIULo`^C{lRd4w zq(*tBDV~TLNt9=r>d7$(DbqB~vyF%{Ocip$J0PWnWovEqFPx>nWovEx;G?I z4(TCJClTeM=6GV?q_e#;O}ULgL7X|5-Oh%!y{J^tNNqfAqtr<{oL zOb>f%h$zprz|#)IJliYNWO$@Jh>lAjj~beJgtqAC>OQSQ}q!NINK{5^@OK#uM{a8RqoOENumrWL^n^rR<#zbvKv&{Li~BFeN>cxn!q8bed|=NV7bC$gBbKifQ+pGujrsC%TAio-XDL#K=xt9s z5oL(p@g)8tHOddwd%`*-QGVzHPbv}RWA=M0h$ye~v8RK`J6mD>(iLdqib z^5zmz7Rl=^BcfbOZ*LtD-pXLqoMxB;KnXi%Fn7<`a25q#riHPz;Y2Lhlqz1`J1MJUT z-V+vthUji@y4KCyE>MJq=w5H5g`gk0&ztR#8sc#FGBqWsWAuNEeW@&)@y z5FxK)Xmh>Agw*4-dEN>l%IoBLYl$eYljm(BqP$L?_XH8;bryKT&XmDsXL?}D)Dv@QGRHZS9i-sD?hZ_ z8%0FcB;K4y=5R}wO;lnhD)NX)+^q6BFbv*^0p9B?q`=b{w!Haxt~|PDMXa7d)3

VPrND_2E_X7FaTSR2iKzQo~NSn8gi1KXTcsnnarF!Pb27Tj=jgdrozoXuC zNeoSyzoXuA5-F#5%)6fmKJl9ll^yr)A1DJ|^Q64N^qsf%Qc2>cN^-(m94ko_Xz)hW zkKVdLk|;aY?rkGt90MCQ8$zG-Zi_=v$VUC_t+A1rSD{9FBOma;Gc|j(v6<-Mvs?B8K_gZ_vd|5=4 zf9m0@C!+jQ4`0O;SxWh*p1$a*lAwPw@V&-fzWs!hfjZNdK23_0fpYn@EJ>7s(tYtn zlz(#jvWY1F5e2GbB+4%J1tSq6}1TU*b%u zQQj!vOP?i)@Bz)W_G7BQ??+!TxuSFa05jlsSs@CC-sVd7}$_Nx70JZ#2M{ zZj#XUHNe+OL~UOe`>N*3Qp!IK^hM2+g#44CUFypuqzqK7uZ4&*P=kDt^JOvRdoJ@8 z5mCM;&eu*vIjX_F+B{iGIjVSH6A@*^jH`XV1yZE!Qi5*-5oMRI^>q+Y-e`!gh_0N< z8zuUZ7Rorv_gwGO@+DDjDalt$L^+{hhA(%K6e$Ch?2B70iF#Nx!sjfIM0ul;zL7+f zH@d}FNxL@;$SC8;GbULwUYhBI?P|B44XPNco;3U)VAkTKS$we9=Ud5i9j2S_m4k zjlMJ@XkhStz$bipM3gt$>MJLrywMI{{W2OwWsY9<9Vd}`qEqYBm&*oWX!J(!_$rAg zm-B&d1C2A2jgLxM3nLHvU(!Qc=%YD^CuC@4 zD*UW&izLd5gtMq8B~fSiAWI;kjM!PMjEM42eOT;MvXn9>XR{(AhO$Bt>^LFi-_Bvp z6|$JJX6LflrzKHF>^!!Ci1JT;SvwKs`ueeyXDAMtwf<}yk!y^6`9fe6tJp@Nft;5M zAHy)`vyv!p6wRWyOQO8d#jJve@qif5%nlsAfJl|;ZB!TBHhdKIfDq|DLP ztc8g3M%S?vM3_T8x3IzM3grg!cvK#6Eg6n!9;f4MEROJpI^uP zFJS0=O+6gBj%5&0hv@5BIT3YWzk%&HN$7QrBorHGkk=a1-Zq-e!g2=_+YUZbP$*ht{91!#Z$?Rn! z6OKvEaP|g~IY3Y|{J&i_v=RSB|5u4Ig6)xQG{5Is27A*8)+&iM6vk`-w0a~9tHuni z(*^)p1)7m8lE|4vZn1S^6iYBQAxAZejd(?7I{axFd6dCM6N&=V8!8#a?jka-LW*u> z6NpR(f|^@d7Llr_q$Y*s5P2I2YEsz4ME;;Sx3MKeoK)9s%y@)Q69pR0))6^Efkv|@ zh%6w@?QAQN6{NYHRT0@hnp9Rpq=Gc5Y&VfMYS10*eS^?X)U!L-K_WVd?qr9FoK2cL z+1EsJNHd0gPh=Ho#;^_|7m+57ohEWUY0}skyUg=Xp>qd`#xnOVIYRG~XeFPjAf)_I^&oWR3Yao&W1mk3|14NRjvWe_7B4eqp ziR_3;j6&xfRM{l<9f_t=Ws_|An9P15%|{Rj$8|FMlSnfV9M{P#tVYhEtKhyGYBHHl zWEc?CWU}6p7*0$qil(r0NQ8++(G+$8kpj3Og-M&r1`>G`2=;XS%w+yLJwV9(|- z7m*Yo*t0pzPvjKz6&sYxB8WJil?}>e=Mz~31T}NnB}6uoW-c2{qzZ_EqIqlxq4!8M zkKIIM$nA1X&u6z1xf2LBXg*6L@&FKwlgGvrSqTI?mdB*1&)y_*jVXenY!8uS(k!w~&&6yXX>iZSbJSw?DG}WBag{A*tx6-Or=bjl)3cBXB5HarWoHvn)6-bWq6n$^ zS;S(9!2C4xQN*qwqNe9Eb}bP#J(sazMAYSSAsi zpE#|GSvC2N&KObdJ5i#c{RR1We zB%-Eg39BZere_IzgNT}*tJu3l)bw1%_7YLkb2a)2_N$OhFx zgVx&`w1Hh+D;uP)?i<+kMAXH71G|}sy0~v-x7X77M_t`FvUC!?Njt$NmOPmSG0#7$*kf$Ne~LZEw*05qrhQ}D6>K$$J_UlJ3bvWZ;H6UYG<%B3%|KA|G^->sy-8N~467#cFc8!{!`>jW{wo=0 zD|=TG!?_g@ing--5_RQc8;gBY_FnxAm~E_?h|0&atlcDq&W|?8(9g0?BA)}n$j>sz zTXK5V-!C=WSuY~S$AD0@opFh}s(+5fnItqE&#_`6s`^S+L4j~7;z6d8RT9CahzFTU z_A-$l&yr^CdG-d8-wi;$VT7M&dkEbFpN|g!vV-jcG@JNCcePZ z>;64ss#uOmLi4POE$bqNd^@#@J>G>B`S0YBo z|8HdtwtO70k;69fwUxmB1J$3fB9nBQ<~4b$KGckgRh&?JS-#_t?L~l8C6We~0CoBsBK*tcr*l`*+!KlXQ)} zwucoMePN(1*TDB!@I5)wYV6-*u|(9&e~%@Yq|kW*%=3$(i4823$RHqtOj1N-J)8hg z^FAvl@+1({yw956Gi1-!mdo+@fSn*wIS?F<4_H)#)TrV3kR=dN!|@@@A)MBo21Z*CuY3=)5=na;E5UU|Fp6qBI%FH zdqiKcaw5hwKq&f(H4~agq9d%G$THF#VbOc#aNt_N%D!faL~t!&oUd6f5nKzXX=5cs za4n#wjWrPIXVBjC4QnN&*1|W;zfV@C*1}O1Lqx5Gqij48wHA)CTq0^M9AlLx3C)k= ztc}RfO1S>vmFim-u^%f7O_1+w!|^>EX=+0A<9n7tL=DIHEZZc7PQ2t`?@zEIB6!Kc z-k)G~M1H;r?*E|Z2i8pJpPQuU2j)8FO5;fuB%;!Il8rP;D2+d}0wQWw|H5ib63SwSEsLkv zw=%Lk#Nzqq6ziZsYR^B#^h4O7&}rus3!0?R$&SkF{jV&RNFN}0z5kVE5W$?q!?6Cw z@`zy0hM1&|2;OsFfajl1)=UU*y5pYT$$U++dbNUoXURlVU;khWO%m$spSHf9X3v|N z&>nM|)leMjs-c}``w6K@begruV$PFrlEFJ5f3XfCe*-}m{1=P)SPq$(B5%I^&60>j z0YS~*ERV>Yk@E8P4=W`y5eRnG_=h!`C^W7b5Bo&+UiH<%6HF57Yd8MiQ+;lr+r$eugp z)uabcA#w-^UQK%NA|h=YrKTr0$_aG|}}UneUI@JJ$?fna3; zo%dAym(kTTi(NZw9l6cFrvB#-{m?5g41`>ov1`|?DI zoUK4`Kkv(Pi0nv{_K{D_PljaQg{019$|H zfk03*fTt4aX;7=9c@`o35lSeE<`qOX<;XN%$ZLsg2ZCw5karOI4)(!3xUG2+*N@2R ze*uD7yoe{7B($Mj%yWr!oqu9@m5D+-+9kFfZ6I%@VroYl$UBLs9c>^F`&w4NX`gh{ zm+}ZA&jP_lU&>R7d^G{iKe(o2c^08>A=Nn1VtECT9}?wK9K>sh{0;;)gLns#uuU>U zmvJ4}F{~*L1S`9YClM*7IG6KuB3pnM80d0dN~jjD0=T2a@k$~e0>MCWyp2daoa0b) z1wTzB2?%Pg;Bnu`>gNUIU6R3kB#|XR@Gi+(! zSE_h^oJeoFP{s4eqq4Gf7zj#T#p8)QNpY^?*+lwNoU3^ekwIo0*#EBPb*dP>8gLD7 zCZb+3xQ6?VVP&C7l)#gTs8hnVe4$A~b7+Wd4h`j1RI2OzGn6+FQj=&XZ!$@tQ%#~o zeu9XaM2S4=xa>VlB6AL1#}kOCIdmP*A)@Bc^}LvfnnT9*yq=JnL^tpjB5D%d!2RFK z%G4xE;xR;U65$+5;u%EL9J-O`5m9sKMqW)s&7oliZzQB9(J&tNovchvqMLXG5jBZ! z;wePTNd(m=^GqUY4khz)B5Do|=QTvs92(Azc0y_rjo{AjW%X(jjo^ty)Fir@rxB5p z2!7}?FCnsnCgVuHjmT>>8AtL~B1361-oiT#LbuSYzJ zE(&xj-#}yv#krO5C-OgvlfsV^`HteG@W>wwS=k&4bQ_QVL6RjD=r*2BM7@ABnimmK zt79~;BT_>v=yu*rq=DY8xt;rd#K@r)l**HTG|xXrd#NRK2VZE4LQCjQ+Y%bXt0<7# zhR5&*B5DPV;Y}tfbPk0_Ft}Nz@e@Rnf#7D9#-o0s^N+ecI+iB@!tGPt9v#bbh-{)= zZyYZsvW<4ValGCnp`P8vPZLocOXqRz7&+9jyJg3$&%f^B8Kx*?uiu+H zN<{Vk0p4hmQ12hK^*)=Qrc!EkWOM&1nGeAK+jWAIW!%67p;nTWDo3waw6WxE#gh(Bay%68@RI3mh+ z-=*{%W}MMT-I0-jDp*{&r#hlsLW zOL!#_<+_YQUQbBbu0q~PMA@#T+;>`5uWZ*+o=im9t|C63h_YQpd;<|>yO!}PBFc3w zGx%{r%62X1+F!CVWxJO1cp}Pnt>7s{lMPKZKO+ zTFImTmeniU^$1TSqHNbAJeP>FU61k-BFc6>%Ii%M+R#e)X(DPvTgBsyf3UL9j<(vi zqpjf?rY5wXui<$_)Q+}>7n!8cc^FI}UhztKIguZL;Ki(zHxr5cLB6W6mbd?7$iBt{ zLeW|tt#yY66*_-BAw}zWB9We?S;upU6jGq|yo5+OY1Z=wA}OTVz*~t-Bh3aLbaaRH z2bEn)m2Kp)4q1IN5Nyy!o=N1-?`4BF@r6WslV%gIA<`Nnd%v0QCvp-9#@WoB-DKn@ z*!3_&WjqpydH<&k5Q@rp8i^i0Dz8+J@oXZ?f#8MeFHp7JeOStmmICe1usnbPIJ0Pc=zs?6>eNB5Lfn@LXBSIb^uZ(38A`$Z#Oou_t*0 zk^PXf5nw}~;;klu^Us%nQcUCzlPT&pQKqPZ#}M%V!9W!}gGk+Msd<{`5orX1nx}a+ z5rZB}Ji{A_tf0pd&+xD_%(@KcHYkSAF1GRriJa9y@Ug^Jo=Rjl{9GiwXSa=K5!nX> z-S;+LZj#V&JjJMnt8$l4qEt(D^&$ z1FxLV^E@Km;btTrtDoo9L>`5w38>k@8;NY9=LF=o^OgmYoUf0Qy_J+tKk(y)Bx4+Dp|_e20zpR?}xq08;G0)f(!UnewxT6IOrNE zdX4+flnKeEv+rv>naElFWuVvjcq09QV4&A|DUl(UNKGxTB$5mSHMP8z$fV1q<_+FS zBpZki_rEuIj7z3SJ#KoFXAn_y_$^*$lF*h?XUo}c-bkfXhIaEdA}T|>dAmspX}5s- z-{wwT_FiolZ}UVVYP)!crx8)R#XG#1h}tdcc?A)*Th#LwB5JpImv<1M-NMk`l z%zBQL=DG&9`woH7hE7W?*rV3B~$_kckcr{ zlgJ}?OVL5TkjN$=s5!`Mh^RCk;`@oHEFR)vO!i()>L#8*L}l?~o@1COl*UhNY5bH| zP%)LpPkAj7mBvqbgGoYJZ04;*R2G|gkjvhyEPlpgxgn8C<7YgBL@JGkc^(m!#>2dt zh?>=(^F|`-8u&R66EgC(v*ks(g+~y%2?%Dfg{KNS|EM&6!LvxD()a~0H%VwR{*N~k zQEB{=`}|m0D2uJOEPllkO-<V>qk1fCPus$*$lP1&o=Qo}}=t21G0`CZQ@>C-8 zfncCcUQA>F1^S&=5V-;fo_~JlEksVk11OC12k#)#i{kvjW6qY16Bh{%ILR+^-iNIQ^HAWqRl0pg1aLy@lRSMpilN zErKS2mp4D8cR+*@OK2D%Y-6~{Afl2M5P3vY(gLE2$dT)1prB|V@;wlY6BMUS66)(& zBCh|xyV^%&872z#^=w;TBSaY$Q$33i)kIX!B1D}@;C?h@0;D zqM3*b2zKmz;k!U~_12+MbAgBk0_(rfISvqtE)e5M6i$H#h+HClDbN5>MPwociWUt- zvMElq&<4oLF8M`XmM#=QBJn`5t_wv95Y%0>O^OiY!SC=l1?m zG)NSX=oKI+8YF6nk*sXR}HIa9Kpymp3oXCo6rDm|uE|%4=2ZEZxB92I0qSRa|MiNN` zf|@JELL!mIEQj_n^ekR%AQS`SbCWchB(%(~5@9h|S?I`mwMZ~YXqjDOTV@F&i%O~e zBS91p**yp5KYmPp+Cb;%hf{`h=`RL!rc@1j}an{2=1Oc@cZ`>B8$+a=g7)#76nA&fna4f zi&`T6Bcx`eXi}wspk}1d2g%Cbjdf^8Ag{NGC?flS95+dtNxFu^&_;<8Lh9mit7tGu zXgE@A!*QGFq*5x?w+Y{6GWjaiw}}Xo6gpSJi>lcB(ISq>Iv|)KW30Ttk!ET_7rZfs$R?y(Jx1i2q|jLb z&n|FQr-@P`JAvS=P7@78u7MLXYQ~CIBEx~8W~}hX$>DhTN%?8lI1xi+IS~A`Yn(8~ z6Y2-|e@+9sOXL!X1=4K+l1d`@uX^COf9ay0$lE~ht+sU0Nn{9=!VT?i;k!ase+v-Y z(C!vVL^9XP57O=t=?0-Wfbfg7dqfG5onL}`ff2e_Y$LK82x{&XEhY&K$9Ul%EXQ6A z$9-a?NkYSMzil`sh`hn(`6o0U6GSNmQo}Jpl$(UsE6no@QA0#6*9_54L@n2e!g;0a zy;`mlMIw=>;0G7ulAa{euB7`v&jG?EG)a_@$OH2e$91yUMkD|P$91x3F-fTRnZh6c z@7_-lBTW+O{Zw1;rwM%81nWO!xu=P_W-%)%pwMcWO%r8AREDOBZL*Ye%^~^hAWPH{ zDFcEX%MzVLwjPkZpDuh?L8I~fvl9@Cri)}m76bKwSV%;T>w}`kB%z*V+j=%bd}C@t z-IyWTDURyK4B@;Q>w^0~svk3i-$aGZSCeHwW{MahbwIF*Gergw{KN!DahAv<@*WV> z%o5c^)Tb&rqLGODR3%4f*O*;3x;~bjE#f8WdK>H^k!_MtU+38Rnk&kwl{ zmMiK_Qs~6*gs{zNTPWnhRFG(nI|%cd`TIaFY<_-pbX6y z)kM^6$PMGuPzLjMDT4SHCl5~+r}c-ZO%B8$jdKv1(lR1m3z zhgA3`u_0=e1_-{GX^0M!gx1SK5i`V0K4co^Kb`>cMTUt&sa|AD^p1 z_5$&mB%R3eo8|SbP~;F<1q82eg`$$kYl-mB)IzDHqMpe6K#T|zbrR}HpCS|qU!tu3 zEcz6oNF)>S{34GM%fxsheSlzP%ftpEL*V6eyx=YuRYa13pk}!^PUOXVpwW2$XNAzN zla;*z2t_MIJdrI=$V)}BNFnk95WET$ivl7$KbKdEm7+|=0fL&9Vn30;$ICd6h~q?h z-G^~t{2vh!*UReP1B8?4Q4vSvV<0$*9u-+c&OR>BwI!l}$OS-fV=fUjCJ9ZnRid4U z+P+qc=o_%Eu6br?Yitv(RHT`r&}FGqWD`-7s8r;cq|iBMwH*7kqLj!IAehCqqLIi& zlcZ*yXd^Nh2x^RVA|grlegHgp#tE`s#1R<;1n0+kk!g}p&o+p1BC2N_MYBn|dZul% zb!@XZ<3_Wtt~2yzL-g#3^O+@u|vxt+$oYUYK*&iBICPos;1v0=S1w>#`nQQ7X zQAR|qsmDYU5w%_(7sd%fYQa1%qK3(QsCoW`NFbu-`4b|Ch??i+qL_%9=jEcFh&j(8 z)muah5jD-X2)}WYtn3N6y5lp;Cq)dA9YFAz<&z?Vh?;s&i98}|>OCc@h^(cxP$3$K zJVk4vLYyX|*2~kvpKQqL-yqS`A~{(SwP2nRQ<(O~ekT^H0tUxq_b+$-`y!c|cI~tjHsBb-LW)w~JCD*8{=Dxm`38 z`Sez~fS(g>M2-MK&2u7Rgp7O-yzGOEyi&vg!Sj!EG9VOHiYyW>`A}B&yeJ^@2oTgf zFKUTQgU~n`cZen;xj=9-?hyLTSXpSjydaW@sP$4M@{qvK|LXbze5Y-}yeKNEn7W+2 zDC&u*)$yX(Z<0diIq92YN|!NN#OoZ6(AHDsPLcfJ4f zhFEKgLf7&)L^%ag$$vxC5K+m0L)6Ps&h9JaA>~ccLPP+;L&}@Nf2+*L$73AkODS)O z7$V;ofbd0;x5RitYhd@rGeMomCGs>73{)qoh@87hYIchTA{PTe&2FKk$jS~JlKbG> zB1q&25Y)UaQiyb4Zph@nBQgmE;aLtQ_8n19Kk0YOcJ zh#f7f|0G6g-WSP4+JK8_se1ZVPzkP4TKmV6n!A}nFPiNa2}HKTr5tC~0g*~XzGnve-vLofNWExwP*f06FPa?`Ekx9dW`{%v z5%r?kArW(jtX{on)+CaMFnIM0r(ToDBSP<)8QRC9l#qJS>|@bLM7?PCiD)CDUNrke zMBFJW`{j@v=}$!*k#6t|6$kNCkwqi{mLd*xvnU{PD-hHe&7zi25bj~3=rhqoq(2Z8 zeJ1oVva(mAq~@@QBC;C@Y7UEZA{=gEVw}%K4v}+!pyqQ?N#q}xXQ*j0L_MK15;k&EX>=!PJC~Xh%dU5jA0ti18*VbiPN<@N1Dv3p$P1)7Dl&<@Nt&agoXF}Dc|+=$s3Ecm2;Pu7CQgi_ z^UsruWg3r*u)AdS&jY~*9Ty2i4i1x=Z$&DR&w!xjTTx7;?S85GPE-*29tdi_6D>q8 z>nD5vz38}$&Obu|q3C-NlP;@23~w*sdOabMh#UoiOX!5iBeE2JJQZqw5T!)c(hscq zK{OJ1Ek~~VA4MCH1|S&cM-g#1oqs06&2kL%lZXR^C!(1^Q1p|?B62fn+C>48G}5$- zS|WAS=#!#}$Vb%ZlS02oMxF|830=m|A_@uK|9J=y+Kit?8i{UbmTCM&WD^+;1T*xD z*hVCHqfBFms3S4}2x>Y+Cy}T&hZY0mlM1myT6)9HN^?@HxhZ5;)MCbCdkUhQJgdU5k#iVg7Xiy z=nQ`IQ64^kunP8_16)30SLzN`a6lVQyib)H%V6Cy-3FK z`ICu^T@CXC&p*sRo=_$r91iB+K;&k)*M*aa`>TlD0|YhPf1JoAq!E5?vaBqDG;m{_ zh=VkKe+rR+se$v4-(N)NQ@FK+mG$oVR+=p`L*f2*BHsbQ42AonGiCJ= zpUI6m;7=rSDGq9VP!#o1Ch5QNul%S$7O@g^CuC}DU0X%^N1|kFEx>dzm(7ufUwn({zf9HG#q{XZA2cRKz;oY z(`4`4DNsLu91-^c8K<8=i^#MqWM%#R1w7x;6CY@|3B_$!Ibhf=5+;IB6bJw|~B_)ilFqn<_k z{nKUj7gC0z{UeFgQ>riYXAt=u2=?qke;JWc6z3v;HIYn;bCLhVbVG)|fKq+2KkNZX zuBB98>`x$4OMznisYE`ZKr#MeA{SDIF7a0o89}MO#NR@slrlZg-|+yQe`)|>s|WgH z9+cI;M1d~#ClP6)K$rUSh+IUej`f!k8AYj%^*0i^mQp>)-$o>zGCjy2kxl2HItp}| zKMoL{e~wU~%luhH7Jeu1`(ExZAW{Yd?}=RQuOadsY2y6*iS&S%bWjuL51Sz)k0Q+# z{s<&^{+UdHuJEUjsD?y?{h34#kY=#I%p{>TeWkyNh+5O}etjlZ7FyC**_QOx{;N!l z<>wz>?N2gMXq8{>PbZ>Q`PKeRlN37RKbBk5HU5P}h5^B?=^B3xkq4*9d7j|kPh=ht z9OwkUbC#KpROcajd*NDtq(sgy=v89gox_vP=A9-LVZp27wr0cT+c!0 z8>eKvu7lZa;db(mMRRhkrr9-j*h<|IenF1ecr)_vP|B`J3qNI8Lc=?)T3Yyx|0xEd z|7h+C&#-7Pn|IkX>EW|28mvCurnwi0T-sf|zc;+pQVjkrBMn8Neqa+PhJR?$VD%Gi znn~d;77bQE$)=ft1TL+XXUkK<|Fjg-p?XvFFU|DuezQXj@`Gl&E%c1=;TBBZbP&C}sY7R`7F^t4U0J$#l$ zGX*r;ZJHh7n@D3?n;9V5VG~t{AFu?P51MM5rY5}8qQN*dHqD#im*$2#RsfneLmKsI z!`tC^T0|J=?T~1;{Q9&Ze5FN$v%0~iX$-HnXfRHrO>;2(`!0>)&>jKNL7V84a6UKG zY7F#=P16!S+@je4niiX;H9Xs*!8ol}jr`H>N5i*TM7Ye3T1Do!x8H^DwPuWpm7HR^Fyu1KyI7H7Z_~O)Ic1cO%n*rwrGA|3-t$VqCSCA zi|Abl)W@dj8#rXqV1xSFG*N+{Et-Q6C+fc%L%TRIDDU4ryZFB%ZD1h9qWKa64YX;l z2s~=hV1ur(Y2pJrESeJ#$B4Iyh6aAHh%nGlo96m}{;;Ld5a@cFCOL3}RReL7ZJL{n z!2K2xj{VIx(dfVyiv}As+NQbV|3K<2rEo3SHDd$DF^dSV=i3 zuppEVjB~e5b59`JqQN-#1Z?M@`vNyvL>TBkTcG;`X%-Czy5FXm7?@+xbYBmL6q{yJ zplE^R{Da>VO|pq52R2#)oe6;^+ccSh?G_CKO{Ptg6*yqgoDG^R)cpJWGd*y`BI*aC z>9#-*2L7;UE&|PiHcfWGW$74ZDBGr)6}SjAUFV-c5NMW7loPnd5(qPtW7EtIjI?Ot zA$;=n%^%_NAkSZPA%pMrpIVQ2|W2T_3% zb)A2T0#{lzb3jvM(<}=lTQmzmv&^Ph5g1Pz^ZZi?q7^n#abSie5Kf|Eo959#iAA## z;yh~8lmxa|G?<~1kVc(Pic^Wk9Y?}3f zKf5$={;34fdYfotK;(ypqZ%|DZJJGiD2oO&w8^G6-x;Qseq;8%<2TL|>rzeS*_4D?(S8jg0*RN6E<0_RyYzk+6m zP4hw^)}r}qJ=Fh#P4rS=j78LQ1H2n!(^LmCEgBDKs%@HGfu$Br05rS)t1+~izy^y5 zQ&jU`k@k9EmqmlGg1m0i)CL+X8jMqG)4UZpX3?Ar4Km)ciFOD6v4}9xZkwh)aPH#J zaA2T%n`Td7utkG$_SiJ<8-Y74BJA1wHqi%xNfr$T`oO07D6qt$xd0mUkxjEN@R&t| zarOml_kRusYAvD|2z1aEs4387(Od?aCY$E7K=*=BhOPn4XEsespr2t8VW1Y9=&QhO z7R~jb`O2pGCXj2k{lb+K+*~77+&e(H7{Jz+V;(X6P52 z=2W2fl2Gq4&MBMbk3iBA%lT(Ci2ksN{t8U61i~@<%cjwSi!7S45JwCC%VYrv3qEVn zV4N^h({=vA-uDbPSVS18r!9~x_>)C*A81@QjW-xx80tO7@!B*Zcr9ww`DY4vV?QL=W)Y$B7}6zDFKP`9p0a2#5Rm`e9lbv2FA8M{<6Ljk+z>opY4H4mfo`yg zh6R(92sGHUVKz;2Fx{fTILS86&B6H=O&P?w*`k5-5B7dkaFa!Zfks(GQgd7IRf`52 zbem0cd+>logK=)RY3>ZRhct%Svpa2~w4ifYD2*5>&8E34IKZO82Hj=T+#MWh(O{gr z|D`eiX}|Hodn_UhH2z;A%+US8hb$TlbiYkAF}T*E!Lgrc(@Y9JW6?ZiKxLC`qN%}; zETZQ?Gu5Wa3VvhJV1u%3ng@en%R^bjjy?Dv4eWn2f)N%G2Ac675xBnKH5Lu_EXSsq z9UN)V;B%7MHqG4NEQOr3%u4z;!-_ z4hYVnz$2VPCialv91hIjoCoOZFmt%|&&j}YGrdzp3Y`=RoeESrhZH&`I2QuDat^6; zL2%Lo`)iK2{&|i<>4J1U@H|(D9D3IU=SJW?&UteIR{nx>E6_B{yI~dJ+{$zE)<5?G z!#T+W>0X|cyZ(6;IGA&S;5-tXoWO~kL$*Fga2^NF&2`B7rzQ$L7NoxdSLaG_>cRO- zaGnJo!0Gf z?>H$Mg^K5s$oi+0ZZGGMLZt+!wC*(Lj6|K%f>T~6&-TvZ1Sh2Of>c3QmXkowr47#qIvpeG1Drz!WEUJ&cY$+uppGgyPKPdwllDS#2vQYY>F>Pz zjC58-aH{GQ&LLknRTZ2Xy5^ii>eO%wQcYbXCy{TtYYI+Xos)A&p}K+-qKo4kQYS=k z8t9zcIOzzszJVY$)Sc%Xay4rxIE{6WIfp!+1o62u4AYgI7i@JNo31<2!(p;dT|cf_dNxtmu@KMkjr#0!Rf182Pbd+LAp2QdZ&@Bhz1FT2J6h6 zLuP2O;0)6>;v7ck1oY+XOjAp@H2b#lM|iq}o!B(i1kUJ2_Ta(v9wt>7F|XrACK(Cy_M zvSwT$IE!={c@EY;FL5+35~P&{kQ(#76HBh{qLVD7l69YQDe^{PK1cihYl9Hmpo`~X zWftPQ9KqS9yT>_ZINJngm(G#k9W0Vx_+D!gzi&? zItO*rIEQq9Fuz02e}{EzIEj3BaX7yO=csNk=hQ@JM+N7UE}L^2z&Ry2XLNoG`1wHp zX9VfI?k!Ft13E7_>AEJIL*9@|7n}^;7o5`s1IqAqoYH087*1*q>9VgRT`PdB@=1w~ zM@V^eN4XSzA|y(;gxD?JBQEw4hA2Asb+(1xi6v)(`$C;;U0u#0M^(1C{>jmG;UrQh zM=11I*N<~Zp~r&rx9&U6A(Q{N;5^qk*K!gm^jwf$=}vJ@7ZiFWIED33IfoqQh4sGc zpEvZC7I|lg4CoELu>SGW*W@Hp$WJI#q5#s?CnY+i^aD7DeA8G8b-48p`P`S*kKrWJ zeQBYyviilGLkg7@oO1dNoI~oA6P$|rV~e=;4=GepkSggfbA@_g(kcm#L0>e{JF%pW zL2!)vikw607^#!D{vlhh=o@ho`P?f)A)Eda&LLZ76C8(r2Jm;)Kp$>x6 zQNNsXeuC3caJuNzypB`a1*wZ5b<^MXN)owJbrYP=^%a+TXNauzJ{O!``Wl==>h#Lz z(DhHBe2AP0`shF5V&r=P(djRw`s+t?so$_+q7$7zMb6JK4AySotmj})X)dIKlrpwKA68LMx}Ir1X>IRwEOr|-%+ zesIS5I!6vDoH)Jza_>~vhZ83_vz>YqCy{+NTae=Qp`6ngh2jNguD%WDG=no& za2D!EbI!+b7V3rfe-`Oya8hSTi-bZ;^y@gM2b?8>vsAx}bH0SLRB%@6Go73?2+~SH zO42{(oESJDgS`_=KCa1n;|ebs4<}i0*66Eq&Qv&S;5fZ8QfPxdij(F++8`9#s2{*N zlPT?{dyo z)Y(CueCwZI^e;JSC!}A5LVNVpS9<5{5S%@Nvsd4kbI1~Yui)&{w%@-f>lI0yBUIp+eLgMyQ$PvD%(aMGB=t$z;dH*t~&(qW;{5&d4yAs@3Nf^$-z z%{h1BoD`f>dO3;CqPG4aQ*=s@PV38R5`F%YgF>eT=ZxOYIpoZEMsP0ZTXN2GI2ZDq zy!B7IzAGn@DN4_ia@Ri>^@BO5P$GVzkKp{FpU64n+VO|rT-E=S>yY(NaTK~LNbUki zYHkdv0Hj3cn*JQ;kk8aLp^iuYBG1A4rxFTz1nEzG$yMItocyVuKLsaCZ{{2`>SPJd zO?^$yA)l$6yrVt;xu@^ONe&dc$4m6-SGIl_=a3~@w%|O{&*dCa=aJw%*01LrCn@w; zke=#~auPW_p9;?3`b(Ts9i9CxIIr~OS9@o%KAczi9kTu@X83}W$bgC&e9!Q28YXd0 zGZcDLa7q~FaSr*8zl7kFG;H9U)`{r9q#%_t{K`ok&{-+LDQoa>&Zlt73Qjr06V4$6 zD(CAsr3!}9-+QO17YbGIm86OWg>(ABsVF#lLvzj{Uohwe$7J||bI3z0r%8~kh8dhR z6rEWG$6?sQIb@eP1SiOFhI7WCPLSYKa~d9U(j-XL1gVz6n(UpSS#W9zP94KLoHG|r z9l@z@=)*b7;M6w=>z{^(S)4?+tf5e-v0($}kQo&M=iG$TRdAvVFW}^@ zf5^l}2~u~1VXb%avr(wK;Pf_p%sHe^Z^7wf7{ocxP^XXP!Fy3}}+zOeugI<5J{8<#qDbKQo2c zOhb`%-Yu((QH#!ZLh3t1H7?ZmTxvXr54LzM*HX1cz+ve8E|07|%K6 zoWD?T78{mx4td1Am~+_kpXG)$PHKixFXtrf`OiwjRn8$V6s#1S?+wM)d*_VQ`Cf3= z7%X1LDUqLcUn5BC4Ig+V`i{_g!P#Kw#5rxy*#^P+$>8Fg3Yh7i@;UVR&lbacP9hJ7 zx8#$^hcm^nn{&v6#uUNXZaBd?WS4ChoSlYyoD=E9sCNp|F2gHM>JDd@;QVT+w81;o zU&8rSaP}C2IEOs_+T-Kk{FiEI$4OtKP^yoFpIkD0$vI@p4hYU6gNt*>3>^}j!-n~s zgE~&>upk{X{LD$D&@sU|ZaBy}WI)FS=aj+2IYY2vrv%4&)=+e#cN#}QIx9#Q4WXPv zX6T~eWEdhiXDXZw!EqZVa1N>Cb_&vU!y-;1g{})umfX$t&N-yBLPpz`nhZYdOMRRFn|8$+rtQlit^c$;&`pj!)dJ~HaJL=`|5 zaH*z9iO#3SwVcxe&Zqh6(Dlz}`4A3s=`-UgE=EQzI=zHcFJm^B`WT&wPCsMKt+|sg zOP@L+^%DvWFgE8T()|Fzi8g-0IXzJ)T5tv%Cvgs`GuX$$`EQspiIe)G&@dkf-+vj; za1JRnN^r&$Kpt|bA*d`kPHB>{_Rro4AqUYUp^(e?9_NtmU4k>!_!;Mrd7Uaa(*)w2 zX8eYWxeybj>Bb41GXu_aq0lVjTFxPxF-vgbjK6RW*^D@+Ak8U&T;yWpYgN&iZy4K|H>Dc&K@NB5$$ z%^1!(r2B28PX6^zit!UpBHgD5o&8b(8N#K=idl5_2&p~Bl}P2Se@JJdv|otrH}2y) zBPr22Afyf$-CT<7R_5^QpTkDK?cQlziD^766gqCK$vLF^v9UiTF6l7{iT!0vVzKjBh)2VDYD{IRfOELGfc$ODWT~bg zCy{z)RCj8f{S}M%#o_#845!2`2e`5RnG5vN*oz{U)YL6Yza#d_xP`?AVat}lDPlUy zVpZSAZw&$|YRX}$t{|kdH%uYBw9YzW=WK;j+!R5HTked%sjwg9P16ucT+*~5_|rBw z5i4QZ!eYUAhIJHDDbraNTX-C|+aRS)IV^Sr|(jl(?jeAcdFWmx7yeSSoBLzW;azNimiGl@xNzQ77=iCC&*}QwSw4X$D9+#B8Q` zN<4BGbXEpV71I`$s<=p&EFe`)XIZK_hz+S~rjR|_5WC>C6a=S^DS{HWJm?DUIh;Us zO+zShNh^SAF2xITrn4+I5o2rur=cl_#oDLIQX7y^Q~AB5v`ZQX(io{mrXiGgV%1PL`^IJv|XlCsPJXt*$6b-+@G$Ua-^!kUmItHuc}H_2rp`>!=gw-_K34 z6uIRS-^e8DI*f#4TUI(Xa>PYf}^@F3AtO zY&uc{O-EU(I(FG1I5DO>EVbAnOBX<#BTW9kY14QdXfa|VO`|FC$O~uVBm`-KDUlK! z!zc08EXYLDPL`SmvJt6Crr-nG5a*+_Cvaw(T2tbdvvBAY9g7u_sXrwyNp}VBL?9LC zG-a?@2khxmkQSI;u-GjXe_0S@p~-kq8=?V2JcHOG(?m)<@>dw51I|iQ5+!aq<}~h& zK$1+UEVTxNO#UiUNSZdpmn(4mz}aAOMo{FIk72*I1lnjCLWxUy333gwO{NSMYl1!9 z0ZxkP1xsaNzkUX?-DEtZ4N-@`telP14pS^89{C0KbYD38P3tIe%Vn`!V?a_(N1ZJ8 zK9ICbl72IV9@fS<9(#Hmq~oS2O5Cyz`*jw`3DamwTvAJrGDw{?-C?QsG5HB_emD6a zA$8pH70lUckc*~ZN?cMvWqdf1`oolX#Hn?*3DdX{Ql@DqizQ;e?gF`C%3!f$AaxP* zm|7pzQXA0O0XX+f{V8$F!B_D75G30aONmSR6eJv}2c{P+)ek%R5}aoy<1xDaamzI@ z#@j&8O`*p~X_wR;*$m1}?95_YHsg$_oU$I{cjl-d3&Sa@<5Hk61m?MsB zL)5Lr*%eM{^AJkh^1`=dNe2>Ojt6m)&W-@}L}z8pXIbnZIP)enoQxB_8?26g=60qcabo#4RVmX%3<{$Fo%Vu3E}qK1+xb7r~o|wTEOj z=dhR?v2Gw1bNQ26XJuJTF-K71k^e;MOE`A(5K7!~NF;vc28e2oXQ|#G1F&HZvvi8o zam%A{QW*oMidmt=>5|p~jf7Oy9Lc1Sh{ZyxW{#o6CH(;6f)i}cWX=Jk=EA9EE^=BM z;uDbX;M6v^pu{b&>x2&`oVw;d%((=z98QS&tmZi7o0IUn+#oeD=P*f+LK`5xV-7x} zjXE2#9dO7O5F4D%<{lTcL3csQ0_RinSV~;d^vO8>Ye4E|PGyo2 zQ(YZW4|67y+JH2I^O?DQx>l$ic3C|*z0J{-xTLWlE#Z7&PG(Loq{88RX-;F#T#$}% z`j|t0*Xkrr!tvh*Qh##uLzgG@GuQsR=Hf&56u zIK@1XB9Gj22EGe~6l+dmv630MQ3RP`PGzyiAU`5C)9inVl=jG@klF+1J9984Zh1YH z=f^?jm|Iigk}iXgA;z0ySxQdAdvN2i|L2?6u~;8SHxNrOA7!xxAiEJ;U@m`I>nv*} zj&nGR%^{Sy<-)5nE9Z%$>Y%F}Tm!a3zMXR?@n z4GtHe)8-=A3ez(|E06%h&X}Vp@yH>F&4Tm0c{C+%xe2CvF~~)8B1=Vs7?JwJ{DP&r zV)9qRxn?$ACzajuDXccOfLu2_Ln(4eh1OtV5z92EP~wrved;bq_sr=m_8nqJK<=BL zvebT%#zx}STiDZ7S3PhXiD7jMC{gUAWzJ3l(?j=Agz#kYR+=9SS{@7+mK$G z{cey#xDRyWZVu#?IfxS62ZD4)44+9#a1F##qR>Qq0cA;MsYI(kQ4p3Q3G?iRZldE{!1F>?J6c$^8&T7G_WJ#yQ zE&IV~3=(L0%2MxukTrqM(%?_6vjn7?!!cSSDZzbD0+u!)CQHnp+VdajIuMDOEh#M4 z4!29)AXzQxEcW?foF_qSmZy}sq&XmDh;~a@meyG~j*p>m-m>(d#4R8FT9zh&1X;#X z;*$OW8G}?6%SjM?{yp*m9Qm=3YFM&a>_bQkL26n8Zj#b2X(R~gtd=E`5|6wHsg-a- zEHRY04?V5tTyRnKyjr6wV@1J1h^=@u$Gv8Sg&N&{+WQ3yh3zpz-Sr4J<@ zc@tu%;DlMGP~w)~{X~|ofHbuvvs6D2GQ{^R*(^05&k3^Nd|(Ny44YMnj9Whop^H%l!_+;U?$AA@waw5P-+4Fn;b^{^zcRB`mx6;3Zp3QIW`wZUsv zK)o&LEOr!xboPZsxu#V;enWfD5_o-;n zmNb^qAIH@OWRN9`rCK?G)}XU*EDi2!o#o&dUIuBnC6W@i+y%}CkQhr0C0MtBY(r{< zC5@&0a4WJ6&KOG;OF1s%ZVJR{@yjNaT~bGoRHVjQA}R66h7vr*!wEGK&i9rCmfAlZCtZ+aOA1TnfRHDKYb;M$ zsti&C@%fY1Spsvk&ZatL>06NXmIjo#q#YoyFvJa(v6Oh^mJ6|S;QVM=#!`2i$x=MX zPnJC_WyT+hCG)Yx;`f+T_Q;EI>%JIHiY15=+)e9b=?53~|8`3Yif}s(L}EKEaV!>! zeYOR$-Ih%(HXEJo1Nqf*lBM>66kmxYm?h{ht+NT}>*rHLmp9MK#k)Dv!F6k&pAUZo~nL>$2E{^&58_pk= zWJ=uf@RqVv3=7!|OBzchgVaXql0|u{4UxQc7C_d>*DPTax#iD0%90uAx}^stxWIsf zA(m-LW3i2hy#?pCC5xrj>T$jYxnuGBo0N9p=N)i6gVbHi5K7!~Kb%V&!+BtdXHFtW zH#iTSmZMDC=fDXU(j&_qCOrb_3n|AE`HYmt4JBfqz7#FDX(S|B*}|OhAc=4a zDMen8LLS+M$)5nHn4(hRmR0Pa*&u#OI3+IW6Ogq?6<6X}>IoL83*nSfwm4br&Udnu z3{+Y<%VH+{an5as1t?+vkj~ulZG2!h!zr)ypu{DSS4mUhR8SI_QyqKyS2z`w6y|gT zISHqdqQ2DXcyM^8!7(V|FX{TnB~`+Hy#&dqjAqiBDzbDQl1WLV1P_owZo)Auey_Ab zJ?BW$6*x8}h!U3+5AqiryV8R>hk|73E*w=E%baH*g_7`4LP>i?*FPS4+jodTs-k4E znB@$f^xzs-Rq>OGVC!8{dytZdRa4qif@KR%Rwd!oRH7-t<4HIMkXlL{OHE^`+DbZ0 zokdE8^S1I71fPGm+^{zO-Y-x+B~aEn>kpzwXZ4jnlz8Ny@!@O;Csdh2iCgwO#{EA? zBPE%oD*c76LaMQn%~I=U;i3%ZJtd$JsqB{HaWM7(d0(kT2)_T4egmqBSh%u`N*=k- zGF+4)wNdu4*z&h5;#|Ic`3r?ut}|6mrYQO|rBKq=%wV;*ws0grT#~lxRvk@;an8 z!1+RnW2s7m@hT_Cm&zuVY5_vdjC~ZpqS_EIVgd3SoUfH2O7Q*5ltH+|0UD^ZpvWa{ z2Wf@QqLnS0B!?oF0cVJEmN^4JBH;{G{NEs@-Euc{b_>ohC72SIGz)~B&W9^QDDlXT zk$MDYloHQU&idcr6AnCD*}`IdKuGLcj|7hb-L2E1{I&o(6<$ z>jWj95|6wT|87N_s%&AY6N|8;L8d8ZSxRyyYL}epiqVgh_Q(VAnQj1SmJ&*dTfRRO zD_D>?C5jT4qzu!BI9o|#DZ?}z32^2rsVueJg4atx<|&yhbsB_RxaTWsajmc7vvK@? z0coKUPLW$K*%OOskVQ%_N?cN75E4sNl348ce9R7R*>DahsVub>&P$MkN+wHr zK$aktrnD|eDtlxXQpKE@l#@z-irn&V*p3Pyr<7PqT+&}4J(pntsvKppTG%o(oO8+@ zmO66{4`xBmEB>WOX_r*wI#yNa?1BVr39(jo5Xid}&e|H)|-}1te1mp#(Q;AgM^*P)1YYkv~GJC!Cu~B1^S`GYI6C zvXiAogPcgh{=cpG2awVpxiMlRA!RGUl(^-}jbv#G$OEM{B`&EGNCrB4s3fvfDO}BF z!+E0YWT`8mva}TBsgl7`0Z83J>TktZM(gVlPUp#RoG+A6itzOtp5pxs^p6rn3D#7& za+5XdOC^!T$d4HO3P-l?WU1a*GadseWX)iyc_2^GSz)VMR_iPZ=gRYNidn-camz3F z%TgwYpVQilB9~MXEB``>6}PTqu_x&IE~Jvyqb#-+vF9MAtan(-142@zts&*K&MqQV zWIFB{tPzypV}`|NS&;J9A(Y@#22x}d)(uu?DvJ%kgcu;{t(m#8Kv}8+VzA<`qtnCc z5J*|XjMgYhJaRc~Ssgew>u5^wbtIfH5W6*zrTj1-3R0>ylcg#n^&y-fYY}G!QrayK z#CCK7s$x|saY@TS$hZDgtx=SCulMZuuq-nFyeM)^#kVAEX^b{jGOctSCPBpTZev^*3srHM)reNVGMW z5|{Kf2CRsCBsvXEGq+Hfe zv(}gMB_?D$q#4#Iif|FSit850OzUV$a1jFe39(t$qb#-tsgrQ#SnsgZ@3my|yv4z&7EOr8C z_?K`NTko*g{u{F7KLZz3tG}XkmIHDcsioE^N-&E_IKRP3vW}+2EzdtHOLmY|)i8#YgtJlOf^1Y!I0Kl+f#z626+x=gLN5mCI-pUyKpvJ_b_KGNQu>WC}C}2 z)9MWP4j*1P+pLk4xTGZ@IyfoTMCSCWg6BUULE2&6$)vfs$*K(L7i)-JE2Nu)3oe{J z)(A@Qm;xjO&R%N*a~#L;h69}a))eM+1ZfH<)!JIs>TJbk41#mS+Mg1aQv1LQyT(F*GP6YxYg}cm&g5m-U8J+?)=d<-q!ge9kTR|QZ)sA?s*=K^aq@OtgR`*jVZ`2I4`X!%sGMi$b?hKmd+drLwo|Kuq~jf zR_8M23&$5%zR6efK|4m}hqVM}MuLXb*u{B6c+TA?P`LB;WL zEM*Ie<8REAU9mdqSG22>VKIa?ZYB0%cGahA79!CImA7?A?0f=!_WFIIsxfmG3! z%$!r$K~>-wZE4IYgaLJcW3u^I*Xk6;4yq5wVhg4O-v@$x4o9)YGA9Z1L0&(zJ8kQj zbPniiNUANJN&PV&Z6T?)r_5OlG6Ign7F|Q@OvVoC1gEMkjuMwt2P76wHCq~UN_b?c zH=JNw7IQ*D7Q(4+bJnU!3VGy4N$4I@ZCiUv-0}pRQbvQ+u|-qjlD2@5SY2BROI1Q@ z5}f+Bbe7ultt`y}X<&QGQV&2@BlV80eJ!o8`gm%T2&aiH+DVaH-dPPtHBgu>juMx2 z7i249O>KU)wOA;Q>Yw1WvISA%mN$2irM)1nZ7nEqN!LIQBGtyWhdB|rE*ysQvF$2z zCV`xT)4`_Jagx$lk78oeA$?*CuR{oyqsQ^~6Qqu|os_uc#h6$(oUXPE<{Ssfh7)B| z>S}e`Hj}0MaJt#TD8UOBApgMWZcCuVBlpMY{3)E?wv@Vb{o|G^oy0pkxaxgjOJ}hb zASIIVFu_(UMBDmtxB`@hGr-oK61!4ToJ0&&`sDRD_HKpG%5 z)+W`{QskE^MZj^{6iVE3pWZm~K_=V6C~-*(Kt4cfiY<;1^8U|r?2mqsX4p2d*eXaP zKxW!bve9!|V1j1oNka?4U2$Xr_wO7May$fronv+ZFi=SrMm z;UwCwQiAo*+7Yf(z0gu_d-1l(^+~STt^ev)ne8Ib%U$;H((WE~zufI;6JRPBN!2R+^9DY`0}I z$GHe-JER@9poZEQuMWp~8teF9Y%M5pNo8X2)C$f{TQVgcxgiGa4`;tEjis94^P&ey zwPmqXG{_mGezQe~YJ-d8IT-wmTsFuiAN5?5I=%*$(GDgpWVU75ahBgjitW3 zgX>?RHF%0^^J}b)aXzM}52S0hAWGbF3A_a{4CK141tl&i6vQ8?OxqNeT7$#N3Fl8+ zGD~g4p*I60%a+DcSs-h0wYX{XYohfvdnJzld64edf+%v!XTHIT4dkw^1toZvF&Lj| zbav0SjK#=vo%L{XY%Qr4z z(5Hc3*rF+NNfj^SF$rS-*!HlPgfrD2a0=P4vRI`!JO>9UY?qpn(l`@&AgMq8q6IpCGi&eE}uvjqueKcBi`wNyT zhP^lqq=wztOzW%xhzmokX`e`mN4|q0&Vf_kox8`Ybs7ckeb*-DRIl`Q)DRxB+MQ~iAyRzRi>$?_AM;61y_N+aGKlCvQ(c)SvmpI z!k)uY3qXEAUmrT{y_##CrOv~r7t+V}iIlkIU59XU0@A^rM2Snf2eKEj2)lm^EmaZc zhWl`$?7@_{PtAC zL5AA*uv7vFd00KnF16BTXeUyi!x>>$C~?bStz;=0WTZW;m6J#=X%Ns0jB%7bj>X=^ z?ic}StbG%UJu}PFWRP+8la#omYIvaTw-%RSdsu6&v)}QVkApMa-h&dnmH~&{`Ni7D zQi9hqKnzIDus?0hp8q^R?0ZP_?SXAbA-DX&B&_~G66_5qaY@5Lf)QI_kE6sRx5t6D z8_rVuCYJj1C~oFJmf26TRNyf@j6!O;J+!S>xh>9v=isceM}gq;k2M<5hmcm=WQUe^7O_E1XjMi2_=;cT%- zQG$1!CSVx{veiDCrTzgS-T!RQVoo=tYQx!K_xp%c#`_1efWC(Gi#>!QtWtX7z6a7T z_6SN`(g6_iwb@R45+!(yhQq1_oW1r`mWse}-VtPZh09_ zL=)j0wb!D=C7l8xyX=^~4<#P?K4y9boD=pbEam(J(juUf_GA`wfh<7jQ}!Ye+NjAd zrzCf57wjq}Zh6v0JnH~Sw}(^Wl70qRgVgW#Se9yxlkP8YF4@ez)qwz&L|)mNWHMfP~w(*BUJ;=D|-TS=8?bulm$sr zQ<)TklMK1flhjNm^#&o`%c>fwje0xI7R}%kQNt;5%MBLGQU{QtYA;G$(pMnlDcT!q z5=$*wjH?8k;%X{O1(wCbp1weDs+lbIArM)kl~C2rT4#r`9vlp(lp0QnTfU30EXRSA zR(nz6lFY2L05yrFMx(Q7aLTEvEVVRVmJ&e9tC=iy5+sfM{9gst*hTBC4r0q8RZ>GK zam!Vg$kIlTKsAaIm(&%6Y?)3?WGV6sB~swv2mM&;DNeBmKul@|OI1;1y6??ugRWX% z6>yC_5s&?kd8G(HI@Cs%E+OVnV<^FQeIVp=Qdv!5v5#?}dEiu0(^+aVwmt`>s``|r zQa~PImsL|+L}{Jv#)ka^r61RMI6`mN9-~Urvok9`LgR8a9>ZoZf_71u(kK5(9 z)hrhKd^mn~2c(|r_bDljmvlf1|A4iP+MW_Dt#F`KgVRurro=6eZGj))1PN8+SZXr} zIX5^Psc9^>1;Tr1P1GzF>-#-^f)gZ6_3Nf}wg`m8nyO)xcx3Wh4m!hmU+qB&Ufi9H zAK(NDSI4r{V-T{-nyGtO>R2K!>~LB*)vGLas{>B4Kp(17cdau+1g-+uvX*KjC3sZ< zlRp_wdo_jPt>O@71bAah9DhPXJ8Mlvl&3- z4BtuZLkV8Oz=>!pq$qU?C3qq<13$qD@~N84Qd>YQ7-Bayo25drWk=zBt_FNYD&v+0 z&P9-(YAs4|OM~0lV5EAfF;0p+au39=L+Ya@P%=lVSsh=*x5Uy)ooGcJ?zaT?{eMPI zf99lHpZ6zVr5GBpMNiC>;EP8A9MElDemXrU$6Ti!j{DfMC@J} z;5$Ri@&5dKUse6uS85`VP6GKxAY%9bPV#>LVP7>_DC8E%6M=}OOAhqi4AE(m>yY37 z^9ByEzUquzlt-2eWUD|93FMMM9tfmZbnXzHx!vQ%E}!H4ZGp5Fh`41}2l>`{ED*;x zd5-q`fBLGSUc}~OnLvsR&Wkapk3bFyq<|rE4*mT2lVMz6 zO4$?vsVi)ZyHA&;cb2BrL|)NzYH5ui5>7ZO7|w#@8eA z56Ib9-Qa@?nvZ>gQ)p!VLItHN3Qk8~;{1PhEq|RE>g(IR>RcKK8ZT$AXJBxY^C%PcVcm1=eAj#*%EDrI1C+MGFeq{^Y ze>3L4x8C&{&ccG7{Og|$1xxvcxKD7-3q+ic692NJ^R0g@|03}-RQENU=C9#&)f|5P zGf;?47RVxj{45Z0>kt2{!>xZV|ErYy_b>XY4`0K1W32BHV-(1;T;g5-sN;NN$pQ%; z@9S(5NXP_VCq*Ek6LX!s_0OI>l)EAdpOh=*k^=&{Dv-}zzNujXiSv@&^-tN!zOl*z z2@}XZft(jewm`m_;_ZvAe_R~WmZM1msXWyi(;V?Y3l*H;Y5!+RTmOU!(z)sXXN)d4 z?g&o&%>Pd1A2eP6B)>*1Rd5~%BxIIv_b!1f%TLJq#}?-s3l&KIQIplq9>EFx&bN-3 zS~n-ZgZ0mGAJkX9E|4bzDG{H)5N_WDB6i<@u1~6<_0Q3HK2iZ|q#g=PP9O@%K6qmVrL@B{+B}hPIRpH?Ov?I2*3X6BE&`r zBu*ef-@kTe+=ISQmg3ewU4=r?0`W`!Upg}isfM}4yZ-stDdI-mE;p9FZms;f1diFzUs)G`K7+&` z+T~lPu`h9|V|-BotDQN5lPr*30{K%QF9hN&v)gx!l?BpJAmR>+cnxREufBav6rcZy zrR(hxV!~4+F*Qs`B?x5G9;a{VI(vOd3xOOK$W?)e1NwZQZ{^|pg!RulK}r>fSo(h_ zKI@@%D4V;31pK%eiMk;+5LZU@~wYLrTTU+7OM3cPSS6_ zbut99=^%CZ_0L%iao77YX}*Oj3nWw^9)U=QeCy#xZvv~3M5+~V)xC{xjL`E{)ysa zbp10+AYy09f^#(=q3fTzzjGs^rTYtHvOvVn{s%(VKg)#DhXry~Ab}Ts2Oax|FG&`N z?+~&6F<$bG`AU7&5b8{j4wblc=piX3@d0D(N1oE|dk&&fE@um;RKsE3(8T15cBb-Q(Xmu(h z?_2Ow!XSgx*^Jb#hWBbfzEKx2(jDDLjl_#>sxuc2sH&kMY9f;k;Daz6v7zdDM#9QT z(pZpTs+*AjKfI6xGF-jENU7p@*B2xvuQM52KO1C(dXqV;keUZFQhnfLXk~f)01nV7 z^#vnS&{-15X!Wft+O{6SmaPZ*R(+R|yV#CxAkI8;6q`ZFShYWMo&-qJ9*}YB5Juw7 zc-s_YJa!rR{BalDiRu_8>EFbQqmU*F`*o5U$DFj1_+5{1CJBy9O=Hd>)cFIBOU+_r zy`quHBt`o7K02797Q3o#>s*v3dwPl*#z@yn+Mb>&bT&=>nK|!aT}XD&G{Kp!rZFcl zSaYVU=^*G|>t4n{V$~cfx#evE+BtuQ8sa7ca?8dvS$YfqZ-$yh$vFIlNW5N2NzrT6 zDc*NEeqs=XW~e1KA}1&0*2#6&!KqJE<%vUn|KYVEc)t~+o}u<+vC8;RwWgBqM{$PQ zk2({i-WBl1D^2-2Gu5%oY3Q%*#F=UwBOg`NQnT0$aqFKrbrqA|VEaB!n8w*^3Ug}0 zA>GdwobS|Q%xQxml4IyQ!I`68(;TOCtpt9E5Yim=A&WI&V~iJKbJb$kwd12X8{%BS znWtKqV?$-q{XD^$uhwLavp$pN3sQpGgh}m~lc2U^Bm-Oa1f>@UsfB8H=Bz>LC7gxo zKt=+wVMW*Br%cqjjNEZ5+B7DrI~lrOO_LT2rI)B3GPSMmR!7^iC4#e5?Zcc&tox;E z3?n)0h*`#^*!pL=x`0W~5hJ@}IVWky@CtPebGqZhN%s8;!C9$pXU+&XWb#)EPLg_p zIUW3Q{1YijkXETznDk`{t&o=-$DEPWY9aN#dY`50v+loFUojGia|78O$$6v(&IC?^ z*5sivm{>yAs-fvYquou^caS3FC)McD zHsf2&86jKLu8jOtjS%#|Rb9wX4QxG;epY{H~4nFfbU>;bjdO>OJvU{8~e>p`^= zBeU6_PE$h|Iap0g9a2AH;fR3q8 zDDkcbj|-{eYT;Yjpoidp^w`wnYDFhQyRec`fKI4ZMs8r0QW@l=T8)v!s`wdxkW+a} zD_vP_(RMnIJcUD6c4zXIXos-;s)N*7wHB+>3d^thAm`Kux18FDVzB%Q13IsUF{w2! z?PSX?sBIX@L1$#t>1q!~5-fOK9pv}CR7W<|7xPlLYHO)K)UR%9eJ#RFe}q&9Ns-V0 z1nKTOT4$H?VrlqLkpNO!4NGA)400_m z^%%<*vSHV03jI%z1_o)dOmz*5ovMi!&k?(!UScE`lSX2myuH{RrybJSpLx6NAZC&5 zvaGya_7F2fcG*qgXt#yEbj=ZyXu$B zS?RB>_3o-88JUFh#~=*o9!qiSpZn@eChcai`|5H=ma$m2(AfiZD|05Z)B`n*k*`?l zp^$o{W@rxX|8d$OYt~2VeHP1Nu^b`xSS@@{n~!wX*<-aLBRg2?FCq0rt;!rL`jT;o zKFM?Pp8q^m8!)LqN{?QL-_ejKV8VR z=Y|*FRPOVi7wQQX+lc#~9}(ju_H5@L^%8T6mB390hWL;A%%}8AZ)ui#slIVvn==Fc zha9jkRUIQU%i#DYN9-%r&d|>|?T{l@a^&6_rr`#PoKoaG(wLoO3OVYr)aN+KkeygK z&l!yK2f6Djl1B{Kuvkd3uU>{blNf1lB~jd0}NP+oyV&Q`@7Em-MR7&X})eh%Mt zesM<P;g>eleTjnn~B_00R+QhEL zWhowWQc`eAIVv$H_lPN#-@*J#0gh@+$~|NP98DXG1FIBjJaz9N#jB+*BmMDK9t`95a}+kuBOPI95^O z-HeL9DW_D?v6;mboGi&>0WTTENF~R1=A`1`%Mx@S=vzqAIWn0;ZfVF6b%LXJ8vRpzT+(&L@itgQGGdO>s1k<(E-NnH*uv$-VC}IodNq?t92O$}FTTPDgJh zT}NlDF=~q-DUPAc$^G0bj_)YZZr#@-Wp(_>k!>Ijp-xZ%#OeE?Do8rTl_q!mL5@3= z9FVq-#V_8%kssu!^^nZj0qMsxcxZ*4R7L2lK;rxTSAh~vwz-cfNcXSjw4eiW`E|h0 zk&%ZIRUGXZi2}hn4Wu)BpVRN^C|TNrNvrDkj7fJv(kSW6NS}rH)zbd>(L%>Jj0^=i z1*e*@t-%G5QMr}d;U__H(hGJ>c&L5<<@XdQk)l{8UBRymB2slnJR=W5h*MoCUBj`M zIgxtpAx#a(Dn@#P;82%pI5seHY&CwZ&tUv^2*=ML`24&4(t*fdWUcA=l}Y4Ruo0=2 z;~*n%GpCm0BqQ}PAmY?^q%-mX2&q%s;bvqQeuOa{GgQZMlaX;Cmnoq~9{>GUT}KX; zCior0u-0N*>pDt3q8~-S3n1i=3fFZQ8HpIH%}|J=9wXgA$P9%z!WroULJr2a9o-oD z1_TEKNPkM46a3nZ!#WQms^^%-q|P9>DOpH~_W@mf$0p`Pu_4xX9A%`=Y5Ybrr0P5F zFp|3&^&NgW+GgYqy1qlzh`(R%80$O2CKqkthgN)B(H3vMe?UIC?ZZ+fn%m^SZL@2Y zXe!HVC!eWZV%wS8{y(&upZcwTnfZ&p_4hCOL8sOqzBhl@xBh{XQ@-`zmhx@Mu<8LV zXI(j;)V@ym%3FWMM9pmN*yi^`$>%K#*ONjfzwuW|v{GoL(E`xQpp``{hgKe~0$N41 zN@#&-Iy60+0nLbJLNlXT&=fQ)nhnj4rlL8}DxttwhIv|zOAXf@DkqSZpH zjaCP(E*cr%+i3OB>Z3J4dk5`Zw1#M*XpPVsqcuSbLu-om9@_h8;b_g!K0s@Z)&lKA zw3cYC&|0IlL2HZF4y`@fM`$0TbwG MVVMListeners; @@ -232,18 +234,17 @@ namespace Step.UI } if (ncStatus) - { - NcHandler nc = new NcHandler(); - DTONcGenericDataModel model; - nc.Connect(); - nc.GetNcGenericData(out model); + { if (!IsDisposed) Invoke((MethodInvoker)delegate () { + nc = new NcHandler(); + nc.Connect(); + nc.GetNcGenericData(out model); StepNotifyIcon.Icon = Properties.Resources.CMS_Icon; TXTMachId.Text = model.CmsMachineIdNumber; CHNcConnected.Checked = true; - PswForm.setMatricola(model.CmsMachineIdNumber); + PswForm.setNcData(model.CmsMachineIdNumber,nc); passwordToolStripMenuItem.Enabled = true; }); } @@ -295,30 +296,54 @@ namespace Step.UI return false; } - private void adminMachineToolStripMenuItem_Click(object sender, EventArgs e) + private void ShowPasswordDialog() { - } - - private void passwordToolStripMenuItem_Click(object sender, EventArgs e) - { - DialogResult dr = PswForm.ShowDialog(); + DialogResult dr = PswForm.ShowDialog(); if (dr == DialogResult.OK) { resetSpindleHoursToolStripMenuItem.Visible = true; + resetSpindleHoursToolStripMenuItem1.Visible = true; goBackToStandardModeToolStripMenuItem.Visible = true; + goBackToStandardModeToolStripMenuItem1.Visible = true; toolStripSeparator.Visible = true; + toolStripSeparator1.Visible = true; passwordToolStripMenuItem.Enabled = false; + passwordToolStripMenuItem1.Enabled = false; MessageBox.Show("Machine Unlocked for administrator use", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); } } + private void backStdMode() + { + resetSpindleHoursToolStripMenuItem.Visible = false; + resetSpindleHoursToolStripMenuItem1.Visible = false; + goBackToStandardModeToolStripMenuItem.Visible = false; + goBackToStandardModeToolStripMenuItem1.Visible = false; + toolStripSeparator.Visible = false; + toolStripSeparator1.Visible = false; + passwordToolStripMenuItem.Enabled = true; + passwordToolStripMenuItem1.Enabled = true; + MessageBox.Show("Machine Locked for standard use", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); + } + + + private void passwordToolStripMenuItem_Click(object sender, EventArgs e) + { + ShowPasswordDialog(); + } private void goBackToStandardModeToolStripMenuItem_Click(object sender, EventArgs e) { - resetSpindleHoursToolStripMenuItem.Visible = false; - goBackToStandardModeToolStripMenuItem.Visible = false; - toolStripSeparator.Visible = false; - passwordToolStripMenuItem.Enabled = true; - MessageBox.Show("Machine Locked for standard use", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); + backStdMode(); + } + + private void passwordToolStripMenuItem1_Click(object sender, EventArgs e) + { + ShowPasswordDialog(); + } + + private void goBackToStandardModeToolStripMenuItem1_Click(object sender, EventArgs e) + { + backStdMode(); } } } \ No newline at end of file diff --git a/Step.UI/ServerControlWindow.resx b/Step.UI/ServerControlWindow.resx index f77f97c4..44b4e675 100644 --- a/Step.UI/ServerControlWindow.resx +++ b/Step.UI/ServerControlWindow.resx @@ -320,6 +320,9 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEAAMADAAD//wAA + + 290, 17 + AAABAAMAMDAAAAAAGACoHAAANgAAACAgAAAAABgAqAwAAN4cAAAQEAAAAAAYAGgDAACGKQAAKAAAADAA diff --git a/Step.Utils/CandiesController.cs b/Step.Utils/CandiesController.cs index 8f04f20d..e2f95699 100644 --- a/Step.Utils/CandiesController.cs +++ b/Step.Utils/CandiesController.cs @@ -1,6 +1,8 @@ using Microsoft.Win32; +using Step.Model; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -15,6 +17,8 @@ namespace Step.Utils private const String KEY_NAME = "HKEY_LOCAL_MACHINE\\SOFTWARE\\CMS\\ACTIVE"; private const String KEY_VALUE_NAME = "cil"; private const int BASE_TIME = 730119; // 1/1/2000 + private static int randomTime = 0; + private static TimeSpan StartTime = new TimeSpan(6, 15, 0); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -56,18 +60,19 @@ namespace Step.Utils // Lettura della licenza da registro. Ereditata da CMS-Control - public static bool getPCLincense(out int Matricola, out long Parameter) + public static bool getPCLincense(out long EndLincence, out int Matricola, out long Parameter) { string szLicReg_X = String.Empty; - int nLicReg_X = 0; + int Lincence = 0; Matricola = 0; Parameter = 0; + EndLincence = 0; //Leggo nel Registro Licenza_Registry_RW(false, ref szLicReg_X); - nLicReg_X = Int32.Parse(szLicReg_X); - return getDataFromLincense(nLicReg_X, out Matricola, out Parameter); + Lincence = Int32.Parse(szLicReg_X); + return getDataFromLincense(Lincence, out EndLincence, out Matricola, out Parameter); } @@ -75,33 +80,41 @@ namespace Step.Utils // Scrittura della licenza nel registro. Ereditata da CMS-Control public static void setPCLincense(int Matricola, long Parameter) + { + string Licenza = setLincenseFromData(Matricola, Parameter); + Licenza_Registry_RW(true, ref Licenza); + } + + //Gestisce la creazione della licenza, da scrivere poi nel CN + public static string setLincenseFromData(int Matricola, long Parameter) { int nLic; int days; if (Parameter > BASE_TIME) - days = (int) (Parameter - BASE_TIME); + days = (int)(Parameter - BASE_TIME); else if (Parameter > Int32.MaxValue) days = Int32.MaxValue; else days = 0; nLic = (Matricola << 16) + days; - string Licenza = AlgoritmoLicence(nLic); - Licenza_Registry_RW(true, ref Licenza); + return AlgoritmoLicence(nLic); } - public static bool getDataFromLincense(int Lincence, out int Matricola,out long Parameter) + // Gestisce l'export dei dati partendo dalla licenza letta dal CN + public static bool getDataFromLincense(int RawLincence, out long EndLincence, out int Matricola,out long Parameter) { Matricola = 0; Parameter = 0; + EndLincence = 0; - if (Lincence == 0) + if (RawLincence == 0) return false; - long szLic = AlgoritmoLicence_Back(Lincence.ToString()); - Parameter = szLic & 0xFFFF; - Matricola = (int) ((szLic >> 16) & 0xFFFF); + EndLincence = AlgoritmoLicence_Back(RawLincence.ToString()); + Parameter = EndLincence & 0xFFFF; + Matricola = (int) ((EndLincence >> 16) & 0xFFFF); if (Matricola > 0) return true; @@ -109,6 +122,140 @@ namespace Step.Utils return false; } + //Elabora la licenza e decide se va riscritta + public static void ElaborateLincense(bool bPC_VALID, bool bNC_VALID, long PCParam, long NCParam, long PcPLic, long NCLic, out DateTime newDate, out bool toRewrite) + { + long newParam=0; + + if (bNC_VALID & bPC_VALID) + { + if (PCParam == NCParam) + { + newParam = PCParam + BASE_TIME; + toRewrite = false; + } + else if (PCParam < NCParam) + { + newParam = PCParam + BASE_TIME; + toRewrite = true; + } + else + { + newParam = NCParam + BASE_TIME; + toRewrite = true; + } + } + else if (bNC_VALID) + { + newParam = NCParam + BASE_TIME; + toRewrite = true; + } + else if (bPC_VALID) + { + newParam = PCParam + BASE_TIME; + toRewrite = true; + } + else + { + // tutto a zero? immagino sia la prima accensione + if (PcPLic == 0 && NCLic == 0) + { + newParam = BASE_TIME; + toRewrite = true; + } + //ho creato il file? immagino sia la prima accensione con memorie cn sporche + else if (NCLic == 0 && File.Exists(Constants.CANDY_DUMMYFILE_PATH)) + { + newParam = BASE_TIME; + toRewrite = true; + } + //a questo punto blocco.. ipotizzo una forzatura + else + { + newParam = 0; + toRewrite = true; + } + } + newDate = new DateTime(newParam * TimeSpan.TicksPerDay); + } + + //Controllo dell'orario per iniziare a gestire la licenza + public static bool isTimeToMangeCandies() + { + //Aggiungo un T random in cui inizio il controllo: da 10 minuti a entro 4 ore dall'avvio + if (randomTime == 0) + { + Random rand = new Random(); + randomTime = rand.Next((4 * 60) - 10) + 10 ; + StartTime = StartTime.Add(new TimeSpan(0, randomTime, 0)); + } + + //Controllo solo se sono dopo le 6 e 15 + T random (CMS-Control) + if (DateTime.Now.TimeOfDay < StartTime) + return false; + + return true; + } + + + //Controllo dell'orario per iniziare a controllare + public static bool ElaborateExpiredBit(DateTime date,bool NcExpiredBit, out bool NewExpiredBit) + { + DateTime LastWriteTime; + NewExpiredBit = false; + + //Manage Dummy file + if (File.Exists(Constants.CANDY_DUMMYFILE_PATH)) + { + if (File.GetLastWriteTime(Constants.CANDY_DUMMYFILE_PATH) < DateTime.Now) + File.SetLastWriteTime(Constants.CANDY_DUMMYFILE_PATH, DateTime.Now); + } + else + File.Create(Constants.CANDY_DUMMYFILE_PATH); + LastWriteTime = File.GetLastWriteTime(Constants.CANDY_DUMMYFILE_PATH); + + + //Manage Lincese Expired Bit + //1. If unlimited + if(date.Ticks / TimeSpan.TicksPerDay == BASE_TIME) + { + if (NcExpiredBit) + { + NewExpiredBit = false; + return true; + } + } + //2. If limited + else + { + DateTime SevenDaysDate = DateTime.Now + new TimeSpan(7 * TimeSpan.TicksPerDay); + + //2.1 today > Expired Lincense Date + //2.2 Expired File Date > Expired Lincense Date + //2.3 today + 1 Week > Expired File Date + if (date < DateTime.Now || date < LastWriteTime || SevenDaysDate < LastWriteTime) + { + if (!NcExpiredBit) + { + NewExpiredBit = true; + return true; + } + } + else + { + if (NcExpiredBit) + { + NewExpiredBit = false; + return true; + } + } + } + + //Nothing to write + return false; + + } + #endregion ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////