From 7a1f53fcc2a6fb4a2c957aafc0fa5e773f305184 Mon Sep 17 00:00:00 2001 From: Michael Curran Date: Mon, 28 Jul 2025 13:22:17 +1000 Subject: [PATCH 1/2] Add windowsaccessbridge-64.dll --- readme.md | 15 +++++++++++++-- windowsaccessbridge-64.dll | Bin 0 -> 72224 bytes 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 windowsaccessbridge-64.dll diff --git a/readme.md b/readme.md index a508f77..26a49e6 100644 --- a/readme.md +++ b/readme.md @@ -1,9 +1,10 @@ # javaAccessBridge32-bin NVDA's Java Access Bridge dependency -This repository fulfils NVDA's dependency on Java Access Bridge 32 bit. +This repository fulfils NVDA's dependency on Java Access Bridge (both 32 and 64 bit). -The NVDA screen reader is a 32 bit application and requires the 32 bit Java Access Bridge client dll. +## 32 bit Java Access Bridge + When the NVDA screen reader is built as a 32 bit application, it requires the 32 bit Java Access Bridge client dll. This will happily talk to 64 bit Java applications. However, since Java 10, official 32 bit builds are no longer provided. @@ -11,3 +12,13 @@ This file was extracted from a Zulu Community build of OpenJDK as follows: 1. Downloaded Java 17.0.9+8Zulu (17.46.19) zip file from: https://www.azul.com/downloads/?os=windows&architecture=x86-32-bit&package=jre#zulu 2. Copied `zulu17.46.19-ca-jre17.0.9-win_i686\bin\windowsaccessbridge-32.dll` from this archive into this repository. + +## 64 bit Java Access Bridge +When the NVDA screen reader is built as a 64 bit application, it requires the 64 bit Java Access Bridge client dll. +This should be able to talk to 32 bit Java applications also. + +This file was extracted from a Zulu Community build of OpenJDK as follows: + +1. Downloaded Java 17.0.16+8 Zulu (17.60.17) 64 bit zip file from: https://cdn.azul.com/zulu/bin/zulu17.60.17-ca-jre17.0.16-win_x64.zip +2. Copied `zulu17.60.17-ca-jre17.0.16-win_x64\bin\windowsaccessbridge-64.dll` from this archive into this repository. + diff --git a/windowsaccessbridge-64.dll b/windowsaccessbridge-64.dll new file mode 100644 index 0000000000000000000000000000000000000000..ed5378f9750130a7c134e5463485cd0130ed9239 GIT binary patch literal 72224 zcmeEvd0MNvaYIwTU3*y%t}R4~CI zUVBCzoY7I=FzU?c3_7@shUjPzWRX=|am|c6-WXJLeB$2U?^M-YdI<*J_x<&~)=Jf_ zI(6!tQ>RXys=Bu*y8Jel#28CP2!|PKLrgyx|NAq45*X`$MtgtuWZK?gZ3(`;!%C{E z8b$=O&*MG}JW#>oz0t_n(9Ky$_c^P{!ki2bS>o z*84?#4S$|pU0y|PL~~SJz*xo2DeUpZX*Rv=2pg{SOYA?CH6drY$SuAOaRyJX2HPT? z$XE)`GGmsDQV8?wj6{~m7U4lu(xcdCkyHEzW1jwut^bIzCprEEwxACs64>Fsh`wY@ z$wsUoA5rcu#_AFG^xJ^)37k*~aT{aVptq;rn4rHYh{87Fmq;ewNhvHpg|S6r0u^P! zGRF2?i2~qcS0SuIu>4$5pD_ZALgtdpjPzq09$vV$7#@Xmykuy29zzCL-liJx*6a z-Y&12c?ZF@Ug1={YHB!h)f!&;dQrI+m9_J!X7je(g`J|usoC99< z1=%(@f|P2U8H7D+zI&dVS_hL|-jMxb&>GHUXve31<6Ya~Xz3uT*M90~d72XHPHiYg zmsj2ERgY)`dGZ@?Xh^O%G$TbDnZ@MUg30k)f%VQs|KCL5QO3`bzfD=`z?;%=>736 z`XggA#vWu+K`pCqYJ+}?+cj5GF?4~tW=~#+w>81r>V}-%5VJcAK|#ny$VHfd;6m^s z6eBD^ScFi8P>;~$ZCwK%7@~C|A_Ik|yF|1>L=TB*lZe_x)FGmsB03ena~RuS1(|^y?`n11x$S}V48j&hO5)D!1j=(OXYURr`}F#Q=}d$RNqv; zD_VOnc&Zm>5hC8|Q+>`wFh}ZsZ>z_txWgFfG`2|dVb`oUNFS{@vLp(Rfg%nD*ikDE z(qb!)6QP5K&i@n#jlvVb!N<@V8mGONJ&o}bY0D}%8t*59L(oeGrT6r1_#d^^@pEmd z3Es5_y{(sKx2FO$nBMP&)`UWJXV-+&8Efu5Djt444_0l@9vwETJuw0{ox}bpV3$O~ zD(y7un0Pyf65j6x?Bqz;jCPtCP1q*^>u5jX5WxL8uuj8*cJkOv*mVLnO~C$ZE)lH5 zE@~$a)r7r5!1fiePes61wUfta!sZIteggKE2-w{Aj0oP60o&a9xd1KYpau;S+LZ{{ zH-`}H`vNvE64ur3ih$k7VV@VUeIjAK?W-eTR|6I@>mz{QDzVC;xSbqlleZE9n<`)* zjexChC-2^b%@(lf0`{f|*rs--SYdxSjniNku=A|2w-dGP%w+}NE5Q2;@UuAh9@U-9 z6_eXa(bsn9raPIG^H-%CHQ858~u{nPX33Mv+b{+m9g6BGD!Z&dE&n5ic2>81Qo{vWpKA*#XFX8WtfPa(V`PebxPXas? ztgoz4g9-*cn+RUPAB%iG$P$V!dTwe2{tX0=;bw(@g2Nw`=3mnb6ZZBg?10)T+|L+uJ%PwLJ_(zSjH@ph&PJ?_@w%+W6t9|}(S62t+d>^> z>cpn3;9!aIKkIDyM5T#vyX`#Dge#+4qxBf(!;JafHHV8yoT}}^ml5S*jo9LJQBG)O zE??#y^0uyWX6GH;fi6&Bvc1i_!UZ9Bayau}*8r?F9}?>JL!2ajq;_bP95g;Qau zTL3p--RTZpni9_ZlYq@8FZWffUuuKY=uYj2N>s{E^AJS=m^#dDYjnRJ1Fzm-y5bpvO)tx@qf%jQ6VZGqiO_!eO5}9qe&Uo|WNK_mN+i z+nz9pF|e4u!NFrC4XuSUy^xZ`cgnQYQ^qIocIIQfyw|aQt9Cb*k7(j-PLdBKLAlYv zRkU)ehuXNXWV?#iFkIIcQAfBS0@C;tkmW(kSW%TYi?z=`hhnO8GEg!ECEELV_VIr3 z0FyccL&^uQm6Li2NQ)))J~WRe7xA?{jZf?-_?*g|xqNLnp-?^I4b?cCyjVV|-)doM z4>E_~_6hy)5$$ha)ee113}=o9=TIyxsJ&Z&c0%b@S4OWBX_<&6n&JPtyv=19oW16< zEX3b=u%Ij~-xhRysiDbp*iSKZ>nQJqIMFY4B2iYVSt9|5gzSF@rf_DTWhe;QcM{dMFZWQ^S2Y-6Q$Io)Ssx$@_Csg%X(OIN zNC(7+oi~X`wf{FDh!>mo`$p(Hqn%04r&pKs0mMe7#K_tZURsk}h68 zLNC{8>iS48r}jMR%V6%O-Gc2iXhFY-3}Cj0?3$?KRu5`ZV7aYrV??9gc3H2#Xxs~_ zJPkldg%|%>7Mn7=FH@Hp2e>)5e#6Ne!jMI|1QD{(nb5ugn3W!m?g9xbWZSjr6!iVh zu%P9%7+MNp6ZHNQazFZ#5JOa3KL9YMt=$sVu9MW&MII@d6aDg6z1--RJK=Hj_BgF- zO!=j7;mz`;vRv{q1?w0psHbFPM5<;dR>F=f1ucqgV2Z1uqRH# zpl5wxSUbna({dYw9d|57KvR)C$4PCiFmPhqp z#;{0Q4fsAfyhYj716muwCxL8?e;R09=5J#WMIteE`O@K5+Mm(O4Y_`Sa+CLaV#=={ zVXc3iUT*N7=CqbCl;x85hfqk!4PGY8@+jV&BYWVzUwrsIao~kcytP9JU?`ag!$JsZ z$wJIL)7p|j*8{TJATDE_IqioCXl{R{EegmA7Tx1!P{@^9y6Y@!OT4aE&^TV!9p!l1 z<7}!VM~*C7eLRcyor%SZJxbm7{%5BUxy) z^^5pzWt|<_mH|Is!e>@S68G!K3NXy01*BuGa*iN~(|bxJJ%ePKf&b`>g7;|r%>c9v zb_0G#5Afed!t=K8k+4!0t8;|@^0FIcnJLFFP;A=5(wOqiqh&d0k$pc&0*#^`$5F|# z`hLt9gCX?2>6c=Bj|*q+gnJ7g=WMLGx*hlv&io}gyy}~9r`xf%35PS+BE!+%d3vCe zmbk)?fCnsX#ox9GIZ9slpfzF!vmyDc{op3B=2(SDcnJd2L}XRDyywBcXKVqphgi777{YwfEiV#+_#%e~y!xI+Lq z)~?Od`;hjiO`lc$0tXCm8`X5uy6JmOf7M7Ueq{az0B| z5&fY3aAAa;MPDRE)2n@Pkp$zi`rrj2580Q`x}*AXYec!0JuRXQ(U-rMFrqK@2|}v? zthFzBdkqrSl>asPx}5kvJo#%gC6G<~5QP@q!J3)M#~9@Y;+FR}%Abu}{@E76v`u>` zZuvf=e0|*VM~(8;am#;cl-I;9uQkdS#4Vp`lzZZqk1@(~;~tk}Yt4-nnzMc%dH#)E)N zC&=eT{VZe#Gimqabx_~lNhIN+fQE*8onn->QK=$J&*G&EvG?&d)!nTHx=>25Y|%p+ zm4@u^5tWxwDK{ z*fcl{h(>DWp|``~?Y2YDa!w<+Eog5FUc(>6eyi9OEXFqT_0OOI+GfUHBsK~8_MlgN z9j{ja>AIWf6_qZn7 zxHnCKKlM#QV+x#~Dc${n^(J7|etat&ru}Fiwm`8tJcjs$NSiQa6l1edoXuyE-nc;J z8|?;_6ZjS&?SlR84&eDa@OYcAgJerQDzxa>atkl zqK9Z%fO*@w(Xvnba0U&iA!lw4Lpq*R}|m+C5Zq zPA6L3+=i4mDkKE8~SNmwI-Xvk&0L5v* zi(CLF8k4XKgxzTml-fyq&*Mn5bF@uG*xN@pdexa3&9^$I06MI7e-xqayy1P?mWe{$ z2dXU`t~CjX2`J>MzXOeHiD;Qr|5hib7JZ$25t?1Ijo6|i1KMhb?+;$v7T|?`DFk=3 zFXY@2D+X^guos}~etJqW4@c zmZKXtAOXT|x*7y|oD&cfC`~RMRf51NG{`+-ke>kpp)ga(XlgHfU?@tiX&3LhKv370 zhLsQJ7&?IqX!M^h2&@8u{QQX2p1=3#0-?M9ZU_y#>=0U!`fU*oc+@ZCTaO|8_$nbh z>;!Y+X`$D`VZNX4S~qnwF{)n0=bIHi+Rzs!TMWQ`+K=NIo4lhDl)-Az1cT$!)4E^w z;E}epPX+FR)|A55J~)2R#sRSxyyl=J7bV&VWMGGVB7lRW6*DNaKQi-RZ>FMYrtav@ zL_q)r+imAij`rEB`gFjp?HQOfXw>t!9_bB58V?u_8?fQ2-A{#lICMNI1<~TX4JBL_ z7!Wk#zjd@cAiAr(nv24fD7wi*-Q?4*M}yQmSgj4GWgJGta;ZWtcbkW>!ISvU`J$5+ zy4!Ln3vw!<5%K#%dQjQP1ony-hCSC8`Za?9eW82UKsp95;j$W!#(l8fiVx7}3}2|3 zUWd_sdPN^Nv_yv~;Pj*8N75XyW*afeU(FPDK#rCJPoPkkewSnxOVV%nS?Qr*C1iRg zWD1?kP5`so-Drdk4l#&d^Wn%-A<{SDJyV*GC!o)eF(X48{!c?cv*m;cxNpV@)-#}< zIjz`j;MTCeuB9&0(k8OhG>nAF613tFcg^8Ni6j}@89Ko&&SIYPtaB6M0`&_hs}C>b zh3uXi$aHDyTiPcFsY_;Z(^V(D3>zdWybPFOvdZJMV5jIUw>jW*IO=^`fh74%cUuN! zp|>ys_iJBFrw9AlD^OYVsg_fc@GU>^)HT3`h5j z1JRj4s~vb5@FDv|N^e6N192QSfI{{al=C=pXipeD#Czpm6F?q!qs)1vss(`6#1KofafAgw{D){)?;=z3ZUR+CwmFXx?|UnnJJDo4q!U zqu;0P#!eLV+FW(L(?@wB`zlhcQ-ItQ0+eyLR#5=ZXE{_tV+NmAFIx`K!~4VG?sQaa zpo;I|2{R7i;*P_kl(`F;LL{6mh~(&aw6$g%@vkc?`HG6^-{1E)DGLw1QU0x)zcs&! za}Q@nUcNUdtMJ8nu~d zZBw|3&eI!~>qI!rYYuahqT25Ki@|lhSAEv0aeQBRknE%+ z)*EGrVDhsuPk0b3H0a*aN?sxj<6eoQWi3E?7w0An8D*U@Q_%-5~wd{sbsN`XZ9^8)LYfn+zLZ_^@mL zY>3%q_^?ftQ17?2G9c0QVVpCqL%{8dt)`lNFMFZlupw=aRP%W0nnbU(bE=#E%G z^wV`?m6#oKv~iO5X{K(7*H`yxHc9(gK)e@-wFN*(AN|1$Pbl2dnMjl9gIJ)MLjRh; z&I6b*zx+*I$h{PH9b=L>(C0a6lc42L6>9WteiVMvl-O zz6Eg)EG@?9BFTVN@4bJNUE-k^!sU#(bfG>*hjD_%j3^g!v?dk{Illg(MH2MqVzUo~ z-tX1coGIu$#}jg4U!40WzN7sL857Vvmb9;E07D(~Oz&}QsvTg)cEdvM*d-zw% z`Dv?8Djx&q3R3ljw3XI(u#F*Yw`mVQzf!05??9x}D(zviuJeXHbV*v{*uw#mR+8(t zz^YYngt|Q(e-*MWHHhW*@Ftj0(|GH&l0D2dX@y?s_K@oZ*~2uBI>H_%8geCjco(h3 z;@iV&7;v&H+#d4&e<8*mreOtW4o#Jyegi0rO6-7DHB|z0q+t&m?>EFuDk0YN>%cwe zz7$Aw8B2SZV$eBZXk}bhp7hLSk}T}8K*fV?Q!hke-9V5lRf+g5Nlo_jJAjCu`n}*{%-;sCK)o{ z{htNP8e87VH4VtG)j`F~WBzTWGBXMv6^FV3;AZ{o34NqJPeZt?Y+&4sqhslE4ORr7s*D zDo@1DLpvTdKUqCVyBUZrJkrOpU~m(RE`~)taVN$z)<1oz5!;o&M?|h8)<4L}`xMI` z+Fw27omidWX!(WUaT5WD>{)0C^wWn8d}ll%f-!u~UfH_Qc?mMLpPn;%>H%6mfx(MR z28ZyrcWXgKFz9r*CGr+zPbpYNZq9{URyh&phe2DYAVDnZaHK+TVCh}hHS`&AA)FuG zPI3GHUy>=~)BzuxJnP)R<%$*2lVZ<*Ay|4*^pRo{tXNO-Ch0u9roE2^81XR5oX}ve zAV2K4o*{VX4}X0^s{?Lmp+@6jlQVnOA?{hCIhK$-NpKp1*d7q>goq!U{=y-@8 zabR*S9Zyg?WG@$;KqtDq6H=_5zz2)A`X7e$M@q^kTBOf$?$*9OT~L0y&+&YVa}&od zRw&`jc^5^E6;2oA?g!tHJ24P5RtD&7m}5ogQm_u>Zz6%g{|Q9uP_mVLZTqtZUc1rH*xK%?pXqyBatb2*IWae0 zKktFD)caYUr(=nMo@3 zBP27H{vRZ5*H@?N{a=ogKz-kgpU_>e097+yg`ibiv^=wQ;(C;4LWDdw(84XgJg<=? z2qP3J&zG?(h%3)d*xb1C#1aJWQ5gNc`Yyo95l*5fIY#z-Vg#Mv(84A@ox2A2-0!1$ zqI1GA=v4Hv{q}Dqk)DV>(V5iWShkUNCP$3z`=6G5`-V1M5*%j-FG~^}X9w>OFrTqw z+mPBNIzh5`g0IAv{7;5^IGGw2L^)pWK zKYxlGOXwIsu2kt&i;(?VlxeS_L~ih2OUtrI=?~$(wp*K#C8h6G*E`2iX2||)s{R{Z zy@luLE`mPl+F^qA(WdV`2>Z{m+7|yt3O){>!K=v{^uS{h@wf_0I>BQ=@Yv7fWD_lf zz{yC{UC=pM12ae_4TtaXsir#-tWOaY|Np;X=8Q;)0 zN(PerGh0UsW@ZKh#E?Tw(eX95m|o`&ws4ctdAUg-j(ZRoM_%oBXVaP59y)I-qD>Ne zbrq1jrVal)bs3!3*R&n9ass3J1{b{WE4UZFU%LxJ5(_$YA9q|uGnxlj9Z%otTn9Kl zxGUYdzl2kA>5+$FWg!Ie$Z5~heTDGxBId*g)=L>gjvG2l*x;8FH)t@e`qfVo-TW-U zA?dc*L`*dp6uY&~OhI>?IkB3kikTBJZfFWuZ3A_Jpih(|#?71ZZH1c&f5<-4!%549 z3i369_UaQ-ny+gsX*~yNUS)bb+;_lI;1WqyK1Leh#+-v`0X|$dJ*aeBo_tY(zlo5{ z+v>^}FC?HXZ5f)0w55awbJKblVA3}{a$B#j4;D~4)<3@{Fup#pFm;I33U8y_LQIvz zvnJq>JsWc8^zkVb%H*B=jUj)pWBNC(&pO8eRD1t%VtOX2Pz$Z;z_fLJ%A4M&&BZ)L zDs+}ylR{(hNyIbbfEO=iU_YY*sMZ5jT*jV(0R&^jhuj_&`vG`)f#bI=z5@V)HQs~V zui|S`&JMipYBZ9J?Hpn!1?(8Sh+~YwoD04jeU27%;Nk*v#OLr5JYC2`QjQ_-zdGuHYYAlsDR_-3)v4rIWafjc7V?@6XL^Z+(Z!0d;*>>u10f` zlpz@fR~OKmziQ^|U;r20!9$_ffA0kt?>~4ObaS0?rnL1oR1_YNi?B;~%|o4$3xK^ASzT?nk&uD^xDj;H7#o%YhN zqpYWpCHA*Cu^+>r#W_dkcF}w%p!HW)$w|8J_33mk2F@tD`^3=wDXnti)BRkAN%wDn zRT~gN_bZh3)1wh|pW8FtS#+esl^eZm+xJU@bm$khTj*_f^^4&3UiBqyuUrw;{v((Y@iJT==tef9 zX_>zs{5rkNR*!o0G8^A6!Yg2;E`F}-^lmJ^fv@5ovha^HO!=poOvJu(Jp~lfJJ;_# zV)nuk!GkTqqCMiB>q@NSOoeuGn)ho{Kr<=y2oODm@jdg=B#(8#DQqE~_g{^y?mkG+ z`=we9%7iBIO^N$pTg@?z7qUr*EZ;&w=x)B|_+cUezNO_5ZhB>6V$zL^9W8$YDQ#oL z?1bE?^u4jNJIG!L5Qg#Y}f@e{!;q+%H{mEMMZ3+Y# z6z|?Nf_$xhBi_B~@1c+VadG87t*sAu3fcd_S&Mj&zN-MB+zyDl=K%FrK)LA?yzjJZ z6so6iDNH`#_|*n19vm%x{N<9MtdG&Mqh%xhsxRr%pi?3c=4ctHCtelOaJ2l6Co+N+ zkceaL{Wbu8Kcq1St&W5x)!P0_I$}R`D;dmLgK)J;x;h{4ITvPW?_$h#y^CodTMj^i z8t0&f`ij;+q*aZq1HsBZ#ls;~hS?xqSkqC!!e z3R5xGx-JzJ9BY?`IRO<^>F8fL16gq@6;q`ldZqEA(z#UW1ySh(HJ0n6P{OW{Atq2Y zX98e<16a(fkbrygn~mo{SQ}AI7g7e<2b?DnWDQ{r*_R>RwNYSLN$FibamhH=K7j-P zHWKhff`mnJNLWX7R{#NZFzK(OWsKghM|gLpJ6ay+iG*MiDddH`b6hpi=ohUrCw=;s8mmtl0+qEoJ#AdrEI;@G*M|XRoeFu z7sTf<7}0{5OqKqlOV2JUrBJ22MWyyQl>$_W?n>cyghpl-ykJMmyK-cbJ;Ct9ldvg{ zmIA#K4~xEYw7~PFaT~mh_aAK#W2}LAXqscK`U98k4dX$_0MJ2HdqcmVWgZPvZ)nyK z(n9QjWz*}!3N&*d=;UMfKI+MH78;tN$B24d{2GPnR=M;P3axJsXD$a!sp}ooDdurQl-Fm8R0wpC)m#EB!|AS z+>w~n=|gBsTboXrMJGU9@rMc&CliW?fdchk`bDgC{simPwU4@xhM4vp=i{GPDQH1a z>CQNn?jw@#mKs4*iKB%M__?j7xtJ%Om0D0Orxm(-CxfUt4T!t$KuZ>___Lt4iW>g@ zkG<-UA8wW%vYYts$63f}yb!GnCoF#l7Oy%TpQhLk0y1iF2>pWO_-TN)6K1PxCrQ68 z2Y$NcbsVolEt;)LH<#SpoN2 zN;>82gwuo1+WPU?|8;FN-@L#zbNEF4da+|es}ihO+UXtcaAx{Qss*P&EJ`dl9f`Ja z>kwU2jRg>Je2Z5#;a^eHaG!FuK4=`SwW56j)VN%0Eol#Bgytk@eBUl)e+JOndk+Xe zTFB>W9e`GM!rPui_U3&0b5`@W$&R%TQ1y`gA*%9MStakFwg5YTxH660ER=qU((Wt0 z6G1@GjpzFb`g#t{?{C}hQKzMP)q&c`qts{+j_lg6gSb&?pLPnQ(XMbB_i3M{0nfQW zu!ay!0fO$|;b|*9jS-DUit3*u7<&c^%Q*yDTZj#QMH==dg0!2-Z`Kpvc0gb*IQXC5 z1aPsc1CTt2KY%`li@EE5E)@QOK%Q`k2|M}o;=Qj0wBmx8EZ^3l&(QpS?RFSudS#Ap zUUz^K?wVuUk2=QqwyrLsb*w4rJHr<)2ZKe_cEopv<;ZSNB1|}Yj{MG00q}O)rOiEk zTX&eRxb^Q0&jy@9+DJke^KBiyL;1=Yl*F!g`FDmka2K`S_0cLWQWj!ixmz2WBpT#P z#wSzpU|HW9vM4v(Lr+LqyuJXkaQ`7%7Auh5o)A|Sg8;nURsg}q|IV^o#^w>=1W;K1iF4VXw#rx9l-`EW_fZvZ*jkg}C5uw>I%bU<%n2u@lVKS(^za88F0@ixyi!`s$5eMJ@Ig z$ZWXK*B{@AHuX`!_nr7>ahCvFaJJk?KgH7J+M~ZGtb7k=4)Fw@hnnj`F$i{RPKbuq zg~kpC9}SPE5a)DnVYB$ORqU}49i>(}%sm$VJ!gtl=d^dp8b_*|-s+=VvU2DZP-AFE zzUxN}SD~S=Z!j3fU4U5Ei|+uhqGN5U9CJ^27w(B~!!{w?o-Xb=CFA%vNd z99;<5c-FQ54B(3pLNTq|A0d~&d7Jp)j_a8;;rN18{jRVaA6oAUx^a}D{hk&&;56Gq zwv69oH~}Ju#yD_^BK=bW`?a+vq03JaOKsY#xnLA}zAwn5PNxN>uzWuC9q{ihY%YHj zYyK?-t@)irp&4)bR9sQ0?ksGbqqScGYQveorxTgxZMYJ~)DyA^&tGqd&1DfA?Qw5} zylCU2k5x~^zT}$w3^|=CnbGBhlT2MsN3o=ckP|l-Yq=fOKhy?2KDwNsFsmyW)4rZ| zTGAd%y26rfv7{fgq_1~#@W=W@We^&64Ye^Sd z(m_l5E=&4ZOS;pNPUeokz?p4H`z+~tq@(uKyRMVH+G0H@;BSL+Gq8+Iee~HA`h~ii zK1mE`K8-^npSl-n@b?*%+Kw|e^&X?wb7=_%6}Ik$a$CDwOThYxdOeMfpOB|-J-etJ z<790jV(YGXq)k@T7jT41*W{>QG;5bQT6REx>CPwk&QDPC%Yl@{1{jUO;Q5m?KLoRm zwQnIq+&NGJrvckA+B?4^a_v8&SZvH_Kf%B2dJKSI>xSVNP@4g=dg>>DV8P+Ye2g+5 zL?#?I3`Kr_1iYAV=7Q6}$hCmjK@c|y%nzU*HI)Ax9GNRo_|`BK`bFW*DAY!Ojgown ze50U#hIiu7707O+0ew2bP6TZC2--6W+38&@EgKmgx?h$qwNUMDLbB~J@qsZf?7e<1 zrn!ftz(-WS#Xnl$ZvHNzF#ud?XiiI}?!xzfls<4bZoZt6t(7EzWb|8qX?K!o6Be>= z9s2sUpm01W+>1nTG%Ef8JE#2?6}{@zHe?!?VJt*^E)bCa|+ZfYy!HQKfuA_F89|g*{8l7Jjt!P zQj5xqlaIdXOM2N`zSB42<-+o(sn!}HRSrYljWU}cd+3&-_ z6zy-AE%s=;=x^lDLSOS?{KGzjaFmLD)1th$eemS7eCHe}a!h;0?^B12#0~>1n*2(` z$(8Ok|6)gqLieyESS)T&qTI$KJ{5JLH>qeigX})~07^2k`ICfTHvKsn>Jsd0_Jj5{ zrq*towgZvlsSZ@j-dd<0pt#FHZDGA}Ctc>7-IYapM0Ancj0Fqco#a<9Lj+&qyR*Dq zS|xTsTRI#qJ5f>l6nx(D<~onl<$5}yd1@NwY7E&I@pp&qTg*VfhP@y(+k$HawCR2E zbSruYL_8^eL&M?>5@GZNw zOJI6jE#bzCwA+v(eQ(Ao4OYB6wcm0wgITa}{91UtppW}ee5(EREG%-vFNbaPEh(3g zFl03M@+F&!k98mm#eLP*%|OC5I%m5LooUSdxvpEjRc*JU{@RWk?PB7_Bum~JE{(M{ zp+I{Ds>UUwG*A6<6^L%UK%?zP?G_YhE8!3~k9-UH3~V%`nY@FpTlQ=BA@%i}r@h_$ zL4wu=Xk65GzaZjyl-zck`1h6;DD>|_;h%@{;-87q@5ZJV)W1U)tv%T2n3(z1a>j0? z%dtO06QOBjxK|XwEvTOfIYG>Q$x))-=^hl$+zLlPeG~3eF8wn}k0Y1Q3-nFH1{i&_ z=(pCQx!AD~Ma^M+rv{{BQ7!KvRhvk=8Ee0WR%zSeETG||^nwu?C>bh<@^*zY--i#& z50&3T0{8Fn$DQqI$&AJqzi@sdNw=(CxWcrU)Cw13tJeRvp8 zbf>}u9DBZouA^(nF&}hb7~1^wtlFNVsMU5ZzzNcYbRM#H*wTXC= z__JR1iEn^353_3rZA&cTQ|oI~0$wN5Y3~G3;KMpXMJcU5AeLNoBW2>IOCPSS$3GE< z*G0mazd^O|j^=RUs>i4k`6;$V_TrB3yHAFliMiwZTrvV7+eSDx-Z*!BKgjd>9p9}y z2}bFTZ*sJW5Jmfp_9{Y|=Uhg3D5DFb&Qgw3dn(U2%6IW{B7Ck_Jq$z&ddd?(^=HQ3 z|NiK^&p~SP*2bW>*^i6QLq%EP%roKUc+~BH zd)4HTxmqh&K-BozSTWaZO6WdH^5%Wt$hBISH(R1 zCKAHlIG(a?#W-KPi|>~?JX_bZwhr%G5)ROK>u=;%e;>IsrYIjccvwy}HGOxDa*0I#GQ!Jx}D%!7-3>UZtbXcDd(gv~(0wD0hT>j9?aEp0`Y(`))R`;BnW zn!M$97ZMm7_Lj>E8iuEN$xtgH<`voz+<4JLd(*({3D=T$<%gI)G$~HQ_W%t>TAxhMt9>ZxRg*)4~H$t?#P)3vi{ zvfr(ZK%_HFI);Bo5nx-JM@}SYaZWzh8`|h}(e$|HFe#aONX`t)g=?9t?%q3UGYG)? z03#1{hl-B4+YSJ=R)}nR3}>zZuvfiL1DH2-=bI?RT*Tjp-x`PflSK_ zLlDxafNU?}q=Z5f+sPdD+MQGg8(8dZT}#anAw1LFb{DnE=ccvmh|b5+L0(nVfD^F@ zu0?Ss)E6-=OEBvN;3~rdp;-<1Xz~gb9KpYnL1`~FdOHB9H5cx!MH1?l4$-HEyh++~ z+<&;&c>uz~@{(jG?||dy?20!u^m|ND-q6&q5OoivTkya?{w0&c#7XnkRPW^X16^XI zq7U(JNzm9AdpMz?`$gTIQFS*Rqi%+=kDrm(k+;inzXuyMd2f5v-R?Ch7_nI%J z`)eCL>Ou8L-Y$12KcS%CPRIT3HD6ZO`U_i=odx|~0u9OPw-9sDZ3T z9=Ry&nA(B&5Q5oL7vT$y;IOIn6rF0@^z9Gu++q+11_d(vPNYMKV%oFl{Kl#Y2Gl^ET?or88O4i$Uw11G+(6^x97S#O%s_d}+ zYN_xeJgxRyk#w|wJjl^}J0WVduRz8#Fr}<@XuT*qtzjh~hBPz)eZm3nmVYVUeh2t= zD)}kO@U4@!HqKXV(*WJPGj)gUJS0fJ;maW9{(7qtoY1^e*|IpB0Ofz=RyH=aB7FnW0%6K$OU!n8pq z(D;Q%{-qyDdL#e4o&Vj*|31$DKFI(6hW}liPLPZF-wOU$z_;?=_}_o?zu)k` z2l?M;`QJzR-#7VR!oO$FrUd$TH6us@ZRYwg+-Z<%Nm$B94g@8xxn!+y!P6~8F0xHm zc1?j**<;C8w6l?O8!yD$aXP#JRnUKtB0#tzDMpOo=~ zGF~s^buwNq<83mYB;#TkUoB%D?^p8qCmC0LB1(#7JW0l>GFD`)*FPNfoYO5zoHBOF zSciX7KHni@O~y?!ULa$ij1S1TQpP%-M`gP&$+)j9KPaC&qUicsf0l3$%IDw7czhK8 z?337PngsM1cQEp2B`VhGInnqMd_hp^&d)EHGiTcDLeKPqQs1oUp2FFLZ%j?y5{lv8 zvc4l5`cgW-uCb;>LWFzr5Vv&@e4fU9rSJ zdSpHRAG2&(C1bN@T!b);Ei9aQ@vJK+DTTF)6?9%vVQoXOthU@gX;Oo~wxYPKd}-Md zKk!R<1;4AymX}#8&9APls9P~f8Ch?_0dFO;W5I|C{B(Re+_X!8RB!v@K;1HW_RgQ_ z5#WsN7V_^LCgMFKL_D{4X>Hw#TE*W~?ynD4*VRh+rXJuImsKcbHTWmf%LK4ahoV$R zN}>qj1Lv1E`WqpOvWklAQC7N14%bkb(olV^Uzw_mtl%v#obR4J6LK}nSClm% zVzLtO2O9&m)wN5Ma*nvLc5Z`zSTtTVMj-wg|1y7VPzlzFmSW&cY?TmLL_hXGy(#yf z;Wyx4R=3;_mQDF6pdOi4%6PL}3Y@lRK6*``(OQ(=>UuER>qnPy`C1ifG?feGYtTXL zeXS6(u%I>=SXo?GT^nqeG^x5_PT4a5ti@OR%Y)e?bI%)JIDXs$MNjZfMoTNWPB)a6 z@o`kTm=7f6>+_{Aiwbel&t-cm`MBDUNr?2OF(_uU27nSDED!$Bv5116*i8R_2 zVJ#G}cEWgQ#Bw{JQ`9?p+|x>nAW1jO-=%X4<`#GaRdtPl27k?RKkS?S)A2#R$CNN} z39Qsj(`OaVoL=gl@4ie~CI&T->3D=Sn^)AJlvkC(1mOS127iuH4kJMwR9x2(l!J+r zVAj(i$QsTo^7tEqfx4A`VFh$*&32C6A5a5b*SV?}H7qIgOjcGDmj%j}k#VWdQEJQw z3;oa@D{7@YScheX*)Eq8n2Lg%H0g$@9AVxpa=}`QOJHQZvci8>z^^R909vAytteY* z!LN{+uWqRFS15XgOGuh!i|ZOOM>PhZ>&vPeFoTGnDL+R#)kRT!K#`56*M}aN!ip5BNs%?19SXAK9u4jX0%IQ0QLJa82`XZ zrCvA$laz9DL~73p@@XEO+z=FoOfszZ4-Kd&O`9}{PZ`p+5JIic?XF%gUbTR~++V%i z@8&9@yC%_kTjA%}1<8C0=M)+I@XAVq-@mMZgt^$SEDqEy_1DT7OmAPQtZRhI)z$hZ z16YWlItahXnBQl4NYjj2dg@e#z9%=zMLS@Fo0ApQH8lz*A*E~yS(zGiRDkQL0pD0# zwivz~NRk}r1Ax2+nvA&duS%&x06|rJNGidV_1w|nI&H`ac!Wv-pWlMAylz=NCOO?8 z>hLkT&`av|`tYj+9aEKZ;%!bi)k{p8z(?mq->Hn;G zqsM!}PepG!+#)ZtzYV?9Wm{p$U(C-jy)A5$FWNQlBBN4ME8F_Z=1l9e_1i9p>qTmWk?{X^Y68T`f6 zU*ZqW^9LHR0x7JmtjivW%2dhZYhKZEQI2V$rlBt_5X4XTmeg>5O<6;O#L_bq4D>N! zKw312Nk?HEb6nj(jiVX{lCC&9-7$Pxfz9qS_>2SJ8+Ti8*1&^FD$=uwbljl``bw$< zGryAE0H0o|<4(QNSAi zx*%7lGlpyEmF_9j`19+q1>O`SUy(d*K6ggeCzUF13=rX?FI>K?&_hNEx>&z-$><9M zSl){ai(Fu6cv(yD10cIQx(OeJ5s~^*}8w*S_BIGt!Ae0|xeR4l9t}AbB5KfXb zDG>}Ei=P;J49leVtFTd4ggQP&sl|wjHbQXo$^+GWpC!5|P*)QJPI;yN+S0jmqM@XVDyS(%J{mZ8nTkT#}~YkBeVW-QxsQ5Cn6u6QfaUaSyMu%uh-Pgu3O>tmsR)! z5jq;9pU2UC2F7>{p9sGuLa7uMj*pw){JNUPWwkxBtm8Wleytc|SUwScBM?ThtkZWq z{R{V2w~`T^9ASv0Om+On!9Tjk(n6F3PK5s`gb@FYKBLYNi;k1YZn|8eji(}Gn5 zC&GU$LQ@1feZA%%!kmMpL^&NV;IO7vx&YDZ2z^ND_>Y7Cm=^x0{Kq2fHUHHOrjx;~ zx`E4I5z+Cwf%{p0kA>07s6Kvlzp_UG9uuL-sE$vbbDdCs!%ri3&)U~N%Wtg5V2BVJ zB$vPDM1Las9f>fKWu3lW^D72RuT@;f-(&a0@*l5-I6W^q>_p@dw*e^@o!%bg5u;32 zT=7(1$JZnOKZ7xv@t^1S=MYBqzdn9?VEAXdCyvhRwvFPS<^Sg!h!DZg^WO`E77^(5 z^_qPQrif9VgB|V)f74XC#?bNg*x#|_0b>M#C(e;kKPhn8dgLI&;x_#FP=`BJj z9i5(-YGv?nmtzyh^#3?9#F?>O7U>Fc1u*G39*malUb#Jc?A=sT=XCme-JeF+M0Bd| zz8d387bo>AsenTD=ui|J#>UG)AVY7zSKB*=1ch$!lMmDNi;~}oV2o9HoxWbnhnOvh zQhB-8Lj>yhbomH-A@Vn-_ZBt?FQEgu>u5kpJgDU|wf9RA7- z|H^5Q7>@fQolq-Aoj#r6rDmNmmUMh$9HGx>O_9whBe10`Pw(PIMRhnms>W&GBqg_L zWK%p4nU`OMH+;(RGJuj@5=_Xc}kVMTR?pWa#uP_>aYY0o;SG=y>#gttQwp{BJ~GM#CMOe%@k)B+U7$SN2vQu&}PT z-y442eA6gC$2uOJUz&c2V;M*AtoI$o(e;kazoft-f#c*~M_@=mZ$GBpiaOJCkhM&| zVT5Fhh8YgajoBCc81_B(@Ffn)<8~Z+q!(}9l)$j^BMQ7nD%7&xpsvSyu+QQ&i4OB- z<3KDzp)H(=Ueoc&Q&~Dt#VOeW(}eH|HRi|!F!fO|#(^A19ECSv3SS<&5C)6B#Pk>V zD5U7fbCxkOEzU+c5yhR$$b9ZPxt%@enIBd4)dpv!JxuZ&_!D$(B!%@MC%>d%I%{Ni2{P96 zjrji&JqG@$#8LqmTDDS;`L}-4pMGgm99q z=x3#a+R=YmNF=UKT&+K+V;rW^Lk45_;+xRfb3AiON1nR&^PGO$X8dc{#=WO}cP-H^ z40b~qe?LpSr9684xH0t=iv=bH5e51U77@pJ1UGVw3Bu)ZF5{nL9$CxSc$DjT&fHvf z=FN=VVdOR8{w?SX7#UMdZ*Du!Cv+H_ESq3*bIU97jaxCEiS9A^vvEaCzMEhcMCRev z6X;|_ULl98ip=A1^$~f+9Ih!ckHf8w$SdJ+>mu_w+-=CKp8)y-!~+O{etngoKRW|N z8^$+N5DOUR^17PfGV;~9O-1L+{A;hhwqh}T)|Y)i@*D`3I}6>s?c9jG%X!-qta&8@ z&J~d-;JnDoNR564j+eQ$pSW)BHRYQP(WnAjL8CK|)5^=F8Q#uo2)Dt89>Qm7Mo#YFew z2Dvm!V2AOoGqh32IwOH8T-FVNa%b*&K*y8;32Xt?3Gh5lw}Sj=UC)1X?7Lg~+SX@Y zz3~ctuA}a5hV+XKdqg*jVt&%O3~az*II6|IG5hadtK^(7!XizTYB&KZW%j z3;evTzN~KmX-5ikRPLvbFlO~QtSIHN+~9IFTn#(dP2VhTYd7Pq+-!7U63l;y@W-yn~40uBx48bdq)ay z(?vK=PGWstNUEoQt(5RCpu8*_OS@mkD(R;D5jHj;VNjA4?`>HU$NeS_P8;F)S0s)_ zgyW1&i zL($jieXV^>|G2UkdowZiE-}X*@s^1(dWY0OYLA`+ma$+d=Y7g`F`bV=>IXhvc%D5n zFG@c_0{SHl{qkx;zawd#eL8f>h(6%7^Kq9R!4v(PbqR?HjP#s-FcGe`EpGW`5&&)=CPjv~Nd`tRS=^KPQ zVxxchoO$)zLLPnqP-p`F^h1#KTZ}32=yJvb=Q76D!z;{o!pA_UKv;*c5#b$#9}tF& zgk45xLbwZ|4M9UlJ`-z2gc5`x!g_=!5e^_6K}bIfZ6H)3tV4JRVJE_e2!pcG9zq2| z3&Mj4+YmYtGO(rLLTEyG2;oD7?6W}wLKDJzgl!04A*7xI8W2hlS`aoMbRcvh)aNjE zE5as(PK1onpa;Q+P=jzQ!h;B3A!LnVYzo2xgjEO|5%wS)Mo7m$?U94vL#RQx6=5U7 z9)!aP>A5IJ@FCP7+={RfVGqJ#gmid6IS4+48iZRBHX`gnIE;`EPbdc=;T^{82y4-A zqY(cY@eIUu2+at0Av}e!7vU3xq<0w`hA;u41Ys${T7*9$v?08Va0DUkJ?J~aY=mV9 zHzWK7VHd&?gp=N9>>Pw?2n!HaBHW3v8Q~DZe{I5iUZw6rmhp1wt#rJqV8=Jcn=q;RA&45Qcn+{zX`Xuo5AJ@F#>9 z5#B}k4&kJa7&{N45MeRG8iZtKW3ZU8D}AumNn?FkKbFqytUvyZ;0!i^4P+-_pCuFb z&7Z=uua22VJBQ`4(QFJm7e3c{Y%F$g z#=HJE`B)K~$!4)) zb}5_9=CBerm(64I;Xhr*E@unb73@lO6)RM>_Rq_1{!M_oig_D4wIF}8o#lZZTTdOmE(h9%Q;$Hm^eq0EMn(f9(_h; z=0|v9S!%qH)I&BupNLaNi~k<73wkUu-dTyP z$&b_{vn;PIL>9z+w-;G#dHXN2!00>9khPN|I?Dj-5hCKtw#YU_5&s&h#{$b|Gd;qH zPpNt=HfW5~Hx?2Mu!cC8`0-NQ{Al&jzxjv*jJJ`G%?<#1!hWMIWKPIU0&nv5G zU>qk)=#upl32tje&-ksM5Hl-K%)r5S zw=w00KJr4EeZ*V?Nb?E=%uP}EOhip-Jxn&%<9^n_&+XkcmRAuB-Lje{0Y`!sdK!JE z4MalU=F%>j|KeiG;BOR6$1ODwhneBSJy_zA7}IZE5jjP;k2jz048#RRW)22FC)1iI zs5EkL!;(M0rkd`?ll3U40CybVE*5J}Q#CG~SFETL`i|fNK{6!IjaklHff)yg(5N!$)%5f_T6*<;MfI z*wA>z^a@J6d_y1N7Sh-E@d~(}nJ!(R#2$Yb_>))Ze3mv&;95 zDW+de7yjIa@G(7!pN70PD*F)sLXgP+;B-U{pl#AGM$N(5$aVj=F&6L$)IoB*!HgRhRa zdpqR_cYzJGVn)qJ5-qnb;`#3kMv!h-l<0nyGzT}6>A0&UU-EWLx-k)T=FTaYty4aQ z;qtojdhA4ANGZ&5*vDX{r47M~Qsds(((*cj7#@>fA=<`@yfnY5siZ1Ux1zwjY&I3} z`K1lG1B~93DHT_xp`S-eJak!EX*HHzr4mnR4WxzrP+V9zv!t-7;Jk6ULcS^kk9Z-2 zv0qWDmJt(UZfFCUkX3O|hx!4(EE6N)jx`(@ZoFw&)d>?M>o_^V2BJ247NNqw?VudcSTdI|3IDy=QUU|3OF z7FYt>@V*nc z7&?maj!wW1lx>bb*kkc9vP=15sUffAV;gNH=-TR9I173fyECbZpauxbzSg?fL_ib%AB%5OQ}LjSr8-URc4-wB%x3;Z_u6vL=f~n&ZP@p+zG5CEE4) z7dI|h;t%NUMb1FId)j-Ya(uGt5m$3rB{j9zF}Kr+nj*^{c~&yWWaJF(0dT; z5dRgS3h9lAk08_|P4QU+M1D5n^9RCTME(TCD#9wHb56ot>IhV~7;%G42NC~Prtd=h zs7!A{{EAG!ikSXsFRJ?u;?o9+^bo`s$+Qb`xlC6e{)J4hL;P2nrhfx%zf2!M{2!VA z3h^nK0%sQD3uW4cxEWy`+HFDnqD=2Z-0x(OpN@EzOcx{mwM?%^+>SsrKZ`gl^RW%h z@(~E92l3Si1XF|fZ!&)q;@4&V#v!PS@E~BYZOs-UY()AB#D7E3kluvYe!56!AWk_0 z=RC+yMcjq(D$<7$U#8$pgX$uF0%1MUI}y`a+gC_aT!TRP>0IqOneIe9e7L~xMEo%V zdl~(XxNU?;cOo9?6ui(`)ijyb&#Q<>I=6aQ=F|DrA%qOzq4TS`2$ZI?tB+)w&aN&+ zpnN)~@*_~1&Zh>@ITX@#PBl%Y>1@i5vna}^GpeaFO=ndrWSY*b{wULQcJ)u0rZcRw za9)*#x^$K`7lH85S=JVrrZcTCWtz^kW+M;`oo(GD({!#iB1hnHBCbW?@Tj>^hU(H zWO@(cE}1@zIBl%Nk9d?!`w;&dK|6qe_&}aWQ@moF(DNq5XPl3|dYSPv+UJmNdKG74 zh|eAmJBc)%+rETA`FjwbcLDkh>2Zipp8y?y1$7aBhp++Z9}usb2zzi)#G@vmEu?c0 zkDiRNh_-SOpE(72$j?UnGQuFFUq$@rRM=GD*@U?ALePf%D#X(+!q`H-2l0Ft+DCc; z;$d#k02n9YpAgm|9|u{iPd>&!(y54lgK!w_-i5f4LU`sKiu^Xj0WaD|I*2&4P|%r$_;Z8<$UlO3(5!$ zr}_lWA&7S%5Kj7cvTiC8FfE8j&J;Ma5r+{7CywA)I|2ip&mz977)kI#aowfpU*Ze# zDYFI6EX4mt$O62Ec>Np!Pw_=1;1x1)A>M~T@;QKb)m#BX@vwR5t5+dw#Jdr^fZ2oi zn)xC>hJP?1ZxHYIzBCc^TCUJ zVnTop1XSKpAESE^&^@yaa9t?W1^ViMP7uC89DauYlLUdhp98im#a{zTh5^kkXd5sJ z0!jzP6L9mOhV%?Tp1m+95J%B?AMg)xGr%Jd&~eKEY=eN(M=>WH))$n?17wQ8V0s{q z`jePJK+E_8ra(Y-7K&9%aTFaQVU0lfD8N$?P=2xjyO!cTfOPv8(@_*yiVFi8EyYoE zS&F*>HbLO*Uc?Ve=_pc1Ez&`83j~xmOTbr4@z;Q1(IDTz4~p3k&@w1CFU5NRg$}^} z2K0piw?RPX1;y;8IEpFXgJ1@6A|UD?Z3A%>QC}%-XbVNuj|z>Wi26dI zaTHO1rWS~!cm)C@O7s6e|8WEeX0w1_jp@Ym1=zYX-=67o<#4GZwoFaYljZBQQ8;7@{<&<0-(ZHQ@r zXNM`2CqWxn@bm&8cf0}95=9F=Fabd>BqwTsSBES3bp^r?5n2ksc!8J44oD$FN)Y&c z1Yv?92J(ZJ#~MSsL>oGa43N{Y8dJNHs2sAW@xQw@N1F=ZzgoD zMZwB5L=(x+ay}U_v$%rr9avJkU^ww&Q#9kMTy0njmlcXW;GLL7Z= z5T@qQ6%CpO0^<*a;UGT*ki5nIEF}PZfdnj24kEA9UC=LG=%Wve2s%28l{a_DLnRUA%@zE+;H(TjVAvl#YeR`Z$U$Y!AIf_HZ*VYy$Bs-X80wk< zMO1Flz6Ah1A|?#1y0U;8@a~H7gj#4zsNFdjQryY)5t!|t?N~u-0JQXzJ_**VB#eqA z>?-n5Ll(T)(DEq%Xb=8e?^Jy)kIj62n0El6lNQE z++kszE!IW(Kq)S-74!{V0dU9qAMhv%QiqNX`Y6F(hlRNb03O|7)X>rY+4Gfa;pa@E zV~9SoD;~}-WG!V0xr=-G;+pw6-!z0Of|-W4HvE|_ z8=Ixb|Eurlw`C&qSF`{rP%Ka{&@Z@B*ihI~_^xoe@Jk_NG(a8-r7fjBrLRlhl}?v_ zDg9E$c$V{Q-q|Z>8_u?z?KlesrWbb=#k_5K33*rYAm#r*{|iQdh)ymJhe2XQ87XNt z#OcRNX)u992QGjjnGrlY>U&!y5k8rECmK}prjR}gkPM9QNUpdc_xSv z!m%P{H9~{OV)6(DxF`%l`cqv3@yw~tmqDGkQnKf44%qICyn5IB?p=Ad!<+J0YYSz) zI(hP9=<|>m$|@v=kdcSSVR1M{>Pq$MZI82!a-G`CZls;-MQJW^ilqa7wv$#NG?e(Q z1WFd%Rtpjv!h*igve0RJ?eNk9_Z0Z6p01=dz$GNFVqpvo4V83*ELX^qgpY(I0fZmT z!n1Jxs9_lp3?Fgbi0J>wLe!H*_&DgLNranQ@i!>gjSjNC@KjdqCFuRL%d zY>PZFEK?LmnUExDAZm+EDK2Lamz&a)C2E1I3DLr92l-E8np>I_lZu@NrC5n5y5<^huc32aczF&%QqH+QDUR%8+mUJt4C(wJjR2YV0rU zcJas?>Im5gqbO_UomyF$GtJ8UGgJ5V>{!kiUBnXCzGr-rR6R>QedzURng;ihZy8Yr za`7r#*1Ss*2-A_w&lT_Iyv5blJeg+TuPL28duNpAy}M^>fw55xlfJp7mwJA4&@G3_-=`H`bJIV;*?d zef2Y`|9RygXI@XEke=Sf{MEY(%Y8E_4{+Cd?~r(WL!0XuV{~$rGR@Pwr=;y}EqHIU zOfqOpo9Msf@Y-)oaU87L!%E;Ki+&Y>zC#t>u^0yNA!UF1`ko^s=x1M$Na#$auc80=Pr8I~I_3l_UT zphhSGV1XdKXc_~7oxtj;@OrF9`HM4C-0Zx|KI#Pb4JLN0v9LF;6~EHcon(PJoZhKO^FU@SsG91lUUuDoTnS(R5fmLQP4DMhMuI;s+ZL zh#wZCB&4l!ggRt0`MOf(6RX!auHrBHvhT%fhJrjk9}l>IX+7_QtYcx$Nzu+VoXaT; z7wJ;CuH>lio8F~n@L^pYd$f+(T=tEcgRes(6?Wej{A_nN<>ALP?}0Jmqb{>O30a2@ zHP+n7*XN9U-V?>ew1%_YB{SOU)4hR^;if@uXRR-)#}`62s^oNLKHU65bj(>KKix*Z zi);SrI<>i!MJ!>xxW^ zsUqvK%#SY~So-!l;#m3BWy0}q(yMO?1P7Ym*X?PN zIKSLmVenA0DCk&a-=?DMIR1e~D{e8Nh2+bl3H$ta4&_~&Q&Q78)AWu#)jUa~K|j{; zgmJmH`oNKCHqi$Ye{fn+ZIEJYqN8@(B$Iqj^zf$p$qB3I>yhjqA+UZc1 zpngbqQopgK z_id#x6C2&klT$pGSHe#jG(6L7o-%j-puWIYYvoJX_=z~350_ka)qB1X*%mk2a=vW- zIPb74w^E!{mc)Gr^QT_cdUa>=X$o%Jv33siNnnsP0qcwJSuXt^Kru%?x-|c5XR}?$a;S3Rq_SK$sHv2bH>P8!+XY@Ef0BCECH_dSQKQk8 ziy?RWCS0ei8_j{q&<)*jXIJ~(a0^N@`nEoIvdDg?!+DWS!xDFVJelSLF%^bhg&SA< zddYSeb~==c#Zi58tM!>XbLq|&$A?*@MnMunciOMROk}8gM@-bEYcmr<@6v1BrY0F>kb+wuJuy*?S zxpC#*TAQm(q6gaddh?{wWS#%^Os&c=Ar=@e#(y?jr)Px?I z;LHSi!RN0;W&f)(_-8~_QMQQ$1w;;!`Jo=xBkPvc7!J$Mz0{3AA3LSA%q)=TxEn(B)1oQ9<>phq`zmke$eTu7dM)@|pyExPYwJ}rSBJGldk@D4g`A^| z*`Dxza=ul&q;75EZYev}9F>gjDr4t0{H!`cor&+dN~3o6w-^+wnqVJ9Yskjg7ROmc z9I_tTn4;XNBmNqr_+iAkTjr1b``kX7$fmRn4DoncnN~Dk4xJoSll9s5Xl+NviJMdT z6fDo0-#5R|zn>Ar;ouq*l{2AEukuofb+mCGi|WI`VxgRXb)@KfkzbfO#4eoan8U3) zHFNa9MFAnU83Xb(G)AFg9?&C~+ey>k6h%!tV$LE2Y zx!#j`o3h{ZCgl|kse(w$?2y1||S zb|UPU)OyFe^3~M%qANzG_K6%{O1-A-hP$2-PX@|)*U2eo>&LX+(P{1SRur5ZePQF( ztY~-m$x{TmJFd$Y=SO=$n74n5Mt|z2kR{7gBIV_MEj<+eU-TVW?ZRd{_`e93uGcz~ z_I{&e^VFIGH=et>De-sKe%Pks@I4&&lJ9%G!*2DM%}qDEE06G;Jj?N3Y4bNy%$flt zX3Z9`qAJ5N{!Xo~xSHmLgP!_%Ii(|^3wX_s+ae8~M7JWF0H?g4g;$Xnkd?V? zh}6%D1d7_DQNjkdOHbc{ekLt!ooHgBI`EhH1dk~+_GYRFxo;N9lQyQW;gw0}EglyUx zJ}<0cmv_Vv2DhcfSMk;PU~02nbE#8z$Z)XH*-_Ox-0l-_JIV81iBDj3cQ)r9qx50S z`%SrOUK#rmON-aDhFFikSk?NZAhQ12$+DM6+ipw@%!>y52DddlcFGi=6F+Em%010Z zlPTI*+vAa2Zl6Yz`M$~HxHLLadS=_{@2ehvzP_G!qoV7nD%zaJQrv)~M)4;OhrRfs z;?P@z!%_CJhN=E)P8k#aw6^1Rm+7mn9h7Q$TzLMEs^HxQSG^9DP&X$YKEY(%x8uSk zeTMQ&39jZToYhQoYyQv{)RQmc_?Fedp|~r*gYLmccAvs10kaVCPdz;HUtXBnms)5f z9oa7aJ%>P$EOv@J`NUXPtd);KjpV`-tNEhjE@O1iOqlyYeu_HGt7PeiHcVHIrza21 zwAC|YWF39Wd3dWWPC0ni^V7TiBdae*wqO3%m>;_BUn@cYO36Y_DyiYGaUC zNraQUyIsla0~c_*hdCc1MorA)VAUu{KISpV{kGp*tiMy&=>g|zP*!q?0-{Kgm64TE zw9AWO0R>EX9Zr=+OQ*_J=RB_4UE7}?f9LB6VL*nka>b#iO4nbHa{ti^p^R)qk8XGt z>E&zGN-M+)!-KS(JQ4M6w+M3aMLp!f06{i|fMEg-kv~i!awL+p-12!+^H(OAkkyOF zMC#?XNJNBhv3ZW=ByuD0M=*W;Q9Fn1-`Y5CdI#oyN*5?Ufn2lq9kMOF{BAClpR*}J z**kNfxN(jaA!;$-q;3k*4XsZat0cYM<7;5!B6dzDsUv4q$KG^3YZ*i3POWU6DOGAs zui2mwHl3()q<+TVt>rs7< zhh!t^Ysj!>@0D;pG>^9S`2>Y3h!b9|)m;tGCvyhOWyT0b{MgFQG>4F89A7rj`S zO`6YTTfx$6HwA=WFiUUdl5-ZgPsAri?7q5bvsYknPZ-l|^SN~6(_@N(PKk*w#urJlOw)!=QR9hNpF zFiN>LB!_~!Ma=Q>iSP&Xk0-7ws!K9e-fLaA+df&Sfh$3zKqT}D5w!4nocBuUGT@v9*3-2Db}b}aM=)YjlI{`_@Gqa`j9NC;KSa;JjQ|y zt`tEn4f1I=I%W9)h#njdAkk6(@Ze~(Tn`S8M$7#Cql4prXDR4Un-Te>s8Y$tAChT5 zpcu=n*Q=HKiK*|D2{rE{QPYP{p6`n`6mcpKdz_Sda*yk5lVHBphL@u2Z(W?C^l&`4 zHQG;Os!T;T+wx?LyBJ-exn_P^NXFf&?>8mR6dU_)uu|@% zq4RzuoA<@x>j%rr?1*BU56|FS;up@+sZ$3{wWh{bNC|f-#f0rqs*6#xWW{|nuS?uu zIZR`9xL5D^7QgQgL#L8CjYl~wJ~!{|v06(b+2(tbs{RzBJQU^3cKlRu8P(c}XiHMU z8jG!mN5iZ7_B|OPdbihm{mw|9+A<|5R$O{oJAF*(tqfIp!wJ*xJMHWI52Zg@m-}WY zlXcK|uMSZ?Xf(LDVv_*13x2lA$Ci-bn6-=hU=kZXzs3%)<5Iecj%OsxH2BHEl=h@_ z`L=+3^9Q?lLUrG9F?vsa-5_Kiucvyj+?-=VK2>utvV-YpTWnE41xMZ0wj%r5EZVox zRqS7Q-lVdbJ+I8*Z7fPCZFoa{MRE1uLo3{c9(_XaD3xr`+{q9vg4)UG3z2>M-%~2Y z)bh*+)z8Vf?N!^6sVn*3U+eN+D&BwspZjX}cK6cM=!O8wlOXgp*|Y}tBuExu_cRiW(Umi+F=2Oi}Z75L^=wH^3s_lYTAn@!WXDB->5w}|)I ziL3UX=FeFz!*9m2N+j@v?-%P*T*RE#rPyaoe*|8*I4Kqtdq|M;)z~wYCXW5(Ys6GF zpYJ$2xg*~~B z75Cr8x?M7#3DNuPa$wC1=S!BW1Uz>s2-K-pI9I>i9P!}eM&=z;48^WKgJ+s~+vVvU zx`wz*8{LA`OBw>2ubJ>)xNKv*XZ~q&U|NOv#y7?K-P2VhmNM)0C)P=Rj6aiX62i7s z#6Lr1e;$_}QENcUHELh*u61iuGL#gVE`IuyGo)-k9{o~~wKrzN-DCB6F9%c$0>2IO z+xZ-yF;8a_vk6icEf3Us@M?2D&rZeW_3vBHo(RyNJmA=>6c3tR* z&FAMXFVp5XHhir{ijAI*WNfxkeS%MzznJ{Q$uNX@OWM7|bjtRJ1WOx5sK2r@GUFqh zh3eb}TwkB*SN(J=s9KGWCS<(aQ8)O_wn7^ktSE*d)^hT}h+~Tr!hAzF=kk+~tB)CW zX3{;Dxzv7PS-&}gezW}>8~$%K(@NF#e`~|1{$Fmx|9b_$;zQ!HZ6m_=XhT|!Uq+d> zAU4vYyGKB?zlu|m(U|2SV)3A!bM~&8;~T^Ev;K$Z&#w3S?$!8^muf_HTT9QXw+{AC zedE8y64%O-cC^0WAjp|b%&tWOupO%I9h zEkD?<q8Z9=MGQQOhFS{+u^VX)veqt?ce&PepbPDh8IH z!J6JsQx2;%s+?^~-#0<)EVD6QBW$nYNOu1Vp*ddBCwITT`y<17R;(v-M)!2EINv&P zkv>1ReSB+@EwH@j^Id%nlD7h4;Y*2h(4x6GHFQs1*5~nfkj<>#c2<^wL8VtdS^iI2nXr5Ug zPopO`w4bZ!;Og%gCq8Yp6yuNj)-b~$_O^SrOiG(=^DqkoZ=Zr9SH9S%iSF?4NDRdh z&{)As8jIl+=h3en62nt{W^bs~Iqg&Us|M|CPVMGv4iEtI;{&5%52n>YZ zB6K4fXfJ+#Ub=HhBZ_d*{Gqf+BobW0mOelK8=t`cPG{8*r38AutQ&OPya^FRyky32 zm8_M#C!jKOsK@qJ|N0UYoAQvX_H+BVW9gd^{`cHPitJ-ncTW29mRIkYX=Qpm=-f@Q z$$Ygr|D7DR;>er1W!CJrTLaE}rupBhz80M69VmVL5u-MvdxINePv3n2OD`eH3FYNW03~kXb^{}?iwX``( zCsu1(g7jKVw(fHrsJv(D^j2<|bpKhJ)AOUrQO{~pGt^V|+zz{2bD`<7H>V<=@kmdn zLXjjzM8d}yRmN2R@~tr%(og#cfg5(EV#5WDI#3jG85G?b zD$CpPqG;XqeAA7WnQS;d3p?m0yM1o-N(jjaQL%N@42e%X>9tpX`gH*_w?|e`>q|qv zVFuT8L!DE{jw$7+JjV>`tWB)R(q1DL*>L>QV;A2sncn7Ch6GGo1W)?y-R zw3chZ?MLCC+)7 z;LAKE0q&x|7~9Doma$lje_p+o!`5L%=e)uoZj~DLr=RPsscvLdU)EW^#jZ1y;2gjic=pJqON|)|2z}$Quw+#zQv?t!^>|HRu8{^_*{YP z%}T0v>U{V}OZ$|Tz}Sg^eEmzA_fMOaP~ura*J*bS?|)}oI$bZd>deTD?56S0_`C6? zkB!vV$mx1}Syo-iw>mmr)TQ$7!t*(vo)4jR4wi@grt-~HzK76w#^(C9_7RWBZR5e= z?-Q#kZ1Nb?U7Irm8>?+UZr%BCUAa%l13w{&50SgQg?0)qFki8hSQpu&)H_`he`3!5 zkwXRNZR6a)T5MUa^;sv;H&>67V(=kI3_bugHi!Nz7A_p)@9b=TN zDBD$W{k?Bp+b9QW+A{V>kH4pEL^5`4Sf z(qG18LCWl|m*McXh4Z)X*59u3?u*?rQ$)3(d&86?{N`3Xu{l`O#9A)o8~geW#-W3o zdz%+3)j5Q&Dkc?gvgC8}@{M-;aHv?M)pRv8rJ+Q^_W1lb^b)$3-Z@mrZ;L&`JO z`f(Ggl-;AHcQYn(P3r1>jnaLk7cq89)<=%tSp3a^t8nYUcHcpYiKOv~#PmZZ*)1N= zu8@YhKQfN8S08+JHNnu!s`j&jxfN}qXT+&slf0RWY4L7nI0|_`^e`Gf7-RcbS(Ykc zV;l5+Q?&oc*@<}t74uiz^LD2kXr!*6%YS=+3;i9rdvrUZ&yV&OI*Afd_r?DMl3z=w literal 0 HcmV?d00001 From 968d96210ac61e8084f2ec7361b10943b4a6e77c Mon Sep 17 00:00:00 2001 From: Sean Budd Date: Tue, 29 Jul 2025 13:47:09 +1000 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- readme.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index 26a49e6..56af36c 100644 --- a/readme.md +++ b/readme.md @@ -4,7 +4,8 @@ NVDA's Java Access Bridge dependency This repository fulfils NVDA's dependency on Java Access Bridge (both 32 and 64 bit). ## 32 bit Java Access Bridge - When the NVDA screen reader is built as a 32 bit application, it requires the 32 bit Java Access Bridge client dll. + +When the NVDA screen reader is built as a 32 bit application, it requires the 32 bit Java Access Bridge client dll. This will happily talk to 64 bit Java applications. However, since Java 10, official 32 bit builds are no longer provided. @@ -14,8 +15,9 @@ This file was extracted from a Zulu Community build of OpenJDK as follows: 2. Copied `zulu17.46.19-ca-jre17.0.9-win_i686\bin\windowsaccessbridge-32.dll` from this archive into this repository. ## 64 bit Java Access Bridge + When the NVDA screen reader is built as a 64 bit application, it requires the 64 bit Java Access Bridge client dll. -This should be able to talk to 32 bit Java applications also. +This should be able to talk to 32 bit Java applications also. This file was extracted from a Zulu Community build of OpenJDK as follows: