From cfd07cbcc846d2efd0fe7ef7cbd80f0e6158943c Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Sun, 23 Feb 2020 13:15:12 +0100 Subject: [PATCH] PasswordField: warn about enabled Caps Lock --- CHANGELOG.md | 1 + .../flatlaf/icons/FlatCapsLockIcon.java | 59 ++++++++++++++++++ .../flatlaf/ui/FlatPasswordFieldUI.java | 41 ++++++++++++ .../formdev/flatlaf/FlatDarkLaf.properties | 5 ++ .../com/formdev/flatlaf/FlatLaf.properties | 1 + .../formdev/flatlaf/FlatLightLaf.properties | 5 ++ flatlaf-core/svg/CapsLockIcon.svg | 7 +++ flatlaf-core/svg/FlatLaf Icons.sketch | Bin 17382 -> 19911 bytes .../uidefaults/FlatDarkLaf_1.8.0_202-mac.txt | 2 + .../uidefaults/FlatDarkLaf_1.8.0_202.txt | 2 + .../uidefaults/FlatLightLaf_1.8.0_202-mac.txt | 2 + .../uidefaults/FlatLightLaf_1.8.0_202.txt | 2 + 12 files changed, 127 insertions(+) create mode 100644 flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatCapsLockIcon.java create mode 100644 flatlaf-core/svg/CapsLockIcon.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 56fba548..70f0e688 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ FlatLaf Change Log ## Unreleased +- PasswordField: Warn about enabled Caps Lock. - TextField, FormattedTextField and PasswordField: Support round borders (see UI default value `TextComponent.arc`). (issue #65) - IntelliJ Themes: Added Gradianto themes to demo. diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatCapsLockIcon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatCapsLockIcon.java new file mode 100644 index 00000000..2ceab38f --- /dev/null +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/icons/FlatCapsLockIcon.java @@ -0,0 +1,59 @@ +/* + * Copyright 2020 FormDev Software GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.formdev.flatlaf.icons; + +import java.awt.Component; +import java.awt.Graphics2D; +import java.awt.geom.Path2D; +import java.awt.geom.Rectangle2D; +import java.awt.geom.RoundRectangle2D; +import javax.swing.UIManager; +import com.formdev.flatlaf.ui.FlatUIUtils; + +/** + * "caps lock" icon for {@link javax.swing.JPasswordField}. + * + * @uiDefault PasswordField.capsLockIconColor Color + * + * @author Karl Tauber + */ +public class FlatCapsLockIcon + extends FlatAbstractIcon +{ + public FlatCapsLockIcon() { + super( 16, 16, UIManager.getColor( "PasswordField.capsLockIconColor" ) ); + } + + @Override + protected void paintIcon( Component c, Graphics2D g ) { + /* + + + + + + + + */ + + Path2D path = new Path2D.Float( Path2D.WIND_EVEN_ODD ); + path.append( new RoundRectangle2D.Float( 0, 0, 16, 16, 6, 6 ), false ); + path.append( new Rectangle2D.Float( 5, 12, 6, 2 ), false ); + path.append( FlatUIUtils.createPath( 2,8, 8,2, 14,8, 11,8, 11,10, 5,10, 5,8 ), false ); + g.fill( path ); + } +} diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatPasswordFieldUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatPasswordFieldUI.java index f0f6184f..abccabea 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatPasswordFieldUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatPasswordFieldUI.java @@ -20,14 +20,20 @@ import static com.formdev.flatlaf.util.UIScale.scale; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; +import java.awt.Toolkit; import java.awt.event.FocusListener; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; import java.beans.PropertyChangeEvent; +import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.LookAndFeel; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicPasswordFieldUI; import javax.swing.text.Caret; +import javax.swing.text.JTextComponent; import com.formdev.flatlaf.FlatClientProperties; /** @@ -56,6 +62,7 @@ import com.formdev.flatlaf.FlatClientProperties; * @uiDefault Component.minimumWidth int * @uiDefault Component.isIntelliJTheme boolean * @uiDefault PasswordField.placeholderForeground Color + * @uiDefault PasswordField.capsLockIcon Icon * @uiDefault TextComponent.selectAllOnFocusPolicy String never, once (default) or always * * @author Karl Tauber @@ -68,8 +75,10 @@ public class FlatPasswordFieldUI protected int minimumWidth; protected boolean isIntelliJTheme; protected Color placeholderForeground; + protected Icon capsLockIcon; private FocusListener focusListener; + private KeyListener capsLockListener; public static ComponentUI createUI( JComponent c ) { return new FlatPasswordFieldUI(); @@ -85,6 +94,7 @@ public class FlatPasswordFieldUI minimumWidth = UIManager.getInt( "Component.minimumWidth" ); isIntelliJTheme = UIManager.getBoolean( "Component.isIntelliJTheme" ); placeholderForeground = UIManager.getColor( prefix + ".placeholderForeground" ); + capsLockIcon = UIManager.getIcon( "PasswordField.capsLockIcon" ); LookAndFeel.installProperty( getComponent(), "opaque", focusWidth == 0 ); @@ -96,6 +106,7 @@ public class FlatPasswordFieldUI super.uninstallDefaults(); placeholderForeground = null; + capsLockIcon = null; MigLayoutVisualPadding.uninstall( getComponent() ); } @@ -105,7 +116,23 @@ public class FlatPasswordFieldUI super.installListeners(); focusListener = new FlatUIUtils.RepaintFocusListener( getComponent() ); + capsLockListener = new KeyAdapter() { + @Override + public void keyPressed( KeyEvent e ) { + repaint( e ); + } + @Override + public void keyReleased( KeyEvent e ) { + repaint( e ); + } + private void repaint( KeyEvent e ) { + if( e.getKeyCode() == KeyEvent.VK_CAPS_LOCK ) + e.getComponent().repaint(); + } + }; + getComponent().addFocusListener( focusListener ); + getComponent().addKeyListener( capsLockListener ); } @Override @@ -113,7 +140,9 @@ public class FlatPasswordFieldUI super.uninstallListeners(); getComponent().removeFocusListener( focusListener ); + getComponent().removeKeyListener( capsLockListener ); focusListener = null; + capsLockListener = null; } @Override @@ -133,9 +162,21 @@ public class FlatPasswordFieldUI protected void paintSafely( Graphics g ) { FlatTextFieldUI.paintBackground( g, getComponent(), focusWidth, arc, isIntelliJTheme ); FlatTextFieldUI.paintPlaceholder( g, getComponent(), placeholderForeground ); + paintCapsLock( g ); super.paintSafely( g ); } + protected void paintCapsLock( Graphics g ) { + JTextComponent c = getComponent(); + if( !c.isFocusOwner() || + !Toolkit.getDefaultToolkit().getLockingKeyState( KeyEvent.VK_CAPS_LOCK ) ) + return; + + int y = (c.getHeight() - capsLockIcon.getIconHeight()) / 2; + int x = c.getWidth() - capsLockIcon.getIconWidth() - y; + capsLockIcon.paintIcon( c, g, x, y ); + } + @Override protected void paintBackground( Graphics g ) { // background is painted elsewhere diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatDarkLaf.properties b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatDarkLaf.properties index 4fdbfc5c..95847685 100644 --- a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatDarkLaf.properties +++ b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatDarkLaf.properties @@ -182,6 +182,11 @@ MenuItemCheckBox.icon.checkmarkColor=#A7A7A7 MenuItemCheckBox.icon.disabledCheckmarkColor=#606060 +#---- PasswordField ---- + +PasswordField.capsLockIconColor=#ffffff64 + + #---- PopupMenu ---- PopupMenu.borderColor=#5e5e5e diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties index 496e64a8..09e01416 100644 --- a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties +++ b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties @@ -345,6 +345,7 @@ PasswordField.margin=@textComponentMargin PasswordField.background=@textComponentBackground PasswordField.placeholderForeground=@disabledText PasswordField.echoChar=\u2022 +PasswordField.capsLockIcon=com.formdev.flatlaf.icons.FlatCapsLockIcon #---- PopupMenu ---- diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLightLaf.properties b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLightLaf.properties index 4b84cc72..472f7b74 100644 --- a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLightLaf.properties +++ b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLightLaf.properties @@ -189,6 +189,11 @@ MenuItemCheckBox.icon.checkmarkColor=#4F9EE3 MenuItemCheckBox.icon.disabledCheckmarkColor=#ABABAB +#---- PasswordField ---- + +PasswordField.capsLockIconColor=#00000064 + + #---- PopupMenu ---- PopupMenu.borderColor=#adadad diff --git a/flatlaf-core/svg/CapsLockIcon.svg b/flatlaf-core/svg/CapsLockIcon.svg new file mode 100644 index 00000000..1c45373d --- /dev/null +++ b/flatlaf-core/svg/CapsLockIcon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/flatlaf-core/svg/FlatLaf Icons.sketch b/flatlaf-core/svg/FlatLaf Icons.sketch index ea8b14650aaaa14b982f7c5bccf546894016862c..c0fb85e5e58038b2598a970fe1a20651b1e0021e 100644 GIT binary patch literal 19911 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

