From e059f46e77f5106185c5ebd6be7c5c31c2fbd230 Mon Sep 17 00:00:00 2001
From: jprocter
+There is currently no scripting language
+extension within Jalview, in part because a
+scripting API has not been developed.
+ It is, however, really easy to embed scripting
+engines within Jalview. We haven't done it
+with the Bean Scripting Framework, but the
+code snippets below show you how to get going
+with groovy.
+
+For each class below, add the following objects and methods to their definitions.
+
+Finally, compile and run with the groovy-all-*.jar (get the jar
+from the embedded directory within the groovy distribution).
+Then, you should be able to open the Groovy shell
+window from the Desktop's Tools menu. To check things are working,
+try a simple test script :
+Adding Groovy Support to Jalview
+
+Modifications
+
+
+..
+protected JMenuItem groovyShell = new JMenuItem();
+..
+jbInit() {
+..
+groovyShell.setText("Groovy Shell...");
+groovyShell.addActionListener(new ActionListener()
+{
+ public void actionPerformed(ActionEvent e) {
+ groovyShell_actionPerformed(e);
+ }
+});
+..
+}
+..
+protected void groovyShell_actionPerformed(ActionEvent e)
+{
+}
+..
+
+..
+/**
+ * Accessor method to quickly get all the AlignmentFrames
+ * loaded.
+ */
+protected AlignFrame[] getAlignframes() {
+ JInternalFrame[] frames = Desktop.desktop.getAllFrames();
+
+ if (frames == null)
+ {
+ return null;
+ }
+ Vector avp=new Vector();
+ try
+ {
+ //REVERSE ORDER
+ for (int i = frames.length - 1; i > -1; i--)
+ {
+ if (frames[i] instanceof AlignFrame)
+ {
+ AlignFrame af = (AlignFrame) frames[i];
+ avp.addElement(af);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ if (avp.size()==0)
+ {
+ return null;
+ }
+ AlignFrame afs[] = new AlignFrame[avp.size()];
+ for (int i=0,j=avp.size(); i<j; i++) {
+ afs[i] = (AlignFrame) avp.elementAt(i);
+ }
+ avp.clear();
+ return afs;
+}
+
+/**
+ * Add Groovy Support to Jalview
+ */
+public void groovyShell_actionPerformed(ActionEvent e) {
+ Console gc = new Console();
+ gc.setVariable("Jalview", this);
+ gc.run();
+}
+..
+
+
+
+
+ print Jalview.getAlignframes()[0].getTitle();
+
+Executing this will print the title of the first alignment loaded into Jalview.
+Using Java class methods from Groovy is straightforward, but currently, there isn't a set of easy to use methods for the jalview objects. A Jalview Scripting API needs to be developed to make this easier.
+jalview.bin.JalviewScript could be a top level jalview instance of a script execution thread, creating and maintaining the context for scripts operating on the jalview datamodel and interfacing with the Jalview GUI. +
+ + + diff --git a/help/html/align.jpg b/help/html/align.jpg new file mode 100644 index 0000000000000000000000000000000000000000..451ccaa82ae5c74c74c392d454f23243b8e8fd39 GIT binary patch literal 14648 zcmb8W1yEc;^Dnx%1PQVvxGb=E0>Ry37nj8)xXa>Bf&_O9?(Xi8kRS`e-QC>-gyivk z_g4LHy?XCey*^c^YR=60^_iKTK0Q6%{}%pj0A537A+i7@BqV_R%LVwi43Gk#p`fCo zqM*Ip(9qD(F>o+3UI_oyD=ZuWd_qD3d;$U@5{frO#AHAMg15A9$tWqQsi}$H(9zRT z(Nj=SQ~d`7>E%@nbPPO9Ogt)L0%EHF-}LVrfB+K^gshK(L`0%0_`jI z_e7R}?;XnbDL-#&5}cL`lbU;JxbtvdyQ7D2*9RTN*J2+f=dvdYnx?hmzh0p|qOE0d zj{hV?gCELmH#s0g5kP#{z2YIuLc~1qs;nUL(|=SG>ky^q-^}&iuA)F7?D*CjrRE=C z+V}oGIc}@s)6G+1*kj1VKfp>t?-$m0GknX8*)27@ft}x)B_;ZD(`nghs4X?c$2;o& z#@a%8(F#bKQHy!`e(XHblm9@A0K=>*qdV2qTgI`?`XSg*)G*C>1NSRK&?<+yHS*g z>ungYh(67xr?L-QmtCb@yeDjyhoc-!6@Jo+KBqB{WkLB`HJ|U%)oH`tym*Q;;<=M~ zy@fMWEC+`gqt9W` {N3Y!|en R8r8%*BzOi1 zKDZE$_zuResiA-u)#hUC3Z00STbFnozHD-SgM#|onvNsC(Qh)VfdNFD2Km1s%~o~_ z)|QmJz3!=Tyy;?tPZgjG=YxL$#o3Ht1Be~Fejy`{x*T5fbXSAOp``e40dd8fga!9T z9fyMFvYk_7*#*P&gNM(e>Z(sd2^n(MKpZPiFXtT@r@zrYYB6u>k1ca!${aF2w@}6B z3$AVG<2eZye|)V%kVWlPLweZ!pnP @X+dPl3(fMqf|SWWEni0W~5I{ctD6=UM~z zv5CDyJGVjoX 2yqb{;T?96Y*l KC(d zP2)Y3SGBaWh{M@_ Fniz8R%NVHtD7h+`GY5I@Uq2S{7MBUmpj;F1rrD;PuuUowOcArI~du zpCwE*EM zOcX {QJ1qCgiAZ_de7IaFiFv~V_-l%w=cu9Fg+iKQJ%XZ90= z^-CN}TBT+PYlcL5Wd{G%14x~HXrHv{H%##>=352ptJ0_lN`qzMjOt6F$@`g(jRyn; zXK=%IWspAPqU1<{BZrOtw`Op?DUF95nf2AgqEN(B#czn8GS^(S>gp*AmvDL4u^*#4 zl&%3!;4B!5Ra>kBg~f&HbIwyZu__;)*Nl%1Oz~N7Wzrf#2{(UO0|LrQRSBo+dq$w7 z+sWA0cM4x}mI<-H*l}|trq!rCh>Vy}zx(VtkH-8hWKwi>Qi<5K>>@mlC0C|9Z31h< zwtp!;2dd=wrJ#8=m#56AI@%ll)tCuEMVy$|5SXWuq9XLl*;(DDFs8~ywfgmp)fcPp zWKsIq{Ot5z8bvxFCi4&77sbd%<7n8Pl;u|Bk;Q4cF~vbkyO`G$F+`=?`{;x{+-1`V znA-$_?ojU0aSDn}1ylodA!W;Y5t;Qnl1`exm?00yECP~h{{Xq6ntEoR ~13y$O&3`9^dKX2fM62T~#S)6U3lz`%fWB2nDmfRA>5w zOK^4k)uepAa9JWI@G;-8{Ox7w8zD1gEB5DE6vqCyi3+maKCIIap9T%P$bcaCZVh{s z=!}Y6!%FHH?EVz5e~4IGZA1z?`KTf+0-re=AXL5_c@-PuI Bc9W ~g1O~a{vW>k4V-6HZ}dyzNJVpH^QSu~Wjh&)V!N;SJu@`+*_&CA)cI%YO#0m% z+om+}-`k2G9 T$<|72X`01H-el$xWd)~MXhr)$ z{-u@Xx+@EOzy8KyFJ1WL%8S>QC%th19k{DbU@@Xb{_O$Ak!C!(veV3*Q`pZ!e8)u} z?X;s2eyo?Y1l$8deD7-P90bQkooCWo3-~ |z!?90yx{pWUvHqd{9l&J367{v*rf4|XQP0}Ov?iPg2~s$#ROVRc-|r{*z>ch zI {A2Bp+kVpje#I!{MQrR9{As$m{T1$ypSdT&glQy8RZ z#ap;A@3bNgQTz{j3wgi=kO}9r$5f(nxLQ@&jb*ws _hr=WO^G<7Ex?{(@ zoj%6G*)T7#tmdrG#bQH3)64aY5PL;44gH9Z9F>ORawF>#);O|VVhhpV&Kv3{gyTN| z*DBJQ;s2Wv)A0{bYP_@T_YYtb@yAV@#*N`msaxFd^(&PLO5f=uxonL(-;g~r)^ro^ zH;i@ssnf|FqDa{4z0TUyH$1bs+>hcqTF2c6`t`61IVzJA^uZt1xYXD;4aey0Q}Y~) z0?FNk`m82*vj}TFs3!hTLRJK>u1(v4L!LoZ|7^1;!bM-+3x{$qOQ@2X0u4VrkLzy= zS=}*Zm#uH6qf>tz)3>PL R?^BecYjS2H%F=%6s-V4YLvO*o>X`2a`oIL(8%}^mW3g zcys{DqPTbdwB1$q?D|G8g457=V$UvhEdpM{_Q@bJGinH zlvDrXI+DB%^D5S0p&5B0aOi5gmr$eLys0JE!q#D6?tKvx#cR1H0>i_P2m6y}*LmB= z)?)^tDF;Rw<>&{VdiG#%-$4p&XUVYl5*R5+-<{ePQ@88&HE?f3l|X@Bc~+m+HWNjf zUo;KG7c&1$RAMkOWstnuz;l`6xb2qD4DZAEOW@`;&u-J1D?>V>pq y9PQrjLp@;S~$h1~xj zc~I;nRR0HnDW!n_0m{A{>#T!+&5(WB_VmVf(LBUg^rAQ4g=$2JA^qH6U^#_ZrIg$% zP5ofof;HIHQ-Z=Anv)ZSWgNyr^#o!pTHIwa77UnDBVvb8otfdia@Qjd7kPvSpKBBH zcy{l6&qA91W@V{{x@c6j&KHKY9wa9`89mM|i`L7}2}#u-p0sVJ*(GtV7!&4^)R8n^ zpeFjy61ax3%(|sHCMT|Zt>q9xU?e6&HHE(edwVhdetocW47xcsuQ&O05?^H@Vi#O4 zF8YVvmbzZt=j{)+x*zsjORCE@n3CcfFLFYh2k?CH;KGQDiY%nDtJSQb1H>Ps(Z>zw zc#gZ!cwANW5{{wrrTF?L-Pw1I8P;c6%>vnb0#C SQAa0w?jm1ZQ!_+e7XzD1 zGDV6`-ws((@sP7B>L+Cn#Mp-VFngxm$g~$Y?aQP+ncDF2!17Q!>B;(6rxPUGxGF03 zTxdb;EKTf;aXF>W1V;&6cV(@Fp5|5qiOMCxxdWn)%8XxID4bf=6%Q2zP!2wqArA6e z_O&(0aaEiKx2gSg_DViK`XrKRjXvj|7w%POKJl%?Slx_O9)%(jm}gQ?E(5ab%h}c) zW^!W$1=UB#C;vXy9Y(#~8(cT^u-<)&HMKaH@!)Y*3_ bN*OXU+NEW=0U=Ek*3+bL=s6^ z{(JQVlZK1FDdoVwnoM7E)X)6UB1Lu1l#7CvJc+>6*m16E0|Gyj_O(XpWe_52qQvt% z{K1*B-4#bu#VZd=3TZkOx2R^%A2XVaO|7B^svZcb58_fZb!l@CMh#=Qo<8`5u^HzD z@#U1u`^3&=SzM~IEzp!jx2ike^w)chz*2XM1|H};A}pJgvcTx_K<`;z`v5LxlADx5 zH^MpF*h5xv2yMo7ef~HX_!xsnBssTMiQzhR^wE5p)W>uo>#SK3Seh3k2h+=!jj7J0 zTZxI#q{lPI{+xalsp|aK&yKRa+mn1buA*L};969^K^?wJy0v1Km>fqYF(c^=S7+5! zO!tGvO|wn&air~BX?*Es@}kc<`l)&Lhg?tkZ3O~4m@OwCK5d>{<~`R8J61(PEJ=)v z{@E9Cu&e!kX3Q R17vCqrsY!uBUE6rX01H8C{JiAdwhYO5QIHsk$&cC-qK3=^X%;+3TdZFP9&fplF z+YLIH7JcmYgG)X1g{oPFKv}&DhEEL*$jNqGk|KlLVy*`=`z=q%My9wphwi7GF#5(| zNk*_Grqb9Zf7wXVFOW*>Ef)7)IZR61Z U}4JfBNIB&>s5)7RhC6LO-vxR6 0C$DeVc3VYT*(HCP(uIwFWDJ!9 z;(kjm!vncd(Ig7dMQ#!egfc+Xpr4_izoUK(*6%DN>El74;xT`fy)@6r7#F=|l*Yb8 z%&0Cgu099v?T!ZGVUg1B10Fvx4q7C=S4^^M?WT9}9vV^~JSWJA&wIOGt$MB(;2&%I z0nbmHPB`SgrHPmcAK7j=yVibQ<75yvRB!uMnW3)nAW1!VM!~7wS{w9(l;Zn_-5gZb zT&K~jLU`yG!osN0F^?U*g^!Igti)ikBs+T+&plf1*)48bM4K$eFbMkYw4~XfJ|*z< zVaR+#(<6#6hO>q(ZCB4KWyw)df$7HGid`^e8`bq>zS@~qs&$ZHLpqKi-i6$vE+qJZ zg4qW}=4M{C{l==J+X*{40 `0nfh3Iw0c?T2Tn?ICG zR8mh8-FB~{!FnpBZ_~sw5JRZEu8` zahZbuAYw0AYkcsyZUSPpWOHo>vIs49Ss@T=<(_T*o=BA7M@xI`C;PcKxPe9NPAm4U zJQa#}bS+vteB*CO)cI3qT&g#RQmjx&_bi>>gx{rAovd0lJ9_J%{g4hVPN@t7(ojx$ z;hA-GN0i-Hd1#kBy3YCfCVn0_Y8&DR{3&aVFWLbO6;cfMfxaqFEJoND z?jk28w=95~g2dNUH={qf*iGs& 7?kQ<~p%*wq37U@<2DTg}5$@ua@(`?=i7>3;xQ(A?kXbN3_!6OZkp#7=T# zUx4h4H3i4ZcIXeK@&bR3vdHbwLEhS2?TLGDAwMUQ@TE2#i^kok9kYsUD%M};W X`j1{G$>50!!eRJTturH@+uiOppZMLnN77P_V zCYW{fCFdDT6ez Q6-WeN{pPhO;?_KCVhja1v`a9fs;^j!njVqo4BMf1O50*(9Xz#QJY|jMy zKB!cGT}Q4nH{OZo+vtF;2YEfu8fSS*$L(Ee LLd47iQTSTc>#7=T^TAf>0Sa^zO3A zxYHnOT$^+<$3Q?^YyfgHvg)kBV!bHe%a6_{V|=w7wIL3yph)vm8`gCf1v(WQf4il; zdhzduhAn*<{`J8=!rxOEUMxut5*9vIW85wy^umw}W#V`Y$8+@7wAg6;JxXz{J=vLU zlI4*sBdZXH9}81wac2-IB2p}7&k-=6ABWAP`_dW3yk`A^tA;B}kqNmdre;rcUL=mU z^G&Qb3UVTEKnZDmL!l#=q6W{a&19k?{u HpzzCMI+H<+qoiGR4&t0k`SPw@9aw#X;o>h^^a45X zjQmA8lPX;zo_L8#;loz4oj(g@4~(=OVn4!qPe?>6<*-RQAaq1JkyDrJ4{0kV30E6; zm+lHkzC5pG`K{0?nkL^(pVEZ$S;LgrDjs=Bj@n&9Um#X=I7KtGB_Z;JmcGT3-IGmC z>#f3;zDkN7_h}c!89s~3E?5J>Sk0&1xUTgNF!VeacSzM}6*7s&9!quPv&`NCfO=s^ z+HM@h0ZntbALm5tU?j5RN%XlB7Yv|yl)g%(p7<+&&_F?TMw-fsqwKQNEQxngQr3W} zoueS ?}Blo9?gU;NC%ZJd?rB%cZ=tyOmNKjS~aJ*f-_h51V# za>~d_^y-wZ?C5Q*RX3Clj2n}t%j;Kv+&HJ9D2>CTOS9Z{^ybo>`CWq<$(*QurJ^qP zzDFeSy=$%o;3#sY(|QRuqG)vIIF=Ex%z;-j6RpqCA*c6>1 dx*$4+;SNca*p10iV0P)1NL^Q zZkOm&Ou5GcgfrE1NK& Hn8e3;?=scY@=VpLXj-|+CQWyiws#Z za#n X| z^A?5`>Gn7`x{ZviUNdgci9Si?ZiBZo;X({M-Z|2@gbro+y1ZDWTP6Pck;jbT=?1)G zCWE`6EP(++?6$0n&2@1lH6@NWLJn (WSDyMakH)3VGw0hvnNJIAgC4HpN|W-8<~-s=)9k@Gt#e^Nf-9K@JX_n%C|s57 zJ(n47ODP+S9Oh-0R28CL{K=?9D^SSyJbLRgUA JZE(z zZ9*&*;Fr@{TlvM?ZCSlcQ}S_J@*OYy8mXrsHutvVwo8g}WM>F~ASuiA(_%8Ls%?3c zb}maHrkYk>Pg(Nw7N*Enp@pr82;tdk4(x8OA2EgEypp zI!fp|YBvk>N9we$1_mtsEt(V(nz(Y;*Yj{J?p;ejHqBQ+2jP_823 k=vgAHrwkP8QSy^J8OyDdNN|^xudM z@)G;74(&91PxHNgQ~^>8rfODS#`G~`5cIA`_K-k)!<*jQa4 VxIa0$ z?Q?IY-HRf4mg$!kXotcFeNBuBU^nvXc}~M2V%>L2Fbi`JO(I>_cMbZ0*l#-{X7{#d z<+YQg!(WHEFu>m~OE~0HlWzY3{PoF-Irg~}x(U*dPO!~S^HZ#tlz1F93%t5j3afX` zyoYm@Qtrt)+ZrS(G^bQTxw8pB0B#j|b63lse}N)Kr3_W7IAOyN+bg3T(jDO#$|U07 zsJ=1pc7>Lq0RlkWh;xJKPHUmQ%9?@QuJkj#v{ZS7BcJwwkogl_&8g`-7$?t5v+$Bq z-xuN9nZjwHt?m_MH(LVn6tz?DmUh{0%&mCQm7vDlN|h9Ol40*AB|XnTxyY$1OM4R8 z7>b0{7i~VVCA)d^V$@T_g2S-ANjY{*CWLLHGVK!OlNGf*eK|8li9^CSP{Ly#)Gy=j z(2dZuNwS!?>g>jk;eJWq;{^L$2e>dob!QqMQN1;PeLWIDjB;tZ?_5;B?_`R_`NRNf zgH<{-2tk1UjQ;@TMz%Y3HjKhjS@F1Xy|_u){bWXv@7xQ55<5x`)e!b{bRG|)V4(`` z#i8*y2StozIaD%<+iIy9x+cj*Pf&=AJIB+}&Vau` -eHChJ+I6rH7Wo* ztjc9`H5d+aFfM8c@C2Jat49x+d~_l+b5Ib*P@Vt7!&ah;yCa9V#~x(0%WdY0k@4t% z+)XTZ!4s0LP--`}15$%X`OPEk<;Q0e3^n&V-?u0g2m^CQk{f91 jnB)$A>(NN2x%eDX8xr#5>`& os#^vURVMH jmo7)qZr?I`e zIeFzcc9y|vA(#YhBzZ!^v9-%I2?GaVk&1);YCWs45diwn-{!3yN+qS297i2H1f_Q+ zZYDx`7% 7}@jzN&NYt749ED -1wuP)S)d@6A%)z~XU9T&X4uc7#!p?a^eMkXL9!0z+ym(cs&@ zIhCe_heE1wt ^~_es!W-&~lodYS7Ar z@^v^s@JF$5z}!{iWmV5?9aemk^2p8M%n7>>)uUsLFx_j0U lr0xZN{&8wY7E9jY zX7)-)y)Xk^cWz=`o)4Ig$BqHC8tqaHP04IjZ?%A{zk+knKkZrbT0h1W>Fn-Js!(TIPZ&bcv#XKY^X`i6phQ@ESYwkNj+3OQ+=z~(Tbv!7=}rIIkpMz zb %#w(}19f>5(TpbTBFZPP@Xa6 FEZf+PJnYkN82f3aru#{?RKnkmfaYZ;sN zVx9KUhdf9d5$7GNQL45IL1#+&eX-qaJ=t>z3TK~w&+G4d=z=LR$)n^(PR3$>COT7n zKikTqWwo=?BwO19YJ}}n9LTMf>?}JeCj>znM^PcKs(i0w7n>ECY;g2<%E#*7^kt#3 z$4d;+2d&)$5;5`J*21PUh)NAu1Jb_Cy#3HLk^}=5E?D#f^CduSR8_3h)jvY*{Il%G z<<@-I9p330vMV8aIJs;KM$~BGKd>Yx2nN4s!n#i}FygBQO`SP31T7G`Aj8I5`k!^| zBPnw)!Yrhq9`yQ$Z%82$1I8Erl#3zy(`wRsUA;gPpGwQ)8Jr=H$CE)KZdqmp5g)>M zY`(T_s>uu#$SL|#jQguX%0{*GG1E=p&yjWAHGkT+Pzfl8NM06E)+IPwU^0_#Qd>0n zNp_mh?O0itz0RzYWQjO$ghSq>ptuO-Tg COY{ROX6nqahH|rx|TB2yh25fzPb=A- EBoxcUI546sGS=h 3+ZEpN_!J9a^#TO zYFNya4zXUf$~fTYZ7>afbe308%AWCiAI}=%Mj3i)SO3&Ku-SmCP|3ra=b`xJR>S2r zlp0%IRV@({s+lttFi$Y@_S{bDLue$0?{fXF%8fal?UIvwso^S8Uvdrv%#YDFFVsD` zY_M#f7W1m;E+^9?sB=go_Im(^KAn)ANK5?QJ#johSR?1MUl)Za$*Jc!JMTo!N?$F8 zp0__k`YDU_6|K6lwP1+**W1`*W^lxi-g8NowLi#el9Hac*L1o*#Ljw3!T;+6{f9Z) z;&Pgt)2%9BB$SSpoZbcJOxsB(YbEi$tQj))y3rcfYK-7&$B=ToSkkot$nKKP0I*NU zvJ-#ij@_!VIiP&*^1Rhh#m0p=v;fPRyV>!RoE;i778VN1CyFvWAHy%R@PqZba*gUL z(c{N_XOgWj;Gn@FngjJLV@sA2t?Aq|t5b)u+ERM@$4OpHxcyyd(!nW%19$c5+8;E6 zK`|@gP>VNsacRao@8ql%9IIkSkD-P!V+`M&5f=Sv+0MvokhjNj-nZWHO;AOPSas3S zvC*VkOKYh4+}6Ts&((h3ZTuMkDaDZ}`4Ve$a8~)f94YuWdU$6;HFMsh#L3dycI5P3 znhB(}t`+;IQTt2^4IyLzS&r!L!>^2ko|sIrNguGduH&479%$9E#oD%Qgo7O#UsLOs z#VieOYNnvadyB#Ub}-+~JAQ81JvBSC66aZ|ids6Vc=uodqG#|53pe;Ec8&j9cjrC& z%9M|TmLa=!Lp#H}igmQF#ow}DVsVf?>sPZZi-B(tqlhFruAYfXsM))hDIvMRZ -rzVIkVf;L&mL-;U(qGL{(b32rc0o&BFZx`zd#IK7A+@cZ>oYnl_|(mBr<~^ zf9|`A0?|4bNCc3Iuhq+mY(8eCuq1f9x_ClE=?UQ4H<7>+&J3gNOn-beTN9C^;^puu z0idRf*-9_eM!H!*w6Ua}0ensUhrW;SCEzGs(UB9wFHTUc;B0@2A6IrR4X!M0RuG zk_OUclUQS5pnsZ$v@FVzypE;%p;immMVyzWuIpf@Xb-$wiqjjW&p$IOxCyz?`BoXS zI{6bt<)?Jd!s%9KyS=^DJH{4PR=*q|qTGeYWdrk8V^_%_rTb1s#07 ch@ z=tt=vNhMAGC^Z-=68Dx$XrYAlB&Q#Sop1*!A7-yk?=!)@HKVl(>#4AG_v5SJY=Ro| zkZDT6jT(-HYQz{7K$~!hJ=;yrh7Sq5ij(-B>&k>f0Nmk_LcNW%o!$Q!?J&4+uu#!7 zsfH#JrCOD0aMD7ODVIP71YniI7hoD8CTm0gOGix0&d)9tlUISpc>|5{?{7$-3>VP~ z%F(Qr0MD%RDqTT&s`4&Lj{#zXWiAr24N2kO+=45=wNB*fn0RJ&0sZ!EBSkJ+W=Fk3 zF4SESC)K$w1~L>yJ4OEBZx@NkKaPxxojc{z4N>9V`zk`)?7T)C< ? C@`reRY_cWVL2V)fF=x|PD%e}JCa=o16!D?Mpf zk5a^`b7{0bGQ6vCA6l~Wy*P=z*mKH5?*WT$@2iww1a~zfwf+69`Vl@zcg+~Aa8M8# zF;Vcp0=q%yyh7~9lL5L-`e#O89?fNM+J-#K+(j$H*D&0r+NHwFvHvIfyX;xYtkITL zBen9m0yu@z#u~>S(y<6iSXBjq+OC1LGDxqAno`rI)F`7$xStz-jSRnXe_cphQ!kaE zb#O{>US9D(SpVhEGEZ2HH{5FdDgq@PIZ5LboYBwgLq0M_-OtBc3PB`j4ZJ=FrJH|> zN9@!?8EmxaaOIjEm;^ZXvYQ6>mujHz4LI8hhQFPBvT3YAsL*4(b_DXzV#7{HW!Y)o zYfMFKaca}H8i-U){|b5Ri*2v}wN-WeD1~eti9uKh4RMS`h;nBX^NN&I-!$dOtCcnL z@)GO%`IJK{C5x;giNxbo7-zKvj|XQV#E@sCVbA)dmrNe+c2+Ul8p)j;3)sBI6Dc)Y z72XhfhG^^W9c+@;`hIf_EIZG*shQ(iwr#UdH6o31WL7TBtNa4Q{r&B|w<*3MsV)#P ze;c<`M6XOI-Rk3yfgF9l2Ii Au*e4!8nf{*6?@{QyV%hfh3h3B^$p4#T93!3t$JH zO0p$Wm}ag&TSSz~B5{yDi!ih1PrY_+i^&!2KY9Cgu%V2t7={A{ilh9*;DO41|1Uey zHmv+ZrH6iJvB(9Wa%K>{#!koD!6`Pvp2UkjT|gd!g7K*!@;e@+flHoL7>#a$d?l1v zJD&>kRY t*SH`fiTN$lLR%V+2E!_W2vG{M+!v8Ia z;s2?~?m5Fl3Q8}C>?mM^h}M-}0{DjtB3s6gDJNxs@$oM?TPVy~F_OQ)FQJI69$CSl zxLW1$vH;LO0F puVh literal 0 HcmV?d00001 diff --git a/help/html/colourSchemes/textcolour.gif b/help/html/colourSchemes/textcolour.gif new file mode 100644 index 0000000000000000000000000000000000000000..a6591567e95ab438723bc954f1f9aa669de56df2 GIT binary patch literal 21788 zcmV(>K-j-WNk%w1VR!+X0O$Vz009621ONsWR{|Ga02*o?9~=@Eg8(6W03&q+8n6H! zr4b#U1s%lzER6#ttq?4185Pe99?<|XmH;fm04}=#E6fBtbO12IGBYs`IE4T*-T*ht z4m_LyIn*>WXBjZq3^eEfKhgj_-vB<~4LIEZJ?IimfC)p-07d8kOwRyH+yF@N088Zn zN%9dy-~dkMCQXO{P~ibi@EcC608`}vRo^2|pa4|n09EGzRPG{Jh5%Oe09N<1DFgsn z>Ht~s7f -2h$Z09@?=Tl5TA>QYinGgX+ZF%SS?@d9D&0ATq5U;n}^03uW8 z5?S*AX75W{Wvw?F0A>9gT<8F5{{U_ESzTWQZ2lKz@D*hKu01cYJ|zHh{{VFT9cKC0 zHv|%I`Xg!XJ!iKxX~`9w8A58V*gq7}LmpFaiV=JM=RF5&Yi8d+7*=tHVQ+lSNGMEq zn{sbrRB@{nt` miOCC&pz}QkT9*h6sQ7mtKh2&H% z=T;-+R5oFQs#}7=DUkmoz8-*pde~c1
OmLOHbC$Pym9FS+RAZI(ft93^l8R)nb3)5P=yX|_m4}R&nRK4WgqX^7pwxV! z!s&crgrB;EpUj(`nx&$Yn5C@hhi;XqxSW{&kF3Xut ~CRuD0TxckP&g zp|iu1wC$a?&atzw=AwtVw5FN7+?BuQp1bU_!qcPDva7@IwZ+TxubQOC^2Woo!o|X` z%Hpic?Z3_2veWp~(8Be@w!PK#xY+j1%>K>R-oe@Nx7`29+3Vfc!rR!&>(tTN+}gq7 z|Kr`r?$^`d;Me5f(aY!m(dGWwgLze>;CBH-r(u+`QhH|>Dt@t|K{uN z>Fen2?Bnt6-stT7;_v xj_w@Mp?)m%p_Wb_& z|Ns8~{Qv*|A^sIZa%Ew3Wn>_CX>@2HRA^-&M@dak03rDV0SW;B04x9i004Lan*cxv z{s7zb^XIQkii0W=CZs{5$`FT3h7chlaiWon7&B_z$g!ixk03*e9BJf-$&)Bks$9vk zrOTHvW5y)ngQm@zIB)9A$#bXAo Jd9w+0Qnc<<`X%XhEezJUJ<4orBk;lee9 z)R^m|vE#>(BTJr4xw7TUm?hiwad)m_x}Ou*4NZEqY0#%dqh77Lb!pbGU8jDnn4u6M zG-AYH7(+;Jf31oYyVa`rsZ*emgVJOv(w{V4;BDxTzySjhE@=Fqp~Qpt?-soN2k@X| zN%x0Uj65M|fIW`&{tOuL*Uvywe)Z?qU!R|#zmobH;6qY4B*h*PM!d(~eDT3&01@yF z#NLAR8Q>s<6gF5PgYvQW1AYeJ;GTOp;6OtTIXIZZ5B~7eqKoq3AYq6(kf>da@s*eZ z4mI*)ABZ@%=OYdvikRbw^_9ruiZ4LXqXA7mNo0I1=Ex#`E!KylKLrM9WP9=D0Ar9< zhUg&;N~Wpinryb|=9*5LxZ|920)gTSQTg+SCVVc}oQwW6GDshN5E958N%SKE2_HBR zK?yR@z=RT1C}BkwVu;~|re3V^g%_ZP>O~f$j!LQ+q+%+@rK+NO>Z|^$rYftem}aqQ zt*LIBDXpmTnrW%8W_l~Gss383sjiwTE2&mA>#Va`TnYvl(OxQTwa-G^EVkLE`fRk^ zHcM@`*@8i?vs7T4g}LW4dv3N=SdnhJ&C {T8gRyi`!Z zL=#)Q6Gs{l-x0^dcR-8=8ewD{h7(ixgF*`>TmS(HDyTJ1Iw+?zjyox%%yP>pk8`rh zG|wEf$~MCsvpYGbEVIr#pDZ-bF|X`1&@|WFv(P`|e6z|d&)l@qLKl7W(l#6YbJaRa z&9v4s%lz`wNOLXq(@me9bl779EjH3+Up+P4bk}Y7-Cc`qwEoXyuk1I< =Iy|q? z!2}LKpaBhIq|kQVMw^ojJCw5%Pdt>1(~UQK!<=>0gs**b)Guotb TZLMyX?BdEj-?y<34yg&qtrK^ng!qJ@nH* ze>d07?=ChufeZh4Ix=){fdUbHz_{Z)KTmWv(wuV-Km6QdKR)Lm&_Dx7@DmFH5;%Yj zs&Nl_l%pT=2uCt-(Ti=6&UQy5T I4?sm(BmgDas9!3V<; z(l8wW7#i7XI72AHaAz%S;miP_LzuNNWg|qH51R-?o`q3_ev_fmLfA5LaB&<*RAS0> z2uBGPQH(KTqZ4y?vg7GY1|p!q0@4?QE2Lm=Mq^z%h=Ge_Oye8n_y#z@AxTPtqa4tv zBsjFeNpMg@8_Y z>vmtncv)*j$?EJ4sXZ= zCNPl+Q^evIzlen? bh^#3=_wiox*ZP>4VEVM$|}N1R#_gGRL?D?{o-ID%A%Plahxh4@BX zLJ_D?92^@(7*i^S6s9RXBL`io#?^80j4=&s62 9~3H4k($ywVpDtK`yKFT z=MD!JbDP$5hxSreK0*3(3^kZp>D>7?WbQS1(9_;xQRdflbhM3uz2F5|R?XD`R%eX$ ztSWoyG|5^svc24!Iej-aR<16fwG;j(_Qb|nvdztBe>1JpUOT?XhE8xk_1oXHrpltV z4wuAp9Wqlp+g-L+wbE-}*I*}5KeqC9P-9(3iPzVBUe>RsV m_{1nqv5NVz3x9ODjN>&Q`WDwX>t=Va zioLASguyy;7|qAto$P6eS-q?B_sB@@?-|PmVgwIvmJOC|k?Z!~Cu25y0bWKu>``F} z=i|Z|4sm<4XJr9nS r78Yc9a~K4JY=bjOIos(t51K8}$&}XrS3x%sullI^3~o30C@g% $`Y=!Y8LINNlocfc5ip?TqlmzY3Ea3 zGufXb^gx3ax@QkmxGb$De2;c*XnQ-isq40I^(yXfCmU}EMx?9P&2F~!&bLDYCo)^W z&l&&oklh1vD^LAR^%hfiI s`0HKlb5| zd?-U17J#f}Ex-@2yS?gd&qvq8{`P&ez3pD7U)Alw4hyK+W{Ac(WcA%|rw0_+^rURV z!&_&83Os2t$F85lD__ayjc0{j0Ik=T^IfCT^MTJS@OTS!m&v! %>1MlLM=fIDwkz#bExM?98~{pLG=`O2RM^O;}a^+O;1zHdJCecyg|WP|&t{QTjU zeq*DZe)RtbUx>GVr`CV`=Rn)!OPn=;vS(~CGdANj0yVd1?1O;%c4LR8SiK{FJJ)lb z2Rxx?fFNgh|8{}3*K|C#PTS>I-34^Mq&i{42|8c_G+2W+c!M~YgF3i_Cg2GApbxf1 z4w*26J6ME9c!V_AgYKXY37BZ#l!C7%bF{~FvS&N^WN=ECd-G*@if4NrSb}_&GyfNG z1vp;(q cJw}H97KMcuSpOz_uZ4S+=X$ueHvy t70cdyvHE;qU-~zcA0xS>$x!3_N0E`_l0v&(?!bptBC;}ZY zjLbL!!HA5_2#my7jKPQ 1aIH`=r_>48_k_*|6BN>i0S&a%QlLkow>v%r?Ko({Z7jF>-V{ip)5S3R@ zl~y?hV-N*exs_bmm0tOkU>TNTIhJHumS(AyT9B4%xt46%mTvi$a2c0!IhS-vmuGpG zc$t@axtDDj1zO;jRiFh*pad6z0~sL%X%Yl9paL O0uTD2{GbV^P#pBr51J4O&M^oBu@8fA2Y=87{Lldv zPyy&80w|CJN-!ySpafZf2jAfVct9$6;00O$27?I(3geng(4(%oqD ;P Bs_O z@u~^Ym<(~BFVL8Fp&Po9pa~kGETF3px~sq%p}#7uy858K>Z=c0tI1ldzY46r`m8MQ zppEIQ%bKjq>a4-~tPolix_YeL`mN8ptlXNQ-0H2`x~n-ruIH+**s887kgo6guIoCl z^J*1WVHH_X6uly>p5UT J&U3rZ+Q-bixHTY-6*<^LG@dfJ7U!^@MJ=^t7NhX;eG4pjK&(6=|k; zwAEBy<3L_|#(5dHQQ064>|hTP;v)P|4Wv*BqyP)=V0Q$;59@Fa%Ww>u$TysLI$(r0 zud_#@mq#&^U{-Z>U(_{c 0XW zN3(l0GkfH@j9YC#gha+AZ=jV`4~ItZwMW@hJP_wL)3Z;8MS(A9O~kMa;UEw201xUQ z59$C9<)9AbP!94C3kOgJv!D&fi@cBoNy`untp1<~B?nG{J77q+x^F`?y|p&e#x!#C zOJTS*5NE!`MO7cCfK<4N0##3{l{=~Uvjw(6uvA-WS71R4vx-QC^(BZ;hcn{iYy~EH z#WXdGr@+K?I_D-nndUPq-~tnfvd6_z(6bAu;0n5+4A1aMp7afLZ~z=I12(`6)G&3_ zpbWkM3zz^0N3aT>mVtisLNfG1a@13Ev_dvhQX`Z_Rs>TmWkVw5W0?!YCFDU;Q$rOL zI9%jL6$CvX1x0I=O(lg#kcUK8Ts^ZJSLxJ6KO{6S1ymn2yK^K)hs#5NqeAJFK~Z!? zLR7?fWK%gz#cR|uas@*|B|}7`M3MV5{#ItREn{Qv_G5_TOfVyBn|Euu1ion#JL7;1 zm=Fu2fCb0k4UqM7hzEkqRXdNRfkKACyJa(+C0nlsPP6n(;*@%d^jXTbZ7c;~h}c|K z(}&?pWK2VPfQP}$#cabxJIVA*$aPM=+& ~y&LucVmtYY`fX0?en&m-EMO7{pQs+!nX?4!)%v5O=Mc8C%(}i?QTRoPiVBI#z zeoN1U+lWC2X;VuK!XOI-UC^K437l|c`!;$59M5W}dZD(=!ozxvS2rZq4;Y=%8okjR z-O(Q1V#ExyF=k#gmRO>^&&rklT_N~u)$>g&_=Sv{Ph- JO(%GVE**3)omq;Vic&_?HeJ~|byj_pGo%$@lSVhgRyUy=x=Bk6TgGMe zkPq|#W@6??qW#Q9H;8(>aD468w4Gus)(;2PI jtX9t<7i)!0WB7Jm*~Nl-C}aZ&i`vUz% }_cZg=arV7|Ol#(`gI!7fcT*-@fJBRmQ%EWBS&I$R zk(i3ZeQ29ZVE&($GkfcWE#p@xzE{!gK#rw*!!QhTw-5SY4~{N(`Ct!_ZVv!p4~-6C zl@0*;008<>+NW*llFnsw_vred48~vrUAuM=mJjIggK`G|=umc#z7HXV>9ua_nojFn z)aaGo>Gkk~71j>sfPW&cYqPh7p@>ZKMCe}#WTlr`ruK0n_gIpB$iSoLyQYQhl`}tM zI215zX&B-|<_=K!XwGbUTI+#;PUu-)-lm3Kp?86ez3x+Z?8*Lt(VTl0KnuCh4io0q z;nxnA^Y7wU@Kg=(0N>W)2k`XJ4zxfE_{TT8M-TCU4op4p3y<&@pYWIC)(BtmM{N$> zkah{E{&NNRa(^z(_pW$d_=))bg|1hJwfARiNISr$+*dPC>EPkLjZKAzi6Q87bXeS? zSlqwXbDOwb;U#o})ruat?EThsM}KN~)q16NJw^9q=G0^KoN6a7%d-`}gQMZ(RNdd} zZq_6`sm}5sm^Im}?XDN?k>~T5Xn-jm?|z7f!Cmjn+<<$iJ6wM< %{qG^fH650D7PbDWC*ma0Q+I zvIcpO2Y?{`hyVzPfC!X;{ndZ{+~57)|NY<}{^CFW fEiQfOqw-q-o%+x=gylrU{;9<^k-0_LyguD zinOTGqe-1EecBZ2RH-mS)(`@d2230@R0xrD&L6*h{>+};mzG~YfBhtFxUkScf(ao` z#2iv%NEBOKhAgrbQ81AuF>xH`cUbY_wTk;CUL0BSWW #l(jfM}FAsappLTlTHr3 zxpC*ot53I1U3>Pe#A(oQP9sJP@hViXc)?H8E%vQiodN|)lO{`+B1QVcD9)6A9VRev zfPo2IP$7ok@WA7hA$VDY3tOUi1rH)T@L&ldfV$8u1KPsD2OKoq&>sUlB+Y;i`!V1& z6g6z@LlF%y!b9TB`mHw~K i0JM6+fT zQO+QHW04>5K>Y1AF!>>I&b5pz5wyd$dQ`ZsB!zU+NH4WC(@Hn3vO5ob5{ZTvMl~-z zOF%gVK265jClVU>=p&Fj?wEof5-O;`fe1Q~p@ttiVuC_phpo^9Jd~h9i64pp(E!ql z_<=10ei&<7YEis)S{D6*LP%;wB;to~fB4n_B8q^v+HA{JR>N=0HPV1~MQj&aZ`Hk5 z#B%rbmfU5@mGXyfMP#Baay2vyU~qphg4}}nS=Qit?G@2ocT4;MV {sy||n|Iz}W+;k=;)fiT zW;zETWbh}DNGzcbl(Ss*Cm%xi;DZn}lJI8)5j4=X1R2Ct!U_b56&67+yvQQ%EUcj0 zin;Bkd+xjGKFi3stV?!@!nyKXC%z}xQ7U3dL%(lcKj@Yq|o-E+DF?;P{LBi|kM)WO(-iY<-@ zgLo>8KfZY8mtX#P=A}2DiQ=2bK6>M)$G&^-zXv~j?z5+UdnTx8f(a&?XrdoC1_>lT zMi_~t5&O5^nh!R@=z*UWRsg{TB0vHe;NS;L_<<7smhgipSRo2o5Q7!OV7j|aaCFHd z9TlvgLDp@sZWufq={~1H5Yml=B^=%1R2RYwVo-!26rl%gM}_32@PaiYUFTHj!VGTD zhu0$?^BxC1=v_~HKLn!ljHtxzm9L0T)SeQ_$3!U_v5C>^o)5K%MJqlrdsif47{xe7 zGM3SdM5LY-n@5H9sc#EVXu=OR!78$lg>t`P5 o=@ ycIZImB(w4WxB`hb|N<@ysmx@eBFctne4tMl&k>glF2QHw12z-DBW2nI*gE`G~ z6!Vboux2%-NlkZ1bDN9|CN{AdPH|3CoW%rZHQgafbei*<;Cv@K%Slam29ub=6lFTA ziAZ@0lbrN4XF#=iPIHcvp4cSjIT6}UfBLhL>NKcA2};gx%Cn;OTqrs3`A~!=l%UrX zr$;3kQF@BBqbKcVLVbzSm8O)X#9U-YO*+zYvXi3Wyr(`_YEziDpaT?800cDf%oG^Z zqtrAdK#|H&r8ZTmIRz+G?YYl;Ce*3# 09Ax(RO|_t-f4r zH>Wuc87PyP&YXxhODfrJn!_C8zz06^QI@upb}XS4hd79_4XVl&t2u=#WD#l4MFs$= zI5p}xw+dTn20*19?WJwATGhrfRhR)dr*N~HR^KwzqgI`4bopt}l0uZJ%7v{{rAtrY zLbtjRRjhWW+1;|17o)+nElkZj+}Wbnuy9R>a?uM`bvE^(vwdhx!O6~KQeXkiBx-Sy znvHXaV;!ow$8QWlfDC}+9Y`Pm0the)e#nC@_Xx*1Tyc!nPByLd4S;Wj>sv(HR>a3N zF=FEjQ*C;)xy7{YAxYfZ{&9r3#5Im>a93R7_=3~6)->^s(*b}Xk2k)<#3nh2OibT0 zxwbu4@^IY|V<(RT04Z*Ah-;iu5jS_XRwXhc!@T13;y3`q^zxC(kz!wpn4i6!=8}7? zT=@bZtz)+Bm7m<^8V8fec*e0i06^p*H}b_juCkVk$>Q5Cnw`Fsfe8Ey0TMiO2#=*F zIfx;RbKK(|@3;p%LVXW;Oye2qxQ8JOzyS#yg4E?G$2a6rj%fr#6dZ1EuD==LLHCx| zLtf;SZM Zf>8}vtD_w1 zaJkFDQ4VM{;1KfohBm;l^PGR<8_)=bE(D e$ v z+SfJhy=1EQ)4u3asyEk^ulzw%T3N`K9IL_vId4z}M?eKvhy`Ep1!YhMW-tb0K)nXk zg;;PsN05Re=!9#qyK$nt^I|B1!?qIhEke7eChI0Tdn_X3H|07c6wJ47t1-6fF>1m- z_LDCXJhyZ6vOi<4g7dX6Yo{i&vhQ279;~+)Yc3|+!7^h%K&!YId@>uOvx1Ak9$PX& zEB>-JyTT#ks6(ql9K 9hF<6eR)B?AFosmXf>3A%Yxpp>Iy~wtD_y(2=i4r6x~Qtcufa ?N_x~*fHE%~a%ON_c>^1G@-#q9IAkHaZrDlVrRJ70pgr~0S7lPttyI^Bvc zUDP#|k}~nqzUk7dq}ryKa)%B4#IRztbXb8Am^A;}thwqc+(RU9s0ByBf@6@aoKi+_ zw5zkjsAI~zbjq%xBQE44Kg|-Qqw2=@3ao-!N9Q^^P;4!|lf|X0zID4MRgA>7{&Oi+ zG$u$yzWi#$uk))8lP-8PEb*Jfj|0Y}gT9BPE=+{1a|Aqse7}myD8SRINb@fM8-o-m zI<-PMw!1^B(k*ntzjW9@k6bEp+{b~!!-3)~7VAfOIz@BjIO#Gxr9#Bv( eL`wZ?FMoSDe?vH78#H|rOnoCvz~rfbvcKOG zsD4sB__`^nR6b m6cm%7G#EqmzqI@U*NOUcIYQK^^ zN~DrX#jCG-+6Bt7&D+Gy+`P?x*oA)BDRZ1Ba%ju`i_5~(HTudv$~-S+)XV)6uVAyd z=# rKQ5y}0^sI+@s0V$phtPZkzT#0F9jO#$Q5dDEAI1JrD3wte%?Eur#&HZL z0X5JrB~X5-P484I24$w98p)Ncyp^O$z{9`&T&QAd&h2DHVf)ZJt Ih7>M^Rg=ZBZqHPQ ztDR6%7cT<`=laMouv13O64U!|y!;>g63C` c1`o!r-g^4ES%$@F8qP5Q8eeA9^Cthn+!=Tum9EH8snzJ#<{hulhnB3kDx+TjaJ zx?0+jJ-S1rN{3R~vm(2*%h`(6TI0ktlw8eH6@mVXfh$M>Sd~@lvMOOnvNkl?vV2O8 zjKrSxRcwvfw|Xyl&A+Fs%7)TPpS{fL^4szZsIEoIqP5wZZ7PLw%Bq!GS)@I~HCnx; z+PT_2IhDk9ir3#8Cyfmyt=mVEm8t}7fv^oK{>&oDcG|!XQ_DK6B=b@`wMD2`45qVO zs=EEv*jlgiQ%t;bE|v7wj%7xqyw9kby>oO}G!!S)#5>vxT{S&NUku*CV_Q6oskhZv zR{htleb~BlT *czqVt;pzX$;y+{wk%*53yvAZhp?AHC1E;a1Nj-AM`5+{1iP%;!=?afn>YSmda zt_)nH;k>M|O@U$E;Cmgs_2nn@En&)&q`XDOnANTc) 9ni_y)q!PTi?dh@ z-7JgWcnr#Ui~%)^vLG$nOp6>@1|0~e4Ghn+WL?d&$>jpM!!uz3)hfW W@3hB^<)PNXsAafWHr=RqXS(uHA@+$WVAEet^(HCYh9N;NrQUH46R@W zcFGUyFF90XvTaUvcH|jeC%yjsX4nNeP^MS2iz&^@NO;{yLRCXhc2o1*Dp4K=U})6! zWKVS9hf}5phX#O#Ue5ri2WNBWjjjiJXip*~()OI_d06OQMn_Q=(v8*!0GJ1Rm 0`EOj&|sI$Oe-RE3-Y@{~affJlVEw+ckt_jWpR~rBt?M;n_3c zpkAkK4%)aQQ<4+ePrhmf9_p9WP?SZx>*dGkBI}Z6*|QbP3q{%44cZC@<)F3zTF3=@ za8i1(>$}ctyXNZ@#p}G*>yDlWyDn0`#_Pe(1zPy!-y(-=uz-%<>%&gbc=+qemh8Wt z?8CO~$ad0shzE1{Y5w2+t$W2>_w}fH4pe>?Yq)0Lw?1mKE@8 W#YCZ7=~^z;3$EZtPC% z?C$RF=I-s*?(z0+@)mC`CdP5_1`|MrZg6jJaPRo;25x}w`SynT?uPru@A=Me_oi?E zmhbq!?`t3i6X;lJs^qt2!{Oembw)eZcIyaVXXlP^wT8r(gx$E!Sx&y~rV8KE71=E1 zKoPgs6h`6OKJDYy &^k{tC}-=M)Zf?q?b7DT`_;rCe=}W7sd-F3crwV` zs=iGk^mlAVn4GHnDydA~DB2}Rv`ebhMCvK0N$Jk=ueRs^jc_POaC)rp^(F1=J!>t^ z>X0Q{;Z9%D26d!%aO8e%6uv03PVr7xUk*myaC%B$l4RO0*smi-=aVUhJS f<-+KzvSgx!mCPm>}pdtYkbCXYkhNfAoUT~TnQIsDc@s^#PwYl^VRlN4;$S? zPIHp}gzoI6^ Wv(I@@VH~rH`{nV#~&1e1Acm3Cg{n(fN*{A*5XZ_X3eaqMV+~@t>_x;`n z{@)k=;3xj!H~!)We$3bW%fEa`p#0~5eo6oYL;!^82L#DqgDh}?3or|0IDr?a0gDj- zjJSd?_yRFFfAlwh^*8^wasT&+|M-{x`KSN-xBvUc|NMU&G2s9H_y7L~2r&W&5-e!& zAi{(S7cyMv1xyx*5+hQaXt5&3iyAX>+~~0*$d41Vd?6|3i 8S+Ai4hb|q!^N-=#U{%hKv~#CCZp9Pp>qks$|KMmqfO5?f&ZZE7-7N z$C52;mMqP*YS*%D>-H_&xN_&pU2^s=-n@GEdVM*Bh}J4Zs`#i;ScniBG=#)Z;W)+# z#Ews#2tgsli47DeEErle#h4mOm5#9mb?MTiLqz*%O~c3Q*sy2Iu1)*4?cBI`>+a3_ zx9`|OjNmA4{5bOD%9k^5?)*9Q CYP% zQUm*I9ExMm*o3atDNU9vMe5He5+i{W638BV{K1VR7f_JE0tpOtLJgs%wv;VgL}80+ zNfA*)4P4>y9*7@`7$S)ynph%=C#sktiz~X=;(OC&R|5?++E^ow{x|BFBab`!*dvfX z3K=AkKYqxed^jpb nb5X{3`H@F}I3ipuGzrILCoY(g++sdk@w`e}6i@S_|*{ a4BFGCQrY)k `$#nx+kfv9M-sTqZ(uUu*How{IJR=x6Ja&{%Bk>4*k&ZaBRv# z{93}rvFh?Zu=x{ob}ToVGY+*<8fj}RZx`&tL@QggKU5!GovJ?bW59blUo9y=wHj6{ z$F0>MtIURRympw4%9?PnAd_tX&tVp3*xhF1Z8zV0`>i+NdAD|{VL=2jt_tL`fMz6c z%E`|@{P@>Tqk9Yz$esJtdoKeWbPxmH9^moHFwvO)$}4zy;K2~9Z}kHaJ}9j;4p4+` zzz-Z7;Ipoi8ZrCUKfpTa4>{nF!w<@Wiu>)#|Gxfp4hA$oY4b`yZ$R|Z>qYp%{%VCzp(bFx$Bw(`A_I>JpGp1Z)^DJ+v>jlyJHVUah|q6^zknT-&>fi zeuuyP4R3$cOQ8Mwfj#d@(0IkWAo4PZ!3}D#gB<*z2a#7C@*S^)ICuelSfD}{_#+aU zIE9?_v$k68p$|12#GUw2feu8#0Sp*{3tr%Zt0=((uZTwEqJcWqMWKjzP{I$Q=st)= z(H|1zpAq<{MdAssR#_xo7Ju-?{Yg=GTfAcKwzj+<@S`7;Yo8Tym&Wu3&wF*e;`i(* zNAmSViwayG?!X5|;*n2`y5plEA*e_M8vej`wi0Cjv?xU}M$rgdwB-J*cRMjEZFyNV zfUFYP$VutZl3V*D_|PcDLjHi2u3RN7qxec$# Q~)Q%gKOWlvibfeQKj)x#*)kA6<7pa1+6J6V=arP*_9MF1b! z$oPXIOtc6Eg@Pk>$H+$33ZsoeUJ)J&1p`8Cl<$0KqilClh(gSww%WlDnn2Ma QTa4yygj)ko5CR^FZGS;$-wI&rF`%TS;_OVM~ zY-25p+Qow5w4HS<6>8O3Dokp&tzE5Zzd2jWLe>gPsH_qe8`{eHHng)v?Qcu_+Rv)C zx5BM#XoHJe*E;vOjODClzscIhN_Vrj1%q@uo80KK_P1bQ0(#TigeIgHy<1?yd(qnj zDzLY`?zJxz;tSvR#+SYR^@VSG^(){26ZpOc2C#h-tlkAHfxZ50!VY%ohC%!x63%F0 zTic3Ee-wiaYzRXS{Lumtlt8Z}V8IXSX@x9YK@47a@fyAm;}^RaC1S|JjUDUR9fM)V zRshwCd(2}Y``EII pt``9Gwc*Tf)tdczo$Rj6~B|e5SkBhA374z1yPwp~AQmbVl zGg--4R&0;U9FZ;?*|SIHvYX%R MJ;2Y(1cB3V+u(~g1zr; z?;a$f2mbc=6tJ<07PP?AdzFC-js?4{L_rHtSi-{_o>(m?w$b(tr-C!Car9!my;K v|Rk?f>{9l;AyuB}fuYY6S@|o+r<|zL;(1R}Yp(ohC zO^9g@mb!x+$Y2LDXnKSr40Rb0yaX#K0l`rKf@qR}1S+5m*uxI?6o|d-W v$c#3SAvibwo7 z#zBt9FTV1Jr+nork9o#x-td{ J=~f!&{ylu75r2U5|L!)1LK) zpS BxTL(I0vF8=n60k9_%6Kl}E3zVVqizx{FE z`oZ7gS>OAWALN~0`JvzSRp0ypVEW;o_2D1;Ip6`}U*sL&1Y+L ww~-U-yX^# zAr_z``X3~|-y=$5BobmF#-SkMVFLD^@*&{_QljE1A@?nS6GEZ%mEaA2q8nOa=eeQ& zVO|!Z;pxGj`jMXDVV?Vy-YTA+>6M`BsUYL!q64-d1%{ym(%=ZL-vYKD_JJV&GR7bT ze&P95p)|hV1g2mJT4M-4;|i+ZHD+T8h9fpc;02bWIF{oD3gI>q;0Ma!0#e@*X5SK$ zA_+X<_)(th>EiUMA{OrB=D}b4rQa@Uo+{d4Kb{~!=3g)BBP13d8oHkt%3&93VjprL zMdslc0w3(X;VteVEmmO|;^QIS;Y4O69VQ??`e8(_WFv-QOG=_kx+Eo9qacDI7ycnA z)}%l3BkmPo35dW1kfH|IBSWsCB#Hw&!~;Fx1LW*O }J;KMqcLpEH4KpN! _CLGM+(>o+^Un25u!U`XdE?CFl*KLb72$`l2hkpey#G^nL!N73!Z{reP7P z ?5LBO0sv dC%w_=m-#7#SSc;|M)#d}@q8d6LZ>rwr z)uu8Qry45c8s26;2Ec79;~Mhj;?-vFkwb0D;_ERd>NzClRi|LuW>!`nZtmtGqGckM zBo)dg -U^5S6MmmP3MMW}gJ 13r|)IS|7xAZI?313w-hbpC?qY$jfH(q{J2W`2%n z`=Mx7(q@T{Xnw|MiDsUOrl^YECIAEg0B{~|hNp|(CX1rzea gbf_D0BuXi;5+RGHH?8Cyq`ji!v$ZVJVZAXmc`YbQ&p^5+|89 zr;Y08IAH0QZl!a!rv ;owfKm!l} z5~#yHl*2vjLpg-QGKhjTv?fB<;s8>hkuoU&?5LEsX>(3sh(4Z+aw-1#C~e;6nto@B z=4hHiDRV|%h)QXUCLRFHDdYVrbBf{NVJDE%DUgod{;=jBbuy-trh~9TtE$GRc)BST zM&7R?-mg~cZ00DGuAhFUXa;txjzTMPLMw=_XMVP63A!nC{_2iuE4e}|c0#GHQmeU2 zDgMPPiH4$+%IZ}fC+fLF3G8VT)*}?!VD>$pG)Tia+(SRS!#%*m#NI k=5FF6ck(NUGM=15tLri6j#jJt z@g{ZxXLLd-lIm=;rfY3_D>>}wudbh|4r6}8U(fn0x>6?xX5Y)Qs^gg|dgkjbPU&;f zDAq#WjLu$orYX28UbfmSd*0`XE?%}8YyScMz}RYQ)MjA39x2n_UWslkx*F|{o@n+R zEqjvRZ=S23PCye5rT7hO LjIIEWF6wfEBCsy$-ER4^;QpDQ z|LG+G1|&qLU>jcF{av3oMy6N7VjBKBo+b`%Ip*UhZl(IAp;$g7a&qu0h9dhJ;TjGu z0CL_KHe(?|pfHMLTpFMcYA*otA4-C7B~IQoav&M9F#7%?S{`Kfp@0Z*Mg&}D;~uBt z;X*J}!~KFo>6Y&3mV+|P04<2_H)w+xgM&7N@iZg@Ea*WfXyZv CVS(#IxdN7riYHQ*&gEyYj3XJ?i<%J>>@CE67AK- z;% z@lb= zF%+{lJcBYMGb%^{Gj9VAOCJ@6>C(z3%;M^Z9_yT +pQfIGjX*^?Vje4nUE_JLLo|W2XRm191ucw)U>ro%;Q@@{1OX-)Q zXWC}<1m@^bM`w-}{^_ {S98 +Q8lyMV z0w%bEF8G2nFvBxE12y~t5|F_x(1I{CgE9C*EWpAgyulH4f;Y4-Rtlz(7Hf+3YP71Y zI=?fk;w`<#YPQNK*V1dLCT*#fs;v60B*tvb>TJ*A>U{$2x~6jxb7zV2bh&D4Zi6kh zf~PX>t!%F0Y;!fQ!tHO*>~Bx^vNA2JnyWV7=MBy_*CO|v=HK2Tv>AT$73QWZ6Q&6R zp$KZ i8HP>seZtaUscWZYoy22lb@2FG9YtLSHjPk2=#_QRttpNe` z6bkF|YPDkZ%vPR?<0sMTtJ9t!-HPYbHmSNUEszRrxaR70H!FOCcaYcXOb4ssNjK2` zZN4tDIHPbYy7B;S10A}br~04_i+MVX7!$g$VJ9>idP6g;f+FaF9>75+n8Gg@gDJql z5wt-k9D_A@!)t0LmVadRmfm@4C1Wb`M}Bf_!m)(op~Bv&_2wn_da&(P=jGvIUY9Zu z=XL!haYF7VY);>73nm nsZtXq*-cZLVEKnm! esvTpx gDPK6W22k; z9(U&_!>
+1~t}H%tsCTY& z{0-u`+xrf`W9|NR=k2GMe|%(0{VJMeDtCb57IqYZWaD!^+;2YAm;KRm{7HW2A$PMj zN-sRJ;rD9e9Hc|-&jC5y{y5ye?c4tD+rB&S{u~5)N_K3;*vQzws~s?GyhT?0)bw zKl4Yw@K68n-+u8|zxD(F^&3C+OMmx=KlLZS?_+=SpFjCO|Mn}t`g6bW4?hXQJp6^> z)T`gw*S|Pha28&=;;k>A4k$pROGj>;yMp5cx)Yerok4-*8X{zf&>%U6+aS8z#{SS@ zM~M>;Dx??yKmd~^O{P?tvLwouCrP3tnQ|e+ISUbfoLG}*&xH;T`pjuiVY-kyeg4d8 z)M3q!L6r*BM~vz+s#I~! |z;K?D*$t_(@qP+-ua36VC{m~b0ku4)_i6$pTHXV0HOhZfyA0N=M| znI8SBR^rg7IFAk;I6HN1uwE&S3)$FULENZwLw2`JmaI?5k0+`l3Tj8Sz$N#V>@;F? zs7Zt04l0o^V8{vKLf++%e0lTd(Wh76Z&$y8Wj%ge;exPX8i^;OMteJB{%gq?8v>A` z$|i!yHlAYhY^4QNa%rZS9ONvf0Kh_M4xk>&%)89ga!V(N-1>_<)i@kTCyPb|3Pjov z^eHW3^2ui&dg6&^o@|hL#Ka7HvdFEox=JfDiZH8b!~K9P5w42T8Be_@p qMj7p~r=A;g>~pcqI{GuoNQbo3Cy&@#QX(g#>@-S#+7ooFfh?LYOT%iw z52T*NbdFL;iMmK3jfxtPtwIlSQ_fxGED5*Ma&sq}V^k^D*kh6YO;*`unQhkDXP-T^ zo@uAW@eydT%{JLpwAEIhc{FmX&P_cn_eoIQv&gyBbPJ3=ElIdfv4^;dRU+>u^T;v+ zX}y)P)*f=pAYFMactKxls#Cg7*wM!xdgiewpF|g(r=E5so_3y%IqrC4do1?Y<3%T) zc+qLw;n>EIH$Hh}mi0l|;*{r!2V#hc+2>nD?ZL;|mMuQ{;&~i~80CsN));A#A8wgu zj*A|-9hs^A*yxLwrl+2M#u3t;B^Tn<+_A|+ceV|EbjwsNHAr>dQO8WtwC=>deXV z6jisf2sYU7nZBzNMR$-vhP-~x;|FoX%j4&8#`}ppa)167hn(`sDL)T#%rV!zbH+2j zT=etykycTytzG=^$1Tr%a?V2+9dpGmpWN})Wk3A(*ITcgc7OD7kEc4rCfj&_%!cU0 zLLXXtOShkk45Kn-^|K)+@y_=$K= jH_|?}1u+cl~+^wZC&UG~jazkT=L zXI_5z-zP?&m@SrZ*hlaOzx&xweZ9e7W7=iF04^|nfszRE1R}QMdCF`i5(#aJLJsF~ z2|w#w3*G)B9MfcPBh~Adx+nslqx21YyOPjOzLqA0{Dp>W3K$L9a>E*WjYp)~VGaEv zBqO1SR2ur>4so-LeDJRx`9Oy_j`4^iPLWMB1pZ=E(t<=J_V9>RqT&|Ov=az6X@X-j zn^_XrymvhhKVKSD2rYxX62{7IAq-U9yw}1Oa_A-?Qs4qt^~d;?Wp4~rAV?H=NI|kM zBIF>(CzMkMN!Gy(W&j`q3$;ktEHZxb0|_PpsTshGF)yVwWnTJ$sj*~mgEbh#5M*-^ z6pm>laZF(?wU@xxoDjt$ zu$fIkv;bEMio$=%PKT>zm>Prj;-?MqsXUHR^*5IS1mrcwHd{^_n9t`2|Bcs%v_= zw9GDr6B|$t^n8yI<{ZcY7ln>vp$%o|{#zdE(1t=(q71d@L@^psjVknO7xidEW2n&6 zRFtG2?I=bm`q7W3^d=>BsY+Y=7MZp*q2nsZ^>CU~o$i#UIt@z> xKc40!ROpK zvdaK*WRBVKO{D6jnzVh9s#W!xzV0 P=$$riVa+ zCp*mwHx4NiuD?Xe-bTgBHGUvfQTUFmI>N8YfT>Ik5yq@;YQle(NQDG-Z2PzhrlY9P zE4@J=W&KmgLaMMS@B0oBEt{Lkj#jcaW$Pa~OWOQEMYN>d4Ix*XTG^_mAOM={K}6eA z-R^d$zF{j@$2uPhEC2#Sy+RcJ1~nkW^7DGQOwm#c>r{g#)0y3@tEK+>%UOo#t81~L zS1;wmopck2E3z(jsbiM&w#ZJ80dJ6IlU87MjWrp -KfYnZe5n9n0~pUfQmQ2U*U3@C51iu9w>|JEwh<_`p;G&
YQRG$$NSaTkDLfG58h9Pg(3w?n#;J-BisYgkd!C`{p!}B~9DARfY1# z6b-{>Owkj|qAk_pJBfL<<;?DD2wPeGxKr4{nQoqdeL)u&sIZbE)tS+3t0v2>FLf@i zD_M q9Qe1?`_C+O?Wl0cQsR4xm48J* DSP?&zBDMpc|d)Men&c zlAd%Wb12sq%uc@On>}%3O0pS;n?)c@>%@9Gs~QZsmIQ2MemXfovz9em8VTKS(J`^3 zYVBj8ym3GJ8#6P^u2|jS4NjO~8sBjIHyZy9Z9x9 G_QCpn?1T1-lZG5PVc=T*L?8tEcdSM{ zBH`Ei)*M n){{}DscP}3hPyhk&|MKA(n85_l zL?bMKJa~^E9B2115CZ|wac+kJ`GEkDCj>pP|2UBM1aJW9K?2p!dK#@>{AhZpgoK#N z{)Ub1!otUp4K477xwtJ~q{+SnVg*EC0u-RQMlS45Yy6VT_{L8BAZ+*m?pKzg3V);E z0*$^_Zf=MuKbC65n!+0_U>KeuM$GUG(NF=;(ErSk4cD*@(=Z?S0Rk;xUD81e)6fm$ zPyri|5A`q(0RRrwkRG~00^LpRuuagyF4oeI5oZnK(4w~LZ$&_;(b#H08pEiB1KaTa zh%ZWjK9111kc-#qrm5_1gq&;c;thmq2~vU(Pa25qj> B_a>Ja1baEX91M)rpou@N1v@fXoh8JkfV zfiW4a5gX^h9O_Woo(lW!t&yk)<4DNv^eGDQtX9Yh5?>?Gs6_4Lky4^htV|^o`--WW z%N8+Z`R-}f6jJ355mMr>`MiuRSdRSYuiLgzGw{zCj6q@|W?DdIAJAc1Vx}GdAY`;A z07&u}=|NHIfhC2}VkkyNgpnSAVHna8GRC1A%}`PDArOT|QAV;Pk8xU#5di)`rX`Ki zVv4dJR`Ow}g&wj&0vD0tXayB(FnVSs?GP&~d96ss4xqH>^n}O@x3KOO%nN5Ou{21i z?yR50kJg%sBT6wVaSFqdN*)Uc%F;_BCov(>PlS+7@VW-H+6Dh=GHCPx9p+(TlIC0H zVJJc7F(tDkza=q)W>G-qC@&KjV!;pt<_<03Td3t*=pg`j24Wu5XoS)+17IFdl4FLl zVvez8kft39k-^~7ATM&`0_{JxQX;7`F75B)e$crJ@=yBFxwwtm=FK5iU<3e66w4Bh z!jdlQPT2m6NVK#5Hc=h>ttOgE6ZP)&j_=)E@UMu-8Y}=9Xn`KwQ~qlf#Xai*ADB`; z>7g^+Q!?EX0Nm4wv<71Qvp#Qz7JeZerDGiM4?f?MWA3vhHpVktGe1l6K1pIm@G~_P z^gV4;D%;H>nMyqCW*zfN{zx(HRtYm0vGDM%2W?3_t?fW|A}E9`ItS82$CDt>1QP>G z*4(iwqs;~p5hvQQjy3`!-ctP-66NlaF 2O1?}C#mr!qiP(T)riR+fjwg2LRskJX;*PxwiBl!q44{*MWP>>{tSB5EZ$@9tG> zDL4~VAMH&HpOhU`wH;KoRoj78RTUjr6;@-lRaf;^ZFN>*l~v2M?8re3Uo{@kp;d>K z9bR=+kJVUh)m3TrRc94hmz5o|;Tkw}Hs~mh00ao*(XjN6A5D(tK=eqHG?y}!9^nmd zhOI?PWytL8xJ=P3eRS=zD#3hIuolugH6tG34@Zeq&W2O4LiMcTCMO*M2K- $SOb7G4YPI^%T{`3x2QXGzH*F+Ku=T~Xz@T97)Quq|xq z5%-lMDT6zK(@1&r;_7HR2vy?rw3yQ2RcGX6T(TuSk}1h{Bok#~BqnXqkY~=YB_#$J zU9KS<<`-d7G!rFJfCg#y5Dps<7!$=|f~VwYE=LKgA8*jd?g?i7X;hW;X%}l|Zw*Q9 zW;H1BXeppDBGo+i^=@d^JgpM`Ky}}+C~El(FxL*3K6g}eG)7m&KR~Uwt_RdM$@!A) zU$&wxe!|a|5aCG7#Xjv48LYj|1d&KgR9yx8cGnTlRXMS>JeBI}f<;rG4MFhgXpK =j>`Kf| z_NH=ytX^_ZUlelN3bjQ|$lhcLQEwDDt&(Ra7b1HT5n0!=y3k!tWuBtor zw?y;G2{V;M{pE0P47e&QA$=CY^v&8bs4f?bNjU;1SE*7m CbKsYrp!jv-(kjk(btR(x8N^UFXGT9hZ&(mQlHK+?G~^ z57%BHMO?{_>_qf#28%r9tu}BgB7c}Mm? nKx2^~pNUB2STNZ~j7m{JB6EZ=fTK{sA~5IOS|3c(Qj zjJZJcBem{|e~GW_Vi(RLtV$X#hn5FWJdA>0F0Pd9e5W&lH<>K(X-_9|;ljCT$&Zok zm1uWuoV?;WCjegLg$8KA2XH{6U*H9B00?9t2V_77MEayhI;BY(rCC~~Wq<`zTBKLH zq(!= upV;ZT2x}=X<23p{#TVMs8+Nqlw zs;OG4ncAkE8mqBdtEbwlZQ2FAx~a4Jsi``vnHmMadaX;kt8JRBwVJ1u`ljU?rDvL? zjk*PD+NbAQsAbxvk(#diTCjUMsqI>@f0_k!+OU6`t*d$kj=BU!zyTJ30Vd!APJjX~ zV6!*-vM>7rKAW>edjd3Dv`rhdDS)&uyR=c8v^hJqU7NK{TeCkqwNKl%O`EiB8?{SY zwpAOnJ9`2`TeNB0vpGAqSsS-sn*v~4w^tjrFQB)9d$XB)w?TWjPy4uKo4JJ>xTX8L zyPLR6`?DP&x}Tdex?7vLZ~L>c`?ZxjyK_6cQ#-k5JGwiYx#1hSb6c}z`@Ykgy + +Background Dependent Text Colour + + +Background Dependent Text Colour + The Colour→Text Colour menu entry opens +the "Adjust Foreground Text Colour Threshold" +dialog box, allowing the colour of symbols rendered on dark or light +backgrounds to be set for the current selection or the whole alignment. +
+ +The dialog box contains a slider, and two colour icons showing +the text colour for dark backgrounds (left hand end of slider), and +light backgrounds (right hand end of slider). Drag the slider to change +the threshold for transitioning between dark and light background +colours, and select either of the colour boxes to open a colour chooser +to select a different text colour.
+ +