From f9ed7dbf6015305de288e959f5ea8ab15a75f145 Mon Sep 17 00:00:00 2001 From: Henry Mao Date: Sat, 5 Jan 2013 00:05:19 +0800 Subject: [PATCH] Fixed oversized Gui and made packets work --- .../assemblyline/textures/gui_encoder.png | Bin 50500 -> 3712 bytes .../assemblyline/client/gui/GuiEncoder.java | 34 +++++++++--------- .../assemblyline/common/AssemblyLine.java | 4 +-- .../common/machine/armbot/Command.java | 23 ++++++++++-- .../machine/encoder/ContainerEncoder.java | 10 +++--- .../common/machine/encoder/ItemDisk.java | 7 +++- .../machine/encoder/TileEntityEncoder.java | 16 ++++++--- 7 files changed, 61 insertions(+), 33 deletions(-) diff --git a/resources/assemblyline/textures/gui_encoder.png b/resources/assemblyline/textures/gui_encoder.png index 6166e33ef975289e5e97ce3262571a25975d3e1a..61cd12bf269eaeb8690960720bd187b7009a0062 100644 GIT binary patch literal 3712 zcmbVOWmpv2*51P)-4aqBIz~Fr&@gmLNh>`d(kLZ3NXG$@jzJLV5J3i!4grawq)T!H z1dfED)aBgo{*b8Rp3_GaR)bN@6@?)Th ziKqlRLjkfll4-&<_Lqs_g)wpcr^~^GZj;T&8$%cMQwq4s19aUmVLK67x~90HB#Nv| z~aea&osg+6h|$Bw(DB2(;_vw2QDrUs7(V zWLZN{5s-Gj zcG*fooq<`5Vqp@LpAQBB$WNxbVta5NfTgI$Vx6!!$T+6XQ=?Cn=C)`u&+lmJ-v z3mv@>5UyiF$r7O4FJ5x*;=9}>&3||t?_5i%R1fkuXUz`0{?bOR;929$%=+5ew05_O zm0iDC$OW?VUc1@(gCC)CXU9jMTUWTk#B9Pe@J~K>4j$?ju?#;aj^FIKeBvX5qFln4hy5@26wfvCxdF;q>$x`ocU8HBO#15-dx-#0%@2ds zC^H{++z@CdVClFv-$8n2D;1%_)!nH=r9$F}V)3!%uY9V)7d2GF3bPgdq{J%GZs-z~ z;zc3UY5I;r-iz|59Z_BfUvn5SzH%SYbvyRi7>IqGIcFjfLssModxs`IO*|Ld#~4~e z4xMC4O;Mvb6E;&#)_r*&Jb1LV`uk+rJ|On=EUH;UG&QW&Q2rBHJ)*Hxnkhp4CFzKx zpJ;XxeSXe}&s!$>1gQetNQDdKY?1<^SET*R4MOqm2O>f}T`F&W7a&e?7!myKsk|EV_sw5w<1B?D|x>c6kexK6b$u}+3Im@2MBk zZt7=@n2il=YJAD~0zLF6BafmB?~Ot7G3MMLyn$r&zwtU#x0rD}p0U?NL|Sw^6PHDq zSXO!o}Q6zUZGiGSfR1qB2~Rpf-Y`RYqB^EqfqYE=C$V4Kqg_Yp>f7D#tS7R zCG>joGDp=y2{Z5}1NnR%^uQF*$aC5wSAxSuQ`!sjOE?mtV8G|0>e>d3eV z=E$%&@t=kk{d_m3MbV6P^V0A?Xh0vT6OPn?!Z0@dN$cMx9 zO<|<@FxBw1_$uc50DreD+Bj!i1Id7F^bJ3ViI3HJIv|vxAe6)0v(VSFrtNp+ZL=IS zc7)EU%jw)HoqN42wd=YYJ^x}*;st-6g}CoXS0CcD;rgf|>5DWGx24KZ1B5{svL44N z>>!+MRy9@AP~=~JY`4dt@Lj>@#j3)pob;mDqQ$*I>Gp=ch5>^v&%Aq)ONb|&myVY~ zm!qHr#SKA1W5blgtnf}xf*!NCB`V6yIeo94*-=i&Z&apJPI_APbiJdB-KFpAvnuvu zTqZUd>q-%MJM_!s2%+7EU3^z48E<5Cq*;_=qF0PL)2L{Mr2ptV!gopar)s+DVh&Q& z0RCD~TN0*FE_7dRR{Fifd&M3hXN$oJbF{hE105E)5Ug6t<3a1v+0H@q3VMZfHJBk& zxX;EbumIb67+FGJCPX73ldhy2qyKyApUPCQQu+k${p>;Zdp4m}!JH z?56&{CQL8r`PbxT$w00T;za`MjS;+M&zg0~br*7E^60Z4vAK)M%e07wKTm$b9hy#><>#29C>=9FR`ZRP%KPwIIq$$Zl2y8Ex1#P4RLZ@J z!@%4p3@UcaGO9ycc!KoY!tQqTKkcZ8xNVb~lB`FDY|l^a*cg}#TP)Sv{ft60E6~Np zRnyKfWY9gC=9>>#XO8ylZ_AobeOp%1-RL;%Jm$Q)u_%~lMUh^fv5`UHK|VA4mVD{X z+nuBDYIDLFLws{h;TS|?VVm5$W~Y*m*dbX(lUF8(CO=K2cE=X#?WRsVMt7Nmo4-qZ zotU#~K0a6Y*g9tlG1Z%Jo^U$VI;}fatd1?;JV`%wx2e*1_ulD+jzP}}IVmtxjh`l1 z$K*|nk|u9$Yf$w5)_Q^7^A{wSA~*dbw`YaZOEqw9^O$()_$Il`?4yL>%4Ndw-yX3d zS%vSbWbbFI=NM<7TG?B@HyBhHo!nXsI@6f@jWSn4&LU9zz~rOr?B>()6y*MJ0y+&H z5-Rj#-gfRKCK%^{UAj-{x%ZyRZ+T4ZG9D+}EQ__?f9JPfJGXw_?44QmYnglQTYg(| z7b)Wgy-m4I+0~8KZjHM^E%m|9$D7P~(%6N=mcVcHmy;8DaQTIngCNi2564GK^b4Ur zyyw_~rWt?U-Ku7T=6i=qJIXVNh3E-ItBd*Rz4<5i+x_zoM&~t-2_nOXFOrXvC=u6^ zvXTa($fLINepi6QR}_8DH_u8C!;Zr|c?=gXF9xa^=!HX1Cbp-rqnV=x8T%P2ZSIeY z&bQjP8DG!!boShA{TLuFdiU_o=}w3Lyg%z+;S#06+GDmSe3vdi-W(Z^l$@q8rlefr zLo*M~9K;3ZuI5cP2TdbA0D`yyK!pSFouL6=R_=P8SyVFEYi7+v|Ha2EXRS zfTAc$Ev=U!!vCD;gG~?oObw{O)kp^c_HtHTuTdqr5h&H0yWl(d@L^F9{;vf4OO0-`_V19xnxo0wMfhF);9qn9S8XH@{#hFa&lirt`&WpE|LL&kP3mML zZFdX$Xj17GsOB(k+|`S5Tte+EFjg;m3i=>1;#P=%L!0fJ11eUwfM2Hiwz#ij@ literal 50500 zcmc%R18^l>zcBh_;!JE~GO=yj6Wg|}iEZ1-Ol;e>ZA@(M{pESy_k8Dkrw;C|@7%gw z-L+SGq5r+s>RqY)dL{gaoH#rz4lD==2)v|(h$09G=w}iX1RC=5L)-C}>E{QylaQn` z^ylUcZ5;ObGmO22h7$+~Le^ggC{&Wt=I2Q~XHj)$B|B4RHv>l#5J6)*LlYt~3r7<- zJ4Y)gB4H&~hsJ$25Rfk+_KvD*?pYUFvkLtTa4xjbiC*FFuUD8ypFfIyB75@x9^t+uXKQ0FHbRc z56gq>A1*gu%iV5(&V8-Vr0i$aw?%%q+^fOr-QHa*ZPylpYp0!O5CnQ5Z&&npVIe|4 zw62)(e$o<>84FDNl*V^XC_~5rxMi^Ur&gMMCHyXdr_u+ggg`c~4g4Q5o`9sE{mXx4 z8wILArg^J;2+mD|LkTXJt>d{6J0&>DW6-D7TPa^V)&pC=@L z43nmDX_-RR)2*5U%mEGnDQ+Z_wrC)xD-nwMDbQ&GmU{%UM)`LzFm+<(q-Xptw;t~} z_qBQrNIqc>ID8jOG0A*+D&4+`Og+5C2Lf)$FZmS@*tHK2H>xaw`B#!=`==762OBR+ zi$EBkwN+y%7Lqg*$KS6nP>kwdpMZ`aFYk72Kx4YY(UkG{I%_uI%Zt+^K#z_*dBX4V z?uzga5X8jbpPNI!yDRHwoGn?i=hr3;DG3mwj zBZF}}u<-S08uIx63`NZH%h6%bZe}%_X>xNAI)4P?bQBDZ7v^-&&~kI|WXvEIe$;lG zYjro+$XYcA%s!t7XfJaT#opd@>vLdj&~XXhmbSCE>QZb|D-9~?QsWP*R3(2M{2C({ zGkP<8@C@bn9*5VhXgXHKL}bQKai_n)o!uw=BzL{)Rdg}50mIc<7#WQ195X6CA?aVe zfPJ+uy3f}kZRQ=e%>}0U9wPb_#H-&OyDg5|(X`!b_koN-e!t@`QS}fo6_k@TQz}2y zkYM!6qltGRNG+eIVmZUTn8(?vgikQf&02Gk7|2EGtcmploV3OxqtCQRn<{stHl0b$ z)J;_4?G|}&jhU?Fd2CXrLHurV?X_?d8Q-Sy6*b>U`~#V>tU&N7YSt)ZmZ0}If@qf5 zj~}^Vi>ac^OkEV~C?D)1rq?JFjgUt#EY^tZS^@PL%M&Gk75^705O)T`$pP)fI&^ z*BN9^?m>iCVztRIi%w-;t;@VN9NxDWgZqRi2zEth&436PG4UK7$Y!$Z*(?0qn;PL& zzYWQFKp|3fv-!N2h!M170Go@$2KX3IJK_>sH{((g85O$wP(_V$z9g;{j@igGg@F6a zO-eD}wiQhR%d(7wQ{=Xr*u1MesK_n_i_?eCF@RSAWh8DLE6zNThEV*c-9#la5xZr| zHR4a2M(O8J1(PsBvg}Bz>%BCE6S+JtwIR1D8q^kS5Zm=}NOuwY#bc+4bPn?aBh_Jn zl*9ttL!6Nu-Okw1quOGn6N-?-n)##R-;ByUoALt9=t58=BW8HgXV0dR%WyhD8MU!Y z_!@3$$pLbbk_~V=At|!6b(ETH7h_2vyZsB8ZA?*&h5fJ`d~lWMYA=OEVtYT(*3m>+ zW(_II+(c)KC=}5X`^;O>#Cf5_rA-WevPFV5U?<4jSeJM-r9+VMqJSl0WiKW<3VCuV zNFK&gb+#m_rqt&gT83w1L;g9PdqIT4I`79DQSdIxHIjq4tw0*}Iox}m_ z_uyH2oXC*F!9`Jqjh4z+pk$#67Ndokj8P6=v6gXpkaX;91FWXJsl6gSBq!_}~scE$5C;X$thq96*b*@5Rw^0RoP#;Kyp5%Fqd8O`*Z z!HZXl1n?9pv4kuS2p&SRiFd^DY$tlocv84%tCJF9^`Ay~6<1j5r3@xLL~96}PBoQ8 z8>+@StuBeEJ(-jNqe$A)m#{ZKaH*WfY8Rw}n0F{N)!}G1^Scl|xx7wl@^4q!9=v5J z7_-#FcJHu4kQf7uV;R?e)76jN4nwQq=u?AIiqtulnDV3slrjI{)d{PfRF4Wn*nl7) zQ_z7e@3(iMsL2ubf558AA$dK!HW=Xl&c(rt?z;n8vK#hNREUh|5Hr8al}_OvXG?pH zTd#QimADP*W5Z)PN5a zanc#nBVz8t(I`d+H@&|d_S-ND7RhKuPqWcP+BoDgTe<(Z|NJ|HSOCbML7AIEo{)(- z#<3f_ax!2FPKmntv|BJ9C}b(8>`XOfp&ml%2r9YL2^gPWE_Tb z8DGeL@HTybiuGp)8$-^K2DAQfO;&m!3h_>dX{4J3cvpqnt#~w*x1L~O*tQ7v6&-Hk zR#=8IuO{~kuy`1whG%yoE#;8tu>V0Y&D|ap?9p;AwDZ=~v)G!s_tp6RSdmBvwkVNl zA^jA4noSx62kIII?3z@Q#fgnIoQp!nJSlPu+QTbfPlxU&m{JsaBV&WdjB(q1LlN4j z{S;4zdA~XYkbx^2ew_+m7Mzqe)}d9BWHbJh5*~yW*?`Z?_}W9SoTtYzcP?%c+hBU? z&)cGY#a`0egy((YQsGq!NNrTR$1+Hqwx|nszyfuwm*B2(W*YJ6i{k*zx%6RYPbver z&kt{jv4CC8kbKj0G-2-Wd@WERt+G(X!VtNSrCQ4t3^EucGt01If6|LiwzIB7!F^b9 za>?6Gbm1k7U>3=jlY*4ys(8D3b=k>1$-5afWU@(rePsIA-aNuzJ{J?|KJbJgc>RoS zA7WV~7Bhu-B|P*sh;&hKv%k~rt6CpbZmOJytp2fbtm=zm znq)~tPg1TqZ{-e3t~s5ExpLqQ4`hM#{1ovf{PZ`c=)^g-sbo4cA8TO|n;Ve)BB3mb z5)MCCBy6t#3?F~WAM>*Rx zZW?Jz=Yb)Yhi!UCs?ws$+vHpAo&=2wpY3c^-)KMss8SPHZo)o0)-{!;Z(9_CbuwZP zELKw_6nst&RocAtpDt}EVs_vcqhRXgUS+akVwJw8#H{n%;=&Mbzz>P*hXXW*)s5`@d1X4-{R0G3(%&@a-HLh0@m#L%tFNSIU+GW@!P7P2;{tvLFHRXu7%Ki@_1TPnlNz;H7$s@%7<@VN-tWX{oarkbZfK%QIs z$*>#FwE~S1+=$LVf`kv+FwB%ihqz$2NshtZiITu;67DNnD1gt>!Ed2oT8zZ=G7jVT z2lz(|ra10ElMhI&thwU*gvL?2r|g_XqJ#rd(+Q_VEasH>L>k-HK#6yiFx{j26cn6K z&Mnj~GN0Ehzq{a1{?oZo!uV+@;gyJD`DS&6n{Faksr}Lw0JZ%kdX~}^0I%|hHExU81?{b4f1=hpfxrw4FzMbM0BkgFNy-$b@E zY;AirFuY2>e^tB`Y0X%YXbLeVxf>ru%QUAgm^KA{zNwGee<(6l_^lB=b4k=doRO(( zJxrN9DEN<@prryKD^{WQz?oO*37VkbujE|5DGnVuGk8=irO2A_`Md@~>t-6$zX~t?<=(-B>MK)A(t|W6f-+V?y)_Pl4&g?^$5ZQxTVBhlG8**BBsOYMZ)!-d$ zg5`+s@!BRd?~ejB;Lrax*8z~`Pv(ZED6mNsR+1iTFla|uTI zG1)XCMKRsC{Jt0- z_{$Vy5Gjf3mms}@CYf-iHVuXeZ$~bVI@+!D$j1cgHKfU{;V7dC(Z2gtFl{HnOR7C? z9o7ysv!G6`%qFch7Axr4qY^t!>4T@50#2ofPnc`-ZWlOV{%Q^o8 zgy~fzF+>lZy~l4^9Gge%RWjf6CY(~R)V8jkY%$+HR-FIf&2shOS=V@Q9bD1c{_Nie zaaywDr{sHqQeuDWzqu$_-VEjMj<*8v*QNr9tha~Nd+``M4byTG+P5il(c3a-z4rKZ z3yiBqYJI%FJ&;e2JditAs?D5r3FI4?Kc7eB`q$Z^y_FTTOi=tny^mjqEToYQn{e031 zb;AnhCfGNPSq7i2I2*(%h$ix~cB8Izw`0lY%Ok#-ez7MZJL%Q1ZGy0F^LA z?sh6%Q9>CdT2dg!W=tXDw+X)sdRi;gl6#;!FthZgy z$5LCuuEjiXA7N=-T#Eejn}(gIkvwNrWu69HSH8%Fj!-5^8+&3T*4ZCpEyqm#;H%@V zFKUZ+>(eO}5e9^gg>63lTmWOcXzU@4h1Sir&wzIivh0^7Ytzc#3R~Gr7MN$n@|0o8 zsC>4>YBM+q$;S=Rg%P%b7gjSqu^F1_E`;+XXYE$F4=KcrvE^vnJxR82ShaVSrREx% zg%@Ur+hlO=pP@D|FElubfcuDJbS5mkXNTuzKi{Zv>Yt)EFhed4$sVt}gHB~(Z~8p* zS5^m(YZH!Z)yNb-#cxg_SKg}gA18KS*t0h6UHezz&8h?HA42MjvuIDGaRSi?ic>xHvc`dZ;Z&{70qK zK1=-_#Jfwa(`TvF?B#5a<-cNu=l0V%-!R@%F*%+b>#*Wz-#rhh@1~owWx6`Z+9X+n z2pim@+7OL*bZuBZI~!0rGql?3+Z4GNH$2-T*hiVPqb7S{Cz*CinKQa=lsJG=o7u`9 z*wmPqNiZkuE~VgS^QGO)WHGdLuqF4kX-mZc2Q9C=bg+wwR*tT!lwGza2CIsy0(Cm0 zo?|FwB3X9bVk-i#We*$1t5G z`iDxMTXA|aK2tYB%oBtlH<7>z>pClzO(N*?#smOsUGYVR#RtE%7(o->X zVb|y@#pmB9Ty*m3z^XqayS9Ta0v-1B3}g{&%r5%2BYa$>I>eK+Y>aXY_zO+_s~q5ijFc97HCFhbhA|0U(1+k08b*#N>r){4H|b8bahI|hKiUouvusj4=M`@1qSTmATzNRO8ucypDCtgplAF~z z+@@?Vsc;*sHW61G#|;J!882~U*k{?x&8P zv)JxBN%#?_0;kHcFu%Ck8u7S=)DklCy>TS4boCcI`qxIC?dVI0xG-dG&`m+6VaYmVVU#czfWs0BYSQ>WRmj${)vk8n93Efa^zr(wo2#DHGs>Qa;%Xs zc=SnbxN3J7d(60}(KseEUw|7XMcq%eF}(;VSwXQ-=4z*xVy%ko>kCKfI`VZ8<-jxw(X<6w|vCCn`-QmBx<12~c=n!s@5< zSaXGOX?gX!%RI1Gxk(Re#>}7LitP*smit#>G0ke$g;?+!Mr9`)_p|tptfoloH+bkl ziuj~oNnq0XiB@{c(mZ6wd>XjTmtZCz)YVvobf3uX?FsMTl)pg<;J-G;-lfh~1V^01 z&5cBhqU8ajYVq`P8^#Tpy$*c%`X+iZzAJ3R$i_v)+|JY@wwil+6tOroaq^jJa(E>r zk|e~9HSglVCrjS@@UDnI*nAnvyCC=j#H&Qb3En5r3#QPf8{$s8f@B8h?_S>4TQzdu zuGhfSrRCGWWkIkgY`a)9p0tNQh6Iy96Ct3~kF>IBk`v(*7Vp9o4kCsj_*oIqwkE8> zZO56BiXRd(Ujg(K+s4`lS^)6o68>b?!7W$cAl0nKTay+$U=-ya1$<0+k^USJ?D{

k29`l{(S-oJUx1)RUK=d(AhQc=dG;lH|YJ&LIdvWmX=2iY{7 zl~QmM()!?Ec+~KHA#S>*e;iVId1}3%YTI~|;Us$U5z4*!;&SZElGlQNwiCcEgu4fQ zr*Nf|M*jpB|44sAYz#zo^QdM6D+^)H8_G@t5|1;s^}!t=8dS^U>Aam}>Hx{^J>i+v ze4=J&PqcA0@{$w4r!~vz!%M-l5nHMPa#rD)S(jI#A~kD0f4>K9U^ecsPVwpPM_gwn zl*^ZCs+sznQ5m3{HG5-E#6Nkj{xT>|)2s5>n|(0PP(LHPcSAIRMCLyTveS-M@3fcB%+HtTol z>g~%Y%!c%>F}G@c9;${heUEnXlr2~uy?h^#a%hw=Y?3?ia^5sxV$Zr7@D8X81Z2fj zR#R;?z?>nERnRO1aYv|P1Wan#EDC$d`P|$jE+(5 zgvvuiXyiv0N$Ei|v=LM3pGRG;GDk92RpBd=)4$Dh(fo7i`d1+F`9y7S)CcD=ojEwD{S900{I5z`^p@n#pn#_vO@|}% zkG5;DqepL3=y{j9&)=aE8?ly%FGBfl7^RSCvsukHORcux@a^p@vW$Qw4wO)4DEkhS zxXik6S+qgj_uNU$JY++~Wh38hmHH~+8tIlOGdnQe(Tx|5J{p>$a$xUHP(?7doI07I zUn-xeML^5{VZ|P!oUp&-cB@R!FCiAxJf)JEJ zb|U~CYHRZF=BrB^u=+lrK1e8h@%vfnD4$N3VR$Z=9iaU2;gDxh%{O}8L53msnJGLQ zu%Z;cY~C<#G;QPek7sq@^f&inb>qv$>=K8fN1G9JpVB}&Z*CAenj1uAGj!b*vI(4043)NV)zS>{d$@{*<-K7Kfit3jSFoZ~)C;njI zG8E@3Jr|zg6%PyCN1f}~PbA=D#v;hdn`cwj#v^cr2`9ua>?wZ!7iTB|n78YZOFMgSKM)s)-bj+$ zDf$yp!MHMclLx`1uuEY?E2UGsT^fZ#&9b4w{lM#<7Yjl)hq-U9C8*rY_wB*}(DwSo zlgYc^7C4}1tD5b_b<=n0)!gqbn@uG_E#zL$ZN+-e2H-SOy0>MTqV|D-3RkWU_MQmz z?)I;+k&G{4VnFrKF*Vd zBAQDh2AK(u!tFrI%`N_7M70Zy#YrHx|VA0O#79e+ZVrT%F zy>FDaFvZxVXx0&n867Xc<^1c^8M5ISKJpUA3k1KMi=^mLj?m%HeLNl4r)H)xl1e%PA=k4=Ih=xvy_1^7UQTO4z80G_(*gH={p#a^aTpQKpA^4RPwk0wu8eItqt|pRPs$W z^EkLI+?T42vLox)Mm$XI3xWl4fTCI?ErD|9E`5xA%Xj~BnoaYT57M5`6 z@=vHUHo-GG25A>e+CEB??9y$fC*KyLe3DK_+WITdoTa1+Oiq{@tRw!iOAECUaA?Ak zu9;+mC~SPyo*M)6%9b%g2u769f|U}Af^ZCBg-+@SGST?5G&HgCVvawY9GX;L!5TF1 z@+RYqBg~j5>nCX#PUErC22LtUl2A8(%qszY%|%LEm~ftHRHdw>8|3BCWdrSh_VP{m z;|+@Aa6O`xn;~-FX&rPMw@|s3IG3i1A+r%_7cau8nH1j3L?|MHc{wM%N)Jftp~|7k z&_6#9?ithImsTQ`O3N7N>gjXD4zJ~C%u5;x2mFgy7SH@5&0mc#L&}W)UBxF^rMArf zmLM+n>6Hc08g2#W!YN#FSO2M4#=@krr>%&$h!x1F4ZN?Jgg5x@i1@%LRYaWTY1}a- z!j~Bfi2DlKd(g%hMn~2>=>Xd7T0jWsfB(y<3v-B1wG>| z=tdwEdlxPUoLAa~BGAW)Nt1_NEoB+tlnXsGF4z%lYwWR`km{umIuW{eI@Vz}BqghV zlZoJEj6?FGfu}*Xh$uj_z#9P7SH4G9d9S;+4ZWTtT_&{0)_{2nmAAYz{yLeR+S45M zVFVKuZ>+kr&S*Me5@?mV*mKxp;fqBg2=ZW9@~l80Y0yb=0){|O75b-6POa#91&&>>m0vv^4<3rK@V z&`VZ)@3BwiEy%c!lrWoF5HEN6m0DnJgwiGR*{r-~Y?s!T0jA3%9WVh$^hFbB#cG~Q zh~PvU!;tUC(qGc%-96%1$9Vt_yP0rEt;vqmOwq2NS>PZuTZ ztdcdvm4=EL6UgLH1PZ7Ueu%Wzq+d!H_J%q~RRzqu2BF@7z3_#$hDk!DIZDTJ7;Dx} zdCY-|WsZ;h(4sbu75;ieyZH#(9D}5ECAxCn=7ga6qR}&>#(4fm(tiVq=Jpk#_0&6! zEju#Liy)@;%6?IN(E{=XZg*1!@ov=U4z6k;<7iBc423#oK=E)NW0E3^Mgo_?gqvX# z=T0a5uyp*SNA(4y;-^8o`^?Vi?*PuuqRVj?dkMEcJ=n|WXZlo$b8%D#>ymP=FLMgQ ze0~()pFJI6lU4%_vB)!y3{_=#Vq_PSJM_m3`s;LLwQ_@U?nv91>~6%xs=tz$uHB;S z-40oZw}~L^5it%tP%$%TXi8sXI;_Fa2-%Z|?C>*&)knrhjA0q-*Yp`KBZ=3qBv7$;5Sxs}HoWjG9+$AT2XyZ)`U9Da|H{*DD zG$ig-E=6riD*JTg)$hMo0$79dn^;nn>jdC2NSM^kvy(9suuJipICS#%WJ)*gj=_EUCkSyYW*1FGX82)-pVk(1c zXQ;%tOpNJ8bG(ngE^%za@egMV^@-Wp6+gHGwN@43b32WpZy8oQPa2Z1{ZQN4pynvu z`ry=@6u(wF;1UKQC6`Q`a@?I@V{YfwrvGcP-(%_?JV&2-yaVS+jbO_h*fv8&AdhUkept z=59!zXe3MDw4XG+NA!;zAuEOaMx6XjL31B)vR4O4x~!AGYX~|0n#mF~XAOD`g0acH z5WPc|q_^$nF)&QfaZq&^<&AIpEwLUgVHI{yjA{XOY*^iot;xTEv`2LwxHs#$cl)cQ zLrj}>pb?!bc*g03$!az?b}9_u?Oc*`Vyf(1FXrrqb)!q=ylm$%5E+wef>%x6z=^)r zfxL$A{b0c2hQS4~o{x{s@0Q|Jl>_2KCBQ#hGn~)Xn{vRLG@_NYw(s<;?KN;`2624G zs%SK8MB$|gx8f@=@6C*|Ju%P>gWdxQIe2D%hB3cH2lzfH?wuah63 zk5T9&V+wCtD#y96zNvJYRjW+J$&c;9)B>VAmyD*`ZXsceEm6w4p2LwYA(GY#!-IXj zDe*iq?_pU%4cqX4${n|?*oSV7!=(QAV#^{w*L$*Jo#!)i2up~hZXMu`6I!IhoXAqmY zmLua`UUrb<;7hlIC#=q7NGkA5YB`=nQJ4wQKS5raNWQ+8-D*zXS^z(L?lZwLr2Snc zm$!!%^PuWm*St!UF+6`4I5uw1pBKjgd`>_{!4;G<3&>)THH)$HuIknJDbCevT$0e zMZdp|5>psV!SM~kU;7oxPh7c6KkoTlxZU7_p}YFc zkJS;f3nE;z*^ntS4)DZS@3US@t+)535BJdKXxhten1x~CG3^pth<+{NRM(fAAirpv zkuLsJLuRZm+en+8OZa8vaw6dm+ZK#lHVXU;Ayr{tF8GyxcZ(oF{+fN_i|RiKFr3hq z-t?GuXzHKXXYp?!5ch8gykHTg_WTE~ZQ9>UajaQ$w0#r5!y1N8HDbYV{y$U?dmk$v z0|eoxPyft6eDIzMYt0s`?VB*L=Wl7e;uNbM?l1@j>>2;1eSfjvBNd019Y=eK3jY52 zKUnXRB9j>!mKYk6@<~4~bC|CRFj)UVisi;;Ho_~dqaEdAQ%~t0%YXSJys)1R+~!|& zck(v*Nq3)28B*9y7xPJXe}*`g{vGfwMmubXe=^|T@qM^3{)L6f`RvqpRey;e?i8Sn zqy4jaE0yhkSBl*1gkY9VfaXzkmo6eHzpztRkGx6~Q|k`nlFU*MLksf>E7jari*d9Y z+asqwi6F6B^c#OmfKP2=3wI>8Cd$SB6WZbMP<63aqSyrO)YU+>?2}?3k-o|jFCR&t zSee-JQi)X)k{?B(RnNw2M8jljebWVlO=Rpu0qZO8JbM^65`u2#5O0j-cP>mT1EXkI zoJIA*vpO+W!9al2(l25L`6gDXKYEE~9sh3~kg?l_yS6MnR|`?;6XM9l*8_af?@Bci z=Pv`HoZm@tL+>s3F5dn9owGJ-d?yD4uZ~;^>*~6zz8X- ze!Q`Re|&dDgcf?i2p$0~pFJyZi)`NE4_9@Sz~^iFdAn+*xQy+lyp4G#^Eu4|hHuX;kB=Gnf0u%oUfkq#2!;hH>ti0hm zdR-~!ZW(5;J|0(Sn<{|pI;%0y(sxbQ?~NS_&vvq=orx7>H*^{{-*7sHehc~eS3XaU zZPt?57~B$Qyfuv^&sc3Ib{9Zew5kmqetYbGPPVWf>~;o)jUp@5 zw_wj5K5A=-q91P9n9=eY%_jf(txGIP0Fy7sS6y?t1m&FRs-lQ`y;g5w-Gs@Hy!Ni{ z8zd9qCGl)xEEd$4$``yyy^7(v#P0dmj#O-^ZIQP*;j6hpbw#afU4hIEkq($bD-I{F z)PYR*AcRjZyLBZ^w~Hs~;cfmUd1ef%F`2o%d~Be{emS#DC{6I(uxj3*;6!785 znq(P;xt(rh*EDZHVBX5ohyiuqAZp;BHZ#Jy?S-;}5=o}3PmtUkDJZirl; zVO&t1A=BLcy*5T&cExn~eQM+L)nD2ulkRY%8SpnW;_0LBpSsb%i*j4%$AA%<~Do`^cVaf7;%TB^D+8E#^5TX6qVBaX2!NLrsfg zJUOxW2T`(($P?H&L;*I(S;Wrx*%tV{&jjFy0wmwJi~SBMmi=GfUU$-uW0GL*yW!1l zDIRB^9(M2-o3XL14zgm;4MUv1Z){iTM;{n=40b275s)aJjWr}Lc6hX$QTKhMI|^LB z1$8YzOtD^uxL3?$(Ay6GF}c0sSQ=jM8J?kTpw!Mv{6IUJeHW+!K&+C#<+hXyv99aE z+xQv%R^0AwYrXQ}N13+k=PLT(Q}xrHTV=jdaZ0861`jptk;$_?bTev3&=}siI?PcY z@&bl&ge)*cvf_=PyGvy#^WtIJKCgj)q5S=OB@9W)GSYG@z3hlpKbidvTwdys` zV7*Rnm|pv3bAEK4^%Vz%bv$L%69NFFDjyjFo!EszO?JU0f|!aOae+(92P*RvkF|31 zWP-rMU;J_eI_(dCIiZA5e-tMn2`0<8%^}?tDGgzs!iKKzIVjG2JC+!prtA|1y5wIm z8Vw&5Utn6vEqkq^e027?-ZK-de9Ju9O?|G&7|BdOop8x(>&~RYra0{hH2$$zXgU4{ z&>dJkvRiArm!2K2t{7%Kgo!2U7B_`9dl%Y3up{!V$;C}F}lDLx2_o; zQ21P~<}1svZKoxJdD)UGDfb*SpUNInwVrw1V0DlkT@nV|O?FGxuIyLUfN!v$Y z8vrY=so%Bf73Z0rVjVy?G1F$7zqu%;Q!`um33LV#1Wun?cikQP`PR+dtIIA_RJz|M z(>>t+gXtXip3-9mmOcFuMV3vgoLEMzdQDG)0&5dEAKfg|xv{juwT{@Pny|3={k!km z!#xL_3!0*uW(e8~utTk;R3(<*)#66sVmC#}$NWw5tzuwj;VjDrmU6$c!II zrbcxcfDSS>o%*@@teufg&G8Lgu}4VDRJqQbdNCrJA_%lmyiE*{Fn%_8*t89CBH=tj z=f`Q|@N5**B}dfoAt&9NMBV+Ru@w1VjRBh?ne(cn&F1{>jNBSgk=2&8LdmMb>q>NX zJYF_l@o>FX*@bpH`__CSlt=DRsriwrR$t%Z#_EopP4}BdvBM}!3elY15)L%wyZlaJ z_8djuO`Q_}k_>zCSpW$VNo7+2U+0~AJ(OfU)ad3Dkz^H?op1bOmn$)H z{lS6ugj*!fz>+p#&_jI!bQ7Ea!%ywkKQy+J757tPIh@FI^jp|lb)4G*BZK7uN~3;) zxxSf}U5AZ<0EUCpD+jStmj*KlbJjP?@)w%BiC=D9I&qq0*#^B)9IWhsVd15=}55hVI4}Q7Tn!hm5 z52qK7diZf7!ah!iHb(+(z;*Mvu>=|Mb~53fMh*|gVOV^iOLvI-Vcz88W&%2Qe_|N9 zpLTZA`L3TCFp|ZlCsKRa_k;2%!~5a`_6-dLIZO29Ef|B|5MRZAymN(EX)9jNSEIUb zRPQ5v;l}z_Kt9tFcmomx|EWLs=8RZ{;BEUxEjHcUA*q}mtRZ%RjK17ic>Tf%gj@XNh(7`njqY3p0opX@AYXGaaA=kD ziA)Hq$p08YsKn@;Qh@uLS9Baax$B=*A<2H zr`E#?lAoCN>i;~!Q|jcnG@RuYT6Kf!fqc83`I`X+$~d|Bpb@ijA00rcX%ogZYSjdx zI1UJF^f<$9S#vW=kZb5l8nvk2cyeFb`eWB^tfbOx>%_N^0bULwGrofBSm5dO?{QIt zbVIz=Kfn{z7H{<$Tj-(}8$~(XqQ$yI4b?xMdpYH^25j$^geQnuuj#BpI z5>tT(AclJ#mlWoL7Jjb5?D|}m`MHErM{XP;fC1@za{C$;Byb0LtUsg@=NEE^e=Urf zY)0B7pq-Wo>X<1pJ$rJ5idB8VTO?O=2Z#5MX`LZ}LC9n%!_WKG5}j{pSCN#C#{Hzq7OIIC-4V z=PGp2e;tx-ivOV@+3bbs695tIy`V}iD!Wf^`bIru#B-p(Gug-Q?g34LY|v{I<&b5z z?G_pB=k>n6zfAyqd~P1@<^^2b*v0-2p1K#Z|-hi zUfa1nH*>$Q;{z@bfUco_?f=o~<1yg*7BAQIMGJ8L(jD;MmjAcSYyd6X{yKPo|MfNg zZJp1EE`bf)0AS_6bj2mGiQ5<0_}>NkZyVVF+I(Kv@*n+}yOjoTx_fA=T3UO~dNSJq zy&4AW13%!@E$_y+CnhE|y+8-5FluLL%u_y}&$j9s1Pv7x$ z?th-}>j@cc)VlpI%lxA{;tE5ntMq@{U@kup6qjt-cJ#lv=)Yv~>-Qh5(f&6P{#_W# zI!(Ks^uNEIT;NamM62e5|LT_id3C}X1ILS$fA$Y>x*g;JD$*y;=DHsQ1h(;CM^UZq ze`pl5qvO{(;KY<9a3qN-zeg9vp(ThZO4!C_y4_uVl^E5i#$R`5&RP5uS_F+!02255 z;)E4q@V|F=$u2)2VEt-1mJo>FPOcK;mAbq7a=qJc*IljG4JdnB>oWUL<1B;gfAjB{ z-g~@G0kpO^#Vp#9`&Egn!F%!fzOO7TN&zl`)_$+|r_0-R+g%^;w}<0?uLX~ojn%i5 zRP7>uZt^$ z4`j@Um+^dc6j%X}e{s8lJMlQs^(&_(T3&0S`It~2-Sz}Ic}vc5>7Q|ueIZ#+P|-Q# zlhAug>+yKjNEmi)BVG@Gh&t4>8L)r@D!S|eoEivqCe^cS2utJVO{q|785LFWp74hPM;NYnDracXsqw8n>IT1loVB+Sned+=IqXE-ay@ zkIW>puTvho+EbqHvfrmyZeqPdJaV2~x(4Vvliz_MfIAFrzVEZK+K>3Tor zfz>HV_H^9qcm64z7ckjlyP_!V*pHDensxe%?X}|6+h)Q&g>`|kZC^G*Cw@ww@F|*B zB3$dP^W&`huPbKiL?q{~5XTC~4Ty=4X3h9(a8E)x=@_?{=d0 zojYAN{4qXWI#Dxpz9T*}u6j>EDeg1(W4j46smHT>4V{Fo`ZGU)rc*Gw^K#1cT{{Oq z;gt98M1G%bK7rvk_1vDR?X+8R+INtH`B5N6r&>J!^y6!0U2R9?{op$0@$1$p7}>nL?Oym3F0@!TpQAW#8({%@AQ_8&%C=b7(3eBEZ+ypKPzjk*b&d~WJx zyCT1KqWkr~_nVoS&Hs7dS%Nu17!Eq#=((pA(mlJg(lg_qxXr5;mA2ugkiNBGAA9nuO@WovAioZR6wbd>4@o&1) zJbFfK^AO27`(LbmbySp5w>PDrG)O3=poElkGlYcFAkv`H-5o=RbPLEJB7)N09YYTw zFm&V4Lk}?Z@xJ%I_kQumch|c2tXcESTFK&eSUzL1Pe1hg9nAIw^+R3huq_txB$ADhK>%m z_)k>dz2To6-jm|@i>8~~nDD$rS?t|!k^o?t%CyIpt3+1XOpi=Dw)}%u7x3u&V3+-g z;`uX>mFogqoNZ*+=tzxv;5Oi&a(P7pqqkUh6zc4TMa$NwZC&FPFf1(((p?8^KPel& z#El>YKHtGsxqc@MYh=nX7q(tVTF4wqxWv%d((8CqZsl}i3G88Sa!}*W`?})_WVJrK zmFC+T0e#5p**E7D3K%^^w8SmicDv?Nf1D?s6Ah*4tBN7*bQCkg@;m*p zWH9-F)>^!}nRE&6fWpplBg^2#sVXCD2T3*ebD{kKUMZB#=00oNf?Pm=l!5c0$E8R< ziph1`@`|Od0P`l`5OCZ1B{@~=7!lxyNC<3Up9eofMp?H6@L_(T+R*u^KXfw#tW#A} zM?ZiUq%A7~s7G_>+dZc$wovR*Aop}Kep4C{%It*nmBvNO1gorc94;ykmZq5Ba{`#qy}S>8_;;@2%6}pX z_K>Lquo|8UOb(`REZq6}#P9~@do<9Py67_oSlg*y`*nhNeS!^3zA;`(KjC%f&jPH~ zoyv6WOH+=Hg)}DQ#jv5*7XDUX7yh=%HvU;qcElzuvAScf1FCU7D!O!bT^~pc_Iv!~ zxsE-qC~+A#GLd3DDslZQiOU6)BX8#Y04?F27mG)622L>4tX1XdO&^u4+_uS8^)~FR zT^6Wq!zEaDk5O~qx`vz6fwJV11ui{8do-|z7A9DWm%syOuWC!@!#+jXZTBBoJxqO~ zdipg5m`J)70Hcz2`JOygi-LhtH(TJc3r`ec7qk2y<|=UAZ!{st zbO5;ec?G%e#^eWU1iXUAx6`puL-A$joo|onp?~zh#n7 zf;p+7Ha9g`$q<%;pQC>kip+7HzS)xxxWGi7NL1DRq5~O#At6nsQjeAZJ{Xsz?4!0T zSemHym`Cy26uRqN|C3&b&rJ!Y$h-xiPogEJ#km(G#eJg(*;Bbd2?qh@ZH`##v6G0# zmjJLwQZ~XMwqREYoTD|P8;Z9B(TsBtE7)*urIK)C1k>rZ;NUX-~a0rHpMwYc%e~i`3O!Eq`-`=utI^(5ZC;$>jlCun4V7} zn5E&aA%D!uHC+Ecru@I_#DCL_uiE+gwP~|M$O%|5FXtu%0JlM%@!kSL7B;^J`;3LSC<7~NwXU5q7;rq)&nA|~m9=>}30y=ge2wx8|E#j$6uhP5>f*@OuO=ZPK#&(w7_ZNRx&n3rA5 zwAzp!t4!t$V~9G3n2>1JrsF^sx4$i$H-Zwrp`sa#v;32Mj0FL_K1Y&BZZsHMbY80w zxN4Bij7~L+6)f`z)R@CKTLod$g6Icu@Al|p z0aC|k>Ko4_*s@h_2(!=Wx@J>e%pOoL^DtN!JHARwQ=ihI7pBrqvw zjj7e+WJU2pqtXcK{xf7_*QAXxFxfx8y{PhR-2ce~%X>os@?9mX7i|}*t5ScCec_R1 zHKAaM>~iXWVb1`At_-AV<=6AW^Y<|y{e-YM-@9l^Q`u&}M(L>>pO5`=(d`}rx`Ie65>J_Bc%D!ZDM=)`2&+B&oMB6i!v^s}aP+Lv0V8JVrVX1uf%q>37n;P+S1s}zCN{eAyO4mrAnbo37V*Co zvj+Exy#6OR!!jMZZQo%|7`E#FAJX{WO2xLpJzB5>|HLyaHL$KE?2)WWJP?XKk&&9; z7&1eMe*)A+FuhHCo;X9;)M;;L`>Hqaj%N@0pMxVU?0;x*+@TvrE|MswSZepDWc_jC z6oi|v8HddG_GO`Mwr}Jh5R74!gM)3GJp~ofWCSQXyXV6zdXoDQ|9Y$gP`8%{J9jt~ z7_=#g_zm0iEH1~fzDD$5b@pyPV}ydR81&Ac60Lu}77V&M+gXF~bp|7^q~O(J)&v(w z73CRZJtz~Tb=id{I)$mcvbfZ_^~wC14n11C$v1mh;x zaB#@7DB(-}*8M`45>Q0(W_*(buP2hz`H#)>3}r*ODE~dqS@< zAojD^_7*zpGILcr=%xSuH+wdIEfuDV08}F6Hx|714?q@j{7@3cpI_tlbVKkfFyKrbwexsftn%5G(4m%vPVi&_uJW#v3MvRd9BfnO&x?k;|S)*zZ{IQYMt~DycxCtE8fOn;kBhG$?RVjd#z0W z8YYtBi0l>M_?c^uOmif+IPbY|@W2wN*K()7*brjn9v1jXAG5zeQ!wZLCAs(4MCESt zrZfCm*YxeMm@xayiFq#o1NAC4*G?$FlN zOG)~XA`j+=!H7*R{#Y%&31a`+1O40df7D)Zb;25dgzLSv5QlGN1}xQ9#Wp8N2L2XP zY5pH`^I?By?9JD3@28Gm^m%@(QG4En<6zA5sUo2+%tn7Jc@XzupA3BiNr3k@S<1V7 z=h#x_s#Uk6AlTz$`;L6X=fLCa zi!u41LZH2iH^6i8Xs}(~neW+%)!4K*)OU2~qB%mJ@eN|z0Op<%aUx!EJPU=rDUv13 z=guxVmD@SYAa~2TVAL5X*f<|jvBVf>|3>AXnGXIQ+rLd}?`O~-q%J>P%Wonu8=Jo2 zzm`10?v6l&tYA{ZWsAQaB}L}XWPR= zi#;IBiSp*QWR%W-5}gE@#()Mk>&|4V^6Mh?b7n7@{DovdPZ_Y8CKsX>N63~%tdN;L z+G6zh5YBk<8|%1ghOPPwG{Zt`|1IxT2W)5(uWa;2fmhJpHFvhX2&Qb=1se+5D4Qs- zZ8aV@3X;AQ(DWZD4^k4tINttSOAyt7%gQ-y0Ka42GE{b3Iv0YKNt{Rx)+`v`X`>ID zh`IscK1Rvzc<&haS6G#glvh?wTLm!wYx2C@T{Z<6hykV9-EQBiaFScbP8;1QB}ddc#zwU%><0b#8ijl6lPY z-Iba64F`}u;;nphzig>DphCe%L(Q9bTG}_j!(@^Wmls=h`h=@0!ek||YfcMfl&4G3 z9SM^yyPvt`!9_Zc@)0_!5qv{a-8WUyOmI?)#u+#;mG73H)9GWqyo2XExo3hbzxAs+AX6!YH;mnO zC9RoZ*J=Q^QkOh1m$m5*{6$w^@m90Sx@l-8rV6t535dWB9d7|{!CLS4+GTEtV=-T#|4wVL!0Opgm_g#Kj<+kxG%-9@-gb6QiU$rdxb6FT4hz{eV>W%|g` zTpVXEBe@jcM;iCQ_)|b@RqYa?DQ?onqbFL2ZpBGe_dd~fx;zh|Jqa%FBm=wd24o7+ zpH6)tbynLV-Ywhm(I1?^n3=cP*K4+tukJJ(Fv(xFvDG8|k`6M;_V7~wI;@R&^X${`pOZ1T@^HMA-6XPC%Kv_ zInu6N`wt~Y@$yUa`NG;R^QyzDQ};y~XDS*0Ahq+eYoCEKYgF8lDf)}Y(C2(%+=c=$ zi%e49X`sP=^X-bjG!jXWFD0|mv~%XixOhPAhLm!ZlfBK$82Ykz|DEYf5}KP?u_pb# z%u9IAa9PloE|rtFOj^x~BRlv8W;a*BbaN!of#%6`*-XGzAx7%d~ai#a?&O5&)jb<0fTL!6^-e77_GuBLeH_oRfpu2 z{Z{x3<3y7Xi_t2py}8P!AE&k4`CsQwFIvWY%@(j?|K7>hZQl;)%^=H;%nL_v61-D7 zxvfjo&C00Y6LaBkTvvJXWLWjFl#GgQVIANr&YsU9FGH`=9vHV~_j~*1*GkYnvJ@P4cej!&ii*P625Jp7N^} zwe4l})yL%1equFqhfPHs&!Y zY8-*6`~JTmY!*#e2Uo(7*Z%rDZz@azsQEy4B;^}1=fO&nO+ynFWiE`|fm0Z7Y@f_w)p^(c zvd6c&JcRprdgoZ3nXD{!)M_f2p1b231=)ELq~0ENxw(G%>I&N?fWrL4MLmvkLN|T3 z4sE)qyh*Z^jH-mTo;H5Y2YoPrB6x&GwYC6d9jUlx*`4=HC6L--*U;mTag*vIM=dN7 z(%{DaP{ooaWRPo%h^e1f8bs#%vz-r}EaW~GoJqa~0&@8L_CE1_{=O!y+~rC7l+VT) zXRSwVYcICBQX~m3_^TsUPs*SaG%+PN?{C-rHwS45+br*tnA}oUk{+|~ zxVQo#W9FHAW#2K@3|T}cle{NLc;S?+@W)#8eX#Wvq9qnoQFf+_=4_hZ>l@uzeefQ$ zW<7Fc{Eo5kAX0b*$pZffwEA9QEl9YUhURuTHM)ZQ1zsy$X16Be6})qgtkgr@K@t2m z4B1-7o^)Ox{2Ewc!VZx^0d25JCPC3y1oJs)q0 zaTUbT>9518F3a9dwyT9b*(M%{gX>AfnQ!3bZ1gQNMa&$-N^OiflHf+B%-LXf|7=Lm z+v3MnVmVfPzA9^HufV|-1ZZ1isC5Lcj=sLVUR$dvyaGD6N2Afcgfp@iePoAhmEVGY zEsfGbFPoGk%MZ1d3bmx9vE^9Le3XB7-f`hfa31brUZ-PRaL8@Kam{Q{gGO33oJ0Jv z;yXG_WnsB1cd3a1=r(-pDxu>#T0dv|7aXpWbBXrgxI%Oso5Fw<9I!O6ukVbSA-)%% z#{&3XpBKxNE*k{>84humu_)}s@&Dba(YAaFTUfvy2P3kow!z7c7+kLs_$NIX!N16$ z;^`WQf4%0SMX*-Yu{HE2<8NxmQu5V0`ov3p{i~j6f%^wV?9rG5qYb)VD2r`$Z@Kyo z1k4H$WA~0!kE$?ch}?8o9Qx9f^~hj!Y}IV%ynFF#6NQel`tNw$`u ze!~KHR=mSTF#BS-&I0i?yE!^$YuX0+Ebn0qf=Io}q@4gWNO3^Hv?ohGI(2vnDl|D@ z<^!WmJ^sDC;^#XJx>%81%$8mB|9sc$g{S1P&mF!W_;%3VQE&VIC&c}J#}xnHPj}lS za^sv2UQygL`#%=&VgaJpmeNkD3pG~Pxr8KMDVsH;imVN5+{GEXZ@K>Qg@z&!2+YBO zqawquoct_2qUeio;80C78iPzQN)_H3_o(B9d z(3Tw$c>y-)$^qy%{ ztUWu`91$#=Za)obt>uL=UhiTG?Ehj9rGi1~Z?CHl4UgEt??$u{Lg;s^Y*iO)rA)Ti z%9FP&EOR$bWKWr`x6vGMna^|AfT-~=u6wW>m(Zh{k5>nWc^4f)V)ThLH?p~C0667B zKkLQl-N8kw%0ICLug$7*a(bk8cs#M1$8oV> zLD6xxlWP$MV$9HJ1L$-VzA|WE2J`N+m7iBU0KDfv%(gVgHa$Z;qX>NLJ=QQ%um5x5 z{K-NSmRkPn6gm~FVlAr@i~$T_9|Ny2DL$KDJ02%p3t@*1sY4t(Zog&+;#~*4E4h$w z(lUpfjZ{y`QX}dBp85XCBSDpoC%`oot^(~l`dEQEfe^v0DG)TeK$pLlUhFyjVqREHRK4CaH^%G;iL^Q?B5MuGmrOM*VAnHe33} zZL}op~HQ*eS*@9?Lv$OAz zlj*$Z`u7R>&sk}vAw~H=o>HZ@Sz@x292TUK?(Va|)%#B+R2=o+S3x*9cS>k(!#?7} zqi7vMcS=Hc3OaX+fBdLv4krOm;wNPwL&UhrDW%;36@J{99gnFipj zSQjSo*rM?u@V&%A!A?MaFmiCAtJVAu`tG<9+yV=Q`G+h5poiFC>!pBWD150AeLIGL zb)mbeZkeHoGK5^^tS|Db(rf_})bT&6c8mDO?I8cPbS(#XcvIf2yZG|%Dv_6T|0&*? zle-N5aoNa!E8U4Vn7jFqbM7ilm4_;>pEXtWIql=SCtIrFbE?O2i3te_i99(#9pu+z z5NPja20IgL?71ha9|(O=%?EGed-oR>EDFL|tV`t`gerfCDeA*>GaI<)h_eGdD9G(Q75KcF4e)U4SrNd-#R=*_$5#??skl;*1cD=*_Lv!Giy2YHOQn)?U5 z&iZkSruD_Y-7K^G%{fR>lrWQY2u>7nJ+qjY-abPZctdk#RzU~4F?V!+P*R%Vt+9>> zOin_I487n}_^CPknV8;DlKz2Xo@RHubC|?DISPjNvcx+~e;`P(G4mC+G>z_^lKfb?ZIa$9lWsrWX#i;Q@i;YukTXbErgjVK3 z{_lPCpLjwe`65Jbgeqxc8BvP*H&4;L34DzR!~LNf1xv$xcJPAh`U?uVc^ zJks0EnZfJI=VUq#W|OWjOte2vp>bnH(e#E?MqT658+5+`6s1P4b~vHRAUf15QL&A% z3Kr3~%BR^XCMQw%e0{ibAz}a?#%(#@q=$+3T{PCgKUb)o$L@_d$^tHTht(Gy;N*2Q zGNCKvi!Xd5jAQKsl;8Q?52Ltn-?e$5Wc#eP2wWK31u>H&p0ixwI!EH8V}z??Ash>g@=s z#gi(zh$;?b8d*m~wmV#q#4U9{n2^A;f?kBANQ;?Y|S zw_5UT>8_Pw0*jf{+y0^?xFu1n-}C&E*Hh4@RdNc@cWT2A_E6@hhouKo6mm{u$w&{E zYUk%+rGw^BiHS&ffPxAH^i4;GX3)ikV%stD_5M}4wbVoDQuHqhwMvZ%?=Dcj7_Y!Y4d#QDVEr8krn0JkLbkwk{9aQSc4RLdQ0l5`}6>yCP6+ZISPG}1L7V>C!yZzOK>HWnsKVZsvr4Ph?P1E>0u`CauFUXOcK><#V6Pp30&<_&=+K$7*WiuYM%Zx8S?DQob5Mt1Huo-i-BhsY z>gmxcSBlfJc+;Gh6a78L9ywz^g^ti7I6Xn8^=VXmVuY^V+C|u4gtM&Gmp5U17$?ld z8HXn6$7rkm?2nSpX1m)c)sDFz*TeG?p^ z9i4^5Y|Z43hIBUmsZ?`HU_|ba{I79^UWs0B4T|ceRbg$J77KzuPH8EFwg$S5W?wrFbl}`HREb$SJ7%2dMm3dR^kkiP6biv9R{17s%e1C+FbSLM*^zBqJ zHp^pRUNwt?WwhtxAsD<=xLYhsKS+VYQ<&LYC4`Md9#uxk0{xK)IdCy!Xk}wiI ztP5+jpo_lDspE1kiUiAczZPO+?kyr|x8NX!y}|S{4Oe)RkH;(ajPU9vx=>heRYlg_ z5wWp&dS-SXt3$@5hbs7~8`c?gxq{TaECky2&U&Q1FN2jHz8(s2>OFn_Nc9gT88=*$ zh{=LR@UY91&=Pm4iucSzHT6B;x5stGu@_IU6Ekzk9HFW3gq$eOVB&Sx2en6%X1nDj zOQI#pc22%E(d}{x(*c8lqOIB%IRFyeMpC5%hUpdhNxQo5S8FXr5q&=2|EiUd@FNxW zST&|GwRTe7(9_dfIvBxZO`&Vo0hg^Vp7Ybb=j9?@JWn%}BK%OCfZvkTjkewT2Mtkl z%I(6Soc->n4|dmSiOw6=TKbfP6TCSEub~J+wJBl>8#8A zn^T1lTW!4Nzo_CK$?f}!l1noHc?H|>jy1aA9bnHaN#5;d{cc3@K!)Q@GVWEQh-;k&rglX%anqyVeK_WIin;&0R$H(k~VP+ zY`x_`SGyKLLx-?yaQmAefw_5mA!>QfpqmmO3LAj|eCpykQcbnc*j)AQ@vu@o6lB zzwo(|W@gLphpPDUQ2SM+4zWzQH!lnSyT3Z}uO-rpN~djS4-Jk^)?XMI!z)cg3l=}l z6#v)~Nztls@F*o8ojUz>?aeB&HK#Bi;1)4fKIh|9T;U``96^!HOf%eUbhr!lFQ8fO z6!F4GNBx|pB!)UGMT7-_xKY2E;2I1yo$<1z>RpatnRpKm65&Mro5TGQ)FXadGv21b>HNx0^+bFkju(d-1!kZpWzYu7uW%d-`LyQ&bZ`~&;`U>es zpjV{ob8W|{;OZeCIn8#eR-Y+2`0R2{*_?qdS&F(^E=-%w6?X0gr^$P(B6JIXe51TS zfrm3|dw}?I{6vH0n7CA0EQUlYzDaWEXv75JEb4vabCt9LmJ&+(+aNQ9I`(DSEAdTm zVctbnVXtqKvk89u5OPz)OlW-n(O4W&S{8WDhvP+D$y$hi?&6jE1VFuhkZ5IpTK#EE zQMB${rg}u_LEYnT%oWVDWKle!#SBxGT0;+Ozh1s-vBUVpjNT!PG%048R`{jH`xnL3 zSBSik-?1L35}fYsUg3OIdQv8FkL`t-`)Y@Yp~HTyNAippk|Tnoi1#6PTN8at=N&Gi zj21%Qad<>rMQTWy-`m8P(}WmWR(B+Y;(o+^vg?DdqI%Dpbpu8!@cGc-Dk@MIh%U9^q$sb^m6{$4WjO~5KQoiSZnRZEm){Dz>^+*N7J2)} zGtxJF*_`C}>jH#bDS3F}MMA(;cw1x98d@Bixz4D4kYSb`kWY7V-YU?@;8(mELWhHD zcq`6k+4&+2(n(#}WT_lzb)L_zLX~SlGZr@S6hI{8 zuOQf;5*XBpy(dyv(i{^!D(e^M&iS#cc4;d7VUmXmqH`QPoey-6zu*hXPdlRB1#@RE|)cIdp=M{aZVRWgaj#^mgku?ulA!u5K)1 zp#S7MO@Hsu)sPnMhua}o)JSbxbh7lb^F$L0P_w4*!bRi9{^je&@5Z4?-F|VVx?VoH zxYOpwZ;w_!nsVZfFb^5$Xe(tUA7GE43VhC8ExK1|m$Z(^KlH!<3ZaLSqW)~ipKM$Q zUz>akL~+EXEBB{{UAXFFfdmB}hu|yQtGUi{vh-x z76>qYwEfQ$ezrJLzv`8#WvM|y-8*^yj>o;+d_1?IB?dYAZU;}F{i2_AZcbFg zmRr14!nxh~ji)%aK#)EL1?7S$5+Woy7gD6M8FhqYJ21iV`Z)QG;9@8m^3xmfmkY(%WmHNC}@mT;%@a;Ca&TmJr!YwDv-p{jpb|5Fnw5s60sX zK9`#q<)@q(JmB%x9$@C<5Bu%c)C~qsM8Gs!+`^8NSi|fByl&$~St;-9e6AmkuJ~MR z1{*`;dbuu@mbx8&7a4&j-JXU%0zb+nMB*qd%Ab_KQrn}y?4kcm**KdcwkQk2dFNIr z5)Xy2FIFYLLLqMM2Bfg8EGw0qzhCxb* z?n{yGJCingXur(vz(!!iEGXIf+?a^-V};dUxiwjifQO(*_amX|6y;TQzZw<}y&WPnD0Rlwd z38m)8?D*B_LGKkfE(u9cK3XnRERP`s%6ezv?ZYIO_XmIMSHs6vbpmA^?Zk4r=`?n# zx_u3GZro6&KJfAM2`zqXBj3Q);%Upni$qPKrg2p@-IHOb&uUq$dG1W)XBo_K<_60I zb#`Ix0=`~1%v;}x?c@mYO3J5%POPa|L@}B{S!r~QJ-_1LNckTpp95I%#l1}KN0{tA zOC`Q7Zg|eaGEu2s(PW*)ntU(d=gx~atI_iNj>}_ol)Bqa&xE{h#n%_Z{HfOt0Mr&B zgMqyct_b;0iqn^Sms&T^JOa8RKYsrqqE|ESGM8Oc7fZ?3`$!rsEaacOEXw+u=G(L` zdVlI-EkZFYT!&z%i(R(aB)OgKp#qNTIJjdi(5KLP{T|d&s}K5a*vXwUSzi_ZWW2#H znVh6;B}1H|l}FC2y5VZ5Z#G9s6R4}{Ovk%|@lS}Hn7EX#zChOy!GoZ=Ck{MQ1?ZMHaj@ZUWrEUGFFQc(D2 zu6&aAjA-+GmF0DpdxshKD!sMRgUqumi!xr`Z#fY^i5IIae=+9O?ZQIMue*xXFQ~q_ z*9e4A9#ANztSP2rGp<33=@NxWM7ElVl-uWMEb>YErRorYxB{)C-9D`BZBG)L@eke) zx9`JTOL8T5#v9oN^1eh(tmkYJTL zWpoZ{sM=9+e?Nz~af zpBEfR>{~fWa%7Pp1yoskq*XN=@z~9X`$ZsE$)b%C;AgaNjs&DwQ-+zZkB$7~Ay75m zZ2wE3bC4a7C6~mCk@P#O*$D)ST{>tX(r@AW=vZd^>65RZaCzcS^p}Wk2i}&aI%L1c zdU3R@vUukR=6WPGKR%8* zhQ5s!Iqk-J$^>1Crz62_DGV=SvlV^mS1iGDQW*(%3{*|2lr~5yy&^hVR-n~cOVomO zk!!pspuC9+RI|G*Fqa-v2GYbCkTOYcH>h_X=DWkCcrsKHGS< z18PB@C_|XtC)$7Z%Qw%xxsAkZi(YO&RCrK3T zz>w{MFEAxQ<0yQ6YtLag{1{~uVJf+7UAfwhc)A?YqAiiTGc9nmmY7`k@QNjxT`Wml zr|_ej^(FWe9=&@NEAmvr)$^yuqJQ>-OEm)CsU`2vKfGxr{w@v<-)H*;qQTvU`8M$J5cqQ^xsobvc z5g6G;j6b`|j1+0c6R~Z`^ut;v9lh&PxmZT(KfYkA(w$*YR2&3&S^0q(FQTv2KO_u> ziI-d+>{;1*zS{(lYlsH(klNVZizH~ z!nHOvBQiZB8O>YX4)puDrtaDjuk#1!r0uIFmUy^#m(g)?9FF-%o>>+PjMFF1nQnm? zz-iY(#QmdlGKf$*Q{+m5x!CumE6EdzsL|DkzCQC-Z_jc_uDe2u_{*NeUAs^fzXXbq%wa6oXA}%Hrt?>h-!r(D*yj!826Bf1p%DfV2kK;<9J@LoHE)a_iQ@w6^QPAB;`*dgJ1K#uGSSizdm#P zj#uSq?LvHjd7uR*HWznkBG_`r@5ZODUe=Qp3TmU)#YiU4KxPUu~1>xg4qJ zl2L%Y0gF?luMTw&2_@r3aJauaIi2Tv#bMpE4`p>MA^vRNd9~4Q!=^3^g5ao^uUzH6hcTEfrN^0be$XbT9C1G?>y7YftgyCe z!rg=T9CPGq$;&8&BAF8+R>Ix3;fm>R*&eo+QjpAnK*=Ro_sqW{HKe*zeaCdIp$B2U z@7a%{xJYJxMJ%|;xw*mDUSPI^}5+_HyH^e&M@UyOOEwyDc^#;=&(M)-bi*%qt=9V#!~+1om2F(uxlIQ-Du z1h86Oq7(41%h>VOSP~s<5H~h76Ysk=cZ>S%t8+lB)CnVHCxR!$R0z=8cu?!+;`gZ8 zBTr$I&nZ-X&`wbQIhk4cnxDJ`#+}ThXHKX(u@mA5>#pp*&S*-%4-RZ+e1uz*%gih# zH5a1%?Mm%fNNmzE_fgiEw=|L4RfE+?(#~!yw_+*qaqis>&m@Vu8|0}7jewTHWLTFN z1D6ZVbSTlUzXVq^Po0$T$yAsa{KuU-VkD`?Qn7CmSC7(MS!xsxrR7bN5^_yNldVp6 z(aJy9-C5Qlg~L%gaVDD$0@9A9$19qBva8r^y%#|T;S-aYa8KNK-h)ooJ(p>pa^-{N zn-BgT(SpY7F#=m?hF9J4fh@ynH|Zl^7#{s;ZTE7RB0K|6TG6V%k?{aMpd|mUt!sOZ z1fN@|e`?mPE7~I+03A>`0m?R0GC*9!RTUHEPJ}sMe5cC@TY}UyQ#`=I+!-5Df0;}1rz_e=Jpjm&Z>dr z%4hcaY-nfnf}|fS$$mxgR0M@obiXd_(NR)H3mr*VrR8>B)Kt!8&FL}?8il4)a&lJb zE%_*uOiX7-bVl1-s-R-=*E^~XYUE;kSXQBI zpuF5SAIfYIxFA-@$Vk;f!FsXss?6x<{%NILx=rwx;>KYtY(QJdp~`t^(MJ-lGsMgk z+eHAMUiHxItTOQ(yT}h%e|c5&S%i@&-V*TLfu#VuL!VKeVUsV`(2xyKvzU6Koj=9F z^VHLr)Ab!`Q0jhPx+(9A{oRZ-q+Mj%p?^fr^}zXv=>tnOe!2&vB}OVUZHpm%gz*WQ9j>$hV%Rgk`pR$U#@2T# z_w{!kGA8 zXK_W2ibQI8pd~bHY_1%9XAl0aNELmr*kklrJ-H2a31iKkAi_QR)WFojMbIG~0qq=L zK8>-qI1y;1VM2X%+ucRLf)Ql`0v9XFY^iHTh7nlL! ztl~!~%~ketaJwuO9ZY%BV)1MN#&^3`=pk7sl46O5)$&;;|g+0tt+i^yO zbvW`?WKm^uF zZu0wKt;H`$Ptz_#y^hz{9_Kh8%~3^*vC|LVV*GZeP@5s78lQ+rJ#lEEkF=Hi+M>bp zF;bh|2up(=x`dZ5rg&fG06ExXXqQifq!!U-jgXv8Crd={v@V2w(0b|Y@|=kV4tBnm zW#YW>Rgo|XT zlOS1hzZ1`90NQl+Wj}=ES*CX`c&3M{ONP8eqDeoYx}0q<^*n2!qh=ZIT^l zV`1d!7DY1|K2MR!Oh}D&DMyf`+xQ%?mW6DSG0|e~X2a8AKFQtJ?74DGQ7|L+J58H^ z87UNs{}0jp^%DS9l$OLdF(RcgN5vgEy5zoI6=`}rS!72WL43Y% z1uMUB-RfNO9aQZ+R_xUIU~(@|t1g|O)pE$C$}AJVkvlVRDX;?8zB)TWtV#JSOeix< zx^fl#{wVy=-*1oSnc~C0IiG6zzU>n^*~~$AdagOhBBy&ypF#^JAV*sVw%$Ax6YWjS zxxT#ov=?haOT{;>r$?IAN1KM6d6uLRNq;t7FEuD%pQL(@JpTT%i4Dc}D$tU&XQ=z+ zMT7Ti14RW~>SE(i`Mq&t(Kep>WEj#9P0VThBBrKc9_AZ5)xGgq_0xU3cb^1rFw)Nv zgD)+++y4@|I3nsYED+F?%#*T7L>F7&Yi6~YqV3ZzzyDb*KFZsi@L`DUlIiXoW za$iBtpyJUOw`|U#5IllA^B!7c@WAZHefRvB$bPq<4jd0Xsw5iPm0u5)bA?EfZ0%CF z7Gz7PI4>Wj`w6BM-|zxF?`L^@RAKe^(XR`0`zWPLPL5XwyIc3`kN8UWbWFa$l%4Lj zCH)~5kjU0gcFCv>wRK`geY#bMYnuB`V@1_7oM+%#ZF5yF*-qDngP~Nu%Kmnu z)R{&ZRsXifV)c6Uyc&2N4>#^i=7qR_k!9lqWzJfOJ9T8xG8@sV2G zHd;S!YJ{xq5N(Z`_%ZQ5dSd7kokq%|h#%u$?jaoH$1KI}cN()i+%}UX7Vfb9boH>G z27P+z`9RP>*ONxg7XL_emFO>wl*3cporNLb^xZp?4Bb2v-+r8Nt~c@764xSr#YxKs z4(LTvwv1;kn%n`}Y5j{C)SC}_)F^B>YkOATDJAd__Tu*3fDZt5#esX~y1>%cE5$PP z1iHoE<^g?`mQ`sbbz_9Z?61k%3F0{H#e}c*Xhz?5Fs@}JAF-~!`>Kp$V_F4KiExwQ$+7-f#i4zW9jG_k}*?q5`kg7tRIl0{tl-0jTGn_G|mGY|8 z0Yp;QAP`JspmYBmxT65~V4b&UFOx~xud%t^Xp)WBmpPWgU4vg2&nH)2T193mussW2 z#ahdPJwH0z6}DjaRfH_fVa$KC#l0oY+Z!?&Hk)JD!Xf&5{xLBMQZ~e_Mk)3(bFWK? zWkxm`!+V5Nk3O>(CZ(-HgE|$_>C-}O{fJy!v-uDdCeOgu;l7>T8$*4v^i);>c@br1 zpoj2%C{-Y8WBEXSJA2Q`p}@EK-O0p8){2*?G!vZvf34;V#N5pn!n8fW%}-BjiF7Oi)BXEk)(h77&n%tx8oCELgdSfY>Dp!6_$V zp~zh>LQw&24B@haP_%yN?)#x<_ruJ2KD?RypXYt%_x|Uc`SQ-V-#G^*_-ih_8p-v% zD3NOxrZXewS932Z>TKh^NtwO^Y`1{yR4STZwx_J;-l5*2A_C7$@9zbNIGn@x4@9l+ z4=`F@-y>dQCw<+g@;ehB)6>}R5e6P0eOe`!2OSs*ei{ASJHPopy7N@MXJ5qHs)xMiUTz_To zO7CT{|0D0=&XU8oN9n4B;!Yf>kA954*?ya}COD&3~#Vxeh?X=4b+lQxe9MTLCfiRwt5+R(v* zl<=yYE|ZY2_issG8mWm7LoX*j{6IH$yN?-a*pB`UyHO`(Asvqo?@E^4*D(;X zt$D0f=ZC6}7{*tI7aFb$$IEMa7`-Qw^-UiH%0?ZHYm-#VTYugz%l%eq|Kgv?!w+0D z${+4=3^4Y-lGAxMSuZ20cXG6Td)S=&B<+sd(K{bCOIJ>o-Bmhl^?#Y^TZNvCY3#I7 zcP&JzUZ#boyB+-dzTD%V)fT~!UwW~1zp7mERQ{^rn<}?w_8)ehl01yPdF+6W^O5qg zqYDo{*ig`a>4Ofq=ng*Y_JGPVuWy^b#NvLlW};lnH7NbwaCoD7*{xT_l>WL4 z_ccZO_fXa3k?sw9)iu85!>Rd^|Np~f(UW>DnI;+1^*Jg6fx4RO?I-bb+d*RqcqArU zun!^0c+;WcD4p|84WAILnKT{#tY?(X)*@!OY;2~=P^spa!dx7|moR1KeDT`pBEQvfM#L-;S192M z_|Q~c<~~8Vgh3=uO*DJVTo+F`I}u+z!w#be%a}r#LL$Snm9a!R#)Rf1LYNYP$Xg%? zwVl3l7p@4A3Pd4d$jQqRqF`Ah3dtJsSsIStm9NMnVxD!k36Kh?L($WV2|&0uhfXvE}lZ90V5fIdu5#$v^CGx@*iQ zm_^}PkN(#B?Arb*gSXuOl=9O>@kxN-;<#{JKm>rqxVvy%Km>rqxVvy%Km>rqxVvy% zKm>rqxVvy%Km>rqxVvy%Km>rqxVvy%Km>rqxVvy%Km>rqxVvy%Km>rqxVvy%Km>rq zxVvy%Km>rqxVvy%Km>rqxVvy%Km>rqxVvy%Km>rqxVvy%Km>rqxVvy%Km>rqxVvy% zKm>rqxVvy%Km>rqxVvy%Km>rqf9NiQx4S+NKDO0EitXvBzI3)8`(lL1)!D%tdjt66 zUHpEZ5A5p){(9a(`NBDwZZucBE1Frd+GAJljf-ycwOa!R;F{Ww8aR}>m8N{Hq_xkv zIzVHL&aXI$8kXecs_gQand=r8e_qs4hn}>_Mp>EbDsEVl6JV`ke^S!s1!G2WcbTUs z)kCtEu0iLEDxx~-jLZd-;~vp%sRa9Uz-ZK*H+oU?t7g2%WQ3m7!j~RZR;uPzx{S~T zqiST&FZ-S_A8UhDJxo}s7@?;j5icq2a^0Y#EqqRf9$aTmI5rQD{}F-Pdo?{#6>VeM z*b*zBvJ-9W&K5QgTA>};0ShWuR7~jH^h-ms+&>m8)I(Xd-38palMjFvETBb?jE-PM zMoy-)7NXn_Syu;26Dieg#&DxP`+V!Z diff --git a/src/minecraft/assemblyline/client/gui/GuiEncoder.java b/src/minecraft/assemblyline/client/gui/GuiEncoder.java index f0515dfc..39d32e41 100644 --- a/src/minecraft/assemblyline/client/gui/GuiEncoder.java +++ b/src/minecraft/assemblyline/client/gui/GuiEncoder.java @@ -27,6 +27,7 @@ import universalelectricity.core.vector.Vector3; import universalelectricity.prefab.TranslationHelper; import universalelectricity.prefab.network.PacketManager; import assemblyline.common.AssemblyLine; +import assemblyline.common.machine.armbot.Command; import assemblyline.common.machine.encoder.ContainerEncoder; import assemblyline.common.machine.encoder.IInventoryWatcher; import assemblyline.common.machine.encoder.ItemDisk; @@ -62,22 +63,22 @@ public class GuiEncoder extends GuiContainer implements IInventoryWatcher this.allowUserInput = true; - containerWidth = (this.width - this.xSize) / 2; - containerHeight = (this.height - this.ySize) / 2; + this.containerWidth = (this.width - this.xSize) / 2; + this.containerHeight = (this.height - this.ySize) / 2; - addButton = new GuiButton(0, containerWidth + (xSize - 25), containerHeight + 148, 18, 20, "+"); - delButton = new GuiButton(1, containerWidth + (xSize - 43), containerHeight + 148, 18, 20, "-"); - pUpButton = new GuiButton(2, containerWidth + (xSize - 25), containerHeight + 48, 18, 20, ""); - pDnButton = new GuiButton(3, containerWidth + (xSize - 25), containerHeight + 128, 18, 20, ""); - commandField = new GuiTextField(fontRenderer, 8, 149, xSize - 52, 18); + this.addButton = new GuiButton(0, containerWidth + (xSize - 25), containerHeight + 128, 18, 20, "+"); + this.delButton = new GuiButton(1, containerWidth + (xSize - 43), containerHeight + 128, 18, 20, "-"); + this.pUpButton = new GuiButton(2, containerWidth + (xSize - 25), containerHeight + 48, 18, 20, ""); + this.pDnButton = new GuiButton(3, containerWidth + (xSize - 25), containerHeight + 108, 18, 20, ""); + this.commandField = new GuiTextField(fontRenderer, 8, 129, xSize - 52, 18); // commandList = new GuiCommandList(mc, xSize - 7, 128, 7, 120, 170, 20); - controlList.add(addButton); - controlList.add(delButton); - controlList.add(pUpButton); - controlList.add(pDnButton); + this.controlList.add(addButton); + this.controlList.add(delButton); + this.controlList.add(pUpButton); + this.controlList.add(pDnButton); - minCommand = 0; + this.minCommand = 0; } @Override @@ -92,15 +93,14 @@ public class GuiEncoder extends GuiContainer implements IInventoryWatcher if (this.tileEntity != null) { ItemStack disk = this.tileEntity.getStackInSlot(0); - if (disk != null) + + if (disk != null && Command.getCommand(this.commandField.getText()) != null) { ArrayList tempCmds = ItemDisk.getCommands(disk); tempCmds.add(commandField.getText()); ItemDisk.setCommands(disk, tempCmds); this.tileEntity.setInventorySlotContents(0, disk); - // TODO: Change command ID to corresponding ones. - int commandID = 0; - PacketDispatcher.sendPacketToServer(PacketManager.getPacket(AssemblyLine.CHANNEL, this.tileEntity, (int) commandID)); + PacketDispatcher.sendPacketToServer(PacketManager.getPacket(AssemblyLine.CHANNEL, this.tileEntity, (String) this.commandField.getText())); } } @@ -193,7 +193,7 @@ public class GuiEncoder extends GuiContainer implements IInventoryWatcher this.mc.renderEngine.bindTexture(var4); this.drawTexturedModalRect(containerWidth, containerHeight, 0, 0, this.xSize, this.ySize); - drawOutlineRect(containerWidth + 7, containerHeight + 48, containerWidth + (xSize - 25), containerHeight + 48 + 100, 0, 0, 0, 0.5f, 0.5f, 0.5f); + drawOutlineRect(containerWidth + 7, containerHeight + 48, containerWidth + (xSize - 25), containerHeight + 48 + 80, 0, 0, 0, 0.5f, 0.5f, 0.5f); } public static void drawOutlineRect(int x1, int y1, int x2, int y2, float rR, float rG, float rB, float lR, float lG, float lB) diff --git a/src/minecraft/assemblyline/common/AssemblyLine.java b/src/minecraft/assemblyline/common/AssemblyLine.java index 33c03cdc..a62a54f8 100644 --- a/src/minecraft/assemblyline/common/AssemblyLine.java +++ b/src/minecraft/assemblyline/common/AssemblyLine.java @@ -35,7 +35,7 @@ import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; -@Mod(modid = AssemblyLine.CHANNEL, name = AssemblyLine.NAME, version = AssemblyLine.VERSION, dependencies = "required-after:BasicComponents") +@Mod(modid = AssemblyLine.CHANNEL, name = AssemblyLine.NAME, version = AssemblyLine.VERSION, dependencies = "after:BasicComponents") @NetworkMod(channels = { AssemblyLine.CHANNEL }, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketManager.class) public class AssemblyLine { @@ -84,8 +84,6 @@ public class AssemblyLine CONFIGURATION.load(); blockConveyorBelt = new BlockConveyorBelt(CONFIGURATION.getBlock("Conveyor Belt", BLOCK_ID_PREFIX).getInt()); blockManipulator = new BlockManipulator(CONFIGURATION.getBlock("Manipulator", BLOCK_ID_PREFIX + 1).getInt()); - // blockEncoder = new BlockEncoder2(CONFIGURATION.getBlock("Encoder", BLOCK_ID_PREFIX + - // 2).getInt()); blockCrate = new BlockCrate(CONFIGURATION.getBlock("Crate", BLOCK_ID_PREFIX + 3).getInt(), 0); blockImprinter = new BlockImprinter(CONFIGURATION.getBlock("Imprinter", BLOCK_ID_PREFIX + 4).getInt(), 0); blockDetector = new BlockDetector(CONFIGURATION.getBlock("Detector", BLOCK_ID_PREFIX + 5).getInt(), 1); diff --git a/src/minecraft/assemblyline/common/machine/armbot/Command.java b/src/minecraft/assemblyline/common/machine/armbot/Command.java index 63560b53..c1cc4db8 100644 --- a/src/minecraft/assemblyline/common/machine/armbot/Command.java +++ b/src/minecraft/assemblyline/common/machine/armbot/Command.java @@ -1,5 +1,7 @@ package assemblyline.common.machine.armbot; +import java.util.HashMap; + import assemblyline.common.machine.crafter.TileEntityArmbot; /** @@ -11,9 +13,26 @@ import assemblyline.common.machine.crafter.TileEntityArmbot; public abstract class Command { /** - * A class of all available commands. Command IDs are the indexes of the array. + * A class of all available commands. + * + * String - Command name. Command - The actual command class. */ - public static Class[] COMMANDS = { CommandIdle.class }; + private static final HashMap COMMANDS = new HashMap(); + + static + { + registerCommand("idle", CommandIdle.class); + } + + public static void registerCommand(String command, Class commandClass) + { + COMMANDS.put(command, commandClass); + } + + public static Class getCommand(String command) + { + return COMMANDS.get(command); + } protected int ticks; protected TileEntityArmbot tileEntity; diff --git a/src/minecraft/assemblyline/common/machine/encoder/ContainerEncoder.java b/src/minecraft/assemblyline/common/machine/encoder/ContainerEncoder.java index 3b27cbec..ff15abb8 100644 --- a/src/minecraft/assemblyline/common/machine/encoder/ContainerEncoder.java +++ b/src/minecraft/assemblyline/common/machine/encoder/ContainerEncoder.java @@ -22,23 +22,21 @@ public class ContainerEncoder extends Container this.encoder = encoder; // Disk - this.addSlotToContainer(new Slot(encoder, 0, 80, 24)); - // Output Disk - // this.addSlotToContainer(new SlotDiskResult(this, 2, 136, 24)); - + this.addSlotToContainer(new Slot(encoder, 0, 80, 17)); + int var3; for (var3 = 0; var3 < 3; ++var3) { for (int var4 = 0; var4 < 9; ++var4) { - this.addSlotToContainer(new Slot(inventoryPlayer, var4 + var3 * 9 + 9, 8 + var4 * 18, 170 + var3 * 18)); + this.addSlotToContainer(new Slot(inventoryPlayer, var4 + var3 * 9 + 9, 8 + var4 * 18, 155 + var3 * 18)); } } for (var3 = 0; var3 < 9; ++var3) { - this.addSlotToContainer(new Slot(inventoryPlayer, var3, 8 + var3 * 18, 228)); + this.addSlotToContainer(new Slot(inventoryPlayer, var3, 8 + var3 * 18, 213)); } } diff --git a/src/minecraft/assemblyline/common/machine/encoder/ItemDisk.java b/src/minecraft/assemblyline/common/machine/encoder/ItemDisk.java index 91f893a6..71bd5493 100644 --- a/src/minecraft/assemblyline/common/machine/encoder/ItemDisk.java +++ b/src/minecraft/assemblyline/common/machine/encoder/ItemDisk.java @@ -36,7 +36,12 @@ public class ItemDisk extends Item if (commands.size() > 0) { - list.add(commands.size() + " commands"); + list.add(commands.size() + " command(s)"); + + for (String command : commands) + { + list.add(command); + } } else { diff --git a/src/minecraft/assemblyline/common/machine/encoder/TileEntityEncoder.java b/src/minecraft/assemblyline/common/machine/encoder/TileEntityEncoder.java index b996622e..9387800e 100644 --- a/src/minecraft/assemblyline/common/machine/encoder/TileEntityEncoder.java +++ b/src/minecraft/assemblyline/common/machine/encoder/TileEntityEncoder.java @@ -1,6 +1,6 @@ package assemblyline.common.machine.encoder; -import com.google.common.io.ByteArrayDataInput; +import java.util.ArrayList; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -11,6 +11,9 @@ import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ISidedInventory; import universalelectricity.prefab.network.IPacketReceiver; import universalelectricity.prefab.tile.TileEntityAdvanced; +import assemblyline.common.machine.armbot.Command; + +import com.google.common.io.ByteArrayDataInput; public class TileEntityEncoder extends TileEntityAdvanced implements IPacketReceiver, ISidedInventory { @@ -160,9 +163,14 @@ public class TileEntityEncoder extends TileEntityAdvanced implements IPacketRece /** * Only the server receives this from the client's button click action. */ - - int newAddCommandID = dataStream.readInt(); - + String newCommand = dataStream.readUTF(); + + if (Command.getCommand(newCommand) != null && this.disk != null) + { + ArrayList tempCmds = ItemDisk.getCommands(this.disk); + tempCmds.add(newCommand); + ItemDisk.setCommands(this.disk, tempCmds); + } } catch (Exception e) {