fS3`){!J}xA7 z)pEq5!wI6PrNXx7$GCQw-+8z8X|J}+`gl(+GE|wAa4s2im>&aA}P7{x(LF9mec0~7x1XP~NGzZrtg8=qJ-AG~#MIh^C zfQV3dwX}kTShzX|_C{;0sNA3)uULQ~6T$O>A(L-PuBhy<;Z!h;gOG8D3Y4G*1G&i` z)ln>=x@@{BV9FJ++)GePh)y<@!PVB3XlM4F}`T-U+tnDEoksC!GD zWc90(D74jf>hGJ;@v!|oAHwhA<&jM^?^32^-w**|*>IH1q($q-nE4wmZKvsr(oC@J zHF!-$+_epagc^;VX00E2GTOAf>{q5(VCVE3#_V%RfMCaUr2{QZ#P7qon+71>PzZHCX96Q0h{+Uo3&l#xgb7H}HJWR5-@I>`J1JtyyGzRZlAc5fNx+DyUb^ zEdDBRPL5EGv6xcE!Njz12C9?=;o>oyt^4>zjC=7Qp*1dR(qT1^@!Lu6Cm6Q<>~#QP zGBmJd;EHa6c9@`_a3Tx~Z1v zvn2=KTMge*g7(B+S1a)`cyirQs&0Czzy6FyZORVq+q;nAQq?D&D+klkA#~B5cHztM1jhWVZ zcEEwjOD5U8D^88@d|z^|{*sPg1_|U>{9MdavE_T9*N^1lb z7G;!_Y|8wt`yL0v9Qds23VzZ9fNK=F)ns6at7@nIO36{WT2#;HK0mbg+e@m$w8@_s zthcY!wwwUd1;eYyLwZ}c;WjJ2gA*Fyr3q8sk0?L$O`j4=RkJFvkjda-zV(Fxi1cNZ z?j;hzD#1oKJbo{*)GVwO=T)p95oyquMtE!Dj@2>OXF4HP;D(kcqHzdimnlliFll)8 zQB*;?b5Rip-~OX%=B)GJu6M=dQC0H%D?IwqOj^a$Aj8k30TWbGEoOaNm8YuxVsX%^ zes84~rAqK2+m8D1X1NG)W0Rv|^diKmC@518Jz*tr38AwljH;VJ_^$QosQLB%g0(qO z63M^*0=e0QlX{s+-OztN#i!c<#(`*3+zR&y4N*}wDaSfuWr>3HGlT9!a8>)!MAhaV z1fgtx+z0xm)eZ-xh4M(ad|-u&B=M*O)!fUCO}I2M^n=0ZNb=m=`+L8G(PL3|_GP?u zd&tXT)HSsoRK3MX7f4Au5F(VUXJ;HO2h*C-(~Grf&;BS5sqi)BEo9XH{pIJ+sB^Du zp};4Ixo_5O(mxTh$uGA_tTlexT z2C@DL2V)qc2|ng^z0k9=jmEH!@W7ODtOPtWeB1lG@~1B|K~=sd?aJcmbq%EH-zL~N&K3u2 zNEeB-fnHs!;9U1uqx1i*UEze@#<9mv=$qNTVY);acpE--aQ-HNx;jo zm`1{}hvcUA-aa;!Dx))jm~Y(vLAbhiYXgl*r=lme#n}K5=x;qdH*LRRAmi2fMErrq zy|!uT|8YN1?hRdXIbdpLK6rJyH4Sy<=DwgFG5th(OE$Z+A+dFTpDEXmbFuNA3SX-bgSXYiPvnuRwwJ!Q9Os)A}aC~y|)Rf~80kk>27lhp6cBmS!j9=QTGc?V+ptLjJ6*q9x4 zcpJtLWVnf>G9xLSps(9!)|1G@PYRE~p(sA3O!o|IspKvqgWsSMKMa0%2OdGH zwm=*Zb6A<{@aY}vhx*Z=WwuZS>`kkXhj#SH zo_Tq#QJY)B*A}nWQN1T1rZ~jr7&P*Q5NOijricCp&r*o*@F2l>PZ;FULJ-j_mVl6y zfy^7Lz{c3t5dNI9cO}q*)ugJg7)>pYC&4uWBI|8IB5ps>KT1 z!?kKOkhT_*b5B>67@J733U_9ETfh6=_FOO+se?y73`t#>szSrJkVsb@J&SoUBNXm5 zgLl$5XT_9PV7gcqx{XZ!C#&2w;_+HITx2P8emI~_B~pWx`N@hBQOzvP3Tc16l8LvG z5r9msstHpxiy|8j%ToGB*$Z_9ROF`=iV6E@V8bohPj5U!ly)@6?0x8vS6vcBxi zcQe|0aLo-4w}s7+Qd z%Fw2V~9i;w2`w7{s1b(l*z(n-f9;SWc}PF3V(m;}_IfZ==L` zH?j^FEpz~H&JqA#{AnSvQ8x5Z7H4r;N2m_Oi7IOOGq*nznnK;tLCZ`ft^hrfsCB`^AgIeLy%`83w4%fR2=M$p*2U=ZE7r{(DEq* z`=|?|2m`HXAs`A##3FeI?BjGg3RLhJ-G};Ca%KktyWpJ`;%A%PTvG!Xtmx88%8=E~ zUL0nUB?oG|mKS5YbR)Vi1eG!KJR7`*7x~BC_1|k;(FF$edPd3udr%VY=su_-{NKur zYGEbuR^5b2;odq^+gso!Tn zC2(u|bp($3(h3GvkE^y{Zz~q|n63Irt9Dlmc*iZB+e^pJ-2$fDMI$fi5}bg#FwUMu zp7t0auMdoBdt)xP`r50U(kbsph@b5-1V?e+=dg;BglS*4$*c~#cziNA9#vNiee)M6 zVR6|3&}|J2?C;mD?!2IJ0$|8?#$4$2n`HG1J)6Iw{+T0E?giT3xPTEdsPPvjY|Hk0 zjbC(5%dU+?{Z)n&C0+gli$}uAspuLpVy)1!Ld9ZeP0oJFj&U8jzs81=dFbsVBTaJ= zAOAA;`-&xOjTSWRJTN;JMdpli6<^GKNT*a2Jq#AeLTRI+CLL-D-=3Q#Me>`r6NM(r z%vtqXzO8Ric5Q%2Bw|9uP8@5R54j)=4}SUfN7OGLNx6ZVa}S3kXw0C~YDneOK-=o= zg%ho2DUuKkvjH;%$}&ab$F3q1YtZB5euw3;%4LbJ5LmufY~umOq^g6YMdWUKrk&7j zwDr??5)~8TSSV#=HRNdwbQWqPuN#}SKqE_Dz5@0d==M=4d|Qyi%b6^OUG;tJC2Nafl1h=ZbO96%vzw875x2 zD%R??y0J+906p;2r}M<(k(Dvk%|Yu#7)Wv}JsV+&tiMNl5_Qc_e5>eI(;^cw!N-d1 zH**iS&a9+zusm+O*41Af%2(6~ywJu4q!jr&UJN2x#M-ENvX&E6Tk@p0-i)X|3A0Ro z-Z@5rqmdk^AaV`#Jx+zGTu~_K6tv=_rRON{p#bKgAQCM6X270PtiYjN;fja`$BT!P zX&=hPlCxiOqc?;N-ApO~MS1{aslALxhR{YOq1}uaF$;+gcOJRCF=% z!hRsiVSxa+#;iDMn%P3r(cG$%CMN`(@#)(qrr0)q{C#O68e@S4U&NmHk7s@BEv*_0 z9BaswrRIPT&{$1jiZT`znTfsjhf^ z6oc;JNx;&X^*o41(OIsh?Qacw`}OxgwpNWNha^jW7o7(cOBt&n&=z4n0%rc1S^!DT zDD_Lkf}bn?9!A)Ep1$g2YKCsmc4(B}PM+tylFc$aU34~w%A08vX1O&r87ua3Q~l17 z2bi0<8@ODGEz1lMI3MIHXL_SE)Czp%PN1+!*$JLe60;w~?A_6|>1(LA}I_QscDZ}*XvDw7KLN7G*0+5z=FYG z{1HSeM|+P7WV=a5dZl1+)0<|S7&jLGC&ff81EXod?^&~~Q2-nqg=(wD79xKI00k{V zLc`jo|MgZZj%$3{QW|{fcIC#Nwd1c%)b^vYcaXv?saOU^zj>K7OT{p+qO0f=VdaZr zH}WQRU5w!kZLq^YuA>%3LPl4-m{R*u7nJG7_1$x-?`gdEd|(hYi4s+UUo~pv&YHJM z&0q5>k36ynlu~gCmYOo06irl5`oQpbnotw)&aNCW6p0@@J&}-wWMezcSVp5a5okY% zBUX?l)I>=!#uy2V`v2EC!I1}>O0=*M>lN1sUB&L@I|%((l=sVP>2xnS5oVX9c(BGa z*%Z+#$PaOe>lbQH;7I*AQHWNHlg308)tDr$sYQnl`(OW-N0cX98aEJk;WzBHNbGl% z>&#RNAI>GQg80oi7WV7; zL|*h_X1U-ofp)W|)gsvovXf+#rtm_XX0mm#h8uosdVu_hq-;#^Cfs1zd_LWT@ZvZa zW>|c6tD-K9T1u*uszQ9^-}*g|EVEomKG7ANP6a0xMv@CJ`-xvfr*B90Oeh*JT__#8 z1>2RdoYd$f8FoXA0*|kiP~nw|Y;u6WosQZ}29C6BsFdHNinXw7%D*FP#p7ymX=h8S zO2;b7CP3lT^u(;8%%bL;YD{<>mMxPeD%fn*Zk&&nG-BP^w79Ms27h|Bn%cpF@gU>Y zIIeVD91e)e5e%#3Nz3pr@KWE~eNA{*woTxYYS*3AU4QXbSO6gT{FnV6{#2OV&94;g zI5FFKvKL^pEq2|`LLUQZueWpKpKNUaRBpP)+G?@Bmmr?g#WxneyXCnXc@dVLYh-n)2aT&#)>$C35NjHz?vs~RbO!&Nk4p&OK zkU1~?#GW2a+uP{CznVO9%-_7i%c`Mev)@ONZ7?n-Y==H=jC$uZ*|nUBW3jVExI3ycCpAGb=yaEJ`Ws*2d9G$ERvL z)t)r+E7K|XhjB2jHT3y(Y5fKCSw4pqYXtN$@23COR0!r8Y z2%fR)+@KQ+J+^{n2cQPp?vHd^VHuxyTqMu3GxinHf0F0Y51E8EhLixd5pM|-b;jMRtJe#5l)#T%cT1iB49G~RWZcNU%|nVhX`wYdWXB+MaI zda^wNSR_ZOP5@=N-#AV!11Q$#Zz=G>MX97G%7`_y`}wU7RiS7lada;ykMh%hzG(B8h6SR-FOU{Fn%J?xS?cuvr`#W3B+n z#H(_zgnAQdqI@Fc6khm|r3Ijpv{pKLcVFAY2~Jhe9Yv&WUxhwo(;3pk2l^VuF1u?Qy$3HiH6AG`6y|zSV^AP?%55)7TTR9nUK6MC~73TbFdAkAOus+O7OWt~-K zk2y5L%LD>kPBRHs4&}ld;oUUUsZ^;*=?35WnkBXB`2Peh zt`Q+RQ3r!N-5th90kr8s(aV?iCqlhh1=K>euq6MONZho!Gu5bHq4X@eD2(h_+d>-? zzuAB~!{Ics&A*+%X;(^fT-e67YVdFDpo_VXem@%HWj|DV8k6$%5d`-jz4J!f4z6)V z+xkPeL1Z*rQozVzxQ5zP5*%$3H`MU(n#x9og%D_t`SHp4RY7@}{J**Q`YpkLBd4li zYdJ+9}Tf+!tFHXHGYT7u(+*-vs;PnE1IT!(vLeB^xdA?8H<&Is@`A z0kVQ2T(V)+%-FmRE_fu>?~B znWm(vOF-~rLTnecH~`#?m3^pyq=z&e)^eu91fIhTS~VEjZX$4kkR>+3cc+=9L?Tn%p-Ti@sE6wR_37r*at)4O! z1EJ%slQl(0s@yHbf@vvFVGswUYQ?aw%pg}qjSPOne2cWg4|tL4<3MxhZiLVQRkK9w zcVP^yf7{6rs^fQX!PmnCM#phxsZf*X zpT%$}go0FJNiDZYE!UmgNXf2uZ1%4xc!!rZd_yKSxWd=$UhZn$zM?&)Jl-4xnd zyWUmGly?PuOw}ga$-h|)y~L89`SVNlWeS*CqMS9;xgjmwX^eJr4a|{wTI=!8e7Q;W z>P@Y)E<+f`>Pyk{=1IwQU%*t{ipJjGJUc{2z`(OxDqxnGbDCa#g41sUPOkKhonZG8 z)HdC5FrPhf#`QZwj}qX&2ytJZkluwm59KcX+<;S!2~({GO;cGeSee+l`nl>8A81xb znr;MWt~MhsCxi;#2n!JBP|Kw|qoK^Pk%kRoVkMCq?_6LV!V0EoD7ZaF{Htf?v7tHg z!ax1;6$$UJO;9M;BMesyD!v%dK@lEey}(PM?=Xf)_Vbp-64->i!htNM=SH1|0Bahi z)jC{QE6wx0mOem3@cj-r9cN%AJQRXC3aYF`tEAw?Xd{kmJ}e@|REy!GI#@P(=#~{) z;E^vP4ai9oIK(Jqttp%GV`L=^(*{$ZjH<6DL}w1-O@HkDo`oEitwrUPw9#E_*s z-7;t-xZHg4dEdz1jCn6xK+3sHw+F}%fKd{oxUB``I8$P8U1#Ivxx^^U%n2f(-Zkew zf{PMf(kUN|Cooux0bA$;LvGgS6RY6qSz|0~H4>!b=S|{D%bs64>qseC(sx*Zvqugjkg+;2w_ zsJRy@?l)wde}l~PK-tnxLPez)dEMdf!OT}?$)F1ioi_w#_*O?u2|n1j}G=&LZ1aBz$4rWETOkF0iQLTipfB z%s&RMMN2c3tlVfgKjD04-PnD5{uK-C8c+|Kbs{Ye5WRlWt#Zx{7b!?ezD!{a(3e$R znx*v;veY81Rp<6z@Q{su);zmkCrcuGIP$!6F7WB!E6~M;mfFWinMmg4a&0!B=ZbdK z#`L7M>kDHr5J-(ZNsPXaRm%o$B2{_0@ROScWnL{-RJeIUF8hvp$&p=9UEP&!?59$G zhxk3_zBy!#Kq0)?oV_9QjCH`cd4&qj)18=?c^KFA{XzWLK0cF!4tfcM*(nQL^lKZu zt0fpu{RHa&U!tUung4M0+@ysuIU3(H=Cyu~9$cLreayOkJA8Er`fk+$KPQi#Z99S1=;J>zU~PDUn=|?& zF>m$wx;Www3r42u+h0;3T}yD* z9s>nb!YX#aCy`uZ=9Wv0EhW!*m?a1)n82sCg#X|!1tB=sNCQ*`x4j%w7AIsigRSYUJ)Og{fZ^bwD2DH!^IH-VkCrfuko-PcUd>IQ{LDDnU}fdB?>y zriOE^hNMYIM2=Nz+m%n@Rtb#8KQP5Am%wq-tgxn$zvzokpOAvYYDHj$6Q10+NYygO ztr8EHgzKOwwc5)>G?51rBxGMSEvh&z4_iF9eU3KpFaXfCBZsA0T}r{7TscINrG*y{ zt?^`|)k^h4=Re)nd)(S{xW_s)4m6?xM{4()c#1h!ALC)}6{|2}7{NGx9!q?VHH*@= zq!>1J-afyaeTUq%T|9lfcKPpIFKk+};iy;@4>pYk)iBO6yQy~(&m>ARd3>au0LwgH zPZp2%(RvNNArF-m{6Q*u#Ibwr+UoLVR&RiAqc@T1Kjnz|VN572VdChZO+P(D%u%-dLQ!tD8(JOV?m$g`$N*1#!ZR>a7a^Qoaj8@_YR zQ0N-_#e;4|z-(4j)ik*DGoR{r-Bp|yUuijaYUr@FD>UdPQ}kfFm3^9ys^Lak>8je) zxiqE=KDFZ3>>aYzMfvPvr>A8OR3|39Au^01)Cz<8oS{NOA8cGALuXxmJL_Dwzzsk8 zV5_?!3<*VJGlLH{0{`xS8;QV7NfKpfFt)?TFI=6U)PA9ceeSa_-wk@5X4z{Xz66yh zLjXomRWVRSTu{^R`pMJCXgxulwcW!UGD{2mA*Dtf$Hk%8)dSEfK)e`9sw^^0G_}YW zL9UTixE_&h_5E!}doFr={+bZbo9}>bXe!Kr#X}?Zum4r9pP=l`H}A=7A-DYr55+3I zK$yg97ZGiNxz`O9m9XV-INX*2O zO7G(~mxOkZrm^Zq*l@&B8Z%XH8|+CnYC2vFTDl3 zSOi#ap)MU~6UpMUMa45LD6+)t$tWMHHB_vPMeG(Xd*X+&#Ta$JsPn-504pG#k5?8+ zV8NH1_QH*dLohrNe@R0N8Z6MhlMf4w3sh5jth+6brZ8HU_e6Gsrfrz8DWYPd#us< z-goc@`N>|+MVCXt^=IP5aj3KZvQ3y@;qdEbT9u~~(O7_5+ePWgY@J$e9^TrY-m^`XB?rHxEzl!5Cz;_St=$JI;|9EW?ds|0CLD#D3HIzgjGF2uXL@W)s`{! z+>eo>$(RQRS*LETAYA64qDt3(2wRJlDR2Bxv9U#$^*7L>UcMbvw+8R8tXN)4RA1l} z(PGcHjkFzpAB2u*NJ4hykt(aJi?i(hM5Hq6R_4TYB>6*vvVn015%4(uZnfQ%U^Aa7 zKAKEhtk!Ir!pcjHCE$~=@4AB`5cJDduhWxrKAv)1N}9Nr=o70ChDKhP$>BTe0bUnb z*LI9xvl98el3cAd1gqC*iAP~E+?$d~9|Z@@BJ}PA-(I_5DVfKNbdrfszw~5DJRFvfwuB@orI>oWhD1|u}^XQZqh~$G^=(LOTernm++pj)e zcfaUWR#hzuaEFy^m#V)$61@g6y<(t31PI|ql><(k66LZu*DEC@C0lq=#((X>3z(9u zz~`WEAoGXr7qIMk;G!!4!W!qaAu(cbuFqRj9Z; zOmp$gtbe?tb>9o;58Q+|S+6q2=y2_L6t!mWL!p|Bxjc|Ol>`ex66zeR8!=j1TQ91r zR|EDd;Ph{4NMS$%*(nb^9AeC)ZqAw&RJ{j{+JOXfo+?2uLdtl?=j3h))xUwix5V4$Ou);KlG2?h6lS zl{Ku6cNQj=hWKruR7lff0|V1<6E7v6{I4$*Q}J0xK?zzXPKcyNMF|p*D1B`tA% zA?OzZfsx3d7Ehp)&bw8s#HO~&PJBL*W+n$qq$%W~82Q8+7H2Hmifm!TF5O~M?s2>& z2P};nvPXM~H6H`4u*Wufjp(SP>y3cVI82mWFFIme?~F&znx)i7RoWoFGAw@9lCD-v@+==eas-cBQ#~{Jymt!_fCFgrF1f zAU~*w856MvKn(AogOa3E{apBg1xf<=|708(M6z~+luhCzCJi4Lv^EcC^!eOpNw9vS z!zCw(>>R{3PU6^miAOoA+_nsBwuJ!D*H^&fw8^imtQ>p4Io_3K6mPC4Z~DpzswY=@ ztD26lyo8EhaJF`@YW6*V590A>vZnWo&!ad6M{6*MA++x^Q|^xmrn(S*{ZNi{?V!bZpE} z#qGpSw#OZmp%z(oD8aZ4jx&ydHcp@`S%0V;PN~f3R6#8)$;yGOOqNDV*Sk`*(6r*6 zvTd_<-tB`ajTdF$=(fa-3=f86=leS3xF38-#%T;w4+E8CfBjKw_V%|@KgKhBZ&#-{ zoLI~Pdxa^j1)o=FB@h!DbFfArGTjk)E6%(;-<}k)(L1r}6<8Qc_O*rjZ!WzmL8e3b zh+2~Ms1qeFve@re)gxR3)30My|{hR)}WN>k{Jcb5QDe=Zks~5{)uDdld>X_`j0(5PNfh7Q|F3@MI{n|p951? zxk!Cu$I{zbISRdCdzzdo31D64{KG{RCY5MwlClz|+J@29kCzr=68YK`T@6N^GmTe} z;HkTaL+}hTF0w6pOAjnzyR_f&NXrUBWiv2lWO{l!;ZrWG{S)tDq{AzO;Z&wo-Cr3g zHsFGR^*T-U;J$7Q6CbT18Vz(-n_MbiPt_F;_gVemNHE-@Q>G9 zsyz*sBS}1U|4NOvF#4^`8xwLA+9pW=_rztCngHWUyXfD#>?dfNCek~NT^gCl{7Fe7Od zPD%*<|J%6!t1PZRwrFYdPaf3Qw#1`%T+7(V2tef+5Q#W~+9 zQd8rA_(o>&`GlSBNmYOMSk1Gje<Unyt z)I8I5Iswjj*L`PCPiW7d{8%$NTuDUqQANCAKcB}&vdLDv()5_$?7v4oOB-7P5^Pou1YvzUhip&2 zdfg83JN^Y;6Y2e^O##-F8pvo9rs{OOcek_D-KEKeW=laGDO zZ2Z*ySMKNL1s4=oH&?8>qd89asB{;MOOzhn9qU`Cbut#*9yx-W<# z4E<#sF-lmt;l=)YoaxMS6v{g!M1O5mt>G7wCx5Iq_0se}Uj?|R=9Ct+@cWlw<-V=U zTa>a7({9p3COB2s2ZrmNxE7)#&^`WwHIg%|eKrmepb@5L?Ekmvwxb2v6>$n#c9iVg zM!6<<1Q6r17WVwJI+w*!L_ZB{+!#dNKT=*)&KsdL2$u6-;Ntuf6NwvcU#Vzd(dfcs z8U$B(R{g?`;7W)%Q}2snKY>K0Q}Mp4YF8^{E`|q^kEjTGKDL$x1(Q! zY6v9oV-RRA&b{vOVvWqqo@P|~@YPueuNZGa;#}77jiW7N zxLaD3WPaM)P~j^aA#RB7Z6uW*T$YOm2-{dSwhf!x<(ZOdXt?FrPg@hXd{c@>H3TbAZg|42JJBc2BBJS_bGV$yOK%mWi+uoNs&=z3?u)}B9pDo+GYLHw@A;Y zidz1Fe)dR$pHMmqQ?htG&nR;M#JjxaO3UEIVy?wGYSDo3cJC z9%cUFuSRq@Ft)s%=1q%2E~xDv`Z-%<(;5nA%b5CfM9G`DHp}7BI4L))o_8@HKi#Jo z2+-;Gt1S{}J8#pp4epFY)~5F{qM|kD&>ud;|2HwFh44m$5Zbw0+E3PzNA;H_ zLCI;GbsxQFanYV7GeIDz0BbY*AeEV=ewyc>Hv}6;x$+*2+V^s^TnYqVh1UZeYjHMh z4gJ6jNq;=g8D}}`fbAMSpBW?bxAKfq-2S_R>{oE&es*i$$aH}p4KFawW%OfMjG5g4 znV%C{g5ef+*AUYCwBe1>Dp27Si7q5l-|Q6qkH_AqVQ1PRAq$F3gsmhUuE}I`5Y^he z^m+xZ>8 z9yc|++@intnXkdqn7BQm9xT>kPrJ7t+?BQYlgz<2w>~XrUeod6)X{ItnJe}dUrQ4_ zbF=jd7t=eA8`CuJgf4Xzc%b~j{`T970MnOzHo(yV22WQ%mvv4FO#$AFz~N@xCsBaZ zGJ*&&KslEJT`T$~e~=D{)(1c