From 73f19d71e0dbdf4f5237e89bd431b971dacbca99 Mon Sep 17 00:00:00 2001 From: runge Date: Sun, 19 Oct 2008 16:18:35 +0000 Subject: [PATCH] Update ssl VNC viewer jars and patch file. --- classes/ssl/SignedUltraViewerSSL.jar | Bin 102060 -> 103294 bytes classes/ssl/SignedVncViewer.jar | Bin 79618 -> 79618 bytes classes/ssl/UltraViewerSSL.jar | Bin 99179 -> 100413 bytes classes/ssl/VncViewer.jar | Bin 76830 -> 76830 bytes classes/ssl/ss_vncviewer | 96 +++- .../ssl/ultravnc-102-JavaViewer-ssl-etc.patch | 422 +++++++++++++----- 6 files changed, 400 insertions(+), 118 deletions(-) diff --git a/classes/ssl/SignedUltraViewerSSL.jar b/classes/ssl/SignedUltraViewerSSL.jar index d7d340520ac028c7f8a5d8cb22dbf4e6fa03bec1..8e4896c94aea192ba29f2a0c3171ab7eb2c4ca9c 100644 GIT binary patch delta 39431 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 delta 38198 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 a^=nvI8z=&AJ;Y;F`J*1=LaWrDoXVgCr-J%n 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 kGJ}6!01Wrh^vO8JMUu-T zAIXNvKe()z7XocC<$l5iX2^&MbAs(OlK;pC7Ex1s31JB7Zejw99M@N60jqg$+z4@3 zv3U{;Sn7tgF)LV#&(U1~%!ml&g{a90`N|AdlMrFa50;vf9sx1=d+u%?u*lXb2Z)*< zwVPEyB9kvHkzagv5ffPU!V(p*y&%EOVk<=;j?i7}sR%Z=@?106?#cfz{{pN3b47y} zETjHtoi>QE{RS^%t0G8ldV)TqJ(#gbpV5W`C}If;r0LJ}87;uViUvRiP|Nff14eKV zO`mDN=nR&+4`P6%R1Fzzz>E|_pkW}9WrmD)U^UMT87;vKWg|vMuvEGc)WVfUKm$Qe zcxJ@t1ZHR(GkSv6lp8bJf4Ao^}0+a$-QDFi#d5a0716c8Q7{kgGDpG3- cbOuQAK9~rj8Ps7;W>AwG&7l6;XU6CP0Ks?UFaQ7m delta 638 zcmZpA$I|qUg*U*PnMH(w0|+#982;_yR$q4xhVI)LY@`I)3q(?wZ{+_#=2Q0F+$^oM0 zN9|@6kjUfz zw2c`(!HjZaMq4mryD`+{Z^lqv7A8=s3KOWwTTB=oz>2@a7*?iGky=xzGxotm7|oy} RPG(S(8_l53*k{J*0stsE;<_0=6p&7DY`F3L5JZ{J*P2OEVco0O~(ZA@o14ezpMiKfcio?(Tnp z6{;xwf0+uL5UBqGCIS%je?c+{7tDXbDCN=rfI50c^#3ra+X6z^5ox6e>KFu|0K(lS zV$R8=>;dLsv{V*BG9aIj%~e|#amC}%RXCaumd8bNga%Q-$&4|21J*wVmeQMRbE!^Q zZd8+&=^7(W=1+wl+GV$o_^g4ZYChtbNA}(P9not{63aKumW{CVoE^-t=7@vnm4P5x zXj!ij?WnEvgd1*YmrJ<7IZB5Nf}5*k$2D`?=;YhdW>R(3MZlZNs_ETq7TZ%6p)}LC zieX#|))LdU+O8sNwNJSJTzs_|u6Pz%3NI!I>4R$yDc zc|4BR$8H~g9GR69>lvObD>9$Z52x;pF6y?=b(+|Xk93uPw?d?X{KYHx3K|UJduEnep!JgOt8u6w z=-tYNy+4Gx1sjys6FQ#m92FQ1T7Fd$i+3D7p+3ZUH~We7F|9M$$Y|ZFmQT(j34*=C zY(P}v!21jFhts~{26?y*l+P_rNo5;Hq+BPiiFF3W@R+R4D!XJPF26K@URh!M4x^?B z2M@_wbcGK2>C?x*`~MNuzxWfRN(=J zylA<+4Y_=I$C5upz8Cw3On6{U&g8%&Xod-qjv5B3sQAy8&?G#PLejZvS9+K|d^RZY zlN|iN>ah3mTZBC%E=@y!Wnf%oLVxb})>mAJg*m`Cn?f*=T5Fq^o%`Txj1Zm?Mvoyr zsmK>h_%{qDCdb3j=Ci4}P8ur!E&>AZ)hGcyMt9TF-%^C_%8enW4MW3z!+EziI?^o@ zeM_Gll2Il7rkC1RmtjIDmyhiTf5i8Qiren-Ihq?In$r(x&w{^Vd-lef2hGsD&)Bt| zn|inYNZlVOL&M|TPM$p_F7flq+St;lqJ8Bv6?3>{guW}<)g2;AzHMlv?@<4VQ-=h9 zLk+~IPgehHoY+J^17x-b8H(tK8g0=z8Obhp#$phan&oun_V~Z(O9eldQK>XAznBEv zva*Gy-}T+CkskT*%+m9wj*apAKMC%PdGq`W=R1rkK`pWeh%Ny-0;SYtq8DBUCCh~;c)44BxdDbPNH0dFkgC&f9#9KI zKG6Bqd9AqeoWb~HO%Dk>rFAuu6JAkv#YaKKZ7nx5*Jvk=L8QAU^2@Y~rL~AE8Sd|Q zB<(F6w*l|;T&@LXm=f;(Cqo9g(2BQ&9|BCTzO@vn0G{7e?5Icg(s8xj!=~B{^$DK9 z4Ald}#?=c|YKdITd;$%fXUGB3lKRD7KLLJ<7t(WD@ zG(w7ICJP{o<-51m!CVk;wKP_y|3ryS2mQZf5P*xt+`-J<-BZ&*b3yI%2dcP) z`8XKftrE*_sVNS+&4;ltc(HPUf%9tDU2aA!D}`^&wvV^ANqG3(gzxxl*PX7Dr?+4sqd7-7*@IClqyt&UK+$be-Hh2TA$f@&&iAnPEHxUuJ zt>FIIBtS-HC@e-k0=51Kx{@CDM-pT0QGk794tW^Kc08?v)N&_{Ajn-@901Dyhd!KYy3WsGGRkq zd%PiZB4^Vy#zrqL0Alm>D3KjXOAyTZ!d_yI1GqC>pSMQ-79iOzN?7VO)>5lmX=aq+Ck}J^`##a6gi53mi z^76XHG72d9A1xd^nEa7CjB8(h@XK@gsh~B|!;C0iTjL))btsQ`p0m( zR{MhMPm)TaYp8ybzLH*_bP}Ieie^!mtWjsZ;4O?$OQ1X-m^*bTzuw5<|^yBxzfj zJE$$V-UK<$q#bu5GW=&IJ-Q@xT`6*Ccq)jLPnZt6 zr7+MbU$%|V^Pog%^C7+*?evRc{LmbR9P zBy@Ciyl3tQ3%qyWK2biFXuhDYQ$eO8D3P3 z>JV+{PUtU~He|DMy|Sh#AE(KL=E5{#YBXUsrz$yqCp@+@ zFkBx?`%rH2vMpEJ)B5R^ocITOLCKve^<^8&l@M?B z^0c=t?q@>W_BEj^ihe@}yUf<6tF*1Xc^2>^N2XVsVn;vNNFMy%a9st+^lDb@7zP_% z%-59UuXHq_f{tJ_y-E~2#=u)jtN-5qgXM~c_o8MiANo>2R~j0c$fW}6m|QH#`>zRV z45l00*>9EctK=O)H-7O zkeFo$8eBB?7?507)bh!udtWH}#Y+1eGYPKaY|^2B&S91)9l22H;LY32^-|#(-ZxND zSNLdIxF*i#Z1&!|Eqlse*bOZ2gHyR4$Rek_5^=K=^>QnqvIU+iHGgNP{uWwik^U|5 zJH^eU?Zq`M=<4x(*!J&_)Zf!%fj5UiE^eX%Z3TIoGwS+fPe}OlIFLQMZ;th(jBFX-|(b9c;mSoEg>L3KLiKa3^hy!kqF36BVwk2umieOIiJ|cLXA;UbT z>@<2p|B*wQg~fMn11oToDa;-LDG=ch{nR?I+PJPjZv7s|qfs(9fznl}WIVXL)^ zJ9$Ys=w#w4oqay%*7B@d!(1!FJGQcpdWWw?yuvbxWz=vYNhVOa_JqYoR8l{++K~5_ zhLbb8#GxFN^Y{r$`zDDhBiP2S;#8eVcyc%_*oGm93lo*Qdq^YDCYfhgsi@=@J?6wN zt>hVPn+$ZxC?z@=702aFxkS71>aQs2^LJ>}iNl2GEqb)jAGhjdR-}0@`qixGu0A`l zt7>Hz=e#Xvfx2^racybcD=uMJ>Sw9#jEbkJ&!ZEixq4!aK+%ds=NO6z%}TC~`b@Mj zjE4Jckv#)OAh2S!8$zvObxS=uIe}qu^2;5%E^vThPj7UBq0CaB-|kfRtTCq)j+1HQ zi2%IAJF>V!BM`Vm7v?njQXJx3tyi+t&r$QBtL7r?R+GpNkXq(;@~u-RxFU@0xgvUY zDyY`UV$jBIMx*gu0XiE_AhC!;~^H;==i~Yugq0(zt*%~OBUC*YW5*) zClMpV=uZRaT!-HcLFI~uR~RccNvNhuq9ZMcpd0EBiq-bf(^*vBnc4qhDwmlz#J`>2_%zykAAR2OtVw15$)Kyg!A_`0nAsbf%Bt2Gm` zHCq+?SyRYG2;H9yhLI%gK;!x*re6|^`%;}k*daz%>8^sl9S@H%Hy}3v0=7~+)_@Ra zqMr(O`OOWmA6+5P-*x=OK3b!Hvvs;9#L-$=>3KEU7UnSgr6#FI`550L*5dm+fMU$# zotS1H$o!GS3ag$_qVTmZiFc7i>yIW>!#9SuT-!9crSm7X(H(+H#5a9HYdPf5JfCg{ zE{J^Uf!fOs`f|?m7S>Mv7d)^`MQ`@mDPeO{|aRQ6eBh+v%a6secPBe_` z`opF5Y!f@a%pC+v--6d5%S-FLa>UgH2WhkAhA`=XI4a(XHy%$ zn$e;$t4rv>Og}Viij_MB7^iixV2Rz0ZHG35)T-O=D1R3KLAT;97rHG=k7tYD$e2(h z{+od=^EU6QIk4nBhom2UJbjr5QR^ctk&r3OQ0e*)8q3=)x;!<|{cP66AGB*Qb5^sh zYG|JOncWnIH-5bN!b#`i;1&a|V{?^LenAbFiYTl{-Fq-%2RTpF$xe$iOgW!cPHSk|Alxwwv% z6GL<~;-h<>^5YoH5M*Zas+C>BV2_!hE;EZ;CHaS2Mom2D&*}D%*wd}|3p}(#G&yU2N4i1o7@)aY_$)zbfUjtuW_9}Dy z=jQqjeO@W8AqR&=Q<=+c8I*HS%g_91B|$>Nb|OKiM9OSyVA#<;JE~HC^XxL;6*Xj( zCBYLy=7>h&b0hbY$7AX$qacUjd&G*MYuzd{#|S=i zx2B9mb(SOhf-PaF2f^?qh(8)D-Fh^xDSiw3Hx*C9hG7YpIj=4pzMxt}Xnf7@NBAMS zs*V9Ei`3Wzpo~q*LuLO91Fr0*)B1Dp5c+L%Xr?1LoG~s-oSchHC@dKbc%*Q&;p4Bre*%V^N^08**$J}#gk;) zftS8_Hkq$wAZI~#$%VdU@GR z?E9T;MD-!V4wsiVyuw0Y$HAOHp zt)2Ntk!QD>rexEF&G|ZWi@l}85gxuVUwV2y&}?2|-vd=a1KpmyY+mVE%Er>oMx&3% zYJdKI6#{E3IBIC|j?UFSRJ*5R5J1|qu#bC(#1uq~eN(*u`VN`5B0W{q`#8jXL~?#r ziRNPvY99a*D_RZK3&7lQxMPM+pmME`tv|00&osU0K~I;(xWng7%rw4)L$j2{D8f6?)`j+h7q2*i+Jr+iE?>Z1JX_brsgR>o@EfVoixy?$k9o= zEt{A#Dp<2TI{oEbJZ(f$OY}1-MUOqxT`~`}a3A7KwH07M$l@50Fr&Yh%(%_jNZ;Cr zL24g}Zjt~HS}fdW4>do0uaCNBwhS*H#$7)|Gwo0vEN>kz9vmki6fVu4!E>2m+e8zd z`2N$!>Wy&S;55t?uLf=AJ{#!Xh26A3Z5%w=M?#J)-kQ+iNfCVHnnN#J3{4Qy=OxVq z$hx;NOj5K1q<8J_!l}E_cl7rK?<%Rgac>OXsS_ISLtoIJ-=PK!AA_e^I0s03r+$ui z4DFCK465#1$M%eySQW19n%RD%4nptIf9HUo!i3s8wS|j&Aj5`{Eg{xJgaQC zJllG_#`zn^&|Ml+TMv8%ly(a$L_SzC=xDzL@)0U%zMByfFE}s$^8Sb%`dj)TivE%e zINzDjKXZoMRJ;=+BJf7Mt@1_`H>MQ zG3$IL{FvW*qkg-eEwD82f7Vu!Kb9)2B9&$rDNnLN-oZY9&j%D`U^0N!3QKd~5rdh! zczX~ZkT!B%29~s?GLGZ_N|wk{1}WZ@JS)$pW3H#x+$VLfe+eZ#Z9SP>ViF~OjL-Jb zdZ-1L{bB0rxpsB>q#a2z1{J7CT8K9I(vSJO+%CvhFTK3IIzYuzIUJ0Jk!b!`&eBo( z*ZW(H9COXBeh(meIA+2ww66qu66YW_1mnY9j%(dHRI?{EKlZ(SRwS)LYkUkiUwj}d z>KW?U+tGh>=^}G8lWPCTid}pVKj04do*^o-F2*u_K>furiZ5w!0~!yNS*_}P#Qojf zO90L9w1>}XTqo)}mZ@rA@I!nU4(E&g_%kVOK_$&cMSz&QEA!Gg-v%Y|AiN@JQKH4{ zg=zUG!}@dRU3(&S5cIn2rl&&X$fB&?n@u3HpHyHq*!6KWN4l3PNrEg@3>G3ZIQA3e zY&=h$F-OaNQ?XQhvfAVVgXG2KeJ~oO1{!`7W?A+dpCV~(W+C%hg!vh!OZ*w;FG;2k zy7(-6Z@}K8v+F#1T8mY>{f%lf{MQ(C*{LRFF0)fn`U4{m@5}n=gzg)c9sf7)Y`<*q z%&cp{DehJ%L-dK5KcPnS8Aob`wY0&ImiDQ+O^0s629ncfFsdp^n}_X;J))ofoY>FZ z#obTJQ&_?WG`k3ULjF8&kcY>I$QGl!hA=85?LbJ=qu!f?Vu7TAqq<)2iTKPBLd*9_ z8fW{cvaN2!k-LC=ZY=*c+JpUzv+VOHGEaY~rwYm@Yl51))=yK7gM>EH2X&7Mfh^aJ z>tu=rvIYTY+`&KW%X`2&XOX+NE!K9Alg{yL{LHQ`JzvD_0;S+niehwcc@9c> zoq)R+o`VK>lHTMEceSn;*F$9pIAwd_g}QH ziz#G(5D|sWjk&8%8onyT2QVio`e2YC(MAd1vok{dqiZ`=N$qq-yyei9=Knp zo3=qg;r(@#(G5Ak_ybPa12tqD+702c50CKMy;(*O-y2aNIK$4?i5YuKz)>f5sUv41 z1D!j@QD;wusjb8pXF@hkjJ9{f6-gv*U#ot2JAJH+G6>qwk~KcF5zBfdw($~W%#yH> z*dZ8POJm7qQ4e7*-j%$6(1+dJ3_RGwrTN*t*W1C5UndXvSU4vO?kIUA59;&#II%0co<}_0&}92`QGa3bc_u zSfyX@kvtjQDmV6L%5Q#tMDlKQw4s}Yyt#g{;GgF~hR!4g{@3H}uS1x$K!RwgPg7+H zMdB<}2Far9Sn~y;I>Dm5HzJfq6Od-N^KkL(rgdur@O&Z1M-Iy<5+d%U3+T6 zv)oHmI(aW0Cbqtr;e|r4Yt+@EzDm=%HnnIOpdNgJ*R83D! zcXv&-?&`_rUsm>Gx5RVTj;J)7Xj3L#ByibW0oi_kHclDsoob|hm`awct+ewrsi0~{ zE5UB)z@>``+hC+@NrJgv4AxySF?j#zjbBnT{w zK`ssy_#t4v&SPxq0-EHcx&&AK`!sF=_jmEe2+KYjxmS#TUPqM=_iUMsI%o{b>8(zW z%j@fl*JP~?s4&waR)pzTBT8zSgw1O>EBj*w(;dy}Eu!z~q&1`s)>`eHzkC0%t0X6f z9XOD&vwiqEA8+HvJVY#c{Mu5O^GAhjx$c~3+tXmYY?n8osX;0_8FP6TQ1f3+Yu=CP#<1ygnF;hjt*<7 z_=!y?oluTuKu{q<5r>hx`c!Amt0LRFmZnD~^F+t7<-2Tx7E^$k~$RACeXw==eu8N^rt>;B<6 z`q`JO#Fg>7!*2(<{4J+K0$LkrSK_~?8c-;8f1j0GYb2uYY^}7eZfvp?grY4LZfeH| za3|tKeD4;EdUw~O^MzZhdG0IdbfGz;);3O|6-nm{YNpG+5N(}F?6JyXO-w&0%-a?C zOLNA033Ol!$-QTaa7E8iZH>7R9EQ9Fs|r76pu|5$!#Kq}swYCT%QK&?Uq3tmZRS z$jFYgl+n-L1MGg(fiDy@OLM$Je#=_UV0;Jz|N8VXkyW{m)wQks3qKRZ+%3;dV1;{5 zXU^Px?Yyw3?VCtw;p@$HIf7R{Zt?;5J(1l{&wYG+Tre$zL{Q}kO4wJ$9GmJ=H2;ZH z;DCcQFfE*X?w#99Eo_{Fu=7XrJe?cb+p!(+PF7&OL@OVPK?0TfeZmHDy?=1r-W--x z%QcxCY=pT5V~nVGwyNe+wcmKt^NZ&- zwfzW0jmoSmJP1WK%d9IO9hR<%((@-~QqTTXW!c6R^ z^ikSgcw|~Kc&yKKRBBR%S-tR(ln8MYZ0%&0ta0?SPyMjEaU2H|cH!vz< zw3||pk)P?9={Av45t{%uC6-as1W{8diwW(rd_vbKEDt`leM8!C3@59s26R&IANc)IFp= zA<3>IDegM)VO>XpZ`t&x4*2dl>mWZMBKvxh`U!W#z0J4-piyr5x%zqK?qqeLdLUr& z>k`gp2RG~T!F{k9C{s+h`nsZg*(hH%bw%>VhkNlI5FO0jcbUGxSeGOVk9VYLC;Xg3 zaeI<{o&PG##s(mB3KkVt6|x~W7H6yz=Rz1l+tNw#7=D!$I!1QIT23aO8M%Hn%Zf*6 z#GD$QY=dHW9x%*H^v%{btB|=2W?M96aToc@#sohgA*Heo)$C#@EKrS@4XsbV#(XsI)%yKRb`k?kVcT3a7W6x z4ygxW--nu04zaJfR6Kv3a5bYe?pZdzDXC|BQ*U1yN&AAXf@C>R$AmmV|MR;`=D>{D zA+#x4D>;A+Rfzf8iWD=KKMbWpzZuHoOL~8g1?bIPC7k=fxIo<27`!K)A`KqvNn=DL}?g=Pt%ox3a$SM-Yz{T{IM zqk@Ll>jQ!wd*0_1^2>f<*FYWO#5R3(1V+iLu`Xc5(1h_V6R&eHZtpvUFMXV~0;8*E zU8iC40Y?s!yCFYIpf(=C1tNVYAHyP+^;>_P72Kod!Rik*LP^RW&9YUD(}uJgT2!_R zrR%G$>^Z&S19c+qPz+9jt?rK)B~aBw4;*al&N$XQq-ln+k~O~y9p9@^DrJ(9B@N;T z5_$nxem^|OZ1G8cWzbTCwl!5C0z>J|wCGMr5r-sS%w&_f45R!QJB##8d=wESGNH7* z0&=vn6yzL)e=90pvbk|gcY*%D{mgBpAIjyPD&wfO_g!-#&ZWPaIdr6^j{P2cKh^I0 z0Vqs9#0|4hPhWZG&^p79A9&u5z2_Q(f@y$9a=*dELKG31g5L;+p9=bqZt*WASznm~ zAXo=7`TBKMFAN;+h!=MKt@_X$@ZJZ92WF}vg3Ro9p>TplSJiK6H^%V^GpSwcZl*FYTB54{{f_0Nv$bs#!k(@0CB|N$!{jAks z(rmyCf-zW9kGvWr-P(aANk|Bhy9UVd<;VALS#afz4ewXX2sQwP7NYSMve_!MYwW_I z79$>nV+m*3RGbZ-845ErYv=&#zvnh8!LpO&%dC9W26I1%e?<5{0{0(btn`mS7-LDh zOp_VPN6OCn76l^x3d$^AO;x)bqkF=_@@I$_F-9Sv8Hsx9 zl2v!L%eK=3Z%2#5t@f(I_#&|7}W^h+Q(hNP?=Dw%#EL*QD8|)os z{lmjJU#IQJLzl!!jvv-2@Fs9dCW7YFUE2&hOGS?dIyS8z8HG|at*x}!z*3bm& zJv{MhiZJFocplo>3~LdIvw6ezWVBo9ACB2JixGcXZR132Xq)LAU$bo{Z_94Ld4IWz z6jnt4nfa86mG{HN%*q)IO)_|@@K=2u58+e1+K8B~2Z z9On(|aFEt&dflhx&@mn{8haT=n-I`4B6t$5QIBx3k+OHq_mbr+b8bvS1W_izw$f<(YsgEERSqbdMITMz5{-!9dD=|dT2f2 zxDhJ;O{2mpvya1zpR3_}(iT8%xe{Z(LJ>D`&FM8}#cR;;o2dw~|CXr!cPEoaKhof} zsMek|=$V>9&TFi?TFT4$pGkN*%Xm49dpS#cIZFaw&az(K+g?67Kw~M0)pmel#utB@QdSVXG z^)YHmVAQ7c)>igkP#qBdrwh09#lEUi^p&eMSkHFnOaAtQLg+dEyj_+C(0Sc#hl@8# zwgQ4?PXoDF5#G4pZolA-I(o={y(tX7se1R%0!)rXd*36|GTT3*+z{q)e}CqGgXe$4 zi>RA1xYD5(wjYDR_AKt27Th8&{wKkF_jVdCJDx&>5!}hmr90+-3 zrDx^;9pe_A_a`FnPeR@w2uZ%sxx4|a8gYOcS8YW3@De4m5p`${mWZYc>5D9XNfx(} zYlf5i6Srk@sB==Nv-XGJBv5-VYWg8Nt~edk;4T`uhdXZhK@hP+hiTaoETNGPOQRa8 zlpivAOx7rzw3a{Wz-qyRi+T`figFXF)N{u6r?Y`=9ho%nKhy^0DAI>(u|!H=KHIS&5`-8oCr?KJqFed^G6E?YvHj4tmC|q z55vw(JL{E&tp`*{)??FS&>7*p`v4GEM#mXz8KzhEZ33~;VH`V54;8H5{bn`_7r=1O zjq;j<3gv^3b&t=MpIOpwP5H+=Wqu~6q(B<4RCKLuCp1Q{+B)l3gL~A4GJok#gfR!0yXNzGQ>{aH0dexc+ z4GdKGPGd*l6En(?Lk*?TZ~!h$94v$LiAYiZ5{ zMOl$IBonblC&()>Ijn|?Ul<#b9F3g!&%%-O;*s-0k@I4a^CFQAgOLMH*jTnNwx>$1OzE!XK}ygx3kgZ5sI;X1o6_F-#ugLrh~+vo<#p(86%zhF_`4$RWKlkVV+ z_=kv!fI-*3RV8XQZU47N8*PUw*6jv2kSY602$ZU7DxkePBm`o+Mf4(is4eg zZ;aFTf~5YxFt+d5qsO%pBxRDXxoVR;5?fvI?f!5Xw`gY6f1wGe4+{7%c`G;e>G?cv zSnz1^FD!m}q{e13wa`uCXtIRVQir7mnB{z~xph`|-zhroj_iJi!y5v=M!)keuAjUk zNk0Wh0~s~n-aN#aQ-ra`Sil|TgBJCcW;7RvB8~mS#5h)w8*S-kEirB}^vU@Q+4mTz zGc62urHI$YS_UyjW8Fw<8LoVT` zGmbrcqm1AQQX_X-YIP0R5ToUd!r+2VSvN)>P__7u+pt8K`zZb&(w9y10!@2e%;Jo3 zWYN5wVJ4r!^4vFU45Vzt99JIW|yfSH@*l)dWdp5_K4x^bSuYj7Vc=o_x6? zKlT($sYs|QD&G?BhG1cU5NYuzjV9$=m<2868oitsK?<{E184FjuZ>`Go%-nSK|kQq z$)kvKb7nom?%O52A41eI%rO*J8On`CUzh2nHM!7q{S(7^#3HXo4BpPOvHzh~ z)J!fbes~HetCPuKlnl(ao4UpY-J9Pt6@L$?WONi24Ds-!I8%@`8k-ddrm4g@gvx98GgqyJKgkeJt`DFcpb8iPcrIX5}k zVD|SWVrbLG?2pX^r*PCfK$O+)@>U|Ua4@oP9P*!iHmr^YxHU!tb}8$9@%e(eqqRaRDmd~?k0KsAS4+|G z(gKt~RGlZJ)&>)ah8`MfLB0egn3Pazz4j8qys%4CD#d3nAQW?~JH%o~s==9Z z%{%Gx-vJ3ps^7Vd3&bU(^DuKsELr$lXAz%i`uvUPTdvZ}s0 z%N6hUNbz(_@N~l}M)E!^v zq2;9*Fq)HWcuyJI2h@^b!4ybVQ4S8jGGWhiZm52pOGa+YU$K$-@fHl#q$Sc^R}(t&EEm1xWa);x*p;MhG-vMkL70D)b*!A-HbruepcsA=&@ zWh}(CtX#oe-N9LGGiU!p1HnRk_MdYRCrx@0cM~EgP5D!5D*^AzA7? z$J3~IaaqDqWA*I*f@GNNW{6d_aG31h<~ru$lOkg#B!_;5_7#gFqeGdc;UQxVs%aUD zXvIKQ;7ZpS0&!v7Ag-n;*E+qlURMxB9t%yM9*7~2(W>7Pgkwl~-0KJ;xx`+&4bDO{ z0+Dx;o$q4T!*Am%?sC>+1z}C>>A3Q_yvgS^#OTa%&gU{1;gws|2kKq2n3Hzo8ooy{ zwU~$yVOP*o=-^mASNvqoE2)C~-Hb)u`4cKbCKm-6X#5SznJaNJqt(*F4PX1CsFsZ; z^(B_`6-_3WmZ_kkTSkoG+@8BM8kUQLG!ECk(6BlZ8wB+t#aWHZJjxfPWKdu2eo7^()7w^w;zrqyUO%$+5VeJx6k1impW{k}2Lhqz00WMQrk-uw`y4VR1sp9u7Z zDP!A|z(uMMzQPMg+YC2qD;#atwn1)TU^Z*WI0YpF7dyO&tg-$q_#?!nBr?d5YBRW@{|<6v{RP3p@_}Z2E_J)h zB@(jmjCB}Q?#e9$)ivZkYw`}oFsP_TYb;ayA)x;|*QLP+N%(ccCBg^I>GO>wpc{bv z9Id*0v#;qR7l4`=UAwDzhw{$S9WFYEHc1@>q8yxYsD25L$Ly&O-}i1YeDCYrS3SlA z>NVL7MPy}TOA4eIML97-1K+GIO@8m_jYa;IexsXQ zfp#qFouBJ(>}G8<5cz4QkDkH(uXKln4_Jh|f5=23T}A$g72KLv*3fY19G>%~)=vS& z$9_$(EQ=s)rU-Dth#@k-Uy)r|k!@S?hhy;_c~OP`agk9?vazpZCM3iUdvea+w5I!W z)uVuJ^~!)oAUaVQYdH5C2cNbH>dNWGu1pt#z^`AoU%Mf=?f55XC7BES|9W>{4E#N` zD494p31uQRMC+kqB0UH`GFP3dy+bVOQOf!5UWiD46q^CD9bvmpJmogzJX%yU>vc3BtbaI-BlIUD{UU z?ZEsgi4)iqUIYaL1VOprelWTsn1n`nFqfXK6hUkSQ(E%LxHNHm-MPAveeNA6zL#(D z&XUyLE4g(s%W6C?mfd^8!{^h{BzR~`tzy(Du+p}6RaQ1cUqc_Ev(Z<7Gc&8nj3Nrz z^kAJo%T1Rt^rM$QT3%z;vZwVq*) z-?nBeZX&Jzkiefl7c+06(Vn68Q@`!(G5j%WRRN%#mOD%{KkzPBNF#eLR12Yk2#n_n zLcM?C?qU7`s9*E}{Gf%u(ZeZcs~ZRBpL}!P)VOf1KY6O|#0*!7Eb$arChWU@t-kWo zRdN;y<`uJ>G_95bzpID^w7kcTQo~3eT_97q}HUn%4FxInZl(pl%P7cC|B5V4IaUHU! zSbO(s4bG}47V4v#>>!LO`%Ba;0!Q;`|lgS~s)tm9-I5qRe+{l5y=o`$q0Yq znDCq}2CyjM#^XrX22Nob;|;T{A0rq_SQiO=ce&sC#vFZM=TB#F^HK!8)& zuAn*RyM;r@PCRAy1YZmaXMz=Fyt!_rD-$DUg1LL#f!;S)jCC{T5meGI>f&_!KSpS4 zI20OvqKN~fi3Hm_5Sl2<8FoZM+O6-R&4T3MuvU>c7xc35tj#au!Sh#7o{H-IXsBfp z1a@c0hRhpeD||>11Sh*O{J71o0EyiJhXXE~s3<`xwFVK}{j6f7qj4#EvoTXr6d-)$X_ zcf-tu_&+78TnVSouae9zBS?mcXE$0gt-V;M83;n_(X8*C4E=qRAD}u*0H02^+KdCA3YLWb}t(%3+U*#tvJi znX{)(VL)>rfFL$TH^!9|FR_sF;;Zqnxtg6&NX>_QR&=ZWfu1f%2<;*scNhLZdKJ_O zElYmQb%4#ci_)92~txQ@%uF|XzX8B*{%ab`+vB#e@ zG+SU<5hjxmdsp48%n44_n$dmExv|3^40G;}ie{gP{W|~c|K^)thG9Jl##8&%%$_d1 z$k^rI4%>IeGTsUs2Huo(1%4VDj%?)x!X$#eLIy>|Auq!6ul)2f1=>qyEN2zj7if_~ zn2gQ*BaH$%pbfvN@iJ;;4q2O^n7`$vOr5+iBHhn%PJ5zydM)@Sa~j~(#ys{PFa2$6 zL-fPEx>tPUG1=39BM=(qZ9NH$B{>q@gz6pO>Psq#3%M zMe0Cc^INjnj0fe4-$9X7PDopAbqsg@ILA5Cx7o}Xmp{bf?rkua)WQb6-J-j->_wd| z7SzG~%DZ)1ZVpq=eo++7&WNgG7yxI|p2(Vd|3o*Ae$POB1Q3Uk)J>zmrlR_nBqV|& zt?!PW%6I#xD@{t~^49Q$V{2DO&=|ShTv^aqx#{)v&gT_01a^Pz=cTcOuMNFz?N}lf zwjYgk2H>+9>jlVI-5yobQ@a$tJ!}5dXBttsX@02nKKMTXlt6308+a)~D8doLe07*N zNL*tS=Q}mb*QhZp8-*@^nSOyZ-8mAzM7HIYN930yf%w`bxgyu1v_q=B%+cnmNb5*D z-EOxvh2^A>&IV~E?hg5cNWT`Dp5t~toW~UzDQ$JL9Qu}Vy8L|pWvwJN+NCTfHKvOm zDQ!(JC10|M!Z|IN@&jXc2$};ZY z%@LVe;tndUb_g~+%>A?@$X~edw&+gwE&bBh><)&R4sJ68vdv5wYG%O*GaE*lJz<>L z3l1@RLz&qJ=9zurFf$K)WD zVaJ{fF*+h-omUNTp*H?Yq~W&``eY-E3!KAvhe@ZRQH?lIT#QDzgLiur1@ znb(^we7Wi8Ys@x&v>D*1n;ZEJ=4Sq+xdm5uzH`E&-@Q_QJdyajSMw-rHvB&~I|iE- z{O4xJVY9;j-0TE!X+>HwaM>&maq=~wAns!m`@MFQHUj96OB<<;O432U<)9r#YhzT0 z{_5Cl7W7%R_uq9HtBp%SLmZr`@kyo74&I?8sTBO+EKN9w6#u5n#H3QNgE7UmLnJKK z9+P{pfIVO-|GCFbSV*NO*y;ZOP)i30p*vmqA2|R3@^t_JP)h>@6aWYS2mqs0Q?uoK za1H~bR8zB9i&zE&qf}F~vyrh31EW+^lV_eHe|%KM_BeiK=C<7|VN*6FB!Q&}VUy4e z7)daNKrjJJ0tkq($!^F(*p11C04ha6v5Or4vb^?DVa0h`q ze+ld%a2J8Q3G5}%Lm)(8AA$V@?jdk5fdd2%61b1R{Te?+_yGbB5_pKf!vr27@F;=D z2s}>U2?9?Nc#6Q&1fH?*fAD85{5k%-#$T}V7x_ynf7uGd`70`aRpqZ)VFZ8O3NHQz z5#OX|{;AVc{+1O+^S4$0j>`W<#dobRe~!Org|Ym7>h=NAKBUq|D*xCD#rzYhd`jRm zm49x9QhqB{z98@=fqxVDion+dzR~!%gukPazNgX;Ryd7+PxJps^ZcappRG_!V*Z8j zuNwc2@b4P`gYci!^9_3NF9L_Hut0!SFv0O@Aygp|Mb?CZVi2lDXu?9xRx6g0f2fZQ zpA&ruBvZ97mFxsk2&587BalwOK_G)bKLVKqvIz87MK*DcGCWP>5a0xI2@D_>22w94 zfk6ZYTale1)H;;FF*NlsY8Xx+kH825E&}-k3N%ruiIJKZrHRp+7^8`?nixkd;|UyV zMNmXw0)dGHj?+Xj3P~KViAkC$e<4ySfyo3;&_o&Gasm|uDhW&>P(@&>CZ>_ls^!D< z530Nj^v~gN0ZV294$}kEHF2UQYG}2!nwX)9nVOhI^Pi-NI!)A5LxUz}t7487Li`O? z%(cRPaWb(#k4p1ZvA_xk`K<`VDFhZ0IF-O6nqe_*otv0yw1_6*2~Y3AfANIZDw@R- zqPJ+mr-`MSSf+_qt5`1l;f}IZ1Vo!EPD6VT?V9MoX;ItonIKw*=%msLO?2rG(NHTj zu?qRdeHE+4=>*OoM$V*;Yc#P|@2H7&npm%iv&`Drn%F?YZ8Ri@{}6xY2$G>7`3aI8 zN#G$fI3k=b>7-g%{Tov9kvT(yqKx2obce{*8-sg;cow<93q ztrdUQ#2vK$J2kOK6L$%)11Kk4YILS&@7Ba#P4p;bqYauSLPXw25AD~)J({?eiU%}t zP}pgL3<4r5ExA$LkAiSai1pcr>72~j}i}1=|L(zq=|<$@d%Cos3smG{5a8{ zAn+uCr>v+sPn&B|f1f7_Jfn$!XyVz3&OE1y=S?BLK)U)Ob$W@Od)X+7SH!F2iC&}9 z>pGxKe1oQYldAtD@Rr&6ZSfB2%V8@0i@@sy-X+>B0w)ouBT!GEfxv76a|p~O&_v*V z0*44ZK;S_F4-t5nz#{}6CGZ%5#|b<^;7OY8Jt}DgECl)xf5@hWSBdBM^%BuOAfR{t zgurLi`T;pOHo}+oKw$E<|5oir` zw%5AbrudOlZwCXZ+}qlUBi4J{aZweW!3OWjAaNiV^lfi$til-@+TH#R9Er#(&V~cc z@~!l?Rt4IZyMs7#m2c&dBipds6n|5|gA&1N<`FE_e|b;q^mgF$eNObQY7DsBJyTYA z{rcn*K0Yhp^9Q}{5t>X=ZS`R-hD(J(Qh1U&cNYVDxKH29XZ;BXny0hYJ5dpkO6yeqt|qiLIPOC90XlRDk4zTm28 z+1?RoC$b$iD8itxsU_Ny64PP|V^*MpS~6qSS>x^q(mILm#GMb*XL!4+ z%Ikfrz0@!WHPBq2E~WlvrQF@LY)N~d)9r||@hRf62yi4d2OZbsm z_evbnYc30g7=8o?piM@eVkooRt=^!n?lHuv?QRb#PPl8W&)*OTZy!x&L#=N2E)N8~ zmA>|l8Xsw;!?5d4T+^ts_ICFwBBN=i#&@jtHwVa6bRt=c`FL6a#puV}_=ifRHdi%N zfBSvdkIl!u!CF~sYoLoHtTdN32HI(aW_lR+*4q|DXEUX}J%AE(#8c}!{eE36HlH6^ zLcs^xSB+&LngeKb{f#yF0;A}mnVrG5&LH|IuY39N)WwHgvf{c_`(t|~cX<6CBG=*O?(T-HQF4^Lr5D(cX3w_jIrD=s%msq+Rq+xLJ0SuCn^#~ zs7M&0B5{O@*bzubb-Iqu_Am1Xy8IQ(J%-#3Dptu89Y#GdRG_>y(6mfRIjHX5UIwnxoLAmH;hZe`?e1Me4u-(E}O^?e_*p)dy(zQIUDPrdPUy?s!e- zWGxwy4vCf$=s>5L(`)nGb{{G>bwcK7_ImUwWSHKjK)Xk8vHScpC{(u2Y7YbhO#$?E z$_k&ii?k@I24nXey+S=3+XKtIevF5+$Tg8W=!-30ibO`x?9e?64PDh9e^_4bUE(wC z-@Y3A%yqX@t-b~2kGurQ*~Qb+{GH3qk*fVBt7KQG)J6)R>lLY01*v7fUK$#F%gGgV z=+s*GQu0dSn$NG-Jl>9F!9d##_j26}L?i!PpNBk0N(^b5*NCgOMqjXF7J6_>Ef~li zv^DH%Y4j~Y%k{aDO>3~df75Hk6%--H7K{yO8B5x|UcX*c8!_85h}c@+;%ml%t$Mpz zu}}}QZ0pnoF@wS<$~CFeOiP-AC&$(1#ntA<)uv%Uh}Nb=qLi)4%s=Yen@*0e;&7Um zvYPVFX4Jd|t)Et1)nHaEwNo0(f6TI0Rud*CwHet# zt-AyD-xg@~)FKxcuiJ4|$|N7gnNkLW@{UYYt7Eip#2hrCihu`qtZ$9a@14=PywTg< z;BF+BW1X_n3^+KX+|(NAK%&T_XOc-p=ENk#eY?mcVkvqTN>J;YTD;4RC#%C9jhxO1 zhRIQNGYB?JqT7QJe?4{dvIgS8rgIeOmfGPB#-y7@Fp~4CtEsOeI!7%&;9lZwSk>k= z>AmF5Ila>Lz4x?}hr{M*vY8Sc-Aq$4tmKX8?TnCYJh{Bh-4xXKUAMxzUV>wGlkRmR z{x4wqWg{F&dHTB2>1o|aXST=0jefe2dmA+i1u}hl?*i49f4f&MYHD$}A4TT4d&x^M z^mZ(YCT1CV3o3eD=-{KUfC*;3nPB_}Zg48CBhoE7KzmRVXmYn2gyFrg*ZZ0>J-X29 zB6(Sr*XwC?Q_Qd@HZjOGWL_6e_6&JOA93{Bt}B3^lf;gd5|bH)(+7JDO;3@KInpAxoOmlyvn0==|H>FM{(r!-ebT~SdC;wgO1Vx z145*avzI;|632`HZi3shDqeh1K@Bt|U5UHp^SjBpeR!~FTx)sb$Q#)!S0my@vX0{vg=m=Yc@<_N9iEihbIYK-HIcp2k~*i$nK*fb7z zS8$XbVn)>lIy=02t8Np0^oKCtFdxV{;(>6R-W?T0Uq*)hSUAdryL9MIh;ozg*~;so zR0~xhe{Vs#!Mcnk!uDv#u=}$brwl{!`=Gnf)1{HbkB!%J44byPs&eP((c?zqpVh{$ zW!r3Q58G~IcM-Uoz+M791ojcQhrsg$ULf!yftLupLf}*OnT>r;;0pp@68Ja!4EJKt z>^UoVes&xcLaF>ne&||r5 zyDC1h37kq5pV`Fc;tSj=zqiX-UteS7rwxHxuPVN@iGOo9-NeMwY2gj1T~XtS1mZ9i z^U>;=5vomm#h21kZkza8d}HGS_&|)b2`Mpl5Z|J!I7&i{5hvVIuIs(m6VqxF--+*O ze}o?h{AlA&KFB71549Htd?-K0#=as!r}c8iwy}@d`!@Cof%gb} zK;T0HAF=ltoz}l6(Voob+4wL%+$Mg-lK72xqhcm{8H0b+yJ>h-aN5N0;tw<=C!HAd z+Mnp1oW2gHKM-`f{Z3LaBbBv@zetede`q_$BM^rrP$g!QIPbPef-giJPMnP7j!cX) zPe4vLraWjDz9!wdI6L(0$JvaDd(1?|PMai2vMMPyNky%~3H&xm!zD=;zR<>th=U0T zBr8=XQuR0j#iWAA6PQHR5(1?JCKEV;KpBB!**4UGgkyL^V`W#MO1%jpC*5;%vzW&)Q{?_{(0EH^Hkbjv~8+0M~9k3LEsR*d^Xf0A9|4VJG$ zVdf2<-B49HaqtL~hh8G(&tP!u|M>ap`k93jCmwrT;TRgk8m(eTKk6W@UjLF{OEHuC!OqGV)q&%{d5t0kTb7^U*lQLTp3b8<3TbzYXI*3p?O^OvNT0D-|&q<1BURdWg*Z&mL5z2{vh>bev5pCcRz3yKK_& zG;wCkP$UKCjF}B+qxv;$LQ}DG5(9s!v&(IGVzgf}($-aae`lVXEC#I|AMny+BStzY zWI30+u}9E!E{$fWe;S1jB}j_p3yyTob^C%kyT)~_v(?w3b3GD$gAKXR88eu&npK?{ zufdEyeJ~IfMXkH31&_ufotRrRTU#M&5(Qd(Q z>}&Q7T3JLYfi^EWYo~s|3~K}B7B?N?EUNucXMq{P3FJ=(CHNE65925hleMLjcQAO5 z`Ujg-MkbTff1Ame2SpD?*U|**2sfEIMch_It)_7m1>W|k_29`SqWYapP3V7`J6mIh zLy46B$FXfvxm013Dy1nlsY;q^lcu3xm8!{0UQXU;I;NleT)xT1&*SG~Op1yHMM6of zG>R1dM09%Scxos(iOJ4#2HaV0;}`LZsf1xza-LW|e}YhLIR@h(@3cv^(hNLL=ywmg z)3nfNGZ_>%>n}seSepWV%&UT?QXoMOV$Mc4Wgi`Srbgp0z^515q*-Wu(n(UCO{(V| zHmQL!JBA}CJMkY2y53def3h^pCe4%P zqu!ZPf71`0&Q54VYV2H=}yS)TrVg(a)LJ7QmdQQQsTlyovVHt#27^=W?&d z=hk(C(j)X$BW%(F3PFR+v5Sv7G=pQJEF8TXZqF$aO6gSE??uvLRdU;;M$8qZCdv>! zlr`2+ezcpypO+e%`9f7%Vv|}VpG{gylx6gAe=7pMliy(DH&dLrkxWVppYr08>6wj7 z^}94negnqVJ5pvqMXtg}WTRz)$Oij9S!2wN^TMV(MaE z24XZt{qfUPt^PV8Eqr+w_d+3~x64%hHWWvSJ4y8mKTqehxOWa&dA&C1!({f}MooQj ze}-5eMx93-?af8Z9C0oBKy8LF+)c|c52M$67X2!PTmiaKcN_XbbOi;y-TxgyGR|2z zV|H(MJ&{%|7^pW5Pz$GvbR9K*)zDf~n^3xXCu1zRxwW&SMSo41 z7h`tb^#3qKQZP_~tJjliL-G|UfvB2LR50EJ5Nqazjd2HSC^o&J_W6Cpz3MR%e`f4O z?k7m^l!GWxYfV+dtniL#;WDM^;e5B8ZkCO=(aIXIdrsoz53PZbdrw1 zNQ&xb>Qi}VFlf9Q(QS%)Rp{4ie_nrFbKe$B{V;K=2rO?5ln3y@*)N{Ya09aG=(RzA z(T~AASdDJ4ESR7MhUYX~h#gl`k69swjB3BftG`F}HlzGn3};U{PVmUrD&`n8go-9= zyu-`R>*Z=cs+Jv{jp4Ye`uwI&q?@zpxm0vA#bdrP#vPtdFRw^q#@p=Pe{b_gEa>g- zxIgk%kYDbjc+`i9Zr1`F89NtsQgdn z)#|2iJy6^;n{ln)(>mR)9Y>Mye2NYW%6orXfp%IGz|dFW)?c+PA?r%GM>oeo`P2Of zdbEZBy#?3bb_ut~qhH_mf4;MFQ>&MZD5a?rb4kDcPPZ1%F!Y{0+1Qb&j0*F5{S>BG zqW(6{IOl{-QM5NVl1~W7dSckuF~>)F4Fw%HJ=~;!$>ZuxnR_AW3Z8Y;t8HX~0($f% zXlA>YKH2l?T}*2nTjuwSLrGA;u0**ZKG{I?!Z!#<-hvyc0@f<@e|KZ3!WB`H{_Zr% z*HNZ>BBY=L@O99AOnacUGSKA*C)>id0>Eal)9p1db{&1}hyP}>>)G~jo$bK-&Y1cx ztltn*-;MPfW9m0yy*uIgn-iY@Tf+0VB=o;Eq5o|O{cn${{~hah#MJM^_3Vio&rWyp zG2_|kdOl`6JKfaBe~f3ROZ!MYg!O$f_5E1CC#HTc&VL|*|APtq- zXR-$p#(ywweVOc`nEJz5eRNM`e(8?V(M>VfBl~c^|un_{dR)9-${`7 zzhdg|0?<{y{?+RTCjQXGADQ@L6MtgjPuXWW{@lc0nD|Q*|J%f0nHW#nNyV{|->57%*?piE z`UDeCH1TmJE;h$K-o%qkdWnfkO+4AeCz!a*#N{TgFma`crr6xOp6dEX% zKpKH`SE{22GN{;(Kqi4K>e%0f(`LIYJ&@zFPdkW1YcZ_rM@mP7e%r z?FHvv7_t?n-vvWcj|suB12B9ZQU~GR;KF^7e^)GZLu#>n09^C3@BhT-HG1v)7W9J=!aYP;&g7GOQz&<#39~AY#1eZaZ*aOF5w_>x) z#C>pl4@@G4OORYTZy!wVffJ&|vS_h9TC9i`E2G6JuGFd?n7RjZm3!c6cos&$+wd`b ze}#9tMzcXwhXR;*WfyM z9eck4-S8IdLB8&Rcag{UkjwXVE_>*mhzxZ5Sl?0fZqF$cN=izEmLyHpdpA;7`HK=TtoJECv^I z$H{C_M5kRyBbhzsG8W$015MGQ$1Hk#pgCGx5-x556U(r9s6wAdOQ zae1`pj}`+;jG6VeFRt*W^gtVhi+)il)S=%4=7%H}fDG0KgV=wMy2hOLD2*ebY!t%hsZ>9B*H0XMTV;WoAg_Oi9`09y}_va{kOxR|?52@XXX z{m9^Xig1d<8#6%DmCdVx7H{{9f z$rNtXN~~sW!5}Uu;38N>V0BcM<@9?>b{<;Z`H+S_c_6zGhO>)cEV~#=*d=f&+lg}9 z1vjx9P+q&?9y|*_z`9Xpe}kvkE$|$>HBNSo5k;S9DtdY^f37<^e=2Dxy9@pF-RP(H zA`hXs@tU~Dj0pKSp8kUmS2pP}rUjnpFv--!?nAG1KUf*sDfdQP$C>7X$C=7EsT=x` z0G%N?o!@3~Hy~TyfoTbr(b~^Iyz+WXcXW==%)U)uhXzTJ=;A_;1?&kl|0hukpF*ym z#t8EqjS&BtIHe+g6C9g(KFigi&FSsyK)6)m1^ z6mj4kFaitxx9Vx&s;ywB9B?D%fHcc0Q#zg9FxGr>gJB6eCj*Qp`ypCwK6#G$f4(3ZkE7ex4mos~Mm72Yo!O75K0l!|`x#Z|SEy#c!wmKp%w~sSAx1b4XAs~V zR&xOx@vwR+mthCjpqpFZ4sL_JJQ)sgJ3Pfx;60uWpWy-SD?FHSK7a}CWJCC1wv-pf zMW&XBN-j1Hc6@Y~FN_v1GPX0z6!L}9ow^8%f6?{yr-KC_4@vx3$lwzpmmddtycovu zNpb4u<4etXXQL@lm>TilLP9tq+?g<01xUOSYC!=3y zZ&D6gF}*Wg!c3_oUyQV`T~mrE1=g+E0w?54;l>S|<>pJ&Y*$yVE5)MGB{yG=>mnol zfAAW6GWIcqHI%du`-viqn<+%gcSxAcp0Pn<4k>5n;jeRVi>##zQs|6^YiWRF(+yxCLlqVFS6$Q2z7~T%LM`QBI}ul}0%Y%V-ZFJ;_hsf&&SCpn2xz z7fIoQ+zpl4_9T;|tGb~m+io$~xVjrgWZP{<<(h8DiJ5;(G<(BI5^RpI292MNe_}oZ zQu&$CpRa*|d@T&&>!FaJ4af40DDHEijGqTp`~s-u7ePJ01Qzhk;O3XZmHcYh#<#$3 zz6);WH^4o-8*T4z@HoE}{=sjDm-!v=Cf|d0*aN@u{W06Z=mSJk9VeT|oPJ>mZ^huG z%TdM3wF#LY#{kCm^9Pt{Wy3os_d=i{AD6ZYap6E+N>iA8q4hy5lG^9Sb&O@F`^Q8D#KTG{fi7_FsUZ z{3RI8Ux5kyH8`HX0h9TgFqOXpi}|~8s@ld+GcPA@K^i3`Av%f`YepWte{&1;ldx*d zvI@J}KuL0z70(b^8dbA2DSIEa zcNj2O8V!)8J_b9pR7|jn`?v_-Qk3jSMzh}y{V2HHiZaPk zQ*R5w?Zth%A={B`U%MO9f2ry3M$;X7Q&yk*rNy`$izw>b4fZUHqiN+Dpakl-94!-YbD z%Y_El2n%c%R_GQ=#Xwdj2D550e}vVEp=_QwhPlNswp0vfr-?kaN{nD<2^Tw0lWkKZQ@wgBPPUYa69iXQ`I?Wd=zAci4u%uduQnWKdsOqjnCN)8sQQ>0ugDNILA5j7hQ40OBJXDn796{b`%z?)l4iCoiW_EM~>R2?YDZ4Y-S*F(BK z+%B-_r1TBSe_@AKByCWcLnYqMbjVwfx!dkcy(1dhx56-##T1mqRFuUultnez#fgw5 zY9L$G!T_WX7qcK=oCG69J&X|zFkZ}t31SYEh`CTHPKK#sKGcc@uuz-=&0-<6ic_Ie zEP~U;V%Q+uaK30nO=^NI!VB9(Gis9$c8jHOn^=Y#f7J?i2|x6RcDM(}d{_kG3DF5p zi!R)U6}-#zR!&U2(~#+v2Oxx|un+d3%Q^u2(KGFXdwSsB6ep0Oqk-H@268}mPok)g zRFr%G4x&}xSKK#cDD|<6qLgl?WT16zbWcdi>YHT|4s>$&XY~!iA*|X%@IX-t)gE-D zIIOz?e|It2m7U{A4j;`oQc-iHbc2k8un;^%hN%;?>`0^$V|s+(;TXOQPy5JTcr+s^ z9Uk+Mbw9BjGutO4El-6V(bMF9RJw6`hDy|vywX3&KgB#uv}cX9Hw4d7{KsIEtX~mJ zMd%<0ro;35;YDfSQ)IFW7wX6>AhbWm?;rbyPh5Iwe;ulC3zd^eA9Zy4lz%k-4G{M6# zLsFq$(qN8cfq9Y@+)@%Om2A)^^?{XAGOU;S!nu+iF2S&Ljg$)4OKH%Jf3mq&npBn}SHzk@?YLyX?ou*I=4Gl9*>^l_fjPUs^s!#8e zk>w`X()Xq9?;#nx-IuvnzoQT&PMa0toR>bpB#0!vxe^Zc!MJVFMC}KBG zur}-_U;$1*mm@>+XSfP_;1`!7thCsTg~lXDm|r^di%g>DlhRV0WEtiMen^)Bc#3L= zfl>zymV!9Zy2u5=A2<;CwVhg11 zIPG2^)(Ku<>cpn-{%42t%o3AQ>YBHgF{>NpnQM2_iB`X}$&y5Fh$%T+U^b?<`gy}4 zW21V2sq^+Re>~M^X<1T;SrDlqW~K9jz1V`fOkstT*|nERSt2`u#u=dW?k$0o2W*-T(p8{arcWFrwp zNoRfaOjawFb^a67Jj7C>e5A3|5KHUbp?wr(Esdqee`y$HG4r4iyex?gWiD12$$8HL zCvM>1(WBjg9Nr22r9G%ad!azu4-=$&;dtpFoFLr?71I4sEggb7=>ZJ54@0B$2zt54 zAs{^g?b1`QMtT}9lAgz4`vTk`y$$zE?=Vezm)WKF(VRbE{iP4tQ0WskR{E4pl0IWq z(&ucBfAj@ASNbtdhtA?>n|`GdBLu~WFT=hgqB*)H;$DWBBPt`*FuLze+luZYMqC*o z)~|PQeHJUO%s6qOIa6Lmt#mAtNaM2RChS80|Mf1!eA{v~i;ut5m43s0`5oQ-AK;Mw zMEgDr!%!q+WDaGrfKFM1vt$cwlC5x!oCHtGf64Hy+!tPw?eLzQ0$<3fakAYIi9U5^ z^cjHBNBS?pr!S<&2Ol{LxZEH5%Gr=A4}kviK**KR8_}Kk1epPO1$BTBmU z*VN?W=WgIEN8Ne&`|w`s!C*u<0+4gw0{u);Vg^3TAsbPlMvn@)I}g8R3M)Uvvco$P ze^G**5X+5J21N6Ns8~yJIUo-MArA*l9szd5nQ}fjuCEc|4pd zPlR^47|xK7hjZkTIB}j6S#Gy^ZL`Q+R``2?Nyc?38)#mKmZetJ(%CG!V96mx7feaI zLoyazO9!^>orhmHS5XjR&ge3V=ma2Ff8Y`-aS2l(U7m`|n1;)!g(30`$dhNmSotKF zAlJi*Sg)7o;!+mGv41Y#WNO1=+$%~I#%FIVb6T$01{P;J8{{r?(pjR+Y0o^}N!NaM z?ez6dy63ZNtJWiR)%r5$rsy4%p&O^7XcvJ+UX1$D2oAXkwbg^OoyX5NXFD0^f1>-R z0#|m34cS=k${{pC&X6%I4{}dXGt_i8)N9~j%LyMbOADy74`*14t6qkyZp9V*ah41C zh2|`Cu^(w*e$G~~=`&602CFL@C(E0Zy|MfN8!>NCI&=B4ugbb8pgEMCU~wptr%1+lL^}Q>b&oQjzmk>DM)_@kLGnga&2ykoJ{QKzo1j=e zA1dVwk&#RIr6waEqD)BvcNiN1=$U+Lea^w5V8$>pFpQ7fJVQ6T?qo_v8M1_v6j(@tL%I2`KWVV3jw+K>0FU<>hd^ zdvd9BrT|a&|*X)RDq&K-ez|*`ueLJsdGr_D~LE}Za4fGS^BK#-u1HR z%K!PIEB_xYx-zopDd9!yFC{C(i=JXE8j}`wHrvk*gpW$>E@(xEu^U~@jTkU*f+Tv` zCEpAw@?GfJfA5AIc`thQ5IWd>82|U?uJe}0=~$?vcn`CT?zevcK)@3RuD zm&+fr>GDUcLH?Mnl0Ri<%b&9gS0fazu)fD+VY-#W>{{bi2dEBxSfLSMtOxWrUck zxP)8D7ha`6v>?4p86{RLqs0bgjJQ}CD{e%5hf*TmRVIs%loQ0)N}2dmsgM+!G2qvl8d6545w24v8nNM5C@Tv; zQkfh7$dquMQnH8zykb18o11|u4K#(&yuEZO)1zxHeGrkhpPh`w9B(?ChY6PcxsaK< zo?vjjAe!CHhYSE^7HG;zU{@NTpE4T;D05(lG8e`vCqo66Pg3T?9AyDCD+^%-mNzJi zf8YXTF7 z^t*SLJ|t_BWbBd>S`FI?222_Rs3pmhJPWA z(#6XoXB5v?*kre2>{PN8p)_PE5*>hyo082~m9y>IYPv_Kijo~JsW~xZEhk*Ee=E5$ zbi0}xDQXTWw#7nkYpLv_`*%XnoUlq&n-MCBfs zt=tPu$^q~z2jNWRJ~&S~go+pc!s;5n#k5)n(&&Z7J@#~5sV&PUL_?NMrSC3mS`I;E zJZ9B4yGo~`n7ZbWqwL#|eK}ILe>#-drX+_FDcc-sY*QcOjf7rKc4#{8>#*q9?y%}O z#gP=9SQm~hPB_!?EDXxapeV0GlJXj)D6iw5zk&MnCKM_Egel5fXqj)rV&xrZRsIF1 zEAPU&%6o8$@;+Rxd;r^(58)2wW7w~J8Yir+{9033#Yn^4A3nA#Id-LGf3c|>(*IH! z^q2Hkl1iWuaF{}eIx4Q6aX1I$MrP;$Y zyAmZv#C{JQzn zy{u&mO0iTflCaH}f5Lv;0poCk*K7g1E4K#*A7q4G9FS4%nPXjPY|vwDe9^j{1NSArII}-|-{Af3!{1jV{TTh2Y`nc3ls{ zal7U~A9XIIs`DUSoe%xg1u#@S1%{~$VT9^|ajF-J)n=HiE`h0P3)HGUs8^SwS++ux z>WAfO0NT|ySf!o@>(zEt*ABQ)?SjqfO1Mg04cpYy(QMCzZgmaZqOOHI)OB!|dKNsa zo(-?78{j*2e7< zKiW!iwgR61PAkblfLn^R_R?H?%67=ewcEFY9b@Bl+rg4+Po9P|8Irpb5dY*71n{6{=ZT|#94?t5z|~N5RX9Ig?J3&m57f+yh_i7 z0ahcf*6*Q!orL&W{QEYIb)p|*Bh%Ol!o$*77vTYEY$f50G`5OxavEDrSV?22li&L* zjh#XGf2TBdCgHEr*c!qgr?It!-$`TZ2)~-f))RgjK+K#7b#E;TN1L6%9)GcQ<6HH$s0*00yZyqxJp`E%tUeLEQ_p)O|2ly`S0C2Uv>w zAWK&tW?AYZEJuBe4N@OxL)9nQ2=ysepgzOKsQ+N&)#uo8>ho-p`XXB6ORQ3Tg;lGs zvKsYuc9QxAYf%5m=BaP7Q`C2uTm2XFf2i*sUNYR`UzX5e#*{JKWFRJ zFW3h4-|Rf~D|Vs!4cn}K%dSwrXIs=C*f#Yiwp0C??N)zfe^Y;Bx2b=yJ?fuquX>pE zXi03p)`uO^lG$TgU-pca!hXRG{!>fmpk;7b>&G=Mi}%s`bGw$q9a=8W)SP^ve>Rv8 z*M{&>+HhW~^9 zezb<8L%Vitr6C0O>m9ofxl~BT=Z`4Hy3@M z@v~Q0pDnM!@dwIlwu8f!#xBEpc$uiY*^=HWnXQ*&J+@WVTUE35iflEm6(cY;BSN>0 z?N?^&F*(wKe$O>9x(xldRhl1cS^x%Ur-4gr$E5^en$`*PwJvDUR>JApe`;8#p}(a6 z%$=D$oo=Sw72&Tcr7S5wCpQH5=jPfyt&8n8{Q_Ul#3lNkQli}Tfg;uAP($o0WU(4E zbSht+DANsK(Ke!7&w(86To|lvg5lbEFj_kwinI%$T)Qw%rEcWiCQHYd(zUqqMgILE zc1^-BUbRa=(=LsB_~ytrfBe^*2ia2<&j^wJ?Ys!G)b^alOvgj7%40+O~B6zy7E?l$PBT?a$7>tT$x9VTk% z8nvBJukD6~+Kq9)Jop>Xe;wkM{{v7<2MC}FL|Sz{008@T002-+3j+ic00;mG0Hah> zvryO{0t2H|Q=(FVaHjO+;EidT%1q1R)^B5O^sHh)8cLpi%@;5X%?xz4HyucV_O) z-ksgEd!MsE_W5zozT7b2J=b<}5CL(x@$WE8R5=+S#eJ*Ssc|~VZlJC?l?Q%Bn9nBC zbjJL;H{bm1$E~na0JTd7upn+S8A2}UIw-LoOC|cFhTlRsqEDwK3PfyKntA@Kh1t*IBF&M)VsP!16os>U@L%VJ(iulA&P%M)1S7x1L zPG?{8u{11$)t4sCIn#z1Y0fbg-W00*Jg;j1flJ`}Ep2%>7RuM`NgW6|@0o_;!>Rkq z+);i4AEI*B&TL{nxzGiE?)}t&mIUp6#!6TBu#~^40@v(j6l#XTBH2I7br{UAG@~{9 zvQk1r{pfV*ZuO0^I|q5yJjV?3+#5H?{txakGrVw6=a6%v+$ey{2-_>>U(H^-Xoz;V5q*2rUwjt4 zr#C zHEUqmRUc|_jTqv}q7O1WnMZu3@H)iHTK>w2<)zRfYNua&OpAj^IXB zc^SyE1;P_uNfZFzbS(&!X4M7c+i#e8w?Dk6e_ZcgOYZl?B1YR9-Vr1J&i0EqOR4lcyQ$R#RSyaGC*2V}L`8%FN=_+ z^0C%4+aU?)9gL66JkOd3RAD1zkPDg!zgLI09J(R%%zlV(K!fFgV%>ZCV2l$x9!M$y z9Zs2Pf)2afGg9z+%NN#|=mVLg+aIOtjL1I_+5DEGYRkeKin%b>x0Z3H%+I=Z<>oVH1X%ob1rq?Zs;vcMYh71q$@U7R2S`bBt%t5O&0b<$ScJnxfui-i#FYD z0*y_ZS<;KKx;51skE#)`P3(>*jMJLN9Rgdt9|Ry&;G0Z*Z&%Zwg@`JT{UcW+V{Gl< z95xyIY`Uq{+Qy*sqnxR0ce~K)YV=2B=@uLV9DCjj8^3q@rR+0D;-lO`}vBn!P1M@s*Jw9 z;|^Qy*8roDal}T>(>u{tqVW-)nG%8lQ%4~R^0_JY1$ED$v!B_+7<~PKiB3+)9}3^2 zuwsz#kLSQpiEQiy4w{_t+jtr67L`6Anyz8SKk2dU+&y!laQ6XJ-DngAe2f|N_vuWrZTWA zHPABcJ{)ApHt0dDj{QRw$(z^5I7@g4frxs>omo5(m4a!4shG4L!pa92Ct}3XzM{V; zVHX-56Uuv^!d{0sh>4_i7Zmr%W!vo_6us&yo?1Vweq?WGVklp2X>d!YbPn6HwBx^c ze4R)P{f+zen8L)uva=Uxp=*wOymc3oT3ELx$%A)`_tZ_&q2GD9aK_x(@<4aJ<` z%*37I0_H6mhFy5eJL%r3Q_l^gmK(-gJZN!o95ePPfB(l?YUM+^{a?vjsvkw}B9g5F zZ9v^kZ1(5Eoelb17GbhdOG2wp zTcV4R7H-~>;Lk8`I0CW!m>ye248nEyN zi`Z&TCbv@_aQ}Yj?yEc|OooN#zqbY3J%rKhsVmuVaj^;?foRp`aa7_N1#lOq=9~ z6^R@DNX7Ft6Gp{&LjsI0$)GKQQdp8^?}hYixe2BB&C2T81U|-bxS6f6s#2OvfxC1S z_K~V;SNfFV+o5tQF4i|0>*K5t$ODXG@4$$-?kGA>uQzM{kI;?}Pv zE}P*d+E||sl`ctQXsr|FH=TbWE_ipyWeDrxuZ60!uHmBpWnEy+Oo>3Kq>ZYU9fY4oC-u?IAUqyu#Ecj*aVI$fJOU-)7 z&8?X%lSFGtUVAQ73tH4Z)asdqEmT&tn@UuXSQSy%xqZ#-j)z#IX81qe4rc@(ZXcyx z^U+HlqYRUpenO}-a8wl*5{8JnWl&mNXeJ8G@8^=}y`yX%hRLy@5Z(SHW(z5@98hyH z^D641S!7#fgSwRR+tfqk02QeNGc0#gIpj!eXsWm_n=Yxful#pEs`=jHeZG=$*p#(V zgD>Xf$6n6*>?2qG;5rrKMoDj-GV%874NcQy*zW-Xsy+8QTM1Y;Eyf33Ax&l_`(YV_HXiqKUSa;=k%=p?Y0mjj zd74sUX@kp5wOEX5YS3pDNg(+q@Guw}Peb=gZ~H2DrAAaL?^m|OsV#?ErzbMCjglvz zF%b{rs5?Va27A$z^f?&x>B`+1@{M?+g)jq+92Zu-8ATbRYu8*Fm^JH}wVyE$N;T0A z$q(u`B|n!%oZiEJ#F*vG5wX%RJ1Gu%>i7rAYHfadBklYKfhEz+mp3H zJfrAvJWWIsMl>=Au-u~;4Mq3Ljn-*M;$P^hGbdl;W>|>pLzKsCou>VM-Bqf z{bgm8jvBz_fw!UzinI!#1c4k_K)47OS8Y~a48SLHzSTwA_;<4Qr67=nJKQY5HweWW z1u)<-bdCWy2q>4co!+vbSmOXnd?0h8xBBl0LAd_}Kp>`zaX^x*sDT)OA8!@lH-|mK zS%v>2HW`Py?tIGJpZK ziu^aTi@e}(TQXV{MeM(DI$tQ(zYE|Y9m+5kfZ#Lpjs-Z#)HnbTEFd^A2vr^lu;TTN zI6Z-$;qE)2SA`Akt7=b`E Ueh($ delta 35889 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 diff --git a/classes/ssl/VncViewer.jar b/classes/ssl/VncViewer.jar index e070806b5f9d0f2e2fd5e6fd51abe32a48057001..34ffcbc46e524a4b528ed2a67fdcb71684090d0b 100644 GIT binary patch delta 528 zcmbPtgJs?g7Ty4FW)=|!4j^0<5^3Ep_&2^Waoyq#N^6C}R*tjI?; zu*gB_mk`EUrAQ0gHJb!1uRu;Xv_*0S!w1j0A_r4K(9vcBMc~bIj9-f2%NB zfEi}0jP@Y8=@qJsR$#_fRYqrs8V~~{<*3GJ17}7Kvo=82O0=sFljJ4ff?=^jGkaMlQkG^!6KJ6pe74xLUn~`0;NEfPSJ##d_j}Z o0jyY93(5$CF=lE3odHsO3nn6~4Ru(YHq_*~+E9Pp(q?o401aETmH+?% delta 528 zcmbPtgJs?g7Ty4FW)=|!4j^2gqc@S)iWx+CHG`;)7oKo|=*`=?g*m~Dvmzhaz>I^^ zFCmPzN}HI#B1x*MEMP{LW+OA0!Ka%95h*q_W(A9^G;r-pvCR2`F%YsF_^6Sp_6AIeV7;^uL;n?3?pv{A2{H$)2SGwhJV+dE-10 zh{Y!sc`AaXMUFIsT`+mp$zNcB>8CV!!Hh%K*J*2SmZa1;i$%F0~TpegDO6x#%Ko?VOD3f1T*Z_86CllW_75Vqv}ut znKT%kz*6oSjGkb|WDQ1JFypcY)MOz|sICxAsMHiqsL2;J86Ciig|(oJFc@Q|7StKH XU?Q^GP?0!osL6A+q0YFa&FBIEF%Pt^ diff --git a/classes/ssl/ss_vncviewer b/classes/ssl/ss_vncviewer index 9b456b2..75020df 100755 --- a/classes/ssl/ss_vncviewer +++ b/classes/ssl/ss_vncviewer @@ -229,6 +229,22 @@ do ;; "-grab") VNCVIEWER_GRAB_SERVER=1; export VNCVIEWER_GRAB_SERVER ;; + "-x11cursor") VNCVIEWER_X11CURSOR=1; export VNCVIEWER_X11CURSOR + ;; + "-rawlocal") VNCVIEWER_RAWLOCAL=1; export VNCVIEWER_RAWLOCAL + ;; + "-scale") shift; SSVNC_SCALE="$1"; export SSVNC_SCALE + ;; + "-ssvnc_encodings") shift; VNCVIEWER_ENCODINGS="$1"; export VNCVIEWER_ENCODINGS + ;; + "-rfbversion") shift; VNCVIEWER_RFBVERSION="$1"; export VNCVIEWER_RFBVERSION + ;; + "-nobell") VNCVIEWER_NOBELL=1; export VNCVIEWER_NOBELL + ;; + "-popupfix") VNCVIEWER_POPUP_FIX=1; export VNCVIEWER_POPUP_FIX + ;; + "-realvnc4") VNCVIEWER_IS_REALVNC4=1; export VNCVIEWER_IS_REALVNC4 + ;; "-h"*) help; exit 0 ;; "--h"*) help; exit 0 @@ -273,6 +289,7 @@ if [ "X$reverse" != "X" ]; then echo "*Warning*: -listen and a single proxy/gateway does not make sense." sleep 3 fi + SSVNC_LISTEN_ONCE=1; export SSVNC_LISTEN_ONCE fi fi if [ "X$ssh_cmd" = "X" ]; then @@ -342,6 +359,9 @@ if [ "X$SSVNC_ULTRA_DSM" != "X" ]; then use_ssh="" use_sshssl="" direct_connect=1 + if echo "$SSVNC_ULTRA_DSM" | grep 'noultra:' > /dev/null; then + SSVNC_NO_ULTRA_DSM=1; export SSVNC_NO_ULTRA_DSM + fi fi # (possibly) tell the vncviewer to only listen on lo: @@ -1448,9 +1468,16 @@ Kecho proxy=$proxy echo "" echo "NOTE: Press Ctrl-C to terminate viewer LISTEN mode." echo "" - echo "$VNCVIEWERCMD" "$@" -listen $N + N2=$N + if [ "X$VNCVIEWER_IS_REALVNC4" = "X1" ]; then + N2=`echo "$N2" | sed -e 's/://g'` + if [ $N2 -le 200 ]; then + N2=`expr $N2 + 5500` + fi + fi + echo "$VNCVIEWERCMD" "$@" -listen $N2 echo "" - $VNCVIEWERCMD "$@" -listen $N + $VNCVIEWERCMD "$@" -listen $N2 fi exit $? @@ -1536,14 +1563,19 @@ if [ "X$direct_connect" != "X" ]; then echo "" echo "Using UltraVNC DSM Plugin key for encryption:" echo "" - echo " $SSVNC_ULTRA_DSM PORT HOST:PORT" + ustr=`echo "$SSVNC_ULTRA_DSM" | sed -e 's/pw=[^ ]*/pw=******/g'` + echo " $ustr PORT HOST:PORT" echo "" elif [ "X$getport" = "X" ]; then echo "" echo "Running viewer for direct connection:" - echo "" - echo "** NOTE: THERE WILL BE NO SSL OR SSH ENCRYPTION **" - echo "" + if echo X"$@" | grep chatonly > /dev/null; then + : + else + echo "" + echo "** NOTE: THERE WILL BE NO SSL OR SSH ENCRYPTION **" + echo "" + fi fi x="" if [ "X$SSVNC_NO_ENC_WARN" != "X" ]; then @@ -1594,9 +1626,25 @@ if [ "X$direct_connect" != "X" ]; then if [ "X$reverse" = "X" ]; then hostdisp="$host:$disp" if [ "X$SSVNC_ULTRA_DSM" != "X" ]; then - hostdisp="exec=$SSVNC_ULTRA_DSM 0 $host:$port" + if [ "X$SSVNC_USE_OURS" = "X1" ]; then + hostdisp="exec=$SSVNC_ULTRA_DSM 0 $host:$port" + else + pf=`findfree 5970` + cmd="$SSVNC_ULTRA_DSM -$pf $host:$port" + pf=`expr $pf - 5900` + hostdisp="localhost:$pf" + ustr=`echo "$cmd" | sed -e 's/pw=[^ ]*/pw=******/g'` + echo "Running:" + echo + echo "$ustr &" + echo + $cmd & + dsm_pid=$! + sleep 2 + fi fi - echo "$VNCVIEWERCMD" "$@" "$hostdisp" + hostdisp2=`echo "$hostdisp" | sed -e 's/pw=[^ ]*/pw=******/g'` + echo "$VNCVIEWERCMD" "$@" "$hostdisp2" trap "final" 0 2 15 echo "" $VNCVIEWERCMD "$@" "$hostdisp" @@ -1614,13 +1662,17 @@ if [ "X$direct_connect" != "X" ]; then trap "final" 0 2 15 if [ "X$SSVNC_ULTRA_DSM" != "X" ]; then echo "NOTE: The ultravnc_dsm_helper only runs once. So after the first LISTEN" - echo " ends, you will have to Press Ctrl-C and restart for a new connection." + echo " ends, you may have to Press Ctrl-C and restart for another connection." echo "" + SSVNC_LISTEN_ONCE=1; export SSVNC_LISTEN_ONCE + VNCVIEWER_LISTEN_LOCALHOST=1 + export VNCVIEWER_LISTEN_LOCALHOST dport=`expr 5500 + $disp` cmd="$SSVNC_ULTRA_DSM $dport localhost:$use" + ustr=`echo "$cmd" | sed -e 's/pw=[^ ]*/pw=******/g'` echo "Running:" echo - echo "$cmd &" + echo "$ustr &" echo $cmd & dsm_pid=$! @@ -1630,9 +1682,16 @@ if [ "X$direct_connect" != "X" ]; then disp=`expr $disp - 5500` fi fi - echo "$VNCVIEWERCMD" "$@" -listen $disp + disp2=$disp + if [ "X$VNCVIEWER_IS_REALVNC4" = "X1" ]; then + disp2=`echo "$disp2" | sed -e 's/://g'` + if [ $disp2 -le 200 ]; then + disp2=`expr $disp2 + 5500` + fi + fi + echo "$VNCVIEWERCMD" "$@" -listen $disp2 echo "" - $VNCVIEWERCMD "$@" -listen $disp + $VNCVIEWERCMD "$@" -listen $disp2 fi exit $? fi @@ -1793,7 +1852,7 @@ if [ "X$stunnel_exec" = "X" ]; then if [ "X$mycert" != "X" ]; then sleep 1 echo "" - echo "(pausing for possible certificate passphrase dialog)" + echo "(** pausing for possible certificate passphrase dialog **)" echo "" sleep 4 fi @@ -1829,7 +1888,14 @@ else echo "" echo "NOTE: Press Ctrl-C to terminate viewer LISTEN mode." echo "" - echo "$VNCVIEWERCMD" "$@" -listen $N + N2=$N + if [ "X$VNCVIEWER_IS_REALVNC4" = "X1" ]; then + N2=`echo "$N2" | sed -e 's/://g'` + if [ $N2 -le 200 ]; then + N2=`expr $N2 + 5500` + fi + fi + echo "$VNCVIEWERCMD" "$@" -listen $N2 trap "final" 0 2 15 echo "" if [ "X$proxy" != "X" ]; then @@ -1838,7 +1904,7 @@ else PPROXY_KILLPID=+1; export PPROXY_KILLPID; $ptmp & fi - $VNCVIEWERCMD "$@" -listen $N + $VNCVIEWERCMD "$@" -listen $N2 fi sleep 1 diff --git a/classes/ssl/ultravnc-102-JavaViewer-ssl-etc.patch b/classes/ssl/ultravnc-102-JavaViewer-ssl-etc.patch index b2ba9c5..3720673 100644 --- a/classes/ssl/ultravnc-102-JavaViewer-ssl-etc.patch +++ b/classes/ssl/ultravnc-102-JavaViewer-ssl-etc.patch @@ -121,14 +121,18 @@ diff -Naur JavaViewer.orig/ButtonPanel.java JavaViewer/ButtonPanel.java } diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java --- JavaViewer.orig/FTPFrame.java 2005-03-15 23:53:14.000000000 -0500 -+++ JavaViewer/FTPFrame.java 2008-09-07 21:12:11.000000000 -0400 -@@ -24,8 +24,13 @@ ++++ JavaViewer/FTPFrame.java 2008-10-04 18:09:36.000000000 -0400 +@@ -24,8 +24,17 @@ import java.io.*; import java.util.ArrayList; import java.util.Vector; +import java.util.Date; import javax.swing.*; ++import java.nio.ByteBuffer; ++import java.nio.CharBuffer; ++import java.nio.charset.*; ++ +// begin runge/x11vnc +import java.util.Arrays; +// end runge/x11vnc @@ -136,7 +140,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java /* * Created on Feb 25, 2004 -@@ -74,12 +79,31 @@ +@@ -74,12 +83,31 @@ public javax.swing.JTextField connectionStatus = null; public boolean updateDriveList; private Vector remoteList = null; @@ -168,7 +172,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java // sf@2004 - Separate directories and files for better lisibility private ArrayList DirsList; -@@ -125,11 +149,61 @@ +@@ -125,11 +153,61 @@ void refreshRemoteLocation() { @@ -230,7 +234,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java /* * Prints the list of drives on the remote directory and returns a String[]. * str takes as string like A:fC:lD:lE:lF:lG:cH:c -@@ -143,6 +217,9 @@ +@@ -143,6 +221,9 @@ int size = str.length(); String driveType = null; String[] drive = new String[str.length() / 3]; @@ -240,7 +244,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java // Loop through the string to create a String[] for (int i = 0; i < size; i = i + 3) { -@@ -150,26 +227,52 @@ +@@ -150,26 +231,52 @@ driveType = str.substring(i + 2, i + 3); if (driveType.compareTo("f") == 0) drive[i / 3] += "\\ Floppy"; @@ -285,11 +289,11 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java + } else { + if (C_drive >= 0) { + remoteDrivesComboBox.setSelectedIndex(C_drive); - bFound = true; ++ bFound = true; +System.out.println("ComboBox: C_drive index: " + C_drive); + } else if (O_drive >= 0) { + remoteDrivesComboBox.setSelectedIndex(O_drive); -+ bFound = true; + bFound = true; +System.out.println("ComboBox: Other_drive index: " + O_drive); } } @@ -299,7 +303,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java updateDriveList = false; return drive; } -@@ -185,6 +288,8 @@ +@@ -185,6 +292,8 @@ stopButton.setVisible(true); stopButton.setEnabled(true); receiveButton.setEnabled(false); @@ -308,7 +312,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java remoteTopButton.setEnabled(false); sendButton.setEnabled(false); remoteFileTable.setEnabled(false); -@@ -207,6 +312,8 @@ +@@ -207,6 +316,8 @@ stopButton.setVisible(false); stopButton.setEnabled(false); receiveButton.setEnabled(true); @@ -317,7 +321,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java remoteTopButton.setEnabled(true); sendButton.setEnabled(true); remoteFileTable.setEnabled(true); -@@ -221,10 +328,11 @@ +@@ -221,10 +332,11 @@ /* * Print Directory prints out all the contents of a directory */ @@ -330,7 +334,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } remoteFileTable.setListData(remoteList); } -@@ -235,10 +343,12 @@ +@@ -235,10 +347,12 @@ * @return void */ private void initialize() { @@ -344,7 +348,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java /** * This method initializes jContentPane. This is the main content pane * -@@ -253,6 +363,33 @@ +@@ -253,6 +367,33 @@ jContentPane.add(getRemotePanel(), java.awt.BorderLayout.EAST); jContentPane.add(getLocalPanel(), java.awt.BorderLayout.WEST); jContentPane.add(getButtonPanel(), java.awt.BorderLayout.CENTER); @@ -378,7 +382,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return jContentPane; } -@@ -270,6 +407,7 @@ +@@ -270,6 +411,7 @@ topPanelLocal.add(getLocalMachineLabel(), java.awt.BorderLayout.CENTER); topPanelLocal.add(getLocalTopButton(), java.awt.BorderLayout.EAST); topPanelLocal.setBackground(java.awt.Color.lightGray); @@ -386,7 +390,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return topPanelLocal; } -@@ -288,6 +426,7 @@ +@@ -288,6 +430,7 @@ topPanelRemote.add(getRemoteMachineLabel(), java.awt.BorderLayout.CENTER); topPanelRemote.add(getRemoteTopButton(), java.awt.BorderLayout.EAST); topPanelRemote.setBackground(java.awt.Color.lightGray); @@ -394,7 +398,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return topPanelRemote; } -@@ -301,6 +440,7 @@ +@@ -301,6 +444,7 @@ if (topPanelCenter == null) { topPanelCenter = new javax.swing.JPanel(); topPanelCenter.add(getDummyButton(), null); @@ -402,7 +406,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return topPanelCenter; } -@@ -328,6 +468,7 @@ +@@ -328,6 +472,7 @@ topPanel.add(getRemoteTopButton(), null); topPanel.setBackground(java.awt.Color.lightGray); */ @@ -410,7 +414,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return topPanel; } -@@ -348,6 +489,7 @@ +@@ -348,6 +493,7 @@ statusPanel.add(getJProgressBar(), null); statusPanel.add(getConnectionStatus(), null); statusPanel.setBackground(java.awt.Color.lightGray); @@ -418,7 +422,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return statusPanel; -@@ -368,6 +510,7 @@ +@@ -368,6 +514,7 @@ remotePanel.add(getRemoteScrollPane(), null); remotePanel.add(getRemoteStatus(), null); remotePanel.setBackground(java.awt.Color.lightGray); @@ -426,7 +430,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return remotePanel; } -@@ -390,6 +533,7 @@ +@@ -390,6 +537,7 @@ localPanel.setComponentOrientation( java.awt.ComponentOrientation.UNKNOWN); localPanel.setName("localPanel"); @@ -434,7 +438,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return localPanel; } -@@ -405,12 +549,15 @@ +@@ -405,12 +553,15 @@ buttonPanel = new javax.swing.JPanel(); buttonPanel.setLayout(null); buttonPanel.add(getReceiveButton(), null); @@ -450,7 +454,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return buttonPanel; } -@@ -422,10 +569,11 @@ +@@ -422,10 +573,11 @@ private javax.swing.JButton getSendButton() { if (sendButton == null) { sendButton = new javax.swing.JButton(); @@ -463,7 +467,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return sendButton; -@@ -438,7 +586,7 @@ +@@ -438,7 +590,7 @@ private javax.swing.JButton getReceiveButton() { if (receiveButton == null) { receiveButton = new javax.swing.JButton(); @@ -472,7 +476,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java receiveButton.setText("<< Receive"); receiveButton.setName("receiveButton"); receiveButton.addActionListener(this); -@@ -453,7 +601,7 @@ +@@ -453,7 +605,7 @@ private javax.swing.JButton getDeleteButton() { if (deleteButton == null) { deleteButton = new javax.swing.JButton(); @@ -481,7 +485,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java deleteButton.setText("Delete File"); deleteButton.setName("deleteButton"); deleteButton.addActionListener(this); -@@ -468,7 +616,7 @@ +@@ -468,7 +620,7 @@ private javax.swing.JButton getNewFolderButton() { if (newFolderButton == null) { newFolderButton = new javax.swing.JButton(); @@ -490,7 +494,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java newFolderButton.setText("New Folder"); newFolderButton.setName("newFolderButton"); newFolderButton.addActionListener(this); -@@ -476,6 +624,39 @@ +@@ -476,6 +628,39 @@ return newFolderButton; } @@ -530,7 +534,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java /** * This method initializes stopButton * -@@ -486,7 +667,7 @@ +@@ -486,7 +671,7 @@ if (stopButton == null) { stopButton = new javax.swing.JButton(); @@ -539,7 +543,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java stopButton.setText("Stop"); stopButton.setName("stopButton"); stopButton.addActionListener(this); -@@ -503,8 +684,12 @@ +@@ -503,8 +688,12 @@ private javax.swing.JButton getCloseButton() { if (closeButton == null) { closeButton = new javax.swing.JButton(); @@ -554,7 +558,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java closeButton.setName("closeButton"); closeButton.addActionListener(this); } -@@ -551,6 +736,7 @@ +@@ -551,6 +740,7 @@ //Select the second entry (e.g. C:\) // localDrivesComboBox.setSelectedIndex(1); localDrivesComboBox.addActionListener(this); @@ -562,7 +566,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } updateDriveList = false; return localDrivesComboBox; -@@ -567,6 +753,7 @@ +@@ -567,6 +757,7 @@ remoteDrivesComboBox.setFont( new java.awt.Font("Dialog", java.awt.Font.PLAIN, 10)); remoteDrivesComboBox.addActionListener(this); @@ -570,7 +574,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return remoteDrivesComboBox; -@@ -587,6 +774,7 @@ +@@ -587,6 +778,7 @@ localMachineLabel.setFont( new java.awt.Font("Dialog", java.awt.Font.BOLD, 11)); localMachineLabel.setEditable(false); @@ -578,7 +582,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return localMachineLabel; } -@@ -622,6 +810,7 @@ +@@ -622,6 +814,7 @@ localTopButton.setFont( new java.awt.Font("Dialog", java.awt.Font.BOLD, 10)); localTopButton.addActionListener(this); @@ -586,7 +590,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return localTopButton; } -@@ -638,6 +827,7 @@ +@@ -638,6 +831,7 @@ remoteTopButton.setFont( new java.awt.Font("Dialog", java.awt.Font.BOLD, 10)); remoteTopButton.addActionListener(this); @@ -594,7 +598,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return remoteTopButton; } -@@ -650,9 +840,24 @@ +@@ -650,9 +844,24 @@ private javax.swing.JList getLocalFileTable() { if (localFileTable == null) { localList = new Vector(0); @@ -619,7 +623,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return localFileTable; } -@@ -669,6 +874,7 @@ +@@ -669,6 +878,7 @@ localScrollPane.setFont( new java.awt.Font("Dialog", java.awt.Font.PLAIN, 10)); localScrollPane.setName("localFileList"); @@ -627,7 +631,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return localScrollPane; } -@@ -680,10 +886,25 @@ +@@ -680,10 +890,25 @@ private javax.swing.JList getRemoteFileTable() { if (remoteFileTable == null) { remoteList = new Vector(0); @@ -653,7 +657,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return remoteFileTable; -@@ -698,6 +919,7 @@ +@@ -698,6 +923,7 @@ remoteScrollPane = new javax.swing.JScrollPane(); remoteScrollPane.setViewportView(getRemoteFileTable()); remoteScrollPane.setPreferredSize(new java.awt.Dimension(325, 418)); @@ -661,7 +665,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return remoteScrollPane; } -@@ -716,6 +938,7 @@ +@@ -716,6 +942,7 @@ remoteLocation.setBackground(new Color(255,255,238)); remoteLocation.setFont( new java.awt.Font("Dialog", java.awt.Font.PLAIN, 10)); @@ -669,7 +673,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return remoteLocation; } -@@ -732,6 +955,7 @@ +@@ -732,6 +959,7 @@ localLocation.setBackground( new Color(255,255,238)); localLocation.setFont( new java.awt.Font("Dialog", java.awt.Font.PLAIN, 10)); @@ -677,7 +681,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return localLocation; } -@@ -748,6 +972,7 @@ +@@ -748,6 +976,7 @@ localStatus.setFont( new java.awt.Font("Dialog", java.awt.Font.PLAIN, 10)); localStatus.setEditable(false); @@ -685,7 +689,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return localStatus; } -@@ -764,6 +989,7 @@ +@@ -764,6 +993,7 @@ remoteStatus.setFont( new java.awt.Font("Dialog", java.awt.Font.PLAIN, 10)); remoteStatus.setEditable(false); @@ -693,7 +697,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return remoteStatus; } -@@ -777,9 +1003,10 @@ +@@ -777,9 +1007,10 @@ historyComboBox = new javax.swing.JComboBox(); historyComboBox.setFont( new java.awt.Font("Dialog", java.awt.Font.BOLD, 10)); @@ -705,7 +709,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return historyComboBox; } -@@ -791,6 +1018,7 @@ +@@ -791,6 +1022,7 @@ private javax.swing.JProgressBar getJProgressBar() { if (jProgressBar == null) { jProgressBar = new javax.swing.JProgressBar(); @@ -713,7 +717,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } return jProgressBar; } -@@ -806,6 +1034,7 @@ +@@ -806,6 +1038,7 @@ connectionStatus.setBackground(java.awt.Color.lightGray); connectionStatus.setFont( new java.awt.Font("Dialog", java.awt.Font.PLAIN, 10)); @@ -721,7 +725,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } connectionStatus.setEditable(false); return connectionStatus; -@@ -815,7 +1044,12 @@ +@@ -815,7 +1048,12 @@ * Implements Action listener. */ public void actionPerformed(ActionEvent evt) { @@ -735,7 +739,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java if (evt.getSource() == closeButton) { // Close Button -@@ -829,15 +1063,27 @@ +@@ -829,15 +1067,27 @@ { doReceive(); } @@ -765,7 +769,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } else if (evt.getSource() == localTopButton) { -@@ -845,12 +1091,17 @@ +@@ -845,12 +1095,17 @@ } else if (evt.getSource() == remoteTopButton) { @@ -783,7 +787,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java else if(evt.getSource()==newFolderButton) { doNewFolder(); -@@ -864,7 +1115,7 @@ +@@ -864,7 +1119,7 @@ private void doNewFolder() { @@ -792,7 +796,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java if(selectedTable.equals("remote")) { name = remoteLocation.getText()+name; -@@ -880,34 +1131,106 @@ +@@ -880,34 +1135,106 @@ historyComboBox.setSelectedIndex(0); } } @@ -909,7 +913,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java return; } -@@ -916,7 +1239,7 @@ +@@ -916,7 +1243,7 @@ // sf@2004 - Delete prompt if (remoteList.contains(sFileName)) { @@ -918,7 +922,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java if (r == JOptionPane.NO_OPTION) return; } -@@ -926,18 +1249,22 @@ +@@ -926,18 +1253,22 @@ } else { @@ -944,7 +948,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java if (r == JOptionPane.NO_OPTION) return; } -@@ -952,21 +1279,25 @@ +@@ -952,21 +1283,25 @@ private void doReceive() { @@ -974,7 +978,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java if (r == JOptionPane.NO_OPTION) return; } -@@ -979,23 +1310,89 @@ +@@ -979,23 +1314,101 @@ viewer.rfb.requestRemoteFile(remoteFileName,localDestinationPath); } @@ -1032,6 +1036,18 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java + //updateHistory("Downloaded " + localSelection.toString()); + String remoteFileName = this.remoteLocation.getText(); + remoteFileName+= ((String) this.remoteFileTable.getSelectedValue()).substring(1); ++ System.out.println("remoteFileName: " + remoteFileName); ++if (false) { ++ char[] b = remoteFileName.toCharArray(); ++ for (int n = 0; n < b.length; n++) { ++ System.out.print(Integer.toHexString(b[n]) + " "); ++ } ++ System.out.println(""); ++ for (int n = 0; n < b.length; n++) { ++ System.out.print(b[n]); ++ } ++ System.out.println(""); ++} + + String localDestinationPath = tmp.getAbsolutePath(); + viewer.rfb.requestRemoteFile(remoteFileName,localDestinationPath); @@ -1068,7 +1084,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java if (r == JOptionPane.NO_OPTION) return; } -@@ -1013,6 +1410,7 @@ +@@ -1013,6 +1426,7 @@ // private void doStop() { @@ -1076,7 +1092,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java viewer.rfb.fAbort = true; } /** -@@ -1024,6 +1422,14 @@ +@@ -1024,6 +1438,14 @@ System.out.println("History: " + message); historyComboBox.insertItemAt(new String(message), 0); } @@ -1091,7 +1107,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java /** * This method updates the file table to the current selection of the remoteComboBox -@@ -1034,11 +1440,41 @@ +@@ -1034,11 +1456,41 @@ remoteSelection = null; if (!updateDriveList) { @@ -1136,7 +1152,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java remoteFileTable.setListData(remoteList); } /** -@@ -1048,6 +1484,7 @@ +@@ -1048,6 +1500,7 @@ private void changeLocalDrive() { File currentDrive = new File(localDrivesComboBox.getSelectedItem().toString()); @@ -1144,7 +1160,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java if(currentDrive.canRead()) { localSelection = null; -@@ -1057,9 +1494,11 @@ +@@ -1057,9 +1510,11 @@ else { localList.clear(); @@ -1156,7 +1172,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } /** * Determines which FileTable was double-clicked and updates the table -@@ -1098,10 +1537,18 @@ +@@ -1098,10 +1553,18 @@ selectedTable = "remote"; localFileTable.setBackground(new Color(238, 238, 238)); remoteFileTable.setBackground(new Color(255, 255, 255)); @@ -1177,7 +1193,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } /* -@@ -1115,10 +1562,38 @@ +@@ -1115,10 +1578,38 @@ localFileTable.setBackground(new Color(255, 255, 255)); File currentSelection = new File(currentLocalDirectory, getTrimmedSelection()); @@ -1217,7 +1233,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java /** * Updates the Remote File Table based on selection. Called from mouseClicked handler */ -@@ -1126,20 +1601,29 @@ +@@ -1126,20 +1617,29 @@ String name = null; String action = null; String drive = null; @@ -1249,7 +1265,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java remoteFileTable.setListData(remoteList); } else if (!name.substring(0, 2).equals(" [") && !name.substring((name.length() - 1), name.length()).equals("]")) -@@ -1149,6 +1633,7 @@ +@@ -1149,6 +1649,7 @@ remoteSelection = remoteLocation.getText() + name.substring(0, name.length()); drive = remoteLocation.getText(); // ?? @@ -1257,7 +1273,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } else { -@@ -1159,10 +1644,12 @@ +@@ -1159,10 +1660,12 @@ remoteLocation.setText(drive); viewer.rfb.readServerDirectory(drive); remoteList.clear(); @@ -1270,7 +1286,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java /** * Updates the Local File Table based on selection. Called from MouseClicked handler */ -@@ -1188,6 +1675,7 @@ +@@ -1188,6 +1691,7 @@ else if (currentSelection.isFile()) { localSelection = currentSelection.getAbsoluteFile(); @@ -1278,7 +1294,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } else if (currentSelection.isDirectory()) { -@@ -1201,13 +1689,22 @@ +@@ -1201,13 +1705,22 @@ * */ private String getTrimmedSelection(){ @@ -1308,7 +1324,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java } /* -@@ -1241,36 +1738,113 @@ +@@ -1241,36 +1754,148 @@ return null; } @@ -1343,6 +1359,17 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java + String ms = dotPast(m, 3); + return s + " (" + ms + " MB)"; + } ++ } ++ ++ int max_char(String text) { ++ int maxc = 0; ++ char chars[] = text.toCharArray(); ++ for (int n = 0; n < chars.length; n++) { ++ if ((int) chars[n] > maxc) { ++ maxc = (int) chars[n]; ++ } ++ } ++ return maxc; + } /* @@ -1390,12 +1417,36 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java + + ArrayList DirInfo = new ArrayList(); + ArrayList FilInfo = new ArrayList(); ++ ++ Charset charset = Charset.forName("ISO-8859-1"); ++ CharsetDecoder decoder = charset.newDecoder(); ++ CharsetEncoder encoder = charset.newEncoder(); // Populate the Lists for (int i = 0; i < contents.length; i++) { - if (allFiles[i].isDirectory()) -+ String f2 = contents[i]; ++ String f1 = contents[i]; ++ ++if (false) { ++ ++System.out.println("max_char: " + max_char(f1) + " " + f1); ++ if (max_char(f1) > 255) { ++ try { ++System.out.println("bbuf1"); ++ ByteBuffer bbuf = encoder.encode(CharBuffer.wrap(f1.toCharArray())); ++System.out.println("bbuf2"); ++ CharBuffer cbuf = decoder.decode(bbuf); ++System.out.println("bbuf3"); ++ f1 = cbuf.toString(); ++System.out.println("did bbuf: " + f1); ++ } catch (Exception e) { ++ ; ++ } ++ } ++} ++ ++ String f2 = f1; + if (f2.length() < 24) { + for (int ik = f2.length(); ik < 24; ik++) { + f2 = f2 + " "; @@ -1404,13 +1455,15 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java + String s = f2 + " \tLastmod: " + timeStr(allFiles[i].lastModified()) + " \t\tSize: " + sizeStr((int) allFiles[i].length()); + if (allFiles[i].isDirectory()) { // localList.addElement("[" + contents[i] + "]"); - DirsList.add(" [" + contents[i] + "]"); // sf@2004 +- DirsList.add(" [" + contents[i] + "]"); // sf@2004 - else - { ++ DirsList.add(" [" + f1 + "]"); // sf@2004 + DirInfo.add(s); + } else { // localList.addElement(contents[i]); - FilesList.add(" " + contents[i]); // sf@2004 +- FilesList.add(" " + contents[i]); // sf@2004 ++ FilesList.add(" " + f1); // sf@2004 + FilInfo.add(s); } } @@ -1428,7 +1481,7 @@ diff -Naur JavaViewer.orig/FTPFrame.java JavaViewer/FTPFrame.java FilesList.clear(); DirsList.clear(); -@@ -1296,3 +1870,147 @@ +@@ -1296,3 +1921,147 @@ } } // @jve:visual-info decl-index=0 visual-constraint="10,10" @@ -1593,7 +1646,7 @@ diff -Naur JavaViewer.orig/OptionsFrame.java JavaViewer/OptionsFrame.java choices[shareDesktopIndex].select("Yes"); diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java --- JavaViewer.orig/RfbProto.java 2006-05-24 15:14:40.000000000 -0400 -+++ JavaViewer/RfbProto.java 2008-09-14 10:50:33.000000000 -0400 ++++ JavaViewer/RfbProto.java 2008-10-06 13:32:30.000000000 -0400 @@ -31,6 +31,7 @@ import java.net.Socket; import java.util.*; @@ -1738,7 +1791,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java if (contentParam == rfbADrivesList) { readFTPMsgDriveList(); -@@ -688,21 +737,31 @@ +@@ -688,13 +737,21 @@ // Internally used. Write an Rfb message to the server void writeRfbFileTransferMsg( @@ -1754,29 +1807,60 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java + String text) throws IOException { byte b[] = new byte[12]; - ++ byte byteArray[]; ++ + if (viewer.dsmActive) { + // need to send the rfbFileTransfer msg type twice for the plugin... + byte b2[] = new byte[1]; + b2[0] = (byte) rfbFileTransfer; + os.write(b2); + } -+ + b[0] = (byte) rfbFileTransfer; b[1] = (byte) contentType; - b[2] = (byte) contentParam; +@@ -702,7 +759,7 @@ byte by = 0; long c = 0; - length++; + -+ if (text != null) { -+ length++; // we send the null I guess??? -+ } c = size & 0xFF000000; by = (byte) (c >>> 24); b[4] = by; -@@ -729,6 +788,8 @@ +@@ -716,6 +773,32 @@ + by = (byte) c; + b[7] = by; + ++ if (text != null) { ++ byte byteArray0[] = text.getBytes(); ++ int maxc = max_char(text); ++ if (maxc > 255) { ++ System.out.println("writeRfbFileTransferMsg: using getBytes(\"UTF-8\")"); ++ byteArray0 = text.getBytes("UTF-8"); ++ } else if (maxc > 127) { ++ System.out.println("writeRfbFileTransferMsg: using getBytes(\"ISO-8859-1\")"); ++ byteArray0 = text.getBytes("ISO-8859-1"); ++ } ++ byteArray = new byte[byteArray0.length + 1]; ++ for (int i = 0; i < byteArray0.length; i++) { ++ byteArray[i] = byteArray0[i]; ++ } ++ byteArray[byteArray.length - 1] = 0; ++System.out.println("writeRfbFileTransferMsg: length: " + length + " -> byteArray.length: " + byteArray.length); ++ ++ // will equal length for ascii, ISO-8859-1, more for UTF-8 ++ length = byteArray.length; ++ ++ //length++; // used to not include null byte at end. ++ } else { ++ String moo = "moo"; ++ byteArray = moo.getBytes(); ++ } ++ + c = length & 0xFF000000; + by = (byte) (c >>> 24); + b[8] = by; +@@ -729,29 +812,91 @@ by = (byte) c; b[11] = by; os.write(b); @@ -1785,8 +1869,85 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java if (text != null) -@@ -746,12 +807,12 @@ + { +- byte byteArray[] = text.getBytes(); +- byte byteArray2[] = new byte[byteArray.length + 1]; +- for (int i = 0; i < byteArray.length; i++) { +- byteArray2[i] = byteArray[i]; ++ os.write(byteArray); ++ } ++ } ++ ++ int max_char(String text) { ++ int maxc = 0; ++ char chars[] = text.toCharArray(); ++ for (int n = 0; n < chars.length; n++) { ++ if ((int) chars[n] > maxc) { ++ maxc = (int) chars[n]; + } +- byteArray2[byteArray2.length - 1] = 0; +- os.write(byteArray2); + } +- ++ return maxc; ++ } ++ ++ String guess_encoding(char[] chars) { ++ boolean saw_high_char = false; ++ ++ for (int i = 0; i < chars.length; i++) { ++ if (chars[i] == '\0') { ++ break; ++ } ++ if (chars[i] >= 128) { ++ saw_high_char = true; ++ break; ++ } ++ } ++ if (!saw_high_char) { ++ return "ASCII"; ++ } ++ char prev = 1; ++ boolean valid_utf8 = true; ++ int n = 0; ++ for (int i = 0; i < chars.length; i++) { ++ if (chars[i] == '\0') { ++ break; ++ } ++ char c = chars[i]; ++ if (prev < 128 && c >= 128) { ++ if (c >> 5 == 0x6) { ++ n = 1; ++ } else if (c >> 4 == 0xe) { ++ n = 2; ++ } else if (c >> 3 == 0x1e) { ++ n = 3; ++ } else if (c >> 2 == 0x3e) { ++ n = 4; ++ } else { ++ valid_utf8 = false; ++ break; ++ } ++ } else { ++ if (n > 0) { ++ if (c < 128) { ++ valid_utf8 = false; ++ break; ++ } ++ n--; ++ } ++ } ++ ++ prev = c; ++ } ++ if (valid_utf8) { ++ return "UTF-8"; ++ } else { ++ return "ISO-8859-1"; ++ } + } ++ //Internally used. Write an rfb message to the server for sending files ONLY int writeRfbFileTransferMsgForSendFile( - int contentType, @@ -1804,7 +1965,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java { File f = new File(source); fis = new FileInputStream(f); -@@ -768,50 +829,47 @@ +@@ -768,50 +913,47 @@ while (bytesRead!=-1) { @@ -1896,7 +2057,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java } writeRfbFileTransferMsg(fError ? rfbAbortFileTransfer : rfbEndOfFile, 0, 0, 0, null); -@@ -831,24 +889,30 @@ +@@ -831,24 +973,30 @@ { System.out.print((char) is.readUnsignedByte()); } @@ -1935,7 +2096,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java } viewer.ftp.historyComboBox.setSelectedIndex(0); viewer.ftp.enableButtons(); -@@ -907,7 +971,7 @@ +@@ -907,7 +1055,7 @@ //Handles acknowledgement that the file has been deleted on the server void deleteRemoteFileFeedback() throws IOException { @@ -1944,7 +2105,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java int length = is.readInt(); String f = ""; for (int i = 0; i < length; i++) -@@ -916,7 +980,11 @@ +@@ -916,7 +1064,11 @@ } viewer.ftp.refreshRemoteLocation(); @@ -1957,7 +2118,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java viewer.ftp.historyComboBox.setSelectedIndex(0); } -@@ -926,12 +994,7 @@ +@@ -926,12 +1078,7 @@ try { String temp = text; @@ -1971,7 +2132,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java } catch (IOException e) { -@@ -943,7 +1006,7 @@ +@@ -943,7 +1090,7 @@ // Handles acknowledgement that the directory has been created on the server void createRemoteDirectoryFeedback() throws IOException { @@ -1980,7 +2141,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java int length = is.readInt(); String f=""; for (int i = 0; i < length; i++) -@@ -951,7 +1014,11 @@ +@@ -951,7 +1098,11 @@ f += (char)is.readUnsignedByte(); } viewer.ftp.refreshRemoteLocation(); @@ -1993,7 +2154,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java viewer.ftp.historyComboBox.setSelectedIndex(0); } -@@ -961,12 +1028,7 @@ +@@ -961,12 +1112,7 @@ try { String temp = text; @@ -2007,7 +2168,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java } catch (IOException e) { -@@ -979,15 +1041,13 @@ +@@ -979,15 +1125,13 @@ { try { @@ -2027,7 +2188,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java } catch (IOException e) { -@@ -1004,6 +1064,9 @@ +@@ -1004,6 +1148,9 @@ viewer.ftp.disableButtons(); int size = is.readInt(); int length = is.readInt(); @@ -2037,7 +2198,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java String tempName = ""; for (int i = 0; i < length; i++) -@@ -1011,6 +1074,15 @@ +@@ -1011,6 +1158,15 @@ tempName += (char) is.readUnsignedByte(); } @@ -2053,7 +2214,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java // sf@2004 - Read the high part of file size (not yet in rfbFileTransferMsg for // backward compatibility reasons...) int sizeH = is.readInt(); -@@ -1021,7 +1093,16 @@ +@@ -1021,7 +1177,16 @@ fileSize=0; fileChunkCounter = 0; String fileName = receivePath; @@ -2071,7 +2232,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java writeRfbFileTransferMsg(rfbFileHeader, 0, 0, 0, null); } -@@ -1085,7 +1166,13 @@ +@@ -1085,7 +1250,13 @@ fAbort = false; fFileReceptionError = true; writeRfbFileTransferMsg(rfbAbortFileTransfer, 0, 0, 0, null); @@ -2086,7 +2247,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java } // sf@2004 - For old FT protocole only /* -@@ -1104,7 +1191,7 @@ +@@ -1104,7 +1275,7 @@ int length = is.readInt(); fileSize=0; fos.close(); @@ -2095,7 +2256,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java viewer.ftp.refreshLocalLocation(); if (fReceptionOk && !fFileReceptionError) { -@@ -1132,12 +1219,7 @@ +@@ -1132,12 +1303,7 @@ try { String temp = text; @@ -2109,7 +2270,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java } catch (IOException e) { -@@ -1197,11 +1279,80 @@ +@@ -1197,11 +1363,80 @@ str += temp; } } @@ -2190,7 +2351,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java //Internally used to receive directory content from server //Here, the server sends one file/directory with it's attributes void readFTPMsgDirectoryListContent() throws IOException -@@ -1217,17 +1368,25 @@ +@@ -1217,17 +1452,32 @@ dwReserved0, dwReserved1; long ftCreationTime, ftLastAccessTime, ftLastWriteTime; @@ -2200,6 +2361,13 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java int length = 0; is.readInt(); length = is.readInt(); ++ ++ char[] chars = new char[4*length]; ++ int char_cnt = 0; ++ for (int i = 0; i < chars.length; i++) { ++ chars[i] = '\0'; ++ } ++ dwFileAttributes = is.readInt(); length -= 4; - ftCreationTime = is.readLong(); @@ -2219,18 +2387,50 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java length -= 8; nFileSizeHigh = is.readInt(); length -= 4; -@@ -1253,7 +1412,9 @@ +@@ -1239,10 +1489,12 @@ + length -= 4; + cFileName = (char) is.readUnsignedByte(); + length--; ++ chars[char_cnt++] = cFileName; + while (cFileName != '\0') + { + fileName += cFileName; + cFileName = (char) is.readUnsignedByte(); ++ chars[char_cnt++] = cFileName; + length--; + } + cAlternateFileName = (char) is.readByte(); +@@ -1253,7 +1505,28 @@ cAlternateFileName = (char) is.readUnsignedByte(); length--; } - if (dwFileAttributes == 268435456 ++ String guessed = guess_encoding(chars); ++ if (!guessed.equals("ASCII")) { ++ System.out.println("guess: " + guessed + "\t" + fileName); ++ } ++ if (guessed.equals("UTF-8")) { ++ try { ++ byte[] bytes = new byte[char_cnt-1]; ++ for (int i=0; i < char_cnt-1; i++) { ++ bytes[i] = (byte) chars[i]; ++ } ++ String newstr = new String(bytes, "UTF-8"); ++ fileName = newstr; ++ } catch (Exception e) { ++ System.out.println("failed to convert bytes to UTF-8 based string"); ++ } ++ } ++ for (int i = 0; i < char_cnt; i++) { ++ //System.out.println("char[" + i + "]\t" + (int) chars[i]); ++ } + if (fileName.length() <= 0) { + ; + } else if (dwFileAttributes == 268435456 || dwFileAttributes == 369098752 || dwFileAttributes == 285212672 || dwFileAttributes == 271056896 -@@ -1263,11 +1424,74 @@ +@@ -1263,11 +1536,74 @@ || dwFileAttributes == 369623040) { fileName = " [" + fileName + "]"; @@ -2310,7 +2510,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java } // a.add(fileName); -@@ -1282,14 +1506,31 @@ +@@ -1282,14 +1618,32 @@ // sf@2004 a.clear(); @@ -2323,6 +2523,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java + } + for (int i = 0; i < remoteFilesList.size(); i++) { a.add(remoteFilesList.get(i)); ++ + b.add(remoteFilesListInfo.get(i)); + } remoteDirsList.clear(); @@ -2345,7 +2546,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java } //Internally used to signify the drive requested is not ready -@@ -1299,6 +1540,8 @@ +@@ -1299,6 +1653,8 @@ System.out.println("Remote Drive unavailable"); viewer.ftp.connectionStatus.setText(" > WARNING - Remote Drive unavailable (possibly restricted access or media not present)"); viewer.ftp.remoteStatus.setText("WARNING: Remote Drive unavailable"); @@ -2354,7 +2555,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java } //Call this method to request the list of drives on the server. -@@ -1306,12 +1549,11 @@ +@@ -1306,12 +1662,11 @@ { try { @@ -2372,7 +2573,7 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java } catch (IOException e) { -@@ -1355,21 +1597,21 @@ +@@ -1355,21 +1710,21 @@ int h, boolean incremental) throws IOException { @@ -2407,6 +2608,21 @@ diff -Naur JavaViewer.orig/RfbProto.java JavaViewer/RfbProto.java } } +@@ -1482,7 +1837,13 @@ + b[6] = (byte) ((text.length() >> 8) & 0xff); + b[7] = (byte) (text.length() & 0xff); + +- System.arraycopy(text.getBytes(), 0, b, 8, text.length()); ++ if (false && max_char(text) > 255) { ++ System.arraycopy(text.getBytes("UTF-8"), 0, b, 8, text.length()); ++ } else if (max_char(text) > 127) { ++ System.arraycopy(text.getBytes("ISO-8859-1"), 0, b, 8, text.length()); ++ } else { ++ System.arraycopy(text.getBytes(), 0, b, 8, text.length()); ++ } + + os.write(b); + // } diff -Naur JavaViewer.orig/SSLSocketToMe.java JavaViewer/SSLSocketToMe.java --- JavaViewer.orig/SSLSocketToMe.java 1969-12-31 19:00:00.000000000 -0500 +++ JavaViewer/SSLSocketToMe.java 2008-04-15 12:54:51.000000000 -0400