From 04c0796f9ed44224e3823f4b307843d6ad9d9657 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sat, 30 Nov 2013 15:02:06 +0000 Subject: [PATCH] allow to relabel self service fields --- lam/HISTORY | 1 + lam/docs/manual-sources/howto.xml | 4 ++ lam/docs/manual-sources/images/conf5.jpg | Bin 71303 -> 76791 bytes lam/graphics/editNo.png | Bin 0 -> 965 bytes lam/lib/baseModule.inc | 32 ++++++++++++++- lam/lib/modules/asteriskAccount.inc | 2 + lam/lib/modules/asteriskVoicemail.inc | 2 + lam/lib/modules/inetOrgPerson.inc | 48 +++++++++++------------ lam/lib/modules/kolabUser.inc | 4 +- lam/lib/modules/ldapPublicKey.inc | 2 +- lam/lib/modules/posixAccount.inc | 6 +-- lam/lib/modules/pykotaUser.inc | 8 ++-- lam/lib/modules/sambaSamAccount.inc | 6 ++- lam/lib/modules/shadowAccount.inc | 2 +- lam/lib/modules/windowsUser.inc | 2 +- lam/lib/selfService.inc | 4 ++ 16 files changed, 84 insertions(+), 39 deletions(-) create mode 100644 lam/graphics/editNo.png diff --git a/lam/HISTORY b/lam/HISTORY index 87f595c4..3fbb4c5f 100644 --- a/lam/HISTORY +++ b/lam/HISTORY @@ -12,6 +12,7 @@ December 2013 4.4 -> Samba/Shadow: display password change date in self service -> Custom fields: support custom label and icon, auto-completion -> User self registration: support constant attribute values + -> Self service: allow to set custom field labels - fixed bugs: -> Format of photo in Personal tab (158) diff --git a/lam/docs/manual-sources/howto.xml b/lam/docs/manual-sources/howto.xml index be1781ea..2fc26cd4 100644 --- a/lam/docs/manual-sources/howto.xml +++ b/lam/docs/manual-sources/howto.xml @@ -6176,6 +6176,10 @@ objectclass: top used to show your users additional data on the self service page that must not be changed by themselves (e.g. first/last name). + Sometimes, you may want to set a custom label for an input + field. Click on the edit icon to set your own label text (Personal: + Department is relabeled as "Business unit" here). + diff --git a/lam/docs/manual-sources/images/conf5.jpg b/lam/docs/manual-sources/images/conf5.jpg index 6a635c804a3f59884369822a262f4a35a2236af6..65ee227a33cf1f972853da26dccd44337d17dd2b 100644 GIT binary patch literal 76791 zcmeFa1z1(vx-dLxP`ac+LXeaODFFcik&2G=PAB0O$b*005r` zBmop8WMpI{6z~fL1qBri6CDlw;M~5Afr*EMkB^6ghetq6afg7Aj0g{pA=m4ORCGFt;wB=M!F_t}7xumww}|hMkdiUnV`RF|%)`saFCh3(^0Ab(%oABT z)#qyJ8k$<##wMm_<`$M#4vtRFF0O9wesA9Tzk44L7#S5E6C3y8V|-eAMrKxa&ga~c z(z5c3%Bt#`=9bpB_Kwc3?xEq4(XsJ~$*IMq<(1X7_3s;-2Zu+;C#PrU7neWiLI99{ zC+lyN{fRC-kS;`USdh_v(1n2L0$xaX$S8L?QSrr<(TwZ}Xt`da6G}v+7B^wgajWbT zy|5p=MNH4L$Z+t3wBIQE?-AzvPf_+a!v2GCK z7Rz=}6P>qr(<8eM?QoSi02DUYD;1e4hxH&_E0~F~yX9mY8jc}l00S+w3M4TE;L6mOT&Ede(XYU?3 zpx~r^pb<5^Am_@uZAs{PbC~Uo1wn8FZl^Z`gY^-_;Wb$^&=cO&jrS=yvA=3 zY~jFOmDu?z_0Ndsr~C}&4+!}1Hq1N0fk!%U;A$5KCMYw#+xY!96b^Vb!GR7I#-E^w z{vz_Hk?iE_7CpXwA3_Fn03OWheiPMh`RY=;fOi>mm;>+B>FXa;CaUA&o))H&wGn zpE>3xgI5LMfM)f;Q&GF(Qy(X>p9lO;lG^jvuSab1mAss`U0Q6k;n%d1KdUend?q%= z?l6p#_|oeWrQ%N_!Ss`$*$@8JyBY2w`3Zc}=T)}TA!B5bH#;BtRl`n#5|3Nf$*C>S zRDWWo=udK}TlQD)TK*-o5JqnPIB$M2`Y#!sW)+J?uUvUe|E;X;@e6C~^U~U$jydJw zKHW=TWkLGNNugvNaaq~;du0^CB`;w87ecJAI0@Y-{0s+PbHjmy=U#EJ_|24a0x>v1 z^oVT!FGV!!)Zo%O7rO8i4qU5Io5F#tnrs;I032vjLaqD@0W`V!0}z>?z#|m=g?wp= z{Sk)pAEEyu@h3K>nCbf1@Ded*ZB@5J`95Jmf6`k&FKyjdv~Xac4_x<9!LK&uQz!WwEKp7LZ~hixLQ;BC2(^zOBr)|)gsOfqugIER7;YG9@{SRp{m?A7P`$s zw6t;pesH_iE&r2t8OEvXLhP-!Dbt47$1cix{o{56Vv%-!RVK`*i%-thMXXDPPHyWx z>*8Qt#eaNrxg_!xFeAt)kUXFZ2LdGLtj74s90%o$VzEN*bHIV8r-i0y zG`{JK-*6w5Uv>O1PcL^w31QJjP5*Ku9>P!E77Xu96HC(SjAScdsUbuKL4tYu211 zXXdTG(w^xmKD;mJT?^PxP=)4+zpE<*C4BzIoGv$S@*y9=hh^=H?&DYDE#cB`pRl@_ z{o`_OYOd5O4m}&UugWWCYemfr1NA04sJHAwy>~qp#4VRZsJ7H0?6=5-^oW>E{4j#vrtZ1EsG97yxC*jY0VA|s2an5y}YHM zvMlL$C8QE?B7|h$aV5I`()Pn6r8#|4F?RZ!^>83euyKa* zI5!1*S*`YfCyl1yUhYR*4x4>8Hh+g=7Z=i=(NwH%J8KP{6!5FYKY3Z`*+oZc%2`6;IM9nKGgQXX z<4xUmFJ%e+gmjk_HKW8-h)_9N;Cf(LuQH^3Is~mHU8T6#AGRc4EC1wf?84XJvpbw$ zGZX1zfNqTDWHh-B1oiTlJj~-^tQmzv8(xjK$zN;?XKE{D?Z(Dk!vXSyXbl#lB`@i5 zH3)xOjZH#^;FlDoP!B!XLc>ENi!qh$gU3om@$XWR&6An?1C|xBt?!gfYU|C&2&=Ds z&s>c@txZKnV!r51{f5ug6V4@K{blVT8B6@2r^_P5SnZ)+Y&zpKO8VS|!;}IlWH93C z*UrFOrsJ5{pnG28MfTjIIheu?`8X{gx zJ(NQFquab}6%{pRDdz5HPgg4w0&M8eaWPj&P&p&p9|4`K@fx9?+@JLeLh5%~H6RbC zZ<06LJuHz*gadDN2R`TOxU2FAtIS7s$>*UQ3$^M2UqH5^i>;IMlE>qK%s?jk7&zdr zDV>{>QJWNU$gYDV&_rsMv{a7@6S`Ab7sY=TW{PY-El-&2{`j!WCNwqOFrwCT!I3JR zhTKtubgAgQyY$-v%S%H)rFyq=nc*VQu58^I-r9nXH49SYwl4~Bx`l*NF3irizaxD- z|47!g=-4YE5g+5{V?6K6aTg4Wk*usEQM%mY&$Tq??4I9&1L88RC-aN=!u97PtmNeU zj&*OqR$1JMn8rd;>x&Z#p&7jR^_eWO^h_BtSlNfdbX(k!M zW#?2bx|7mhpS%)Gl}j|K&#zYXNKkHmVW<18MKalv-*o&yCVP5Tr~iq+iMll}`!RVRLUi@a!IX*5?e%@3Ue-(mN2zO0vyRK$bpmlK(&(WNgT4 zU&9y=okV?nxl07O7SFtwQ{$k>^fBYm&nsCH45072)jFfX0dr@s&y?+%L<82|?87|M zAM!`)&Q$cLr%(=Ojpyle-eB-Wv!?bC_P@%`R?fUB&ANHF(`X3?WUdS*&bDn&=AaRk zBm1R+q180tPqcxh%hBu+0+Z@ADIyor?ci^hslS%^hBxkMVS-MopbNz)6M?1L$%nx7@I)t?hVvcbyOKO z=AiP|Gfybp78a1)1KY;yR8uV!m_|9M@G!ki@+%IX6c-81bZ6WbSir~FiI0Thec!i6 zla1VH`{o!@jO@?j0;KW0c4onqCJcWjLlFp!eR1iS_*Uc{;{5?6~(?W}#mwbLbB@?$QCI?ImLdPtjrMk!_JdRz7Y zE4k8vFVkeqIRrx`>$wqqLYyUn>;f>8NF_s+{B|`^xLDswHxEno4yI{=iim3YjYm@S z!Kjghrq|Nd@$t5u3-M)ELZ0a&^LH86E{|%*bW#EF12#XfL-;ks@>0Mx|Nwcv(Om>(-*_ z;Chg3b(!XgOKr7I!K2xyceW#23%7e`R@!UT5|Gfw@iylu8>(tXY_z8~mdS?nJBZ5X zBUlfDNEU?j^yI>)t5~b2zgsu{=<^dcf#SD9Vm&I?vV;UF1-;!}^(`fSRg^3GVwPHN zenHN{QM0d2CvDX4$ut6-p78dNTa#Z^?Xm?sQ%N0)Bl=O1JmE((W2^POg;z#lZ$0E$ zEECIwl>9B99a65~Zn-o`Irk~*kqc5iN?;2FhSmVng zJqZ3}k$Oa8;xA12=u@I2VKUk9NiEK~wCG^!OxX6U;Bj8C0!EXVS?lupn%JxuHS{L_ zSd3M9H4s?5MoHZyGuGj~DT+4Uhb5RjJ9#O8CuNNT`FJkzSa2ax-6qNwx_Ben&0i9_ zdEhBzY3%?x&57GCz>Qk>>VxIS8fv+C^&=F?9k!{AIO;K~MBeA65UK09AjYXC4zo>qWQ(Rj?~k1(zbTFjTlma28&(0c+oJYn_5%WDXGyqTrIAANA*xDMb<9_?QXJg1$n$04*w`%ntNZPZIR=~j?jvLkVcA`al#0)) zN6PD8kOn(Eh4kMMI$+)cNajjBD;9%OP>Iu`P!@ z*GRob#m>@B{(SLDIZv(RLHjIcdYn@K?I(+ex1PpR1!Qel3)w_#O=ZwZpFlpD+*r%` z2#67Gc;7d`bxly)zkXUWYjLSpUiO*ZXr|4!`}$ za-nGvNoo9zDbE_U{(@YFk>Z&tSqCP!TeavT+%hq$WqDNgnm8u8Q&}lSxfAuFpN%12 zmUmV5bz4iM+cddWHE~}(qWk7!fzz$9!B_qMdVS;D=Dr8o6qZIUf<_+XA5!{D@dC~_00te|?RFO>fdp6!fhvv9Am za8#Rn2qD7Cfu%RQp1J|Sz@m;H^LgWyvg3DKwkh-ShXSR@+yY^*9FFcAo#~+X4|%-^ zWI~EN&q}zaSnin*x4yw>Nh0Sj@!ACIA&O&LJU!xv3o$&v$OY)2b>>kQ5H z!U9svdzsV5vY7UrtK#VP8IN(dAKFTXjLPHlhW1bsb{Hf>q*qcmOvz)I z$0`V~j^GPWvD1w~(*6J&Lx8Z$5f0$q=GfLe7S!e)A3G_+YL(#gnGXuinQeTf>U%5n z9r8X-+VAUBV$WjjYUtRe2c`6KXYEK=MR6nFP>HS{Dc!3rT138_?pPT6N0P$q7IkW) zLBq-`^2x;7G7iUa%=}%=-G~6z)?&t}E*gBng8ARH-;tMC%Vlf$X8dD5er@SEhpYkH zRR!15)~M=ck_YmvM)E7TjV*5%hPoDe68admeA(`(l+`52R+akeNosk75753YC+u9f z&zw;_@JAoRlvF6O;hCd91nyxhWR48>2>z3N4= z%&`?dmJTUKpt))fGfMB}>1IOs_48lFhYa>tmSt~zFc<-+PuL0KaNvXDjc*5RxS+e` zn>h6(O)&K~xLTHN+50eAHy$ig-*`aOf-L?~ETW9(jDM-fGG5UmO*5&uQ zt6JL|su*t{utcDQO>8~$42Grv=86YzB0z^tgrjl)p)HKPjOi059M}$0yx8yp%L#^| z2aZq^ZRmjf-ZeIuN)9Tx#e^hwMLP_0H-IiU&R^?MPZFmb4PC(jq%5$IYD*#z7=U$_ z!GYws`EyEsIB-YiR4V)WxB)Df+Gsql`Ih$oI{eh12nzcnEl%Enz<=?007BIlohPz^ zZ0P5~FLr+N+^=~`q*gCMt+AXxq-J^hGNe`C*iC`>sJx@E_@K6^i?rW3xNw#bAwe|A znm?goOP$K*W|~(gx_wVbpw-Xz@~oY+5^tI6xd+Cvj#l05nf8|>m)*(SnJj*{$#!~j z=y(HXNL3igVftjI6ks-xHr2PbS2Ox9q0zZdeU-Dezn_z48diT03~6=kh@oosA|A8l z_ZrI=p1rEDs=OaE=WG{%I)AbkY-~f-?54cUI0!L2a+$Si>6@=L%d`J5yKYVr z4hE0)&)fNygpIqy%wqm8WQ%C}Vm*tpUfj~{+y2f(?Fknw4b4}+i zc6|jJWv{uwnkKcPUrqiyd|?DxCl7j2b762mbO;VCJWjb*vj%m7*nY@&IB>MX0YjGk zQ6coJ&Hs1&q23R%m_OQK{Ewj+3;8iz(BDUE@Db_1sKxjBqpd$cnfn2yVnRV`)BI&_#+tIIunnR;FKrI)HjV)B>FUn_x{lOcBOhp7RMa zW689OItTc>Qh>v_-%U zzYP^Bp-?)&ghAYk@}S_Z0Qa1&l!H~!nAHJ;lPh^6fU*=Jpsb}Jng`99o!YS1nwB!_ zp(xdr7>W)5)hs+9A$N?$M4V{TECKddsF73Ub1a^L>nPVXXHaiIL?Xi?D@@B9vw@Z3PM_9#^m zyB_wIVK=Kd!L`AIHV%D~;G?%%NT^I-_#?yuRATeejmylCo4IsLORY?uhHaz@rnZe%yI+JFR@0%K*|$%UQu96Z zMT^;bFvZunl$!5`))KV*9=rN9(T&;+)?7ZlwjPoUojgkB91k96fMlJ6#j(x$tbAns zG1;#6^Br~yW>ZOdx|XU4SyN%`rkw_*6vYx+N-TE@^hMQ$Pn@C4Q1>*;jcBX#s6zx;%0OnGO*6Lg})ljz_8iaqpD%AEB%?T+~w zwCTRYS`1ObDK!D~oB0zs(4?Dk9U=3l#){*2uZwo!fG~jyC&*_16_n(_SD_5z4NdHI9 zY4x)$y_PJ7r}O+;g=nn;xUBtHF0o~1#?n%YtK@r_*q1T!UB{%*axl5LFGfa3;;p{> zqy^sh`OOskVGjP!F9dLV%!(M!je8@^|L<6&EpXI00)lk z)h+?1v_PPLfBgE*wIm!cqK5-RI_}f?idfK2#a6LXe8n4v%7U7MaRZHuQZu5DkhH0$ zr35&DM;}FAyTxLCUnyes&FghX8e^e=YR{DjpDHA@hmLCKKYIQD+r>=2cYc@xtFAo! zocp(5Gft6B&#hrnecZ4*(2D$qVxbQ8Z(PwG7TfCQxB=APx;sMOQA=IW3EDIVG8G^b zDoX+Xs!JJqfztwpA3^^mHB&#A0}k9hhi-um&@oTm2!fYUm&siRq@GUe+aQ8{u1MbF(Xy zGIBV;zGNvIoZGQs5I1_Y`AHjg;(siC*Y(2Q6}3iuNx`5Qb_a8Cvj{u0z$@%AM5251 zbd%h{c8xfm5Oqni;r>20ISM~60^M+kfR=^XG#_-4_oiY$Q$W2R?0N+YG=M3Ao6gBv4=SPH&Lcy2q;y%!mr>pGn@(Y3ue!QMyxS8#)xDr>f>SPyRIYL{-KeLKEU#UR&_CD&n` zfH0u-T7FdLl@^Mo>522qf%xJexlXH$3cqZiuB)jSDcI$iEc#UECs8~6+)YK|txR%% zDI%k4HF>bTAfbnV^X-!LzvQP2kMa-n`pJJ1WiTxJ$5F41XZpcAb1X1+&=J=7JrfSB zV&fd7|MZSt-*50r{lQp*amV~I7_K;chjtD|C;s?O;aZ?bq7cet%O8ap3|ai~m2n3t zs(wn}?Zw9bRO+kK!pyOooL|lVG<;%zXwN${C{y~*uvWnKuNc2;kv`e-MK6*6XM+DE z=Km0rgi>1yEcv23ini|OKOx~!$xQn?{S0*|*Di5%pb{)wAILWd?f|RTv$xFgB0XM; zUEpenE!C^&@js4T8tCEYU{#V_LsZk(Qs*_J{K}3&}coC4NUA> zf!d}T4AxjQ?j3*u9P9T7!rB#ap#0+MRR$EXPx2(hD(rU|WS!IF}imorCdt-mfX|@mhH`SKrB1RTU32ju7$OsP5cqW(9ZSTN%@rEc-sZRR4JJ zbc~-nt2Qe$Sk{>L+Lovz@u^bG5fWBjx&O%mF&bks(<$K<8u!D-KX%RIRkIHB0_)Kl ze=w&|{94V$*nMy-{yDLF%d_f6{1#_3!|)GhEbMJ9FP`o{S^k`LuG3!OK38~Y5%ttk zp}Hz~Vw1%Y5mk*=;nPb)E!P#QSI>TjBb30BQf8|j*5lYNZ7=v;JdY?T^MQ4qZ?+gS zbbB;i*Xcz%Uxc+`S|AJOTSDbWD1W|83mY@}KD~T%7>DmBtytQ%ve(adQR`Vh-JomJ zzZX|T#NPP1BYlHlQ)PNaR|Y^C0&2f#BF=LHO#QO-00LvCeFbsNn+9_Gc+YtYh|W&h zw5PY(K&9J6|4u>$v^@AAex*pSSq^U=8d1+Ir)(eF;UJ|tSTw9U{GuTgBURR++;ln- z@sXg)bH89;3}jpx?M0Z_<{6oc-*)_cQp1`NmAMVH>+<&j z>NhObll(@5U|*)SW;gvnRcrW!P)A^;G}di9;#TeeMKO(l;9cKh6%U{4{=vW~<<)VA z(Sm43>9U1tuh7f6%W1_UZT*8;s%0rcRZ-9XiGB2coUNh~1(W;&?!(DXxx`nS%4EEL zX9SuiT4Klad1e2ssiObGR0)Iwzu79`zuPK-`v&jE#;%?xXqT|CiqhAN@=Wq4dY{q} zU*BI}iIi%w>$eL>-*n0oVbLt+bNA(mAjZt3Ty``Xj2Q8krpgu1i`GzSoz!l%|KJXN zC(QqXweCHmOG%yechlre%Z#HbVxP|bZLNXW?M6;v<0=vkVgALQJ~yY@54)K)_#J%h z^(otHkCBW&@Lx#9S%tURqoWnrD65?m(X2jz1B>MQG-HXqS#lj*taW`?N2FHp!I6E91y-_ex@6prxi+pHq0jmAJzrC`gfxsnH%aw)`rPX zIqXDw*tJUOhssL$o++|#+kGbp%P`1*#_=4(+#*pmjCi}M%p8LCpJrJeZ)7>e~L_4)( z>RYbHk4K}_i$hO}(kmk;@70X3+kAZCENwz%U4i;SGIU~@RPeh+`j)^@`HgF0^ZF)Fhm5pQoC@(0+@2CyHtygIZtz$?vqBRYs1PFijV;M) zsh0fwH9dM;_j9~HSPp9myNC4RlOh+8-hC{_q(s-g>MEGm4|z)$ zy7YLGr1LwG24iSJ)OfOj^Yh=vhnq+FBV#mDv2TuOhPha;dJ>@q&*}h6bc}Bx(`S;u z=L@S7dQ*l9DwOCh%ZTw$AbXm_+;#^plVSQ|ll=pcl@|Hy&$uhOCUW|fCz!K}vnIC4 zOfGFQU&isp-L7~tpGqm-xq|zMCR7{<##8^EM`*G%lD0j#6d%_-K-}^mDC z*&3uU3OEoR+6cxOP{25YCW}?ErvP-xv?%QIJ?Nn}>8P!+HxwP2^@1zo3lMdmTLTBg zrP=3DSufS+k(xV^PnPbnxZQJhqt_f%qf>Wg-OUBi3M@1z4+3lqn!*bbizV%y>S-kD zi%IdQujHmJO))cl1UfORHzLO3H4Lr4Q!x$k)_!DrId#eMVYv5!f#n&oeRMxR^V9de z)in4BK*W}gTC=tLoxoxFG2Y2?4+Y6qzDtJHtjHQKKkW=#+Pq^o6V|q+AhcIVl!8UV zRqqrO5zjZuQt-~r4mlS^BzK(Si9;AlK0Y;InR#L!<2l+AQc&K1$|$fDtvaD0av6At z6QobE9~)wx-b3F&IlNeD4W9Q^Fil+25EFqU9BG15eR1byuzb>xA!k3ei`ZKZvC_gi zCv%8-ny#x&yTZM3Ew4SSrlY5wSx=(`ByG6Q`UUo6*yC;|S4+9B`(ATqpJ(e=+LCYJ zZE6&|(n%6D<;c{r_K!ChbMaFdGD|OUaoGjOH^-knZrpeAgIvqlruH~-ykX7O>2ou! zIhsvhW&4E5KM+yCcWkCo2dpV#+n3wqcH7in4z5> zmfKmY0yDT(_FR0qsNy_9ee8M`@yL8Sy~2Qn_|V)o0@JNu+Qs}+yI>!Qr%1Zh!-3XW z=?hc;4O{Iwq3?9&Rb|pcY)EAQV$*)dZg2&m!)qC4_t)Ru8#2u^wHZc_{RNVjZkyhf z?TwO)kQO*`QBI!h(=AG3+o_{-SSV0cga|dq`zK{u)eyDyr)G(V2!5MQ>(#!;8X;Hg z)?kUoKu=z^;BMR6qW~uJ7X4F)ZtR%A7inut{8)K0w@|v()z^$y$UU zu6s$jq1GCGI#*RWC`e98)sf1eq<)gDbKA_?8p~}GoGc8=N+T zYwgly*$Yp77e0KGD?PaVmC)v}g1LBrrkvun!&FXM;OoEZZT#8$_|NVgBF-Zhcd3-K zAM=dXU)@PMjas)ostdmG;M+M8o9>^pONlM#Jsl-@l63sMGVF-R9Sk2NXvL`E1ay>skG)wbA~a7 zDWGeLv-*qkG7UH8I&v`CBGf_%BBzKlrN0q7z&TuwT$`A!xrEo5*}3JTX-r$$OeMwX~sKB>WR;D^aY}T~$sULl*thy-JDPqfteN~UTCW{y=^6Jy; zMAPD^Ay->nKP~^~_fI{xRPc94DwYW-7W~>*UQ!mkPQ-m=*ewjEhrKz!l<&{QWLec* zispIT{=k8cyOCu>qGmtabaL&jOVD?XFnsdan_-Kre&)!EFI-!};?hshBvL*09)i5R zeXdS6P-s_WTHP_bItFIX-!%qxjl4R^eJ)4UKU2dyuxI~$ZtGdY$>>h^uE(fDrS{IS zo&r&@sNs9gyGC4mgfXn%PG37|5F%e$8)#Qsvr(NMaMs**W6%xV%zy)Oi#%Ib)_jqh zloC7iRZ1rGsRO-zH*Cl)9C@@3o%&?O?#TU+EvU z4*tUw_`k#|m?H;!57Gje-~6j0>;F|h zMDkZGim=g#DU%&jVFxxsF2*)D)zgi(J&oiQ*VP?F&Vg}+XOap9zJW}+cg%?gOS zm)1cLMUCMX5tX-fB!NINrPoU@Q0?s!F&7L0G`kGTv4_$Ls7cv6nf3X%D+IhOT;zu~PSH@F&&SjeTsK`gm8!Jb6$-AXAkdj6Jde|oK#)?3DR z!aeV*AurB*7f_-1rX3Kz5v)3Q<;9Ce$6M}yGHz98Jy4g=MPrJZX9e^RiA5kPCXTyuw9kiM(+l*QbF@e7{3(VvW7@XQfVnNVSX zyHCM_rb|KQ8>R8a|tZimeVk zFN3wd56V(R62Doxtp^R|4vRNPR}%g0EL(APWo7;tHkeEUc6JoEw3-E#Fntp5Zwysz zfqVVabs*{-laZR7K;wlP1FLoVo3Cr5l4$_;Egk(*N%=YMN4q)J> z#aiO&Aw)dDVIra898nXI{~B+!-(Q=xQ8HJs_BpHX1qVm@?Vv6??BH}9?pkJF@vk%# z8h1SwS+4eOpQp_YH^=W3ri;DfaNN@3HNfw3H;pwx>ItB7!^8VXz}|*)yPZ2wj#b9e zX&DaOp4MsNiPPw<#G(CKY#GNToJXQ^$joXQPeX|lk2>(db7r(awVjG;xPZ+jt1jNv z=F=Tc-lU9itv5c8Gal!wJ@7s<^cWLs!=ha}WqY`+_{~XvD^Kc!xI@OK@|2!-DHDLh z89~MObtbd;kfVF{Q-xn!ywnWY>{{UEZZ^k-dBfDEbmadM$?v;0^TU=&6_+X%~`EeW>7-2toT8714e}(7lg&3by8pwem6*!{wRx;_X zfK$lG^3~i;!VZ;9s;POY_l#HC8WX=c+U`Yd@jOXqzYOJmqr|wUAW_if!>5_)`&oXO zHBvlJ)m^n$&8a;xrSD18Q%O7T3TsFna1AKc@0YO0W%uOhHhtb0e=)@vLiO196eIC| zL=1NcU%RGxmL*S-A>T=eT!+lC*@zR%+sg7cSi4`7GXQ`hQWih}FMDfj4ytp#;~nXn zqC%Q515uG#dmNH zI}RUUss;I|k%R`d!srLQ-_vs`;hYUn5IWwnwCr)X>rYaK8*FVNa+V$ZUc{=kZB+kyDqnIS?uMq?RCl>v2G;cumn(wb(T@2EE+f6i}2 zcU5gw+9DpWoRaD*lWga*dTUcoR2u^c4IS&=T@7Gc3$GOy@-PLg1Ye*Tr-BKTX7{;t zNcKieLZ8T>(>te(!Ssjs&4WB>l$m{GgOe7J!XH?{5|+H~D34MrlvRDq)|=MaF%7-% ze6z={t`xc4&~CL_mV&iK35JY$c*gIwGco7P>X?k<>w%)Iss zq{aawmO;=oEq#lJ+hOUCHLji=wc7Vs?9y7i3D+S_MC|V6E3#oERXAHiwvn~Rt%{S- zC87vP!(gAU!3)V=n~Z(k7cLYKr@rDSQ-}PvB#8~!D8UhL2Iu}on;O9oD1{jse5)iPT%1z8NN9gy*olp?Ii7xL=+K%g#iry{2@g4&iRzlP zy#}_Lw^0l3!|^n6LM4gt7BVS9Dp4WS=3%d&;(eYEyb=!}%wtZ&@wH2b;-%qYEcok?pNQ!J&Gr|$0 zzHaAdJTU4GcTP0)5vK`9@3)RE4(t~ZtP^C5?t`vfWDV>@+H$P9B}0>vU|@AZLf=+O z963x*^Rr^|eT&+QV{r-2RR|n-vdeO(U7xmme=M>x4&5}?QmVe}(asTr;S-cE&cQ7B z9>6P%ul!}!{KLl+1@txX8^a8lF_QuGkj}BI-Dx}{I0&bpL-+6W*gHndA;%W<=gh^ zB6)_xJvUZfL7Ix-&?ekPfWkP^u8S>7qYhLCi$dB z<|@`ypM@2!eYxypSC@9;OTKsJi;JlPY{3Ea?i1DF0dvw96f~Wa!HxnVRdkG!3wL~X zU-E)`%uqb^xYp+6A)*)!mZkwKGWZ1TchCWWixN#k25=zolTaT%s(n zHQ(PVsIe*=n<~_iJ98FEt|qK)7%eC7EGSgNLhx7PD$Ld2Ao5zH#JWP&iiUu(t1tv9#Cq zZP$|^x1u1Er?+>SR3cXJB^Qg2qCLN{$bk<3n;_Zu^mycke!c=l!soWRL3?**#W5c= z-I|DWwMQ5ka!DM zDR4iwq>Wz^)De>FU+@uRELuDtwe{DIIe`VxZtB}k8GB7eoKXgIr86ccm!k#0s2Vvj zGGWVdO`8}JRH0+Gm-CxRG`vJQ{#mRw;?#rJ%>}EX z55m8HdKdAhXsa5j*oqk1jXPK#4b}#Iy7h4V+BN&e6O7INsPX!-2SF9qUd5B21YD*>cy3S*s6}NAN zqjyJv+VR?2KV~pvS(%|fsRmR#Z^8QY5?Wbu8CsTf#Qc0NbP;i)_nzd7NaM}%cyOS~ z)8JacW>B_GWbl?sXm9_JBOAe!h?Su-$it=;66cDFCqXz8&oM{O)ErHmF!LXXlOnsT zekP51UW%KGD$D3|KNEt>H<#ZBR&sbe0zDI|k8r>z07hih+}zwm$@;ROK&@X>691F& z<}1O>*voc84z|@gtB0j>0Cj<^t?(UAjDodLivgJsKcw@(&vH6^ESC0iOljf&k8J#Z z77zRPze~A*en<&O(0q4h4tUn#@|eLH`GtxHLe!$|1+in%<>9*@`GIt;IdBz?FqZ@U z873&0AK?AB{J{IzZ7|UOE&NY%_D`oPz<&Ps%4oG%(8K&o4&RK%O0X!dxN*tI2)Pmt zfd6Vk#$TuNMa&U%38wU34Es?`G3bDAR zm*$e#V+v=|E$*CYn}s>#wb^D`2e{G)qM*d8Kc|w%?|k@RWg#i69!X~y;uJ!B^`t>% zta9v7=h>%)XeZ_tF$wFBBc3cvYz8gbyYC8I3o#Z)%BqjQdxkuCOnZcz9e)uKF9RH_ zO9>x*3w*|5M_4DjTyHK3xp#X9NxrOlls=*J%BFnfQBGiR&fx_;#=KkWBfLYgemm`& zumIk4#~SaD#qTywO!>48^%Zp^$W#(?ddf(&Pbhn&XqImu-t034a>C*e&6qkrQaS3MEMN?-*YRRqHdIy+qNhbIP~64CZSf*zaq|q?n>iE-9U}GBAA<>&0phc7jjAO>2YZD=1}x5_y;=psdh=XG9$35@N( zdjq-VbuZD@>tZW&zn79BMHq0ztWA1aZRp0zh(tm%Juhsi<0;VirF@WX*i+J)V#?;N zZMyIondZmlR?fAikAT1QfZ!bVNT-m+*`wM;4kCl|Al=AiMJb5rddnqWHU#pjnH#qz zcB}72cfLIO@>328CCtL5QHQ1e&mQUL%<|K>w`xhBr5YjWYU^OEJz1^uzb{<8xjNtH8o&X@3*R_jcWv2(hTwxP?S}?!;FP+x_tG<4B`g3oN+PcM775b8iE{_ zu#m1q`!89@qwC6Q{oNqFokg~G6q}?-sfJGtDIRQ%#U_5W8*8`+Yacwhak+A7pE^6$ zk8toh6|t6p^}oH&oImV2WomE;MyReb6MDu)ndkZVfGXB0rTqLJ0~udpeEk})q4Q+r z$B@RFHRw#wRl}WCIH1*8kfhquz&b80SZML^?ESGUcs>)?QkQm*R4m%tRS91S{k2D5 z5xsRW4~{S$I0A(!Z@`I!VQ~G_djR~2`kE>PmhLindXsn7=xQ@C)v!nHP$VqWkwYj- zdw#mt)aBygkg?G?85tqbsYxx{%a-EG=ip-B1 zSRTIIgz2CKT@e*F7vd688L6+7nouWLqO-UzFM`pY_Y4Olr3YArDLC)hJcHt*;Q0=f+C{*RhccduJzQt2+_A0 z+Im*nanq!bl@W=rpRM_$xB~{M-S?OX-(L9nwOP3ix7^X5%gnS=fA}`3U@U1JS!Wuj zym`)0NyqG%R%-I?D_6{AWX}9P@~<_aLFp6sl9otPv`S)cVqu#ty|Va+D+9D;Pd54& z67#TC1)8QMR=*Hl(=97NmG^G~vtlUc>Y*NaTvK{81tm?k5cdO!%VW=ItXrTHypo)i zcdppsP2X5P^s?QzGCnJtul&AFLV2amlO0}!TkWfOrEelMUZJu23C?I*S0<(vP--dje+ zwSMWoMIa$)g1ZEY06~L00fGkz?h+(Gpm29caEAcFgS%6>y95YYK;iE0w$Ix6Tkr03 zZ|~jR=Z^E?G6rLf1ymIbYQ5{7^Lc*HbfmwtH(DXtcUo|V2)S-R{W;bnRxc~6y;NcY zJG(L}2@H5uXoB_B8<6xdJgl8pvA~;BRZ!?tZPpzNfvE!$a=9Pcsu>9dv)sN=U#rA@ zi^!wRFOCe)2)Toxx=xFVah7@mEVT04rqRUWo~M=dnxvK>JQYOy<5Sydl>yk#M86bKs@BMlDSz#y}Hd z3i&e=ojOiV3U`Iy+1avQ`z-9$q1@J~F9etI@%WL>o{o=8np_qc$B@MP+xi7Cr6|H( z&x_1Uat2o*Qvu%lEu4(NUW0o7LH}l?6GRa1~Gx{sAkln9Vb z%!~dM3Cr&((sOacS*=~C6EaSD<(gb4)4{VDAfBbsbCKn$bvuqxg_gHhPFR1pYz>!& zuzR;`%Sv-zTMte%l-kA3D&*9U6R6hS-cCv`f;Z@)cFgfWaCF|>T{97XvJXMpMD9b6 z=+Uc^ya@st>uWIzzxUVIVx$FCXp||`R z+Kl1e;Hd}W#tAE@IT2=gJL!Jj5!#TREAG`gXgcn~m0r(+^K+(QUJA*%JmKU zT{_Pz_7j8rfqk?Q&dbO{_bYUIo zpvY&sx-PLQZ*{HTt6`w?U}^RIAnkc{mlKRCO^Oa`dh~;Lz@vac+q?1RZY1Xi{nFNQ z5$}-P@WSv|qt^N9`fl!BO+)<_(n^(wLSbommYi1`Sz0r4v(nXPnmIlEBw2pf0~+m6 z!_iJOnIGw9k=_H}W4NsPK*vd^WTtA9>s1b+9a>+@s=t2xY09sS9Q~~U7WZxAv~4Pk zT2vKBz2O{MV>-Na^b8MwV!~5PKUq*%Zjw`YU)DlU6!vI^ZD*Tkwhrl}lal=P=ZGw# zlH|p!(_d6YJ_m*HEoSGw%&zcE)~Q(JH?Gl?+l{>Dk?GAg@HM23h&EE@68CF%YDq=g zWN8Fo3^}eHeTQ{Qeb-C&hD=z0T~&xMXDHl%IMI`@X|%5__A-=jEz-jwpA+UOsewaS zCSEK~E?{2EKhxv(a0o*DtlmUnO!9uhYAs~ziOU7icbD4dO-npTQ&{cNh8Bi9jkRXI z0}T4jwN4Hr&s)k+pPzd*3#~b-0Ck)F|Gydkj|F4JZy+3n=kAMtD9Rp)oR&i~2J zS8=&TdGm{MCe}9OF7|a0O0MyM*{%;4F?cnx)hVRpulC;==M);5mvn?MFgf1SLlKQ> zzt+VLuz98_(0bX{4#C$C=1*3goIRRdGL^%;XblwYW{AK3s(05)J#3#Qb_WJ>-YZR$ zN;;dPOAtvG;z!FeyRRbWgP$u%=jv;HQhTj8^X{eJd#7?F($9WR1&SU$ePttp^!#bI zwK|4cj8cka`uRM3({Kn^@m(8TW+Fq-itAG_RXnBRihusI%>13Cpz#voot3fGLA^#9 z)89a%**~G$x*yy0W)4p-zh3(cOX_|3d_|ln|GHo=`Le{_u?BWKpt80+9G|TJqg5PN z6&one{}NqX_o^|aZ%C#ff66McmC?Upt5=Qc|E&1j|JS7GR-Q+!pFis-s8osH>8ek zK6F4-!b_NjYS(ov6AHG<(bOf7Uylmd_~g6<<+^dp;)M;Iig%x)`@XS00{4;RtUp=pFM7X2TpMgnT|U;NO7oR<%gHTf zhf6IQ(rodW6{E()vtoq|E;)4Derl^r8{EX6brt@BIGg+N5++sr?1_cBst#y}{H5CL zG?C8IlCjMz46*hF@|LQqDtG#lrAi;|H}TH)TE0&~Pb0q$*0UlH%#csmGa&T1*sC0? zheH|EYK{eaKAUp;bCf7%RaN^*5)i!H1akms951QgtCIzwo_-4qhVEN;l9M(rDx*B07F|4+=OGs2#_EAM6AeM=^7xj2K0%1DI}oEjaXOllYxlxE9UQSoV@T$hxaI-W)L3DY4;_ zq63x>_T&x4WBtPM!(TNB+UFskHt&5r@G?_sHF*= z`z#$^6hBwuXY^Ie$5;F`@pm*SrJJCddbsvAf@`lC3v(*%C&ul9Nb@>+j`1Ux75ro5 zR(KB?p`jX#YvZ$1cmag1RXJ&FVb7(TTv4;D%K4Lhd$^joOLoU<{h))*A6@tF)NEfS zgP#|xxfie3>odh6CF(PLSQtv#4B3MS@MdXEZ#k)5xHFxRwayf5)Sqy*9kGDdTb-%P zhSKVH5DIU+zc`?geQ>mJ=WQ7a+kYB!ph@LZ_aaP@9XBXSiXYDf?3}&!jg;HhQJCO2 z&_@s6sq;uYg@SaPS2XKcn($s!2j{=PL>l$V-(sD4rZODGfpZgsJgg+FA>&*@;I^_HiIarUO zL%Uzaeb-Gz3nmL`Rw%)g_KjOb;oNN{-y(hzTQ-t4Gq+uPsUG>biA|=5o(YeONYO8P zll#2{$|?^vcU#K~m^J4Db+t`^5w{V4IB-maX#buf5m?FO<9G2>X_psTAdoFon=!rj)Hnm3q#t+wpXlq~Z zudCNb4f32)J3>k~Y1nIhdl6AMEf9LmZ(2j{#EZAxbn}AO$BpW|u{f$a&5lKDkxLcTDlDR>!@lovpw_2#Kqw zJY*X1W92E+`PoFfypK{m9Gk~fHl5WFGR+wA*4&xk46ktyk*ng#jFT|CCLyfT(uYz@oSk*OnF|Fj<|tb^w_(6kNlYLq{*s74l{SKiXYq3GQ={c%RTGrz zoY^=cac#f!QBWZ%o*<@J%}onb>}ugEzW>v;E>P#T7td`MS!XskNS*ld#yI(hY4ASX zDOL@hWe;1bK~2Fb6MwrpLO?KKo51jHg~{q+ayb<=ZT_>D^D^N=oPb=aT1c!9wOnGW zP@Tj^gfcw)^Yn~o-kyzTZU3!$e2a5zYVz?ZWQ1qfHmPIOgWJ|%)&qOzwSq}5#Tn1k zbas=(D9g9oKI`aVo1)myZA)j4LtpZEBo|NgVIxP}UGi*R+hY0?tD|SZ=k$;RW@?{D z+aTR(Mg;3`KDegf7!W9StX>;US5zOPUQWomnychu6w)HhZVGSOGj$q*3(xkr3^{Z9 zQv@1CC|f4*jE)RlAW#qik)ZBX4|%N#kr(z=Ygt$l_DL2HZ}JR@Y$N=%jfilsq_kwb zGaETn+0-KDxg~6bftYMkc0#b95i2j|izB0wGlcsqwPKj=67_a_35h zmTi;a0W9JCn$-JC84#l?z>=pwzrAf;AdMcLH{IM8w&<@@(7v6%J|fBxd_}#Y>#TTH zP`rH;!jxjCIVf-;<*#ZQp%Fz&8r7~*AlRm}Y1TFSKLSV?^2%Frk1a-?-+%JNQoCS7}Y+qu;qNxC_iA#qM%oz+gx148HrM+p;e-szSRI!McZ zOHi6i!&6!i=~W(HKqmXN8D71+uijZXvmK5)e|>S%yD6pkEP+i*#GqJ0H2UXxneapt z(eb05St)!^EWC-byDuLPgm?X2H6vJFXJ|2?h|6_Phv?km|tve+96LS`%{#N933-NCp3+H zaCVT4M9!a6kG)E&^3Jj#NJ`e1GdJ!<#b(cM>7o{9C09^RgJvwJGH>*_&m1g6!}E-% zU&Lj%p+!imKB#_W{klC>5@gquXWW!oqwfjlE(o&AL4BN3>fi<|6#;?EBj0Hl=^?O`u)Z4 zA&BZ<69SHb-7)=pOukkX8bHVjSbS&(jz3q6&VGS~QEmWs*hO)}`OAs7M&5dUjQkM( zPvnFQFqftQjy-)qDb4;lHEDR|{2=OfdGAg85Gw`{Crpb)cQaK$>H5v@SCPUX+@&>~ zzI;z}E~g}IR3l9t^sQtqab_*rNL(dcbGoV_A4Fb_kRfjPXJ`@?PJ@3I#jmop!oN0j z4@bp*yqH~JNX(q|(pWdgBLNhV01+QMuG6rv?iD5r*`teC=8_UUn$$1_Vrh0iRoRBj zO~gjFu-j8{pP!jk&}M6yQKg}C+3EfGivtD*$c&KX7}tbI#M%SdkQtEspfUy}VN#kr zuzY!%DH~jpSQFP3H83hwN9o}3AuW)Ih>#PPZ#bPf?@1Ckj)j@JE}kx@HioSqDVVh6 zlx~S5`175}XXf>dP~dL_3aDS7DwB>ROw5za)*B~=?m>{ans@+usF0`w{Z2i6=H(&c zwE8a=|M>?mLl#h&nQ5dlf@S-u%T>h@!7(l%%rl>uknRc?vH4^vqu$hj6N&|Y#a!1B zQqY^%_`=TMO&>U+Kffw#0Z~zR934+1aIe~=KBnoM6UdSeGB0w!VBz1V9bVjYB|5o) zz&E^WQ=3+Wndm3O`RyG^KhQ7qN{ZuYtF%^+Gt#uSrW(|KF`4soO96q_Vx&OmF;a-& z$ymaAj+jQ1BnJOvjpLHJLC()x`1qF;oXybn>ak&h?{oc>O1-7H&)LIj*xVE_cB3p< z2mFObJU@x*&c@Ff8l^mUnG636Eob+8icTa3E11-Ntn}42HQk*b4pT@_^~#0fDjPdQ zaK%Wfh!ZjPf>1FnYu&^jNbOVrKZ2x?3{@KP&$l-&a$!{Rr);L*3z~0zf+xCw60Kli4u3T z>Wx4pzTvU>=Q@Ol6j+*$SZg!g;Za(~MWY;=M9j>)T$Z>4F#ABur{$ih z*-dwx6x+iI)q-g?fzKn-Op#f|ZvzoEm%6 z;TyVr;QYw4?8x438JQ+rb1Q+Iq#{-tI;HR4Y2z`@Mjs0vehv@2KaJprl`2XK`5N^K z5G;oack`V$x-3dXDm90;6BDLkhzc%$bZR~&imp3FP~ygljtw)O!i6;eOY!F>66+Oy zPfYCsj~6C<3l@V+u(W*&dI;!4i%0m6f%XS8!1ny?C$8c!zChqI$3=p^K?5wO_M6<& z2wLBm9$VDq6N@UWLC2`UDr?VM+hK;Xt44Hn^5?a+X`H}lm3cBULSwd6nd#@=sJmO) z>m_YRp#iNER5j!0gd4q|9m8p5u=|8pS4<}%GJ|RR7skF-z`qZZLFQ^}xA5&pe7V)- zm24CrjH3!ZA4H1YwfnHsJDw4@3oZIn|48JcyA}fT^^pGkwd16#mCZp(%XymCi>kz? za<31_F<_?JwfRP2u1}MRlSq}RINld!7tY}=-BpLKzkz0tU0p8cLoRmcHqpp6k0Qu8 z1*G}Sg{Y5))(rbwVCETSW7_mz8zAn%=qF`Kb+*u&`h~7dQoV^Lre&a)>Y+c?8^n>U zt3)Rtm|JW!F98lCsB0aB2w0K0SY^>78N)J1Ws|l2BMGi7R>Ile^2q@}u!LB+-YX`vC_P`}s4PfJB6PXuSR&cPnkFD_{Yr0VnF*~Z0ivc7^PzTwt+FT4 z_7uCQpQ>zLFf7SAGgr(N>%~`dzTxZg;Nx~-`&}aD%BLj zN_pcICL*$$62glBN%TTVO0`rxcE1!IlPXf;@*vS@YJK%^^taNvAZe`_lPp(_1d9kG)jpl z(WPLQjK1E3)sJ*3*iU}4q9B4+pbY645-O{Q*0txS6SGip?t{JeFt~~wmGh|5g6uk| zr>fvpr_J2!dONs%SY_BM7(Hp-;nvX`g`hB6Ja8)FfVr9b4(EQM|Ah1$iYEG{XI79zCIwbp6EP{ZDLDer&O!> zi*n}aRlT`?>3iTjt>_P$N<4&g*TUOo}o_ zF${VHm)HiY5D6T|GWy0CD76CP5BLUKGYgV z<6rHh#&uzf|GFK!%RfRI6-0EolAZLLkp;^zW1>`2G3jCgZr;CV!vU@6^>~}SKi-{F z?1TO0RUTtTLj`%8cgpx3t`?cZ!|d=hQv(OXhye~>!Czr{=taYcm5S7uPx8mTLfFkgHQwoHnKkrdXjKbaZuaaV{cmx1y`bq#a@NY#0-&sC@-2-&b zTiKNl;<#$rKu7;S=GFWczlIBJVWRF^@7)Fg^JFi8vA3R305wyYruP}o&N&F+dHz*J z06N6K*+Bd~RxMC?jS1Lr!S=j=-!n|n{_z|ZQS0@0iaq0RI-(kF_<2$Kvn`5Qe5cp? zI?d}j*{rfQA0*sEgO-$ru?BpMk(L$YztY%nZIuG1D9pm7rO`XN9P=BKt{S_AcAB(I z7;Cj6hsDbcmrOd5IR57%0>?_-tNNHi$pxR7oNX~`k}WTtnQV;&z@j0V+2RfW*(>nf zz@=AFAAY?`&^x@QA4XQxs z;x1neZAdyXUvBWx>6&ti)%}Q#fE|rpq0)XkFS*AUSfnkf*GpF0ia(}`? za+@I^8&3?f+eIgOU?C zA)W~}&|~|oC|{Ug8UiT8SzDQP(~g3wKavV2Or{%Zr~T6tC}OMjy-kOmu9Iu-7QIOt zjn;G2D)TJP$@r|CD`phM4X*~f)LMwg)J~SsD~IT6Yl6sHjEhk~HJGFRh6)Cl2t3GY z`}s;aeB&xhr3*cic$*bl+-|)y=V;;fdhxRB3nv<%>_i|$WPUF?Ks>$R)fnxUWiDty zj8{*I^KwDia??a{R3Gz;cG+)nehK_usy3Qp27=N z)WVmk#tc!AB&I2sB3`8sI~mq9;SFD%EOQKDWrtVy_P`9@`Q5LO|H}f>aq;Si;%_abW|eXN*ecAdP}xk4Co+Us zyn9c}u_yieP6A9Vl+|xjdLpa30s8Shh}?)u0ODIOYqX{x*C+x(4&?}~<7^zlJD-;a ztP7PDEfE7|Mp9N8?Chhk_GHS#Av9Rx{~>uapR@EJ)YyLW{P>WSqT14NByNH;K)?5zbB1-#Ol2a+jT ztSthkw-#DWIM*1kXTB3=wFot{ z64$1S|Fh;*Y%k>)wp8n~SJ;gi! zx+3MG$E8d(Gl9Li?IiK6m4G=B2%7BD!%tjRAYjhF32yQcy(lRP{gHWi%3Vl`XQFsg zgGTm!ds~laa!H7kZQB2qBJ><0vw0chq&;+>wJr@yxjs5#lQ?+O-kUM1km?^vUpacG zoZ%8EF}ZToHJhzAeigcpCF1yKAlNxS`zM=gM4>FznqMa(<#Ks;{gGE8BZsd1rQ8(r zhM%00Y`C!W-B+(foOF-T#*6T1eljq~gVQC6e_Bh+ zTq{$7wBfU!fb!hD)&Qc+T4SSST<{uVbPQMQf};4#1K>KL|I3-ks=5kt<4`I5Mdfm6 zv%j`muPtg{M!Ccr0|^@iq4Q56axaV9xl%_r$w`T=ar9F&N`$QIQvC9)Zz!XrkW4uTHM&j7Qx-_$2R^o*dW@T1^m8Yi z3XBL3163T0_t3`q$YA(yAR1>}<)T1Ua30J$s$j|{G+05R%2QY_WK6c8G?h(DQ}-KS zUo;7}L|=L&4FXB;>eTk=qwNSW9K~pDvt{bd%$3Y3){@(*IMNZO(7)(MI*vkU<0UJ> zE2COp-_j$&Q^wHa3Gv3&9bG0TJN9o0&zQM#F|!{uqLL=BVK%06j&6~B%Eo0xhWX6u zY5&iw$4iaL7;cw62zs!0^|di@1wZQ~O+#0#t}n;_9RO}`8Ba(e>t>a=%!0b(T&e#_ zk7(4|D!VsPuscji>I#HjMNbPtIKzV~eLpC@n7({ne^Vlw^NQnIS0Q}iaterP0}_N^ zN%bB_K?nAPY>(>ho>lK-)~ zt(TRrsky^tZJMv8Jr9=-KN=x)uzW6|a%A&H*x#7j&x5cNW0?#T>B$Eqc{UaIvh)~! z>T&T9%Z-_Fgn9owDR&9uq=Raua}O_OSW5;>-3-2)T!(&{zmFpV!%rzqkbFFOi(swC zo4;}hl*Ea}iMz31QGp5zS#dFap2?7@0ttd_tF@y#+r z{6zn%1uIebCKwocJdpk_{r+wGK{^np@Py?H5J8|e=KVL*SL#O>g$Hp6?cYsb=CB;e zE5+YUU-~#eR~QQZ*Ea3HALRYVo~+6rtFQb=5ddjNj`+|*3D9Z<>Vki+PJaUqw73#q|>@oR-rdAL=#llohBW1-6C6 zw!=M1=g+wvMGbLJcZh5LQ-LpE8#14~jpC0F5$PdVznu%wDaI@eS;{<~swmoFoxM`% zG|6g`oU1o zkNmjghR9g-v)4A5@}gzb8v@HG<@F1SI>KL?RJ~W2>}10Q@v3iudUZAx3hjLQLv%;G zj5G9A1tWDhYct9lw#HDk&4@!zi)X0w^IP#JBQ5~~jEb(6j333Z8)%OkdUWI5;}DT~ zat2ERtQ7SG3$GfL1KWj|nvQzI67=fE&lo~0ld`4FJ&j(46`uC-5}5de@3_H4+b?!9Xh(H`D0!;b9AhCLA{4umTn5?=jvco%nT?I{d{DN&+lKlah87Ug{t4Hfk^`FPK1(DrBwY`KP1<=n-6G(nFjq zzo}t-e*?SS#)Q2{G<>7(^>;}_jjy_GPDb#Of=|Ppe_2fVgXr>SV1Y04pRnvakpX2Y zx=h?wEmmX3d@5-@?#Gz!B7}k7PnzWYoPS4OMTT`lb^+RLlL1D(#O_|+t!fH^(7T_m z6~$>fgV1qmehnw;4032H@lN5Lmp<&=Nakw_N`5}eArm7L`N7Q&nzqYvi)QxI&{*FX z7g9imKiyRu*OpD_f|sBJ+Y*mYnz|2?@VnOYW+zvD79Gpg961ls?6HSpJ{8@!GuyZ- zT+V8+ntppzTZ|viQY+ssPnO%*NFqmx+b!ZX$qD=430m7ipfpX5+9JH|Cy3M)HrXG7 zp1wg2i;{mc>ujgCu_eGooJ&=0*6u#$#Py$npG~)&^xySe3J_VzzmR&w6OYG213 zD%Qhok?MK-X~CNUX$&MwixDeR9?I^^?j)|Ql^Ia?qL<%%j$ZWzuY=f6JeKlD`u(yP zsu^Mxp$oU87!<@OQ53*nAG zeaGQ^5+8yWGU52~D@a%?X2FHo5J!86bTloJ#x; zdAoOod7ZfR73KBgEP3ilym%*G$EG^bhY@joMW-t}@BNw#;ubH{6&lqX8c=y0)fCkB z5@P04!*LaLk$L{2^bS%6N-{;-+q`S#ZJ;j8kG&uNoqz5=O1}%4RrtFVVEq54zMUe> zd$rB`Z&rZwKb-vXOq*W0KZrIQ-g^PUf48=3=Tc`#Rr-wr9z;FrpFKOnUl(%! zv0nInV@{{ZMS9h>mVeyFeR9=>`?oxJSY-1$WW;h4nUHTnu^jijnG2>dYF!<=&Sc?f zO;f#ti6W^~%zpN=K2@@#g=+GSvvkW17P6E^CM%mRAJ{jJB+Bv{)wL{ui*@y=E7CwG5koT}+o>N3#p^x+BQ6T$Pg=Sq zelE^kC>Hil;;eIY=JYj_bJOS$U9G!_e%+gRdM9s}_Ko~0V(vM6mmPq;2e2=Ny&S@xJ5q|O$f&-QX9XJ~JY2=>Ikw5dRM zE&urDMRe7$^Jgd<=Iogk-G(90;gc)2%}y*JD@cz%`}5neYP+#nQZ~)%?nQ(vHpU;I z{^>WgF4q=WFh-LJhkho?mb&t9l>*Msxd7t<+ve?njL(3J378y1FEaq{Ow^@+MXd;9 zf{Ls_oMv}cP9+=0sA75*xCYU=5j=WcjY;XA1c~$^A|u9XwUGXVGB7zEYEPbPTin8% zg=Pozt7ej205zIvFc8()j*S`A2l001;z#y#b(=PjS}I@e~VdkwJl8JQI1&aB7!?^@>?pH^cHZFp3xN00` zg^KI?Ffo}pGD#=(3C4XW8ZYA^6?P{jNdow}NFQZ{*dqia13v^LERCA@hWVyIIpweW z1*wTA_gvm1R*TMq4=gt(x_G$qVWu?9`HJ}~Nn2v3kjJT&+VI>y7!Oj6G%YyB6~L%~ zgY?=IZPznYjjP_yk?e)OqsqFZ1>?1DI;1DmJRbrmKTqKJVLsh5E8$hGcf*rtmf^(H zvKo`$zD|1zTM$0l-$>1s%-sn}dUY*}7my$@RSN=iP!97NxwZ%w>N>R{XMI$UM*@P5 zjw^DCSdPsi8XT-k;ua*V_Jn9B@nCwe4eO&LH16-CN*Sh32X50pE^1!JW@izedgv4m zYc1+0Tc6hi3Lig_t!rZ9h<7@jlc~k;&I-VfOB5O<{|yu;0=ArwLRjV8;2SO}8vM9T z@C8b*Z%#M#eb}ky8TD(&GONs{ltFObH`Q?IiLaI=S+&|J-vqoTW93oxYVT3Co~7Rh zez?eSOy3*5&glI?Vm9n~s=TndXTOB)QL}^|+nXaN?yh)g>AF9+eE!#{Z+jM7qBf%NIz^psNDSD+F{FJxeLQzJl|${2qe=7k}D4H zT%P?M^w2B(!`Uxp1lV*u^X^jz>?UPh0QKQg1W+G>0QI5k{LqR6P#-J*k@^tF>$hrprH!2cLV==na12o>kf5nhC{z9%yrI)5RhXMJIF6<}{%mudSVqCSH71C2>S| zl$M^mw?*kfNgg7Yw_l@*VZNxauh`qXM?sTH9mV zyKa-~x!da#2OMw)?)oo#%EZ}rFVR84Y)`gbMe0sIP4ESjtZ4V`ag^ano1pWNrDZpS z$7O3Cx)DlZKn;&c!OM$^``D#FAp~ATC06lZaF$H%@NEE&4u@=uD`pEk+%Of z#U}RnT?W7Y2G6y;1c9Jo$SF%elK){aC*bSVftD;}EI-3s7@pdxV;o!P+d_PTpdBaJ zW&~X6u&a4eWfxGlQ0jdi&d!ZYbNqyLb-@Ir3LpFebNOUBNY9m0aj?W^KfjE@Z~l(y z33O!$r!A|)iP*~D8JuLRZPtC>;UB|AZ+Y<9EJD2hMP%~6RxOT8mF(2oD3ib&$IyLA zk>=(~?w_L3@OjanR0!)-u{b2YQShLdsfhRd8zzeJ22b9sT?(LT9h0eTYERx#-F(bh zv3@?gCBZM$q={JL z%A&oPpNcd2fYIC#1iMu&F|yHM-o|qwNqGUX+O#J@b37(%qA%^V_)sG5j@owP*;8$K8b9Q_|CuWamo{ULTfTaG?Jo~cZgl`(NfTNe~mREMh8 z_)szts!^Dligv-WCIV6N6 zU!y=vv?K_P;;hmqn{wKoc>80LUr~OjH z&g}sEeZ=iupiInHot%ofQI#``vx&3mvMfI{C7pdur%g~4rb-;;Dy5$Y64q3mcjOJg zk1XB343W@ahT_&X046vl!`FS?&njNkll6!!MY)l}X!)kckw2#~;GhdQ*g0_?{I@{J zQtl3Qz!pVLFkW_Wc2+x)9Uw8jr?(_w-BGHtbT)FbnE@=!SjWtb`FAP+_Aib<%*(i* z<_;DutmXUV$J_X|3m z=2oVu9h4?IOKCt?6d4@z=FTGh*s1BmC=H*XuB@Gls;nzAnF7BHsblfFUKluwH@|j1 z=enx>eXP3Fc0o*C1Z|X`D7_)F9s{ye<;4Es{>zAct74Nthtjc>O;Q89r^CE`hf_6& z-mAmE0{9zv)!C%y*-&qCGdXr88tSU+PGF^DKqLNV0SA*BOtYMz#{I5&UC4kv8kRx% z@T6Sm&-lJq!)4-Z9X~w&;JnQL6d*uxpy)b;1p5*HSR!F zPF=ool1XXyfr1ZQ7qG5wt0RqG#0ZI!loaRLvi%$#t+w_3$>4vHyWGyt;PUA?<_>W1 z#ww-;2)HJME+x309OPAz51Clk09+f9A%zq@;;~4+3x6kU%E`&vgtH0%J(?Nz@PWnq z7a#KA8^v9Iwq@U)X+%i&aSc|E?hd{lpSKsFmgLgmsp#%o1`7H%sq5D_Kqa{1l-r# zQh7EC2exr%sBl#=eFkg=>qKjFPss$9~X?}_?fOtPk#nutCE2=962dDzm zs;RRwQyh5O`}&F;6rB)FB6tm5a>Qe}m4F;ALh|nsE9D%AkFTtH_w{tY#NHRqmzdm| zOu&Tetedf~i{aD)CIo10tG>DzxVpZB@GInwpXRVBG$Ti_^9GJBc-FtGih`#0Exx)v z6_RzLXgR8#1WLZ6cfbPX6pSVL+!Cj^9~&M0S%RQ6?UPNwUisy~QKUd2 zci@z1=hM@4NQ!6z17*~^3TwcKfgXd4-;Ye0a?YXDh?p`d@N79%K|NHZxjbGw2&e$U z#n%S0M@WjYGbvXDuNC9rF>EN5QF6*{4@48^E>KxGib-9-4nyCB-n$CMYJ*$77oV|a`miu1>%H7nL=NMH)C!vFZuQ1e>_ zqXwWM#Yh)TC^`XL`d{zoZ*u5k%xQ3?BQ=C6&zJ|^V{+EevtU)rZU~)_tl6i$T3b5e z5hTM^bJ&(hs+LVz=XQPkL2`L|^(&lan8W_m(?_z$doykCH&DUh`s#hk-Zg_$2<@+# zEs7~w<^LJyR5GeY*WXN{J6sRngqi+u5n)-r9ba0px;_{Q!_e-!}l=Qk3 zaw!21dEAmU%Ju{9xE`9(=7J7u%*iqAna$n3O%^R$Y*?B!V{b-gF2^c?L!>NGiqY$@ zldr}b^gD;2R&pH>eu%fLqMjVlU+!`fU7*KpuK5Y3{cYJEby{VT-($=>QCXrU zW>B)SDlRVDZ-FN@A>-9|Y~fdF+r+ZwM(?bQDUFwmLt+v+Dmrn7ID$#d(AXOd=*ap7 z878$XZ3X4E00e%Dg_El#X{gJ&>AE_&_X|O1uB~E) zE7?1s*(W9u{2R#k*!x(;yF-6j_=cE6;qF=JZ=jIkdi@W{4r;V_G!H<*m67%KH&EME z>s6ufuNT1}{>O_9+#=M98~(coXFXs8FAm%&M>D;bfapC{(z0@r|C^soyf#FD)1FTR zvcg1Vp0Z3Gal!Rb$Om!AV$A&e|F*~fZ|ZDMHt%z6?*{KU+H%6Q=K!pvAPJPMPleC4 zrgBWK#2&;2DIS`B*SRdT;12*XXc!%Bj!|fNy zS!g|865d^Tc25k<3jVhzzaSp=yMI?*cOPBe`8zJ&+$r4ChSU`GX}A793m9ljy#8hX zF}(`a9KRFJZYd~~W_0QY+v4Cg#R3sdjAn(=Mf~{AsvyLvYKDlbu3DC*KDA+ujC#I> zs24FBVL_4iIgskg0Hrok<0m?2eY*ZxFIn--hzan3BZ3 zeEU%+3I*gNbzV~Ve}=1&q2FUjyBBvw?k>Z0k(H<#U60Yn+&+RsCt6LW_Cq!GW%_*6 zq}d+L-G$aj&q-t_Pzh@jsuCZ1&ClD5ltmEIUf^wVyYfu*{ia zcKDLaT{Cs8GlV~W(#s%~KhuNxjtw0#x;Dl5BMX)VpLgI{!X&3OO~ed1g37Qq#?&-M zJRDDn)6{Ty=R3#^_U-Ov+Su+Mf!0~gDM}O3vMaG{j}rOPkdq;=RV9%Vx7)Fm zuoP0wYM0h{dQ+LRzk1j(6?3bSkye`zRh%s;Y0;`SHco*Ai zflyih#o7@}Z%z~Tcvv2#2RHi19ld|+GI(^Y>6juAIVenib}~F5oN5PK_-p&vfwf>8 z+6#1|XfeF^br>NY4LZ#3s(4GSNW#lRa@5OxM|DBFa+a;|4T1ZtzFXYD%lix01<8cQ zFvv`|*fQEYzIV_9TI1;cnV`@Cpo8%bYOBWUis0-yv#c-54-Fou(vafR+ZBt(Xy?`G zT*}_d4EG!=Kf=|##j~9h{O4S1Z^Y2kkUYG~1 zP}PTQDiPrzhkY*XzNl-v?qUhX<=_;XzDyC~&r#fvL%mHInKodhkOG#tU(LKnfA*MF zm&D)#uB(fq3ZP*DN3^Trq5}dOh<_q3aYc}fvr!7N*4$W)C0`X#OMi-ojPSXL9u(C{ z9iU1b_3GtX=A7#EO6;dYQ8Y5!+*GZV?tRNVgZQdOvL6Z{sV|6FMwfQ-E*KR-%1|BV zM8S=`VZq8QaFX{c&d48$wfsv) z_T+2lv{Us*P!lC?Fa3xbt}=O6Hyps4IA!pkaD_>y>9d${rPy|-ga(tU9}fE>%$xL6 zJYVeS?f91PiF!q1T#$l+9>xqTVL2<9ZTg3j4K@Rty^n=}c%A5se!?W>Y zwS>M8Yl7o)f_;?cQVQd@+Za-;h~#ZAT^(DOGtLN`QYD{h<-E<<+aJu*dAMW_Kd9b4 z)YY3S-E96N;F$N90Sq0NlyT%Q`2{Pl=xP^kJ%3y`XncaIZue|jK-^6MsqDZo&Zi%> zEk*ssvFGC+fZ65KN!H%?8k^l5RV&}mry;Q5R&DA1brWVZ%aVXxWaL2Z*&o$ws zM7i#{u2c#!cpg3l(i27iOG*{208`K9WY4~_q^~;h0e?qpW)#9f#=oy`mNtVvi`b1j z*7l<^+g?DFmqHq2Q*+f{EEdu6Tf+3=Zdx>+EwAo!+3X6 z*mmxM*${cMwYA`RTg);uI!b+bQ|XQetltCSvu~E&aLp&m76p z;Beigq@G8|*lda+Ryq-Z=F|}=q%f4_q5s9+TL)CVZHvN7QBhLqMg;`vZdfW(B2v<& zAYB3y3b+uZOF%&B?(SaF-Q6kOU2FL!?tS(V&)xT&d)__oz59K~e{in#o9j2`m}8DH z=1A%h$7c@VPQ-;MOnYOYB(Cf3LY3`dc}-%YHIC&TRu7Gch!ypqwTi-|hd8Z@-csK6 z6U0Wd#hcvkjZVF|YBekg@>HN*Z6xeU}r(50Pn zn&lY30D4LYl+C)qkIQO29(&l>_VN}tMj7|pryYo*m_%xo-xPFBuIUQkxjnU~=JT<5 zCPDvNgKT80!PEYE7cGdqKb1)riB-S9FRf6!BZIfYyw;ZA@Xa)fC^~ZZGXyutrwcXh zmsfTF4OX;ZGn&-?-rdI64cjxuq@46+Mqlxbu3Dz}aE1&{9a+YKw1%;K3(9)U=z0N@ zbpNYv`2|tyQkpVPD(#<1ZwtQEs^$!TYSo^{{go`}YmDgRp~xu>h<7alMiLjG^oDtD z)I{OC(AZZHCyeC=Tu)G9y@B^HvU%92S8r-yq|_!Am*vyK*fz%U=D2R=xk#29_banh}nsz0TUr{6dBc zUu+CO0FT&s4c&|ZRh+B-UW|bW=>A4#e%$34BFg4f5pzP2g1q= zQXN`Dfv31bwK?EV+8`27^T}8Q>wXg+s7t!SU54c`lDNBsS#j^RPivqRuPi%z+mKwR zf;zZoq{0qlwzJ6*8LKwxo$qn00(&e9OTAtPU!aM*@NQ`chbXFAa!sQo^hIPge9mSn zRjklnAw18Fr7jh=<+aasB2TKqc(A$y%`<1#Q7AXWWG~CIu7;2&`x*y& zNvSFd>5Ey@*U?MJGm>4NPUiv(s*j~M?Gi~rl~7qP=bFXSg3V61S5icBv4r$ApW`kI z+^@FNA&nq=u_<{}9zBdUus=J);=Sihx8Pp8LhOQPtA9D{UK9JcgrbhP*=(OdQ!Iae zMY0L^+C*#W9&wVoTfBRqtYw6}MP7NHx6_M(?A+ZwVB|AsI+x+}mwSZpUn2Q}hA?EV z!kUufLE6y=%3~%I`MlFxAZ9+wAH>Xqbmqd$N4qJoe_6&9I06A~qsYoTKMF7G{V2-- zU+J+ptIF_Ok~M799=2<&cnsQpHVGg{0sVl4>)-OFVD9iahAaU13~WhIu~4Oo0=mUB z=#CHum!pI&rT)K3vHla&BMP*ZU$of$lrPDU+k!D<#4JMTV?hGp3*U=(bs(3fFs85* z4gZS;^8U=ds<(7}CHT2jF+ta(M2>G%8WLL~0si9+ZF0QSm@&_Au3V@$mJ@yaoQOeG z#VRNy6YSm7n*eH*PA=$&u*>7Sg9IZ{*-7L}T^CO!Mk#N@8xWHnB%GK1sfnlu15MUD-pDb^kkG zECu%$H^^KhxHpviL<1zoh-~EgNM_fo@Rma9npr#ww~3xjjbbC>wOmE5mA_8s;>c%8 zOJ*(4#QJ2rD<$$!K0rq|T+J|Bonh2fV*xPaW<;Z0p~kzCYzlv{$IzAEEF?4K^~zLVs4CJC`5f*ya#4P`H>8DD}cdsbPkp z{z0ZVb&+)OQ4R=DkEs5+hQVK=Y-N(9k%=Hj7uphpf?GqmeHXMS+nYv3daLz;7CPrn zZzVnDzb>Q2{ZwYnAHm-aj5YNjy>W7z@~pR{DtwnWZ4Uw>qvj~TL(Bjl?@kBdwm>`q zi^Pc;HquwE^7o_`5G?Vrp%NsuSc0S$K}C?%LP0dZHR%9sUAqr$inSj6$Y|k!DhzUJ zGAnw^4{)B`CDK!x`9?+k#<@=MSA&w`S5R~Sr?_;BAbVzw*H~Fui?*cK3_7DsbDH_B zK~q;^R^0TGB-XtK!l0gVX;g_#(C2i2oTIjkF&CAs#EI#4AP=YXFyZfZ1A1(zkX;U zHMm+qo6u;II$Zl2O*;7jx%@+{Sm#S9Zp774HJ}>(BEbKl9|xABU-V4zzgfGYX6~xlzt^;WX`Eas7*KV0fIiPFAP=%QTSodwx@aYIR<{{9Bz*ykGg{ zJm{i(e&Rnt4Z>;V?rem=QqeDF&ZqES_WoC$bWd@N&jbF8ZS+?X18m}#?fDy8P0O18 zpGKPhW2uMPXvEbm@j~>Is-lVyWUoIy%42q7zm~4}k#k%?#LK2TgUR$#y_C0o@CBV} z>vxThj5O0!lOrJPl9BFvDaZNc`IKz=qE=LOT9hUXqfIu4=C^V^=gYVck`!?0T5)c8 zPGNn{G;>EfXuu{9zC%ca(@xykaz%Alp*th9$nOyNVRz1VNT-Sa2^h?Z_iMkL=cdbW z`s)O4%A+;Fi(!+ehR5maWDWKB;!<{#oQ$i>;g3T2sQ6}~u38zigx6Gk1%NIh4|1q} zcHU;EXsH|RTWOBB+;$UuF%>Au3o5MX{9fv)$Bf4I8uzL#4?6+Sk`!c8B%e-xE z3wfXa$V%}Y@^;BJWY4z-geZSNN;Xb1D(ac(*AP_s(m(W8%jtU6>jb-nrXr4K;<6+0 zcKIf?o*#A$1V;j7MbcjnmZZC{ng7UZD$&2bc&8ey;F{>b=fQYK?vNr@DLmaSK@Zg& zK1R!+z>6-B(amJf*nZ}9PLn|wCgUc3d)ckqDE?d*sMk6#KY4`v{-ffTf`P@A^mmcG z)^`%k)|~ilM~*d(tmD99d0qZd!_t5BTsZA<(J_e)x6Gc|E~j(tru(Va8z{p5{&z^+ zKp_Lmc}brA$bB<@5l;QE>JC7J@qcT%Gck)J>=B?SX8=dJ;+qs8z;B&sAMb?&=Zsgj z>}Al_3Ba^JLWv+L1eW{gZEyoG0tSJ_{`9`ziy3`~9HE1#<~>TJhhI@TAyC7&34z~y z8H%_;{zsJaRwjR=MrEI_*@YRm<;fX}ScWl~7YD3gqlXXZ)EDrBA z>dD$=xvC}3{l#SF^ka~n&?m7822Tzn#-V}GYC8+$Qe(Q4Vu zfPsIRr$?(P@0GZtd4quEMBxvmZ!n&uE3dCT$zDG^b`0*kXTtQLWxc0?5;tR?JJ(+R z+v=S2@I%|8=*k3cq^^Xm+sr*I!poxL4q_($DE6A!j{G4OrYskYC^vn_jQJhbKbjg8 zi&R~ChH_{21kTpCo2~zo`uTQ*yryjj8}y7)=zo=srJCf+^g(St^onnm`u$ta4KA*I z`3OHyB$&TGIq}8mwRupyeTcUENa94Y(W{ZVVgg$`i3>Pm!>X-h)~@6-VR1`+SaEud zYJ22=RZQbYMM^R{srp{gS?oqW8Lge5sLb8$??{gE$RLynX*=>viPvn&304-}uE;0? z-HDXihr))puw19tc(m1-WUAw3H)n<(mPz}D_?SO0F5gKu8r8Y0@};&$q^SGjBiYn-U<=o9x5$! zy3R{)7S_q7>IYt+C;oJyx$Sv_zykiz_}2qA{&H7+$VF5XRI0r+ZJi3_H=yjES#ms6 z6=UsER3lKm_ByeaqcFBG-bfEb+gMY$+j5wraLOGS&`X>|tQ|eUCg)9;Z)I^8e3&E< z`Q-Q-XLxJrbckJKsvkq)3I4(X(|5?mG|+qu&jx0{4~#3%5Ik#< zJ?6oco48DR(*jF-%%4^>3=tQ`Mlmopd+xIXu%yD9n?<>= z)5c)WCm+d6HJekJ1e?HE+-MZ@+PJgW%46EqHwj`LxZ$@k#X9UUtVZ|C;35nd@CeJ`cdA4(w z4%vZSZ%lon=WstI6`GwmHW_Nh?84An0q+*u_z%)|pSI9H>QNSvt{*3(aMP>YoP0kU zwY-5~tlxL{o0pi7+2zv?l_xrF!Pc_WEDSCnPB znu)8$17&8P2o((4qv-Ho1kuu3UkD0n?tD|O@;rrKZcrJi-QRAaxbH6wBuQ4#^(@rc zB+m>JEiC87fY*acgz5G=8XK=v=H#!#a2=;+Qz5gokb}ObErQKSuco#XYIJUCp{+9? zuiC>uI9enwMG^HD+%>n6N~m&e-`nP{ebK>sNhIRkAk|8JsxCgq`)kVlyAHJjV<3dY`c}9og44K6z3pBG9DiT`NcX;rWzPI*% zvhr-XOy+K$R%Av|tdfXV#B@=<{J{e{olDY91`zA~xX)IU=UfU4{TF2pj-Dj8G6=L z;3qNJFRlTuwlKsQ6A;VP`Xj&`WOZwU!;}rKAK-!uOjO{8{ILoorfSOp@#?W+{A+|6 zC=p^ms9f63Y0ttWPa7yLBU5l&R$^Faj+Jl9??F?Y!@G~-cs~mI$TVmH&hWuNMZ56+ zywS%+lBjH(Z%O)4Jrh%UJ(ul#C~7Kt(*oadXq`k%Poa^1w@u`26EmC@<$}QD0UmXa zXNnW8B#%kywFDb)dHQWN&AGP>`E7eGMAwfP8+#`d5W+@SVEZ(MLsid@1Um&bbX$gZ z%sWqb$F~Q@Kjq07U~G>{nNSC$7vKc5+@PW%iq&gcv<>8)3TS6gdC{jFW^Y}GF5t zB+QZDXCuI%*t5sW#6>K2EJlunp=`aV%? zlu!^I!N4|a5JroNVAchNf)sgM=jr7TM;6yWLE=D!j!j*L%99qHEH4%{BP7i3xScT2Y`jcLxR&sz)Y?l+@nZyd9o0 zbm|&2wp(m*`OQw#c9a~xv8Q|cD?Mds<4FY}^YVG-9g84v?b1KQmwvSX|L1&43yW{l z&&SF1x1gNDe`Qe4d2L?t8hq|~0bn_jfaUO}A%I;D`uFT|$X~fqt|Js&5uEIhRlqOM zePiHnP3ajHB!)XCRTP0WBd>}}Rj0~|0!10UIdQ4G*HHq?XEkPvO!U2Qb0}(y+F?_`y6xvnB9s=9X%&9V~0ZVu9iCj^T5UM2QozDNcciv7r-Ky&fy}7M!xy;Ur&AYakHm{T0&^+xVeQHhVLhaThURp%X zxvd~zJ->lixAfySpyaX%k+#}@SvV&rVx_CVY5C~ILr2GIm9!AZ!lkr@EYwF~ULoro z-iHR82lqBZ-CsSVpy+x&XbPZP&t78;coCxL!{|G2hBfLzOM7V{Y=H~zK5@IR;$En= zXw2A=*3II+UWKxfFY6%_0tuh)lj(6kP$Yb&r$b8Stoiv(CBDY`0lwdr(V90sj?&(B zl14F0`>leVc6Pedsg@~q-JksK#xdm6+wy#=^knm)ce|-SdD?r5I@K;rn-{LKSw~QhpQu+H_O!skfV3tAO-cM# zQBVY#ZTcj3fs@_ipgNwaTTZ;=%g5QH!Hki^w`KD0UwxqZG*B?8gKuiez;M|xv2Exw zo}2^-qyD|{^Z({wjpTah)o9{F?GtVWc;5JZ*3u&D0}QW>SZ$xRTOLhwWMpK|_Fg@0 zzRSR2%6&VDB*R4B_LFA!PCMK$%kfT;7HLUA&+d>Zeq2B2NvP(5X)Q*Fx{&gv8y~H% zwtQsBJ7k)=Tc9bwQD59u6wS2@3iCud$A`z33G=w^iOgZ4a>`Z>yc(wh86On8y}Oo z1On^3dPMvf)TEQkmo3=pXio{{J%^ z3|M#ml1K1A;%`zjGPBApQaT8s?u2=h)sYl>xaO*`@(*974_a0b)TKdqH9vA|P9yo1nI*(96JqJVJwFPCfvtUh7 z5*8L7? zpgVgzD}Ncor!!T&E_zqaX7co6E-<#@!D={WWRB^|Hjo!ozC*UW_>^I7SpNp|-`M;& zZT|ZR{hJ~En{WPI(e{5|3jL;Yq!|u`+A5)2IHbv>wj~5v3R=eJ&^kXfPH%hyK^B^y zdAGP2^|9Z>=485ItCVMPDFYeNSAbNHjssD!!e^GdOfBEv(?C!E1!NT20_CL`X+{D@Nld7$S)QJ$VtP#|ZCYn_|lA*Zf;lgGzEqj)H;uIL+sVSGGU z`9nb&&c0=i(4KDx6=L!J>t!?kMC1MM)SmzDZ=JVP{JnkpOSh@MPJX6sxy1fTh2{Q|16;Qpp*#_Em4QY|IBtzdJ$)AC-;K{paR>|Hk-YK3H@MrGzQyXQP(2$~ zT&&Cd$ZPZ4E;Dyu6nzxsk9T9^Q+%0$Ixe88j+&3s<#n^PC`#QUro>B?DdEPGlxd$Q ziW&?T4xS7uRj+>Cz3qJGZ>|#gr&3OLLZ{nh)M%xosz=#@ss=Y#xxrBL@nW)S>gz6VIB}d1Q7UK{MTuFs&-hqd2uC^hssn) z_h@i$m>T^K$%#keH-Q7P(C{5{2tmT&UW-w(4_tMNQCSuk%GEQ5DnCj97C@>0!RJR#-t414Df*yn+-ysK!;NJ4o zDd_ah-p`ankF+4Bj1 zsJE00{~fLOuIR@MdCjqg48^3P{1C%;RrEOA`n^R z%`{PxIVZsW2**JF_lIMgyD>jKf1TdFAf>_E+x#7plnYy|PcIY)iqc0*kPG}{_nu`k6AyySOBMu9aG{pC@{h(+9q2QW<;*CCjEr#?HpOO zJ5@p-xqf(Sf2$ftoJ=6UWS5qftJjgt>ne+*wS`$~XR0W+Cx(e7XM@3!scA!lbt_&& zTcAv9Gwq$SCPBXGMb6aS&z$7UO#BNJPH}2tIjydWq#rSOT0AQJyilJjERj43jvpo3fXf8>iCYwvo`KMggqosflGoj2=3#*krW+*( z#9ZZfJmV!7j>1IWBjTo+lg3Tm+rDtG29$go)S33DGHkprHA6}oDJ52#n-98iB*~_8 zsAnu+xli9T#-7s>P+iS?bLw5Qz=b)r?y_DG0gSh(2KBZncDsAZMy9uSmo~6Ii;GrL zQL~lu3wKaSgd3Vw%!L81CE3;)(rj$a6_W9&;H0JN<0EZh^>tPS{!Cwkqcl(EuHrD0 z<@uiai5l8-d@bUq9HpsvFCJx*o&O%+FQh0W0Nu{$_Au5$Eu&v&Nv=SS7%Kxzt*b!V z^d46x>65$ef`oC)3JG~@etgtC zZblcQ2zl={B7#w4vJ9$ms^B*9;#r5aYDL$kFsbCWXZ!U&G;=t`x0hNG5mH?%=feyr zA;WmHo;p2=y82oRf68LkPp9bjZqSP^>GI73EoQ#(-R?m4fBqnz{bDLcZac@26_SrUzk zE$1Dicw;^`wgh?*zCTntG-48^()V&-LqWa2@gcDE^N}+9{@WjOi&0u#dj6Aa=z6@_m?4OWWUhV%X}|KD1GN|^Vha-WF3kCuCC{eP^0>r1K#1JV4Ad`No< zT{Cf`MNN`|??9|>=oVv-mdVHy@BQ+0DXGs{v|lpk*d%ZHx1tl-2z;Vs%^kUa#6Qc` zX=2Bed?z+h=-YUIa3s>-8nh^YzigURwmj;CuG{mjG)n#nZ^Op(mwX$J&_eFhPs@G;; zzrE)=J4W@S9arR5+ikW$!ts0;nVeZr0Yad0&}zhyw>*S=T1(VVKKYVZ?`4ZN94JXw zVXoJJ>RfR_smM#@3ume|rZHE+iw?8If>9=NuMW)%#C!Ly5=a;*tLh5X;#eMcqix13 zMM^RxQjhH3Ng$i1%On+#ve$0-2%46+GJ4}@x`kioXh=aH3*mjJ2o23aP#-d6Oe~jm zdN>X#G1#(pP(5A~H=9CI(=Q;#4$@(pS>|hTWqCORX0E{lUEd)_c{?<+$yD zb~Lp=I11=aXL63HZUoH1*k30!9BC6ZH$ot+kVPo2)`Y=ly-rLePOeXDX1kI}qj2>} z_}J@1W1?syR0UDe(_>OjIZ?;gE9XLq{>gSwz~%KvYbi3I%AUI(`(FYl{7W2ch##oJ zK>HYs7dezYtCJ4<7t~4T0fiCWk&y2^wWL9nbN*1yk;4pHiD7ER8sfrPX~<5fQ-V zQ=s9ElC4L7_U_$RlJ5}Ay>=6|vaLrews9SrP*s8ebyQUXJObN}2PKNk8QTJG&#=fY zUSUNg_+YcE9Hn+Rsur?e`>5yDtu!rdjg@*uv+r6;9wCBcq9%x}o?TMa2# zrPURC3if(O2rCQvXg(Lje5T1Sahs6HL2ct{ndBB9TLRT_-!gA;r*EN(752Uwz1*Yc zt>U$Gr;k`8T>1fn{-+D*dM>9e;m#IZ?-+78n3YfyXHJ*$Yj3Y7BSKMEUh zI9V|H81(34>qS9(Lu%4{kxwotSqD@Jl{(rZ>4#Mh?P{eh?czmYDTX0o5wq$8GkLmX zsSOR=F0Hrdk1puS`A;|D9gz+(zwyQYDn1)Ck`$XVnm@iIZ}^65BHY6D!H(9L=EE5k@-5;jvqt1DaV{!BUr{Rcv$D47>^Z}abj=kTKb5;@5m%qqOUVs~SKo7rB{yeaHL+h<2grlh|H}Hzd;W2LYMQy`pA4I5D^@AV#;VWC=hy-5Hxp%QZ zP-Iq`N3^8UO`@YKi>GkC6b&VD*S4DL96 zw8ixu;#N>@#2J3Mk0t4IuJZ!a!1Hl_P9uy7E&Ig$ONXUW;Rb=~Ql3$c+R(%bp<09t zR|3Hurk;oI(0SR*m{C7Rm^XJqcEtOq$l8XGeIV^B=1%N)h!b$}Hq!kvX82sSWu8jt zCkTyGKQxgI>wMaKry@*dEPgbv)f~?H`l+*vyvAi6sXOgMFPWrf8Hn~C7V+CA3^2Xk z$6jOg+?TV4w{CZK&KtBH@tBU5`^@{Nf93m9jz|TUnS0VA$P;kw@{>D1RA!*{U0a_D zQ7IUI)6+q&$vOKrcl5*ShL{jHR`OOn16oGH594mi5KK&}`j5+HVP8FAZ{H@^$ zuiyeCTG`o}L;Xa47U>-3jyM2bP_p=Qql}bO$$dE1=nB7>cj|JSDhYSt`({7GFH#Kd zxDsAyWx+Su_?80N4T}8>mKb-N8DC{8AvffCE;3vVq>jWa_gKK3mqxRK|*vwj?cJQq=; zO-@fBY)N)k7q>aAnJBb@11ua&~mTU$37=!p}4R5RlY8OF#@@&Cv$ctfC2MA zJ^2k|hj7LGt<1e3dzgCFyH`@^{kcVc;|YbYsmpOTtZ&L&lIa?kzla^drrzfljx|a* zB6ySeA<8Uq^_nHhENQ$AMlx#OjUR_zdriv!_@Xi8!5HPKmH*F!QUMDBWA;<#%}y^h z()$i+-yyn3i})3VCmQ=(%?0L7U%wR1MO^2IvSxz&uO^j27T=61(JDC6EwhUf6|1|J zn7o9q@O&s%kF-&9B}yg9!W?J&RS6YdyP^U*db^^qQ#CA1oU1-#_Ig^SjX$M#pXeHd*8>iiO=b^8$~! z?#BDna?-Is`e6IgvPoHy7uAp61V$9wZC>awiM_(_lnMWIlB`17<|o$pIf+ljOm2r; z;-;-2ns7E`UjN`v*QP>%h=*OeB~t$ zLgJ#ctU>d?LkyNFpPv{E!3y>p_bm!6wokL+XKa}x-+Z0p2U(2%J-Uy|+p3IgQyzp4 zlN4}s+i|Fdm&)HF8@w?V4x?v-J8(1!D->Jkh&UEfx;oxZGoIidkOZI7C)2wIoi+Y{(*(e^TOyC*`ydocSdo+e=be(MbB6=d-gsEzudhHl#>*o zoZK3qmQ~&L-j!uI@pdqOQ!TgHi@eD9dBV~`Dk4}nRa3h*RewzU z<<8x051%h=bL$G*ZkOh=uFQ1{8oY)%#7T4eUn1d#N3W(ARI)Hem%a{d^KQL>B2Jo9 zTl|>p>2?k<@(1-e>h2@3zaB^L+l7LRJ>}pNI25WksmC;^2^SX3j3nGJD8jOPSK*Ml zGVqqXk4pw4DL`+AuDW;F;`E5;h>3epo9RL7L#qs8PsoeAyr>K)`S41=HZfxA5LGNH z(CCw!fA1^gP2gpvU`3kW%a>cEypfbQWhs=-`7lZ~e`ZlABsRMa zq=!zZaX;q2E*HuDoaWECOHtVW$VZPfPu)%c{-?B)Q@BB_vP7sXacrAtWAeQCnssb5YWyhO55SoFCH!9 z{xYPN{ESWw?*FG`s6?LZJ>ztH;b~PjmlONdhgz~FDk|f|>ZUqWcz)OP=}V}|@)n3w zm@BOH^pZ5kjY)*F4Qz~r64-}0Et@ToL9A|sa-?~AA++(h+c^zlKWI9V@=sZfDhZ2c zL(*|@Zr7f=kd%z;9S8J)t6>jcB2~pyF$^qy`}7*nB4%>AvPm?WpEDBdllXb2jVy;f zR32`H!!wMzN0g#z_J*I6r* zo%#oNvHA0Rf@Kxe)?Rz)`wC^4$@H4opc=?HwKrw?K)t4CO_tDjSInQS)GWLFMh=SY zg~g-+8@#URKINJ>ZK3RZ%Do}#G6fIWCpmC=J^U^lX+(dv97H|Ssk?q9JZNDO(6O1% zbnN>;$EF9(L&7y-qW(|wC1-s{Bu4mpO#>uJ3#_OxBG}8$>^8i2Dh_6%y<;}T0$yiN z7#>$88(hlV_g`I%514)&9r>RBG`^I$QK3Pa*4_C|r-Ydm-J|ePhH&2Dnrn9q_t$A5 zj#)C=#=T)G(>~2qm*x7xHiaD2%AF*;qr@R)uY}0@obqFI|-fEO+44qSbC)NkxR3po@df z(8?T4l?7`=#vu7-oH2P}TddKb?z_+fEe7jgcIS?-$Bi**nTW5RAv+oQxjj9Q9?x zXMwCY0q*^%+eYY--W>ti9d^G2dX#tT#I|v3RqQ)kQflAz(o#=Fcy(>Mdnf?e2v|_0=pMccci^=IzE||sTI`ec2k$P; zA*Lk1W-T8vsmXo{D)$0~`|^$UisRr?5nT;p(zJu3siWPZ__O5hLQ~O4xSY@vRNx!~ zA(wBOHf2sd!zdB&GXeWo8>oE433bH=sY$f|iqs@vJ*qZ@E)9U7OOnc`v}X~Soxeq7 zPN(l)IPWy-KR^7h_>e5>C@{M##ItKt?7bQql?#drSx1H@)TndoR)+&MxbN!_aFJb% z;i0u`cm=~=Eg05^VKy7YH-uU)6A*N(V&{)&UezL|Y*mt#n|+3cS+Q>Vtz^v*gzxie za(pcd&fpoe6Ta=Wp&qS<94f9b!OXqSGAuuo{E52tPW{U(n=ik<2q;;xC#@|WLEY~g z3CZD7uT+;iam>ps{+QzEp)-_TS|vBP6%=tDOJeNJBRVTnEScH~EM)T_6Bl%iQUH_& z23gPL+uZ9XPOEmBc4Vf*`N{1Orz}MM~!rkPJqjw}11PCNr zio?8=G42sx;!!hyKP4?C8ZBB@xJ70?t|Fa+NK+5ToHTaZUo(FpOCWmfCS44aDs{L6 z)lQUI|BCd0@4_Mc$rkE}Ey7!-Jb&BP02WPCzCIqsjff_y?m)(q?SyH&aA{&o_As47 zXGl$?MukWQCCW-mdVN|g$;&?arO;^lpf|l{7B;}tc{|32*kI6RK~n< z6{CU0HM9-MjD;}!1>TxKEk&9KDMvzBD5td3mFm)4+_^KDCR*-K%la}i%}z@g-*)1m zqdd7M`@;JDf*ti7Zp3xM)Hpx=%hE<9(iHog@@)g#bSSAb(t5^n#{7Q4rpE;N_#di6 z?lX*{d(3GjnCi7eym-Hz7yZe4pbRaZ+drY5N|HNNmnyfFLp_yttKLK`FDcA0B+HsW zn9vX1$#$oXeRSD+dBEGkvB;L`lKcag$Mp4;L%BFrPiACV1TLsn5pUYeMM3iN`z?}? z1Eqb8g(fGSU7Y^Z9JO@5Iro|*av@tEC)Ad<9;Q>Wwi;M+)ma%pc{=G&ODL^VJ4yI2CskU| zw1v&*8>J9)d&m!b9TmS$+*}Y1{Tm5VGyzI+>FG7oqKO4b2WI? z!TU_ENt`>GsgujMd6|UUO)!J^>cbzZ9z3d_4v=ymy*^@3q4m0xn8dwy$zanjeEL&m z53^~8VAG7Ig2c%)6}z`{%z8@7zO3)It$hMU$}QszUVt#bF)Wf!ZW+w^GO|8?>T-0eFXO{#EcOmYP%xKYG{$a< zpfUoqcbWd0nL;i)7yZD?WP`VLzGyVW;*)uY@Pig?3|6)Yn9kzl?zJ2ccl`ozeQ540 zi{nc}u(Nkls%gIeG!L7;p?xR@%Y_xVpSr_~1Se^caoXnFTjj{%_0AI&BuTc(RFO6% ztydPytDG%KhU8(+Y71-jvOJH4&k~Mvvco9P_!RkOqsmVR#Q-Ly-Osj34&faS>$+3> z9daQEWE=FXk|py@!O$hAg{Z`PGWO({B159dGux!Gahp5{J7mHSUVM~dX~Pm12{bw^ zYSbz{^qxM+L|dNdZ0_O03!9&>Uw=-Tl*d4fe*1a2?u{K7%FCCQLw{#w(>B@eCJu>4 zMRLX=LFkfM$x%#C8rPJH<;SGvo2ee;-5et;8Vke|z@RA9aOB!P#n+p*&lZFV6;`&7 ztrnNzv|ry@c&*&x^QcNr`rCa}idttO^uM!4^cf3xceUPEl}v@|cZzcI{QAwacDIC% z*)fP?OLy?#Si89eJB*m)6L2%HO&?7$|O$%S_EJuXb5+;<53Kpj6#$hdCSQ(144(Fq2MsdKq8zjN1?sXK>v$ zZ>GBtf?M3;yi?OSH}dS@gm=oodnEhA+hLQLOYX`NwEbKTnrhcDNCzg=Ulm?OTc^-j zFHjQ9#tgwbX7EJ_^a#tul_urMQ*dl5{c64%tcw7Aa8J< z=LTn7VJF)4E!lwh2S;2`sFThzeraG^Z7B1-dh4a6 zt{NqM1D$#$agEDQ-gp_f3llL1&uEgWg(~)B>Gfn$f6~BYFxwllr}6Myf1II#+-18- zNAq^$fe`Hp6-WVz(F;W!YH!A$8~osVQ1?@8=Fs$I{&M3t541Fgo6X84CO#)@FUXc$%`QIKgl~)IPE~0-zg$Mqx`0Jk%j<=Q*7zfd#=IO z&f}dZ$+N609O0+;EXqjw0k4p&?0u} zc65NJ-VDl$jm{`UhMVPRG5Vk@{`Z&Nh2<6e^a|*?k#IpdDqWPR_D(l+ zBUb$Pmw^xhJtNpICa`P4(ShjwdEjJZizO#G1Yd}QO+N7d{Z)y`mL8y?lN$WKrRPRx zdm8sT7uNX@xLsT+et*{^&{X49?_ZX|vacTwgzbsU$u|5q)+Tt;@RohE->qoCjz7bM zQvxMTY@=W<0w>02r>E4+qJe^_yvqiilmW3brv50PA*2VhqXjm+EQv4~f#-8h9;1%H zCWFt!>dymhRsZKh^@o}kLfN$ll8I@wMNYuW_XjS);@qhq^VkQ55|oPQps+T-~dj z;STzjKF1dtwFJ(6%cDg}Cgli<;wXS!o>0{`wCv0j;r5@NXG&CUe4!fveYr^&qCj=+ zVk6as4^Qgm%lYqGvqizCH!hg)n^xhufa;FpMp1-TjArq@j>#cxCQN15UhI%sr!@)d zDWYNq&*3L-0ypm*#f{B}RX6)JXF<}heo>AC?xp=5p;XU6eMUP|)fe};Z;_cd<1ZB` zEa>D0r?EF?EUmBNtJ3)3ejT&DE)2hWnvVNq^NG8~OuKsBftqckL+Yd!O&gE=@U5tR zr3s>kCbwF3*$8GS9ewPCUToG1irt-&)HP38CZhb>5B*vF+g(W!Yrod8fIb6v9vh`N^b|iwTWk=~IRY5t~5Hwe7ggmX&}AE0g&Au8AHQoOaCP*Ja~_BeDe- zT+7i_%)Z`?;6-$-Pdbq2*)({@`Gtu^LDz<%HK9LCctwPfE#cjoML1S$Zm*3B#c|Cw zi*H4dgpYfX%_f%ywqNJA++v<8eVN!HHkHQ8rmVl|G=4m$X?)yYaU5Ac5zZJiI{Z2A zhN>p|2Txsgwo5@b8C4Lcvp&k|=hPz-Za;pbpX4nc4A1`I3Xj@&iwUOwNTO@-XLMo# z;da68(>hj0{{>S$(zmj&k4mb$-xAd(H^b=qI34sWqaS^l?S1vm=qfjlnPp^^E{?`^ zS5InPK_9wZ*w3lP+aP zH#)u5`TRE+2iw<*BCaqcEO@g4UruM$hqi)J$OUWaoe?T213bdT56rt*tew(oVx|sc0}xyW-$cT zJ6>0#rgkGcy`Od!3bE@mkayXuy33V9nhq#?3ZVI!&;`IeCmTR@x?BvoS|UFhwD=f& z+`852cxh<4>|9yCptxlB9t>l0veAhk8E?aY@p`+7@eWnK?qyYR;>MHOo-&sANUVxp z8@@fngKJF151tiy$+_S1U|g+KUU$B*kacgSQrK&6%Tdy!t~-+XX+)2_Nt$N4(?-*D zVn}Z?7sJFT2*uIne?$9!(_(`QEH<@31Ze@HTYTAn91A`5;fC!kL6Pp5zjZ5p?~kzY z2IXUzesnAS>*%*)GKlkmH#i%Qb}T5idu1zn7Xlu%41Bx#5$lVxl7_#A0r??5<-R_+ zD2gZn_t)D@=wbV7Ki8+@@lM)`V*^WjJc}9FtL>nsW~Me0p$6LugXVLAt~`aXlRYDl z(rUQR1rOc2Z-4NA@wppG#vod-sW&}3LkWJWA9^An2T~QHm4L`U8~f`jAHnbl{jF`i zYLFd$utkG@_(nfiEOE?InI{oYlYcyFd;Za{$ksk6coZln-WEs>@qH~|mK6~O(;U?S z7KD5)zMaZy3AGWuOxnE_@BpKe5G3aqO$9h?k; z$+HEi|F)pFUjH+otR~TqfzIpqclHDP^t0>(ydW^jiV<7Dh}@9!2L%~su&jdR9uwPG zoXmhgH(xnKI1C`28JI{N)j@Va+8nv{saK2z5N@EdfG4mA`(FI6NG2G*iv-{q4FtM z=^1>=lK?!>D*7CFKgc2*4xsxEVfX=^;sHP-{M&gfo}Jf!2)0W`b|t_P?5_mxF;SsK3pSERJU8!ESgcm3g?(1zJFw}~_p?-&u#{a(p)rFpH=%Oyb zJTL5UoN|~adY27sPy`g<wA4iKIm@h99X$oFN*3xuE%gm`ZHZvQ9Xgs2z*Bxaza(6FNNhQMU6?>W+ zd4uA8%6E8wA#vYLS*q%?n}U?9Coquenl0_c=|%0u`ShV|S{f^a9FnXY`$X`g+-l(I zjc_|N5L&Es^KUW+|M_Ah7e9bntgPUU{#*Vl*V`1Cv;5cS-|}B;m4EAldUFi8tAn1#@r-uJ?z6HnPe+|je?!S{k!Sl6`>7(hVFf=>SfZp#7(7lL)0PMJrG(L*THF8r0}4+hj)VA$Rra@m!;~z*>A&}%zyXTPV~AU{;y*)9ru`S; z&A{k8{m-NxnZsDswfOHw&^Q^?wu>k{YTGTF?kWFS7`R{vJrW->4LQLSw1awi#9N4)qU`8uTuP?BBZO{?C8S|9*?qXJ_vJ z{FnXjHw~t@qTauweSy*Q!v6h6&%f)J)t`T3|NSbYD9V00|MPGDzhB+I?VAaVP2iO4 z{Sa_Qfhm)}^(+0)KVaQk8^DBGx4$;xT)g+%qIoy>oLI1ZqU?d6<<^P}a?d&H4Wmjx O2e*%6++o1@|0V#l>PvwD literal 71303 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, $label)), $field )); } @@ -1476,6 +1476,7 @@ abstract class baseModule { * * @param String $fieldID field identifier * @param selfServiceProfile $profile currently edited profile + * @return boolean may be set read-only */ public function canSelfServiceFieldBeReadOnly($fieldID, $profile) { if (isset($this->meta['selfServiceReadOnlyFields']) && is_array($this->meta['selfServiceReadOnlyFields'])) { @@ -1483,6 +1484,35 @@ abstract class baseModule { } return false; } + + /** + * Returns if a self service field can be relabeled. + * + * @param String $fieldID field ID + * @param selfServiceProfile $profile currently edited profile + * @return boolean may be relabeled + */ + public function canSelfServiceFieldBeRelabeled($fieldID, $profile) { + if (isset($this->meta['selfServiceNoRelabelFields']) && is_array($this->meta['selfServiceNoRelabelFields'])) { + return !in_array($fieldID, $this->meta['selfServiceNoRelabelFields']); + } + return true; + } + + /** + * Returns the field label. This can be either the given default label or an override value from profile. + * + * @param String $fieldID field ID + * @param String $defaultLabel default label text + * @return String label + */ + protected function getSelfServiceLabel($fieldID, $defaultLabel) { + if (!$this->canSelfServiceFieldBeRelabeled($fieldID, $this->selfServiceSettings)) { + return $defaultLabel; + } + $key = get_class($this) . '_' . $fieldID; + return empty($this->selfServiceSettings->relabelFields[$key]) ? $defaultLabel : $this->selfServiceSettings->relabelFields[$key]; + } /** * Returns the meta HTML code for each input field. diff --git a/lam/lib/modules/asteriskAccount.inc b/lam/lib/modules/asteriskAccount.inc index 7617e215..0633b8b1 100644 --- a/lam/lib/modules/asteriskAccount.inc +++ b/lam/lib/modules/asteriskAccount.inc @@ -88,6 +88,8 @@ class asteriskAccount extends baseModule implements passwordService { $return['selfServiceFieldSettings'] = array( 'syncAsteriskPassword' => _('Sync Asterisk password with Unix password'), ); + // self service: fields that cannot be relabeled + $return['selfServiceNoRelabelFields'] = array('syncAsteriskPassword'); // help $return['help'] = array( 'AstAccountCallerID' => array( diff --git a/lam/lib/modules/asteriskVoicemail.inc b/lam/lib/modules/asteriskVoicemail.inc index 349142bd..0e1628c7 100644 --- a/lam/lib/modules/asteriskVoicemail.inc +++ b/lam/lib/modules/asteriskVoicemail.inc @@ -76,6 +76,8 @@ class asteriskVoicemail extends baseModule implements passwordService { $return['selfServiceFieldSettings'] = array( 'syncAsteriskVoicemailPassword' => _('Sync Asterisk password with Unix password'), ); + // self service: fields that cannot be relabeled + $return['selfServiceNoRelabelFields'] = array('syncAsteriskVoicemailPassword'); // help $return['help'] = array( 'AstContext' => array( diff --git a/lam/lib/modules/inetOrgPerson.inc b/lam/lib/modules/inetOrgPerson.inc index 5d4b9f46..5aecb0ba 100644 --- a/lam/lib/modules/inetOrgPerson.inc +++ b/lam/lib/modules/inetOrgPerson.inc @@ -2417,7 +2417,7 @@ class inetOrgPerson extends baseModule implements passwordService { $firstNameField = new htmlOutputText($firstName); } $return['firstName'] = new htmlTableRow(array( - new htmlOutputText(_('First name')), $firstNameField + new htmlOutputText($this->getSelfServiceLabel('firstName', _('First name'))), $firstNameField )); } if (in_array('lastName', $fields)) { @@ -2428,7 +2428,7 @@ class inetOrgPerson extends baseModule implements passwordService { $lastNameField = new htmlOutputText($lastName); } $return['lastName'] = new htmlTableRow(array( - new htmlOutputText(_('Last name')), $lastNameField + new htmlOutputText($this->getSelfServiceLabel('lastName', _('Last name'))), $lastNameField )); } if (in_array('mail', $fields)) { @@ -2439,7 +2439,7 @@ class inetOrgPerson extends baseModule implements passwordService { $mailField = new htmlOutputText($mail); } $return['mail'] = new htmlTableRow(array( - new htmlOutputText(_('Email address')), $mailField + new htmlOutputText($this->getSelfServiceLabel('mail', _('Email address'))), $mailField )); } if (in_array('labeledURI', $fields)) { @@ -2450,7 +2450,7 @@ class inetOrgPerson extends baseModule implements passwordService { $labeledURIField = new htmlOutputText($labeledURI); } $return['labeledURI'] = new htmlTableRow(array( - new htmlOutputText(_('Web site')), $labeledURIField + new htmlOutputText($this->getSelfServiceLabel('labeledURI', _('Web site'))), $labeledURIField )); } if (in_array('telephoneNumber', $fields)) { @@ -2461,7 +2461,7 @@ class inetOrgPerson extends baseModule implements passwordService { $telephoneNumberField = new htmlOutputText($telephoneNumber); } $return['telephoneNumber'] = new htmlTableRow(array( - new htmlOutputText(_('Telephone number')), $telephoneNumberField + new htmlOutputText($this->getSelfServiceLabel('telephoneNumber', _('Telephone number'))), $telephoneNumberField )); } if (in_array('homePhone', $fields)) { @@ -2472,7 +2472,7 @@ class inetOrgPerson extends baseModule implements passwordService { $homePhoneField = new htmlOutputText($homePhone); } $return['homePhone'] = new htmlTableRow(array( - new htmlOutputText(_('Home telephone number')), $homePhoneField + new htmlOutputText($this->getSelfServiceLabel('homePhone', _('Home telephone number'))), $homePhoneField )); } if (in_array('mobile', $fields)) { @@ -2483,7 +2483,7 @@ class inetOrgPerson extends baseModule implements passwordService { $mobileField = new htmlOutputText($mobile); } $return['mobile'] = new htmlTableRow(array( - new htmlOutputText(_('Mobile telephone number')), $mobileField + new htmlOutputText($this->getSelfServiceLabel('mobile', _('Mobile telephone number'))), $mobileField )); } if (in_array('faxNumber', $fields)) { @@ -2494,7 +2494,7 @@ class inetOrgPerson extends baseModule implements passwordService { $faxNumberField = new htmlOutputText($faxNumber); } $return['faxNumber'] = new htmlTableRow(array( - new htmlOutputText(_('Fax number')), $faxNumberField + new htmlOutputText($this->getSelfServiceLabel('faxNumber', _('Fax number'))), $faxNumberField )); } if (in_array('street', $fields)) { @@ -2505,7 +2505,7 @@ class inetOrgPerson extends baseModule implements passwordService { $streetField = new htmlOutputText($street); } $return['street'] = new htmlTableRow(array( - new htmlOutputText(_('Street')), $streetField + new htmlOutputText($this->getSelfServiceLabel('street', _('Street'))), $streetField )); } if (in_array('postalAddress', $fields)) { @@ -2516,7 +2516,7 @@ class inetOrgPerson extends baseModule implements passwordService { $postalAddressField = new htmlOutputText($postalAddress); } $return['postalAddress'] = new htmlTableRow(array( - new htmlOutputText(_('Postal address')), $postalAddressField + new htmlOutputText($this->getSelfServiceLabel('postalAddress', _('Postal address'))), $postalAddressField )); } if (in_array('registeredAddress', $fields)) { @@ -2538,7 +2538,7 @@ class inetOrgPerson extends baseModule implements passwordService { $postalCodeField = new htmlOutputText($postalCode); } $return['postalCode'] = new htmlTableRow(array( - new htmlOutputText(_('Postal code')), $postalCodeField + new htmlOutputText($this->getSelfServiceLabel('postalCode', _('Postal code'))), $postalCodeField )); } if (in_array('postOfficeBox', $fields)) { @@ -2549,7 +2549,7 @@ class inetOrgPerson extends baseModule implements passwordService { $postOfficeBoxField = new htmlOutputText($postOfficeBox); } $return['postOfficeBox'] = new htmlTableRow(array( - new htmlOutputText(_('Post office box')), $postOfficeBoxField + new htmlOutputText($this->getSelfServiceLabel('postOfficeBox', _('Post office box'))), $postOfficeBoxField )); } if (in_array('roomNumber', $fields)) { @@ -2560,7 +2560,7 @@ class inetOrgPerson extends baseModule implements passwordService { $roomNumberField = new htmlOutputText($roomNumber); } $return['roomNumber'] = new htmlTableRow(array( - new htmlOutputText(_('Room number')), $roomNumberField + new htmlOutputText($this->getSelfServiceLabel('roomNumber', _('Room number'))), $roomNumberField )); } if (in_array('location', $fields)) { @@ -2571,7 +2571,7 @@ class inetOrgPerson extends baseModule implements passwordService { $lField = new htmlOutputText($l); } $return['location'] = new htmlTableRow(array( - new htmlOutputText(_('Location')), $lField + new htmlOutputText($this->getSelfServiceLabel('location', _('Location'))), $lField )); } if (in_array('state', $fields)) { @@ -2582,7 +2582,7 @@ class inetOrgPerson extends baseModule implements passwordService { $stField = new htmlOutputText($st); } $return['state'] = new htmlTableRow(array( - new htmlOutputText(_('State')), $stField + new htmlOutputText($this->getSelfServiceLabel('state', _('State'))), $stField )); } if (in_array('carLicense', $fields)) { @@ -2593,7 +2593,7 @@ class inetOrgPerson extends baseModule implements passwordService { $carLicenseField = new htmlOutputText($carLicense); } $return['carLicense'] = new htmlTableRow(array( - new htmlOutputText(_('Car license')), $carLicenseField + new htmlOutputText($this->getSelfServiceLabel('carLicense', _('Car license'))), $carLicenseField )); } if (in_array('officeName', $fields)) { @@ -2604,7 +2604,7 @@ class inetOrgPerson extends baseModule implements passwordService { $physicalDeliveryOfficeNameField = new htmlOutputText($physicalDeliveryOfficeName); } $return['officeName'] = new htmlTableRow(array( - new htmlOutputText(_('Office name')), $physicalDeliveryOfficeNameField + new htmlOutputText($this->getSelfServiceLabel('officeName', _('Office name'))), $physicalDeliveryOfficeNameField )); } if (in_array('businessCategory', $fields)) { @@ -2615,7 +2615,7 @@ class inetOrgPerson extends baseModule implements passwordService { $businessCategoryField = new htmlOutputText($businessCategory); } $return['businessCategory'] = new htmlTableRow(array( - new htmlOutputText(_('Business category')), $businessCategoryField + new htmlOutputText($this->getSelfServiceLabel('businessCategory', _('Business category'))), $businessCategoryField )); } if (in_array('jpegPhoto', $fields)) { @@ -2633,14 +2633,14 @@ class inetOrgPerson extends baseModule implements passwordService { $photoSubSub->addElement(new htmlInputFileUpload('replacePhotoFile')); $photoSub->addElement($photoSubSub); } - $photoRowCells = array(new htmlOutputText(_('Photo')), $photoSub); + $photoRowCells = array(new htmlOutputText($this->getSelfServiceLabel('jpegPhoto', _('Photo'))), $photoSub); $photoRow = new htmlTableRow($photoRowCells); $return['jpegPhoto'] = $photoRow; } elseif (!in_array('jpegPhoto', $readOnlyFields)) { $photoSub = new htmlTable(); $photoSub->addElement(new htmlTableExtendedInputFileUpload('photoFile', _('Add photo'))); - $photoRowCells = array(new htmlOutputText(_('Photo')), $photoSub); + $photoRowCells = array(new htmlOutputText($this->getSelfServiceLabel('jpegPhoto', _('Photo'))), $photoSub); $photoRow = new htmlTableRow($photoRowCells); $return['jpegPhoto'] = $photoRow; } @@ -2653,7 +2653,7 @@ class inetOrgPerson extends baseModule implements passwordService { $departmentNumberField = new htmlOutputText($departmentNumber); } $return['departmentNumber'] = new htmlTableRow(array( - new htmlOutputText(_('Department')), $departmentNumberField + new htmlOutputText($this->getSelfServiceLabel('departmentNumber', _('Department'))), $departmentNumberField )); } if (in_array('initials', $fields)) { @@ -2664,7 +2664,7 @@ class inetOrgPerson extends baseModule implements passwordService { $initialsField = new htmlOutputText($initials); } $return['initials'] = new htmlTableRow(array( - new htmlOutputText(_('Initials')), $initialsField + new htmlOutputText($this->getSelfServiceLabel('initials', _('Initials'))), $initialsField )); } if (in_array('title', $fields)) { @@ -2675,7 +2675,7 @@ class inetOrgPerson extends baseModule implements passwordService { $titleField = new htmlOutputText($title); } $return['title'] = new htmlTableRow(array( - new htmlOutputText(_('Job title')), $titleField + new htmlOutputText($this->getSelfServiceLabel('title', _('Job title'))), $titleField )); } if (in_array('userCertificate', $fields)) { @@ -2702,7 +2702,7 @@ class inetOrgPerson extends baseModule implements passwordService { $uploadStatus->setCSSClasses(array('qq-upload-list')); $uploadStatus->colspan = 7; $certTable->addElement($uploadStatus, true); - $certLabel = new htmlOutputText(_('User certificates')); + $certLabel = new htmlOutputText($this->getSelfServiceLabel('userCertificate', _('User certificates'))); $certLabel->alignment = htmlElement::ALIGN_TOP; $userCertificatesCells = array($certLabel, $certTable); $userCertificatesRow = new htmlTableRow($userCertificatesCells); diff --git a/lam/lib/modules/kolabUser.inc b/lam/lib/modules/kolabUser.inc index 3a91a1dc..5f06856e 100644 --- a/lam/lib/modules/kolabUser.inc +++ b/lam/lib/modules/kolabUser.inc @@ -764,7 +764,7 @@ class kolabUser extends baseModule { $delegateContainer->addElement(new htmlSelect('new_delegate_value', $delegates)); $delegateContainer->addElement(new htmlTableExtendedInputCheckbox('new_delegate', false, _("Add"), null, false), true); } - $delegateLabel = new htmlOutputText(_('Delegates')); + $delegateLabel = new htmlOutputText($this->getSelfServiceLabel('kolabDelegate', _('Delegates'))); $delegateLabel->alignment = htmlElement::ALIGN_TOP; $return['kolabDelegate'] = new htmlTableRow(array( $delegateLabel, $delegateContainer @@ -812,7 +812,7 @@ class kolabUser extends baseModule { $invitationContainer->addElement(new htmlSelect('invPol2', array_values($this->invitationPolicies))); $invitationContainer->addElement(new htmlTableExtendedInputCheckbox('addInvPol', false, _("Add"), null, false), true); } - $invitationLabel = new htmlOutputText(_('Invitation policy')); + $invitationLabel = new htmlOutputText($this->getSelfServiceLabel('kolabInvitationPolicy', _('Invitation policy'))); $invitationLabel->alignment = htmlElement::ALIGN_TOP; $return['kolabInvitationPolicy'] = new htmlTableRow(array( $invitationLabel, $invitationContainer diff --git a/lam/lib/modules/ldapPublicKey.inc b/lam/lib/modules/ldapPublicKey.inc index cd07a403..4b195c8e 100644 --- a/lam/lib/modules/ldapPublicKey.inc +++ b/lam/lib/modules/ldapPublicKey.inc @@ -227,7 +227,7 @@ class ldapPublicKey extends baseModule { $uploadStatus->setCSSClasses(array('qq-upload-list')); $uploadStatus->colspan = 7; $keyTable->addElement($uploadStatus, true); - $keyLabel = new htmlOutputText(_('SSH public keys')); + $keyLabel = new htmlOutputText($this->getSelfServiceLabel('sshPublicKey', _('SSH public keys'))); $keyLabel->alignment = htmlElement::ALIGN_TOP; $keyCells = array($keyLabel, $keyTable); $keyRow = new htmlTableRow($keyCells); diff --git a/lam/lib/modules/posixAccount.inc b/lam/lib/modules/posixAccount.inc index ccf96de1..f7735140 100644 --- a/lam/lib/modules/posixAccount.inc +++ b/lam/lib/modules/posixAccount.inc @@ -2432,7 +2432,7 @@ class posixAccount extends baseModule implements passwordService { if (in_array('password', $fields)) { $pwdTable = new htmlTable(); $pwdTable->colspan = 3; - $pwd1 = new htmlTableExtendedInputField(_('New password'), 'posixAccount_password'); + $pwd1 = new htmlTableExtendedInputField($this->getSelfServiceLabel('password', _('New password')), 'posixAccount_password'); $pwd1->setIsPassword(true); $pwdTable->addElement($pwd1, true); $pwd2 = new htmlTableExtendedInputField(_('Reenter password'), 'posixAccount_password2'); @@ -2453,7 +2453,7 @@ class posixAccount extends baseModule implements passwordService { $cnField = new htmlOutputText($cn); } $return['cn'] = new htmlTableRow(array( - new htmlOutputText(_('Common name')), $cnField + new htmlOutputText($this->getSelfServiceLabel('cn', _('Common name'))), $cnField )); } if (in_array('loginShell', $fields)) { @@ -2465,7 +2465,7 @@ class posixAccount extends baseModule implements passwordService { $loginShellField = new htmlOutputText($loginShell); } $return['loginShell'] = new htmlTableRow(array( - new htmlOutputText(_('Login shell')), $loginShellField + new htmlOutputText($this->getSelfServiceLabel('loginShell', _('Login shell'))), $loginShellField )); } return $return; diff --git a/lam/lib/modules/pykotaUser.inc b/lam/lib/modules/pykotaUser.inc index 99bd75bc..24bb8075 100644 --- a/lam/lib/modules/pykotaUser.inc +++ b/lam/lib/modules/pykotaUser.inc @@ -945,14 +945,14 @@ class pykotaUser extends baseModule { $pykotaBalance = ''; if (isset($attributes['pykotaBalance'][0])) $pykotaBalance = $attributes['pykotaBalance'][0]; $return['pykotaBalance'] = new htmlTableRow(array( - new htmlOutputText(_('Balance')), new htmlOutputText($pykotaBalance) + new htmlOutputText($this->getSelfServiceLabel('pykotaBalance', _('Balance'))), new htmlOutputText($pykotaBalance) )); } if (in_array('pykotaLifeTimePaid', $fields)) { $pykotaLifeTimePaid = ''; if (isset($attributes['pykotaLifeTimePaid'][0])) $pykotaLifeTimePaid = $attributes['pykotaLifeTimePaid'][0]; $return['pykotaLifeTimePaid'] = new htmlTableRow(array( - new htmlOutputText(_('Total paid')), new htmlOutputText($pykotaLifeTimePaid) + new htmlOutputText($this->getSelfServiceLabel('pykotaLifeTimePaid', _('Total paid'))), new htmlOutputText($pykotaLifeTimePaid) )); } // payment history @@ -981,7 +981,7 @@ class pykotaUser extends baseModule { $pykotaPayments->addNewLine(); } } - $pykotaPaymentsLabel = new htmlOutputText(_('Payment history')); + $pykotaPaymentsLabel = new htmlOutputText($this->getSelfServiceLabel('pykotaPayments', _('Payment history'))); $pykotaPaymentsLabel->alignment = htmlElement::ALIGN_TOP; $return['pykotaPayments'] = new htmlTableRow(array( $pykotaPaymentsLabel, $pykotaPayments @@ -1019,7 +1019,7 @@ class pykotaUser extends baseModule { $pykotaJobs->addElement($spacer); $pykotaJobs->addElement(new htmlOutputText($job['pykotatitle'][0]), true); } - $pykotaJobsLabel = new htmlOutputText(_('Job history')); + $pykotaJobsLabel = new htmlOutputText($this->getSelfServiceLabel('pykotaJobHistory', _('Job history'))); $pykotaJobsLabel->alignment = htmlElement::ALIGN_TOP; $return['pykotaJobHistory'] = new htmlTableRow(array( $pykotaJobsLabel, $pykotaJobs diff --git a/lam/lib/modules/sambaSamAccount.inc b/lam/lib/modules/sambaSamAccount.inc index 4fba2926..ed0c59af 100644 --- a/lam/lib/modules/sambaSamAccount.inc +++ b/lam/lib/modules/sambaSamAccount.inc @@ -243,6 +243,8 @@ class sambaSamAccount extends baseModule implements passwordService { 'password' => _('Password'), 'sambaPwdLastSet' => _('Last password change (read-only)'), ); + // self service: fields that cannot be relabeled + $return['selfServiceNoRelabelFields'] = array('syncNTPassword', 'syncLMPassword', 'syncSambaPwdLastSet'); // help Entries $return['help'] = array ( "displayName" => array( @@ -2303,7 +2305,7 @@ class sambaSamAccount extends baseModule implements passwordService { if (in_array('password', $fields)) { $pwdTable = new htmlTable(); $pwdTable->colspan = 3; - $pwd1 = new htmlTableExtendedInputField(_('New password'), 'sambaSamAccount_password'); + $pwd1 = new htmlTableExtendedInputField($this->getSelfServiceLabel('password', _('New password')), 'sambaSamAccount_password'); $pwd1->setIsPassword(true); $pwdTable->addElement($pwd1, true); $pwd2 = new htmlTableExtendedInputField(_('Reenter password'), 'sambaSamAccount_password2'); @@ -2319,7 +2321,7 @@ class sambaSamAccount extends baseModule implements passwordService { $sambaPwdLastSet = date('d.m.Y H:i', $attributes['sambaPwdLastSet'][0]); } $return['sambaPwdLastSet'] = new htmlTableRow(array( - new htmlOutputText(_('Last password change')), new htmlOutputText($sambaPwdLastSet) + new htmlOutputText($this->getSelfServiceLabel('sambaPwdLastSet', _('Last password change'))), new htmlOutputText($sambaPwdLastSet) )); } return $return; diff --git a/lam/lib/modules/shadowAccount.inc b/lam/lib/modules/shadowAccount.inc index c1b4bea8..fe3996ec 100644 --- a/lam/lib/modules/shadowAccount.inc +++ b/lam/lib/modules/shadowAccount.inc @@ -690,7 +690,7 @@ class shadowAccount extends baseModule implements passwordService { $shadowLastChange = $date['mday'] . "." . $date['mon'] . "." . $date['year']; } $return['shadowLastChange'] = new htmlTableRow(array( - new htmlOutputText(_('Last password change')), new htmlOutputText($shadowLastChange) + new htmlOutputText($this->getSelfServiceLabel('shadowLastChange', _('Last password change'))), new htmlOutputText($shadowLastChange) )); } return $return; diff --git a/lam/lib/modules/windowsUser.inc b/lam/lib/modules/windowsUser.inc index 8fdcc8e9..241a7548 100644 --- a/lam/lib/modules/windowsUser.inc +++ b/lam/lib/modules/windowsUser.inc @@ -1559,7 +1559,7 @@ class windowsUser extends baseModule implements passwordService { if (in_array('unicodePwd', $fields)) { $pwdTable = new htmlTable(); $pwdTable->colspan = 3; - $pwd1 = new htmlTableExtendedInputField(_('New password'), 'windowsUser_unicodePwd'); + $pwd1 = new htmlTableExtendedInputField($this->getSelfServiceLabel('unicodePwd', _('New password')), 'windowsUser_unicodePwd'); $pwd1->setIsPassword(true); $pwdTable->addElement($pwd1, true); $pwd2 = new htmlTableExtendedInputField(_('Reenter password'), 'windowsUser_unicodePwd2'); diff --git a/lam/lib/selfService.inc b/lam/lib/selfService.inc index 99c01317..ae65f28c 100644 --- a/lam/lib/selfService.inc +++ b/lam/lib/selfService.inc @@ -352,6 +352,9 @@ class selfServiceProfile { */ public $readOnlyFields; + /** List of override values for field labels: array( => label) */ + public $relabelFields; + /** configuration settings of modules */ public $moduleSettings; @@ -386,6 +389,7 @@ class selfServiceProfile { 'fields' => array('posixAccount_password')) ); $this->readOnlyFields = array(); + $this->relabelFields = array(); } }