From 1699eba52323e043807478065d202fe8e8073bfe Mon Sep 17 00:00:00 2001 From: Khoa Truong Date: Wed, 7 Oct 2026 10:27:59 -0700 Subject: [PATCH 1/4] feat(colmi): Colmi Ring 2 Pro with on-demand HRV, stress and temperature Port of PulseLoopAndroid #100 (hardware-verified there; not yet run against the ring on iOS). - Catalog entry `COLMI Ring 2 Pro` (exact name, no serial suffix) with QRing's device art. GATT-only, like QRing. - On-demand HRV / stress / temperature over `0x69` types 0a/08/0b, settled QRing's way: the last value, one second after the ring stops streaming (SpotVitalWindow, 75 s ceiling). Stop is `6a 00`, except temperature's fixed `6a 0b 00 00` (stopTemperatureCheck). The streamed values are not stored; the settled reading is published once. - New capabilities manualStress / manualTemperature, granted per model (WearableModel.extraCapabilities) and only when the advertised name identifies that model, never from the carousel fallback. - Refused during a workout, and aborted if one starts mid-run: `0x69` takes over the ring's only realtime engine. - Measurement sheet gains Stress and Temperature (decimal, in the user's unit); the measure row wraps at three buttons. - RingEventBridge.isPlausible is the one set of bands for both history and spot readings. - Pins the Ring 2 Pro's captured full-night frame (404 min from 02:30); the existing decode handles it. Not ported, because iOS lacks what the Android change built on: the stop-ack gate reopen (iOS has no live-sample gate), and the nap test (iOS has no `bc 3e` request/decode). See docs/hardware/colmi.md. --- .../colmi-ring-2-pro.imageset/Contents.json | 12 +++ .../colmi-ring-2-pro.png | Bin 0 -> 224377 bytes PulseLoop/RingProtocol/ColmiDecoder.swift | 22 +++++ PulseLoop/RingProtocol/ColmiEncoder.swift | 13 +++ PulseLoop/RingProtocol/ColmiProtocol.swift | 20 ++++ PulseLoop/RingProtocol/ColmiSyncEngine.swift | 15 +++ PulseLoop/RingProtocol/RingBLEClient.swift | 17 +++- PulseLoop/RingProtocol/RingEventBridge.swift | 5 +- PulseLoop/RingProtocol/RingProtocol.swift | 36 ++++++++ PulseLoop/Services/RingSyncCoordinator.swift | 87 +++++++++++++++++- PulseLoop/Services/SpotVitalWindow.swift | 51 ++++++++++ PulseLoop/Views/MeasurementDemoData.swift | 16 +++- .../Views/MeasurementKindPresentation.swift | 17 ++++ PulseLoop/Views/MeasurementModal.swift | 33 ++++--- PulseLoop/Views/VitalsView.swift | 5 +- PulseLoop/Wearables/WearableCapability.swift | 6 ++ PulseLoop/Wearables/WearableDriver.swift | 11 +++ PulseLoop/Wearables/WearableModel.swift | 23 ++++- PulseLoopTests/ColmiDecoderTests.swift | 70 ++++++++++++++ PulseLoopTests/PairingMatchingTests.swift | 11 +++ PulseLoopTests/SpotVitalWindowTests.swift | 47 ++++++++++ docs/hardware/colmi.md | 20 ++++ 22 files changed, 514 insertions(+), 23 deletions(-) create mode 100644 PulseLoop/Assets.xcassets/colmi-ring-2-pro.imageset/Contents.json create mode 100644 PulseLoop/Assets.xcassets/colmi-ring-2-pro.imageset/colmi-ring-2-pro.png create mode 100644 PulseLoop/Services/SpotVitalWindow.swift create mode 100644 PulseLoopTests/SpotVitalWindowTests.swift diff --git a/PulseLoop/Assets.xcassets/colmi-ring-2-pro.imageset/Contents.json b/PulseLoop/Assets.xcassets/colmi-ring-2-pro.imageset/Contents.json new file mode 100644 index 00000000..36462cd9 --- /dev/null +++ b/PulseLoop/Assets.xcassets/colmi-ring-2-pro.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "colmi-ring-2-pro.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/PulseLoop/Assets.xcassets/colmi-ring-2-pro.imageset/colmi-ring-2-pro.png b/PulseLoop/Assets.xcassets/colmi-ring-2-pro.imageset/colmi-ring-2-pro.png new file mode 100644 index 0000000000000000000000000000000000000000..149e07e1536eb724250cd57fa5f3dddaf39e15da GIT binary patch literal 224377 zcmeF2Wm6q()2>;#OK{iV?!nz%7Vhp&aF^ijE(>>ecLD^r;6WCI;BGJX^DFj;T{SZ` zH6Odr>8tzb?kE){X%s{PLPwH3$eu?f-6g*v~J0mYKgH01yze5~3Pjxqsgf z8W?S|iJ?gzF2CO2{oCBk_+3@CY%4*DU>&?tw)}-GI|;V6@rOTNa3X-6(CjCyIBV$O z0K9zzh8QIq)DTr;yaGIx2xX=8uUdLdO=hRSi|y|ZgfIX0{;_%X?R>x|bUgI=WwlyZ zJZFGe_NBZYNv=qRcb;b9sFEbU$o~Jw|6?||G9wsE@PSH}*{>#uFsYDz!|0{{U>2An zYILd!;3M!Ao|u^iR<{OPT3FnD=+k2Db}`#;{#$D^Pyi`tr=x7P?ed};McQOHvCu8% zI)F^7-ef^)>#KZP9 z409ByFMHUiF-b)S=>8nT9W+`gQe&2{o|Vj7zn32$TLsc0)35}pz|p73N?TdbzZ8-# z2aFcXk>0uelm0a3)gkhkbT8oZMKcPXL-s_JM`$--dz2ueQXC>aiyh_?9X`uaE+_$3 zBw}!tViyM>0ONVB8%%~&3|4R+FtQ@k(4E8O6$n4FXAN;7q%L`&d~WhGp%7;7!`OmKjEu|!Zv8}A;ly7P zAnXXHXm*t$*-ai^-ria6UqTB`(O}Q7tg+&00FZ$c7s`KJAf5K7Iq`ij-w?(QqJrA5 zyck7lH_xBn-hUC?KI6s0o;1(ig;lFYUjQ~QeJlcbRYfbi++=%h@$FyOe%#> zk=d7if}tu&mCK6Oj1H0+VXs`}JfI51Y*v8T&7__JEzF+Uo_|kgSPpE`U=;Xy+(es( zNQ-k#t2IrFgE)a3Ghx{@VSWQ`=xhMl;11oAx$Oomg5kU#4>RtWD7Oy53(id9()t@b zhT}x=dhmFlcr&__!(rm|o|Rorg)3|~W_a*S10fJAonH#f3b_?1!&|<&(pD^)*M6t2 z*xv~qL|5SA)^l*@CvMp!4q24yX_ziDiW^fdd}E85f(ufjDT7j=$4Q* ztT)9itIl+!$Jje5`d^vqS)||f7x;cA`F=ISR|VKX~nT>+gJbZ#~h7@HvXD4 zg7zl|v|b^3)%9$}*Q!R1_|((e)_B#;v!eCkRjDmPeNL9=sXAemIA^6wf22zLM}^Tm zagtZ2o117ew*`L*j4YimLs+@ano)sQ-D($LhH}y;x1Mk3RuQ(7#gW zUhPJJDeq*K$ZlRozUK7Nk}zXmBpk>NvRz~?I~qZvisL0nV8e@L#Y3I9dHCh{-Nj{I zqlJ1WyVtVzFbJ5up5Og9E}SScWL7 zZFILF&ieZU`GO%ekn8$>o*bx0kN$|30L@^WooPBOt@vI5*&b=4!?RUo;?0!2Al$6n z{I@d5Z*2vljSaSkdCUN5t1&!jX0A-cSV~2bt=kxKy^ikY2PLKyZHOC2M{^U)=q+Wq zE(J3WLJK1t^G%hfDqlPoLB}Rcd(meuM8x=U#s-RA-9zbp0FFtS^Tp7uVM~N&D z)(02XS32;+6W%M;P@e90xQnVZYeb(Ait*?z(8{p-|5Gt7w{irw@tk7z1jJ8d5@h%G8bECcxe*+AkQnAi;)p(2H}(nOCY_SR{}& zm6H;`e$P6r@fd+)tp6--g@veqNEqDGEuH6?aih0|+G^-8E6?p=Y{BFvWabB%iOV~G?Vb<8-#jGqr(SCa^r||%%{zUKDw=K5AXiSY> zoyzqp88(eOA8|_KqSCL4t~?b7D^F?8uDyE?4E{DdN60H&|8nlR+0{{T@cIf#Lu0kQ zw>Ka7_Ix-00h;f4yua)2=y;HwVvV8-xJ`oiG{}!Y^7I8C#+iO*dm42;gGz^0`cVz$ z3#BF-U%Ax~vDr7pG}kL5CLGr%zu9oJoCYQ+I?6B$#XaYyNp=iU+4VrU7C3Y@3tM*e z(lNUE3_3RoyJSSWH>h9|LhEu)>;CCwLL%w4_B-SC@S8y2Ara;Z`(ZWW3m!RE08q~!1d z3Q$J1d{q>&q&rX4iv4I1XQ!mi_`W#mruZ0(o_8U|4lzgh;-e>v<{e@9NRtsyuyle# za*dGl%m~6Wo;r=v8y2NM!JOFig@_$>ni}9Wj0k_klNb6pUc4WU)mz|VRj2*i+n@YG z-=4lJDJgx#IM%Pykezw@I+n~M&dsr$mhA0b@--!-;|Xj}gU6tQ{)dNwfx)grQDc%)4uXpW&|cQCYs3!lnKPM z^9GK(!fZ`)Ldsc(^TO%3(No8b@M-CB$qm`zFDXiTI>Zu{OjmJVg1P-mG$e`c1TiaP z2`g8r_4`@=YLo3wr>s8m^p?Soz)w&E-byvn2t|W!bY<328FMz1B$hm=N0G8|pru^eh|dy!@rKXGH6>wb)`z^)Pf;C(fYL`Iam0j5x|vWw%?t!o(n9 zlK|5qZf{My8W+!7J|#KRd=s;`w-@!@-CfP=eIFu0$outJ`1#~On3E)dZxz7kuTjS# zp!j)?2eAGp$-X8wH+e0zRd2PdCoz{=4f>8zzm*9~1D2Gw8T+v<9iz&3-(|VIa+yDP zmnMn52w)MRFk$?Gf>>Rw$ehgVGKVl=^!_at1I(T_s#?4mUtNk4zs)#C(BY8B1QjUB zb5X`h8!&OqY#*88DtcU)W%{*9a#%^pe7IsSx>SatazzPWK#We~GQYt#N5VE4aMi)ZUkyIo z5TQ@@f+ZJg(oJcE=uy#TN>jk>1(tq|!Nr?huepd@*5x~B48$#93iM1z>@kPr!yTI& z)C}`15d(~}f6<_Cb9t|_?7ux&;`zBmW>F@ll4`YqF>MhZeb@BIXK?FPmI>r~RQ+i?6m)c>P{p#76FW12i=5>Z}~I~pq2W+B1=Wx;ev_FyvA z)m&MJTWv{s1_E2BCbbH+)GBRyYN$n<4eMGzfaHlN{1hJ#Rn>^|@~mYq(>{%6TcLSK zcoA!b3K~mxW5kM>p2iB zL?TR~jSNDVY(O{GGNV=SC>}%(Q@U==k3lsB!wP{}wW@24wYnc5DhRdJFkK7}J;)zv z)vqHrAfLu{+dx-CClXQ;l6%7*UPht7_XV%lKa!Vwk)$6nGnNNV`rnD*S1_w1sgfTD zB|nq$N4e45y-pvz*`sSEp^Ta2C=>d6Ak*9Lm7~)FZ3DU@-Kj$T*}}|b6Q%K!)-zr~ zLEAiH(u3FHC{HWn=XcH)xu6UzQ zqE=@uDg5ohd>|j(l)4?M^w+$NeZ7S-hpbwg5#g7dl}?rn`kw(M5EU`FDdbn9O$D?z zxBu?4MA+dAgnzD7jTfPW0uIBDHq3ZcTU~Y+@l#GZbaH$yZA6SQYX(!HzJaKR1!n8A z1C|{jZ7O{g-@M0elNvk7)p)^&T23d~CPzw_ZS>mOsS$6aOBXlL!cREa$Zfz%{{qcL z7G3zo`R^UxK=kXvt+lCn4|WzdPW&=L4m7VPfP6&-P8Eh+%;53v$Lo7B90bId#&= z1Izz}y@2QbuS^h)o1)L#?ZTS&F@v-@jaBsg z)p2uyGMJ!Dk+Ma55yKJbm$6M+S9sbR`x?W=Y7w=U>|J`rW1kJYh5>$a>JZ{;`Kt9|OiRhy zx9hsFhFYU{V)yM`y6G(W42B7t-}LK5V$W*a2{tmTPG|84viI7b*jreQ%E=D7po(nD z#6r$Arr4iyHNTXRd8A;KmIi^<=5BtSp{P1>qs5~se@yM|$zIGaX6(h_zH}b5+?T__ zMSiGvZ@s1@^}aEBp`2~UR_&M-FMbwe7hnJLLWa=oZkvE%Cf)Rew}6(T4v zuQd?7vVAYy-)SgDC+%q!wpS>4@||BOD{s%s95zMv2Y5t5r_x=hptWil(YBhQVi~By zm^LDsS19MMO83v8?X>+@-CZf2IL`Mjl z#T>#290NOmyaIS7>Zj@3`A%n$md-p{HmdRz`h^F)IC01(?lPt{YaH#(%wAxD-0iBm zIvBk;acVO*@S!inT%M?YFeI(#P}tz;t9iyb_JQnoc)-g3s}@v^%x~cWyIJEIlKO_I zUl-CowJ@nT{HP{)5fMoQS!H{A>1NsSm=vQ^N=S8fI5clX)~zIh-cjXqhI`=VjL(B} zlt#Ir_tD_a=YUSIYeMR|W}>4?h)nJ~wf1L)AmmF0!4Oq1!$A0q$^?Y|L@q-!z2`e! zt*zGqpc9G%1*CZFSNkdC3s5XXn{1v6JdH&}o7qzfH5q@}thqS1=~u51k^C zNfVL>Sp1$BA4CLMAljcW?-e$gxyzWij4s0lq8)m2PX#jmQKi#TsY|7}OpE;b7nsUt zj`=6(C;l5>aB9)W?W=h3AVkW*_(Xw>Zqk|K>RCr2_4zANEl@s_H#42pD%=%ixz(el z-oez&4yn4@ZX$!8-T@yP?*R@E<@r*IQUR)Kvf90(PAHezx@DwFY%lRKs&{t$))%0y z)#C?#Wh%$8GM)^>h}vG3KB^qHVC#kDtfFucN@!ayEMJK|SF@3{?GU3(GsOtcYN|;D z>$nN%3yZy)IRSB-w>#d}3VBm)^?5`ge^ugTX z51I;iwVx5+{(o7Fn2AcW>4xXj#Noofqm5JL?Y`Exi>)=oC#l-ML+nzQW4+F-C#Vy! zAT??x%v@X0=@QUR+rU7w6^KFo!-nS`F%_}jJsY?ow<^I>s>M4P94?Dr`y8^*fz~ zy+|TjCc=g)eXSg)EwJxz1qkJwbj%EzLh6DJr&2!HM{A=E*+=kx05gfNRb7E}zAZRM z9F`$tX7atJMx#+pPqedG1cw23vSD(UK2cfk2mSbM>KdZvB=@c5$I40zU*g>q+VE#(O{*m1oty+Zy`6R>Izoctpd4Y~Q zHf?$o4&czk$aBnhO0mjLS2ojOPk~*p1!EoTt$q8}>zpqrJn+5m1%BuKp62oXyYMs9 zf8i(8F+?!y@zjwl>eKAM|7Ui;*tA#4l$lWgXUe37HiogiK{rtZI{|1^9n{Xfeqy4LR8> zg{{gvzbo)M9-I;W?q=oDo62KideV4^)SFKB}ce2)k< zh6bIvU|O^zS-&jSye?8QFVZ_NQoSryzMM`yvgG8lWnLd04hgj7s&T3@GYf4)(lodJ z5CJk&xoX5F%jwO;e*+{sP#!LT1xwTdp#yqJ2&|5I1^Gq>&!BR1a|_q)qdkAJGGWPM z+uJ*uJ&Y;ZU;GvUwNb?4ta98-!H=X&YmI9`(Ccue*&57Z%mUJ3RaQ0P4MlzZvm;js zcNR%k296g58m0I%bT3D;<>&tBxS6f2Q&D)MtnBYHX7e09k`~=Pz0RMOv3{+!UU!_h ztrkX@k*X%_^Yh;IdnmDbJZcvj;`uoG{_#Ykod5B1Fu$hNMgm#&W!d)=4@Ss90KW*Y z6p6x$qx9WO;6^jpF{Jf_)QTUlR2WJF4>oMyAGBg@ux?OY@sXbV_MkRhExDq6;?f$kk}Fc7_;gKMsWKqZl)UTC>QYQl25ZO zSvh8!+0U>VeU_|L!ocRM*0+^2EKo*@+t9<4c%fH#f@P>L{<7etW!q&!YaYTO$N7+8 z5`Ftu1=wn}+9F-1lAng*Ad2YG5LRzGAQ&!!yxi5=)wj-sZs33O6@*yGnI!RVv6LrXo<{?8hFN?y80kP(lez zFv85Cz53w~E;PDXeO)tpOR^B{31HoZXt*tbmDPf%(f(@kd&Q(|unW<6^!MShPc5%H z^+!ay#Y>x+uQ{pWViTmWO#7xmZa&wg>j(UQQnw=wy#BMZwIdAf_45c@jiiAK6}{-5 zjtmMXT7s*>`UeXAr0+)H|9oH+ok%XhDIVS0z&O3Owe|dRv9<9&=gB=qi>=U6w$rQ@ zkhE5!L2vBQ8gZV-1h3cH7_6Tp_^@Cb^o5K|)tDYq)n}cfzL0cC$iF|G5<8~GmTFqE z7c1-QY0rehufaU*;LniEFF45N-#bgI;>2*Ev4h)-Bf9+j%-7b=-PqX~EC-@5E7J!g zVCdaf*k=MLx!{BlX)_^TC+zX*3sYlnZ(^q`1yT1Tn@O~ zzI$qJ{AvlaAVh^VH5#-PuX8?fXhTl^M0rfJJ&(s+W7yR|ya6OH95J(;&4(^X9b-*ZoNAR{j#L`uLs%p@5_h!kuU6z?)6d zw=3y{g12D9{+)%h)OuMl+fRhj`d`!tsA&bNZQ*>f>1wR&&OAS%bIZlbzt3`4Mr*n( zZ?C#sk!f;L+SPvB#D|D5^*w4Fb_|;3K)pu#<>)MiKiDU`Vs9c`jQ0Z2Ei%6tHJ7#} z9iW=IbSXJ5>K`h>{R{`T>8G_BoQvd4g0tzwI^v0YO~j=Y8LsXGNn{LIXW`Ck((OCa zC0nYDi;~2(H*TDBbMxmd5_6I-5q?4mwhl1W3|!tdKsnm^e2NT{7gC-6HF>WorI52i z&+%DvW2@`v<>Il}`!8=K*>|wBvvbaVevsL1YGiYAVu)aytA@VDsM=cMt3}gM>RM7S z=do?=zhv5=360_^jLevRmK;lFADbDphJ~?8E2N>yPUkno5ia>ZhPvB#5Oz<0#uy;K zQlSX0S|i*i#cAJ;`d|)3a~Qb&!tOkh7V`o~Cp#<`$a*_&;5S-}x9E~b*LtFj(|8E@ z2LvSudv8Dfi%fX$%y^M5AS%$u!@XOv<~# zY^~@yY|4zu9}lbdE3ls5+Z)^Zs6}GNQwK7Zt@}7TfC0wEGwf>3?wNSFDjZ`^mB6RpzUtEPF74rG#_p&*6Ihk@iXV~L+mvHObYvn`ur-vi%o$_^- zDrp3l?#m~!Cyn{__tzn*Bj%y22}qYt=(leDYjE81(8Zeeq!}nzsx?)rFVQBg3TFPg z#-RqZx&q8|Z8a@xQgFcEHzkRcz8vivP*+GZv~pjq&!1ByXBlNj@4mi}L2B)gZbodd zd(aUQemUL)8#pt#G8E9uQ?v??Dsng&-n`iBtrc^$j z0r5A@97}VvrS#5g=ZM|XlU7%}#ychhN;wfifhUE@);z z>{R6?aTEab@)rl&d0c8iL?}n1^Lco~Fm(R5qzS0AETq#FhxV$otV@SThgH@B)L10q z1lMH=!bkOF3Fm+}J#ABG&HbKDo&T3?>ua?k9pOp^$Id+^GL4&%Tezn!)6_9SIt`K1>q7X4TvedGMtZYxZwo$fO zaq#y9LK+T^*Try;?yG?lbSWzrL)?$wg=0wJoL#B5kLOU)S7zN zri*u;o@=%pI^tCb+VFxF z{&s?zOhim)_8e{QdJ!Z*kdjd)@gjf4qPo_f3LI7)WOBAzs$C{_z_R~=X<95K-q#s? zfOPLU5`=wUK@%?t8X()&J9$NZQHBeK;Xtm6S^W4xPS#xu+Xq-%dvJ1zemqXIzpsS8 zbaAIr&l7G@jMt}I8_ibzFJZ#0keey7O{jUv@DJylTiT>m5*>~zEshE;P7*^}V!}d1 zXaHKhVNc>6C&8!o9ZGboqreO=!n$`et9L8ep+oPm#e||mac4497IQu z_Jl)5%=)>j&>@}sTfknz{6a1@I(Gy1t} z8N0OUV}>)kRwM1&^nhWxNfZVcUtcq(hcj+q%-Xu)@YsD>e`hy75D2XCV}l!Sn@L4J zx~<$VoaRjHH?MRK7x70h2jej5iqr{B_b=~`APNGFvpC7HG1Zi6au)+Maygp^cHbxR zXFNn!)hKLLa)npbZ@nRDugb33z80b<300G(fuMt9iTZh`M@3mocsXZToF8pT>kS3Q&qBp-Uj%t=;0OtGI$Un3+uGYz znKjM%C0~UIqS5nhSmt>p)4XjTTENvCs}^c@W4=sz$(I{g|L&efJCxTBr>DK#G)?>* zT!K6#qn(Rj5-f{bG=~*9h2ivLelGiMcK{jccGwjuTh!Wa6WG=1B5TXnG@eg7-cKiQ zLZv^MWYbe#f?;NXfX_Q=UT*%|cc1AjQ;kPqi~*Xf<>;_MxqT%3stucHGPzAQ$-OQm zACT@Vxb|+LzoA{Hx4l_aqBeI-j_GW*DsAxopOlZ8-MG%Wwj^Hxt^#{p?oS;I8HnO^ z!TO499XpoHQ0A`C>cQyHMGA3AQuR@V(X}5sNZ-mx{57L!adhoX6%xzwzJ`!oD^Cf> zWRsu&Be|K3E)Su_!sU)lkfUX;%t<9jDODemQCQ~LU{5QPWl?9%{byHks};Sc2A}|?5iw@m0Mc~ z55=m>W=O`Fz!}|BKQsut;H~Ir)$zqfvYpg4M1$3Ka<6l0^9f ze$sVP!zDed-fiRJjejHGHH)4kvOlS$;D6^ci@uCxvJHXgzy>?^p&EGQ$nv~kTbJQ& z>E37WV$G1n_`4m<=4SQU#+I0a!)Ubz1CTq1ix@b}<}C%__ph-QB@>~BrNCKWmLGBl zkYn&hX>&HIQgeyNQyQvKk8YalEtO{)LG@sWjF}6JO%Ni)a1bmkr7)R|Ex;xIM9d=O zmIdy9Mc)PKV$Q0^&s)y6sz4(Fyq$tFVux9{KuXta!fF-;A}!jLl^`>xhF#O zt{%r-UIGHjVQ<$0rk$LbDd{|oa^n69RB5=aS4E!mhYgh;ww5EOPXM1@0KpwnZf`*N zDvQzX$(>zGHWMIAVOg!f<7Gwh@3~{>8*wKxq`+zOkVvCtlRb$UvlfT$>5qxdKYYy0 z%+4KwK^b!eF*r3_wlReP9u_FR-Q8;&8)B8285Y0z?KlaV`t$kfU6pVHpNEv`G&&Hq znL?Y+@FuDa4LHg3plaj^YSuhwPlf6swXddr;iqubcNo;L#?~nqlW&McP~Ox$^S0D{1KM zKCE$a;s@z2yXfov6n&eAPq|V7O<5iw>d*+Purz5l(+dld^8c0iehtl&{-bw2C=03& zA+yEha#vYu!7@_Bf*sFz>C9x}XzHyG&k_}u^0o`=_Hm6=)~Rnkv7qGsM=avZvgX`~ zGXa->RE{XUJ7r-+kO+XWi9I@N(sHfl8Jn7!$Wu%Vh*}Z$TFK6$R(Vg zigOHnn-ZL08tN=NnP(nwAnZEXFTbQ<*CQI>jEn=+h@401>2OI(yu~`l5Na|Y(k(lS zDS{89#RH_pxWghQUwM25n)ZK9m#K#mcDp~%)uhUI26kvqyq~u@wB`#5KQhc%mP=#w zT)Y4h0{!|iG5o$5t^Cii=tXdFvOr17FX{q>XRUCb3~wjEtoypZvsL{qDyO@8ZF6&A zW!uuq%x;S=oxzejr%_GATv<~t{x9;PSaxkD8fy%Apo6Zw#-RMYw7wuT)j<|f3HFt) zw@JWwUlwZL(J6>J2al)Qnw$Tm&G*Ff8Sgd{PbSo~&HaiE?-|dVe9RDjM=K@K41*9u z$(x7tt@qEi;G&PD4~wd4mbteEfx@N0*)z{h-Ck+I)m5e?h9@?&CnlE^S95GWB)!+ufyX8c4bwI>X5eb zCs|^&B(uJ@xb3F){Mg}_6AW5;(ut^2(#jdWZ+xjOeO~gie&cf9oRKIflso@WUA*+i#}ght{*EUY z1wP)cpN++6m5+~0(|maFqC~u+1GsRh6g-ky6!zuu5JJ;Na4Fo=3YB8k+bovoM_nxX8V$zorCeH?+rMpWZPGb9I^j+)H~p9xj)HUgl_LGD&GzSCPLQ$7SEN9C zpu8Y%`OO6SqItCH8vU1VLa%#x@6JJ@?J)rvK~-_jl1SrL?qp5}#q-kNS;vfJEa^wQ zhG0hl)G2h-EhDh9y`9Ai*)Kr4q=qjiDJH7p^kFu!5`mIn z?tC(RUgSq-Pv7NZp#2mmHArR^QbvF5dydNV?`nGAB5 zXFhYrYw)pcnR|1iyB=2laM_1H^Tksh8!)EFK`zUYq|OnKAhU{tt>0YR(H}lg78;DP zVo`PCoIk(+b?ym6g#ybnx)N-kd#f3{8^iW>?#t9wvWGmM`Z_D?aw^N8uud}z%5_Fv z$-fu<$x!}UsC^tr#l#wZO(;{iuSab$8qyt!1R4q_7Ato1KQ!=aK<-7R4bI`Mp#nT_jTZ`I&c%J1Cfs?~ zPCMG7otaO*ZQQ{3?YL!v>rSh7oRa9qDG$-I{M94yY!29v$()e$?UYqClpE);szt1`7>4Z19XW)1fM}c_Nc} zFr+U#Uqi-Mz&PSx|ET(c`#wG%mMZY*B&&xYIFjPIU_$`89$}+#*}CFwPWA z)d@6pB#>7k)RJ$mGwwb5hmm2Z_4D*~;fJseg#0{8sM1$MgmlwqMh?qO=VkZFH-m+6 z+x4ynGt?e;i%3)GVOH$y2LDYtP&FtPTnbEbQK!ZFZCiQr-gn`bYT*BVefJ?i5byKs zW&JCsWnFfE8tcDuP@2HSIjxDYMB}HXmezFt`@gtlVdw8ohpStioe_FG+`YZszH4jS zvp7?dYn51KeUY+(WWA7g?6(Q-_Ir)OErE#ycxv+^O#2=)?l2_O2N+}GAWVt|K7ObD zlhUX~AKbe!h`ep+-r$5i-VtksSz5U18HyZ+&+Bt?6|w^Q@64^b8vRS!4X-&7@*seJ`?wm_w#ZCrSp7p%Nx9KX6JYz!<`_}&CQabPcKZngkjg1O+mV#uuvxxq9@Ikc4Z)29Z9dtZ%P?Zv79 z>89O3F7UeHVl-USN;0-l7&ouccVadi= zRT={p5np3U?e)01x<-o8J72ZC-mQFXoJcE2H!^gKwhEnyd?@`s0Qm7#RY1(85ho>| zS#{IQJv+zWVU6IP$QKdiBhiCYcn*6(&XO;4NhzpR`l;p*CS>Mc5)o95ve$KNt}nf*vO z?sc&gHGjODN4p4)==3Jw!V&+`hiY|&J+p(cKVNES)Eu7DMOn7RZEX~*(eB^YTlN$nhqAQM$_l-A|Uk?|Y}4%4#NXw9!-u&TKPe6R7w;p$zKQWhL> zY09lSd>>F9clv_w;#?ka@Vf6BonPU27gNCJ_uh1>f6%Gl|})+dX{^yN?M<>#-S9e&va>$QJx{O*f( zsEh5mfw8E7(I`DYFJ#Opfn1?bLTXnA2ygtNuF?c4gsw2KGM9hFo6e@e>}Z^ykI^9;%NThE2KHpJqA@ z24*0=j(rVwL$l%7Ot0qO^BNNeGwe=V7-tUC7cv|)=&pl`1T*)MG^5r1Cv>vG!3@h{ z^OoPpqrdRnH+VM!qsB=Ca7q1N#ED3Vk;vAzw}(O_A1*KV{OvF7DGH`($>^|yY`-Z9 z!BL*Wr*wY2a=jnb`^6eP5fr(+4Bn-N%TUQopy}qoi4rU+xcF1r+0M2-`u!XjlrCyj`A(L@T6wFWqX`0UWq8f zr18`%dp5qeCs(Q$dIdetNS^@XRGEml;Nt_fl(6J~{i}%ovhM)%f$08$Cwt3UAk!=H zW)5h__v7gK1?`{1-u5}u@2=kST8Fv>`eoYUDE$+o22mK{}UZJzy+v0@97{DnL+Ic?OoE74{?7$>`E(56nyL8*gn3+x112reLljE0W+;sG z2J<-eew*)F-b@7CMs*A}AEGi5SIl($F|Ej6jMvx$OJQ$pRQht!)xP z+Nz+3grM5Ke|5ZpZuLxtF{dil(ogtER3dV^B6N$|`SQBJ%g4*HAW7V$(J)v>&h+IV z1Dz;FNRlhXm=EF?dx2iu)tswN*fTYKw#8ELn_3{P08TLN{2E=*sKd(H(u-8d8a{9C z5Hgf-3$b0IeECm8y|f-XJ)3dGHz=Fc{69$R*H>4g(zU<`X8{r}PTw@nSf%~(Z~yCR z=sFv#gr*WCUO)XFyFZ%hZ)w(f%lq!Q)V9;v?a=$O&GfsoH*)42rDI(oQ!a}dfbmu~ zvKoCm_6mGg3y|OdV%1mQb5-J*ab;@)ND8=}T^EM-Y~ZZ!FlO~I-Qm=cEA~*e+shzg z&dQSJtinVm%M47aCB_uFnOu!mYh9@n5t_(^1VT^>YQ0;=BnY{gSM&Ecf@;2n7Q>O9 z17}GBb9u?w1S{9+xJAm6=-ljYj>a3Yv{Os>15>{#QUfAN*kIoP5yL`afyk=}s!V*^ zdXuK#yF+sLxqffxjo!}^09UjU>C#iTLSY9>$jj8`C+p}j8gT9%>yB_lOtNH>P@47U z6FfGVh==!FrD??Ls5(?-(J*A%3%xovFC;NT;b~MW^aAX6nnBY}=Mnjl$Wz3lN_h0N@xU ztv=gmYs0PbIh!6+mSjn$TR`kUqHS4CP#S0;O(E$b>(MIEx^>C z-yFfZl&+R>92k!CTBGaa-Ya!1ono{Br+6L!eR`0un`|2ku@XBP$KmL<3AbTW;jbB6 z#@eAy*}}B=X9g{6$+G;SpVz+avoya5y#8D9a{Dw-D#*w8jOHh7Ohf&RI$KnMB8s&A ze?elmC@|BeVv=TuM4HUlF;fUR`JkH{ZlyVXUIE90N57!OXY^Xb zAA^|?!yzUMMZZIG*!OtTJ4&n;xff93_{*Fj0jx{Jsw#DVzf3?jvd?5Y6d+rgijkaw z+s$t~h;9^$l)lZtVJpIp#@qf0x0s`@D=5HldC`vgpn(>&uV4(t_OR{>M=Tc29gn6{ z)|Jh?q!xuM}XJdk#8uUluc;*rb?>FU2x3LnNk&bke!#aShJe zR1IYL?-AR1EC@a_gD(TW@jC_Z5~1>)9_=FD^M4NXBU60tt-THmbD~(rSXzdRn!az} zubh(hwHo*y?`@$R=SBK@JZ3h&-mP14h6W8?}ys~Rv%h`F?h*#f728;SZV(%IgfPLRuMoixn8uFQH#yF3&& z^hk?cJhe%wsJSHJ?Z{L5S~QYM{^fPH3dd}A%|&n}MDMXC$^G|VcA(8SGiI#eGMZj{ zK%giqA?Iek1SoMD3tj1E=r&fc?G3+Zo^ZcsdHiOW zgkG7sq1`{WyM5(ycNW(1_u9bNeU%33!e=+Im~-2j7CSq6A$B2oLoJ8_`2=1WVx}*& zE@q4WdlE}VV_Rdea^DTH!1E&}QBMHVHt;x(TIg}t;CFW*VRf~pcJebJIg#>cS&=^7 z-hHp$f>I<(F+vUVEX%KRcThP+**5?oG_H*n=v9j3&Q{0=3TRSgD-dEfNib_iZMnLo z+0@TqcC^#*I@W`d!q@6z^yDQx2tNyNxvI;A@=j66*h{;-Q;ek0i2W6yfM}0@CY3z`v?+NUZ=N4N~6Pg})l*>hcrc>wJBw~!m5l%J3G4d z@9Gauj;|39|D5(iADs3EhxJxg{z-u}n6;sKZre?(3G=?BCQ*#(&IAwWTY=Qj>4{~= zO1I7n1GY!b4q)%mHog3R58Jp=R1RE8_$&R}KWtWgwv;n@?x9ckzJ4{xy4@yKtM{!x z1;KLX&gG6TvwAaLiuq@fYVAH4R9X2fU{%YxB`!!DFm26;0``^ z=Uk=ERwKsE3S~xCXgt0Fs7mk*Vf|{3fz3CWpl?u#l>*va_I4UMou6V6m6cDs@@uUx#$noYkyE-thC5%i}ITtyuT-a z4SiV%>ewNUqORMqD-p(%j(^1Lh^I6THI9Lx%*iR-BDXe=)t zYP}d6d>H1Y_D(&S;H!`PF?I>ufG?a}1>}!w`B_MR>CX?tR~M0~k%zBxz^pT)IR9d= zgJ`_IM9zoN4HD5>QKTHcNl}W~ijZ$(fHb-`K<~w^muzJQb$@PO#9%(Ysl??UX8#{a z*Wgg+|F*Mjw`$q8mbPr$wvELT*21z+wvA=i$+o@h_k4fv-|&2%8`ph-7q!2ZseeRo zkxP&Hw*k}Ny1L8O!=8-EqR+P^EBMcZ{IuT;vw~il(AD6jlv3tDjG{X-cGljUgk3Ab zBqP01ZCShO?K0A<p|d={5-Dtu~}30z*N9OF{K5!Pos#iJ?1`9(6UOL zVr_t2Uo#-F>GXcav4OHSJglF_kgVCoyI8y8V;Lt77hZj7*PxAh0{11d?$`Br!W(*$oE-CBDLS9K9Wp1Sdq~4kp3)2LTPx zJq*|}fP{>wMb%K+@>j=?$$~z7*usp`^39%`Gkl;1wx;(}TGLhj?jm7O}Woq|n?_s(!Y1JC8=nX#E4^t0@bGz{7!*|3w|%$Z-R z4q@HKd{6O_*TYn4X7HYMQS#NndXJa++9OoCK;@0WB$)&kPhT1cPp*HG$w9Y=Xqx4? z+EN}&V@;HfKL!68*3A9EIjZ_9le?FFVeLR>$pIs{3L| zOy@1myuRuYAH%_9ah-;?Li&&shr%1&)@}FmzwNskG?`6F+&KN|e_-Jcn05u0oIG+D zAkkAPx0GT5O+Sc<&klO7`ZgxF?mq-Oo?ezNw?D!%rw*suHJA<)If_B!@!K&Ogk4#! zHAyc?qVwfdamPj00T|xb5dpKySvlZ$vAtjd4_|^)n=niGbIh^N*fvf>0|$CsxR#A` z>{~GDr@F4?lyO~24i*G<>wZ0d%0F2hC`0MpeGwc8DVoS`Rh&QQ(h@F|R{cA(QI4mD za@(?DM@Cbu+blB>cUu1e^0n79v3COE|=6 zV`uRtTZ(}+m^$;r7`)7LQpryiUr4(+YdKkL?WotY&!fb0^1S%|IlE*0CB9v+P2!ST&auw;W@042 z&+$-6Ee}s7Z5C?cp@89j%(Y=fv{;k&>^f_$AL(_FwG`p$yyS-L392M^`cmMK;Ac8X zM#Ty8nMGhjoaZ9CW#t%sQ=Fj`}R9<0RkD>!9xfOEux)AUgG9luB7 zl%`kZg#|#rQd*wEgkK|GEYly%fAVdSy>e2c*-p2GY3>Ohv@+3OGL8P(pjfiDt9d$I z9vJbTg+MIWLf|GKfei{=AqdiA^;TC)-;>a<96r0zH#hn^uGY`j{hT@1SJqgLkO`l| z|1gMWM85QOf>?(1PmqK*A{DvV)r?kGW8s8<;FIPyU&mA~sE|jNm~nMbz~w}jnE+as zEU?Woi7;6b!_X=q&6sos2yF7(7n$h)I2|wullc)S3=^Qd9D52L*EY%3uo}zSW5PkF zBh+dK&~7t=#BG#;=@pC;fHa_a5Q}9(Sh@E?UbAHs@>UAs={h!J^&04Qn2@c@=|v^1 z8`eQP`4DqXRS_FD6md}>l9~&0(v%Br<|1L{^3HjYEN|9kZ@)5ft^sXIDbxFCgT--u zW9amdVZ9N6qvi&~YtPSB!Ifnoc?}PJ!_)vWBk+V`f#@~qw^b6&E+Oj^MT+H`rMaD5(MR;ne4xtKRaMsk)P?>gcH z`)V|A-xlrpG6!9UJOZaYvU8E&M?Yi|WP$=YZX`H#+M~XLCx+7hCWda-{190bAp)T3 z&ROPJ%GTTU<&e|oiy!ZGT+P(42Sx2uMuv7z`7hLk2kh0v- z^g4)D`Pj+OFk-?2!79ROx(VU8v#)=4%kM!V}|#+9}%prc%mM+xBvswQG|SC~J$RbSId%2j}bK zH%o0JnS)z;R=o3K zTApZuqvQ&XawkiUCQqMOR-Nh^v6Vkp-uA0`&d;h-PT1uXoG;}3nAV7TQgI8;Pm2@t z^~y$C;wMp@7EZV-vU13`h&WsXAbK%OyiEIO34`VDswo1fBahsrl)bw}koe@>9k^C^ zT-)=NiyCDE-fQISgUO=cV=71er!Z&ujrmWlNTI+;KK`q{dlh8xoEp<4;m`zA@hgIG znJt3sjiLtKNZLgu2-A9YEac4MC26R@&hGn)QRL*jp+HyBN+jsfz51Tlt{An4UwTeikzoPqH|M$d*CUmbnr~kXFBL@Hf^qndA}h-T@7wW zvK*7zfKTJ3Zn|>#C3Kj2$Zj;nu&0Q@Nn?;67|W4<$4|vZg)9hfjFKZ;ynn*Kc!K&% zHqKZtpiH$W5Rj5J_>E}LA8ybT@0r9yUk7qn$JecG%DO9KN_UYVe}lEyzT)w1;lxO^ z$9hqtMcfYwQ+CD zl8adtcU5L94ym=e!ylvL)D&fcwUsqWuqTdQr3pV=qR{ERF?72me4ZOSYYk73xNIyi zqhfKmI$#ijf59$UY+Kia(gz*3Egn{G*$^#VNP!KR+L)PdNGsdab&>Gs5q~irm)-NH z&p2cS%3QEbiOAe#g9rmt=pTO{#iJZF2j=xrTJ>nYIzzrP-2?=FU#jK6Q>khM!+lvx zz=}goEZ*yTwDkttFHg1af;!1DgeVa?$Kc-k%IA=?{Zt8PXuxaFM!W23h>Y9dZcRr~ zb%(GJ9V`vXkKJFDiJmyhLpBo%&7LgK*X!#rdTqDo1YmUEk8l0mnMIV|vb?8pfGlo( zbq;OHX5L4VTJLP2r8k&13onVZQhH=3xRbP^P9;?p%Afj03UW@S$)f*Z0oz#dE5Q7e z_Y}G<>QB)5-fyXal9<7Hmu)YWK}hPRyUU3!xl=rxYot-v@Z)f*lz4L)DCF`OP6e?u zgkFX}F?9IImTk#3sQ@3OBR~G7$*qp2e|k)7FKeg-pRbBFpTomcSDgDh;13vy|KA66 zlhUuD3hHO$By6cyWqd!M>}tvlc-$fDe&{0=YV85@L3NqU-E5H67AoR1Ds+&nn|tY~ z`LHvS+KekwFyVw3lApI*VY$`;$n z%WL865321iwWg;v3$~MKjP(+Ky4mVZg_*xDvClF8$nB6qhKs0H&LWrKZms>xe(8go z`&k}^JhLYc(&s&x=F)Tdta|2=$0ra}T(`Ou6i#jA~^XDVW992KG ze>KV`7IBS_H~CI=q$OkC5I%%lqA0j97lJ=n5?RyBgX z&TIpHkZNV}%y1*->fsFO46su+S!E1|f6JKp%-FKRnA#liuQ0ol>w+67vs2@JuB6@x z+GeMZg%`NLe5e04*qsD5(fBKeIh)2`xYrmbZ;r6P8Gghvl5Sss4!5CH!?iSp!>~;K zc;9t!cS@H=w6o>KF8~bZ-@DxQ1EgQSK?envm`Y86=VPk>@0ro=tIRbu3xSVa#Aly( z9gkkuA052l<0iBHh5fv1c&v@Gj0Af}WB05utXY+e<%d%F0;=A;_a;V{BD@v8!#R1= zjeSq#9~p@(?jeF$TyIK=Z`mmzT`3V!m5gAeh3#sPfw>6*3?7WKJZ*MP&hFcrKG+No zUwnas4OIDSk$#Zz8HYff3OQ&yg|ye%a<-R?EM36iAAu7=rT*NJCUUt6i}(oGu0xci zL0Suv2{o9@*biH-*cZQ?%d}=G>0&z&%NkQZW!yrY0oP}Li^$sMf{6CA0V|sI#iz`S z)c7xp$E@8Tl<=Va-7Ddb9n!^DYj-6V-%W|aO{q`ffc2o($dm=#v_}2BSzm%)6rs8W z~psf8f#x-^PqSErfzTu*d`6wBzBsIuKTPJ)2c3sU_v*ZwR zRZq}($D^@RZCh6=D-H)<=5Q&8uWfZ`Yu|QdcEla#*WLoE1^3V!?eqw;?8fU;5BO=c zc0NABz0QNM7oAmt8A>tLP!*3aeYkZfYaVoNlCYH{&Nr87CnBK;92ziMSzzAqzEf!R z^M|DH3Z)osP_-JsMY(9;326kQ)ZOaaQ#Bhk*M++9Q*ua|`i9g4yc-V_lr80Hyw2As zs2{{(|J>ZV7F}OlF70r?e~Os|q(Us#dooRh+5}7Y7A2%uHiHKyYZs7iRcl+>!wU$) zDK#ff)usVY2y_(h;H@qW3BS;19sH-}HO;$b_RPn+8Lsuy7+r6zf)2;k`Bta51!(g) zF(nRxr^i6AB1lZC=ZNRm;)HC*Pc3JYu?+sAO1VO6p2+=}-FWhKZ5?5glL|0K$T&$0 zv`L3MZFQXKy>92c6)x662U@ zRQ_FNKM{vT3-}j;HC!v6BVl$b0}5uMWn#6}W3Zvhum?wa0prw*Sz|{)(vo!7CLx&q zr~=f~VZ^U*alG9Bm>o4g$b>8I@!vddzUR(qT==moL;7FU@EXZ{t{1Ro8PxtqEQ8|DlynZ?$QN)qjx9MjHX<&gy&OjA>&zNssnR)3xOfILnvh*Z6nudOJWmOMO=VrU`P-rke2P-b|?mw3T z3cG`P#I#s!Uo@S1FvV`}x~NBdv6EVsfi^BS?f4~w%@I5UDB29TgBRUg5I?h=h1 zhTWT|7E8XQ>J=9I8-L&RI)FiT0)s&uBnltjTX+fF(p?=0+65)R=AGC7Sv>j|&xnbA ziXGNpj!kJ^cy+o3U0r=_zw4buqCfhsb)2o3vO6XEnYxny^cp^{M3hS5aeXpAy&*JS5Gz+9$?qJ(zy42($H z<8KA6DH-QgoVZJ6H?z*ZB>Cgh}66)R>;|VOrQQ0{XHjgv$uc4 zuR~j};;({Wa3)qyr7;#AspdXY&D*^HO!)YiWo>|&SKsW%N}-ka!&`V|mZ62ws|F;G zCzyt0rltQhYJ3k*rD3srk}ta5hN4bgF6GjkaPo6Kg*uk5M%>wfhOm{MhU`8V31LDz zlRD1>F;D+NS=;~2p(iPKXHxE#<=JHP78nm2!j+#tiXJZ;7^euQdpV@258Y-5PU9u8 z686^}W%gs1xYVqX-Y+e_-OD%si2>vaf8jM~upKF?Qp6H{`|rw? zOOI1g0C%82^uwV>i>x~+=!*PB!>GsW*3PKoY`wGVB1P6d2s*yDm_Q~b+8ReiD)%k; zv@hpFa}%RK5dG+gbXHF|aA9zK4>F#W@AxLtRiFkd7Ua_YHB)S|Iekn`9vj}Ho>l%+ z#mvLklR+bdX=5oCHw2ldCW9#)#11eotW;+-7(K$;(H4)82>}1^}?$sX1&6z&44^hb}eL^ z8_((Jn>_)aU5}0?PEJ%zxVNT>7~VPbM1+`n!$B(^uXy!ZB)aK%``e3y&*|k@{_R`+ zfd1~|s))TZ2!`R}$T<@I9}o1Wtff-NC>+crZ=>3zq+~n$cakvY*kBBi|JHA}h#8T~ z49Kk!>ur0%;M|mjhjXFPLX`@AH>Rp!(?nm&kH4np#;Fwgby3*miKY~Udzle{)#ul# zMFDB#{$^cV&WN{ClQ68)%$$0dS=Lfu7%JdieqH}(!E{w+D)B^rH7FZuUVvE`)0*9* zG@%SmcU^Ic+^FPl!0GCCAgG1uq6pYR3VV|6h%R$vCQnmxJ%sHY7(Bb&e_4gPfX#7) zG`9mlv!j$x>2XoBJcZ{hTYzz8~*LYYEjFz$C54U%@yNk4;RsEPWy8j@&$G#m@KFLAKECw zO&QUjrr2Lb77O+g_1X+NTI_jC>N(vodhJ`f+FiULt!Y+uu^*R@>~;c4s&i@G0w*rx zaowbRexi#)X$_Y+2n8+trDYv4Ms=S3_mx^qY|tHLg`7nW8lNRHSSr)>pN#rhWqf?R zi?1(bJ4G=<+a$^Ls3tpbQ0C$WrzUDHF9vgoaZ(&!{I_Y#ofUsi(Uc_LmRQYFi0F-m zAn`_WdVwS6y4tkG__n+=uy+QB$HRbLPX(r+KW0%FT2!{SxB>-LP#`DKQm$Fg9_4T{ zqp6J{;g4wtP9`{PtLB{;lyE8p2(DY?#{<1bV@g6>;%y_Z3Yy6YsGM=S#p{cqdH$ao3<9qo z%(s)hP9gU(Oibztv(H-qn&R6Hs$ZE4WJ62rf-JI`-#OKWRbX+t(Mx6t@&DQkBSB+3 z(qwKJvcB~tC%xRt3|EP+oS?1MGyhwYpkb_=l--TQ{%?j;qkou}pB|+sXPpp$gRusxGY}$|s77AP$ z1S~;wt=j)0iFw3egq3o_-SENMx6W^~40RtneR?8@jEww^_qFibm%O!pwg6yXilr8T zi>75;A3N3MZxP-b^@$1d0#!@>KM&JHGSGrSBe=nc#`4LfnI~+7%dH|jA;n$XYRdA& zx|NG~8FBb!@Ig1h>9e5)63NIaXx={O#Tz1gD6g`6hHAAgz*u(J~Gw~dYV96e8Mzw_?x`vA2lI#>MY|foeT*(TM zj#8G9k%mk2E5#C~4wa!C=FIQs`=(+?q{ANk+p0O-G<`<$`z;r|GXcx9m!9YB5Ots5 zD`fG-i{4yKx*HVHQ7Y;J*Q3Nm?JK zD(G=3zYi(WIo3io}I+ z-`U;R#n0!sJ6gd*){}?Yk5Cm)E4m(!Qd|DRt#h_^QP)OV67-*OjDP@E@SyvbIS-Nv zyQYkKe7e+MDb2*`Iu<*-y>8E*LTL3Py}xci3*m1<;s!Nd6dG3gqDz8A4YSOziSVbF4j<*X43G;Hus>WcJ<5JZLwvG z=$Jf^$_MF09`B4XJZS7^n~Uz%8*lbyUcMs;=U5>P+;?XF>pPnQ^@O|)4Q&qqqtERr z@|TxaFPEc-MQaP-v4ug0_0Mi*)ioN3M%Po#~gSC{BJD4H!cIDe)|5J_md>G_?Ihl;8GNJdE42&`eN_lVE@1FhQ!z zf$rK#b`0^I4!qv8Q@&!d^w6S3z_u-$>O_j^5ADR^#tr>1WJWoaVGE9?nzEL|DR}HB z)N%-eIP6W|#}QwD8~ik+kpTQdY&Ta1nLb!=?f&(E)Xj&I{A(IFWEx-2rQz;*B}Zk) zJ^M2`$!qjd+$qekB`|k5;z*{295h*v*jPFZqN#e(9@hIf<|?waGpCecgcnTs=#}cI z5_@uXXG#g`E>U&S6SM;Xeu>H5GpWa24a{wsL586JL6M~aG~Ii2eqwL^;^HPux5^b7 zY8Y06#hJ@J>#7L~j+-Rv{=h~D0!GtF&_f>Q*jLzU?Hl!JezVpN;u z|C;`*&{6(NJZwE3kMUm+NX#z1Ed#QWe>-h>E%i#uKE=1372Kn3hrDL|+)7=QZco*#~5fZ;E7JKh->j2I%UU=;w{+^8JT{>wM3!O&L?=q#St zT29z{=~E5+^c!S3i^R-byy%R9C%7Sg4BuLs+V7gL{pRD<@OG;P9kgY=|NaMC^b2lK z*?&aV|ic;v0lsY zJj<%m_nlxxh$0WoEIQLAjS#ImjhjB^4>HF0q9(;;ym?%gDo;H)JDvcVRzXqGB!?Y8 zT{BAP32k7{?zU{I#oBk7(3eKJ-l3uKY9S>n&Rwx;1%OlNpl4!EO?sf7(|N z>p&kv)A1dSJE?DV(GsRnBb-ruu`q#*UV5tjrcWslwZ+k)w*X#KOb&r({P6k86iZ$# z$xB0_q*6xRNmw@&1BIcAlu#zeDPyzTJ@emOdoq+hoaV~`KOyd?sr2oxZDG|)SmUsv z_XS7>4_7ad#!e*cMMUyshVGzJc-=kx)YMm{!BF;UI7ZGy6tQ}sGgZ2=b1IoMy4C~} zW3Ld-$>j@v_P3N!^HpBc{rQ@|o!(*@j&q`NC=sJEitJ>um4;*2b2i`&8F|@|@tvyJ zMseya+sL-r7hl(^7&R1o#}7+1>VMlPQMK98;!^qNdjG56=fLaLX5;172I0kJb$F93 zdv3ivVW&2*#1VNxDVOYAXKJc1$2axn*SBLD!*iqU*;_bp<%k;A2rA0p=A<6T@dzC> z*D` zZpolVB=d|(Sqj9h?s>burCollkn#l3OJ4Sv7OCe-J1k+q>!NhYM=V+)_VX$S$6<>T zh2TNfno@7TI;5^DTI`A8`%W)ODiv8TlD-fIb4DzvS||4|AMwBAL94b-t(RnR6SD;pfSvAD=3(lmxrCKlQET8 z{{w&zZ|&7y&_$W2%$<$&^(SOY07e~Or8Y|9_?+&5N}wXTpWZ#9 zFG*yWhTy6Y{2$DuPe{a;R&0aknm)Nvm16X{*-yNqTqES zvB~%Sr74(E6WMmjy%>_d_^{B^C_xX?8Up9hKLZ-S>UF!BK>-sIZHtzTY9ucxm1D`C zF`;7Tdv9<}(~rc_lH(eCydyvcr z;aw)VqCPD9B-J+;XnieJi<*>T#2XSvi!=meKtkp*L%&7lFCrRGN-f)Wb97va+~NtnsUHP2n8+5i|(cO3r6rD6h?iL zK-I{SPY$fN3jCoB9uvq5QLwb~2h5CO$VU{4Rc=6sAmevj&bH15RpvJdY*GIO>-+At z6L;1_)UhL84)FQs{lA12cEEvpI(=E6yn|oI1NNhnlbr7L$2;-zsxJL1;ZhMsT7l_J z`)`K)QaEBHZ9>r38GNsY+gky!M5LcqiS_zP1HA;b7&+~uPQBmKAX|z}G84iDRx8w+ zgAC_)!>L_RkWnyR&@V*Y(zE2Yme5~F4>6kHqi@mz-*zUWR6hkeSU|c=V zHdsQ71`bu7R^Z@K4uk2$nl@ZNv+JFGH@{T~ z_Kq~{C`hNlP^GCfQKu7`@qODe)m;5U+UbN2PY>Oaa z_;bfv@>IA!>Io&19h@-pzeE70)HxMR1`EgPg}~Ddc;3JVFthsTa&xUsd#!YTPG_m$ z=$Gh2(T?NYN$FoE>bOkiNazYEEn3Ah`+93())H-UZOjNpv7K`SEK-aOH7 zxhJ)b=oe^nCZsl-@^CbpEy}D$pdfZ)1n>-6?9$v0VN)!g@MO5jRxW38n3T;iVVbVE)&ORx-_&R5@6_ zw%EJBcjg1ARs!M)7rrA={AkUN=ZFy0!Mof6{_YV@V24Y#l}`-%^K(Ztzbic7Y>KxZ z<~_zl#|ip(GCbOuJ2Fhwwd`|$x5jLPr0yQz$#!$fBC*C zq$PoWq+33WxuQ{B#MuUIgU;9{P(!$^($UJ;cQVi)n*?DGMbYQVQKsoA93o)SSK#jK>` znGcc#DUW(8J4r3ZXoQla@hfAFR906{Fu?d&ReETa*VX$l*Tz6&|3H?G#k(hm(ZJc} zJyT#u1J3BFhRh)}4m!F$^Fz^v(ublb-gvU>Y7NYEy;)Xj#Y+8l0IlJg{Z8#O7OFOD zO0A&8mw2SjVhy5L!2$ljU+kGLmr>1E0TAZEU(!xP>XcqwToBIew(Slu$c0u_EK8DU z)io2uSuRBA>FGf!r?aT%=$L;wjLlg_k_<G?fDNDnQ!>ft=Q`6CVCzf689OL)s z`E!(mlo(F9Tif9KkzboK6iirt>$YAxO0$<2+p~sIB(9q2A}D6BRfXD20+! zr*~-6!DJ$W%GM9%4o(CVpe3f(Gd#2m4TJ4yL`T%@s1@Q>hnK&?#Ar;Vrte^q$IP7? zvalZPenT>Jq~m`-M(Y$MMZg2E{nEuZM<`4Y=8gLc6j6*kK6g7coy`>+pI$Jer?c{oD~v=2WT8j3ox2t`r@Pc>M$O{uc7piT8tHRTC&a?jjmn^+Fv5zG_;}z z@O2mu*atgI(f(z7;#Wyy-vf$^+Tr@ipomCEBl8-$D$V7~E+&rLpx_Y78}ltYZ4>i# zh=d2z%V3SZ8icpNRBpo5R{I4#H}P+0Kvy0-5AayKP`F_bTshF0*)xTc*i0crjm+D? zDUoA`GF@OwL*TTvVk3?hgnnTYp5|;a_^BxRdr~#WVtxzw^8ob1q8WA5p4c7lK0Mu4 z{)>_$OPKGR(t=ES&1!q`f;oANpKm@%2m7g?&VT{eQNpJ&{kNi3t>0NH!Mba}-se5o z_917xW9tnM93th_^B{tBz`*0_l(%6!?nS+D{-cBB^w^u^^j>*Fxdhv`zBSXVsIps| zr)Vyb8XlRpxKb7svsRWpRMjPji655eTEEPrhsaprk9O@9sTBx>B$F3+0WC?6I)BB`Sa@VN$E$6aTGiiSkrryTt^Ox2D)4dUjvEc2uH_r6- zW(T-XoXiV(U9;3T={i31$j#$l-}|t^qvO|`fOzoK;POL0d)k7r#nJH{K<@8+w6x{d z>Sg90- z)V!lKbo{7$jDFm#Nb^l&#sy38r>2~C1sK!Y+1&;2PPUcqFU+~)fSqDT+%8y^? zhYbM>h>at*iG3gu3vwj|bjYPfWY%^otY!0&b=zih$$B=^HQhD2uva+TjtHXdc$yW79(-oSsjVs-knko0z!Mv`Bn`ZxSRcOxh^d&F%J9X;xKywu+vMhY*UP^ zg<)MOA)`ZTSzpRaeh%PtkET!y$ovO#$<=ok%!N~cV9aq%FVV!)D=AI0Tf_rSC1!f7 zdz3ynu;l#-{b^0^gVq#;A5v=BPS zBdRMsz@+xA52J4&Qf^W|KMJhhF%kM#G_zB9 zljkL5n*Xw`C0)ZsO?nsUifvj<^F2KPQiE_QC7LO<-!Q=)J0WYvBQeUh(cT}aH%22k zaB*Tgr7C0LIa@TYcSaAI=^`B%D_%42Iho3S6gdFXsIa^&)3zF`EA z{&ze7|2!DU36!~N^|5dxH#?_2unUwE{MF{xU{|J|whp}oDKZ{xul!b7hwS~{ARcw2 z**4vIT%`2^>-Fvdriib5lu{1&3|V_=Wh>nu#^p`jKSPu9xnK|0yGR_tiVrt)mJxkS zZFcUFBNW>Vcd5-#styRo$G-<*K4R3?j&S_ck?W zkh18S4YGd;3qU@9S{JE_n#~aGibvR{$F3hP z)}8}K!)w2&012!a|4_TQm+5oPz#|4??+X%qkYwX>YNBWM zLiR;d&}BBfU(Z3`d-m*P*L|%fbCH2yiqv+dhywRuS@ww-6p38M0ns5&pZQP6is-N~ zY$0FQP+C?!zV7Ry`L1tDi~teoh~#Pjxq4kxcWVUWp5kdvnxd)guW3Z--49KYPCjQl zv4(SE+(&)W0pXf?AzAy)D^%qk>+QRJ`CbjH<)L{bV_b+9(=XX>I~h9Wf1!}1VGo$p zLKsWu8K54HQ3nqO86g(x)X#Ky5aX0wobP=k8=as`T$&j+p&fl*5oGUOM`}wAT~)&P z!ZS?m(-xPlF9;arMxn~f`2yaWszM#Vkly2?6rT3G*J;b!b;N=5VAs#?9~xHdi*>8I zGi8A>LZ5p#eCqEX17jhpl{(Ol;8X-A6BNXH{^7z-Kl0$3m-%*et=p{#EzlUyJiRB9He%+>cG4M5qta(hh zIlsZikt5vaKp)`q^awD}-xHiny&KRgt8MK|G>pg5=Ot#o88_9VoFnP;XosprXw()T zH$~%M9+Qx(&>XsTV3X2NQ+*Svs8Z8mm<@F zbE*dwqaqiJTBh8Nj1U}Tn0&(-#7_sH(BiG*yu!tUqw~P=v?h5>85OE^bdxz{b(ERn&VyJ%?LfC{nza07{>w44 zC62+l&~Z~wgCC_jRB$V3L=ibltjeM_g|oH=jJ~y{+Z|Mg)ayY7s$RL9j139 zv)!<6x!D~A1id~zJ@woL1Oe3<-V+xVnsU{*Us^S4mflaezGkM7p}?W34cw@+)gV{- zQ9Tue!_z`q7uM-piT6%H(%ZBRNcoV>g$ER=%BTkSskyyA&>+F`TzFbdMpIKCDB(n1 zlh!$DZ!GtQJ#Ho@o7GeZ%^C{%g!oe=Tx>9_YiSnw)^1$(-U{zukSuD&AoM#xVojH* zW#ufelSLAwVK-J$=yz1;QUkL`;KE{A(v>|FC4b{+9E|ZVmh8mHO3cy>o}(XX4Ie>h zBV)4nG_-K#&BZ~Oxkom9SJvYoSi5g=O@qat^75)VHt)0~s)+utb$SWNai= zbm=oW`5oK;P!h7g$>@DkcjUNm21c8 zN*0yfcxrWZWtwy)^3{VgT@I%7gQeX&cY7Uu-p5}`Ds~;*HJo1C4Rd+Ka8s3Hx%11( zHX3UqY+Mpr_J!-Ea(>u2NA-TCJLo=UkoR~L$waY8{-K;Qb&xoTYbHM-$30 z_MkweL{l+q9WRirczb?6v9=X-{}}*&PC*NfExE;WCr2yx4+%Au`<~3>EJ`INDJALW zDVAGw+FA#XF{8WeM@g=x=%I|7^jL3f9wYAsb)}QZ&Z(kKJTLu-hGdPf6UqsL zkB*zFUC339g{rdH^?wP9Ze{;yF=RJUu*)o4Q^lFB>u1%7!$0maqHlk_3SoWbGilN z?of8~VE4$JYw7!OFR1!>gnhXkaN;R4>4Y<#Rgt@SY9BDN*}CpxLlFS#mm_gL0*XyO zJ9!ZU&z3Xa?#p5Z$QYxi!PMOsBtL^2_-t@g^%4)SooK*k-{$mYdq?`#awTdE(0{gm zl55Be6L#7W(?>=o6Z*9J8+lkD{4k7`657p9p_-5=LEdc1wJ?AQ9y3+tmCRS=Qy`S| zVTa0j_lxXyKjiNT_;iMPa9Sx}6a(wmrm7qF+?>=tjZW%#IIV&U+ZJb+Knm(0EhkN9e9NYnabmR zz~fA5Opf+CTW4&mh$*nqop4m6`&W#EdsrO|U6vR5o3w+zr)|NTFzowA;yBhe&0fX{ z-*rIKzXm-#(Z?HI$q|7(P;E~2%QOm`WvN;pAQ&sS*VlEzcpnDP0ajgeCeRlUW%CG* z?QxBEfN{T7P1GL5kEeqS9Up}68GsF|RM=Zq7ZhbFR@T7LLcrx}#rf))(@L>PV4uNz zyW+~IDr-pbGxEzE19NEwZOU1DHJLhuoz5_@0^vxP5qJ>et`pjihw9mckkg~L-z8s+ ztP!u;HhU}JMHiEs7Ceknk0bEXtw!c|5R}YhU9s_L%|_t9TOT$+4t`hQ(3Te@>9RJfKwhDlu1wC>#E5|lwyj%(Sy!&20Ep8o?5LGiv4J!V?) z5RaZ+;58dJPh7Z}wDK{sO-w^Jf>xqsf*lUZtj3Be$YeVRq;#)7?I#s)o1z(`Ph+l@ zMb}&(2i@~?x{O~)DrXXSVh)fgS*Wd*u(P>?8|$}mvw9b+`ArluMVK}LM~Ki+DK;fW zF<@H8m2T;ABh9Oh^;OT`^xE4jEB<%f6`rGyRMj~SGSs@|^Kvd|5g^PJ^+DqyCf-n` z#HOLDyb_xYHJnQ~6JdHRNh=aq3AjpUB?U7Yd&1~68V#9riyYH5Ee88WlYKfoJn|nu z{^UKjL`S}e7oHa39@+Y zFnz2wUIgh}#*G^{W|gG`TLkCzdIQa7Lmc>7rOF^c9t=FRx}MmEC?<;y#trQ5t-($^ zFkEGBOI5UZv-wj@Jqw0wpjay6_Jg}}?F@%q9KPDe$!mS${0?G&=Uc3s>Y4^qaveD|pvFIP>A}eWI#q{#{( zHS(q*#(as%u$dy@X7`?=XZVQ6tsyNCB4+`#P{>nIg-(yl^8?GekRH8?4oActn7L)0%W@bvj> zeEj4D`zIqzkVm;zMlP3yV;SOyH5_;%CgvR_2Vv#Nu5>yaEIBZ4Zf*(~((d3|Hx(DN zYj72>7F@0r)bHzdEZSMTUcZn=&C<5T1RU4KYIzlRwr}B`yYJ!l);(;LcaTn{<*s<- z58?TAUXM&E#l$^Qe18t+=}qq~GhlCb-lA$U9@iLaC&wv8#>qvNVsNrnF8#Tt(gwyG zk1!e03&_JX^c9z&%i6`sopzbBi`q^Hx6 zDDC%bZEgKRxm-3|&8F9EHV2c*q*$-lX-+!3E;QRit)BMaB0E~CR?rewtr4~D8Hh*K zhz-LV1AOx2Ogzrqj14F4U}LKai$|Ys;z3FGU5lSKn9SOktN-|gK*D0NLi<@iJUw!Mw=B+!o zwgg;lu2x{CZO5RlMyj~j&SP%kM@xq3WQcaNiT#5UeDdTNPxssCPjV>LHn6d=g{JGIMGS;9wu6in2U*7Y`nrHBzOLKJa1dPvR`I68SEb}MdnJ{EeQLhy0 zP@t^ARXXotwN}IJ&AWJK_kFy-_W`!ncaX_uFdCC#>tg8jB)y|e6J>q#(d09w3BH$k zm(z{$RK;@WC-2F^yujDuZEF2IL?~twnjSo z{r*M2-~UVcJZ^9A_ykx?|D|1OWu|_!)s%C~v?EPRwYE+(TC{;6TSpd)F8jqoL6}g2 zECOv-kP(P>5O46?cq}?t8R%mu9FIeBYE@U}1{1Tw?WNsNxj^$eMT1b! z(oQi91B>7)@F$Tur!8iprmY${v-$DS@fn`IIKi`5O`J7D=G=stc zcw=iFw{G6V{ksowd*?1Hg_`_8(^bAV=wL9U$I?g!S>=AN(r2@J^riK`=~&A_UaB^{ z?)~`d@$<9{B9}j_h3yR02U0P7+G(BVkb}Oon+c@dT4ZRMQnFx{vq#i`A5JB8<|9C8 z`j}vZ6npDUjY#O-27ykm+wr~0#7~)4+I2G`)#~*I*^7(wuSa(?^fdt~cS@4hr-~%h;HV(-?GnIIp*) zozuqpDt5M3(d)BWxH3o`jVBlkL)4p0m%AwBvQlJ0O%}I=1*)}7v^97TUFZ5 zbYsyCq!CUnUZz1f=@hb|Q!6`vYk!nIAC4z~-t)Z9Y&G##Qb{E7hDZR`S0r>QNQdiK z#`f0gHy%8^`S-r_&h7m6-a1=;i~@>6C!R$u2!8k`ZGEW7T1^QnCY&x3wR`Ur?A=+%Yi7h zLU(F9(>w0G5{n6u$bvyUm}c7-0{#>OFM!b>D)Y!7#KarRdF&4)-A0cqpE@rxlRVCc zhiuCI>c4*d`t|>{)oQ);ed&5E5uJnS+p>GzZnrfY4*%bt=e^qA-v0S&t>&1i6blrG zXJ@Atdl*LN+N7ROwLMbIB~#9<4kUxeYpPUIt&9k;@=QNl1Tefd+c-VzA*A{RQ_>oW8#D_5$!DLFWSisKS4qEjldhIsOPfpRixR8`9y|J=s2mOwL zc6W&L^Ct3nt~(1d#7q&=`)$C=!e$rUfsc!NANgDt1y*@-J0t}!4P+F98dVi)r*eH| zE`7P@mu&3njXztS<*fkLr5Bc1ulP*breVfpEkdjXS(v&oW8PSCri!1{-zyEc2!<5c zQk8{E={}u16e5;$&Y5}?{2UE-M4RTm3Md7QL7b0$2P@GG#HJ=c#+kD z2H7J=`CT#9R6oDKt5+v@{;Gkaa}NX0hGk{s2b@msi4LaRAoKW0l$N?k?`!zJt4W?h128 zHf!R0=nwlcFnhXkjO&$Naa!M@2e`MZ7QBj~Sq55s9^W_7kWlj$xu7qDtgBL?dYN+o zHun%xDOT#KqQ=(pXvsb(6H+DKr&pE$tZ14UHtHtVtni{1iLGT+-$ChXlTN48hG{s% z!N|Y3IR7t>k54{1Iy!2foSgiXM&sgDWTGveL$ZuF6anbt6YZCf$11Xd7-q^k?PTrYJX(svnZCz*u8N>g#Kit8W-p2 zG~23$6I3Ax4Mr~-ZSmX6rkR#5V{&VPPPd1_V1&@0qS@}D*&ZTu)sFa{u++u2ySS_yGT4cB4hNfabV@}2RmF>jIWCg|HI4t)1x!*M! z`OkWT@#$zZ9%>WPxWX-oB(91CV13DBQNsgPhGlBC(l6Y*z4H&;xx4+Vc6ZmXx>ELw zxr}8Q)3g`)2=NEduq~Nb!tYH+Xx5w9e|3!KFV4igu{|(hq;hcB9%M2`qkfLFk`fzJ zSEX$h#DnVmTpo4GkD-{4Lt(IV|2fTQX`mHntl}bfzAmNl!{N;8fvgoD3AQ+>b6%z( zZ{NO+2M->|)0$AG-$Lcg7=7Ji?misNKEje*01+ZKC8X7BG9Ek zn_{2Dja+F^24t>GGnF2VhGeb&mq(92{?`u=4?pSk`qRn83%H2+HqFKDZ;IG}C%!{E z27^KG;9&nh8jXhE+}zyy=}M)%#*`Xe&`(d#c%FRKEK(C+kMrIc?Q&kWo3oL@9iDHpK5mchna758p4#W;}`E^OD+?+^SnSHtS!(|3*j>`1!z+0V)h2_OKTlM-9npk*$ zmd;!L%yOzc+A1df~q*Bu0^#ukw(rIQ*@E;YS8WA^!N-f zUY_FB>o)2gddaX-&4uGoT<%F4uwJLoxH4<}%YmIBhyxzecp7|hAR#~^Ad0t{(Vr97 z^re6y|~Q5aDZOFhas!WBG-2U5;9kD zFvMS9X>2_^j`M20I2ek9Ed4hl&N|I{C@y(n>3v*gxb%B^S=!?&o-T|td9(NQ4}NT5 zk@sQ%k069;zc^5w`34a*MuVFMV!+fhP1Ce(yUh7IolfKE@bE7`fAR7^eevSON9}f7 ztlM?O)1RLu;;C2e7uP))47}6R({EXp^{-8*__dB>R||z=F$lstmSwF_4>job1;Cpm z9)!$bb6%cAntoiR=Oc+1k*g3$O=Ql0e zvG{!nf@!OmBL`-$O{ey68+-mqr#twc`h(HT8!L$<-V_PI`pRgp)DME~SpLRFrS;DJ zJ-qkuCT{MnS-FBMjeOZUMRXsmxDvN^xtqhV*T=>28D73P#`FCqj_VT)y|lDVA)}Bo zgQ(@oB+^^8Wq>1~(rs%9nskMm)>|p%*;96jdrzSsnM z8V8KrkAUZN)>p8TqIEfpGAlBlJ$v@wef;rnllgj~Q21HLasJM3r&CpK?hTrpiibSCxb!uos|+j#c;4EdacT$WXRw%9DlwLxZ6bZP;nlMpt~OU4netIh3gH0oUph7+6} zoxq!Tu%`sZQ%pP`JytDVv`{XxkD`NWrGQ)EhS)ar`eTf}5T|ENad|&EZK9ZSP|Ul? zq?Im_Y#X;zK%RzDai?~5#;$sJBfxqyp>_4U%M8|4^UsV%uQ48-Yp*m171LtPST22o zG8ePY*D`0a?kX+VS5nyrI@$zW~m%XvE zA!7D--+dRiZru_weZ+<+z17H*A5dL^7&k0k7N~15H8Xx(VyogTR{Svzu;R;FV0WS) zchv`Q(Sd%c;`7on)q85tjjwlsz0y2}fXAg&qfVbh+AFn;Xq=iGm->cbSgBO1Je^Lh zX0zGY-#_@|>C-2F{KbnGFZFg=mTgR@szUI41y}K7s*ka1o1>!F>ov;d%2}yYJhv?C zlUy$Mn+?PG`d~10cz$_}Fx5vkE1%DkcoXo=iPs+|ZRt=c7ZL7m!Jh;;cx|B9?+D1s zf`hh7%8lN3EWXYOR7Bw{{i49}dyDXowvH&y75WA)4&D zS#P4mO50imE43o_cGrdR8jk~bUVwVNiF#vzqih?cVqUh7Ca=;eN=_YhbCD)+#$@Sp zd>z2L{MYA;D;FHIV2IeG1%S0UldfKz1FGm8&#u|UG@^c-Ur(_G>t@e7gQ%}yGyYkn zSJMD0E{I?FTYs12iEg+}r(IgR+s@R583rRSmoY|_l2zypbH8Cc33|if__^*+m{?>b zaa|+;>q{DQ0k!%Oa2+SJxw-Opz4PG4ue*J3=WkoztcLkQIy5cAnFc{Pp}r)TN=lHz zboLsgXHu)(#Qy6OJb7`7SBG7+d;E<`!?9gBmKk;QAVZawA1VSNf*>*<1W!x_GF8X) z9N%LaPge?R5xSlTtT;bGQk=CSBc@%$IdK`f|6P1A=jSP4fB5jBOayftsI*p#%M;6o z?A6*P%@S#Cl>$K;btrKW-(U8o(tt=WBmTpERR!U4%0h#y_-7W*;Zn@kry;~&K}|^&ppkOK7mGa##e8?{QO=HB zE(7WqLvMshzboExjd~McxX}BUT?NgX%$f@sPy>8T1B*2Jj~Q_@y4Xr8{*__ zh+?6OQn4q?rs1p7EGiokNfokUR9ztpSHR`#W%2rm$7cZr%V6p9!sa^nWj04Utj}hh zfw6hAQ;E!@s>x_QvkF*+kmevN#&&6jD~8vid7`8yKPsRr=6xl)EkiVQ3xF%ywgoI_ zS*FV`1*U#Apj-fV$6ok*dc9$tS>+&_Q+?;(bbylhszw5^zNDdXfx7Dj(-Wl|yX$}O zgLm)z?f38OuxhZw>ZyRbD{sO)Q`82>61R5dPI{3g!}I-9ygclP?kWHQP*y6gOj8M= zSuI93NDpEM2M5A15h(5L?cv_Nds4;4^c+nh=}*N$jsqV*$N6+RQ1>Y0`vg{GBseiO zsI@d=8oI;`aTx?x_wU~q=8Eg3){FC#+2FuRrcASEI(?>l`03?cK8}k3=BoGJ23RaJ zUHY}R0aVw$zr4&i*o(7l^HFcPRDE%~b^6fveOBg?{V9giX}aBN_6`mXPM_p<$SRp<1mJv)RlTnEu3IFmQOCrBbO-8`?6} z#_NorTvd#!E&@FNWoas&!_LmSq>WEcPHN+{@ezaujQ$jjRtNP)8|9Mf!$}AC?TrdXONwy%79X15E?g~? zpFdu+5dMxV3F7BKE2{pRX|SSv-mG%)s`bntBaAjLcH}=%e^D)rSInCH463H?Y9Ay) zNaU5DPOV^S6bD|g((Gn_^F=fL=UbiOx$<^PSga(jjs#$RiDL#p=mS;A7WTH*wjbWx z!TsA?*j%ef<!B_hMbb~pq?WDf|el;d}>kP77BMgYLUMzdCYU;9}x4akYhBlD$Q-s2*3?QumQ z6=$w!$-rfD5GCN_cJWu$b<;CVm==a#2N13TL{}Z(_`Gk5WkG!WwYOQBAs!uwOK_fty0!OFcNPpX#!5ycgIGqRL1JoCfXfV z6Vi%dAeFV$VG+1lRuAWeHYz1H5?9_>l}a94~B^hJn&n2se*jbDI)zbO-%(HoQ>l?j5u~3L* z7PWWQQkqXcs?IoCixq*onR~nX4VisLrw}9EmJ|fZvh{|E1&Wn%Lo!&X6a#Fo=Kqe- zDEvokyZ4tHt==!wzGPM%nKXn>A{Gh2`m!=txZHuZdUa=aclCT{d*#;FdezM5 zGnQ#gO-Vb@H;Gkrk{V<>#S?(^`rs5VUY$$YVo1%2O-lyeO_McOsWR;xuJtcur*tKs zPV*5YX)vUjB<-}Vd&u!MzQ^?vpi#%g<#AaW2?O1LxB;Hr?YC=v|02LmGh#53fsgx6j z({#Jt_V@SqkDokw{3l<&eEB!$>mb0@PUAnExaye2*sSyEbo$>{DzyyHy=fXh-S79) ztyarnpF~|Opc`LvKMB~G=b`@@zXPl=q)o!c#;W|?YS!`cpp9bjSlFhFV_}881zj7M zMAr-f`j`!~RkwpuwT6wI0Xl3nJ?M*F#CY5juPoDK?m1egc z{_VR{uavU}lUjB=2&_Lmomzi!H1d9Ldonrt90x3kuRtUK>q{1K4G<%fPP@M z_U>=FadWe_x>;?dbD4Z9Wja%DWKvf`ctIA*a&&62gY)B4?C+oA^-%}SZivvx!bzuL z+w4HE1=|W-5f~8+G5x2(ly=hQwrD|mydsXQlLlA(n?Q=-jLRUv;&M0$>d=5eg8@Fq z!4<0o$y{-n1YcTn#fl(SVzG3dKbJba7`G^hi^}!(eNo~~Daysy$?VPB3(c6Tm@gOg zR&hO8oVoIS-;aE*iqmOWB=h&|+4KL~^XE_h?CI(0clEkdaRPp%aTN>L?RFc6Vf;76 zVzJ@6ZgUz=f75U{%y+w8=j7ysIbb%V7A8xlHff_kwv@||bYZ!ST-HUcRuNFtAGY!Q zWkae8nX0o~S2aR+9K{3@tP|)@4H3c@iaBY;)bI7t>-NP5i@GX*5XiO6R3L2|+U=59 zGT0V@mMhhYWVw2Mro~4Xd*|qMCpbFopjvLBQpqBhap5pcs4|5SpwJbcW*-r0`y~&9;q3wUtJ|~IA zNC4KCEaqgoic%@RdF$5Bzw+SW&0l@v=9W{b7CMGyn4#}mOmpyuga(@_+ZN9qZ!kdf z>;kX%Pw@JniHlZ%ap=NwSkYu7MUP{sRyOQs$Gd%Mr3i{nPfrCXF%?4>ZB87_2zCgt zbOoUXSDYC942AJD9o6l02-+Ch;(?O}1N?DhnvzxwtQKTikjxdA&4ElaSNyDEH0GKs z&01Y~?5^l__*TdK`-C{Y7Y)|Th&Afl$k6QEf*r#WNaOj_$J8(kUs+l7@cQ-PlP6Ce z{n7pX{g2|NsXr*a)n|$LerRAk8jZs7czhlN!T(sTRt<;dYyd%4w%u-Z92j;>q(1z;bN(LFB&Ao}FPzQtstS z5gXeZatu3dYO8t}4hZ&rbh~|Fuo|r*zn9|LPJ>i}HfpO_RoHCPQeujevnCqN0gg^v zSgGZuUm@qS2%I%Ty;Qk+31BUNueiyNYo1z5}H;qpwEEeq5Ox=wd429GhrnuVG% zSc{3pS*9>roK6)kqzq>uNds>^ldi_StUsJywcfa1YervI|WEGrXf9!h{k7K_W& z!g$?wM|)^dD2%88 zf=&>GQ#(=`9*LZL8n9k&~X;cpsy zeJeSlWGE2+PFqlIdvh?QzZ>=<%6`n~an zB!|t7DmuLp`n@sw!!dgOK90}3sGW2~9G?*ui$=UD&`Vr{0EMNN&P@cc=C95m&iwuB zYYg9b%xCP>RkOv|p!l*D8K`&#?L56V|3r8-z|xKya}{}Ak-2h)!=ZV6eERKY&z}DWuU@_UWH=no?#RCg%+*z~ zyj`B>O&g6yV=|fi_VvEH-8iY$+6>m)11p!^)&k$WhC+f+5p{>@?8r zp*NthXb+7>7Z;@#)>gZyR*T{#M`oDqe=6l1Ztm7F=nv8AbntS2EGfgolQyd5JW2%x z@R$mA*j|b$-yqUr$$7o13U>Bv>G7(+u8E~(yvmh3T>7$2Epx2N5cysVpDVXO%9II=Ur+d?bX|R92ilV@ppMwwcYqFBPZe zB*5liH2t}Df3neN_5Rv$I9{+XNg{~^V13yD7XJ{Slg@2ztp3J3x3_=Y-tO9Xb+y<@ zXPkV>fD_W4J7CHrCC!}Kgo}-w8}$ZWAD-d$aSQcM2rqPDXRB>r}zl2bXtZ$ih~`&6(>H|;`g|-dc4w)6TuZLzUXg7a78NyrXjV7 zs7@=!m%+9$f+b^mt1m))mhHIC+Cc-?WtJ~q9XY!uVxNx#ujn)Wcsw3mT-2LKM@N78 zer9Q-cGC4bS%pf_G)!?HOywS z@?4vd(vM037Vf)pbe~Kd^m-$_e%(g7e2z+4HE^z!vM@6)CbUoRd`vxMU`yR!zEH%< z#u_#nZJeDqq$gpw*F}FYM6=bFsnabXlTAy<1gy zX&UP*Ih2Z79%iR!p7VYYrO!MV!&kaKz+*l*S`2Yo}Z<^7LtUjk%0n2@f4x% zQ5aq!@|yX;FQyySJBth#y|5O{x}-TYuNB@gE>#>(Srjs}hrdM0vFk$0nX;Xc>4#IR zKML}#Zsunit=z92jr|MH^G7Vi{eB<6Bz`<20a#y>SSCbjmGZ`&+q=K-!NVI5Zrs|+ zmurQdVVi7;V`;NYf~#rD1RFflZTj%|9Qz07I6WVTTf1RpU^}cDOtJIv%mRR==dG5~ zU2)P)oC&N5c(m?GvsdvRg9KMv5YNw20I!ATdT@+eG3c}w0UIqJ*!G6tijNc}GdM63 zTyb4wCE^++-A`}1YVNZg+s{7Y{Gb5IRTYD}4Nn|cErUr7z+>s!FxoG3G#Z-qdgJ)@ z>x2L4`4&V3hHyRD*JAHm) zV}0Eu_~*5$ItLhHC^{JQVcG0#z~TxML(f2?>0$p>Q-D<=pGG!g38Q3AZ5UBiVd(iV z9QN^aQK(e0wzYxHiwj(w*CmBMVk)xT6VO$yl#rth1Ijp`tNoD9_icrMin(|pHB7Cc2!cRHf%WrE|YT?aAGV02gXZrMO ze76X8;)~XAQp8RMO6}s32utgzQuCDOM|$$Pu5jnBOcdP4!%wG-VYmiTm`P;Eqi8t2BYU!iQ+XIIGs+J zj}3z$%nk-4r(SQIo}8TgxkjV@H+|m^eq5NV!Mn*=QSZD3E*G|%m?6M-y z^~kn_9Z8bq^zw2^onO2WMxcFY6K%3QTY#%1BW8z@OEP_Cr%ujB^z_5W+(KtEnbFGx zy2A}!T|vA)qtOYpSP|>0;LwhAA#{?kZWxath@aE*m+;1d%lm>(hAZmA4cVjw?Dp4%W^i`{I`p0dtHCbqZaFH z9Y=um6$xmfaAR?7D?B;redqC`(T_iUdP0vMkLYCBA>VUcGtVe5avtP(K(`Gt%8WL% z8Qr|Rp%*WvbTv+CmD*g2?!w-{glVM^AYj%AkTji5S=bKtsVvGGT!Fy?3!rXtI=E6P zMWwmY!IcWdR*BEkh^vuygarebtM7czcUa(#=HLjdNx80~$vZFn zmT6N}E+|cs>h|WQf|d!N6iuK3(BVymv~rcBH42U?Ds4rfL|PGzrwM)c;|ayxfVu;u z&m9`}Lo!`kG{{a%qOu@sTe5f7=}C`@^a(BIOS&D;X*%7|bTXssn+086PwDZa73C*= zc57GG8e!zq#aW-`i*tH;y`!PlvTb2XgvzuN(KRa|guT@gaJ6=xmhI zU9~GK6_DJwfBLb2Q#;z=5K&*6z^-yJm z9Q`fd_y1|yZoAuUX#!+HKd92!NI3(zit1BTze2oTh+dl(vB7S#+0xB;Lmz!Srr|K8 zZtOFgOk`<<7OD00W9LF-j0Qi)1q)nc^-iju!KDNEte zEdCJbLSqk;g$bR3>S{ACsp@x&;-u$AC;j02#?$pbOtT_K7lA{E>=<8Ze*4Kk;5{ z$AF5#vs3!!Hvz7`MJJ^$*@Y=!sWimX`2H8c@)Mmou8l4H@@+NZeCu~d^+Ll0FLiBH@7sN zAcY?ak1G_Cu$IuLlan5O zrN}^M1NExta-cw_YO!N*%22#Xqy6Hs*K`cW4}z`Pi~ZvKB#OWJbo4v3%KRmlSM%RL zo-Y2OYGAD@uaEKdiX*`K3We)B)@aoK-VdIheeXBF@re5khQ3>2z~_?u?Y3^_49f!8 zGQ7OJrB9xZ=_S~!1X>f=GJts!Gc=GL7$c;fg_)?ud{O&M;l`lA6hbioO3;oQNgG@> zjfmw?)zV+#InQ+o+8D4_V6V>4&Uu?l7&tEGqUsPgJ*0JH#US1f0%hHIO9yeU6Ym1R zIGol5uxk9QbU@YqsX!PSI9FAL{(NDc7ifsQzP!Br^ySOv|H;+W<=@V8P%rOK)!^$! znkL0!KL0zmZU4T0zjxN}4}J_)wCJ_CTrP{t%S#4W09UXX!B1vFktzg(NJNfpkmsS| z5Zw+kdiHEaz1|J?6of~W(~nq>g_h{BZD7V229=IQool`Ku+eIXXEgVD ztqPG_uqsdpux47WV>>XP%?AC@fBK02xwJI?xil$W%oeMERKSh)7+>2s0<8BqYV$}8 z{*E1u2HkHyxfuP14?j4g51*XU*{Fx~g>96D@V$aO6W%>W#XZkvw-dU2aYL7vOKyjg zl^(gcQNZ&`rWkNzN16nz5x^BvgAlpndA44V8Y>oEqY{fvOKnlbHJviBQa)Mxm@D2V z$;yb5Xiy6lUp z&P=C7qun)bEC5 zn>Mpv&3Pc27K>2Vn*2*SotwMqxW{mW ztJ>?<%N|HOstQ7xJ`}GvO`dTeYH@qr+fZ;?3ZpjmHxk4ukj7(|LAK@alf#lsaKN)= zN-tvPH1r*NzAS~g-&fu|p5n#Qip*wN|2Ze$E!J~_l-|^vxXTSdO<56{T(t!{b zjD-uQX`#KcW#v&$>-n5+E};pT(sY(lTA)=9dJWoSTPFA8QbQq_ApjcyEWKh6HzOeo zb~sfBaE0HCvZTd)&cKQ*4QI33ilOZYESiIXXjQ_OfdB55B{qGyXR-LxRYPH09T3uaTaj!!7 zt>N6pd7WuYA($f1#ROtYX;#wp^@=|J=!S*^pL)H3JijL@3z6ndb09ma43jH%JAJg# zc|=b?yrEA&xuw~7O|$uiF0Ur+@c!sxz`Y5TzD}`NXD0)Cd~rt4Uo2?7E@`n$7@*xw zmUJ?V$m9N?;``(MowYlOzR$jxB)1D#g8y#5QKFBq-Kl7L2#v4zNyb4T-wD*i0Icv(b{II8(C7eQA+_kb6{Sf<(|JN4e>$aZKcN0ehr-yS zVL##y2~~kKVM(P?aPLAd@aXJxNZ1;_i;|X2e#B_erp(t=E3|wYZct6>#yrsF4QJ+f>DY|$Cz%m{H zu-Z@T2-FXV+*Lopnq8BxD4msfO|=SAlMZd0Jo!?8OU;yMOIUAB;3}0qG=!KP)RaVS z;)hgcZS@r5mJD_&t@nz@B+Is3n9_D*Z++7DX?hy}+Sw{yuan~UC29Wi^?tXSlpo`( z9Y=umo`#McpuIXf>3{Ie4m zf^Mc6Z8DQgOE6JjudtjlF;r_bq!L z2vpH#``Vf;fGa)S+D;9^OcXw>rfGJIBJVC1%jNUu&;QgXpM3I%=kvuz+naaF<^D~E z{+U#T>S8gUZ#L`y#&O(H5QIMo%~e?z=*4IzNn*oJ1kWjrAqprg++?LeH|7YgYq5<( zl9qHmS<`nvnbPp|mU`WQLeHVVlUm18*gb5Ef=t`xHad?Vp^xSTU0=SS)p|-R7>Qoq z(#y-SsK#~RaV2j4V4Tqx@%*eyA3Pb*6?%TI(ARKDFRx~Fe!8H3FJ!}0=q7EX$E84f zA31cly7d9)@+*LrIMA+YVcbBQUEA`r8rqp}L6}iY( zt*507l~xO^98X}RJ&pifhKtrooe*PK96nCVA6u;Qe{#OamhEjbR8FZM1+7>y35EvM$b{u(@(0n?h+gq3zCbZlbRBqv? zBiy7hcpx=_aRp-nzzu*BfRkdc0ImS4@KAjRF>nKbp<)mKO9xjv<0jH9)}5IgfD@__ z&(6;Hfg26*0o<>VzTwYd+2r|{-AhS^^nQ{(_3HOhEZM#|1Zeg>uY7P6v(X$srdU-XcDYRJQHC^2->HM@uy-vtgjsRq=MclSE zR`N%kvXkdc^F)1Y?&ziJCt4fZ6R%!ETR^t_Yrk(>UsWTaeQ$K#@5EHnFj`#_<+4CpuG~} z+S}U&%~us=TZhP!4(MjXDha)gNDWS>lbXH4tX_dDRY8d70mM|b;AA?j`vU6BRihzl zzyJb_6aW=&W{(~{rqO7~S}*`K)dmO4I)=%5D`>5DQlxv*XrJf!?tAVKkZM1_Ph+P4 zRG{Wn)r~q(6ltH`YC#ox6`|5x34oPAzzxd__S!(27a)0q4$exmrh%-lL+BtJ$7`{e zPuJ_!?=Q>Z_Q{hEetW0WF>%+QOs4Dkd>)&oX(}BSv%8!E7mO=zrtpb#J%_Rs+e+#A zvkCQk0rdwR@_di_ae%f8WL6~?Wl(COTRHi0hfW_qrVqXaZ@4k7R+z}-ba_3c+wqLf z&Iau0j-H16{cJ0WVFhtIpeK*c=+kF&S}sePFEYBkp3|fA9*qVudA`tCGGsvC78Zx^ zYOd;Nrx5jXcF%9SfA2YGUxldZWV9AaXy0D6&34s(RC|_DzE@4cPW}`t={hZ~7Dn%Y zBkdX*uvxd&sX>+mgSuXe{oDn}s*81S%{rDHM;@hFK_^21?dZ{TzWLQfS^b5@GP$j` zm3TXquKaqjcv;mu%cT95iKam?p475S2qi1r`ZR5pFU7RbZ_Eh`?ka0KQ<@ z2#0nsSP7ifWj{eBo)$MZ#kL60fEyKVTG%Gs*`c|Dsc5g)uk~E2vP(3L7B@KsV$^%! z26))gU^n)q5ATZZx38Vz)2saS*Y)>kTPW!3HP7q*MG7?4?QM3zl@}X0O-(VbipK z#Pi&ztJT^BAjSC%kk$BOfyq*n2V&N!s&K9rT;2EV*_6)DCNvyGDBUL?sYJ4=NQ8w5 zp`m%;(_q-Aryo3`7ign%JE7~#D;iH`baRWQ(5EbJ2SbLywSx1$-;e3h#fTn18q@6< zEv;5`GoI4bO@}Vd(bo`Fy{Hn#xdc0u<}k&tQ^&X4cJ=b+F&PV_3x4!-K-}vT-j|QiwJ@R~~sAy}`wz4sZGRQHA z$~>dR43<Zn<$gD=5iLGAx(v72v;P0br5AHwy)>@W72*HBtt+!b9~ORDB5nuFyV* znXam;djhJPnGg$OuK^C4N;urKaPtDNy12NY!JuEWVn~sAp1t_#@}z}hDU*N+*$ zYip`_$TzB8g&bXlL(_i~9xaX1jX{Hil%#ZbcQ+$Pjcz1WQo2EMbhn6r#27t7I!A}} zyWhJ%;d{H!-9689&y^dC?;-3!a%#TX^Zn{@bkLfYuc{_>CUpj@di3(~4trzd1@ z{aik{et@hxa=61D&$^TB?FXmV*JQd;q!W!uGq8bB@-^JnDM^ev)@tgwuAlnzwIaOS$G^=gn9)%SI%44NQ9TCOqKvh?Fm*El7^i+mpKIko0f^|ij(h0Z$h7!-juLTU|RKU+(i z_n?yLubYjo-hGxxaV#1#AOTjTNN%})d!UB-i&IU`J^!`qdT_R7^Cqsl9+vo}&yWN- z6vMCO_N+lHIz9*VT&)kKxCOh*6;>d&2b<7%Q6K3MMW0nzjg*Cm%P@nsElve1H}u$gVGel+v?Q1gyjSp|FoJoAXrDm= zOAyH5y?1gQu-{9MYG4H+2Po6TuXxV}vzf1Zkor~KGv%2RuNz$p%4L@Wv_6=XbV`6hTGM|(QL+JXS8MlAf zU)nYGbaK9I#>=DIRJp+~a>cQUpP=utfS^j=QqIe8LpdfF>JA=L(T~N<^f|DrS>>$c zLT{PL0m|Gwf(qi8^Q@okj%W7-ShV0f8=1*G>3Dw2?3ipgsi`T~p36*mupq-^TFT3^ zz{q>QME51fWAG=<5X4K_6@M#2`erVSif;3O{>Rgzp~~4Ywlwg{Wwc7^>rOO?4wn=} zT@{!1vD+yupj+*2s(z2B)kjCEO56>8KzZO>jUWTKwGJlw$=1^QAxp(#v#mV5lywOG zqe6M(zsa$NyAp@D57vRUn=c@%n|nWdZubHWP)&k1N3e6Rtf8xNaXlyw+?XW(a?Y`{ z%(z(-0!>Rq+i9xCXtPSEQ;v2GZP)#g?(BqoS`)mO%5D7slONF&4(~fnY8*trpGNeP z{=x^)0xR?;j{lB--9Up#QQ-J?atG+Dtej7RduAg$Ux!9Xl7J=N-kxu-nbzrl4n7WCkwM&Vgq8uFD0aMt>(SsX2)^+twc$uC z8hsKc)gh0k*9cv@Q|PGsKQWgB z4Al3}Zy8BhCxDkRIZ&650?E2Txt_}U0^4k)Q~jSnu^>-m?arRI@|TABPx!DWPo{%} z1xiYY{WYChX<#;v|?hWXpp-HEqGSj}(#gS5E+(jBxXiBVnk@Cze+v5F@;;PIww zH%Csml0c*b-4`Xzk8Ma5S4+_%Z#l^iNf_B2{vX~E>>_k-1tfXEYAFKeQLyZsHU$b` zM?gkMc8YN^Wkm_A@3%i+<{l`=9!SgvqffG{lDEXHr6Fzj?E#Dw-*Z6)sQi9CirI*= z)9bLxpgLNm?H|BZ3}e4zSLtnEM)$xCq1uUwiH7)ic}o)6M`VKj-Pze8-?{i`%v<3j z7xySE=XHc$+_+M!H`a^rpU98foOrh4hDZTY#_e)dn22lHQh!K^*WHT#n8GvCAq^i< z5+IGA%{KL<>U)e|aWqDDQ>B9ts9f2iYZwL{ zp{B;NUjzSqQ{*nK#N>C^Lt_UD>I^y>8Z$_=I%c;-=-CbxY?AL5`+-E%pSG`r^Evdg z)mw>1XgAsE|Es|=#>QLzt{@NbyK#D?MqR@1^52oXaJQQ6t*dQj8IZIc_nBRDgRod5 zc6J^lVmLJ`RJdPM)C3vfrfn#M@}3c)ks7?_)+B01vtdnFY_--9!_0`s5b2z>|FBd& z&+*sxml7%m2i9C%?yBv5P74cd2%1X&7ZOLgG#^cX(oI`O_B3%;iL}d?C*SS_UP95! zyF6f^CKO<$`B>U35jb)hba20L+{}VYRLK$-&+rL{-1g}*@^?j@N6@YHvhCTocZ$QC z@Lubz=tYFjbF*0;JrpO8Prs3QqOH92_7~VkJJ_;o*Z#+ z^50L~UG{IHbR!wgkn`elN3LBEggtpdwpjV(*0MUb7FUY~{CgeShrd8*kT=x<#Se6)_+GFBci8 zRFm4ygj=@7JA`hL?bJB4#M9*&t9Jl&xhbKtf-R+7!(kj{*s+pDnK)~5O3zw$(@-uR zy#RN>J$7ncC6T&K(zbc~Kq8bKqOSmb?fwDkt>0E3;W)tCaMXJ|TgIoq9J%O?;l)TT z@zyQ=hdj7>kJ3X&1#Ve|E5%tY+-W;;{K!>nddnz`vCazZ-U1?ejdHg$+@4X z1*m^YL`@K5R}RCksth0RD~}&KSEt6bX*FLF5OQPNx^3f(dy}nJ9@4vZ^6U!t2_C(9 zL^?UMz2F|G#kGcVGAc^W>wAH(ISMW=2(B<+`-eGTCbAK} zm){M+eOL;#=J5|wZ0 zcQW7n420W^692{QG;l;bW|nsBpP1Xg=dg4z9$vAY%kRm4@-eRpIJQG-8c1N}Uqt`L zeesl-sapd-4K)E>rgb3W2C_s(v{{etFYGTa_B~9rzTXpB6D^mwH^nin8mP{M7aP2h z)mK6wG4%2?L|j??x4F-X{)`-y3j<;BL0rvSaFk?_S)=}_lw>I;=_YzQE*@ECmFQTc zdZLX5iL`DxhAn^L!ZQ z(q9kCnI+kq3EjV7#h>gTk)@Lr58PF;6vqkGUEK1c%TCUd5H3H=$k5rQq|SU#=4@0W zFtaaX^MzBZb5CS%VFodD`R|NX%%8U`S)39U=&vl85@}}geh+$^B^N;u)$?|OYn*9o zg3=vJ1@T?0>+bVlz4>OXsrr)kc|Zlm(G{$-gY&7z&TF=zM!n43_uT73xLG8?n6Q1t zw!ww~a^_AB%E?pPGS@|O!k8<$A)EVoYXMKEjLcgZSEeFB6{e4tIQ1lXE)%VL`e*gM zi)D=0O|AF7V3TKc_`g)-h@4|ekRLoAyNH+c2wwUSldF(WOf<<0_~c8|Z^pSp)LQ2t zFu9ms$V>Bvm{p4ZOI)_VCxTE?3J!>pAN}@1tyTm;)}k6hll2~rWF*)Z)nbw8UYOr& zh*N^ESW^t6qAyJerIN%7Uaj5w)Qw}?#*5{~2myTb&9pCp}+RzescSVie zBd);RPZxQ+PhX)9mt(@YNyh267>Af8zdV4kqXQZaxReai_pzWFMO#NG6Z^g$62;G- z+&c=Ci>OuaS&>{5X44HBtnM?-EMh5XY$QhFnK_=2j*;kecJ3kN78hpG-D}_9 z4f&*O^$K#u8FnvPSDvzy|5y1Ur>Q=+AbdN|xPk(M?~2QrBTf#lioHo<3b%!8HEry| zNOBx`{G@~}n+;(gOb-ziS)Rsly3x0d1Mjl%ebBR01^X1S$9Y28d)Xh7G*JDx4Jt>I z-4?2Ac-vQ!ib49XO!mif+u4vdc{*{*f&?qOj-|m^encm&V{EfytTdWv96t4$pwvLM za57c`9^<$bs&^wq6Cz7KHxR9uxtiAcVFS=E6jlG=gWw!-=V4g?z{RQJ06v`_xh9Ei zv}NRZK;YMR)cdVo3G>+9MeM36F35pIbL}Q3Y4ZsT_vvX~eD^+1q73Hva=1QmhEvO@ zVu_uxPby-kl9xr5*T*m9)=Dlv!PRkraB40NU!k={6;5My6V5TXwF`X#e!AoV>all# zJroaBl~VS@7umY766EWhPhsJ)w4DBc67fLZEwkuJu3^4BwY_cc4DlR%hbh9gmwb2e zWYd+BZUnWaY*&Mm@@}XbTX1qp7sx3y`kAK&aK9Dd)q&rf!Q2Oa4g4e;`ONr$dN4JIg_EbO!mIiZ2Wq}N#RaHTo#PugiSeTs{`q0L$YJ^%*5o8>MKFO;@# zogj#qj<42oa~iQx}`OxAdTOXX|e3?v6@9(`0O2RB$UA@KTKBLhTC~TCfV)UMAi8| zlAC#9`X{ND7ZU_+?tjVa-J7;yI?`hB>FvscjzFY)aBDJUnI;4=DS*H9o^8o3x}iGj z@VGLTGss!RfOdeMTZ0$GaO%_CYo3R^1r)h&SK$k$stN9#ok_ah!jc|1)JcX`JzWI7 z%s4B@F7-XZZ->_@PHd1WBoP{52+6#61WfZrU&24osYs=BEuL+-g{@@Vk7rM!&D&6t zQVTDhpHu%MkT+gw@b%dB_xi;-Qa^>ow5D_bE&xZ+lUr{z9YrNo>2>X#vzgo?^Nemp zI;*$7__NNhBH^}acC@Gk)5Uwy>W__#*;?FfPH0RY-|8~L5wBSB;~lB>B+Sg!wHhrr zHFVaxn!+;OoVCnL(bV!*4gfB@7YBj^rk&U;&!Zm8)$@n##n9iEkAS2*dUG?gCoI_h zR$Z#CAw*xhYUz~XCPrBA-~l-jQjhUIYt{)G6k>nKoGsPSr({OeQ#3}nJC;uDW8v_m+Fr4}Ajtn?DYYw2B3+d8fv@!WdOYKOLc@z} zN%?rR)pmvJvq7nd%hJdmH#VSej4J&2wrc0QkLe0wx4bEkB|jo0^RChHjHLyBkXVtv zOgdR*-LkC%{3~onb2nQ+of#4Q&u@V+WY+4tncFuPT|Ha>9IT+L|5}xGhc)7eKF*lI zW2C|epI%JXdRJ1Vma~ceg#Z~p8(TxF-WcgP(u*0RQQw&OuTlv`=KGku&$NABcBLc% zrA_*kUq3wkx`^x6nhmaW(rE5H6ANMHuaF9>;!yUT4##))mY@dhmD7#)&Cq?i;(HtP zq=B{@7Ir6Irm*JLZ{a9z%!wk*Rn^>}sggm^#yDm$&z1bc56BXx0^8dCeD`M$Q_`X`Rk#x8YZ1nj7ORUU3J%j)$uuwPID6I~ZA>vP zbCvxjdJQZwG@#CMRwRKidN13URrx=&UiHWIP`!9YQqlT;bO-4b0yh64nc`}W29KI( z@!TBz{gD(e;m0WFj_wr*;r!SbrKvgB-b0hJ=FteKo5)O1tl$O*|3uuI8)-5FrLhcf z_GUVn(DJ=87NppwUm9(u?#%i<^Fm>uXh&U~8?V8CK#9MY(L-zVu0Sj1A*MdNC)G1b z&ZLj}11%g>JjEYCo3DoDaRPNbDWA*syf_En!46eF)<|wZ{Vv&w|Ep-SL~TPOkPjgs zafAGP(4*^KN<@FUSjCh+5s+u<`mL=sbRVRO3#cBjpZ6Jrlw<-*w;1&SZ&t9}OP%X< zjEQVt;9TR>v145`@w4#hDa{bLmx9p_esFi^(@AlocRKb=qCp6TsWA-@HN8pnQv?Ct z^LsjLdBv zDlnFgm1Fg2%YVhPn%61lDM_llxoSZ<&k8@{nYJq@nR*nm1+edAc0k_E1?u^#dmsuV zqN!0%?amgIt*`S&w{69fOR{P3qZlpJQ=s_lDl@$*vaAuqo5Esos}0~O)s#dR72ztA zJP~vGFHmMOU)@pE5GmV})E9&VPAo4l70 zHnuq&3A_@V%LXkST|gHft6m|4K`^Wao@#WMN){&HjW`}!WRRh3L435)!B9%iydSm* z4|W*a&iVx-O)O^}*Eb%;sin`T{@V5zO6Z>QP9f|xB6lIGHl{!AptUUPMPr32mLfo( zX!R}sUi?hK@pg$;gi=5$c%T2TQ;3%x>AlQx%(GsvVq$tQ-U-Krog}PkBMtS2%&$XR zY=Mn+_zVFOUK|>V3Ic<1@HKdl_2y@Je(+tVIZ~^+ z{)C(%iKjVc=3@G&6N-t=A{GF|q^)Z+>t&YgzpRl|Zt~QEI!ndPvn=sj8>I+Il@-Yt zj>*!gX6y^P7pvo*W1n8AA$G~%W=)ngnN&M;8#QRU)4W~5;R|8-6 zrx4$5!HipcGdUy44t)Zp{-YvI7fKg6e(thmi0szoanyOO*9ooNaI^+7czaI@$Gm#v z_u_bz9%`sGs_SlCs*CfV_LcOtlYn&ccVd+58Ja{WN!DYtj#YRYC7zm<{2N;PqsIP0 z3(jXc_9J?QTX|ABq-9jyb-2p>=3$9et?cqF&s5@90NsBPljFqtqTjo@aP2S^6zC)T zk3T}wjl#QV;EV>wi$BlOY7zlF({10rWB`zX2`17pYP7SJ&^Vm|ke|F#0nNrAE1LA< zx?dR)*W=N7J82L!DcMJPXSRO}shVQPoCU|NOiTWJ?a^r#$Z<1H_s)8!h|%8(gd@jm%W~gstl?&0CY(Xnz}2yv6{%w!`Z2(qoPm_i zu>5*AA`oR*H^bkNr<@y{3?4-B=W;6*%;lz|y?h&I1tseKqs;b?s;L5=xOY~JA_kr* zC(qFTW3jfZws&ARIyvm|31xw|urHli|Kj5f(;=a%%XQw(z2su<{E4MLb$@$aqqA8} zOdT!JT&<8OL=_>+THfKyOjQT1sZiTF_#|e`M){A{7;8U8mwvpnnt@Gta4L!*UM_-Y zj5YYU zaNWU|uTt@+aA*ngw;Rq`0a6~=I1;m8Ao(SpYmT=!0z-M+kbfD`aAq?xhp$eToXH|kHIwGe%sTu(S{fuq4nRc`9BkaJcSB6Rc8@Sxo&WA(+%%e25SnAa-|egw!TWG-P& z&6g%^&UrPtZq{h)eXv`W=-3+No&ybK=aGacfMO zFB?*VQ*-lw_1^h(1h=TgNqi;U2acQ3FIL}(|38(kA=~$6p27#Z>hI-tiW|jg!bX05 z0>~+vCHzs~oaf7~b!d?}q>RTCVVF<&-C(LI_ER^4k}*5dkTsMUz>GJeRIy6dQbl4; z&BAI?IvxC?wA1N>K28GSu{!^y#frVysbSyZVf962@0A8XNf!kNQ<=|A5A{YMpfp6l zgXY6>Qx!KJv7ecDrf(r53ZtdN7w3>!R|fg&9X{H&f7ZAFV{-xf7plp~>r3e>`okCbKCMF^! zuMxu`;xmCBx019Lrs1?uQ*d)>DpCa9CAlJCC&BS5R8`Ze3?ZyGdvdopq|B49S-Bp)66U6NPog_N!(?Tlf zU}w(09J}7o6W!*mZTum#MLiuuHC7U?#itsbpOkm4eUzqzzftr{)wJF?E=o%s;5!Y#qdia+uCS>s@BvjB2HW~e?VRVO^(AyKFi%0BF$=C$$){^8NI%boyh#* z_z%PY=+I)IT~4k2cN0AH6Pt{XG&?R2Px$f@ik+LkGKH`iG4s=(C+=v^g{H*Q-HI=` zWIrx)2k+%MvqjD2+`6f|0!9Dw>lQ&5#zxGus&iT5=D1birKXuNI7Xvij3ezHPwz() zdD^}n5%1K?4SwIR&-R`PtyoI1X*>;B{9;~aYotrkHUy!EliMTtIr!CWV@8Ub`ATL8 zKbHkcP(qy)a#HOi(ORjV7Ht9E4qBc>AgzGb{Ctqpc#LT$9A6by?}F9>U0$G^36}NG zoA$&AO{@0``1ZXiD&hlm!{2Cvzi94h5X%ZD-(uHQfI%f=(rTz7mH{H>y`H{H0;;}2 zjPfY0km5;4#~PNyDmnoCo3~C0do^Ps&=ga-)kb5umZ#K3<{4N}M$c7}hjcV7UA{V7 zA)=H*1SYi70jGq&CxrB{oQH_K7?^6Qk(bqcz#Qa$y5bn?!C=DOUsfwe3$AF>Py**}wTk)A z4#uuO{;)M9e3M!$wd5)wq$k{?RtH~hM5)dTB7@R{-0g}+3N}M&*Ebj5#s{IHqfK-r zV%CCe)9HS#n;*Xi?S1nDfGPyfa7gTqVsn~CqUI95k4x3NFfOtj`@9a;1cStKku-c6 zq4SqgA@0x`5p4P9Z%i8lzVb%6w6>X1ByR;Hc0Bq(V#7y13_i#;Gvv0EFI`lNpmFMF z16i;WZ2(D6>wl6Ujf&3{?>Qn5JD8aV`_+*p^0{;!B9hQih+PxqnAtM58ou9mM6q#= z&zbJG)ueTowtPV)#0tkqqeF)vQ32>HEI~I~lONf=@9o?^aExl`)I@9p zYOnpR_YXtJPCb8btgE6_>jR%v0o6X*yVn71nj%Rb>4=(REFH4T41ogK`=0G>$ZI9e zD>aW4Zd{iadO}@w7gyj%MFcaHFNi+H@~ z;Zt~Dx8?Ca{}G8xj$BlWKj0sVFxpDB?Yk_AE5gYocEm|pq=))Z$k$!9tDPaP3e+31 zjE&z_(WZ66lrriu-KTIxqX(03>5FGs!O#EE`-KaX>l2qdo%=Dkgim>Vbx>u#HjMM`N9$=0p~LdyCR?toE1!bp19> zYvanVjb{86eY4_r@^w@?MsES^w(F-vV^Q-M@^^=IR^4Xg31T{4-fKQ^j#N~YQM77A z(5#tx^V@;MC2v_}8ll*7$2;iw`1teH_Sl$&Nd9E7W{ua3X%G+eDHsUHzJGk`r9p?f zsl&FYfDa*zQAOcDSVe-cWoS0j3G@(lb`?6Ji{c*>zHMJX`4&W7UYWDkJW5k#$C zg$g7kEU^!Bnl9&6Wf}KuvHVmA<-Yta%~)ssa{lYUhUH9gBXc>(Ggyi~h_`Tvx0qaz z8tl2kqnjo=U)!6$NpsL0|6i$*(rMv? z<*;1dGc&Ky3rQSi52Emq6M*YFNq2Na-$>QI#*@w%izFKh7hp}rd~cIV@eozeOtOhSY@4N30- zWa(VW{lrHw=Y2Z8gMVlilFO_6pujc4j*Hu)bL4L_@Zn58MBZFJWYW58Wh&W=2%Wr# z{sFh=_cji7e?5|Gj2ewJxJxQ1k3C=3)eHfmo3{a@ZWje+-NgDGCaSI{PUr8t#m772e8ft?yEeVY7;(@vYB9-k=!id;{Lf2!;G z&eVHn*KvD00($g)4RaBnIa>;*|1W#KE@Zrkdn*wD66ci&^i-;#JBkh-x{}~vAb%^H zx81Z@;$oF4m2T^2(}}XU>}SYhU{T)E+(!#g@@M-&Cio&vO2rmT6!!8{9kF1__F8Aperrc0t`EaUCo`2 z#1rQZ9rBNjPo_NU?w4MNdb5yLPDAd+J16kiP8mTi)ya+hD!=EXGp2@n&e3Q$aqEGZ zllD`Ck6)3Ou#h)HG!O3kZw6+?#u}Wu&9bMgZ+p!9Lv@0Ni8@oPc_EUO?&51xi1F~U zR$O6vOcEh+^18pS2_RC}oAh1n1;qJaC#817AIC5OW#E^XCaW!I$_1TR z&~mZ5g!kULXMYermwA%oLqFwJN4q)lZme#7KTyF*$STHh1P{W`7<+ztN4*U3_O`YvTOOxnQN> zAr^clHjGL9@yHf59kZ~)xiM8g@A!TG1pHI~#P&aiK*-Oy%+`AY0zVw?ZGtB@xH5wZ zo4Ga2b9YU^2|OJYN@_QjOd@%14x*EeJq-@dMq75qY@YEjEXS-V&*n;Yth5Cq-G4t) zNfy}EE_7#;1kb!9JXl`=BCz#gw)BaSL&f4}Vh6;4kfa5#hH3KdB9D#O%d zWE(6w$(C0H6_q^9PD|odjRUhy){55+lPB`=7Tpfd&(oPwNW1-bkW1yrZMJQap~9)? zdf2V$Ctdrw>%uhJ(9#QqIzq@L-m0{D9q!E%*Q$T^3Yo~&T^4uG>jE2L%@l2Z>RHNv zrfzJKN~~LDbl+~KlSm~ZEH(7f=F;NRw+Dn;h}%aXC*-@#x#mb1>7HNF_2F@riQ28S z`TpxL`1wD;Kg@ycOh&Wz#J`-}elTR`q2$>(U}ef1TBpLN-{SF^?Vz2*%cyRS?|ae7 zLR_tzSC*Sa!?&-8ZCmY30VkjI`K?!eHQ3dq)+*I&xr{M1>mPX2n)K&@>P_5n2|_s_ zR&4Hrr$MP9!zPHb1$MEeUj=oz5IQhTZ>&S_WECKZAaZ7Ns;81Jsmzf~l8DS>xgYy4 za&M*g8F{yI?eS=_T%yr{!&7X?58c2#*dX23t#!78WmLVgl4`x7?pAq(xTqNWWOqCgjxNG^MriNM4Zgu~yw&C0IXe zJ3ENunP>G8DK+qA00BE4spM#|*1UoR?r6))i_K^EWo<+ReyPB#f7b?GO;MHqHjL*n z?+fHEylwdV6p`LtI?Dco1Fs>0v*!D@k%GmH!3P$ik_Gl!j?^R4$rjH3PwV`lA7Y(n zeNLY$QD2TbKKAMBp$@1kQ!&sfVfSDYUHAiL55r4Zn-hKbW}}((3GaI7g_E4Q$i|S0 z*dQd7f7ldemgtwj#XRG0s;kS7gk&&ZKIXB+-ANJ!_Nt(f9$s|}ct;cwzgXpw4o`X| zQSX|kk5uNQ3+M~73rnc~Si}D91=addz}c6H0w;^vaE;0Sq+X7zr1j6Tl+V2OM`P0O zW?-lD=TsfL>2uP{BpOL&j!M=hi2j3$o7Z2{?{JXAkeujg8{!f!OsS`NrxFA`2bo)Z=MBT?Ex^HE+?E zQm|!V+&qfSRhC>O^1I#Zv+pR)%(#O0w5c*W8?a|J?kG;Ak*`(;4gM*Sej?CNu9rOI zaN}WXUd%u6RbB#^L@wAWOHQS!Iqm4x#1v8MWCpgN4^nnM>gkZH;#wS`+Mrg+v2dfL zPPkfc_r+1%w!YwqLc=t2zVF-k&WBoyrFW<$Be~4f?@xm@BG@NM(;{pcTS`MFCIfQl z&X?_1R;Afcb&s44YC4+_g)4oU3-aD?&+8@zj)Pb|L|zT4#uqkl#EW80^xXFh|2q$= z|MqSqZewTnTr~T>=b62T zWd6a-Qy+A7t(Bw9B_JaiK28MoM;=m~IMcjG2>l`_yX&UCz2?4LNzvpI6+wK3*h6rG z{sEf*IQC+IQ-DY~#xbR6XUL{+vyG?@H_Sf|Ef)KPy);d0Cyh<4t*#k=wc@Y$*KmV# zX~#N9p3>_#v=otVIA2WZ-OxO|iow9JIS%MjYoa}ZpA?%QZV-b#K`_(P#R(NOI|b?y zYg}@7vc_^pqj!p6?ey*I#v^3f2LJx7)NI6Ahjf-xj@INcg}u+DPlDFf?;J(}xIbM-w2+?32-*L=Ccf9+2E6z+O%| z3m*E~4`!CK2CGC!t+7W(5ai~89H-)0+)<*b)X6fVYtyNzk~5ZJM?UFLCJd+x^1yiG zk+U9|!UPT2S4hl*SC46cThu` z`d-zzQ!m=W$**RCu#*d6m#oSu(I%Smj1mo_V5|xuw6`xjI*mze>y2uHed;qGqxe+y z5Ns{hUB+S9THmUl@4$%X44KR9RyYDnYZK|{SjDFJiZ~Q!7o&DI9Ijj#A*FceEvK)K z3%>r3r{amq4Hf>X&Q#0ZL+LhBuYz2~=vc`dU@5U_-XPhuOVRwcBg)FwkYngF*2sEo z3I;8e66Rg*@5YFmn%nW^s_bpYQ+IS_O)c(+qPF#a=wn-G$}#SKv3bz8Z*O=7|`hQb*uv807# zd$z#mv_N>X1)cNFeNRa6^sRlK$tAgL`y(1`@y?BmF^9VE+lYE#*VEeV|Lcd-BLGg* z=1LOdQAbYlsAe%}L*xT$+q*5=dI(Z<{O0LQb4h37$~LN$q5^*tv&i}}R!Xz74>LZ`=9f(y`{EoHvo(TaN0t8e^tN6N{C4I?yqzkVQg7nJ${Qdl| zjTxHU8h`{;)`xgHFx(Ey;uqFy?;|j(rdOoj=!N2ax(boAlA`E7M`dCf*4(p=Fw@D+ z2OTv+r-MECpXu(Mj`!X)1g(wntakrDTecDx6QrIaU@86TIXPF)pMxc2P9%B1C-Q2d zPLNllNKfJ6XUk$}eoNQknZ>j0;HHqhGRw0S3BpQiGp*Mj?UgSr0|5#$*|+17t~zN} zI^CF8!4X~f3CQVtQn-8M#(z)PO$wAmQs_eBl3`1_>mR-9lmAX}0JY;jbctt`lv6Lx z@K-gXle8O&Qghd9KCgv`5M!L znC5eg_xf4JfKvfG(VWShw&5)XHIhvnSK$v8a@D#ucO7c^E+Ey?+EjTtQ`=WrJBQ)# z-N-;9a=PwHa5|26ZR+Uy%+8~TfQFzOO@o^GgaE)?6>s$YDcn9*MD1l9Lse@~tC&Xa ztw>V@jz23skF3`Z?4}-1U>MX$myU2j)S~Ier2N2p&}t#MN|LLhqu%*r(($r)!p(mq zuX6kfbtw?8*9*U0kH3KSf_wz-e0--^Y1U-b?dSP^@9YQ>mDsb6+p*J848!f694I2q+NgTBPkj|kTmPULSa_u))KH;wbldw%)8?s}qVfKMx z7Eb0=Ui4G`v4s^qJxVJ|_X$Xq7mfubLT|JoP%A7>=vM$K^1tqw_4LTM^6(PI7ef3p zD4*|L=@nS_-N>(P@xpJq0)LczOj!(%g1x#+GPrg?KCiTCz$9R@1f#Yuva!>qI7OKc zLQL>0he6!|%Fa%EO0B1Fl=4f9jTLLejsuM_@t~VdeZJg@{T(}{c|q+guDM7jTOA=Q z^QljCyCy5eClmadlLg0t$4u>Wcm7xw{2mm&O&KCC)=Lg~I<{-IWR*U-Q+ck}8l6nG zr3L5RuP|15ZAVqJNaGpjeuPc~$|*UqZ-VTewi;ABX%nG(68;bR<3&+q#8g5#jCMoRb7ydUe~AoX%$V?H$rbWa696MdQCa z@v#7!&G`7BtbQbPKJAesK@zGlTsz(ljTL@pucM{#U}{^Q$4PqaG7(2K)Mea3B5Ce)hJ9H381Jw=rsRJf=Cm zKh~}sh3Q}}yv0>x*vK8j4k7BfN4asSwodx8uLKaC0P{}!#cQ^@7tjGaU$45#nkrzo z4zK#W4Q;3o>S+b7b15Uw=b7m!9R1n)3-klrY@PL5mjZuvHOkRP%T3KeZqs3&PTDn^ zYiX*h;?)B3K<@7~t{Kiy@p3iQkai6Cu%GOIGXsftl>1|=WY`HhQC*QIQKQ~u3)^~H zgRO_id!0)h6Ib4>I!`0um-jzMQB7WlB;!b5*IFTF;~GRaaVa_oq3TmxN^eV0be1%l zTO9l)Ye#U$3HKz zMaVB$IQQY%tgG!Id3ZCs_q*-Bl3Suzg71eJ-(nmEJr*R<-fIiLHa`S)^scl3MJ5}S z7Cu&IIlq{VOjTa|^7@{*YA1NR|8Z@?Qi>uKCZ)^LEKY41)$^@Kc~lGMCy9 z*yrC^Zxa{md9>g-S39!*_i+gNsS>7 zmj;PflWj8FbW6L{DLE@EZo}+ZDuR4_QCr0T41IUQFS1NgwW^P53Km@%7atGb3o8Da z9h$Q8uN`baVPoSJ!y4b*-#Gh1Cq_BV^%VGNp6gXdM;@$^-1=?@kuxz7u!S|HjU&b^ zn6-1^?JH36X?%hocAnC~ZU+|XtK1YvXggCj`zNG!#vkmwz)4mhze>kEBrqOQ=YK?x zYEN5EKmNnOemRcdmt)%gejt8&mScj)olq zEUD6Mr52KY*hB?~Wk;qrGLDx!Bx-6zAJK}^WUhps=&}aZ87vb7V0>NG{=j}a@kg#b zeQf-DzZr@KD?V8$`O@lX@JE6hIvHWKzqkwp3}Y?mDW&mn@34D#?F-SLCP9Wj`se*m zq?1mT(J3zUDspeloWT|E{^QfEkd>y>zU$5uxm{>rn&GJhN&NHsY#iuTSL^9qU_&lhK&I{{xb;%={ZgZ>OGs%?l z>sS$%CxX}aD<{bt5ci!STum{9t>ts%G~v)5>FhPMFS%Ej+AO8Xz~46a zbH51PBo*Mc_}LWiNp&_0Z1F{&^kp9z>f;E}sJl)niEft04eYM^%n)N+qz=Ku9R&ZO zAZC_fxzt+s%@ouM=gc@Scg))IZ|B7u6fOg-u4$}Y*)OlB?_YLE66L(rb)X>G zSQ==K8-+5wfKq*~t|XxvF`-IU69jp87gQlJ>>S?_e6jZqnjN${Bpp4-^Lkx<<+IBr zIq^DLN)0(m|0C%f7%J@=E}Wa(WNWf*W3oHhwynvwCUdfF+qR99In`9(dEW0g)P45e z3)gzq2=0~@DKTkegfY6LSu2zXkx(yEX}=yth;f;IOBzfCpXLf76ewwOi(`YxdQfE&EEy zulj&l7#7)tGwDUHa*sqsSD$Q>+jTSARdq8K0=jL<6Yx^inD}L$QoKA0vTohDgH8c# zf-Clnt2LuvbMG38ieX>cwY%+(kX&p=qxKn$T!x`d-9Z^;%;?#*D%u0ODOr?KH*{y5 zGJjssz+DvGZlc6{I0xE$1I`GwHtVCDN*Wz&#Q9@E0Y?7bcD@3}4BV z7N_|nV+-{DQiWgoJ57K$b4>qUfFtV{_Wt||m^>3SeiOS=%-UB4N(CV8(y_a{7tCrg z{$BUwf2E5a{&#~Vky!b{kNoFG@oX2fCU)99*+R?RO6xffC1?-UcJmq}jVBkPYSX7r zM#<=h1IL#*bSBvMpFHK695h@7C#f&gmf*x|mBwHk&0%r}4a*l}t$4DOGbnWJV&HJ2 zbffrxOmZr*i*2tJG%g|wbf3-7zCd<(D=&bsx4(aLxw;4x951p(9R|?h&!=S08oX-N zDPAtQh6`HT)IUpPZO=39z&7+={PHQU`nb`k{ULTM*Ga#^SVS>J0u_+NXEku-W#A4X zQ_56OR+ET(1qjQXbjRfA_M`3=ui?)><}6>gScL`JxSQ-sQtY2Iza?(2UwE_X2{BFB zkxt3SYgc)2fZh?4pAhtuH$(IBPd+&}K=&W_kPh~mWQwNXcaCmw6|e{!e>_u~#`l*P zsm=H0&Dc`&$YE03Q3u4LL-+c%ZA0O?VGipt&&5}~NvhMyt42i~jAG&^Mhd*x8E+;G z)mkmqfC@X#+zyiOJQSZRtF^yGi<&InFCLmILf}}1XL6$T6Y~T^lF;D8lvTmjS;rF~L7EVX_QdEZrx+T{R3eX80c{Rq7sSGlJfHy-Z^ zN9r7vg%21xgyafoVd;@f1RcKpXQmimFX4yF&fPPgO7-JZwcJ6Yf0IB4ch6o~rQQ*T zna&C)eAjV4K6;Zz_ZXX=jyl44S2y$5lvVe*RjRN>=uWV0`ha&NHDcLD$K`DtM@lzD zIs;oHt8Py7Z>rhtCeOTPp?Q|P=nU6C8*1rnv$n*oVP|tE~?L%6jUp~YE=sKw{E1dWZ9i_ z?kKdyMIUBNG)b(-tO~bUUxI_Uc;RISx?45wC}o;8>B30|66XsQ$Yb;kqg89p@mffg z#{b0dFwTtCaCPY}v6wA!brUFhkQ9R_%NxF4Yf+Xa)KC?o7M$*}DeWP85&A_{>3KRX zP`j%tuleHCEo(-s`Fd-frD67Pj2C+~XXl(aQc|#kq6N31hI0Mt>OGs&VHx1kt+J;- zj&%DDX}1|?1L&>+?Qy#fN@52a_;BclAFiL&RwWxR#Qc_gnD=1$@70aG$o|0mn1}SH z%z6=SkD?9FiJ{h1kJ?5B3^|eIXVs>Frma=>lG;{~>sFZRhUEe_g9#KHO0`|o9=8@} zvK$g?*3edR=ZvvgG8?yy(+Gp%S@I;fAK6(kIB)D|ylc`DN_Afpr1cUTa-0i+(RB$e z6zR}3)#^M&M0Kqw+tX2Bk8EO{wC+l_9|rd?XydGV>4Umc8VHX~?_@8a>><;VmllRZ zgKo{IbMEOE>Guy406=iZzLhvX2^F1?{q<)D&MCx+LO5w3eg%YV0M~DjrxaESd4cr)cz+x-no`N) z+nUy-NwGw%j#xwASy&;A9qEHpC6-k6>{46MvS9LFfplgy_&mD`p+1dPK}@RR7yFA( z^ijL}q36vVgVm&tJm!aWb?0aJR<^xQ{~}<-p4wg5D9DI6PH)I|6?N32=-P2E=c^8= z&{br+w+)I+zXgfWfGuH$`I~u6ju_!1j2cVKF#;eJ{QsaP|}vP5|%ME+q5K$f<5Xee!S;-UaAt2*;?II z8INa8mmHyyPV~|Kf3nD{&D9DRe}naHUpl`_^w7zHvVqKC>T&P`DQU7(QZ5tl!Lkj0 zLL|ht$)JVk8~{K_qr~aKB7mGd0L%WCUNuz!!RF2lo@pRE2_sj7rxx@=gweo*pQYdB zLRLq)@MeJivoYIDTuTu)%GoTU9wQHfn<|az-3Cyv#uuwtq^ytkJ+$Jy(+;pU@NWEg zv-ti9%rhwYvQ1?SqJVs~H)Mfl+~q}1H%Lt=?*qxOZh%xP3<-hR2Zqsl$xVjWicHk% zqy*ZbSYEc!FM=_-v$`5k+_|A-bTWlEIKoyjh;A!7QQejBelAs{r3WpP3D;n8%cqHU zA4Me0N)_X+s+pG$U#XRtZIMGKfAl=Yypf_d9E+cFt*IhkcUFX^p>$ev`zp2T;T|{& zSt3|#okn*zXMtiXAk-aHPfur zma*T?uD!dTW)!JHOgYU?R+wC7l_hfWMnfho9X61UvWUwJ|mR#qo!p$$e zk1K;}H(`CelpZw#+`pkal|o&}9?=G}O1;95 zinUgucXq(VYdCj1a1VVsIL(Zd5XuK8BBycL`h#nM{S_zZOk3Z_HvR!KLeIVbp{s83 z{6oBS@ik8!z$4xYEf+`dm~1CvEDLL0D1kZ!zkTqLGG&*Oe=Tf`;IPF+L-C zq(Ox2`D}zT2?NveQm^|6K0h+;#2T)b1=XQI($riX{^F!!tre%<+|x3HynShtR*lu% zRYHGEbMv4%-E(L-G)FFBirIEi?LoA&;+y|(yiWWMS80=YclB~RJhh4HdHHjbv3|eJ zSJeXPa+TjxDQji)#I}t_bE@ZA6}vi7o8Sv662UZ;FdR#O&BCbI^b(WKo*N~C_LKb6 zmzke;4xPB8ljF7@E>`MQ;=d+9!w`C)FyUK}=swi3SZHZb-_4^>4lyVQ8kE(}+Jd&= z3S->h%`Dx|cnr0xl%ik~h7aYx&E?pgxp;NOkQGEW3@Wy1QBriNaar>y-Lf^PK!0jW zeOFgYJcLN+$rfa9H5`Ut-egla`aX2!a5)`+Hxqi; z_G7Z)S3<-;{@GDx0ylzEgS28KVs?zYhzm{21*D4Gy%j!ahJwND{Y=GjY#v+AiDbCP zMs_54zu!6seb@+y>iWXuD8gw@zhTsnIs#?&4beB8b8=jHo{qF(s?$(A70=(S2Mj@E z>e4>9p{HP*NT=RMn~h{Fj61wl`J5UX@QRkdA4G}ol{Gl2f5wN-!ob;iT6Vj=j<*Fh0*?%?AZ7Pv08>IF(iFhKg#mZKrV)j%VKzMU11-aM=Di!)E?YpbKY4CdA;=;C z?rZE-L|vY}X}UG8;`KQ^&)ocUD)5xfTa*OOxZ@D8*rXT!3t1(CLRLa`x{S5`hUb|e zOLljjacj+XWp#D+_gCOy+ZW1Kzx?7~Gb5Z&d^4?25|w|_N#=1TgTZTIoqQ`Jrm)FX z=eAjJJ0~DlTGgFES2rLqr1PTJx&A}ntcxBa8Q}Qonaz`mL2@L@TFy=_3`{n zM>z8)WBj&p4RZH(kI>`JFYU`K`898Q1f;YT0`0ovg%=qh!$d>Oo5xe1kBqwkCjQ;c z0Eg@fqjgku*gC8HY$yl5taXRy0o)#nT{0UWG}m zw{}KKAU)Olhh&r41r3J=V#8hp(u?)ECd&3W@N!lREUo9#k7iild}yLU{E1|td(+Ms zG`!I(m?5W6{VW6CVB(8u%q7vINv}S6d~ebBO;VY_l{aULT^`KF{13xq#Q`_kxu=}F zDTPs5KNUm4ou~BTc@$@Mq(x!fTf=%Gdzzr^v4<$@H zwQyt$M*KqnSU{=^CaQV$qLvI0st=sZ&6253ppHXo9xhELa?XjRVkcvi$01W)#l;9i-$6WzFF&Pdp&$?ao+n8q}Ad z7kV*k8X8oHZudU{AD4OfOcZ$?Td4+f08PQo4<;5F=1lI3(bKzcD;qRp-3~=w*2`U~ zBZgO~I+;hoR`lR?bjMFgBNkYn4BPBNP+|jMors zXPeQ!Z37jl7h5G0p6rJ}A4y&=l1pQtM zx#S-D_0-~c+h^(3@ifTN^Y&fBsCO0kWs{@uPlzcB!kZpuy9T&{kBw zi0~x&yGa^k3ZZvoOto{7(i8QS^#66$$xyR2_Ne<=dl{q3rf%1AVTgYgTo0M*-r}QC z+OBx&1&g>MC4-*w!1VNGeXGW%?$*(uaKM3u%#U?$C;D%XZJ^w$byP>fyY9w^n1p4#sf(~P3yXkmED?!__{S+y$u89ZSvSWtt{z)1W{`kW+ znW)$%VtaC<0esUv8?BLF0r%OP5D(dB%G_>RhZB!b(QviSFxX^8kB5`5voRErU-elJ zme<|NTySG|`mkBSIVW`k+&&ijcak8x!oA0OMaNj_uo7WMi3d*O3R&m)U>fXNuAjp% z!(jT2!aN1Le{vpRSnS4_zB8V3CpE;Tnl;;zVi#_ro|NX@abL0>i7%^IKwGUefL97; zm(G7bM$|sbh`cQ(T1H3E+uW}G`UOUGKzq*ZFf}gMW0cUjD~vjY%;G9lQA0fdDfLB=MCSLJ>zczPvxvvy%se>aYIoJ+j{up# z%nxB3kE8On3(X#M^NHFzAtfPPR0yr{^`5s^rDt0MZx>=m{-&y)oabHnj)tl$+yv+W zB$sY&jmhJK*_zcXSwdYx*oj*EvKvnMX z6H7peI7mvu0>)4_a>QEDVb!7dFuo#Jgwe6KVz#GAJMAggqR)4ss{#zkC@SFYgl&kN z1)K#iCfAnE-=Nf?mc!eU)F+X)w-nBw&1It3gBIpNka~&%oW3+9(LoAPNbHJ;6Xg6P zrfZo)l+ic^+2d}!MWgv!J#hMZ41K~0W~9=*iQty4Ve$WXjK3aYR- z$t~Q5fH-JP6-Jb56snPT?Hvlvxd3_qc(+6*R#5{X6op$M*fZYstMor~3#uI8f%EfX zrM!D2skqdk{%+9?s6+Xm*b>RGwL!;N9_NQHq_<8KERkUNJ1PiP?3)^w^h}3Z0NuVr zF^taC&(KH`h;sfXCA_K@rqnVO8BMw9-B2E?fDCrj*<_k78w@J1Ku8> z!?JnZb3F*aUY}kb9VOIVnvve#(z-pR4eig?+?y5FPODczPl=ZW$D%}Zf9Z`5;WwO4 z^NZ1tevp}Uv&CfowttzkivTC4^D*` z#!4k+EQ59Brwi;j2XP)O8+eWQm*qLs>>(y)Y)R|^l+a_8K2x0{%v~)Hu6xwE@54Cn zcx~lI)g{i&e??Dh47+Xx3~x~Wf!hgDkuLt+dqrulB)%soE2X57Vmt1)E>FsF;V`s$ zQwyY?gvo7W^~J|uR4^?tOy0Kscd;{Cu$2yXKMf)c+UhZ2)@@Hv0nJbgQ7I9AtP-0g zC-+fJ@3LP&B@a;r&+ju95HQ|76Wj0`3XC%?bUuq%g?H33O7)7s0b9gj!HbgG=FtsQ zpX9@Xig0sx@0&;2uith`EjK$H&LNVzU@Zt<9eH zzMJ|z75e!fbX8W+GEH9m7_I-Tv)i=1{y;a=@>9$-KQV6%6v84Z0e)NIos_$tsM9)S z&#G!yet2Uq!KrppiU^X0SfMRbiV=(AWqF|-dO{8uMsIN&h`WKwMAT-4ta^w>7Vz3C zN;VQdoYcuwnEU4?It$|F9Gpk-27|s;dVJdrZSA`VDEL@PnSWo%!ESkrwZ_FwcY*5` zaCK^8%idWKkxeQtb|6mZ?;|#ba*?dZij8UK=K|r^4oWdpA&Q5lhZP3LVib>!o9WI= zI)VgVM)USH&hRTdUgd`(I=i^c74C+2{JVd!0Rvq=3X>v zg@>5ZHVpom=2LJoO0izSQ1~E4Nq6cmliT8@yb^ygaA^Lu_3k8YCO&ACEs1m>K&pK5 z68%zG63mA(5R9k929nGFVw6TBP2d|@Weho?Ws+N@B^>2*BX}3XNpOZ2lBdgVG)@Wt zevhf5-V?q<09*0wDp}_*vd7*AHw8z;58gO3bjAoh%72={$n}D@TS#fvq+rjmT@|(* z6z#STSC|cB=RH?N)mQEqKQnJAoCM-3KF%~|`+6E1p{b`98sx@F>2q0EkyC}@#uuXLg{L@ z(kU?0t`RAY%;M`qsqmWnB?myUM@oDX>**17V6J0qM=O&xEL^bpRwJB90=FF6GVBe) zrUOdfT~VQhD2EZ@(j>u9=7qIX?i-earI2kOC3TC=Em*XW{3I>?uAi2=%YpL8n!2lIjvOSL%spKM-LLebAWP^$iW zvP<=tu+LiO1xIAg4-FE&-DGPt^-P|@dWI$Z+slobF(1f90Wcqopg1<@K3s4UMCg!D z6yN>^&NK4+KRAC&k(tba*ADEU|IMxdF0$|05B^=kthDnim>vYDR0vayIUNk0353V* zpbB-&q&lkxP6&9zEf*yH^GFhxE0QU-aPVogLOb@k*XS-_Zy5W$tXCo!gK>8K`ob=pZSVe-Z0{ixY|SF{D)Z^ zZ&C(JG&mNX_B)YxYv`rgEK*IexvU>$x0GR?pbU1yF0qO%>B>G)NZg?=cMBW$MNLl+ zDHX3dAXPev{8v_lLUf@c{Uk5bWJ9!!s4hauxtg=`t-dbYxA(Ml{^D2KVsZ%~WipL( zvQ)Xghc#-PRp-pog*x`baa>cFI-50nCxO39=Z}`m1S%GDMVsS6X<0Fpi_p`hWt3aD z;;`r(KfT})x99N*g-KY8N+}7Z#aQj(4X^%SQ2-Zza=eWHcp=MgQ2_P<;VD=Y)<;9G z2I)Gl?5(5IeRfJl3NEZ9V6M-4+=Zfgu({Q94>Oc8R9f+sx$dKwL)a&qNGAnED?F$` zHwgyG_skZ%$&l>kO*oo3$a?`vcH8AgFxp~GfT5t{Lkm!gXaV#O$@WKPP&s-7GhyQt z6M8N{oy&mBDHjM8U)5~tT{j*nH?^pB#9#)S zkdv2V74EGTOMo4~H2tzet!)iCYDcG=JfeYz)6Vv?_QSFu>0cb-qR3G3hig4MTy`t? z*{EKI$rhvf?~>qd9f3S&Z@brSTaEOS`sQ^%k05OOhX~y?4fOvfc9&RH5pMqV3AFfS zu-Dmg(|+mJs7jzqg9VEzHir?po}Er8-KWG!Ll473E3t+qy?V~dE|f+B8zWze&UV&s zbK7o=gr*yeiwYM&p%RW1+^i_PO)3WmIzg~V`zkU4uQimiS$eOVu(FY|5o zJK3-msO%<#UyjD%FIyrri_CoXorZ_yyB*>`Jc}2ZXSg5QI+S<}i?o``RMONpPi2c& ztY;O&w_6qDy_5RQVH13Sh$IOU$B_X&m_BnY`^rM8BoOx(K`Tu@KIpmDqt6f|{lp;+ z;-G{No__RP;f_470s*}(W`Oi>fv?T7u12UNgfNAb6hlD#iN=6256>(q9-c6f9vjsV z{lXqeo6V9gdM$r2NM+kiM%D(sx^^r#KE~Lv??~_9FWlLTs`hXEJvj@;9r>;~N~k{_ zIgU#nz+~IhZx%R^99a_@OqrNi{5dk|h6B!N`mrEOOqy4oU%oywl@BYQIaAQ|bRPG5 z#!5N%DE;k(R|J2SV{HKqYtx!JZgx-R)lkG1ndNFIAN4rPiI4|~@sJ9M^%xh0vM^tt z)Xym6?kN7tKn0S1*dorpRFFJY^tIBh0_+^f8Ib%i!N#n`9*R-hEO@-j2gfyvzc5tE z)=6nLRw}m1FDs$> z6PDt`Qn9ZSNEEOX^_!+o$%(eEsvp}Q#z^y5S_^&`En%(LB<)gdqlw_V0RR9HaWTUW z+sBp=)T`zC<;$7%898nKFpuqpOmw&%=_f(bVi#Tm^c!utif*7!W|z0i=E^Sje`8GD{0A5|Iz0}jSO)y^qt{kPNf>xumBqS5-*#Cg6?tb z-WKoC&)XGi@vss3i4R%cfh|+s0_1%c05@p_w5q5t+{Wt#<~J9IE)~_#IZa|00Ff!g zko3jPXnAjpb!hCXdUmN!-?sUo)UI@X0{`WIuJ}g)Qo^dX-L=M{$TKT&X^Y*gReVL^ zmqm5o-Q^hyN0^>I`93^{{39$fE6fJj^|BF+j?9DoEpw6idjFX&eGs-Tn)b+G{pz4r zCaVBlA7h`2L26R>)!e$3c{Dw|=qhliXA@4~Ue`*jPZ;*f#(AS^g*}f6q;@SjC#&l7 z9`VTd{0T^?P_bcGf6}>*ScXP`bcA+!V1b+#n z`*0Z)!IJ~ADH!zh^%p$(PcTRM7~OLJ#jzHbWFUALf#sT~nDLkr=9~8w%L0HR#Gt$|O5p>&!}@ zSBUDb30l-O<|Fm9#%*GQir7-iewHGBS%xUyYxqeTJ zCTTj+c+0v0M0-cVSE5(yvPe-@$16;&97_7V&{21!gDsT92=8D)HyA(XpoFvs%xwkL zjt;E_(~dvU^ex)Hp*MQyfFao=lZ|bm`boZl+Az6=XeiU~$dn#@?^;&O(u<3g^?2(E z`Y0ddotGoTKX(H9?YiOah(?u}sk$h}bD&#g6I+#KRb^w^DmO`cc zPoRAN9z1B*6wGO!xh*M}L0ERs`0Ap-wXWz`!7ZFt zIiE^39@5;JuJ(t|h)XVSVDQbCyAUTu;sxKw(ap}8bDaAz>n47|#MEBS-iKC26Xh)H zm7$y~vNn4qmVPW2@#1P0wRH4aSVn*m0AH?Ar;&cu_?<-io%snl0iXoPkN*L6iCT2{ zkdIg?Col?osZ@2|Cq zh(j;~q#Q@{%YLn_wER-~Qw>n{0B_n04OK-w<~U_JgKWMX%1waDz8PV*St{M4DXm?pT5yx~E|v~A?J6J`#7#8`BX#9O>a=C`&8W#cD5NFO3o1sn z5)1ZCYDNF+bfmi1ZfZEBMrPYW7a#%IR8&~;vn^dGHcn=PZD|FZ0j6@A z*+?l&3Ph$1Y{H5I3h&2#%5cW0Z!UirSfeZDR&!d7jW~;VOG%5V%&nnrIxlY6N%z<( zaYT%JFkJj3ed=J*pgW+hKgCQn1+|XFqmUY}x}<1il{hl)SO&m?mIz(7F4bpkzsKSC zX^BvxIG;^}O8rCrX%uqW^7~XFvr+f}bEUA6j?JVA{$lp}*M~tCV#G8l#R1u>di%9k z{TFc`p5e~|yj^A`M$uV|!f%j<6@MR+yc(@MD46V4 zAOO?m>)hOU(VlemOs2(MrC-3ZBJvg*p5xf4(SwlhX6)l|(R1cGt1FxvH0{1{?IMG} z+;TzGwsLUFZt?R1smBg97(e<&t@~TrK(D*aV38ZiLxnk!C)i+|U|SQN%&NeoOp@yg z(R8>0U5tkx`_xq-7huc_n7-i>qG!EqF3sz8&+sG&K(@aNY2Rm#575+vBP-#XFGL8L zzumfPcnp^dc)F&B)~Pciw)_GUcCwr5leq|I1W1Gj#zM{u&Nd964kHrgp|crnaXa$& zF&^VC1fI2~u|9-cNjOcV`Ws=mgp$Uwl!7dWNtX$^KlHQ>mr1s2_ta=IY9)|>*--FL|1p|p z>1inlc4gtAX;~aU8a8J6g$ot98+quExm^PQEXRXJa1OOO5hsF30^&2Rurb+s94!qP z*fM9in#3IjjD*AD3kc)Rf~M~s1t)t7@fQ#L!wl;atVi95A|b5bBJyVcs#g!*ADA$M?z{>zGDe|>uGTanBRD6 zTfkOnsOF`hrpqV(<5>~Oyey|}#DxKI3Eyn3yXs!^yLPk0?k(5B{h;sCL$r1EZnh(F zJA;Y3U&A|v(6{|RLqN$hj_vY=ueW(O_80xPf2ayOrg#ZO9R~+NYj_U%2KoRTIft^@?d$)8^gLSx{e!xS*U15KAL4>@(0+$@uJss6g5bdPpznt zum6_>Jor zRG+BKT$OO|6`r_&>)Y)}2`=n|Uu|!!w`xb^ve>T2DuaJ*VRy4%Dr;A;JZPy{r@{PN zR>0DVo896|4lVL_#V%5>!&>~WZP(n-;aA$;^0uKj90PUGJ5UGy<0Nv|Z}-cbD(-7E z$NnGtH-XibY93sS=pc^85KFWmpj+m=agJkFHhC~~;N>{1K&Wwbj;0f<0S>OjI)DO?_2E=Jl7LNoplqpG?|B!FKa0Mk zTX`lHm(?&$uQe)wgF_3Ma>lfNh1_CJ)f`T!f}WHXowYJs&P2Axq=9+oMJb9=7>|ym z@0%8~R?Vr0w4&0GKC8r`Z-txyv zgY{gW+Pgy+S6pM$a@n7DYN8V-bFY}e!%#S}JqNdg>zi*7H>3Oai6vG>>uEX|Aa_T8 zJ`43tu3kUsB%3UIinB?#IHmq~YTHgC@{3(GZ{RF?@{_Z~IE=R3yc*GRh;#5K&^KS| zF*|u2r``HdX>X@{U>sBfkof|xy>_nz%CE$p zNiI=`<-sa5bhj)wYJizWXJ*^>nlUhUD0y*jU!8aC?*c&6XJRuz|N20<6n@;@$$vrU zd`CN)+*MsvsEQ%! zR~U|YN}>A4sDtGwJSA_DdeLmZgJFrbx~-jlt4;e}kdYbWm7J^g7jaIt--YUaE@%`L z)5r2fReH~S9WknJ2@c$$e-cMRMvYv2Jt~HNzZX~2j?}W&G@8u`m6p9`1Pne0%eNM% zYP|_s6~+%!5Z!#4QaH!3)pHx|Jx~OJN3)8iYxp*E^j!XIug`U#%~`AT_Vrb++{peN z@*aFP(5)`IaO}S8uW6&!*E#>Jg~LG??}!E+ck?xO8fYb+JZd1X$?jb`t;DU-8G7cG z|981Jn3rY!N@a`|eZioi6T7%0ab4HzAPUYT2S8ids8-u~OhnI9Q<7xOSVPqvHfIKM4 z{_+Kx2rYeOIjDBWd)idGVUC%es6t@2wvd_nt$U_!6^K}5DcF29d?PZw6fAhnvLo|9 z3nsnFVaN(25;2pE!v;Av=t6}6NhZ3!N$1WkLTmRmEZvIif7Nn}e) z8<>oi&vi`GP{6u4NA^^TC)CIpV}~M6k?pPMZ(v^2^cj{!2r+oriTu>b5)0!8zfavA z%1LV{GsQFft=>za&FY9+3|1%AzDy2%;{>1eA*BVNz^TauS?Iw6isret7t7aElroRe z$~$Z7A=E+3!f1k9vk9RisgYLw#^eUePc?nbciY2<)T9C@x8ow&93N{!W4+zk4B~L2 z7Wu7bXMiiOENn6xz%0MWiHHtUG^<{@e3PMI@eAbn)%RRGnZG_EcRxVPWHit-feLJ! zC02s_*HGM}p(}M`4-kmliXF@_d!Xik7P#TGDiI&2m9z-;qlRG}iBv0Od>1!4)olh6 zEU0oxp^KY-_*UuML)q0=vM((jPxNwr*`>J81l5$yaPFNwH(5y$J1XnlB~8tU&_IBZ z5y4JMX(L}K`&M*`4&n)GXZdZ^+t1}{I3>*S_QiF-l@WV-8}QzIV*IgeEPAb_qXeSb zl;kGk26W&h(m^%bHIH#TMcodHF0(5xw0CQ?5@&q)Ls@v-^K(@n<8O3GeqKb!{`Z~$ zB@~w2s>)CK^maYuW}S?De$0CJXXmRR!vsjHD5>v}vF-;916{^BOP@2dy01lw8#Ul{ z&#lDxXRCEIrFNTQzi--H;ko+9%gRY?6m9a;Eoui@igDIfYiit&SOnv zm`Kg3<4OK%bcMpDMXtp!Z0PTj!vAm1RWoli_1cLSSh$nr9iaY917lg}S6%qJ^$wEi zqE3u%)zTpUR~sTI4M4r1EU;6RZAL6~cRKA2r9y{MQA2_gVo+`_8@it;E#D@xXhn*H zGT35GSTyYNZCxygjz;jlKVpe}6KFBjoT5}SH!SB=!^Edu;J`#pppu>7qN8m=ehkEGG) zENz`aLgZN%3g+hQC`5!e=IC`+)r*?8Fje`Hmx$F(q(5$ZG~4&!b$?&j<$F6pqX|as zx|DyB^^eQlVrmu7=!hQ)w9U2fy%sY@e|6;3pT%d>UqvfA%oaZNc zrUa9*c)I?+(DtfezfAo zn|E9*8ut{@g6j;!oVJkNsN!sRZH!+pGBkFKt@t_YvtH%{wi=AQAjUc0qG74Ab6!j5 zZRvwD>8eO^NYq!HPJdTXmV{;g$ESkc?F&ElLuGSs!Zwx9mQ5=O`sfZN*<`gqfyr=i zK3UoJ*%)Q7GdI>Ibb9nJ#DCyQm8M!ruqx)qD}65Z{lH_9@KEf87F7no-;%g2K^51s z%$6*CPK~qvFPT5DYIGSJ_98)a$BD&RdJu+@@Iqa2>lI~jV%{jLZP5FnFj5=pP`qQJ z))3&g;3Y7?;HL{WV_w4Nvp>593VTYK!Wzv5v>D1h*-9PSDrpdE1)@ww@6dnX>yZ#2 z!2lFmDaq2%8B?0aCH+Eoky@7y8}yc=_Y>}cssRlLCFNUIC%^c_x~hUOO8y+IHLUei zP(uz{fK7=KQ*v}xKb}=GC(OK^?-;{_fn15%23KfDw-^%wc({>Cc6p7aZU4*n{tPRe z*1EsclM7J6#~bd)Ud-#5p^RM$>I=>}_5Lo+18!l!!RlH#@))H^V5ewF0`slpFw00- zkc=AI$s9w6X_9O%w({1wN-1_SaR)z4^-5ik=Dc?^7UQjWeOwd~ zBnL7P_q?-@+++98rM|6##~;y~_z7-QPh<3}HIkiI=|`bNIP@-S@muys&^kFw}9eMSd-x}2%xf!&w-N-E;IMUi;QcYJ-*kGj zI+r&Hgs6QCCQcJb-=NYZS8xeS4i>P@wr$tl2-#pgBG*>P<`asr-IQ=s%I!$)9_hO= z=iXT8%31Jq<)Xdam49q2r`2GD8vG)TK-i*K)~BYW7L+)k*pN|Pffz0G&y)#n-w^R9 z93ErMnMqb?kWA-Zh4`|QC=w?J{?HCT65kS-M6@mE75W<&0ZTzRIv4^OepsM>$mrcQPWWhCT2b#6w-G8-?}Gc*jo1XwWCIiyaXaw- zw!rs1L|iza>WR11G)E;7!_=_FFd7(eg=hOHDzV!ifVTT%5S8%`cjKoS^edPqr>(jz z*6`?dIw+?i@9|q&rg1ovaTsxqz`LKP46Iq#(Q0dGkNd44%b7T`f zKlq7{UQok^YYK6)(JWKJ!K8@47AzOT2f$a~=#H>y=bh<Ml^@E*QLl zzZ~_mW!8y47$R$ojg@tQr}!a;(@UoDJpJSlRFAT^V#$LS6GOx*kuBa=fve|xyBBGM zT9IPaEZqFf{KK?u0D=yTMrvIo4?(!&coyJ%QJdy(ExNz`qqGOMTDsZv_t0s1CPuyt zv$KrKV}Ke79OSy#)X!8t!HRDHp6{-jEmzMB(Ez$p?h!i3Q$5s>UAUq%gFF5&4L}_( zO_aDg`o`u}nm~ODAo_NGgVm=?%RGgmPM};IzyMjrVDm$4x0oB=64NuKSbCeEkfd_L z$Vlbx?{_Fhw>93*T_&rkMPnOR^|`!`9Xibz5jVtWh*f^nIFJ1vGQNZGYrKy5^RV@Bn0z{^ zvYM5T|DckI{XcV6qH+XkIT$*mh!j{$pm{s-m~yuGyPz0pq6EE8&M*gWZjoIZ%kL?@ zJL!$~*b7=GOqUHE;0F%m6$WghnY^yZ@B$=pTtiyzw|5We! zHtwl_MgN(fc*48z21k7$@ve1dXbzSZ5BMPl-q9Idw zLX41o>Jc){iu`17@$14i7y%(R=j|Z+*#d6o_Fh8Gmp-?)>KSK!=lAS$)Bf@S`tdR3 zg3Y94R7ie@tllqLi7eZ@U;B;4Ej&YcPsDLkF5b=&mEj zu4S?HAv;bgiz`Vkk_rNi%!cg#dp#QPOSK7~Piq+jn z1IIKM^#X6?50GWA4YL>1q)vCn8hM9Fle#8e2!vVVFPN`xw!j(7B8mye&$M!WQLc3OVETh2*tW~X-~&f?WP(H7j9O1HKm zWEQ+WP?GjikA>(B3bM`5qB$VsG>goOw4CQ+obJT@adPm<>9ljxbm>QX_HJJBFPn~v zEa^d*e&g#_C{Svi&zzb*7*q7_w&Xr@^LL@r|2t#)WZ@Rz7Q@8&-^YTIl4h1^gyT9e z_s+SYyF~w8T!3FwJ!QbqHTK?`2Po%M6g~pqqq^alpAkr=Hr@iE;Yrk}Vjn+g$O&UZ0~@1_Og z9Y(Bdl$Us5bt>=`F=HD^K%FJxkpB?<`_ke6=8D$Ii|+V~fp`BcepPefU$FK$vlqOt zGO(-LNOtu|E;j4v*9hzyH!L-Bm~Z=ae~KktXM-Dd!u%eHGkEeYSih2ByylCu^LF?P zNqiXipM=Y6DkG1S5_dS{MDRJmjQDHFNl8tQjj6=Q-sz#3e%i8G!K!DO+>p#K9vLBGBN&ttG8(rzOC$W4xwkCtLrr1_>Y4FxO4tvB|i z2vyq&o{h0P73(=r!31xe%84j$TLWcVXqrO%r1nQ|GOa8n5L-?`-n~ib082fm7(mvoZ~=hmJt$Z}i`#$% za+Y6PJ=Bl86^3dVscpj!L%#)`jHui!s_|;I{(D7HioQk1IL5uhh&W$YtJQk5+5Fv2 zXY*n-8eQAA>o~Ual*sVGR#{e7K;8$0g^2+whBs@`HV2Q@I;S)*xwRAa z&FRHMbf&1$1_Q6R{dIo^vHPKQck*wIFK&XX4DF3G10FvSsKXV zu~UI86hHZ_n==87d%b|-z`n69v$*r|k0kmR5=VgbcEj*I@53kz|3%;T{&5F9JsAbs zrdV82#tx#wf+0im)rxZ2{-vRSE9qG!KvbKVQA~^gNg~aM-%)ADnklS{o_dm| zTP6Kr*yn492X92=veiuex4y4;0ai=ozSC@308(}Q)G^ds3n>j7s;7b=;Gas%cF3zr zcgnAgSE~x&G1y8txVveZU9DED|9G*O|FJwr=jvk|<6$A0=WUv%i>j&?INiXAD)t&m z1K;<^GQf-%d=)`*fNH``S}?eR@O>v_3f%QQa$JW}o@~gmqR55eFYI6pXnIhU7E`a^ z<%&YbnNn6%4Blq56|I+|kvw0^C{x4*T(-;JzAkZ3it*m%n|i}NBh2p48m#S-WvWMq zWjhqa0d>1k)$0aD=(|%3C&s=_9^;n*uma0kdL35?r*l^__`)8@LZuA2r>7ylD z;xyHAy8=}O#x!-A^olYluWZW6BiHoEu|44c&ucMV#T9>GyG+fjQ)t=MtQO1QqgG8h zvi9zJN^l<-Z1+rT8+Yzwvf3IK1+Emp!ZyPopeTx%4OAwfJE^}t`-e~|+3j|VRG_UY zG}AQuEA#pM|23b_em2juIyZULVjbh5;W%#Sy6*Rwrty7MRfS-iF!^#Eo23SZrFs*J z$xmKXlw<`ZFcD>QVo^zmOIWboXxrse;CYnTnjcn{vzVQb&bM9m$n(9BI&qh}-I#pe zr83WGxm?qH3ZeU&h3@Rmi~3kFxnRlAi>JBzKI2`zEtY!dYp;ky)(h7>LSp9cDF!HNv!XXPZs_P?{oB-8Kh)Sc7h4$DP1)#l&99Efk#l z+M(YsC5`~=Ee0+e&$UmY&^wDlp9d$$fq9eiFOl?ceept@1p&CosWYpi1mBWri^ap58Xn^qGSto2_x+0?2!EUB1wV)hS-~!!Ti5q} z8!2g9`eCt&?p6Yrr_BrxNs zevT-PLkfI{7I{jWBxR7bUTwI=7seZU=BV z*o)aRUyA}np%QsM+tBQGMavmjCee!&EC_U#t^!!>2JcX@-4aewh~42?w*|;5VK@p# z7siz__2B3pcwBi1&FE~gVygzU&4G@TSu7=Q;2D!-Sem+!hsEnGe`ncd1bS^yv9}0P zKG}Y){#$!N$yF8W-+t_UAGLik?lxm!tJ{zoENk{(E~D-_!kiFQqNay5Vdzm51=InH6Tj?ES&%1?>g1E z<9(&K#X;!S3^jwLYzH{?*qHxG+Z3@~_&veZyk>;<``4(p4EpC177_qw!ZQ`AK+K{V zdRuT-;&U`+st1qND*#8kYOuZh-D=6|Ah=S$EBAXPa93$qogr)6R@}F5>bntDgLTDX zD(;g~fq#r+e1^#Le4Hf7f0^4t}t8G4#77b(pqYnsm!_Sl1L zK%B3l8-!=uDC=j77EHL%laK*cnp2S%Z0HN$y&!a{+YO=Xp}_Z;EP<^9Oh@O-B~MV$ z&|Ls5`3A>Zi;UNSF@`qU9vUuMNUv!gQ4j34W!nJHzUNe($Q|~(;VcR+o&kh5RQ-r8c6RzQ+#Q_E}RQWO6#1($ZII}U+Y}+%asy8*L z>WoXR!IFMCuz?VsObw6|+XOJO$dUe6%wA!~>PgaFR!IR3o}|@)2cJiuscQN#4cs)0 z(r%OFcI;N`X%C7XoGLiR~DRr6;#j(sLdYWu*K4sH7ZOx9k;>QEe5_zsg* z(@L*ovg&p>J1my|XeN^l>)#Y9>C3A$fwA41mT9@JV^>k&CjDOg_;l3!oufhj-|{{8 zWM|ipEc#oI5S%JYqst{wsRst+BPM|MgLF-LUtE8X}S13z< znX`D9{MnrH^8=wb#I*ps2JTs!V*;0xVQ;RyncG^$|k6{LCt8B-1svvZ-UN7hlhn;`6*N^@;o@;-w zcU#AJYjG60zr_GFLHf<}K-anuyf?ZYqyfu{Y5Ct*HG47TqN%j18dRx8~#VcURf zQDpH%2G1bVvB(WP^3ZG0bE(KvPA#Ts-WZOW71^#yaqLmQFT9m7p3SFQn$0u1xdq5t z(`vclG`jK*uaGbCj{cezhxcjD+eLz}+`xT{ZTI+EH6)lAinTxZB~?Kv zU#s_1Ow5J9p+PpPM5CbUbV7*TDGa=>ZLvY&F}}b!GFWdj!1h?E>afXo0cLD+)J>Zk zv+6B!651q4Rf$esf+3<-)t~@ZdfHHd0X;Q{eq`t=2C5&u#+dR)Doolv@D~rJ2J0&3 zt0hKl*s1!XNbQvvpc{RXNC&hB6`jFqgQR_N2ypC66CToGz4Gg5v3okZB^W)M&02-4 zz4W$vz;^eE>szm{-?ORoG2WTjJ;%$kg6QgbS(eX=qR7$oIm>beSls#2(Di_rz?A}E zr2t*BV*+m$M!*(X@WNulQQ=>Qbzs-PepnS4sfsNig21Lu*JmaR{Zt`hUndn!XDQ8Q zqMA??HY%aJuFifJ;xh{0zszVeRO-2%BdeRZHd9pmyR)}F&fR_Arv=+hLE>J>#S84wdW>UyhBJ2O zFUzuh-}iro=lS1jS+D#f;DOZVDp^jLb;p>ojz!14l*qByMLPEZ7)TeyyO zlwEznaRgXzINE2hZJQM+bv)b}U`dn90_`aZrtd{+5NRnP8W-(x1Tbmexc37rk>&%K zflzh5LK}+}rJF=n1l813El{t8+-(85Ob03vrMmD%TL#%&RDv{^m2z*v9VtNL)3q-> zs4sU2!0Z#b@2etwNUCjLI`2;ZL0DbD-P-eZ{jUz}ds}d?e@EJTuqLZ4%bga4$MoPa zK5ICR(+R`qCxRgSG26Dg+ijHBSS$4K0$>rn0EN+~>Ot6k>`M_g?OH0?cMuj0 zvL{$=tR?r6Me4ieqB@Y$KT8c{B)}3lO;ot3fqZ8*#op|Q%r)Sl4QclY)L#X#K2Nj- z@CdzFpxu7w5Fk-)mO@uh*i~#MnL^~$aMiav3nh;$R zAVfz%Q?**{#1v@y7yP1spf`zh_PczkvphoUf` zP81+rxJAY3zEzL$_TmVz-gIc!E5<#CZ5mwV;x77iF*5@2Bm3-0(Rr<c(W0?>mW)83jC^gUUx*V#p=82PQ8d&w8(*Xs1RY9_q5kh%umB!$r)`8_FfIF z_Az#CfVB^Vz4GhXQ(>sK&j3rZdhKnsL6)us(**9ykH|Jn(}td2zGJPgph3ixav?#}R9@flWn5N_PJ(5@}R?u`7d=iuHHBR`tHusfeZ8PmeP z$FeE(J&Hr0;t&}WG>SdO7a2!@^@c;g5&NENd!ExnYEaA)o1QbfH*BcJ!EW9CI#hnW z{hZETwZQ=2{8a^#G#nL9?xK=M=`}=!pXJh+B=?rw`XW|>fJ)u+gqOgFS;Td3YA0Z+*xi7OU`>R=& z|07h>zveC;;}~}$%d*vCvG}8_)#CT0Y5ED9yo+=;qxBqP^2?otk`sPB^}+X;$3I3 zzU=rc$3ua#dzNUbqWA}9dARqWy-^UjK^!@cd=Cxi)nZ3s=-ZAXzP6nB4LE;-B0nUKabM+ZePp0CfXvq$;J!sm?Ud&CH5fZJAN~)lRk(w?%(lq}&o6Y7= zB}wv82|tL|ejVc&uZs40lIMB8TrPeVAS+GNe;_6Zykt>TWx<+4K0igf8s%-ZNpo7K z1tlmv0iz72YYTv7k}p$9csQ=Z*8_y^s6OVlIp{M8Am%$1#R0|Lko?f+YYxuu09Uiw zf`QhqAC}mMrY~}10n_@FZ!lH&hSPqpiw_S9*4uz{&xY?jy}Rr_qtQmEB`dlSq7cb6 zEz3qiL(U)mbftsM*w)vuC@Svpz>usnv(yABh zYfd3P31k4607{SwaGjJdYNvAeeK`LwThO4D#yZJpgITbg(Xt7moQ1)8N-z9rlA##; z4RKtgp1?#;LvAIj9*vlDdryL4-$Q+*vL(W=SwZc%2!Z?k4X9;BXjN9FSyrMa+;+Q# z@c24OHh*$HpZ}H3W+zP)c$#l7nMFAY$1D}?T!+v=goZs0GD<`Kc$@aG7I41ebhIr&U zF5mRiM5G@V^EIs&Yf6%Y^0FYlgR?y0IEQ~_s0`|ZLTB&yJ>M``kSTz{@_o06q9E+| z;@{BiM)T<+{k_E|zdQ~|Z$FLz>n((7npPCY|HPo*`*(WX&WAzZ6^`v>hG~Q*k&CJ0 zmZT9Ud}j*rs7lq?b(gsU3#Gu5E^62PuMmor$%~u{5GIC6w(F6HS)?==h49f)+t5;s z`_haIW8}pzfREHxQ9(tPQl7ytN{G2lOE^Je_L^oHZIYB9aFZ6F$*S2Z(F9t|uD4r} zIn%)pph&?W2%pK|G=`{1k}WtS2y5dWog-5~QvswM`-GOsD1%QN8{1+%3Un#BH13?eZz`T(S*|@~ooOGNai%VJ2(6TC=G!#sq^UKa$z5B|}1{@SsrF$^LU9oj3xlw-69Tc%J)9qd58@bfWhhr?5<;kTh?N zh;W04`JVz0-~&O$-adwPh>B z^J@6T*rDk_asLp`@v={#?3uXJd4~n~&HDF`s~Cu+_#WU;y0{DWN>xXiRC2rO!@;bb z?9eU0AEk%EV_X#ZHNcf}-anQ_ALC8McDqGS6w9*g3hwPn4qzD4c0^v=xJJNWt=1VW zRvG_UV|0(k~fCeK=kya8mbXKzkybKaHv+gWKfD()OAa6y~Y>3Jmz2<#ZgW)k@P~ zL2CwJwl&DNEbGiP&0u$ZvAyGL@fdF)wuWJrhG7&2s!nj7DVA0hlt{L>%qvb00st)m zu+p5$$`f1R)(jRIu0w|7K)J*0cbbdI8naPc6$pT3QxG`R?ReDfdK83^1`utslBUdJ zZMbDlmZU5d03Z|ByDFC1J}@t~?|I`jnJUFBX)k=yTB9~`wWF<4`=(f{mOkx3CQzwj z`MB1dh?HnT)48#>f(JEnQNR%T6ooF^1pycz4*Z#)jX2Y^>yrD)rnBG^*N zGu}?*(b>s>E-o&pKNynd`V20RmPC7=WV2!Scs!Pi1+6zimjO)&z$8k`p*I7_VSrVa zCd+gv=Llhp3csFGw6HO@puWaIOg*p=n6cNE1KH2>}@L z1R{4%`xQL?G!-VIXoavO94)FZ!Ep~O;y0{?zR9r{5md73C;j?wwBGapOdpQ`sTO4N#FkVw`p{G&JNE= z3!*(w&bq9O4F{8CLyP&Grn52KTwT-ccubSYl=5Q3Ad9OSdBzPkNzLT8RBlUlo>$d< z(0Ey9Kt`F7QMqJP@bDD*K#}GX`(9TsvQA7ouyfjSR|=1#42Ddxhgl(*LH72N?3LaJ zQjh(E}kicMjj^jMGENi$kZ*4X1J;pIUN5GdMLC-*GFpOR|Ca&4~I+sFs zoPc0ip~r$ldjYdi6rSMvV1H4`inE=J>|#)gwmGc9Dv|Old0EeQsndyRFziu(*yZ*) zV6D)o9vZCWVnykC!-l4|FK3K(#g2YG>Y{9QfxPAO;hnqov>j>>IJK5)SBq6kztmCG zHnBU(Nh=O^bVth^7>>dZ%QIca;<_fi80sB7IA4i40<5bh0#MHi-9~HDx)?XA`=-d_ku3i}e3z z@6Uo|*|IG$XnOAvv72+w?eb=3WxggerFy(ly^>UoN=1o6RD&>qgg_V{{P2bGg<-}A z-?cK4je%YC zTUl+W<;p@aP6Vq4?FfS@W!vpdL`oBm#K6k;1Uus5 z?mBw0aNdyV+6E3}_I#fNLAZQ~-`5;-7-QOKSM6#R*>@ z_}y16wPi~kUv~m{upSqABnf5KaI`U);K(Gdtt+CYCX^n=QA&#?9NnML`IB>6t`@Z2 zqM>|6H#b{aqmmHqxvH8n)?rB#Y1=5ziTQ@^3?{EP1Dn*>k3mw8olqs3CfuO=>@*Ko zi!6@gaP%fKNBD3t1FQ!KW}70g7%D`!)q1u~4uAt&9aI1l05I5U07H_#Y8ZrJJ+9Jo zdJk$NVr8!YsGz+9dxZsm1AM9Y9qWil+%i)A4A<9SdA<6;A_akM7Tr*|i|J;&qpO=O zUEOSGb-JZ|k=bIHh!Rv5+5ID;B0w5 z6i``qT%iQO74KSFRso&XAuX$py?U(HssAiPwV?aihN?qO9J1p&(jWM2)@2@y9RpY2 zSIla;4m6$iQ?#g|6Cl$AJ{fqrfpj+ z47T_=)=_p;m4Ea7A6!P>?{+7*m!lX?1cY zhNG*T!dGG6G6x`wby#IdOR(q+uPV z@5H5@oNBU0P6vQ zXM`4D!G|QV)oF6y))Wdif8eXGf23I^{<9O?auA3YB+0Q=V!5Z)Jv!DHx(*^Lvi81@lGD@?YD;2?d zfl>S9lTYZA&%U4+udW!F0dPSS3t$N?2$(80=R}D91MD0YoF7+Xn_md>~NG4A~16OyI2xyuRzk9Ido4%4ziZZnOFIe0RB6jQO-c$u& zi{j{Bk*R8mGNkh{hUAnlRQ$O}yoa13*23QXetYZoTO5%tY)-pLDfN%2Z z-Y)j)G7#D-!+}AP^qiaKQzlEmQmidn`cxsY6_N^i%rX-~AnW`t&KCpPkWiv7ju^8D!xD;Fysz*lgCUyL$QZC4;T4 zJudd4YEcSau>c-S7FRx5M`D~GXiM@;oHKcG zilYBC&+|W@=lP$pDQ>v3!O=aH zKBJs!}AJJz6L(N<`(=v}<8unZ3Fs8W|=1mC#T2U$}sclI6h zZ3#7;RFMprA=VuC5Ppgpzuz4UsE9s4JA3l8Cr`x8*Z%$ut~pK*^@gK{imImTO+lA8 z1>J0G+JRwWlU-bQG9k=TFdXQ|8H#BzTIN(pDK?a1vX_vomq`m2tdDD^ghkA*qV*Om z`i}juP)L&X4x@IgbGt;`{;8b@jE_fHtUF<_2Lx)blPNs913#w3?l`B;^Ui4*jBuoY z2%Xu2FbbisL;5#g=Hclo|MuxBJ=^W-OSbXoC*3pHy6>0))RU6ofD55IEY?b~W~)1BRO;@}1z74djs@Tf08V_a^4>un%-D

)4(H2^)+R)0t%0(u4 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%0A~SX^_8t@M*u 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 oGMyl3XZio@|Mm~O^FO>Je50*O90G . errorCode: 0=ok, else worn-incorrectly/temporary. // The manual measurement is a *continuous stream* that warms up emitting bpm 0 for ~25s // before real readings — so a 0 with no error is warm-up, NOT a terminal "no reading". @@ -340,6 +345,23 @@ struct ColmiDecoder { return events } + /// `69 `: a value of 0 with no error is warm-up (the ring streams zeros + /// for ~25 s before real values), not a reading. + private static func decodeSpotVital(_ vital: SpotVital, errorCode: UInt8, raw: Int, now: Date) -> [RingDecodedEvent] { + if errorCode != 0 { return [.spotVitalNoReading(vital: vital, timestamp: now)] } + guard raw > 0 else { return [] } + return [.spotVitalSample(vital: vital, value: spotVitalValue(vital, raw: raw), timestamp: now)] + } + + /// A streamed on-demand value in its unit. Temperature is `raw / 10 + 20` °C, as QRing shows it + /// (`TemperatureActivity`: `value * 1.0f / 10 + 20`). + static func spotVitalValue(_ vital: SpotVital, raw: Int) -> Double { + switch vital { + case .temperature: return Double(raw) / 10 + 20 + case .hrv, .stress: return Double(raw) + } + } + static func sleepStage(_ type: UInt8) -> SleepStage { switch type { case ColmiCommandID.sleepLight: return .light diff --git a/PulseLoop/RingProtocol/ColmiEncoder.swift b/PulseLoop/RingProtocol/ColmiEncoder.swift index 4bbec61e..778f1a93 100644 --- a/PulseLoop/RingProtocol/ColmiEncoder.swift +++ b/PulseLoop/RingProtocol/ColmiEncoder.swift @@ -79,6 +79,19 @@ struct ColmiEncoder { [ColmiCommandID.manualHeartRate, enable ? 0x01 : 0x02] } + /// On-demand HRV / stress / temperature. Start is QRing's `StartHeartRateReq.getSimpleReq(type)` = + /// `[0x69, type, 0x25]`. The HRV and stress stops carry the last raw value the ring streamed + /// (`StopHeartRateReq.stopHrv(b)` / `stopPressure(b)`), so the ring's own log records it; the ring + /// echoes its final value back in its `0x6A` acknowledgement. Temperature does not: QRing's + /// `stopTemperatureCheck()` is a fixed `[0x6A, 0x0B, 0, 0]` at every call site in + /// `TemperatureActivity`, so `lastRaw` is ignored for it. + func spotVital(_ vital: SpotVital, enable: Bool, lastRaw: Int = 0) -> [UInt8] { + let type = ColmiCommandID.readingType(vital) + guard !enable else { return [ColmiCommandID.manualHeartRate, type, 0x25] } + let value: UInt8 = vital == .temperature ? 0 : UInt8(clamping: lastRaw) + return [ColmiCommandID.realtimeStop, type, value, 0x00] + } + func realtimeHeartRate(enable: Bool) -> [UInt8] { [ColmiCommandID.realtimeHeartRate, enable ? 0x01 : 0x02] } diff --git a/PulseLoop/RingProtocol/ColmiProtocol.swift b/PulseLoop/RingProtocol/ColmiProtocol.swift index f3b4911d..78cb431a 100644 --- a/PulseLoop/RingProtocol/ColmiProtocol.swift +++ b/PulseLoop/RingProtocol/ColmiProtocol.swift @@ -43,6 +43,9 @@ enum ColmiCommandID { static let syncActivity: UInt8 = 0x43 static let findDevice: UInt8 = 0x50 static let manualHeartRate: UInt8 = 0x69 + /// `CMD_STOP_REAL_TIME`: stops whatever `0x69` started — and with it the ring's whole realtime + /// engine (QRing `StopHeartRateReq`, opcode 106). + static let realtimeStop: UInt8 = 0x6a static let notification: UInt8 = 0x73 static let bigDataV2: UInt8 = 0xbc static let factoryReset: UInt8 = 0xff @@ -63,6 +66,23 @@ enum ColmiCommandID { static let bigDataSleep: UInt8 = 0x27 static let bigDataSpo2: UInt8 = 0x2a + // `0x69`/`0x6A` reading types for on-demand `SpotVital`s (QRing `StartHeartRateReq.getSimpleReq`). + static let readingTypeStress: UInt8 = 0x08 + static let readingTypeHRV: UInt8 = 0x0a + static let readingTypeTemperature: UInt8 = 0x0b + + static func readingType(_ vital: SpotVital) -> UInt8 { + switch vital { + case .hrv: return readingTypeHRV + case .stress: return readingTypeStress + case .temperature: return readingTypeTemperature + } + } + + static func spotVital(readingType: UInt8) -> SpotVital? { + SpotVital.allCases.first { self.readingType($0) == readingType } + } + // sleep stage types static let sleepLight: UInt8 = 0x02 static let sleepDeep: UInt8 = 0x03 diff --git a/PulseLoop/RingProtocol/ColmiSyncEngine.swift b/PulseLoop/RingProtocol/ColmiSyncEngine.swift index 1d44ae4c..92d476a6 100644 --- a/PulseLoop/RingProtocol/ColmiSyncEngine.swift +++ b/PulseLoop/RingProtocol/ColmiSyncEngine.swift @@ -389,6 +389,21 @@ final class ColmiSyncEngine: RingSyncEngine { writer?.enqueue(Data(encoder.manualHeartRate(enable: true))) } + // On-demand HRV / stress / temperature (`0x69` types 0a/08/0b) — QRing's manual measure screens. + var streamsSpotVitals: Bool { true } + + func startSpotVital(_ vital: SpotVital) { + writer?.enqueue(Data(encoder.spotVital(vital, enable: true))) + } + + /// `0x6A` stops the ring's whole realtime engine, the manual HR stream included, so drop that + /// bookkeeping with it; the coordinator restarts a running workout's stream right after. + func stopSpotVital(_ vital: SpotVital, settled: Double?) { + manualHRActive = false + let lastRaw = settled.map { Int($0.rounded()) } ?? 0 // ignored for temperature + writer?.enqueue(Data(encoder.spotVital(vital, enable: false, lastRaw: lastRaw))) + } + func syncVitalsHistory() { startVitalsBackfill() } diff --git a/PulseLoop/RingProtocol/RingBLEClient.swift b/PulseLoop/RingProtocol/RingBLEClient.swift index f7c2cf7d..279512dd 100644 --- a/PulseLoop/RingProtocol/RingBLEClient.swift +++ b/PulseLoop/RingProtocol/RingBLEClient.swift @@ -447,6 +447,21 @@ final class RingBLEClient: NSObject { activeSyncEngine = driver.makeSyncEngine() activeDeviceType = coordinatorType.deviceType activeCapabilities = coordinator.refinedCapabilities(bitmapDerived: lastKnownCapabilities) + .union(modelExtraCapabilities) + } + + /// The connected model's own capabilities beyond its family's (`WearableModel.extraCapabilities`). + /// + /// Granted only when the ring's advertised name identifies that model. `WearableModel.resolve` + /// falls back to the carousel choice (and state restoration to the remembered model), which is fine + /// for the name and art but not for features: a ring matched some other way while the carousel sits + /// on the Ring 2 Pro would otherwise get HRV / stress / temperature controls it was never shown to + /// support, each running its 75 s ceiling before failing. + private var modelExtraCapabilities: Set { + guard let model = WearableModel.model(advertisedName: activeAdvertisedName), + model.id == activeWearableModelID, + model.family == activeDeviceType else { return [] } + return model.extraCapabilities } /// Re-adopt the remembered ring's identity: its family **and** the exact catalog model. @@ -476,7 +491,7 @@ final class RingBLEClient: NSObject { /// churn the bus and the store for nothing. private func applySupportFunctions(_ derived: Set) { guard let coordinator = activeCoordinator, let type = activeDeviceType else { return } - let refined = coordinator.refinedCapabilities(bitmapDerived: derived) + let refined = coordinator.refinedCapabilities(bitmapDerived: derived).union(modelExtraCapabilities) // Remember the answer even when it changes nothing right now: this is what seeds the *next* // connect, before that connect's own bitmap has arrived (see `lastKnownCapabilities`). UserDefaults.standard.set(refined.csv, forKey: Self.lastCapabilitiesKey) diff --git a/PulseLoop/RingProtocol/RingEventBridge.swift b/PulseLoop/RingProtocol/RingEventBridge.swift index bd1d4ec8..ee06f4ee 100644 --- a/PulseLoop/RingProtocol/RingEventBridge.swift +++ b/PulseLoop/RingProtocol/RingEventBridge.swift @@ -162,7 +162,10 @@ enum RingEventBridge { /// This matters more for history than for live data: a ring replays its *entire* log on every sync /// and history rows upsert on (kind, timestamp), so one misdecoded record doesn't just flicker — /// it re-persists on every future sync until the ring forgets it. - private static func isPlausible(kind: MeasurementKind, value: Double) -> Bool { + /// + /// Also the band an on-demand spot reading settles within (`SpotVitalWindow`), so a streamed value + /// and a stored one can never be judged by two copies of the same ranges. + static func isPlausible(kind: MeasurementKind, value: Double) -> Bool { switch kind { case .heartRate: return hrRange.contains(Int(value)) case .spo2: return spo2Range.contains(Int(value)) diff --git a/PulseLoop/RingProtocol/RingProtocol.swift b/PulseLoop/RingProtocol/RingProtocol.swift index 31c41714..b55d06fc 100644 --- a/PulseLoop/RingProtocol/RingProtocol.swift +++ b/PulseLoop/RingProtocol/RingProtocol.swift @@ -97,6 +97,32 @@ struct RingPacket { } } +/// A vital the ring measures on demand by **streaming** values until it is stopped — QRing's manual +/// HRV, stress and temperature screens (`HrvActivity`, `DayPressureFragment`, `TemperatureActivity` +/// in decompiled-qring-official/). Distinct from the all-day history of the same kinds. +/// +/// Everything protocol-side that varies per vital lives here: the measurement kind it is stored as and +/// the capability that offers its control. +enum SpotVital: CaseIterable, Sendable { + case hrv, stress, temperature + + var kind: MeasurementKind { + switch self { + case .hrv: return .hrv + case .stress: return .stress + case .temperature: return .temperature + } + } + + var capability: WearableCapability { + switch self { + case .hrv: return .manualHrv + case .stress: return .manualStress + case .temperature: return .manualTemperature + } + } +} + enum RingDecodedEvent: Sendable { case activityUpdate(timestamp: Date, steps: Int, distanceMeters: Double, calories: Double) /// One intraday activity bucket (e.g. a Colmi quarter-hour history sample). Unlike the cumulative @@ -151,6 +177,14 @@ enum RingDecodedEvent: Sendable { /// that already said no for the full 45-second window before reporting a generic failure. case measurementRejected(mode: UInt8) case rwfitMeasurementStatus(type: UInt8, status: UInt8) + /// One streamed value of an on-demand `SpotVital` run (Colmi `0x69 00 `). Produces no + /// `PulseEvent`: the run's values converge on a reading, so storing each would leave a train of rows + /// that were never the user's reading. `RingSyncCoordinator` settles them off the raw-packet feed + /// and publishes the one reading. + case spotVitalSample(vital: SpotVital, value: Double, timestamp: Date) + /// The ring ended an on-demand `SpotVital` run with an error (not worn / no contact). A verdict on + /// the measurement, not data, so — like `.measurementRejected` — it produces no `PulseEvent`. + case spotVitalNoReading(vital: SpotVital, timestamp: Date) /// One frame of a CRP all-day "timing" vital timeline just landed. The ring returns a day in /// fixed-size frames and only sends the next one when asked, so `CRPSyncEngine.handle` uses this /// as a cursor: request `frameIndex + 1` until the vital's terminal frame (the vendor's sequential @@ -193,6 +227,8 @@ enum RingDecodedEvent: Sendable { case .wearingStatus: return "wearing_status" case .measurementRejected: return "measurement_rejected" case .rwfitMeasurementStatus: return "rwfit_measurement_status" + case .spotVitalSample: return "spot_vital_sample" + case .spotVitalNoReading: return "spot_vital_no_reading" case .timingHistoryFrame: return "timing_history_frame" case .timeSyncAck: return "time_sync_ack" case .commandAck: return "command_ack" diff --git a/PulseLoop/Services/RingSyncCoordinator.swift b/PulseLoop/Services/RingSyncCoordinator.swift index 569447fd..f74adcb1 100644 --- a/PulseLoop/Services/RingSyncCoordinator.swift +++ b/PulseLoop/Services/RingSyncCoordinator.swift @@ -186,7 +186,12 @@ final class RingSyncCoordinator { private(set) var hrState: MeasureState = .idle private(set) var spo2State: MeasureState = .idle - private(set) var hrvState: MeasureState = .idle + /// One state per `SpotVital`. HRV's is also `hrvState`, which the first-value HRV leg drives. + private(set) var spotVitalStates: [SpotVital: MeasureState] = [:] + private(set) var hrvState: MeasureState { + get { vitalState(.hrv) } + set { spotVitalStates[.hrv] = newValue } + } /// `.done` carries the systolic value; read `latestBloodPressureValue` for the full pair. private(set) var bpState: MeasureState = .idle /// Combined sweep (all vitals at once). `.done` carries HR; the caller keeps the full reading. @@ -238,6 +243,10 @@ final class RingSyncCoordinator { /// The samples of the HR measurement in flight, and the rule for whether they settled — see /// `HRSampleWindow`, which owns the warm-up echo and the consistency gate. private var hrWindow = HRSampleWindow() + /// The streamed values of an on-demand HRV / stress / temperature run — see `SpotVitalWindow`. + private var spotVitalWindow = SpotVitalWindow() + /// The ring ended the `SpotVital` run in flight with an error before any value arrived. + private var spotVitalNoReading: SpotVital? /// True once the current measurement has produced a real (post-warm-up) bpm. Drives the live value /// in the measurement sheet, and keeps a stale `latestHRValue` from passing for a fresh reading. var measurementReceivedReading: Bool { hrWindow.receivedReading } @@ -281,6 +290,9 @@ final class RingSyncCoordinator { /// HRV needs a stretch of beats to stabilize, so give it a longer on-finger window. (A ring without /// an HRV sensor no longer waits it out — it now refuses the `03 2f` start and we fail immediately.) private let hrvMeasureSeconds: UInt64 = 45 + /// Ceiling for a streamed HRV / stress / temperature run — QRing's `CountDownTimer(75000L, …)`. A + /// run normally ends ~30 s in, once the ring goes quiet (`SpotVitalWindow`). + private let spotVitalMeasureSeconds: UInt64 = 75 /// BP rides the same PPG warm-up as SpO2 and the ring's estimator settles slowly (observed: ~12 s). private let bpMeasureSeconds: UInt64 = 45 /// The combined sweep computes every metric, so give it the longest window (observed: the ring @@ -596,6 +608,9 @@ final class RingSyncCoordinator { /// the abort below: the `03 2f` refusal ends the measurement in the time one reply takes to arrive. @discardableResult func measureHRV() async -> Int? { + if engine?.streamsSpotVitals == true { + return await measureSpotVital(.hrv).map { Int($0.rounded()) } + } guard hrvState != .measuring else { return nil } if client.activeDeviceType == .rwfit, [hrState, spo2State, hrvState, bpState].contains(.measuring) { return nil } @@ -624,6 +639,60 @@ final class RingSyncCoordinator { return result } + func vitalState(_ vital: SpotVital) -> MeasureState { spotVitalStates[vital] ?? .idle } + + /// An on-demand HRV / stress / temperature run on a family that streams them (Colmi `0x69` types + /// 0a/08/0b — QRing's manual measure screens). Ends on `SpotVitalWindow`'s rule — the ring has gone + /// quiet after streaming — or at the ceiling, taking whatever last value arrived; fails on the + /// ring's not-worn error or a dropped link. The streamed values are never stored (they reach us only + /// as `.spotVitalSample` on the raw-packet feed); the one settled reading is published once at the + /// end, so it is stored as one row. + @discardableResult + func measureSpotVital(_ vital: SpotVital) async -> Double? { + guard vitalState(vital) != .measuring else { return nil } + spotVitalStates[vital] = .idle // no stale verdict on a refusal below + guard client.state == .connected, let engine, engine.streamsSpotVitals else { + spotVitalStates[vital] = .failed + return nil + } + // Refused during a workout: `0x69 ` takes over the ring's single realtime engine, so the + // workout would lose its live bpm for the whole run. + guard !workoutHRActive else { return nil } + spotVitalStates[vital] = .measuring + measureNotWorn = false + spotVitalNoReading = nil + spotVitalWindow.begin(vital) + engine.startSpotVital(vital) + + var aborted = false + for _ in 0..<(Int(spotVitalMeasureSeconds) * 2) { // 0.5 s granularity + if Task.isCancelled || spotVitalNoReading == vital { aborted = true; break } + if client.state != .connected { aborted = true; break } + // A workout started inside the run and now wants the realtime engine back. + if workoutHRActive { aborted = true; break } + if spotVitalWindow.isSettled(at: Date()) { break } + try? await Task.sleep(nanoseconds: 500_000_000) + } + let result = aborted ? nil : spotVitalWindow.settled + + // The stop hands the ring back the reading, as QRing's does, and also tears down the workout's + // realtime stream; bring that straight back. + self.engine?.stopSpotVital(vital, settled: result) + restartWorkoutHeartRateIfActive() + spotVitalStates[vital] = result.map { .done(Int($0.rounded())) } ?? .failed + if let result { + let now = Date() + let event: PulseEvent + switch vital { + case .hrv: event = .hrvSample(value: Int(result.rounded()), timestamp: now) + case .stress: event = .stressSample(value: Int(result.rounded()), timestamp: now) + case .temperature: event = .temperatureSample(celsius: result, timestamp: now) + } + await PulseEventBus.shared.publish(event) + } + return result + } + /// Spot blood-pressure reading. The engine starts the ring's BP mode (jring: `0x23 01`); the /// systolic/diastolic pair arrives together in the ring's combined-sensor packet, so we poll on /// the systolic value and read the pair. Capability-gated to `.manualBloodPressure`. @@ -759,8 +828,20 @@ final class RingSyncCoordinator { // `.measurementRejected` has no `PulseEvent` of its own — it is a verdict on a command, not // data — so the raw-packet feed (which carries every decoded frame) is where a measurement // hears the ring say no. - guard case let .measurementRejected(mode) = decoded else { break } - spot.noteRejected(mode: mode) + switch decoded { + case let .measurementRejected(mode): + spot.noteRejected(mode: mode) + case let .spotVitalSample(vital, value, timestamp): + if vitalState(vital) == .measuring { spotVitalWindow.collect(vital, value: value, at: timestamp) } + case let .spotVitalNoReading(vital, _): + // Only before any value: a late error must not turn a reading into a failure. + if vitalState(vital) == .measuring, !spotVitalWindow.receivedReading { + spotVitalNoReading = vital + measureNotWorn = true + } + default: + break + } default: mirrorLiveValue(event) } diff --git a/PulseLoop/Services/SpotVitalWindow.swift b/PulseLoop/Services/SpotVitalWindow.swift new file mode 100644 index 00000000..4f8139c8 --- /dev/null +++ b/PulseLoop/Services/SpotVitalWindow.swift @@ -0,0 +1,51 @@ +import Foundation + +/// The streamed values of one on-demand HRV / stress / temperature measurement, and the rule for when +/// they have settled into a reading. +/// +/// ## The vendor's rule +/// +/// QRing's three measure screens (`HrvActivity`, `DayPressureFragment`, `TemperatureActivity` in +/// decompiled-qring-official/) share one shape: a 75 s countdown, then every value above zero replaces +/// the one on screen and re-posts the finishing step one second ahead (`removeCallbacks` + +/// `postDelayed(…, 1000)`). The measurement therefore ends **one second after the ring stops +/// streaming**, on the last value it streamed. +/// +/// A Ring 2 Pro capture shows the ring doing its part: after ~25 s of zero-valued warm-up frames it +/// streams a value about every 0.5 s for a few seconds (HRV: eleven values over 5.5 s), then goes +/// quiet, and QRing stops ~1.2 s later. The ring's `0x6A` stop acknowledgement echoes that same last +/// value — so the last sample is also the ring's own answer. +struct SpotVitalWindow { + /// QRing's `postDelayed(…, 1000)`. + static let quietInterval: TimeInterval = 1 + + private var vital: SpotVital? + private var last: Double? + private var lastAt: Date? + + mutating func begin(_ vital: SpotVital) { + self.vital = vital + last = nil + lastAt = nil + } + + /// Keep `value` if it belongs to the run in flight and is plausible; returns whether it was kept. + @discardableResult + mutating func collect(_ vital: SpotVital, value: Double, at time: Date) -> Bool { + guard vital == self.vital, RingEventBridge.isPlausible(kind: vital.kind, value: value) else { return false } + last = value + lastAt = time + return true + } + + var receivedReading: Bool { last != nil } + + /// The last plausible value streamed, or nil if none arrived. + var settled: Double? { last } + + /// True once a value has arrived and the ring has been quiet for `quietInterval` since. + func isSettled(at now: Date) -> Bool { + guard last != nil, let lastAt else { return false } + return now.timeIntervalSince(lastAt) >= Self.quietInterval + } +} diff --git a/PulseLoop/Views/MeasurementDemoData.swift b/PulseLoop/Views/MeasurementDemoData.swift index c05fcea3..9e5c9f90 100644 --- a/PulseLoop/Views/MeasurementDemoData.swift +++ b/PulseLoop/Views/MeasurementDemoData.swift @@ -13,6 +13,8 @@ import Foundation enum MeasurementDemoData { struct Reading { var value: Int? + /// A reading with a decimal (temperature, °C), shown in place of `value`. + var decimal: Double? /// Diastolic, for blood pressure. var secondary: Int? /// Populated for the combined sweep. @@ -29,11 +31,21 @@ enum MeasurementDemoData { } switch kind { - case .hr, .spo2, .hrv: - let metric: MeasurementKind = kind == .hr ? .heartRate : (kind == .spo2 ? .spo2 : .hrv) + case .hr, .spo2, .hrv, .stress: + let metric: MeasurementKind = switch kind { + case .hr: .heartRate + case .spo2: .spo2 + case .stress: .stress + default: .hrv + } MetricsService.insertMockMeasurement(kind: metric, context: context) return Reading(value: latest(metric)) + case .temperature: + MetricsService.insertMockMeasurement(kind: .temperature, context: context) + let celsius = MetricsService.fetchMeasurements(context).first { $0.kind == .temperature }?.value + return Reading(value: nil, decimal: celsius) + case .bloodPressure: // BP is stored as two rows so each trends independently — mock both. MetricsService.insertMockMeasurement(kind: .bloodPressureSystolic, context: context) diff --git a/PulseLoop/Views/MeasurementKindPresentation.swift b/PulseLoop/Views/MeasurementKindPresentation.swift index 0f0072a4..5d6fe2d2 100644 --- a/PulseLoop/Views/MeasurementKindPresentation.swift +++ b/PulseLoop/Views/MeasurementKindPresentation.swift @@ -11,6 +11,8 @@ extension MeasurementSheet.Kind { case .hr: return "Heart Rate" case .spo2: return "Blood Oxygen" case .hrv: return "Heart Rate Variability" + case .stress: return "Stress" + case .temperature: return "Temperature" case .bloodPressure: return "Blood Pressure" case .vitals: return "Vitals" } @@ -21,6 +23,9 @@ extension MeasurementSheet.Kind { case .hr, .vitals: return "bpm" case .spo2: return "%" case .hrv: return "ms" + case .stress: return "/ 100" + // The sheet shows the user's unit (`UnitsFormatter.temperatureUnit`); this is the stored one. + case .temperature: return "°C" case .bloodPressure: return "mmHg" } } @@ -30,6 +35,8 @@ extension MeasurementSheet.Kind { case .hr, .vitals: return PulseColors.heartRate case .spo2: return PulseColors.spo2 case .hrv: return PulseColors.hrv + case .stress: return PulseColors.stress + case .temperature: return PulseColors.temperature case .bloodPressure: return PulseColors.bloodPressure } } @@ -39,6 +46,8 @@ extension MeasurementSheet.Kind { case .hr, .vitals: return "heart.fill" case .spo2: return "lungs.fill" case .hrv: return "waveform.path.ecg" + case .stress: return "brain.head.profile" + case .temperature: return "thermometer.medium" case .bloodPressure: return "heart.text.square" } } @@ -49,6 +58,8 @@ extension MeasurementSheet.Kind { case .hr: return "Rest your wrist on a flat surface and keep still." case .spo2: return "Keep the ring pressed firmly to your skin and breathe normally." case .hrv: return "Sit still and breathe normally — HRV needs a steady stretch of beats." + case .stress: return "Sit still and breathe normally — stress is read from a steady stretch of beats." + case .temperature: return "Keep the ring snug and your hand still." case .bloodPressure: return "Sit upright, rest your hand at heart height, and stay still." case .vitals: return "Sit upright, rest your hand at heart height, and stay still. This takes about a minute." } @@ -60,6 +71,8 @@ extension MeasurementSheet.Kind { case .hr: return "Finding your pulse…" case .spo2: return "Reading blood oxygen…" case .hrv: return "Reading heart rate variability…" + case .stress: return "Measuring stress…" + case .temperature: return "Measuring temperature…" case .bloodPressure: return "Measuring blood pressure…" case .vitals: return "Measuring your vitals…" } @@ -76,6 +89,10 @@ extension MeasurementSheet.Kind { return "Couldn't get a blood-oxygen reading. Wear the ring snugly and keep still, then try again." case .hrv: return "Couldn't get an HRV reading. Wear the ring snugly, keep still, and try again." + case .stress: + return "Couldn't get a stress reading. Wear the ring snugly, keep still, and try again." + case .temperature: + return "Couldn't get a temperature reading. Wear the ring snugly, keep still, and try again." case .bloodPressure: return "Couldn't get a blood-pressure reading. Wear the ring snugly, rest your hand at heart height, and try again." case .vitals: diff --git a/PulseLoop/Views/MeasurementModal.swift b/PulseLoop/Views/MeasurementModal.swift index d13ef0e3..0015d92a 100644 --- a/PulseLoop/Views/MeasurementModal.swift +++ b/PulseLoop/Views/MeasurementModal.swift @@ -1,4 +1,5 @@ import SwiftUI +import SwiftData import Combine #if canImport(UIKit) import UIKit @@ -22,7 +23,7 @@ import UIKit struct MeasurementSheet: View { /// `.vitals` is one sweep that returns every metric the ring computes (jring's `0x24` packet); /// the rest are single-metric spot readings on devices that measure one thing at a time. - enum Kind: Hashable { case hr, spo2, hrv, bloodPressure, vitals } + enum Kind: Hashable { case hr, spo2, hrv, bloodPressure, vitals, stress, temperature } /// The measurement lifecycle. `searching` is the working state — counting down (HR) or up (rest). enum Stage { case preparing, searching, locking, result, error } @@ -35,10 +36,13 @@ struct MeasurementSheet: View { @Environment(RingBLEClient.self) private var ble @Environment(RingSyncCoordinator.self) private var coordinator @Environment(\.accessibilityReduceMotion) private var reduceMotion + /// For the user's temperature unit — the one reading shown in something other than its stored unit. + @Query private var profiles: [UserProfile] // MARK: State @State private var stage: Stage = .preparing - @State private var value: Int? + /// A `Double` because temperature has a decimal; every other kind holds a whole number. + @State private var value: Double? /// Diastolic, for blood pressure — the only single reading that is a pair. @State private var secondaryValue: Int? /// Populated for `.vitals`: every metric the sweep returned. @@ -77,7 +81,8 @@ struct MeasurementSheet: View { private var color: Color { kind.tint } private var name: String { kind.title } - private var unit: String { kind.unit } + private var units: UnitsPreference { profiles.first?.units ?? .metric } + private var unit: String { kind == .temperature ? UnitsFormatter.temperatureUnit(units) : kind.unit } private var instruction: String { kind.instruction } /// The one measurement with a fixed, known duration — so the only one we can honestly count down. @@ -93,8 +98,10 @@ struct MeasurementSheet: View { /// The big number in the ring. Blood pressure shows the systolic/diastolic pair. private var readingText: String? { guard let value else { return nil } - if kind == .bloodPressure, let secondaryValue { return "\(value)/\(secondaryValue)" } - return "\(value)" + if kind == .temperature { return UnitsFormatter.temperature(celsius: value, units: units).value } + let whole = Int(value.rounded()) + if kind == .bloodPressure, let secondaryValue { return "\(whole)/\(secondaryValue)" } + return "\(whole)" } /// Explicit Done (vs auto-dismiss) is required under VoiceOver or Switch Control — and for the @@ -469,15 +476,17 @@ struct MeasurementSheet: View { return } - let result: Int? + let result: Double? switch kind { - case .hr: result = await coordinator.measureHR() - case .spo2: result = await coordinator.measureSpO2() - case .hrv: result = await coordinator.measureHRV() + case .hr: result = await coordinator.measureHR().map(Double.init) + case .spo2: result = await coordinator.measureSpO2().map(Double.init) + case .hrv: result = await coordinator.measureHRV().map(Double.init) + case .stress: result = await coordinator.measureSpotVital(.stress) + case .temperature: result = await coordinator.measureSpotVital(.temperature) case .bloodPressure: let reading = await coordinator.measureBloodPressure() secondaryValue = reading?.diastolic - result = reading?.systolic + result = (reading?.systolic).map(Double.init) case .vitals: return // handled above } if Task.isCancelled { return } @@ -507,7 +516,7 @@ struct MeasurementSheet: View { if kind == .vitals { await revealVitals() } else { - await reveal(demo.value) + await reveal(demo.decimal ?? demo.value.map(Double.init)) } } @@ -526,7 +535,7 @@ struct MeasurementSheet: View { /// Land a finished single-metric reading: fill the ring, show the number, and (unless the user is /// on VoiceOver) close the sheet behind them. @MainActor - private func reveal(_ result: Int?) async { + private func reveal(_ result: Double?) async { if Task.isCancelled { return } guard let result else { enterError(); return } // A BP reading without its diastolic half is not a usable reading. diff --git a/PulseLoop/Views/VitalsView.swift b/PulseLoop/Views/VitalsView.swift index 9f6cfbc8..cfadaf77 100644 --- a/PulseLoop/Views/VitalsView.swift +++ b/PulseLoop/Views/VitalsView.swift @@ -96,10 +96,13 @@ struct VitalsView: View { (.manualHeartRate, "Measure HR", .hr), (.manualSpo2, "Measure SpO₂", .spo2), (.manualHrv, "Measure HRV", .hrv), + (.manualStress, "Measure Stress", .stress), + (.manualTemperature, "Measure Temp", .temperature), ] let available = spots.filter { caps.contains($0.0) } if !available.isEmpty { - LazyVGrid(columns: Array(repeating: GridItem(.flexible(), spacing: 8), count: available.count), spacing: 8) { + // At most three to a row: a Ring 2 Pro offers five, which would not fit on one line. + LazyVGrid(columns: Array(repeating: GridItem(.flexible(), spacing: 8), count: min(available.count, 3)), spacing: 8) { ForEach(available, id: \.2) { _, label, kind in QuickActionButton(label: label, accent: kind == .hr) { measuring = kind } } diff --git a/PulseLoop/Wearables/WearableCapability.swift b/PulseLoop/Wearables/WearableCapability.swift index 899e22d6..d60dbf7b 100644 --- a/PulseLoop/Wearables/WearableCapability.swift +++ b/PulseLoop/Wearables/WearableCapability.swift @@ -53,6 +53,12 @@ enum WearableCapability: String, CaseIterable, Codable, Sendable { // `0xbc 0x2a`). Drives the workout vitals plan: a device with no `manualSpo2` but with this // capability shows the latest logged value instead of pretending it can spot-measure. case spo2History + + // On-demand stress and temperature, streamed until stopped like on-demand HRV on the Colmi Ring 2 + // Pro (`0x69` types `08`/`0b`, QRing's manual measure screens). Granted per model, never per family + // (`WearableModel.extraCapabilities`): nothing on the wire says which Colmi rings support them. + case manualStress + case manualTemperature } extension Set where Element == WearableCapability { diff --git a/PulseLoop/Wearables/WearableDriver.swift b/PulseLoop/Wearables/WearableDriver.swift index ac6998dd..8b87b27b 100644 --- a/PulseLoop/Wearables/WearableDriver.swift +++ b/PulseLoop/Wearables/WearableDriver.swift @@ -215,6 +215,12 @@ protocol RingSyncEngine: AnyObject { /// (YCBT) implement these; the default is a no-op (see the extension below). func startHRV() func stopHRV() + /// True when this family measures HRV / stress / temperature on demand by streaming values until + /// stopped (`startSpotVital`) rather than through `startHRV`'s first-value poll. Default false. + var streamsSpotVitals: Bool { get } + func startSpotVital(_ vital: SpotVital) + /// Stop what `startSpotVital` began; `settled` is the reading the app settled on (nil = none). + func stopSpotVital(_ vital: SpotVital, settled: Double?) func findDevice() func setGoal(steps: Int) @@ -280,6 +286,11 @@ extension RingSyncEngine { func startHRV() {} func stopHRV() {} + /// Default: no family but Colmi streams on-demand HRV / stress / temperature. + var streamsSpotVitals: Bool { false } + func startSpotVital(_ vital: SpotVital) {} + func stopSpotVital(_ vital: SpotVital, settled: Double?) {} + /// Default: devices without a blood-pressure sweep (Colmi) have nothing to measure. func startBloodPressure() {} func stopBloodPressure() {} diff --git a/PulseLoop/Wearables/WearableModel.swift b/PulseLoop/Wearables/WearableModel.swift index 7a7ca499..30745b4e 100644 --- a/PulseLoop/Wearables/WearableModel.swift +++ b/PulseLoop/Wearables/WearableModel.swift @@ -33,6 +33,13 @@ struct WearableModel: Identifiable { /// indistinguishable from jring until GATT discovery, so its explicit card accepts only the two /// classifications that can legitimately describe that hardware (`.jring` and `.crp`). var forcedFamilyScanMatches: Set = [] + /// Capabilities this model has beyond its family coordinator's, added to the connected ring's set + /// when this model is resolved — for features the family's protocol carries but nothing on the wire + /// says a given ring supports (QRing decides those from a server-side per-model feature list, not + /// from the `0x3C` reply). Granted only when the ring's advertised name identifies this model, + /// never from the carousel fallback (`RingBLEClient.modelExtraCapabilities`). Add a model only once + /// it is shown to work on real hardware. + var extraCapabilities: Set = [] /// Maturity of this model's driver, mirrored from its `family` (the real source of truth). var supportLevel: WearableSupportLevel { family.supportLevel } @@ -159,6 +166,14 @@ extension WearableModel { "colmi-r11", "Colmi R11", brand: "Colmi", pattern: "^R11C_[0-9A-F]{4}$", imageName: "yawell-r11" ) static let colmiR12 = colmiFamily("colmi-r12", "Colmi R12", brand: "Colmi", pattern: "^COLMI R12_.*") + /// Advertises its full marketing name with no `_` serial (hardware capture, 2026-10-03) and + /// reports hardware `RY10H…`. QRing drives it over the same UART/big-data pair as the rest of this + /// family and does not OS-bond it. On-demand HRV / stress / temperature (`0x69` types 0a/08/0b) + /// were captured from QRing on it and verified on hardware in the Android port (PulseLoopAndroid #100). + static let colmiRing2Pro = colmiFamily( + "colmi-ring-2-pro", "Colmi Ring 2 Pro", brand: "Colmi", pattern: "^COLMI Ring 2 Pro$", + extraCapabilities: [.manualHrv, .manualStress, .manualTemperature] + ) /// The R99 — the one SmartHealth-Colmi we have actually looked at (the owner's, captured with nRF /// Connect as `R99 54DC`). It stays under the **Colmi** brand tab because that is where its owner @@ -275,14 +290,16 @@ extension WearableModel { _ name: String, brand: String, pattern: String, - imageName: String? = nil + imageName: String? = nil, + extraCapabilities: Set = [] ) -> WearableModel { // Asset-catalog image name matches the model id (see PulseLoop/Assets.xcassets). WearableModel( id: id, displayName: name, brand: brand, family: .colmiR02, tint: PulseColors.hrv, blurb: qringBlurb, advertisedNamePatterns: [pattern], imageName: imageName ?? id, - appVariants: colmiAppVariants + appVariants: colmiAppVariants, + extraCapabilities: extraCapabilities ) } @@ -378,7 +395,7 @@ extension WearableModel { /// alphabetically, so this array's order is not user-visible. static let catalog: [WearableModel] = [ jring, - colmiR02, colmiR03, colmiR06, colmiR07, colmiR08, colmiR09, colmiR10, colmiR11, colmiR12, + colmiR02, colmiR03, colmiR06, colmiR07, colmiR08, colmiR09, colmiR10, colmiR11, colmiR12, colmiRing2Pro, colmiR99, yawellR05, yawellR10, yawellR11, h59, // Ahead of the YCBT siblings: `model(advertisedName:)` takes the first pattern that matches, and diff --git a/PulseLoopTests/ColmiDecoderTests.swift b/PulseLoopTests/ColmiDecoderTests.swift index 05589780..6598b3b2 100644 --- a/PulseLoopTests/ColmiDecoderTests.swift +++ b/PulseLoopTests/ColmiDecoderTests.swift @@ -270,6 +270,27 @@ final class ColmiDecoderTests: XCTestCase { XCTAssertEqual(stages.filter { $0 == .rem }.count, 30) } + /// A Ring 2 Pro full night, captured 2026-10-07 09:33 (HCI snoop, PulseLoop Android sync). A session + /// over 180 minutes lands on the main-sleep action (`0x27`); Android and QRing both showed it as + /// 2:30 AM to 9:14 AM, 6h 44m, with this exact stage split. + func testRing2ProCapturedNightDecodes() { + let payload: [UInt8] = [ + 0x01, 0x00, 0x22, 0x96, 0x00, 0x2a, 0x02, + 0x02, 0x24, 0x03, 0x1e, 0x02, 0x0f, 0x04, 0x11, 0x02, 0x21, 0x03, 0x10, 0x02, 0x17, + 0x04, 0x13, 0x02, 0x33, 0x03, 0x0b, 0x02, 0x38, 0x04, 0x11, 0x02, 0x20, 0x03, 0x18, + 0x02, 0x18, + ] + let events = decoder.decodeBigData(bigData(type: ColmiCommandID.bigDataSleep, payload: payload), calendar: calendar) + guard events.count == 1, case let .sleepTimeline(start, stages) = events[0] else { + return XCTFail("expected one sleepTimeline, got \(events.map(\.kind))") + } + XCTAssertEqual(start, calendar.date(byAdding: .minute, value: 150, to: calendar.startOfDay(for: Date()))) + XCTAssertEqual(stages.count, 404) + XCTAssertEqual(stages.filter { $0 == .light }.count, 270) + XCTAssertEqual(stages.filter { $0 == .deep }.count, 81) + XCTAssertEqual(stages.filter { $0 == .rem }.count, 53) + } + // MARK: Reassembly across split notifications (via the driver) @MainActor @@ -405,6 +426,55 @@ final class ColmiDecoderTests: XCTestCase { XCTAssertFalse(events.contains { if case .heartRateSample = $0 { return true }; return false }) } + // MARK: On-demand HRV / stress / temperature (Ring 2 Pro, QRing capture) + + func testSpotVitalFramesDecodeToTheirVitalInItsUnit() throws { + func sample(_ hex: String) throws -> (SpotVital, Double) { + let events = decoder.decodeNormal(try Data(hexString: hex)) + guard case let .spotVitalSample(vital, value, _) = events.first, events.count == 1 else { + throw NSError(domain: "ColmiDecoderTests", code: 0, userInfo: [ + NSLocalizedDescriptionKey: "expected one spotVitalSample, got \(events.map(\.kind))", + ]) + } + return (vital, value) + } + // Frames as the Ring 2 Pro streamed them to QRing: 69 00 . + let hrv = try sample(ColmiPacket.frame([0x69, 0x0a, 0x00, 0x2b]).hexString) + XCTAssertEqual(hrv.0, .hrv); XCTAssertEqual(hrv.1, 43) + let stress = try sample(ColmiPacket.frame([0x69, 0x08, 0x00, 0x1e]).hexString) + XCTAssertEqual(stress.0, .stress); XCTAssertEqual(stress.1, 30) + // raw 0xa8 = 168 → 168 / 10 + 20, as QRing's TemperatureActivity shows it. + let temp = try sample("690b00a800000000000000000000001c") + XCTAssertEqual(temp.0, .temperature); XCTAssertEqual(temp.1, 36.8, accuracy: 1e-9) + } + + func testSpotVitalWarmUpDecodesToNothingAndAnErrorToNoReading() throws { + XCTAssertTrue(decoder.decodeNormal(try Data(hexString: "690a0000000000000000000000000073")).isEmpty) + XCTAssertTrue(decoder.decodeNormal(try Data(hexString: "690b0000000000000000000000000074")).isEmpty) + let error = decoder.decodeNormal(ColmiPacket.frame([0x69, 0x08, 0x01])) + guard case let .spotVitalNoReading(vital, _) = error.first else { return XCTFail("\(error.map(\.kind))") } + XCTAssertEqual(vital, .stress) + } + + func testHeartRateStreamFrameStillDecodesAsHeartRate() throws { + let events = decoder.decodeNormal(try Data(hexString: "690100590000000000000000000000c3")) + guard case let .heartRateSample(bpm, _) = events.first else { return XCTFail("\(events.map(\.kind))") } + XCTAssertEqual(bpm, 89) + } + + func testSpotVitalStartAndStopFramesMatchQRing() { + let encoder = ColmiEncoder() + // Start = StartHeartRateReq.getSimpleReq(type) as captured: 69 0a 25 / 69 08 25 / 69 0b 25. + XCTAssertEqual(encoder.spotVital(.hrv, enable: true), [0x69, 0x0a, 0x25]) + XCTAssertEqual(encoder.spotVital(.stress, enable: true), [0x69, 0x08, 0x25]) + XCTAssertEqual(encoder.spotVital(.temperature, enable: true), [0x69, 0x0b, 0x25]) + // HRV and stress stops hand the ring back its reading: captured `6a0a2b…` after an HRV of 43. + XCTAssertEqual(encoder.spotVital(.hrv, enable: false, lastRaw: 43), [0x6a, 0x0a, 0x2b, 0x00]) + XCTAssertEqual(encoder.spotVital(.stress, enable: false, lastRaw: 50), [0x6a, 0x08, 0x32, 0x00]) + // Temperature's never does: QRing's stopTemperatureCheck() = 6a 0b 00 00. + XCTAssertEqual(encoder.spotVital(.temperature, enable: false, lastRaw: 168), [0x6a, 0x0b, 0x00, 0x00]) + } + func testManualHeartRateOkAndError() { // ok: 69 00 00 let okFrame = ColmiPacket.frame([ColmiCommandID.manualHeartRate, 0, 0, 72]) diff --git a/PulseLoopTests/PairingMatchingTests.swift b/PulseLoopTests/PairingMatchingTests.swift index 3e6a7550..a37d15f5 100644 --- a/PulseLoopTests/PairingMatchingTests.swift +++ b/PulseLoopTests/PairingMatchingTests.swift @@ -339,6 +339,7 @@ final class PairingMatchingTests: XCTestCase { "COLMI R10_xyz": "colmi-r10", "R11C_BEEF": "colmi-r11", "COLMI R12_x": "colmi-r12", + "COLMI Ring 2 Pro": "colmi-ring-2-pro", "R99 54DC": "colmi-r99", "R05_1A2B": "yawell-r05", "R10_DEAD": "yawell-r10", @@ -350,6 +351,16 @@ final class PairingMatchingTests: XCTestCase { } } + /// The Ring 2 Pro's on-demand HRV / stress / temperature are a per-model grant on top of the Colmi + /// family's baseline, and the family itself offers none of the three. + func testRing2ProCarriesItsOnDemandVitals() { + XCTAssertEqual(WearableModel.colmiRing2Pro.family, .colmiR02) + XCTAssertEqual(WearableModel.colmiRing2Pro.extraCapabilities, [.manualHrv, .manualStress, .manualTemperature]) + XCTAssertTrue(ColmiCoordinator().capabilities.isDisjoint(with: [.manualHrv, .manualStress, .manualTemperature])) + // A serial-suffixed name is some other product, not this one. + XCTAssertNotEqual(WearableModel.model(advertisedName: "COLMI Ring 2 Pro_AB12")?.id, "colmi-ring-2-pro") + } + func testDetectedModelOverridesCarouselSelection() { let model = WearableModel.resolve( advertisedName: "COLMI R10_xyz", diff --git a/PulseLoopTests/SpotVitalWindowTests.swift b/PulseLoopTests/SpotVitalWindowTests.swift new file mode 100644 index 00000000..4edaa8c9 --- /dev/null +++ b/PulseLoopTests/SpotVitalWindowTests.swift @@ -0,0 +1,47 @@ +import XCTest +@testable import PulseLoop + +/// `SpotVitalWindow` settles an on-demand HRV / stress / temperature run the way QRing does: on the last +/// plausible value, one second after the ring stops streaming. +final class SpotVitalWindowTests: XCTestCase { + private let t0 = Date(timeIntervalSince1970: 1_000_000) + + func testSettlesOnTheLastValueOneSecondAfterTheRingGoesQuiet() { + var window = SpotVitalWindow() + window.begin(.hrv) + for (i, ms) in [41.0, 44, 43].enumerated() { + window.collect(.hrv, value: ms, at: t0.addingTimeInterval(Double(i) * 0.5)) + } + let last = t0.addingTimeInterval(1) + XCTAssertFalse(window.isSettled(at: last.addingTimeInterval(0.9))) + XCTAssertTrue(window.isSettled(at: last.addingTimeInterval(1))) + XCTAssertEqual(window.settled, 43) + } + + func testNothingSettlesBeforeAValueArrives() { + var window = SpotVitalWindow() + window.begin(.stress) + XCTAssertFalse(window.isSettled(at: t0.addingTimeInterval(60))) + XCTAssertNil(window.settled) + XCTAssertFalse(window.receivedReading) + } + + func testDropsImplausibleValuesAndValuesFromAnotherVital() { + var window = SpotVitalWindow() + window.begin(.temperature) + XCTAssertFalse(window.collect(.temperature, value: 20, at: t0)) // raw 0 would decode to 20 °C + XCTAssertFalse(window.collect(.hrv, value: 36.8, at: t0)) + XCTAssertFalse(window.receivedReading) + XCTAssertTrue(window.collect(.temperature, value: 36.8, at: t0)) + XCTAssertEqual(window.settled, 36.8) + } + + func testBeginClearsThePreviousRun() { + var window = SpotVitalWindow() + window.begin(.stress) + window.collect(.stress, value: 43, at: t0) + window.begin(.stress) + XCTAssertNil(window.settled) + XCTAssertFalse(window.isSettled(at: t0.addingTimeInterval(10))) + } +} diff --git a/docs/hardware/colmi.md b/docs/hardware/colmi.md index bf1dbe5b..4923cc90 100644 --- a/docs/hardware/colmi.md +++ b/docs/hardware/colmi.md @@ -75,6 +75,7 @@ A SmartHealth-flavoured unit speaks none of this — see | **R09** | Realtek RTL8762 | BLE 5.0 | Varies | Unknown | No | Unknown | | | **R10** | RTL8762 ESF | BLE 5.0 | 17 mAh | 5ATM | No | Vcare VC30F + STK8321 | Charging case: 200 mAh | | **R12** | Realtek RTL8762 | BLE 5.0 | 15/18 mAh | IP68 + 1ATM | Yes | Vcare VC30F + ST LIS2DOC | Newest (2025), 4g weight | +| **Ring 2 Pro** | Realtek Bee (firmware `RY10HCR_*`) | BLE | Unknown | Unknown | No | LIS3DH + PPG | Advertises `COLMI Ring 2 Pro` (no serial suffix). On-demand HRV / stress / temperature — see [below](#colmi-ring-2-pro) | ### Yawell-branded QRing models @@ -101,6 +102,25 @@ but speaks the same Nordic-UART QRing protocol. It pairs with both the **Da Ring PulseLoop matches R11 rings via the `R11C?_[0-9A-F]{4}$` pattern in the Colmi QRing driver. Capabilities should match the R10 (same VC30F + STK8321 sensor pair). +## Colmi Ring 2 Pro + +Same QRing UART + big-data protocol as the R02 family, so it rides the Colmi driver; QRing does not +OS-bond it. Verified on hardware in the Android port (PulseLoopAndroid #100); the iOS port is +unit-tested against the same captures but has not been run against the ring. + +- **On-demand HRV, stress and temperature** (`WearableModel.extraCapabilities`, granted only when the + advertised name matches). QRing's manual measures: start `69 25` with type `0a` HRV, `08` + stress, `0b` temperature; the ring streams `69 ` (value 0 = warm-up, ~25 s), + then goes quiet. The reading is the last value, settled one second after the stream stops + (`SpotVitalWindow`, 75 s ceiling). Stop is `6a 00` for HRV and stress, and a fixed + `6a 0b 00 00` for temperature (`StopHeartRateReq.stopTemperatureCheck`). Temperature is + `raw / 10 + 20` °C. +- **Sleep.** A session of 180 minutes or less is filed under the nap action (`bc 3e`) with main sleep + (`bc 27`) left empty; longer sessions land on `bc 27`, which iOS decodes (pinned by + `testRing2ProCapturedNightDecodes`). **iOS does not request or decode `bc 3e`**, so short sleeps on + this ring are not imported on iOS yet. Firmware analysis shows light/deep/REM are generated with + `rand()`; only the asleep/awake boundaries come from the sensors. + ## Sensors ### Vcare VC30F From 727d4bd1d3aac1083bcffb30b1b6975cb25f5f72 Mon Sep 17 00:00:00 2001 From: Saksham Bhutani Date: Wed, 14 Oct 2026 16:22:10 -0400 Subject: [PATCH 2/4] fix(colmi): keep Ring 2 Pro extra capabilities across BLE state restoration Co-Authored-By: Claude Opus 5.5 --- PulseLoop/RingProtocol/RingBLEClient.swift | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PulseLoop/RingProtocol/RingBLEClient.swift b/PulseLoop/RingProtocol/RingBLEClient.swift index 279512dd..6cf238e2 100644 --- a/PulseLoop/RingProtocol/RingBLEClient.swift +++ b/PulseLoop/RingProtocol/RingBLEClient.swift @@ -474,8 +474,11 @@ final class RingBLEClient: NSObject { func adoptRememberedIdentity() { // The remembered family already *is* the user's choice — `beginConnect` persisted whichever // coordinator it selected — so a restored session re-adopts the right driver for free. - installDriver(Self.coordinatorType(preferredFamily: nil, autoMatched: lastKnownDeviceType)) + // Name and model go first: `installDriver` grants per-model extras only when the ring's own + // (here: cached GAP) name identifies the remembered model (`modelExtraCapabilities`). + activeAdvertisedName = peripheral?.name activeWearableModelID = lastKnownWearableModelID + installDriver(Self.coordinatorType(preferredFamily: nil, autoMatched: lastKnownDeviceType)) } /// Fold the ring's self-reported capability bitmap into the active capability set. From cfac83813743c57e3e673a622b3661111126d505 Mon Sep 17 00:00:00 2001 From: Saksham Bhutani Date: Wed, 14 Oct 2026 16:22:23 -0400 Subject: [PATCH 3/4] fix(colmi): refuse an on-demand vital while another spot measurement is running Co-Authored-By: Claude Opus 5.5 --- PulseLoop/Services/RingSyncCoordinator.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/PulseLoop/Services/RingSyncCoordinator.swift b/PulseLoop/Services/RingSyncCoordinator.swift index f74adcb1..620c3a73 100644 --- a/PulseLoop/Services/RingSyncCoordinator.swift +++ b/PulseLoop/Services/RingSyncCoordinator.swift @@ -658,6 +658,10 @@ final class RingSyncCoordinator { // Refused during a workout: `0x69 ` takes over the ring's single realtime engine, so the // workout would lose its live bpm for the whole run. guard !workoutHRActive else { return nil } + // Refused while another spot measurement holds the sensor (Android's `measureVitalOnly`): each + // run's `0x6A` stop tears down the ring's one realtime engine, ending the other run with it. + guard ![hrState, spo2State, bpState].contains(.measuring), + !spotVitalStates.values.contains(.measuring) else { return nil } spotVitalStates[vital] = .measuring measureNotWorn = false spotVitalNoReading = nil From 49a704b73dbfef228cb6e756b34b26abab8b2775 Mon Sep 17 00:00:00 2001 From: Saksham Bhutani Date: Wed, 14 Oct 2026 16:26:00 -0400 Subject: [PATCH 4/4] test(colmi): pin that no catalog model but the Ring 2 Pro grants extra capabilities Co-Authored-By: Claude Opus 5.5 --- PulseLoopTests/PairingMatchingTests.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/PulseLoopTests/PairingMatchingTests.swift b/PulseLoopTests/PairingMatchingTests.swift index a37d15f5..77b85fe4 100644 --- a/PulseLoopTests/PairingMatchingTests.swift +++ b/PulseLoopTests/PairingMatchingTests.swift @@ -357,6 +357,10 @@ final class PairingMatchingTests: XCTestCase { XCTAssertEqual(WearableModel.colmiRing2Pro.family, .colmiR02) XCTAssertEqual(WearableModel.colmiRing2Pro.extraCapabilities, [.manualHrv, .manualStress, .manualTemperature]) XCTAssertTrue(ColmiCoordinator().capabilities.isDisjoint(with: [.manualHrv, .manualStress, .manualTemperature])) + // Only hardware-validated models carry extras. + for model in WearableModel.catalog where model.id != WearableModel.colmiRing2Pro.id { + XCTAssertTrue(model.extraCapabilities.isEmpty, "\(model.id) has unvalidated extras") + } // A serial-suffixed name is some other product, not this one. XCTAssertNotEqual(WearableModel.model(advertisedName: "COLMI Ring 2 Pro_AB12")?.id, "colmi-ring-2-pro") }