From 036d61d6983475631e5a92810535df6d5aea0d5d Mon Sep 17 00:00:00 2001 From: Kokomi <102026640+yoimiya-kokomi@users.noreply.github.com> Date: Tue, 14 Feb 2023 04:43:14 +0800 Subject: [PATCH] =?UTF-8?q?`#=E8=A7=92=E8=89=B2`=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 20 ++- apps/character/AvatarWife.js | 2 +- apps/profile.js | 6 +- apps/profile/ProfileStat.js | 153 +++++++++--------- components/App.js | 4 +- components/Cfg.js | 2 +- components/Common.js | 2 +- components/Format.js | 2 +- .../{cfg-lib/cfg-data.js => cfg/CfgData.js} | 0 .../{common-lib/elem.js => common/Elem.js} | 0 .../plugin.js => common/Plugin.js} | 0 .../render.js => common/Render.js} | 0 config/system/cfg_system.js | 75 ++++----- resources/admin/index.html | 2 +- .../meta/character/优菈/imgs/splash.webp | Bin 874268 -> 859014 bytes .../meta/character/瑶瑶/imgs/splash.webp | Bin 174046 -> 356788 bytes tools/char-data.js | 2 +- 17 files changed, 139 insertions(+), 131 deletions(-) rename components/{cfg-lib/cfg-data.js => cfg/CfgData.js} (100%) rename components/{common-lib/elem.js => common/Elem.js} (100%) rename components/{common-lib/plugin.js => common/Plugin.js} (100%) rename components/{common-lib/render.js => common/Render.js} (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 31bca269..243fb175 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,18 @@ -# 2.2.3 Dev +# 2.3.0 Dev -* 【Dev测试分支,暂未正式公开,预计2.17左右发布】 +* `【Dev测试分支,开发中】` + * 如需体验可切换至miao-plugin仓库dev分支 + * dev功能可能不稳定,建议具备一定排错能力的勇士体验 + * 2.3.0正式版预计2.19日发布,当然也有可能继续咕... +* 增加`#角色`功能,查询并展示Mys角色信息 + * Yunzai需要跟随游戏版本升级的功能会在miao-plugin中逐步提供,以保障基础功能相对长期可用 + * 大部分功能目前默认关闭,可在`#喵喵设置`中启用 * 重写底层面板、角色数据获取与保存逻辑 * 底层完全兼容面板及Mys数据,对于miao-plugin的大部分场景可做到数据通用 - * 角色数据及天赋增加缓存逻辑,有缓存数据情况下可在ck失效/验证码等情况下正常使用功能 - * 面板底层数据结构优化,Enka下使用statsIds存储圣遗物数据 -* 初步增加`#角色`功能,查询并展示Mys角色信息,尚未完善 - * Yunzai需要跟随游戏版本升级的功能会逐步在miao-plugin中提供,以保障对应功能相对长期可用 - * 暂时默认关闭,如需开启可在`#喵喵设置`中启用 -* 其他功能及界面优化 + * 角色数据及天赋增加缓存逻辑,有缓存数据情况下可在ck失效/验证码等情况下正常使用大部分功能 + * 面板底层数据结构及存储逻辑优化,兼容老版本数据 + * Enka服务下使用statsIds存储圣遗物数据,能够更精确的计算角色属性 +* 其他功能及界面优化,部分已知问题调整 * `#上传深渊` 界面与样式调整 * `#刷新排名`、`#禁用排名`、`#启用排名`可由群管理员进行管理 diff --git a/apps/character/AvatarWife.js b/apps/character/AvatarWife.js index bab1b961..7c7aff0a 100644 --- a/apps/character/AvatarWife.js +++ b/apps/character/AvatarWife.js @@ -64,7 +64,7 @@ const Wife = { if (!Common.cfg('avatarPoke')) { return false } - } else if (!Common.cfg('avatarWife')) { + } else if (!Common.cfg('avatarCard')) { return false } diff --git a/apps/profile.js b/apps/profile.js index 0c270ca1..d0868326 100644 --- a/apps/profile.js +++ b/apps/profile.js @@ -2,7 +2,7 @@ import { App } from '../components/index.js' import { profileHelp } from './profile/ProfileCommon.js' import { profileArtisList } from './profile/ProfileArtis.js' import { profileDetail } from './profile/ProfileDetail.js' -import { profileStat } from './profile/ProfileStat.js' +import ProfileStat from './profile/ProfileStat.js' import ProfileList from './profile/ProfileList.js' import { uploadCharacterImg, delProfileImg, profileImgList } from './character/ImgUpload.js' import { enemyLv } from './profile/ProfileUtils.js' @@ -71,13 +71,13 @@ app.reg({ profileStat: { rule: /^#(面板|喵喵|角色|武器|天赋|技能|圣遗物)?练度统计$/, - fn: profileStat, + fn: ProfileStat.stat, name: '面板练度统计' }, avatarList: { rule: /^(#(角色|查询|查询角色|角色查询|人物)[ |0-9]*$)|(^(#*uid|#*UID)\+*[1|2|5-9][0-9]{8}$)|(^#[\+|+]*[1|2|5-9][0-9]{8})/, - fn: profileStat, + fn: ProfileStat.avatarList, name: '角色查询' }, diff --git a/apps/profile/ProfileStat.js b/apps/profile/ProfileStat.js index e65d039c..baffeb06 100644 --- a/apps/profile/ProfileStat.js +++ b/apps/profile/ProfileStat.js @@ -1,77 +1,86 @@ import { Cfg, Common } from '../../components/index.js' import { MysApi, Player, Character } from '../../models/index.js' -export async function profileStat (e) { - let isMatch = /^#(面板|喵喵|角色|武器|天赋|技能|圣遗物)练度统计?$/.test(e.original_msg || e.msg || '') - if (!Cfg.get('profileStat', false) && !isMatch) { - return false +const ProfileStat = { + async stat (e) { + let isMatch = /^#(面板|喵喵|角色|武器|天赋|技能|圣遗物)练度统计?$/.test(e.original_msg || e.msg || '') + if (!Cfg.get('profileStat', false) && !isMatch) { + return false + } + return await ProfileStat.render(e) + }, + async avatarList (e) { + if (!Cfg.get('avatarList', false)) { + return false + } + return await ProfileStat.render(e, true) + }, + async render (e, isAvatarList = false) { + // 缓存时间,单位小时 + let msg = e.msg.replace('#', '').trim() + if (msg === '角色统计' || msg === '武器统计') { + // 暂时避让一下抽卡分析的关键词 + return false + } + + let mys = await MysApi.init(e) + if (!mys || !mys.uid) return false + + const uid = mys.uid + + let player = Player.create(e) + + await player.refreshMysInfo() + + let avatarRet = await player.refreshAndGetAvatarData({ + detail: 1, + talent: 0, + rank: true, + retType: 'array', + sort: true + }) + + if (avatarRet.length === 0) { + e.reply(`暂未获得#${uid}角色数据,请绑定CK或 #更新面板`) + return true + } + + let talentNotice = [] + + if (!mys.isSelfCookie) { + talentNotice.push('未绑定CK,信息可能展示不完全') + } + + let faceChar = Character.get(player.face || avatarRet[0]?.id) + let face = { + banner: faceChar.imgs?.banner, + face: faceChar.imgs?.face, + name: player.name || `#${uid}`, + sign: player.sign, + level: player.level + } + + let info = player.getInfo() + info.stats = info.stats || {} + info.statMap = { + achievement: '成就', + wayPoint: '锚点', + avatar: '角色', + avatar5: '五星角色', + goldCount: '金卡总数' + } + + return await Common.render(isAvatarList ? 'character/avatar-list' : 'character/profile-stat', { + save_id: uid, + uid, + info, + updateTime: player.getUpdateTime(), + isSelfCookie: e.isSelfCookie, + talentLvMap: '0,1,1,1,2,2,3,3,3,4,5'.split(','), + face, + avatars: avatarRet, + talentNotice + }, { e, scale: 1.4 }) } - - // 缓存时间,单位小时 - let msg = e.msg.replace('#', '').trim() - if (msg === '角色统计' || msg === '武器统计') { - // 暂时避让一下抽卡分析的关键词 - return false - } - - let isAvatarList = !/练度统计/.test(msg) - - let mys = await MysApi.init(e) - if (!mys || !mys.uid) return false - - const uid = mys.uid - - let player = Player.create(e) - - await player.refreshMysInfo() - - let avatarRet = await player.refreshAndGetAvatarData({ - detail: 1, - talent: 0, - rank: true, - retType: 'array', - sort: true - }) - - if (avatarRet.length === 0) { - e.reply(`暂未获得#${uid}角色数据,请绑定CK或 #更新面板`) - return true - } - - let talentNotice = [] - - if (!mys.isSelfCookie) { - talentNotice.push('未绑定CK,信息可能展示不完全') - } - - let faceChar = Character.get(player.face || avatarRet[0]?.id) - let face = { - banner: faceChar.imgs?.banner, - face: faceChar.imgs?.face, - name: player.name || `#${uid}`, - sign: player.sign, - level: player.level - } - - let info = player.getInfo() - info.stats = info.stats || {} - info.statMap = { - achievement: '成就', - wayPoint: '锚点', - avatar: '角色', - avatar5: '五星角色', - goldCount: '金卡总数' - } - - return await Common.render(isAvatarList ? 'character/avatar-list' : 'character/profile-stat', { - save_id: uid, - uid, - info, - updateTime: player.getUpdateTime(), - isSelfCookie: e.isSelfCookie, - talentLvMap: '0,1,1,1,2,2,3,3,3,4,5'.split(','), - face, - avatars: avatarRet, - talentNotice - }, { e, scale: 1.4 }) } +export default ProfileStat \ No newline at end of file diff --git a/components/App.js b/components/App.js index 0d30b3cb..ca8d3b56 100644 --- a/components/App.js +++ b/components/App.js @@ -1,5 +1,5 @@ import lodash from 'lodash' -import plugin from './common-lib/plugin.js' +import Plugin from './common/Plugin.js' class App { constructor (cfg) { @@ -27,7 +27,7 @@ class App { let rules = [] let check = [] let event = cfg.event - let cls = class extends plugin { + let cls = class extends Plugin { constructor () { super({ name: `喵喵:${cfg.name || cfg.id}`, diff --git a/components/Cfg.js b/components/Cfg.js index ea4394ca..df4b2091 100644 --- a/components/Cfg.js +++ b/components/Cfg.js @@ -1,6 +1,6 @@ import fs from 'fs' import lodash from 'lodash' -import cfgData from './cfg-lib/cfg-data.js' +import cfgData from './cfg/CfgData.js' const _path = process.cwd() const _cfgPath = `${_path}/plugins/miao-plugin/components/` diff --git a/components/Common.js b/components/Common.js index 785c1303..f4a55a50 100644 --- a/components/Common.js +++ b/components/Common.js @@ -1,5 +1,5 @@ import Cfg from './Cfg.js' -import render from './common-lib/render.js' +import render from './common/Render.js' import { Version } from './index.js' import lodash from 'lodash' diff --git a/components/Format.js b/components/Format.js index 3a09d073..f82bced3 100644 --- a/components/Format.js +++ b/components/Format.js @@ -1,5 +1,5 @@ import lodash from 'lodash' -import Elem from './common-lib/elem.js' +import Elem from './common/Elem.js' import { Cfg } from '../components/index.js' let Format = { diff --git a/components/cfg-lib/cfg-data.js b/components/cfg/CfgData.js similarity index 100% rename from components/cfg-lib/cfg-data.js rename to components/cfg/CfgData.js diff --git a/components/common-lib/elem.js b/components/common/Elem.js similarity index 100% rename from components/common-lib/elem.js rename to components/common/Elem.js diff --git a/components/common-lib/plugin.js b/components/common/Plugin.js similarity index 100% rename from components/common-lib/plugin.js rename to components/common/Plugin.js diff --git a/components/common-lib/render.js b/components/common/Render.js similarity index 100% rename from components/common-lib/render.js rename to components/common/Render.js diff --git a/config/system/cfg_system.js b/config/system/cfg_system.js index 92fded68..7d76ec99 100644 --- a/config/system/cfg_system.js +++ b/config/system/cfg_system.js @@ -1,4 +1,39 @@ export const cfgSchema = { + apps: { + title: 'Yunzai功能(开启使用喵喵版功能)', + cfg: { + avatarList: { + title: '#角色 #UID', + key: '角色列表', + def: false + }, + avatarCard: { + title: '#刻晴 #老婆', + key: '角色卡片', + def: true + }, + uploadAbyssData: { + title: '#深渊', + key: '深渊', + def: false + }, + profileStat: { + title: '#练度统计', + key: '练度统计', + def: false + }, + help: { + title: '#帮助 #菜单', + key: '帮助', + def: false + }, + avatarPoke: { + title: '戳一戳展示角色卡片', + key: '戳一戳', + def: true + } + } + }, profile: { title: '角色面板相关设置', cfg: { @@ -12,12 +47,6 @@ export const cfgSchema = { key: '面板替换', def: true }, - profileStat: { - title: '面板练度统计', - key: '练度统计', - def: false, - desc: '使用【#面板练度统计】功能取代【#练度统计】功能,默认关闭' - }, groupRank: { title: '群面板排名', key: '排名', @@ -63,34 +92,6 @@ export const cfgSchema = { } } }, - char: { - title: '玩家&老婆卡片展示', - cfg: { - avatarCard: { - title: '角色查询', - key: '角色', - def: true, - desc: '使用喵喵版角色卡片作为默认角色卡片功能', - showDesc: false - }, - uploadAbyssData: { - title: '上传深渊', - key: '深渊', - def: false, - desc: '使用【#上传深渊】功能取代【#深渊】功能,默认关闭' - }, - avatarWife: { - title: '老婆查询', - key: '老婆', - def: true - }, - avatarPoke: { - title: '戳一戳卡片', - key: '戳一戳', - def: true - } - } - }, wiki: { title: '角色资料与信息查询', cfg: { @@ -137,12 +138,6 @@ export const cfgSchema = { input: (n) => Math.min(200, Math.max(50, (n * 1 || 100))), desc: '可选值50~200,建议100。设置高精度会提高图片的精细度,但因图片较大可能会影响渲染与发送速度' }, - help: { - title: '喵喵作为默认帮助', - key: '帮助', - def: false, - desc: '开启后将使用喵喵版帮助作为Yunzai的默认帮助,默认关闭' - }, commaGroup: { title: '数字逗号分组', key: '逗号', diff --git a/resources/admin/index.html b/resources/admin/index.html index 3ff6452d..4347bc90 100644 --- a/resources/admin/index.html +++ b/resources/admin/index.html @@ -19,7 +19,7 @@
oSD1SL4jG6mV3w&N?CfrZJbWQ{{3e@Ak#NyqpI)0lU+7@cYsT?$%ggUl01-1l#Ks0Z zV#3x# { zuEkO;77jrYFhfY=1xc7igB3x!at7gE8e_PKGkKDIF2K5dsnBWT)WIN;aWf9yjmOL! z3m>%=jL-+d2x0&tyRqUv)XdTVp1=Twcu!KmDo(py))oMGnO 4$5@$h<-o>0yV5D+P0^m$(0mn*&7Z4h%8 zMFX@5B0$st?&%?Z&}F_+ K8&Yu(XsInP`=CfGFjmCmyay@HGOdx6J#JA|J(aQ3T2nagiyVBuKoxzt-4Tn ztQnAQyK4(tY;$M)#X@|#_HWtx)fc351PG!V3+13@WsHC-yfcsvW9q^rhk3y8sG5rw z6$!A9X}b~O(fFJsgD~_i`ce)|fb&DXhl#U4LN}I+B?2{OuqC@>$47<7DmI2&IE!Q5 zDP7>KQ4$@! ARd;i{YaoJt9MHm zu{q56to!u5OP(Gemb12fsGuuP9RV!@+Z-l>Y$#mME+=Sa#a@3gM~ LmCmlaBFo z_VheN|J!lO5??SF1BxZ3B^_%Ml$j!cOMsC2W=fTM`{`-_TLL0@4+VfyT)}*$q{<`$ zYMl}3i>SVCEHAWl_D$|b_!fokvu6ruk+(1fXdDXwJU=8B1!F!SdT-Wn20%qwgWK4W zUL2GUt1r9UPP=oQa=w{UPnfL&yi8hjbNE-BrUI6!kA;vqf`oMQ=Ku^4p!84>gvTF! zaeKP@;8=Svqo}J(v_zg62Oj23&cin8z6`q`5tiH)@o|e+8UV1)X{>da xj(@VRbBnM5=c%h8X3hjyXqW^ZGqpm?SJHlU$g0c}4r;88w zs+6MP)8kk8Kxyhnf97O?Qa}{*Ojlv4Y^B{K9!`xjFZ(NuMhlt&VM1iFFl+EDEN*|$ z*8u -@d++d9u&8b!e(r1_fQK6y=M?IOkE$o0gJFM^k+9kt5Bx3 zE)k&gb0A%x2Tqhr15gks5CKrQ2A2~UIDM1}yMcDkV#)L(Pzq)|8c^mQucI2+_>a@$ zkFZ{p&D7TmXLt_}E%R(yc>Pr_&gv5Yu+byz!UGh7&%sWt-!Ysl5lk8c@GxA(eo3){ z)|h~{)14^hbbSb{G~(+^d>{lAVSP$O1qQ65m_h|PDnI}yv+rCrD3|fEt#6Xm#MZ9d zLh+?xo2*R|HRu(HR0F{1a}y*rlFP%008Don&`oXkLxWTq`jZ*TZKv2%XmbD_+{w)L zcfkQ(JprK1Oaev1p@Bj7^Aa&@1Oej804W<3FP`&3G-p4UNGT$WO;m(dRF0=}X|+X( zp0QI{39ef&D34^5hnzqF;<6j2*dPFkQs{xgv4EZy7iHiB1w{pFU#|IA9W9sxrC;Fg z2wj|qAZ9&zEZhMM(F0?+0EKj2vLY;#64yF)r7bk~iU)>)Fhit|#uP}?Jy+l8%5#BT z0VOE+gH0pAvoHbf47IHj7|24!3;qJx!((xX0|ua^n?P-42M^W878$f3h=4133%jF8 znXo7nyf|l^2udS>%jQKf_}{ibSs#X=n0n?T#P_L~FFL?XDf8IPDdNB&EP@Y3*ae5B zvnWCPBl>K8RIZgMrk;~76GZlA(Q>jVP*)_6CBQXE@x@CNd3g#XYw|&Sd>Q>`kplb* zLwE#)oEq?fES1_aSk87gMRFmvLF@+*=~(d==TkClL8Pt%r;G$(>r3@@N4RCbuEkWi zw9tEyA`J>!hjK{3HH2rkANE63>(ICnk_K8XCI(tu1OA^G1KRvuUNc=Y9&tv$pla#- z?f7&2Yx~ogu>v~#z>m)YW0{mV $X7I;OEdBF6Fnugs8Osy_gLrDR>B|eqQ`?0>yP>2HqSKhi*>c x=V3W5e|JkTe0H&VgvpYA4?(4Mk?_~{49ESnrnMBKlAvEXn4 zjM|LnKEtlXp7!*is$ZTZSg#OdFU}bmxi3jvdb&r)KX_rJZ6p f-!b2!r}>{PjwAeddY5 Z#XxLuO-{$wq48 zMBUNDF2!S+Huhipw9=2%16hZoWvW%GD}-vV05bSByJD0gcxb N+thDbwBM`8M!sXG;?(IyjqZV*~{L}#eBg3r9e*V1&T{I zX}gVGYGQSt@o^`RvxZP`_xps+?gqeQLLq8G;a1@hYcF0pmX#J{F9jW>lua?1w6Uts zBt!|5UlU~QMeaT4DGiQ@62Q=J0KdP%3K #*6X_Krs3{nWS1GN-pSp@IYD6_N;{)o~@P*VMAV zd+NL3FB=b2UbD@+u3Xj)6qM` %J=vF{3#DuX*ODEUgunx-?hA6y$;S8Yvyzhm4}aABw0N!V7=|X7C>b8Q-Be{ ze~*{k64xs{)l&^unmsgSiqn_PAK8sbELi2zOgK0?-V9wozDmf>K3UU>TgdT=Uw0jb zK3Hs)@tJYnJs*GUW?va!$0WL#;{KrfqCf+zj?!jII0_c)&`Wh^A9O_P*yNwScduFM z(aF S(w-!gLk*%2>k+&4RV~2pczs=588o)Wv4t8?1aCR{v>K*$E>sKfJiC!}_(wRJz z{fyrG`Dkk0!wuamQ(fwvx9cZ2c^#|)iF2k4PXO)Gm=M45A+|`b6fFvwSNUG?#?fkq zAf7-03rkIon7- mDKS`|V( z6Fe98dF<<0ARRQZ z8Ga&88c&vCxxE#N(ZgRS$Pt|(LmK>_(=m}MW!*!8Ja6CD- zurN$lubU-{L#a_$<4MzWv29A!SFHX|Q=a0&7itRPv4k(+5Q^mNJjJl@0_u)JXvdnS z5VJ-Pe3w2K$vIMSer^RQ+ixz3<|8%z34<%*b5qh5F@w#GJh@~;m_v8ws@i=JNA?DV zUO77cx~?e!Z4mCbn5D2)HovJnu~A(B{b8lK8NY!14C$~RZe9_c#_eLl^Lu)2z54FN zISxWCpPEy?ZTjN4D>&G5rBf}HP5tEhpOWER*BUDeYh8 N(tN~Tv(!8}hx6WJ#W8?>{`k-%ZEWlWC$2fa zf;3xFBiK^c4$6#@llj`*q;>y2yPYTaq 9Thc&zDC_DT>Dn@vMj z>Y1Hd`09tI1j^B|GybH&=hEEg!b XTf5;34 S`9Hhb|FmRFmTdA@x@xn(ZSKgIP-6kSi8+i^>Xuy zR)CwwSnK7ws;V |L*bPwLRHCc5nX)434qY_gDE$M2YM=SN{xk z{~tV_&d* h`zDMa_%el$Kw_ ba{IUJ(|r|o^R%!0CA+gcdES}IvsB;9qbR`cWF`J;VsLcq)fYhoV&hSF z@~f=uFjj^#0mM)$?#Z?6 9?N;!7<-cNUi7EjxQD_#Fwc1+5C41PE15^$n6n4jE*40~`a z85NI0v>?LUqTvcmd<>oeGRMtp879FsV(-aA5SFL6ZOfmKD-|9q35Kp7c4JLf5+*zd zB_W?q#6MyLMD}s8P8nBr_KbUUZz_-G)w<86mCuE7rRV=REtT!Vy*Dkd^L%Qs U66w^37_>pu#TE{ej}H= z0z%Zp8`~_Q tc}0prpstD#rJsqP2x5GU_~?QMv3_4E z9UTjn&?l$c0zM`NA`}M3jw&j6Qn}e-*qe~utcq;3{ha^Xnd`|(Y0c*Q9P*GV&^)rM z_URvked&=8eypg=tel-~_VVU9_^L|eCD&3-v&Uq!SZc%Dg dk3Gi*(i!Sut}!Sj?HhPOlkx2O;a#t z*#j5r=#!4gMRZLg+hw05L&oNX?NW;A@BRX7vfruyLN@**tgmL;%6Q{orB*-^C|#@b zdiIj*zKYIY{ZpcV<@JOMv9vP96}6%r(T@E0$oxO!M-U^76$KsH@ug@vu{WJQt79_t zFLw%NUdR3+<5aJ^r-Phq)kMJsS=F(z=~mm9Z(*f@|9#^YK*VkdVa=RQBnF4P5R<9* ztmUzi(W?5P>6h$4mK)#VwR_9h*elQD_2{>LxBLHb{yNM2( I`I2UKXLh$wek+$YQL)(1Z#x@3bl8TQo35_eXe1)>IVczG z9Sa(WYIC|1%-**rX8nxM_C^^cj#R|Q4>3JfRNn}AcFd?(N$_GLmCY=bZHcNLt9*I) z+GDccXt4pQe(%533m{odX?zvowsCOxrQ*5YSg<$3$bkh|UB2W@W!p;|%L^mtZV0TX zyl?sNGqSS-k}h9da{R_-XVajw-sebFl7&n6^sZ@#LDZkG4tx#fBLi5t;P3ujG 6;?MN zxtfE{6IIVMl}KXlChoOgOPBoj9ps9f$BJmi(fpaKamDB9ezBkpe6f!{0l4b=b85n| zn7EW*fr_%suZH{O{un58m$AOre7V^m_lnG2%Jc56T F(cx^0vdp%B|Tyz0)u3dM@VXEG)d8IA6it8FHU5vtR!RsE-m1!y7X(1YCuq zPWWxe0jB6HO~92Mm>rQK2rWi&ZqZ)dz3pP+h@Yd=RL1_z#C2>NthwsaWZVa3TgaK6 zKRf-xpyvW1YQd2tgdqP-zrI%8&%A59d;H}>?q=)v+1>9ud+uP`n0XK}D-w`iJi!H! z#|Mm@81pz-vdcRuB2%|_VyQpY>UV}IySfsl>GqjPl79w#lNoWPP4=hK3D$usXf{gK z!Q-H{znrV-4RCbb(m4(4eS8~DH>!tB?U(=xrc0m@jDZ}wRdX=S0NF|ywPVpQpG%#4 z15bALDPE)izY0OgLh3&uylOPsX#p6QD#+EVQ%&o&x$(^Rt_|E%G^(}z?bmb<1d0@R zLN6qK65SotjK)`fl4O~I`r}X&iA*cQ`oeu6aaAsOQ!qRj1Q$C_s|&33f8DTaEEs*h zz*VqRzkWq?;$hA*YoJqE>F0^l-tscql&b4&M?(4py&Wbm3NIPL6WW>*Tuhn13S?3! z3tWqCBWcbEcwJI-t=kQ-lyQ%!m8|(1YHEsy!U@%usaIe1KN)jad_zj6E7QeR2*z~= z3f;i~1E-zYh!F3hr}E(Y6c78l>QeSt?cpEkx%*}#{Rwemoo4Mz=2Yb!YFW6*12hu* zoHzyl7i7`uonELeuWsT{I&HpqmpZ|K3#|f#kWhtYElB*ok@9`Um`|~T!S9LT)XiO@ zkJQ0JZjxLp(torr=cik8I)D929SqAUCj?KNlf)x)Te9buULpb}!?-(w!s6VsInRze zsBh2CW5n^vF_6WIeq+A3|J=z6<#Cx=Rr_^9UXTR2F%yX!!tq(2MH vd&~^3Hrm^ihGk^QzlT;=(-a0=+^S &Xp_0SY+aP6$9(tB|0x#!>KvyXKf~y*;;}y0^&Tetqk! z6ZD7DGA ZWW;6iB}(;2B0vgy`2g#ego zVF4`pL#E&~A+OLmOHXTN!Kj-SFAvXucWz+oqb1f#5;!)$o>3wCExZg|4LU6gB>! ztLa?BRW{&{x5! =hk &@L;+!abijw+9i8*N}6ji19Az$df#RiR9<@PJ7C!Fl-5!+a1*i@YwM^D#|x^`)MRDZqxo3hXK;vDPUc!IilKlMQnKn6<0g~a zWi|_b4@LX`<^8KgomH$c>LVNSTzdR{{}Oplr9S};-cW?7(?iFG6;u!2c{s(gAfV<( zk<0`0PT8~~F5G)*Y=lc$5nFw>@a1$FWYLfRWe4@}O|du-QKg)yz#0yYqw>@u;&foa znQDZPmMotb;?4|OEIF8r0wxqmxc*NY=BJ%XUUWKbefllaA|EaEvtXK}O!nEUtn*b- zQFG&LIwOH7Pv1``?x`Lr)wS}dgWrYOa6DG7Hb}P&qc6ygI@H!=#&{{@xS!CI=;SUc z+^J6yq>D3a9viQvt7`r*OBcT x(=3w#Q?0RlHK|G%syZ-c)B*BY6ZGUMFgh);%7^JKn=o zsTdg=`Q!BSF_g4x<1bFF_;?0GU*G%@14mpA;j=GF`|3S&U$MWb7&)exmoOGpBwjL| zBTRy-8%+a| GN#UoO)|-cbbejIzQ|&eb_b+4~=D=cKWKt^!ZDow&Cr{%x?nzKxUn z^2^H=HLrSrEmxBQ6-qnY^iRHqx_)QP>EKjE0yLAa{RVqC{HN*clx+AJq(CP(47ksL zpFHhJ`i P)-h rlaCS6QUs<4LU2e>AK zVh#E^TPZO+om$zqzjd_(?4J(l{&UnwSCn8PH#QX#WC8|)PVpMQNXv(zg#&NXr0Btm zCZ;6NaWJk0F0FWxbPi44*B#EB2yTMLUhvm+jwn~mgDt^QSIY3}uV?#j(W6(lcb@yr zlXA&jq5`xk!$d`-)M;z(%7+s|6Y5yzBn8mtN(CDl -Td5l|2 z#gVlg>?Gr?EMEmSDh}1F?C3syBK=mfB3fYD|2rosf!Yy3x|MZyli636cL^?6=HQ@5 zUoFV;zo{cl#$)(6DHX7n6N)PUhE123LrQ$@UZ8amk9kTNxeMnDxsx$00fhjDuN=@c z>~R>tdgR%4=Ql`z(;~OmPNUpTh3115TTH!|k12yGUB-?2$(i!aP@o^+@w%rw9RJYb zFP0z52H`96piY*iMK}95YE0Fn=H{lT#TP-i6-Y%&gvj*3a&2uK{+ENeS6c@gJmw&n zpo+1ps`1x%-+582zS{nW5JN9RrijluA2}ijk(?M>bH&1Ey$YPdZYlBq9oNpyoeIA% zTBj*$+*0wB#K7rjxJoJ@T>vH>04a#hXT6Of(($-HeB7`c>0hRCvPDpsjSva)=Q(mj zokb55Gj?pf>!Td4ZsnFj1rz`|(UdP2+XBK(F*xE(13%d}Zo_vnJAa?AOeczhH84BD zIS*+9t)i@d_lV( pS9sAGI0JiQZ-P$HCe3&1}Y%p#!jLA+I z$4=e#D^i=SBOqItQ}{GCHb1fU<4}2%0%sJ4bj5$7B4+LR%T{`Ba3mBf_HaVklkex< z0Kc`rk7a#(5L+P5$I;aYR_QnS3rW9=qEFD0mJ4!!`~>=mG5Zxg?q~ AGTX-I22a8lsx%sBrFU3d^IOok&)@u zHFRI_2RLz18}W3mCbZ7E=pHgvT1`^ ^O9=lnATsTD~PNTY6`QmF)8 zheYO=_cvl8f9|XYk9_v!0zN-Yyp50x!YSCSTL)#^rAf^1UB6x_vIQ&GffP|7W8*+$ zGu9koBMsEsdG5#=b2}#7m>+%iv25AH!pfAG)zqm&mF5HMlfcupH>hXrx}Pw6kgKDV zf)$dgz(eg(Be}DwtA&oe+^3wlg{6QyNihaAS|9*7nJu!UB|^U8DcoibW#;Ob1wb$^ z+6*aOpzQ?pjt$rk$`zBAnG&aSa5DkDF&?1wNwPvIcdQ?@$)W##OuT(8-Fo?1rL$(2 z)PCRFkz)-12(CzCeWliS^Ska_D_qmw@~(t <3+Zb^8B zk4G22)PF~)M~|+1CZ8T#7Z3@O+o+9IV6ke1T-?k?Q+*J7`v~?+@Vv_Gwd(fYiIhay zHrWKveX~ylMdea_?shY_%(*{O1p^j_4vF7R|5yw@`qg`Teaq4Kqt-h>F`?VrEo;PM zgh~iU9k-3y2$|wT9;jJL3wDT+iGI<0r1 ##X-vVx!mB z2 &H-sN60)04gZbXSI%9+am4ysY9)z^GtXbz zt27pYbwlxHWq@)F3(hQen0bX`Cbd?h5W_ hJ{x#pw`my|5MkW5&c?WzG=+Npf;3#<{zZQ zC$c0iNd4rg-o-$ kPPAteJ_^y4BM$?HbO`6xam64b>`1=MAsg+G)J|qU~j*x-5=Ul`>M#LWLD& zaf#`7PnY67<2FcUO&rrrq;<=~_0V8ie8VwBcJil2Tl%Izqt+^?Erk)Fz_p0_jDK-B z$~yXY%U{|`)Lq$b;Ly^w%25Haz4;>9C?KYtRRr@_D6nF&(T0I@={Nix7;-3Y7US-I zr2p!+J#(}(MD9z+O>Lqk_pMeOIo_*Bd;+K*nl73}1~uX~&f~zAWv`Rh;a<0uCufz; z_{!~1Oxkk;uh>FbbTAEi?z^vRCl&Oi8}~b^ie!wQP@zVhGb{}Xyl&PDmasAH!g>yV z380>DFGoCh?Vg+Ru(;06n`4awjPF&`A2$U(xHP4)<*uVvl;tfLaLWB Am8eAyiefA zuV&;Qq>F#dKDYkRmf-rlHSdq~d8+r>JCB`h9cPT*OQ&QPM;de0nWp*(GeT0FoXx-x zAukdf?`CoDJP!wT{#W}n7dW*C=`wt_qZJx9F1D`awmP^l0{vu8oy8WcVS_S;T7E8? z=jY9h*wef}147j0+vA6jS=uMwC8#69aw8vHy{CFZ}TKZF@%(bF1`Mm)jV}!HJgjNZc`S zqVG+9&<_e6Gxxdt>?q|GaAAg>1$6c>?O6Ze=v a!s=&VxO3 z*5+f|OL)uQI2(I?K35 r5mc?FP2r1DbDnq?Frhj7(>gM@%1xLK)gI K}G8#pItxwUXWk6r~FmkDjC>t>}~f+xEHj&+7xbac#DW9cC$Qt6v`NbR2Xnc;MIc zKHeSHP9 !~fZeWi83<(u1L})L$FlsgC|C z3G$fBEgO)iPR;43D6Kg9?~Om!Pf*Mtk*G`f%^CZUUW>ZEIj}^7bpg038M!@q&-~G^ z>MH}6sy-FF6)}F3;I@CG;>KKaWDNTUU#raZ^~;fyHqJS)H%N%qP>WM}SCM0i(R1Un zUH7hdf;CV;9L%(;FE8S`6xYWo4RjFCSbf%_W6#w&9Dbw{Yc_<_SNJY|DGG!8ZlPph znRl5NUNUR@xFzW7-+ccr`B0VkmRi2o56;(IaxH>kep^{Z)K>a hnHc#i$j@OTShnh|0XmCUfe<#h6 zFLA8%H{zira~K{hjhWz^r+!k+4WBZXqDW3Lg)n9<$PgcA^5yV79Y3c)V?&5OZ1u)= zkbE aPbL0rpZr}Qks@~*uyNx1@}A6~>t*2G$sy;Y zZWOhGk^e7hfh>wbS1!VFvc3tLCyb~0Ki+=}c;7a-M<5<*$mJvT!b1s$SrjEbIn}M4 z_SKGLSL8BNtirmYmbjfOhr+cY1k6U%Oby(sr<82!?J?BFHnAL$iLT008s?mk6ub;l z$BQU)SBNI%gH@ufV4*yBjWuDqxDN5{8Xc+Izq+>ltioIle6?N@`^p 4+vVkjN`gZCt2q9qlTMmi6|)xn{QK6o^ZJ01zIc%(${gd`#tB2>WSB=k zJGi`P{UX~bXMG$q?k(DQ$_ZWaGhrQ2NrL#(>i8!WcaecKRkYJ%mDq?PN0aN+87(yT zM2RibWLmjMk?G=qfvtuXt|8A9E>Z!Z5CIV9B4`^Rwo(VRSIASc#wD)`6>`7lrJ*5z z7f~d4|IJOJClx=)BSrN-d(m+XhUAhw=UWfjYr|<}Be$0wY|^cIboOcTb^K9~<1 Y4w-v}UWtt@~K9>>0XRPQEC7D~$ys)EZPi~NJM_)YLc$6*5@XfiN zJ~Ng>u`-kjOtx%4Pg9oSXUbwAErl*xD><`y4AKkYj~Lu*X;bZxleCyBv};;P z=BG;xmm-TTt{~?(2Y#+z_z6sgvFz}VA-~jAzS#Fpsz$L#)u7ZyQm6$kskvqJERqcK z0sGxlPXsXrOYaUWq-9BsP1aN>C8Z2VlR@Y!Yv+Zz+SW5H$EXaGyUTlP+1Q`#s}$rw zcXst&?$zSxzS&&I=R1^c_i5EJoM)u_gtHhf^D4&4IE}*m*LD?%33ps}s;HBB5^s~1 z@jb4h2Jgim-gRd`LE-q5y6wmSBvLDe`M8_P%kh5e^klpvgbvgciiT2FITOP_mj8z7 zSj3>08V84;)@L@)1JEsPF%20m<>M)1O`whJ6@EUKaQcpd>#skKnpD$~n0+r) zdbFWoz*LYD0N{ZH$Ud+ritqwQJZ7{FP8ZI3D&dJj?~*CQ+kg0ZrgAU8gLA`?8cL$( z4lHNs;_3n0@#0{l%4o4*RI}#3U^JncaN#n&48dyaap)%7WZKf;Rt7Gu|FCVsSXElc zv59ZUwn;($e_>t%MCt*cFwl1yOm%B|tUc$z`KZKm5)(#TQ;a!MYSGKsCG*qmx1)dm z4nK;loII{5kCN1LDlb+Lo1h}1!&U@6W};mYrm7V>mq}p(tFv!Tojjeo`o@fmz(g?V z8%Ptc7^%m2U9tRa*x7rYC~ZUh+~+NfCAA|9ZR<5pkWQAd3V1y(-eqA7fKUQVAP1)M zcu67*ORCyeY`sjyc9$l8MuXX4PgTEo<;TRo{mN2kz3p0&+~%wdYL*zRXe2p>F7vJ- z`%vA=;zY@y%X@ruX6*2rG=p4MVM+pfb6UT=#9x2jN#>6Qj}+lmx2Z`Xo#W!0IrK*j zrMf#v+lOW)^l)SbKYndaRWZ1%Y5FGiuW!zp5Bu(^I#nJfLSS376_&J@uL>J$qHyn8 ziVSjzRtjy r!J*8Re8J1d41hnTV#8cBrS>kM! !VmK`gBSq`r;kwDY_*%U_)Zsi^8%W%J&MId{@?w{1s z5!-Hk0gT&HVkW_GreFgF%2FlUI`hBsy|!IyL*hY>W%x$8;zZivRDSH`kN(|pU){aB zZnz70Q^ZQ^Vu5ENAK8de94n-rQr;vhto9$#EqbiLF_r7VK|jnVEZAT8(yY6cVU<$1 zQvYKLSW{fhg63BfCqmD#4gxpKLgqwLm6d#_I{Q59f=Ve?Lg @-tn7`~XmFY y1mGGFpm@ZlgegHo*2&-%;Ac2cWdFZ&up(O;I$ zD?XGDmN!6^vci=>mLOZS@eE(?6Y4+ST+^HShpwj@%Y{`%(>`>G7D)$nS+=XZWEIq+ zF=XF4esB}8A UU0@Q-YF;(C);A>!Dg3uTe`zyh z4-c+an$mF~RzfZ_AHcXjJby)vd|X=eP!iU`6Ktby`eL$j!o2>`anMGn#A}_zBu39y z=j=B>JwvD_ga3&XTn{8tI^tHID!tKXw5wWV!Q*^E4TctVGrcDo+-2>g#y0Y)9~8HG zE-5e (`0hdr?e z!itJuc5MUjyGnIZ3Z%Q!d<}QF=6UD2=3^(& U*x``28b>J{#X18Oq3Y!ziWz`n33HYC9pooGS8B>f$W VtCX#2==S|YZaqv z<8i(qX-H=8Hx#wQP|KCm9_H%xTx71YASk`DX=gE8^6DePiOS4L_@EeW({HHLZ%pGh zgG31~=ZLZr3B%&am>|GAt|D8tqU0*3)CcA4>fFNiDkBst2IKAzUFmJZxKJujbt`*p zR&8QMlEKjLg}Q8b4rcY#X+PfB1;ZCre}hVgf9HT#8@kb*KY!_nG+hR-OIhz|YD@+{ zeRbpWq)YLUbPQ_-wM2bnb$n#ZV&qd!nwOd!Y=k #OK>~_AS9QT*~y*^yv+y9aB`f=??(@5Lu$r9VoX^Nv~ zTQzL&Hr$dz&PjN!Z!RZgd70mT@w?k06IC>p`Z|?ybyzU>(EQc;$H`x~kFKZIhfStj ztJJDn-dTW!^Z>AZTZ=uWkm~~gcim*JVD48m=eC6*zGr*a`l~cr_Rdc?P#=1K$l%If z?NVx`I7fVPw7%ETswHt$MZN#9xBVlx__HbkNt7g@uCMf#jh%Y?K;kUmOBQgsAoGmi z7*sS|B#SvfH`&_5SmPMGFkQG^e86a9m(X6X38H~c)^JZDoK1D(<>wik^KwjX6k6xC zi>lVW7AogO>(qItaftBC+j;EUFKm2%dD(i;ELHp-U4PDrAzYUfwtgBxkx% SoL zA80qSERY3xUjfKwPJ@AtIx1`W3R@V_Gx^#IfG!PaK 9f!hPn$(E`fw_8#`~uWAQhZB-rRWrP#K@H*(ZIv6qE$CAa@`dL8hK=*!Qv zw`MZCM~08+3l30;#C?`D!Ts%$THgvl7qdC)xLBi(2w{P}a`WOIT5dK9c@`LfE=18t z*-+~Z^}fAosIx9pO0B0zxYKyWha95%&Hr3Sb3k}qFyTTRg7TGra7Jcg{hb397)ff$ z&6=Eck!F3zfLI5bY<09-XU*wFz0;pxBqm?p%^r&fRs$qW1rTjiOsi6lni!ETd_buA zo7;=PD*H_gRf1(#te1tjm^MKS$?IQ9o&-TRm1g~0z8H@q)4!cBmY(b&qR%S^r
ZXb6pmeJ3gY9{^cEroRrkTIZ~(TTnq28Nf2p0Fn?wl~M&&)z~F6juA=Yz+R}c zkY>?p1u&}`>(E;VhcffzOq+KgfmS!H)#?!xq|DdtWlxhI-j3mAfdWzh_jK@2A9fX| zq3QX)&L#C5rdnV>`khx^duI|n{Jvz-5jx!y1Y`A%7q
v jMVFR;ASqmM|%&>jorFiHHg8Y7~BVE)j>1F4IOuvx~itf05|A5iL*0h zMc~ZMF!~_fI;?E-3cl@Viby2`4kUt2Rj4jip*Ui^a3!=xbqQwaYPK|CW}pKbpciPs ze3b(n9sx@srSB;La`?f~a1Ynwv9M$*60ra|;7nAui}mHZ>&sW$<*nMhf(16Ot-8Rh zBc@aVIkN#SD9t}LhX<_3+02p6ZLB_Ypg)flRf?gsktf@8dHPL}&NAssdoJlQAQUTN zI{;u*yVS>*@j){^*Oj}WD$)u##v2tB!9*ix$Th2xw=A?mekP?-0H~D$U@L$GqNZxd z($K(Q?xD2Rp*pQa8geVgQL2UF(Vd~$C1q_~7oge903fgN)fP|rUKSquaA#=1F^mH; z&_~qSB}WNZfSgi5UxK#;5d5)g^S{D1NE5&rF}7xS;Ttt{JZ5fk-NAdZeE5wj$#LZ! zX+V3+)06ofGKbq-pMriZvr(EXhv#zL(|k)arRkFIt-4(U*wxOl-AiZU$_evq!p^m| z;znvAWC>?SddQ?zQXD0YQUN51yVJ5QAX} z}5*ns5gfiH>Dye#?x;y&O!s|`0 zHwD#!ECZjmO>><<116yF4etN--2nBY|Hq})3TBHM6)Yt`6mU-m|MVi5h24nbi>K2A zs1EWLo&ZCvG$Ugq49Vh4OD~uHENY+B-d_23;n1zIgHVocPe;bgF<~Dwzwd3`7S0Qb zE}}5RQcsm7)8aI-*WMSuR@Hnu$#MN#C%6=Pj *!T?bF?eQcooN>PL_UN&JY!y`pH!h{oCc0HLPAqk0bFABT*0UdVA$m6q zS#AdcKp`MJVn`ohK%j_Lga>EFv9lbT?IU?-X7 #d&poer(nI*vty=3P_>T!6-=TymTr lRYZ?aC9T8MxQS#t%&b+5`pT&a?G+4<6 zP^%>X13)zdkP0k~s +B>dKo&A+$B-za%|#c}f#TGK`g*~B+|_}Tmg zFYdoz87tRb8%(Ij=~j#YU7#s;F)W!g(yJB`AOB*<98 kq6XuNKF+5Ag&cbO}bGWfd3B~QkGcy3fvJ109&csE8kh0|H=G~d0e1>W&wYl z+g4|F=ezu#n*kTd>7l-Fc3dJky5udX%1gc@`SGua{YYmjl62;~JFsDH&be()y3ux| z4qQV(D*NJ!Iw0A`awTU-4nVC)34|yhRf;VDk5V#k0a74$W{GE R%=S{~s>&hkw%#l*_*N zPwo#~i{j}|--Kf25``cWKw+tyGbki!7Q+Su4H&Pob>7Fn+Yf&js{^eHP>NK5WzW5o zwal}&KIq!NWX3;PS(NGWH} gsK#c$rGi -_pw}6 z`HG%7p;)S;xt^aEJM(9i?#hOc-YKj1LsU)G??j7X;hDy 19)Id)v5p;C_9n2J1ejU{Kj@_`}LfqfR^oTnh!?t+W9_y zQQyiz@lMZN=+c7;eWt~+KmtJQ6)0>K*e|%7a%9G7zNcAEv%c8E()%IZ$j{;L%GjRZ zKr!rT#X-04PxK=L3+WXapX*>PC;&O3)2eIN@LfZxKmx!O!ceamP%oCMz>>7k*ghK< zJ^IDUxApses@E_Clc86(iR>*NJtZxZlvv)P<%yK(D3qn8Gf^r4arX1y0Q}Pye(L|* z_s3h`U(WG>j{&=YS|9!)aqm|?au>(bUwjh^h-j6&2!N pqIjQ4$J$ugezvRo1R4Ou-d3@-0*-*Hr2x^y_6@e*!o1TZGd?-T zC;m?-pYqFpetzB`M_%~T=?n8;$qT-vdG5W-yxf1<`Fv+Bn&Dilo&z*)i8g>JmrCPZ z+O~8_X}OFX0RV;?4e$V{6Ur?sRIHI6WV NoA~IX6jT}$6a^w^nkft*8`DX#}Ph8OYZ^ZIIL`UUXduTlXsFhi^AfEjEtB?$! zj9P(E2r>ZMkFPdn028nayl;D?8R)ot$gXqW@tS`V3UZdaqgaFUyvP}oX4lnc3LPi5 zO~~y~VOnIOPDE}z{Y8dnzt8}vKgnT9{U3f<-_?KKZg Fyi)2Enc zZ>1l#0;&5P_!T+;q}hX1K=`O6cHM_krB SmECKt(`9ff}VtVl;aJWR2Ut z=WqC{GULiY7HD|03E0W)Hq5kXnrLq+yJuyIW>F3{B%&rl6R`)tKW*U;|JwP{bbY+z z H{_sa35HV{+01y*^8mn%(8WHNIMF=3#tU{_# zR6z!+O||OiCgA1-cP1E88GzlS?k+j@9$L%q*1gSPYvkA}XzM8V&MUq5-dlDe?97%? z; 3ss?rAQHEJ=K1E&n1BAa62I_kE0Vl*+3j!n-Tk}I>`#7YxYoPY z_PO7qmoIla-H=ayp!@if+vD5v%Wp?!;5KAyMF%+#+7petKzA-XW07LOO@aU*dILnI z&Y%FQErM>S;Ks_d8jDWv^dal=hTV_OTOVU5zGcz~G`#B3*7$%R?6t-OYTT+br}^lR z5Mvyq+%oprXAbaBTu}6B;C mW|*K&sg_k1C0q3c!m65iNi(06q#>0mY-(6sY%mE%rcw z0qQKLqa1EUx(DC?$-C1h@4o5vmp(j)r QR{WHs2X)crMY9(cF`s4ZB53)koUX6jLUsDW#<)Lf*-tFCvZ)Bpf`!2ZVix<_Si zE4DkesI`9jFWmXYU;C0D{eRyqOK`*W%Xq%)_ww>tH|F^0Y _c9M%r z^2lMaFwsip!OS7h(Ci^wK}{_TfU!wXLx4yp0aQA&v=OZkQ54Hs4>y87anyL-^?2kb zsCtc+w)NEXzdmx_6X>^}*sS&U)xDY}ek>-7QH=4O0B!*P6oeQ4FmczPcOKk`Ss%(Q z%-S#V3{VP~R`Bu?f7(aC`*mqXw8I{e#xxU=0%!$bREs5cYMG>?+7YEgYFooNNp-Sd zHA%4#0USaB0K#>VJ0JMI22765HR|5`&h8t0?8eDnYDz a+|`@_YaXY$9o`UBVg`LD9x z#H`Q#v>DbUpSWd7;y&!IuCz3ftOzMiP(Pxjw~N_s^qv5<_P7{~l7bc70ac5T7(fs) zvoLLqtK-eP{>9MdsRKofZF^FLPf{m!{5{n=Ik w32%~b22duRZ9BzA2gmAk3x_d8u$#~Y?PIneNJYWrhiU(Q+ zkQE5+#Bx$s*o=6D&6UHR2m!E-Rrl2c8vx)XfRTsb6(y)>slHwF 5!&Y@!;hBPw|C2aPAdo zYd6-~1yzzXvX+*ErWhi#^N19n0u 4cRrZ{zH@e+ZBN@y{Z_ zKmFkOKU9PffIt4v-OC^RhmMC1s05s=HE5{>fYe&S%U9J~oAD0;0jNv?5JANQqX2kF zL$novhxp68${Jsp>O uDmoV#!G W+SQnZeLTVQ<|gx@{;FK&_dMK%XM6O2~;u6o8eT3IwbXO?2!s<#2&}Ze!-O zNyK5*n{j-V?Ie|U^6`3c#FPDYI R z2(SyQ+7dG+%VMY#2ApBB=HVIooYuVh$Z=u( BY&?fGG@}JysK(C-niCJP>><&;1pzQFN?X9=h-~H@&{>YG}5`uw|B8LJX01_p& zWv@{JwWBY*BEI34^wcDM=jrN)hMnH^nn$!;c7{TkMm4pUGyp@YUb=)~4ZCl^Ue4MR z-CO3UbZQe 6TCtpX4RXrm|=D1s9jPh*bjxQhE$oKD&a YuGT;(M=r`8_GGJ-zqR_df?*O8U??mo4wLDrO^Z`APe{ zM|DrbJE_2Lt}DU43g`yB05Y4Y6ab8294}FPEZ9NCfHT0|?e1EE27Kg;)ps_-KRhrR zZW9X-wn8BQ`)GLpRDi8rg=64 r;tz2A3BY7j0ZJ4V>I0XFg2Rwd#NZYmE>{rWM>@hAS&;o^S}mls~= z?t<6Ydf41BaTCgMx7#GrxD;qbjwFrAXe)`W2SrjSLjqL*08~S@#wKW012A^l0(rbg z+?F!u%2tixvZ2KJDDPEq`#F52^s$+sJ2b6u5S6c=Rr%diKD)v%bCIk4jq23@vikJL zFZt#FQTA0Q rLGx{C~!W3Sz2!^=*@7f7)^8icrc!_bGaX>GLUk}P)`#cc9 zu=g0!`r+`^g0Eh|zkk37ATWr+RsewT5C9JV71+J|r+)jXHu`zNoi%*HfIdTTwWS1h zio)Iz%uDCktu&OfMrHtoPSH}Tk`m7@3Pno^;ut(G3;-1vfSs*=UdU?LH85?&ySQ89 z?&^^~ebVpOe8azS^xAgtVB?TD7&OMG+;Y&w@i=-Cho!98eKqbtG)7ZtrUJ~sBpHLL zBv1sjV1_dVAVGiuKr6JMeVtJ>W*|g_ngyH XBdh?iCNKUH<&(Gj1+hUK?G5dm}JO7En-k0^Grj zW2qa*m!J3%CmzfT`1imwS$=u2SDS^$b+dmFd%XJ2SKzG~etj_%jEyA4*n0o~hHA@` z-}xhF8~XDRZcf3t`s)#Cx(V^1Ru8da3_{DTfEy)Nkc(c{8pc(q3Thcud#XnjsP&Q; zuU8&t9L6ux0vLfAcoVP-6o9%J6sHuyQ1zHTM|{_cH*c8U{)+T0De_&>^-pat&cIFE zZE%~Nnh~y$ET?% ls0x!@0Rj*Jt$0GQCaXQJ;+~op zMoTnIWVUsc#S=Fz@6h~26=jHjuL%c(inHu&hw<2_N9Ky`LpAvam;4S-ztXaJ>93C{ z9=jYpjOPvDpKkEV;~l!4Y?&R2+wZ0ZxWCJjpH03wU7eg {Nr2juP?+ONjBFr zM;+Pr9*Zp6EE$*r%$5c%0=GFl9?YFZwOby2`18%*zIo|CoDXjLIw&2Z*0L0{xg+o4 z>#SEE!@ `CfC*@JvZ6s8Sh?Y*}1gEVB$fw@>e*O`gR>PkU~oSb-Pd zYISLm5> 8zmRhl_A19ojpac2=-j-Y`+d?c}=d;<>uw zZ|e^4I_S)5zJ3w^63i-qhvMgsieGU>mC{c?tm+GHU4wfPu(jASAh2` ZU<(!um6*#lCbF$s9rL zl$Mr+2)86kyA(8-$tbBT3bB&9u!CH2*&`ov$1&vX+Oe81Xsm0N^q|nO-?q`M=Ta-6 ztY;i9`A9;L9YRlutdNaar+q{6an9t0RC%$U<-0$=eEpO3z08VW9>)XxlMNQ^61DQ< z05{Sbi~z!jnrUFb7_d8v0Q!Lk(fvR5B|pV^@`JB`ySJmG ZYEwKOt>!mx zo^IX|*1vAxj}%s-*B@#geBhvxsm6D#I2DGg8Udh43X}kX5~8egYEt+6gEjFE`*V2^ zsVRIk@KN@90E~K1OChf8wD@d!yq~^cwZ|JG1^_P2++w*8<=T+b)RL;Lg)Xl2s$+15 zia>yb^<1@d7%8%`Sm<^ORf9>+rqTog c4v%I&O=%n7rsPTx=AW&b{yU?lUz&{XOHsVw0&l^uiN^*w;#s?{L>6x zSPE?m4?6&U$DOmIFkl{Q4jt_8nO;E`;2H>k3!rd=1PBV0hI~J7r9X>4E%UUiH6Y|O zdbkqn%L?}cC1~3owIG06kJY%W6wpU9tPP@AMsImB{I!wg;je%Fb5DNv?OoK*q!a&M zk1zcp_^BWH6Tfrx&ENVX@5uDh&0Nmk%RfYA $|tKl}xQKpR9edlL4J704?Gj|S3eUQaHhDQvqFPgrO zFm|7JD{p(A&u=-8KXI(WUW<@-+tcj dum$~A#zqnJJnYDTX6wR zl7mv$TgeI-g}5KNJ5@rHk%+k*qj8b5Bs JY!wX-jXgXv(@IDDX_PLip%hewLu1@gDD_&$mdkME924-Hm4$aZu6w 62QxWGm51r22K|}Kjosl zCA4;=bCe--xwHe(RiSO7)9E|{2qo-hR9R%Hp$G<0b{}WS005MoB^#b$4X~!^#aQN( zSueE31Hg{iJD_d3&w&BnwCz$jtBK`Cgcuo(Fe{<0vX=B2XJ;Q+E)tc$&l1UVcED*< zGJyZ Wa%SC!v%Y-F`P0uH(w(N#s2c0OX8K5e zdKExKwQ*Ld_9Rt6djKP%f{Z{1Tyekv^o`Sok|-9>VLuaX#7^(mI8xH?0O^2g13@bQ zNLOG35Y1=++Y$s5!ZM@1P%a@+0WRqjnxJ e&c~O%uJ+8RpNwQ;6ocBHP zhGu4*8EOMirG%9L1mR)eW~J2-A^?OI)=*;;3 =X zFKoPr{Ltc+-2R 0n}~Bij =T~%F{iIs~8>c=qNXdmVWG0=gUS30Js9)x98mXynM`g`RuX1Cq wnI4IRvG(?RMp{aydV1y^iPEd<{ayi{ova>LknzL#EY#tR= zJmm(?U1DH?h$U%xKx?l&`-P5|yl*G?qzym(-_LPOz})2e-hBDL;cCtz%a+}CPXhd< zcNP7|m9o`}u0`&BXMDKF(rAX^gINbG66MgCq *xYM3PiA&EtZNY73{EhEJO zls2;7>H(09MNA+^nW@qOoR4yyft*j8ygiOLh1t|U-oz_$e0P?HdQ%Ml;Pcpe=dJ!{ z{4~q%b9~2hxGx-@NJo5yPs~p&2ba3XJA7=9mcxF;Ma~&aD*%mR2rU}3x~}_DWARL{ z nSLP!N;YiEFE6Io`0((+0XNO6tLx={*AFdOZ@h%hOyOmV)v{NYx_FIVeI+02 ze5{@xFWgpcx9M2gopuu_K#s6zgW<7e+{4*O#fm`IR8T8&1tjk%SdNrR3SA2YfRq^~ zo2|hxG|4!zT-?f=vT3HRyiw_h11N1Xk0LMIesQ!+52T1HgLWb^+5we9an0g53g`E& zWa+5JN-e32I!tj_R 6B-T$Kuq?=!r{lB4SC&!KBZocf_@Y aQFeMY?R6=!Sl5MS?j{Ke<%bF{`Zdy mKDNJ$gm&N3@;N&+GYsU#Xl zizQgUOdUWu$7Xj;85dWxfQ)2zjuvSNqDT&&?XIyvWx__tUicqNyrYTF-Rg--F#Py3 zpL}ZbgKyR2PkHNhc`IWCJ(di6Xl#^RwsF)3Al8UzrvPfrp(LoYdhB|+%xinhS)Rqw zWbz$N0N!x(g}3DqkG;<6+@EEQf-hySPb%e;v^)f;z{6o43bUhQVee#VO{M{(7C22Y zy8u83vqTM`0%dQxfB;oX0i;Cfn6#vzMD}~YWXJS6k{N-KSnsQj3m{S0d^Tz`c8L&8 zC4`dnX_T4DAO|E#FadfsW*8*7;BAIZyBfHFvi+4Z9Gy0j@T#%TEPOfPKMej|){U=L zyl9yoNH*DzbyXRwlvIn)RX+6tN&9_&xTBq+xFv82>Ae5XTnRpz!@K`S8KCzWsE1>Z zX} |A%k?JE|H8L2R z%%o|Afhky(4+Bs#mKcLeDaNH--pw@1X;utI1AQJTyX8vrv9og>^wzm?U)#(??`5_) z)%qrv%4ehUaN U<22gb+({ z-OrGt6%)My5D<}T2{e*aN)lO!(UY0VfCtt~JVD)WY1^KbJ8Dsld#VK7X(IdlUCrrA zk3}wLc?ulGMsqrl!>8kUUx*&{(wD#mU{l1ju}TTe=PhlFxi)pA%NA9xeb;WmCwF-F z|7Z;`8Dh(xFZ#-&JnLWnZ~UxTUDj=Oy8DYm#Jx=KYv Cj5CtcoRytLo2DSp{D_OYZ<~KFvk?(Re )>qMS `8grs2Ahd-?p`dD>j78%ZHL+&+TG8Ucbjqt<@3kw$r7(Yd^Whd@(y?d z#7CFqveori`a*GeSg!YB#EYY35pCvTkfOl>hyci($#WcQh=!P# Bz4*HR$%}|- z%m7~)J6-WpQlcxga4@MGyG2o=W6^~#`0+cz`NijaY~?Cae&$mv+ULXVYkbK^lHikA zeEKK97WDB?%KbqNE?w1q27G6p27X5YfMFI<01QCEU6cX ?ie{3#js-l=XxzK zHcp8g$AH}<{iL|u$`=mL;g;j)QT(;JOZS@T3*S`JDv j9<`N ze99MW@t|6xKH(_0xq92%k^y7^BTB_C;xZvkBw@?Jm%!&*Z}iPi?~h=a4^~4SdPP19 zt|HSi5C#Bb30y+j@_1{HHSU-vt{$OEC85F^3AzhOEV5LUib~pw)BrpL2SL7#4l>9g zHPXn8NZOKjKh4+i{C&jb^N2Ti_A)NwQeK;vNm2!>paCou6;uvrKO5=5D^M4hf@uX} zt2KMfs7->`fQ3={w^DKzg-PTIDVivpqszt&nR2WqyoyRbAv^t-fUp+uz(zUs6O$^= z(i1Rnvn*%hb^sLMpLuncoGqp*vgGS7Nr*$0<_mwe*1&np |~G&1aP% z @If!WaAztGp 9dbYQiSd1#GB6LV;M7qT5L>uU&Fv?6SjirQ~1~Uw=|^ z6W*7Jl@-3oo$i3}rPbMMsC2t_D5vR^&rdljDZoZK6?4&UeFf2tp(g;P>;Kek$~03& zE14jPJxzYH>M#6R4LG0S@n{r*hz#&aEI#@E&q8}q@_KDH#~0K6Opj69hi9zO5@1!z zjg?9cfe>gD8+X~WAKuCrkK;8f b|}6OdQ{hw=(gD6AwSghtvGS)BY(DcLwQ_;gZofaQOs;TBZOM;t9mfruS4v zgaRldDx)kINtlE)RGv%zM7@V5mIHyd@|-$=nD>K)tTEYuVM72Ps{kKV2uKBYHQ`Ze z;VD}IghCuw4Jn8NNTVcz0mONi1Iwku3ZKFOz-V(DeYnhFdY0iQiSLK>J`C?u?_E%M z;9)jOH5E{SqQVkHpTGfFQBR|s$^@=aNH~}(Y@=P5{R8sZIP5*A{JW||*gmP{3GZ;D zS6qT<(#C+5LMXJsJ@79w=X!AN1{w7eyDPS^TTj72#k?=F@+absZuo@{)d0Wety4nv z`A@DjpVxfePbS~{|9XoUn9>^HlUQv1jc oezm(7n{_AFkJy`aw#(~v!GMZq`36%}z~!8g)MtygJJ+Hxm&On15&4Sg4> z3QPxf%dO?JcC}*ZxvmX9{2-a1+!;LHg~x|m@5phue`Lw$impH_0X{AiH?}H7(Wx|Q z0RRQZyZ{goNoW$=pesC+k*K2x1!xgh2}mJAp$bbjqyS>@c tSaw(I z#A`PnpK3J>&2ZIrdT6gpO<5;OJ4~5!wGGl`zB7f6>QSpC$P@?K8&wCn>Ofr8dZX&< zus=TaVxczu?w_hdfAG%&qdIWBhyp8I;etIK{dJY~znE&%@9n&hhh$nrW$+Ii^ku*= z%Q*YlZ^8e?a^QGGdTgb4NxGlx G7A}3V{D#3-M9k)RxQLV$+U$v_%-zGf^j} zG)0oo8rd7#1O!S*rv}h8C5>qwnA4?cZ=9$Qp)vANXhoC!sqr1*p&t(86U)4K`XFap z{)|m4yB}G0V)EP2F42A%${mquRAFBPBr1Y^D|&V28}Y5e5(syMTnqqRLr{{@n26zC zovF2{JD*F<<<77jE+d3g0jgfICjn&<0EDbkqrf&b3P1rMH)>syWegIMsTyg 9X15|<62b2wniel7InZLLA}NJlq6DpZ zV1oq87>GhG)YNk@aT6Tb*qr|oG6CZy#={UQPyyP~o?fC^mOO=E+~T(Zzbr%Ef;bJ} z@E0SxtKZpG@ljMx-LA@shes3O|IcE}kIz4y_yb?$mCdbFGRR~U&8j?sYaz(Q4tazU z0OY0?03<*iuCy%4K=AyDHpFEl3Ez?Wh-Y8+o!#cTdG}~t2_ybllzz3HWgu8XlTKr4 z#%bY+$PW#!kSx5yJ2pDb)t<>itN0`Na=4W$LjYbhN~TjFrJ&wnW7Ip`S}1NF1Wz3M zd~q{etz6J8vE`uJi27+cp97#22S!36NrR*SC{V0*^C`Co9CH@(4(Fl@mMjP$WK96D zgrr21fItaZIR`ora3yD)KBwhliqS!hh!)la5Yz$Wb1WmyK6JHSoO3%Md(Z+Y09hgu z4=vA~cy8kILhTOkBi4V6)E)Vqh(D8f ~=phykp?;DSBT=k{Vo6pj&7^Wfqb|K&d5mu1L-eF^~Q z1kqFuW}JTL39WV=`5Qi}0^pNa&}JKx6q#k~ZI4nB! TC(weI z(mEr~p;Zc3DK}QqBrU&F{EtWO1>?JQb i?&iYiI>%J%Oi1>x# zyO{-6a*%^Mm~1eiQLq6Lg ou&G)z()@={go7XJD$9Kolyw@qE-@ zxR#?xCx}OnN1H~hBecODjIN?RWM?F@_yvkGXn|mb4G7RtR#12iT_i6x18OSNC8^a0 z9j|~}U#t>d2Qc8+ix@z+;DQYE1!3*kf7){)bqvYOMHhZ)igd3R=%`OMF95$Rqxh8Z zP5{pB{o^PAKBB6q_f|^Jmgj% PlQ<}7SRhG0nK zF6AaduZ4AZI}xLUAuebv9=z-~E=RAS{AQDOXaRkd!b&)$eWig?p9Q*Y6VC5w^5HNt zdziHI$RZ^s3%Aro9)RGFlwt@^e9%6%(qA0*hg63pHE%W#!$PtwBXTjg!Wb3Tr3Ys} zsQny;1; tZ zpcEAnkpuuxK!^o^BoLxvB&bNWSuRtv=a6FUV(e04QxL0Ah$sO#1b1QcNo!r-h3&Vo zCjdBq8&(Mo5>PyC`fTdByM6gWwMSbICnK5I^H4LNsjq&fc6C%6UScIgLXKaTng(J} z K4}Foz D9!T>Dlh|-q>l=~IuD^Za6SRxJMoB0>qfrYrivMojnk0}S$7zr9Y z!Wy}ZkOmRbMtGMFHl?5~i$(2R(~(x >j%_)AD( zA<6ax3bfeoE!ppP6i 83_cmsF z8!~uC!!yV;8Xs&pvVLFm#C&A?D(55*gM_3B@heN*C?XLQp@J?N0{jP@uEHl?S}Xdw zfdCjHjt03zj>$Wu&+v}A)@By5&K%7wqD&Wc@!OkRxNP;G-){r>8xQ*wbZ^eNXFmNg z_K#O*wpME!r}N3HnUXe?f%Prax+q#Yo4~`TwbmS&PB1`cnJCzVgiUJv{&hK~m*m)* zpkopHX37!N!Vq$R6A-D!A}u`70(M3N;A=i;SE(-2Mr1Ady~NhSBh5F`6TK&5*UWtC zyjwa;)asKkgBk$usR05d2#L1nOuhH7xAMSF(SWw-7LV +su)+a|4m$@w z+2-2v#<6KC-6Jbqp;3+;+6Gmy2peT=paBA)KtMr_YkY2ARl#O|tq|2@GMNq3INCS; z?#Bw;4A5||GBXT#9NELWaPlcdy8PngzR>&5@8$19`xc?^NAVNMC)5q~+;%|D2&Uxa zC65*7iY6ikmT1ZZLzo~J!5oYyP~$`RHn`qSd`Ydy*&qcNU>Mv))#XtOe0k3I>KDUJ zmoIbMqI(e7 1D2)!z+F=+MxYwb14Xb2k`X_R z1fnJ0lCCvR!Nsyh`}c?n_6S_T&ou%4r#AYHYT&*48BJmv6mv(Y0MNo?#cfG-VPt%& zb}siwR-|9(HGt=1E` =(~jIq?I?Ywz|W2WHq6HU6Q+n2_z1d2vdU5q>jJ>R5q(MzFGT&TlHA`l3J0o z4*}+{(ChC=<~Uz`)=|`=%C;)q6gNY50j;4g?%AlBp?{fj-Rm8Izxm+nU|~prtvW4H zU4c(d(f|8O;3jCN|DpaDEuSG%UESNBM4Gz_mBrhH?O5^Umt0z`C9G`HF0;pme~_;4 zO9+#XRAXIF$T4@LvLjR|g26~3T{JDj!SsSkn8A=(hn1)36>}5p3l0uawYp1ifgM3d zI2bBGK_sb(HE67qS4hRMHI|CIgsb67w1S1|Rcw)veN%Js6ZV(!u{fKM$@hmLr=I#Q zCD%XG)#~Xle4q9mqk~SE17N_oC;|X1q@fXDTmZ;|0-(rS32b!b1&bLs9Ah>uri^83 zs3Z&k1^`xu4N#p)fdTz#(cF!&6wEbB&r&l?f{mKZ*}fe6UW>$eJT!RTZhq*!AAYpg z LnyR7fS!R56v$bP~h9xFRv(GPUJRhFs(Z$m-qJc z@ymGUU;eTJmrGPvhrq#&4(|z_;`mXlsHcJecn{JK%`-0rc=lV50Ou|%|H?Ud`XA~d zuUVhA=qiuwSPK@faul3O*?gpulA|b<{-VXD`X2jU(gRY4^Rz-2^$8tFMqNkD&_>D` z?&nKQ&?T~3M2H{(=inY5=SOsJ7G!tN@17YIqKK$}j-Of;pBZ(X-VIlVGxDWotubf|Sm) zuV0(}%dM%Q1?ks69bk=mKxLOhREjjOqgUt!UjmX!V?!=H0RRDVpl)a_qz_YlH_>-; z-)-HuTkZ3 ?mBUP!|*^4?U52VjtD6hW)^c6sUyZ#K!> z3-{Ka{^?hyfBd)C2N$5 zE6^#z!U|cN(Fc+3OfK|n;%rl&)_KaVUAOK%wYSCSK@`9*5eZ;i1R$__l}EKbZ`<&a zEe(TQ3qTiQ9mwn9o#4c5dzq;m{-;r&Uy!|LSD~!r?%W9 zdw#lvuQIe)g`w 87!7Yt<12C=e3lCL8v8W4A=(yyv3;7*)@*8W5B8Unzc*7^S z!+%Bi1EDVfcR+~02Mk{CcQ0JKcSKZ13*mPI0ssTP0~6v2QM;KXip-wFEugTVExLsj z0?}e{V*qbsz6J0@ =)D_~;^8ZRow1l0Cg?K^(r zx US`D)<#;=q2D zmCOt(LMym(MyjFGoV7aR0dN%bt7NfpW1?}~k=XBl$X`R)*nVL9Kb*Dwb8TwXS|T;t z^oQAR`1aA?^vnP1wR6Auf4mUD|Bv8H{(I_^cdFYb744G(E{WLq>3Y-o>DuGt&WgKX z?PKZKJCy0&mi9n7exy9070V`jdjNCz{Nv=Gs*nTvG}M9sy#NCMX#;>-z=8&!!WNKN z^LwdQ{pA@x@drFjV8!IU%J$e3-&&IGn&;h7FnkR^qa$V8ilKJSve;${)FW{R{t$B- zwICiC!Wv1P<9Y^t8Y?WIC}ad&0H6k5H|N#DmxN#Ak$ig2b`ef83jpsbG|)izn&|44 zD9xpV4E NDmjW-{^u5qQ|?L&RP+tZi^ zDj=YWyqrqF?xy6ZOsNvQlWFI3DcQ4W`{va5cdh4V#rGfEr}v+=XZYuhI{tY>GOC6l z8Si+YN7191vAIKL{FbqSp;kt(Ri?MBRV~?heEIo&TQmE0_4`*be%6ZH_ &STu zkyLw&d0eBn3%Y;$Fa37p$N$Sh072mU%i68}X$^i^d(mIMT{AZn{mV#wk6;9T*+=`N z)=uAX7QXH;rw=ZLNIzxP3pf6)*BubJiaO)(Y52k|v@JhI?*!n64gvts20;KjmU`Z3 z`cU5!?NtTr<+1yEx%OvFT{!Ac+ZGt=gPN@OjBS!e+pNYk$lVYgjT44tUYI}V9jpR( zIE>FjYMbjt6(kn`fDsPkzE!V)TjYt_=k0?&ea+L?)q8g&E+G&rcI1F8!6H+ZRUQ2? z9-BP{a6+vB=oY}Oc~3pW*#aoH_{wQ;vH0>Sb7Tz|7~laPX%w K+J7Or>Q?3|XYnoI zmwkNyfATfH?ytSI-|!bt`cjC=Z5>gba%@H{S;y_qXf~UV3pEmKQ2^W|kp9i?f77qD z;$IS g; zTa67DLflGv2Oywnnuc?Qcf)^0X&FC1J+@!g^YrA}^c}NfwS2PqkQ3CxoNz}!lH6J= zsXY-sFKz~_5o!X8h!)NeBcUj6@r$#q8Qb)E0x*Y0VEC9h+7bB{bpa@%ijY!@1OOHQ zR|gU70`bY>wydcr(1HM=0yf7|Kmf32?U@d&W9fMQpq%xXmNUQ!AOeF}QljIW8oFQx zx~& 1|`L=l#3Q>Ci%OA==R=?1zK&q90Y zes5wo`f2nN 9|DA}9Ez}T5DGvJqV zeE)w|eB)nuPjERzIfx?#0(PX9cQ9V2UwetUni007XO07UsluCsEnWXSMtNAV{F(8) zo=9!EDRzQ5r?%3==x{2Nmaxh|+Ca*2$)S~nNavK*k?<7D7;jWHToBsG?vOvjJOSXE z8?Sx|fFQtaY=Ygxy3L9~pQ`7}vA&G6FFj-Nj$?gl<%g2-k#Iw2^dod_Wv+<__+@;c z3N8Q)08hOj0CYqjE4N(bV&tn25P>0q1*vd@pdkQgpdtWJ*pSBNRbe0u6ab7LwI20l zk8zjfEk9_n2UIY{sOd2+_7zVDCIHYSj(~RqM>2OEH7z7~At2}lnn6IbH3JPmI*Bur zq>})xJT{q9Iol2A+IG)b_rPOx0g-_t%|}WL1!%xT62wYKS>>y845cEuo8NccXH&b- z6$n9AfvNz^2LMPApiPlUm|w^$RbeL~fpai9ztdK!rG<$;>^v{A+MqWrCJF%Ywneon zPo@s8)@HmG`-b-BU2T7P#ysQQjAh2$`egSi&Fd=a7r-q1?hLE~zpUdM|D%=QatN~z zYwGN)>R>iN#?H+uFU;e-PhY?K@$1*OqvI=A9>^-^An*ox@R *s3~XKTAL#10+2=I!b;DU&ZcJloYTZ+iUA*q_#A?aGYG0VJhcYofl9&{4Ry z`z?zq{ovAIJyOP=I5?B7VM|}4L7|^wr%(`$p(HHh;FsVv12Cw72BknnP?VtPpcizP z&|Bkk99i3Zp1!;mW*qIM_k|-S4;!3Tns+{O_OId}5g*_T9HSU#V2vOmc0^1C6S^3% zmB^hVvw8BER#-@4Z=h)RMSxpE9CHs~0CB3%5LF}Dut-dpDu0jDEFZC*u^l*m%WqDu z{YVk10xE_ry$&Tyeh%rj^fo=v24NGS#nNI?W*!5MfL9gyD3vI)xRE4u%cuxffkJA~ zAOcJ%!F|2MB8fJct~-~KzLGu1VA9_L({T6C_*K4Y_As1e#|RylA(A801Pa3d)q z1TvJTpNM0xaXI8bo>UEG#I<;Z2NV?&kQHJ09}Nwl0RsU5zyOGWvN2gXotC>k$oJ+? z2@`${fIY@kz!Dh?VLb1h%Tk@!_H=gg>Wp_9UvF0zDBv^XncjFieP`Z#sXtZ$v-tBY zf&VuER>N#dcd$No>)3jZSG W8+}iMy*N9XVqvExS4Z*Xu_t;Y8c$VLqQ>7b)q-7bIv;?*XNL8mUYmAINpaPp( z_tE|dZ~$BY6nP6!?U@X{p_0mo#oko;%s lR(?-3H-vAFAr dV{mWR{1E`myD>#dQWK_y znT|5iMI y)FGENQo7ZOQVKx;kO2S?zzD=!0H<6q z$ihZ7Z^?W*%9Q0Z`_Sn(ryZ-QZbl la@V`3o2?1)vhywq5~vA;J25CBYJ zL`WC~VFs3%5T=+7plGC`gba77cRT6fd3Rn;Jecu7!h_zY{EW*xmSCJQd5M9hTpN3u zGD<}lz#|wHLd{wYH6O72IB);}gHGDbb4 loQthTW #vVZzf+~2pEr<>3Y;K|XVTdsJ`J1W6>iEMYj zY5lc(m$9Fpl76G^ALG1(8$JUkWCq6^N3w7jeu2OfC}IflVk$Np>!~2El}H6x$byxa z1kn})K?Vgt00ICFAjk>=87NQ{HD jz~9BEa!0B{*Vk)!~$paTdth++f6ki!Cb|J@mpJG0`xZy4-g#71OWQ^49q&PWNV zitH>ehDFF`0Dxf2eqVtN@IC?H062l59m{!a)a?`hU{4I~=l}a&zEtn~UH{|#VbAPO z(%z5$@BhnxBZC{C3lUfhKv5Px7!^WU#>Z9%zprif3%5xe&1;27)gi~cnrXy#Td3Up zx!t|3&tqX?u_NJ#_*QD0&rt+TL47ajJh1aXc!$~m047wHjPg1JgZ2msG9z+s()odL zvoK$f89g*d4-P}($bd5F1>wrW@P6tQk@8aEsPW;88|G@j-t@nG&fhlw^l!WQ`}W_F zzwQTqwI3I64n1NwD ^0^+Pw+4{TLn zZD_dIfH~I2KipRIy)E+d^0KwDX)_X^o38L0wM*)RsLat=tl5Ny$b<%D;6x(C=E~EO zEU0gk3Mvr|nIM%+C7);nAwj9w1rP$T3JOpRj<^xTI52lHySQtZrIJsF{pqM!_HdPq z9RNJX0CYhG2we#mSi}sFR8R!R0 wjN- z{eSSmgysS|&DKg?%whcT|G}U0T=y6M5C6x1`S5E}y(9Vj)ZB-od@tqZfXV!#(h|w0 zy``X~X)Sjl`d(Tjk7EgMk?XHKn{h^aaZu8VoV{V# 81H`>I)^MEDNQ^Y~Kz}Oo z=^HzW(;i=(>>F`Dg!5I5FWT}>(I<bjitR;Ufl(pTlMN49y}rtZm}?LFo^nMw-#E zP1>RNFx9H=^oV%DC8OXvN;q| $f@o3(tOhy&AL)G62^DZ@l?f`yus5&CIq} >!UCYIBSRO|s=KW3W%+zEK1+X(xQ&i#4Xpt@vPYo? ^p z{O14opC3g-;QU&{G58sH*Qdz*Y2z*1z=m#s5}CRToCZ^R^Fu1AR#=TAfWQ{>LS#z= zcv!OQ^*b*YY0*tgAmcTk=vT>~Wz$>k68ezoc}dJjHw?x&Pe1m}>#rJWwR|;}H+%QP z)92j@zQVqX>rIC*OdoVDj4c_|_P`B};2u7ZJd6zTZlXW b`V9~QQ-x0a >XA=b3QKGkybyrQ$1lE8~Yh~kGW&s9k-qK0eu^| z)0rFjSib5t^*jQs4Zp##9nFuP)2cq1SRSd5Od+}6 cfDmrXNJ^D3NDZU`2(BRCBJhZa1r?M+z!9#wg_$Qy z?0i^G%}tGP(}njaXn_~*i{y$e0KPS{-dg0~ML&{-oi>~rJB&C0OMu|4@&nAk=Q`>m zC=fuKMgWRoFc3(xh>YJrmOA5UmvtVqNCkIjLi4x4nH~9H~zi&-J~>#*!zJVOyy_4^TUwd z?eiC<`6{M&s@~O~lKdVl!UER8R7?<3A#Z{6iRV+bg+)rOL~Su39CAbMXsJZO+u{`k zTywtIPS@Q))^5ILKQe#%;m)6(=4 @?Kul%oEH2M8XTEX! z`pl*e`*>~Qmf8I7eaMsj)yFr+YtPI!3Ywhi2BwZ%+DzpFr@A>z?IXwB0`7EPJMr&7 z571l|ur^4|x6XbeRBPfY{ |rhC}QPEFvTMP zPYX{MC;-wJ7+I{wObmgWs2FZ}T;xa&;@U1CaWSSiH6uEUB#W^_ g+nLl#G8^1%xW_xLL$bOh&m?|Qn>r>tqM$#Rj%lH !6uAG>i3`x zA#?O_SbyhXe|5lbhV`JFqJCeLV~RG0xF7JY=1nQ(p&-%DlgQ0X!iX?!0E9 g4NK#y@WiN&*UAK&+o%K__F$8UN=;op*ti;Qx!5D zfW64bxLT`Rq{kn*esvG9+Y!J`Cc)aMx7ox1#SOsL18^Ay{y3?{Pk!gB!86b91Zx9T zAAHrB3qJO`#$ziRp10Bwx$hdrb?9?Lhj`z7Z|tDylA_=a#sid)BS Rk$JucW{kb1k|9GC~9}uwe~Me zJVihw=7zXfFK$+@kp;FCY(% WN#TXfcQW98ykJ)UkFnBpM z7Ej?r+{S?41yH0>05I?`v#r(pFz!R6cWaH% !vGG_boc+yu};TfY*VDQslN=*77} E+FIO-#7MDNl< z5Fcf?4{dWIoU(t*2AgciSP683WhqG_#wS-7Imf*I&LfluyG_N+en7obb&-BCia%iP z3$k RmH+99{<-7uGN2#pRFjFZc&1{*CKivX69s zL;d5()IX0!za9H+0)Dk0?eh*+vPX^ttQen~dj=OvY4NI9;lLMPI{7K(^Zl}+g0)B4 zR*f0RR6r(s06UPATRE;B?m9kRmcaU$ZOjW_Y+tO$3JLcBJTzfjk3Zg^V*%@=;jP7? zr^Y|krSn-j|2a;}Krimxqye-^GW9f&*`P9JS3(g&NPr18g=9br4q}Bh0t?AO8-$Px zApwL)2u3jwKnp>Lf*~rXV)F(?4uD)E!vr8uAfiA31yb$^9?6RS$8f+`^csTjLKnoq z$k-DLaZTkaM@&l%Dq{*xQenZZP3Dj!DC)+VB5)uCpcE8b(-Z(OTrlu&yX;6AIf5-K z$WRblRLF40_FL70NCj>KceL3*_=kS+2dn@7_aFTY|J(ol&;A^t^@1ebPu$xg_Pg@g zDz_Q9W1N7yV<&mi+|1V~H!OxSMptAvwjv~eIV+kjhY_zIw&?H|c5MgP&+s^QHtuoQ zS6iz_G-ey`=c$C``6^qZdfHi8W=yCo7_Ojiu|Y`E2AUVmeB-m2d^nl%+ddqdpUtz_ zuP6S+CU4PZ2pPpFz%3e}6pl1%AOk_rI#6{X4m&yo!+UJA$E@G}P+p|JNqyYDkE$Or zf9!8E-~s$9KX93Cu|=XHvTV@cVh R^RV!+cp5Zk|J?5 zbrZm =Rw%(X(v-4ih=fP4kmaQxvj_ zOi&;ZRZ1Duh!8~ m^$lo)Jq5M>CU8i6fw1;d~W8X*eM;nWC4@3Jt< zAhvHnF~<-gfFcD20!2?1!DeK=)%pFvD_HEsv4BVzIpf}TNFtaCOfnIAuoM6aw*Zhz zEkzn^xd^F@2r%FRm7PX-4FUiwEQXv;W5ZVH30oHI73^b+08kA86=-TeKweZhOXl#K z|IM#I`#1jg|K~UV#eUZd%LWpj81C^i8lTvwJF|GuwI*XpO-Q`(6rRNg62=A!U>+ #MB0QTi+)k^ZLbJm6r=ADzBU;5K3%w zvMQwlrdj|LI=VpH#zsCNLK8Fkqn~K0_BRg JU*3W$JvsVyRVkiO{Z}Msz?l}Mq~`wL=~}A^g>c$fHiCaT>t?vTF8yaM0_na z@Cy`*SOzd8A`1~H5I_l#pe!t0EXzW+#FjF~NFzcD5dsoW03OjJMIxB1G4jgyleksx zutw03F(O<5JYCRYm?h3j97|gOb+HG|z}3br*T^XZRcf8GwJdW++zka6k|1EA5dbU@ z |J1QC(4SGX25R>nroXuMwN?4S&;;_$E# C%vo!;NVXGDVob-w(a=emo1 zY&?RX%6EbVU|IwKX-5DgsFoWsp5XrJ>)AKo9Xd+tPr!<7Y#Vpp!vv7805kvu47dO| z>OV$WZ+pu1aN;45$a3?R-xX h2 z2rs2%B#QV*PoCQSJDHypWmArEVbM~QWokKF*~QXDSHy|2NIlkmp58guzL+MHE|I|n zz((X4RR19U#GRin+19N;CKqB0i~6mpYZJAI5WyL4#3?38Q6&SIQv0APRuU7&NYJot z<~Y|Gb!|wkQuS8co5$7{c`Is(Ahc{?lp?q|>F6@*D_o?#O`}{zp68Vo>mAbyK~x&h zRuaOfGTLc(-@KK#+mAC}`oHJ=#=qgz0o!}AMQXm=Y9GEi 1o+>O!M4zd{9*2(syK+AXpg_?sHY{7vM=!{?c*x3X4VTR*_dGdKe%g`*% z`?3n;Bt76KmMPE*UI}_p${flb4i|u!P{{{5%G8*FwFmu;JN@ay`o^H0X1oa;0mERD zARw8WzQQt)xOj2RM3=e_2`$Qv(_Lw!yYqkM+uxku{cWN_>@%Kv=I{8I>8tr|0>0_+ zX$1Hk =0Xk0YFPfBjLG- zmzpnwX`Hk>_c=*bVinsYbKj%FFx >?#9O?=1mGEn05~Hs(mp7cWB>_KQBxOSL?#Hg00 Ozc6?mZCvcv-gfIS^xTW(VkNRFs}>UZ3)pZZ(kPwl{M z*He~*`*QreTi?qsXu0>Y8>)6>(XH>cl$9Au(DDpcp@59dALK6Vovn9e!&nogDk~J# zgE)t_Cci=y4nhGt!8M{C;G4y*H@EFNylcz7F6VOGN{~ecB#Xtd6Ud*4G31s`-X?VI zK?s*CsD`v7s}K3v1}igxLc3od>Ia|Z(*u378DABSBPYQbE)w8{vB1j3iyMU! }h=ezEoc@$F;yQigB1;1uvph$Hxtl>zUaX}yk|+Mkaqx%EJj8F2T5S+OOij9@i1 zP|Ja2cE9sn_XV`^*vJ6jG6PFqCqM`U6kD?c_^6N6J<~Y1fa9|wUrOu~m`xdQEIBG( zjXPBVkVg+gS*5G(VRMyv3gBT)Eb+TZ{U?OV@Ov^os_*ljc3g<>4J|kV2yd1{sr; zDrLl~ATWf8ia|gZQ$s5}!Rz7)5n7=pWGSGx#DOKt*$}CzG+RK0*{F wVZfdkq}U3>8bTvGiZPXaio02jnpS5{uzgVwy%D_@E^eiFZKYQ7>{6JiBU{K zA}|0^4Y1adatgp>RV>9q#8T_XF~G$bi!npAl_a6ynjsap(_ioUSMn9LnJK>TjVrU# ztfL?SFc!b-_NOj05B(sqI&q*nUAf=w{PV>hxwlVod+oBgmQ&TK _vM=qf&!O9oRTro>y(8-^s5gYQicenMRE1?>c<6oeKZ0OtAb<0`%u^YvkWu^uen zmS^b5A!L5g3Vh=@xIdM1#Vx`sL1*qj#AEY|Xg^u~FsJ1_@<6t)^3@Z1cXj2b`eCcv z6O2Q&F~<4E!a{BU2!d6@b)?`s2yFbK@c{ok@Xq_C>f@yG3rt;m3t)R*>H5Hw%jp2v z@G=2_Z!}Ix+fS3=@{$jH>k&&-K+xe -80|q<}w*hl0E>S z0<#)RA<722NH0!#d~(b5U26vH?QzgIasV=lrZz !X0H}HZ;}qtBTWwoCfYl#c zfgTSj@RLnD^j= ?cC%%!v_%iJ#cSoey+!eeyJ zQj}|PK~y}2sCY<(0Hi{MKwc#Ylz_=XM9ENOPz!t+ml-i(;T7)2?0E2EqEJT+Q$tIh zu>suzWV)bPOv*e_e+qE+k;>q!-gt#B0G #1zn6|>07R<2jVx7RLQGlf`9A#MM%V{zWRw|k$ZYWpFiX_f)^+w^RrxaY+rjb3 zA4@znZU|>jyyiFW?~i>&+jpgIbX#dV9I;}Oe39{1wpjxN0FobJ2{JZ^?5>>9mKvcQ zHUWSzD1#iq8B9is8c0ZT9SV>fwH|Ma0DtD_VK9-9UDC*UWMoC7YReZZ#vG79tSC*| zgFsZ;MQkZLB`F450if~XX}cK+ `k52tX!}I^kgyvz&Yv#G)jRj znzRcO$H6n*^&{uUo34K?6~_^mB)HSTYYG0>5dPAHe0RZ~BH9JDeQ@!4ooUr8)93YU z_J7>9Rj)f*85JaNRJvprxnPjR*lkf8p3(03+%6;b;tX0xi$_30xCHzRfV6>}f}6#< zQU*t@71gbrBR~_?LIzlop{;a6%!pxWU9Q+aVA(_$j|bL^S&4L^-4?LJBV&|OHu(_< zU;v=?F4-bmN${YkQ3< 6xPrQ<<9Da~)hVD> zHW!fy1AB{(OZ?}DqvxOSuHURNVsi)vY^yL-VX7#B4kKQu8~G8Xh;>xPbeUe^5ltAf zg@Jw#pW&b30`MX&&;t-vR<6{9j<(#4&Kb9ze q~3-*Ha@LGs97dPvXpLOVIE$* z_CyAH?Yk$*dwu7TEOIXKbCI_W{vyjj1g1}6-ww=A51)E`!W?|kc+OKi*Wa5kkK8;X zIW~x0&Zc$=Yi6Y~Jes`xUq*$0VgB&x{Dm~?#~*bqanLi4{PVpZpY<=JIQK^ZJIPn= zn+yNoH!A+&uO+}GE9pDy*z@~&&j^qGa;6;;0AK@Gp#Yk5Y h&7>ZM*zYDd#ux ~!24X-e%`RgHj1u!e8(O$QWisFZf!N`zsJUpw3_@@K2*3~rvL(P3E<;B63MB-S z#U4QB!pidgV(lHRwenpGFbg@Au^#k-WMw5V)VzvF(K+m04hSW%qS6*{gcCL7IqX&W z=4k$@W&X3q7I8(5CQlHCcy5Oz8!;6yiMs)YuY!OND3B_%K^jCsL7);62!qf_gcM>5 z2xLWN%o9c IZmEvJQ(>3{JzB)f38T2lms(MV<~29DkJq&;&-V6|B%P$ z^A{oOZsT`l`fB64%ZHs)kC4@6a6f==KE!QFw*_3X!XJ_4w{_IX?0c$y?8i0^Y}wYp z4+8=KfMg@3i|?-Gcdf-cK!p~h__Q=YY@Bg0p)D5Od;Y0^+mo-WH?ZNisGr;C$_(nF zy05;b7F?>Y@g#0}?)uY}^Y8!KVgSd_2msC*M7L!fasj}(>>bZ+O`l#z00i&=fa|xo z 7G+@0 zGCfk!-`dE(v4Qc=_z(OW`-lC{8Lvj1O nC(kBu0^ijdo#O2O>_3UD0HxQXJ5YHSn8o z!8mLrd85!aw_{P|AA?6F;f6(U8%7Xt3u#GoOoHi=Rf)RFY()|X01zNR6#%3I2&`G$ zqQIQi+1SKimHdl5sQT7t=}W8f;b>ph)EIVt<-`5(&R1^z{~taw(f<{nnPVlPBje)l zq&5eyg9dUjL&_;@04l*f>I}RMUxh?{Td<^9P_H#u2S9;8ty<@wHGV0-7#UB?pUim0 z`j96#gzH&YskzOIkpRB=AhZHpvSObrqdVIB<*1YSxM%2J=Nth_O{PpTEX40W>! wYUtei| ztvbCx v1r=Xi5e2c2309Uw9aFdzmDK(Vw*ySLN4zxTl9?W2)I(OwET z{}8!dxF@ORD{CSZCRFKksSrq($!s0QC5a-8XdZLIq~bidsh|5F`rCRff9J}l-kZm) zQ3p&b2x`CrfyI$Gh;Iv)#P7qtT0j3H`?tTN{Kl*Be1kts 28{WU+~9JAP7T3l>`^l1%P)OG$;ZE*+M0YMip!5fC>v_hOD3zLO>%Y zwH_gqz;OG{Mg)k!feU2B1ON#FL_&PA?&; C9K(zR=y;u@y*@#T>X!=;Zw<916)`M58Eo3_lt` P8Jdgkulp!Pp0}uqjFlph6u9#1IGozrN#Q3X6^ O z8+q(qp6tU%U%VQ*@QH6Z)oE Y(_NVU(&HMxN)T;py)BvUc0D&!!$wHI`Xv5s? zEmP@&+yH1W{?d-lx$e(ij;CS4tkW97lh`Gu#Z^=G4syKUe7?Vn-=aoOi2$zXVK1N> z5&$^2 8ke96Rt(z)VRvPC bb-pFUjYwEo^{cz=l z`XVx-ZfZ?sEKSuDXI#1m*V6rN63hy`k_N3Q07*gsKmscwLSwmZr*XEUh!C_l)s}A? zBw}N)ZY1=Z3O{)w_9ifo%&5eA*cMd=lKje0%iFo-z;h|9Diy&NWCCkga1DY1K>>hl zM~dNABDBlrJ2PL5_$%yp+k+V6sDGm5cUNQQ7)LwaljT1fKk}6zmap|b%P@5;N1?vd z<4y7>V_7SM000F5T*L%vmdwL+e>%>l;2CzA-Qne6uXRG8i(ByD^!#h;F?Mlb{5fly z_( c{fE_vL&23h8U$ zTm(3R01zOS2yoba4!YkAmJ7*>A#n;Sv5PKX8v7Fuc04epTk {h#mhv;py*HLh*G0X}U6d*8tQLhGuh(JWNXqA!{Vkvfn z*FtR)0m4Nh0pJlR6|_d;2(ZMpMs+}57Y=O3#-)`?(oOF$vFyk-V;+w0AIkf%)Q4L} z7i6LXNiziEW&uEgfC5g4NNw%ZJ~Elo;R#^@V~|$uxa_h^7*%ei{l$Dg)$3S6%n^v7 zP0Ap}po&erLt^%uDScI|#0mq+6#%F}E2M%3Ekwho`G6wG%NtmDZ`D4W9@~h8IwX}J zZF?hSaO9Nn`jK-x1PljaM>Rv-VGd4;D|^jlSqz3n6>_mdhbqyw9T5j(AzV;B%Nf{c zRaG F9k2iM1Ih^RQi!X-5#IJ3Q`tiTyH3$A*0nmdSdiZi)Szfc2 zB{gJ*k`VxK4lorkb5KQpRFl{D{#@NH0)-NQ;{vo%3StBpbR}9^J>hSI8#v}_;R35{ z2@Bc84#E=pmgR}(X?&Mf+`shpYd?UiK#Z-}Kes^7kJGcz6$1+#0|($35Kt6dX%$d8 z_$6LmK8e1c1e}YI4g{nFbzDFI%F CFWNSg26&TS_?!#Ad6K;wt_^CPgNdG{qe|C z