From 3bce6f1ed005f14f6ad014ca124b0638e1741a3a Mon Sep 17 00:00:00 2001
From: Francisco Bischoff Francisco Bischoff - 18 Aug 2018 R Functions implementing UCR Matrix Profile Algorithm (http://www.cs.ucr.edu/~eamonn/MatrixProfile.html). This is under development and is intended to be a general purpose MP toolkit After basic tools are finished and API is mature, further functions for ‘Classification’, ‘MOTIF extraction’, ‘MDS visualization’ etc. will be added. Please be welcome to suggest improvements. Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. Examples of behavior that contributes to creating a positive environment include: Examples of unacceptable behavior by participants include: Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership. This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4 Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.README
+Time Series with Matrix Profile
+
+Overview
+Installation
+# Install the released version from CRAN
+install.packages("tsmp")
+
+# Or the development version from GitHub:
+# install.packages("devtools")
+devtools::install_github("franzbischoff/tsmp")
Currently available Features
+
+
+
+
Road map
+
+
+Other projects with Matrix Profile
+
+
+Code of Conduct
+Contributor Covenant Code of Conduct
+
+Our Pledge
+
+Our Standards
+
+
+
+
+
+Our Responsibilities
+
+Scope
+
+Enforcement
+
+Attribution
+
-Other projects with Matrix-Profile
+Other projects with Matrix Profile
Code of Conduct
-Dev status
tsmp
Package development tools for R.
Time Series with Matrix Profile
R/tsmp-package.R
tsmp.Rd
Devtools uses the following options
to configure behaviour:
devtools.path
: path to use for dev_mode
devtools.name
: your name, used when signing draft
-emails.
devtools.install.args
: a string giving extra arguments passed
-to R CMD install
by install
.
devtools.desc.author
: a string providing a default Authors@R
-string to be used in new DESCRIPTION
s. Should be a R code, and
-look like "Hadley Wickham <h.wickham@gmail.com> [aut, cre]"
. See
-as.person
for more details.
devtools.desc.license
: a default license string to use for
-new packages.
devtools.desc.suggests
: a character vector listing packages to
-to add to suggests by defaults for new packages.
devtools.desc
: a named list listing any other
-extra options to add to DESCRIPTION
http://www.cs.ucr.edu/~eamonn/MatrixProfile.html
@@ -155,8 +133,6 @@Francisco Bischoff - 18 Aug 2018
- - -R Functions implementing UCR Matrix Profile Algorithm (http://www.cs.ucr.edu/~eamonn/MatrixProfile.html).
-This is under development and is intended to be a general purpose MP toolkit
-After basic tools are finished and API is mature, further functions for ‘Classification’, ‘MOTIF extraction’, ‘MDS visualization’ etc. will be added.
-Please be welcome to suggest improvements.
-# Install the released version from CRAN
-install.packages("tsmp")
-
-# Or the development version from GitHub:
-# install.packages("devtools")
-devtools::install_github("franzbischoff/tsmp")
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
- - - diff --git a/README.md b/README.md index 27548d4..a71161f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ README ================ Francisco Bischoff -\- 18 Aug 2018 +\- 19 Aug 2018 diff --git a/data/datalist b/data/datalist index 818d7bb..5f4867d 100644 --- a/data/datalist +++ b/data/datalist @@ -1,3 +1,4 @@ test_data toy_data fluss_data +gait_data diff --git a/data/gait_data.rda b/data/gait_data.rda new file mode 100644 index 0000000000000000000000000000000000000000..235d48cf803b9766033d59fbdc33c7e1fa24f053 GIT binary patch literal 6981 zcmV-L8@l8liwFP!0000023>h~JQh&<{xj@ZDW#N_wn|efhayd-ElorVNtDb7p@fX= zz4y$@xa{ohK?+T!MK;g)df)f=*YA&W?(_Ma^ErRq=f3ajy3T!C_2M?6i$W9%g+`(C zQYke0?2?BzJ5eb-6v0_5XmI29!)tms9^RNeBSxXnT~Iz$7Oo-j8pYNdEtr=|Q0&}c zK4>V7;<(M!N_Gp1f9*C`_@xc#`8g{4j-rI-Q1o@3E=u%%+m5CBqokYUo)Yatsg73R z)t{y)6AoA3R`D2RAC&|wj;W!1R7|x{Jph$zxA1;i1y#LY_HuV5pt@>j#g(}Us2x%{ zw8T&q4VSsk_0+A=%)ip+(kcIm7R@sb0CRP&
zv7xyvI)5Zs-AvwuE}@Bj^M)cYQ_fs#G$}?qkIWGh-Nk5r_^9+kR1&J|C2T(R37{nE
zxLMOpIx?M}&{l^SAyB%C(y-<|VbIr(2}~N35T7GcriUj>@Fcn6smlKBAgetjZJ5sM)2@i9_!AJNHQp(wLS7d
z?xj*rRAmCnoSPlK+06Q3qGsmB+FxjitNVE8RwCLv6t(BjqS=b>}gg%a(P
zm%+4JwrthL1hn7omFY2<#glU`(iKi!sEg^e9%=A0S9%6NNIbEY9k38FUhBL|#CeM3=ro6%?$x{kp
zQ?=xXnMW=+__hSudd!XoEhV_!ifNjvJ|3jSO?LkFf~oWX#~?cerWgHbEv?D0xI4fa
zzmS5b+9ec|7IAo0Z>9zbWg#psSYRVrfP`E6)D_dakrfJ4_3=F@x+E-iY9
GbszE_7bnl+q}K|jLAuthors
Michael Yeh. Researcher, conceptor, contributor. +
+Yan Zhu. Researcher, conceptor, contributor.
Find Time Series Chains
+ +find.chains(matrices)+ +
matrices | +a result from STAMP or STOMP algorithms |
+
---|
Returns chains
, a list
of chains founded with more than 2 patterns and best
+with the best one.
Zhu Y, Imamura M, Nikovski D, Keogh E. Introducing time series chains: a new +primitive for time series data mining. Knowl Inf Syst. 2018 Jun 2;1–27.
Website: https://sites.google.com/site/timeserieschain/
+ + ++w <- 50 +data <- gait_data +mp <- stamp(data, window.size = w, exclusion.zone = 1/4, verbose = 0) +find.chains(mp)#> $chains +#> $chains[[1]] +#> [1] 1 145 377 +#> +#> $chains[[2]] +#> [1] 2 111 344 712 +#> +#> $chains[[3]] +#> [1] 3 112 345 713 +#> +#> $chains[[4]] +#> [1] 4 113 346 714 +#> +#> $chains[[5]] +#> [1] 5 114 347 715 +#> +#> $chains[[6]] +#> [1] 6 115 348 716 +#> +#> $chains[[7]] +#> [1] 30 67 168 668 +#> +#> $chains[[8]] +#> [1] 31 68 169 669 +#> +#> $chains[[9]] +#> [1] 102 335 703 +#> +#> $chains[[10]] +#> [1] 103 336 704 +#> +#> $chains[[11]] +#> [1] 104 337 705 +#> +#> $chains[[12]] +#> [1] 105 338 706 +#> +#> $chains[[13]] +#> [1] 106 339 707 +#> +#> $chains[[14]] +#> [1] 107 340 708 +#> +#> $chains[[15]] +#> [1] 108 341 709 +#> +#> $chains[[16]] +#> [1] 109 342 710 +#> +#> $chains[[17]] +#> [1] 110 343 711 +#> +#> $chains[[18]] +#> [1] 117 349 717 +#> +#> $chains[[19]] +#> [1] 148 380 614 746 778 811 +#> +#> $chains[[20]] +#> [1] 192 491 592 +#> +#> $chains[[21]] +#> [1] 193 492 593 +#> +#> $chains[[22]] +#> [1] 194 493 594 +#> +#> $chains[[23]] +#> [1] 195 494 595 +#> +#> $chains[[24]] +#> [1] 196 495 596 +#> +#> $chains[[25]] +#> [1] 197 496 597 +#> +#> $chains[[26]] +#> [1] 198 497 598 +#> +#> $chains[[27]] +#> [1] 199 498 599 +#> +#> $chains[[28]] +#> [1] 200 499 600 +#> +#> $chains[[29]] +#> [1] 201 500 601 +#> +#> $chains[[30]] +#> [1] 202 501 602 +#> +#> $chains[[31]] +#> [1] 215 248 615 747 779 812 +#> +#> $chains[[32]] +#> [1] 216 282 314 +#> +#> $chains[[33]] +#> [1] 217 283 315 +#> +#> $chains[[34]] +#> [1] 218 284 316 +#> +#> $chains[[35]] +#> [1] 219 285 317 +#> +#> $chains[[36]] +#> [1] 220 253 719 +#> +#> $chains[[37]] +#> [1] 221 254 720 +#> +#> $chains[[38]] +#> [1] 227 260 560 +#> +#> $chains[[39]] +#> [1] 228 261 561 +#> +#> $chains[[40]] +#> [1] 229 262 562 +#> +#> $chains[[41]] +#> [1] 230 263 563 +#> +#> $chains[[42]] +#> [1] 231 264 564 +#> +#> $chains[[43]] +#> [1] 232 265 565 +#> +#> $chains[[44]] +#> [1] 233 266 566 +#> +#> $chains[[45]] +#> [1] 234 267 567 +#> +#> $chains[[46]] +#> [1] 235 333 701 +#> +#> $chains[[47]] +#> [1] 249 616 748 +#> +#> $chains[[48]] +#> [1] 250 617 749 +#> +#> $chains[[49]] +#> [1] 443 775 808 +#> +#> $chains[[50]] +#> [1] 444 776 809 +#> +#> $chains[[51]] +#> [1] 445 777 810 +#> +#> $chains[[52]] +#> [1] 552 685 849 +#> +#> $chains[[53]] +#> [1] 553 686 850 +#> +#> $chains[[54]] +#> [1] 554 687 851 +#> +#> $chains[[55]] +#> [1] 555 688 852 +#> +#> $chains[[56]] +#> [1] 556 689 853 +#> +#> $chains[[57]] +#> [1] 557 690 854 +#> +#> $chains[[58]] +#> [1] 558 691 855 +#> +#> +#> $best +#> [1] 148 380 614 746 778 811 +#>+
Original data used in the Time Series Chain demo
+ +gait_data
+
+ A matrix
with 904 rows and 1 column with the Y data from an accelerometer
https://sites.google.com/site/timeserieschain/
+ +Zhu Y, Imamura M, Nikovski D, Keogh E. Introducing time series chains: a new primitive for time series data mining. Knowl Inf Syst. 2018 Jun 2;1–27.
Find Time Series Chains
Original data used in the Time Series Chain demo
Michael Yeh myeh003@ucr.edu [researcher, conceptor, contributor]
Michael Yeh myeh003@ucr.edu (https://orcid.org/0000-0002-9807-2963) [researcher, conceptor, contributor]
Yan Zhu yzhu015@ucr.edu [researcher, conceptor, contributor]
Michael Yeh. Researcher, conceptor, contributor.
+Yan Zhu. Researcher, conceptor, contributor.
diff --git a/docs/index.html b/docs/index.html index c789e51..05cdaf7 100644 --- a/docs/index.html +++ b/docs/index.html @@ -30,7 +30,7 @@ diff --git a/docs/news/index.html b/docs/news/index.html index 4eff28f..2f8a1fd 100644 --- a/docs/news/index.html +++ b/docs/news/index.html @@ -61,7 +61,7 @@ diff --git a/docs/reference/compute.f.meas.html b/docs/reference/compute.f.meas.html index bed846e..c103026 100644 --- a/docs/reference/compute.f.meas.html +++ b/docs/reference/compute.f.meas.html @@ -63,7 +63,7 @@ diff --git a/docs/reference/fast.movavg.html b/docs/reference/fast.movavg.html index d51e696..af640f7 100644 --- a/docs/reference/fast.movavg.html +++ b/docs/reference/fast.movavg.html @@ -63,7 +63,7 @@ diff --git a/docs/reference/fast.movsd.html b/docs/reference/fast.movsd.html index 1d0b575..e4ae809 100644 --- a/docs/reference/fast.movsd.html +++ b/docs/reference/fast.movsd.html @@ -63,7 +63,7 @@ diff --git a/docs/reference/find.chains.html b/docs/reference/find.chains.html index 4ef4dae..4d64f24 100644 --- a/docs/reference/find.chains.html +++ b/docs/reference/find.chains.html @@ -32,7 +32,7 @@ - + @@ -63,7 +63,7 @@ @@ -109,7 +109,7 @@Find Time Series Chains
+Time Series Chains is a new primitive for time series data mining.
Compute the similarity join for Sound data.
Mueen's Algorithm for Similarity Search is The Fastest Similarity Search Algorithm for Time Series Subsequences under Euclidean Distance and Correlation Coefficient.
+The difference of this function to mass()
is that this does not normalize data. Specific for this domain.
mass.simple(data.fft, query.window, data.size, window.size, sumx2)+ +
data.fft | +precomputed data product. |
+
---|---|
query.window | +a |
+
data.size | +an |
+
window.size | +an |
+
sumx2 | +precomputed sum of squares |
+
Returns the distance.profile
for the given query and the last.product
for STOMP algorithm and sumy2
.
Abdullah Mueen, Yan Zhu, Michael Yeh, Kaveh Kamgar, Krishnamurthy Viswanathan, Chetan Kumar Gupta and Eamonn Keogh (2015), The Fastest Similarity Search Algorithm for Time Series Subsequences under Euclidean Distance
+ + + +The difference of this function to mass.pre()
is that this does not normalize data. Specific for this domain.
mass.simple.pre(data, data.size, window.size)+ +
data | +a |
+
---|---|
data.size | +an |
+
window.size | +an |
+
Returns data.fft
and sumx2
.
Abdullah Mueen, Yan Zhu, Michael Yeh, Kaveh Kamgar, Krishnamurthy Viswanathan, Chetan Kumar Gupta and Eamonn Keogh (2015), The Fastest Similarity Search Algorithm for Time Series Subsequences under Euclidean Distance.
+ + + +Compute the similarity join for Sound data.
+ +simple.fast(data, window.size, exclusion.zone = 1/2, verbose = 2)+ +
data | +a |
+
---|---|
window.size | +an |
+
exclusion.zone | +a |
+
verbose | +an |
+
Returns a list with the Matrix Profile mp
and Profile Index pi
.
verbose
changes how much information is printed by this function; 0
means nothing, 1
means text, 2
means text and sound.
Silva D, Yeh C, Batista G, Keogh E. Simple: Assessing Music Similarity Using Subsequences Joins. Proc 17th ISMIR Conf. 2016;23–30.
Silva DF, Yeh C-CM, Zhu Y, Batista G, Keogh E. Fast Similarity Matrix Profile for Music Analysis and Exploration. IEEE Trans Multimed. 2018;14(8):1–1.
Website: https://sites.google.com/view/simple-fast
+Website: https://sites.google.com/site/ismir2016simple/home
+ + ++w <- 30 +data <- toy_data$data # 3 dimensions matrix +result <- simple.fast(data, w, verbose = 0)
Michael Yeh myeh003@ucr.edu (https://orcid.org/0000-0002-9807-2963) [researcher, conceptor, contributor]
Diego Silva diegofs@ufscar.br (https://orcid.org/0000-0002-5184-9413) [researcher, conceptor, contributor]
Yan Zhu yzhu015@ucr.edu [researcher, conceptor, contributor]
w-kr_6imFr0HP{h)d=RhGg%r@{(6V4z@-x6?HkF-*H=Eb0p}Lpaq!+98nkNu z&sTfl1tjfU!>{OST;Iux94x(GcPz x@%j9NPE`mIP6&+A^}+inLD z`&~y@(0b;^p{e9;A^*_!K}&a&&b8@qPpabgnIw|pYyC~9rgrGgu+odgY~=K%6;2jq zE8d;!O(L%S>q+g(9gO%DeHF=@qZT!fwa7oTCE1Tc-X-$BbuVGkp-A5F(-~aMx84*9 zoXV(kUDZ6#GYk*6YA3iVFZpjXGQ2W-qFIIOhTLy51*lxNtb5t12NXvJC#Czo28f~N z@4xu9axRwaB*?nu7hyOJw~ZUn%w7vrlg1uS<`HY{ETo!qhD !6tD)?|_#v=NmuPc_T?DROpL66!ci?Jbn8cx)u!+2QNLNG HRe`Ei%4$Mii{ORBa7R{$LlX03K$dR6B0Ztb;0E>M&llG-*;mA*rt>AdA}zv> z^UpssiluW8OYk6jxY<|NCcn{JYNcL<;_(reGJ4=?Wrp)fe&fCWV wzLg#PjW_0D=~vHj(@5S^pR!&bizh1f4oWO7t2`!U_{ z1X7vzPthHVtnF8NV52i@cj<|x1^JgBpZ2DDHwB?RB25nr!vW7WmtCBl_zK~l2W^bv z#qj$oBEM7C+h*mp+k45gKgT=gS<@#0^)oouS5B^8J3!+mxDT0^KO? QQ} z75?*iK8wGlUFZD9jbp_?;jPk|_r3E}&6(}NP`!gq#)iFE3q ABt2FrQN^F6WxPYmX79e~Ura zR-$7WoTDW1W`WP(6!ZDLJ1;z2x8au&^w;ioU4YHRSG!-`756D^9EWEDYvHTiZ=E)Y zUCs};=kBDID_W(4R7RbTfd>tTF|=jV8~YkNxZUUcOigUtq)`T ID9O`V=U7JJrYKlGOCekBq7<7x15d+osLRU}|9!m@nK zsEr$CmU8dz#{C=+GJ? 9h+;lH?t>>Vm|mBy2W|t8X^Xkh;$-; z`Z$0j4MOQ8*@m&D9+Qjhkl&dTYgNuc=2g@Nj&^f%bOKTmLp0+*qQ#HOO_d-OA8!P5 z?I*u!#b=~Zs|1uN)UhNuB)JX?j_EBjtFNeB{r=nY(2dI?;9YmUTn%LYKz)L3gbTUg zIG5B#+YrK6`huhKAdw+0VvW})a_%EvJOGD}yq&5#jn2vn600Lsu;>#jTcOjYrxIhL zeU{E9+D^F_TOHBmT3Nd6#Z$FT6XV0qdMlsw3I*phT{&iLq30uc>wP}LafZt(1LWo= zZ>>Aj?{WJqI<0%#-qYKD(8Hl}|E}*nmt(7maaIl$^U#yu^3HJ*1K?fkJBg9cWl}sZ zj290imzU0Sg=j0%&2KU3?6*R+9UIV@ttC|He 2Qc)6 zH*tIqU^hFG?70|^q2aNO?)*LE{gP9{b@iQ+zGy#Zy4x>l+Bxdrh4MK;#Hp{#Ge$_X zdSYQzgdbM3*C&wbGY#(kszDPQD^Qk5qBe5&H2h-d^$Pm?=?CWV_;1G2i#@SUd9Pll zm>09hKjnI?(Vv4p+RJZwZ9C=M{|XQkoKrgg#`Fml7@&OcU_x3o-1`gd_(RhdWSJ3P zg?m>Q;>lSuhp2O8yfv~)0#~Al;+!Tume*5N3ubday)O&mi5WfK7?J!YyhtzFx;e_H z>1CI#8GAO4`SeU@dyRXf`o4q7nTu}=ooEwV@)g}TGk;Qm;0INLsoi2ASKqCt 8e9SZ$OeD_dxb0^m2o?$0v=CCUwroS6y_f7tt)A->IQYAWf51Q>?btWTr3f@J# zI6dF7USVJXZNdDEf@a;~FSKvp+~WYvo<*F7;#t-Iy8}-1>+ts*sZ9 z3&1~61KMhy{VuF(ban(pKZ=o2U-l0d7r%Y_DofyEA5ld;)GBh@yP+!w{td||#xmk` zM`sQfrMH+{HovFx<7RQeJ}>Z_UtM5lnxef{Ln0j*3l=Sq(5(9adONkT*$vumDKHWy z9S>`#dPs7H^nNoJW8(QedUCn>pzWB-+;aQPQicPUp($ag>G!h}lJYA99B;7|wY%2T zzjcElJCe=01KW7ssnsg^9qh&dYJRt*nelbLKhq6o`Z`Y%G|y(vL*|apPnWL^UwpnC ztwCrETCge}3nH!Ticr5Ha*`^IcRtTI%L J_yuvP1C4 z Zw)>-2suQDh2WUCVW >hG9@I;lv<~dWMKpcJcZNT2V0Ocs2&$>$^puR8^j|* zmUUteN=~^x;jQ %o5R7aMf#bqS n|zT111XR9=hMDS9JD`1mAyqAoRR4di3Y f*A*qd zRz5!t+x0PPDf;tMY30IO`Sew6 oo}rq=Vv7|AmkWS v?Kf BRMh#+eh!*y^JtqgHyCxe_)BZ;{MS%)=K!z zyOfRM3k2nygW UQupDhsgQ?Sw;x+?V9NnU`*V+o0mmwDZHqAhT9qT%04` zLOgD=9JeoU cKZCjx12i_`S7b^x?oi zRG#HPWrb#nr9)uJ+arWT&}|M^tuJT&=mQ?}2XV)^m%HcJCNx0L$C$ylNe_;sy0s${ z<7F<`Nq9zNZ>TRxXYsZwK5paTl+Sd=eM$XxxYAv`O 8mgN7zS;r9>byjMD$ z@@I4r;tR+0Vv!0IWrK(!-b>*#YSv=cvM6<2=LB=1foG-Q{ZR0JpwiBEiTAMct9aqI zbi m9!3X|g2D!;tY!V598b^J=1%ex`4}s<%MkGW3tMXYc)J?^ zVD>h_C8sQ^xPN;+RO#%ID@IjoqOgg42Kq<3wQ|?Q_dUw+*`1wm_LWF3qkZ&OgGXfd zUdtm{5MY;g`wVEZ%85?_hnxAWl#^!$f6TGO!mGqSL*d!_nK36r>^8l8%%sRrZ;+c%SXU2RxQlsg`kc^$d8l8 zcy_>_>jGUYiwR75+rI^N#Y9og9dTW(kGU1EHz+-cVt>l}{6YQpVTtoOQat}qMaa6< z5;tUf(zLcr-LyK0;peI+y7W6yobgsqI{ibbRN%)Zc$;PX6I1>8ToZCf} z4Zc(6HK%5U$XB>`Gea=W;M(nwn-XHv+s6-tZu=m)7xkFtL#b{#KAXB4eB-5uGqt%W zyH7W@UZ1zBh-r%b*O$K*lkVx$xh*+VNdA6uKj(@Zsf1QbPe#yOT56K(I#cT1ZT+8* z=_NYcfC^9WXMf_RvN&j-yZf7`)!6Wdu?8Ag-iz>Fde8b@rNoC?yKv1!0rGjy?m+RI z4^N=vfRdF#*_uz+L64WVaknIU`y0iZ8r7V66?YRSrWYikrXQHHepNcW|9TDbmQQOn zInR;~DI>(-bWzI7i9KNBi7?2R22?(fKhSyIzSeTke9(4q{TC9I*m3$U@?)o6Et5E- z`Oj-jx6_`!WQq*e?5H)M>zcHGTXHDF{&Xgh5nBE$6 w zBqycqN@{%*Q9*kv%Hs~5@Q;M0QeE!hjm!>W?`U2 zryw)(u^#qV9xJLCV3QGf_&Do1SO3m4R=b0@se+)y=igqxe-*(Jqq zXD-!C*z>b>Ljly>eHr8P45@`T_F^-kNz>*LT D>vM0{&0@-y%XC-UFwLzqgwmxm)E-7opZjOx_tdgy?k%x z2Tem^+FxUSMMbyI7Vi`O=*n`sv59j2unN{knBFsdGyg?hq7V@9Mw*Fa$@2DT{Mhun zcrA-*2~MvW|JKE}I}0t+9Zh)?1!mSJt=~<{E=Qw0SS)Y(ToOOIe=iOivu7O=8PO># z@>(}1u)Xne*-0*JWKUN5Nhc9Yt=c8XUV=Q0c$M;Cx@N)G@!D_Q`<4Ypxoyu65d+5v zmk-z2g)?SS!aAEI6o!5b90s(UzmDr~aSz1hhZQKCa8&(1Ew-_tqjI8EbdS3eWIvB& zP~?h(I~2Z;*O` 6$G3$&7!O{NF6@Nv&sP&&*hLhOB9dg%Q`1KZ({Ev5& zDia4jR1YDWY&vq=*M6y5>x@m0st@dXJ)JbU_g!wG)W05yp%3t4BBecuc%WSM_}27) zeQYWFZ}tTlwYHl0z&>R%k=Klo3kCY>q$ZpD3qUaBQQ@(&!|TD{$)0lRMfKy`2NtnG zYUXazF@e%g=mP5RB&n2l1RRPZc6>H1WxXp@m714Sd$?X@q+ah?N`7M=uIRqCJf-jd zbmBc hY$LhWFoGl_btRThkTU3S4%>Z6~c2TxE zp*ABAna&C5X(d~lV(A{ow=O{)JK7sEH{(UV^ICec^x54y9k}I}>IOBIcz%?=nBCDD z=k`Q@q4a9b!Nc{zoEqbrRMPjnS*;nL($|lLeqD=bwaipGXbQ-W{vF22Bi?e|^}D!} zce%(`Q0b3#QMF&2^V9}fOl=(<)!(QOpR$-JDpgF;Qzv2m+Fk}+du7wJ5t~@^;q9NB z9#?FFzJHexH2hF$*B*NG$V}UFW63mbWHc+%m?=_2RBGYliFzvR-%vD>#`n2xAz(({ z##vtd+xlDNh=%F70Rz`~l9RSnQBB?Yw{JCkkKp)(`RWhK?6Wkty(}_Pe<69xf6xyr zXy8W-M5D$-rCFwF?AGU*S(BcMaJu!Y`q~et+V(g@pckLUG(+(XteGob=C|tE&Tl=n zzjibC1DAt92WTXiOQrlcnXB`<-Mzy9hN+DWO;%2tnPvw@?HXtjT#}ZZesBB9s^HR? zj?2h?Z&H8nbZ5^HGgM!2r26vo=!m)11d%dzFp=kcYIJ&;JXybnSsqS66!dS;D&4+o z1~sd4di*5ezgEM>eX}*@PTwQhEx1}xO|k>Mx=D ixHk9qB zNY@ccy)a>Z`MSUcoh)L}IGyXc8GbBqx7#h>L7Atuem55gH=cF3eL0Zx0t#KyiYzLn zla?t^*vITD47mMW3%QwCwZr&MH?Xf)4C^U$XDsqs=k2Jdfw(})irLD~1Lkt%n5zrl zuUNG|n=sfH91v;z`}DZrrCcAd$|=2{mMd0#u81cytbu#)@nrn$N=e_3S4ND{55+qV zw68e2e7^tn$4M(rd}sNshUPrf95KicJ3nOqT*Pk|p`QSn%N_eEPXFV3MS927+^V_= z=al^1gz`wu)aJH8{FARsIoFz^D!3L*r_##UFFwB;Ty( VmAP@n6f5MbTh*T&&Rh7Hjp@aZxw&3|-WDz2-#d|Cp|)B76|N`kISBt6O*-#* zv0*qKzS{g9m3&R8R40=$b37_zg*7)QG~>I|QyWI@PpSi~sLEU$cP%L%T2Z%=f2}&l z-w;pJ9O&RC=&S Pl{EJ z=9|pJ E~668cF=W%xdSkS}5OwL-5iqp@mJ z#HmQy7}%%s!4sro-Di&K75#(UYTLkrax0@hFDg;h43;X^W9myqd !UJ~Lty)i%ehb>6JX6t#BY~Eph?crKB_j-!!sLoQcz?M{^ zuj5ah=P#|6xcXE( |1WLv6VFRGJnP7sNs%o@okNvGJZEG*REUm2mac1 za%KRo6!dZ2F+~&k _6{IjuXY*50fKDHy_}x(K>o6KS85r zyU0^fr@GO(0;Zcs6y+!-Y?9C0yk(QQ>;@cXVAG({(EU_lJM9944KeglYTD5R(|;l6 zV(vwUQOp`(S9T|w-sG>(*D$fZ|LwdKr6_;(kv4l@u^T9f0Itm}8`KAc zJF1VUh2D`Wuqb-_aECtJvU|YK5O3u+75;$H{xs9DO^nq;6e 6(ydEa|q)w-ivn;!eJ++3~UK!%_GT0n{M(e7bwyZxs=Vpdez!H*$k zUu6TpSGYJb1VH|g-W+G>2^z5kzRh{%csfa6dSzEG@~Wh~#<@v$bs+5S>oqD`-DQ&r zo;OLA*)Q^~G$$lpN@$uF)wMbs2 I*PC-%#F#)c&o8R3c#AHWSmlM|o_fM;7kJNjXC;VaZHyieaFy zIlr~|83EPHAh_QvwHQF{R}6>rG<*;9IQ%wfx}hMOiRxP1?W9VyPrtzU9NZVcW@~VS z2!NOE&jM>1G9nF)`$ZHqTbG!zj!$_Yiz)on`AvVi8_tac>3Nh}KCO8+hK%MQ+4Hyd z|BN@GiV|u<1kRQkt%mg4%LB|t#e(3ig%k5QY-g}>2!kXBXF-6u#rPs6i=|7@X -sc)nTdQ;Y$+!yzsvu&9Kj8gm1AkNg?=8~eHBz%0;B{LXFT%8_7liCN?W|g=X zv!TPq7njdoB) +d@*Qky=^!)dZ XZMaw43ZYOOgt+et>LGQR(4$ATg z*`M{iyDt`aqa}aPa~HEI^`;@+tME@w?E}VS*93fS=Bc~pcQvKXjq$&}K<#FR$}fld z@zU;}f@VY+rOXya8E8A->fc^@^iuQ=OV$GkbrsN^%Dmra)rrE+pRedP`czM#7RwKL zQ8%TygV?D*(y$KNGTwhSE5o|NaHF^zOVIeQRVzY+cKtpq@G- K=8lpl;s%HNQizXRNB)Co z+?M$}6FC_UBR=hG&rF*TC@BvY!ws1(MSd+(bK-c~!(C8#d%;^?GIt0g2LEcUs{7}v z$FtY==@Wj)s~c^fvzpm^3!Hvdei&P7OQdEfv;V?WvIHru8!%|NsBif+o>B1^5n5Pg zes->UP 2?_6a$_~)T=*5`b2bP5*;k6qMUiIew;|eIA=kzmKkILD zD6a&4nvbq6e 0;74Pf42fMrNHg2lU7>f9)C(>v#CMd$TTG0drm2atKactMX**w=n7%P96? zp~UigTc~gSEol79vLLEV|JIMB#mu!}WHdkAkM@_v^I#b>g%?Vkr}9XCBeNW%u)mVt z4##v4idQEJxW0+hyr#0PI~f7eBrs^2nK?O`ie5e1-u<0<_?o>Kz}`0bwLgPXa0Kh# z{Y;DOh)YnnSfxw!5LY9`d$2&>;(0r!2i)YQF}i~Op`!}pcMHpm{0~D?!qkM17m VW0j0mC0k@ z4z1A5deqv{t56rR%}sos6hf;h;cf}dOHp0ZV6juAlZ4Nl ^=*gRV3ua>Mqe~qa5fad-DgnuxibN;mbo8-*L^FCvqL%Nek z$9R?dc Kz`MjTxxM3xe?JTfznAV*@HAv-o}WF%(<+h??DSR 0)GAI`%{ZdStCH++7!d^A<%}Gt(5iI_^buig6V<~d=_JRhb4)bMT zl<$>9pJ>ew_VuovtK&W3r-~mB+ODRN(ab&yxXpR|8i^Zj6|gi5j@Fq=GaR7jia{0r zhVGXYgwPM_imk4oKP-`o+iz+!E0HLayGN!weqKuJchWUpF@Cmjjnt!j_=~AZuQJ<< z)dDuDo4$Uf&h+3!scfc38<4jJzy9iFSIG;haeAw+IY-1^^pN}{-B~$o7P851?7DI^ za-ynRg7v=$8V&foy5hbPC!C#Q@h(F2tm^{w=VP&K6c@%m^KQ1Rw`<+wP}o+Y%lpAC z?48SdgyC74wN#E1!Z-UyxOiEZ(}4Yl;=C7Q#SA!J5Lr&6^EM6sO`&EVYN1`l!2TQQ zPy0Ylr5o86twPAzwrVx^o&OoUHht(F;Q3
o<65oBv*N_0o9IKD b{Xm~) j(3>jk`+fO?Xq{z54N1igh3& z@Zx2_6Lnr%WPf@$aiM}?7NZ+S7K{wB!F;g%Sb^LlC|%cH#eVQw*&E;$m+5|>=~#ED z7j_X8pOo6W^LSZi`#fSh6|JJ)ZD_VrZqXC+JR@+cF92wtI#zkN%QKh}f)rGIsm|Bd zMt=J^q;=EqQJ`VfjC&BA4A S!>&HZvaW|7ibv<=z 8^p}C!xIN<2uH9g {C3OO-dJgenK0gsF+P|?))W? z>+R{n53w#sV-ky&$_44}gRXY3JNc--A}8821b+u5TARDAyrOE?weweY&_ABzK=Mg# zFyW(2ec1i$s3ybw=9acK0F#n6_4gK75|k&or%l)8LSt{OSXyFfo=Ng=oNylMV%6*c zey^0PZL3N;zx2r=GrC=A9$bGsuf;ri?}+|6DIZ+3?+jlJTKSxt3gV&MjfGuCDUfa^ zcH&g6DyF11Coay{+luah6Yoi)UqSs7`&Zp~k(lQxCxd2VT(yZH_MiNT20{E9X^1Zx zQYNv?l!qa~-|v} ~Rhxgw@i=DVT+JWu9}ZR7ncuPj znTC!;?h3aNTKNO04xfhebYh^>B6MDMzxVR{@W79IMLwgH1TQakw6eUR$}yYBJs0#< z_iEMXT6|8OH**8=^xh-4+1C?a4wx6Q(S&Ht{@^K!tXbVHO4~`*Y4?Zvfj?`3$cj2< zlhTM(v2fChVn6<7w0dZJW2yRl=oJUbV0%@$PABykIX8JXkk7LC5&kxm>%dX5m~QWt zhh5STvGB9{f0W>bsUsMqiT}^+Cluk|A5=Vl&ap%7qC56aS|(+~U(Gz!uW%wE HM^}ml{7qit z?D}CFVz3Psp@+~CPM^ALvgg`+K=%W2tj@iz2F3jmkGYE1n%z03Y}f2dfhX>tl6v@q zkNj6XSx+@r?!DRIgr{~R>Q_Q4t3r>#wz+^UU}k+UY-X!`(QF) SrX? +VPc-*EuLN+5MSzi)W~Z8wGRKuls24jG-bT{IOD&UwC?ya-dYpnwLd zjs|D8t)rGz?Bw${9YLnqvN B26coLJ_H%=%==jm-OWh+5| z^rMdSkbGX`jjp^PSkz4M-3P mkpQGTwrg`2Sv^tp>jsM$+yyZrZ;Ur9$wq9xCuYW1$37AUXr5xCJ4MbJsD= z*_Wd8NZZ;Y4G`x Y@!8et!Ru z@v>0e$G*d=MMg`n7`(hix@=}AG1L!S+*N !JmJY=Ln{yB#u1%uL zt@cmRo@c*m8 b2BC9uK z)8OnWhD;_btJ=%<%dD83^A47Y65&4%f_oj>w{ZrBX9ToCF=~xSpI(d)UgHiiW?yck z!<}iCFAD) LWmY@N$V@^%CsfvZ23?gIUe86YbMCoi(T4K1i&<0nsNQ&{P5h3b!ux zOp)q8)5vVOXC1Y@CbkPDpg$fFuh;_rmZLh-cbrAzm<^G37DcV2!L@3s7sqWJ+m)A; zsZj~pnb0NB-&q6YmB^|kn!o7Vm$@Wh)zQEPAL26LMY{~_9e&P{&rG4JfJQ4(=F-HR zCj(rL0Zu+bhpKH9+`O6rR7&s1W}|Qw8s=Q2pLR{29FN`yijZ>9qj &De1aBPB!aIvyEBkbrJwzj|(SmTu$(zrvgBW|G`vu;v@Nfh>|?L4^!xgF!(uY zXNpjubHFk^Iqjy&wMZmxl1a?$^Pz`Q_cTpt)1=!wOv3spaLMwb8_dyX;-qJmrNmLk z6C~d$skKU?80 18dM_Ns?BORDVd=a(sH^*RSj9Z( z9N{CfRi_SiN|qHn(YRPdkd zi0(UnKwL*K&U^>^lR1r(h$|{y_;!)3QGX^*7>7rF8|?%m6(R+dT?C zqV#5NkdNe5%T;0tkzg|RnhlQPx|c!74m$t?p!z26sAe45qq3Ei8UU*~a!}asr4vHM zpM*fL7nLEP1psVIY*qA>grp~{q6_!hbs*S>gFJTjpoT^y8l-%1*jODZOeuYPE6o=b z1hJ+7AlDQ9WD%hQkhaEVBB}le#wP>p>)#t&K`${U09K4wD|Q-#s=5zkFXCn}pzb%l zV`oaTwpdOORyhvO3^M$h4R@U$!|B95 T)@In$iMhp40W)Iea$>d?9dt?C`9Jt6L9km1ibcyJt*#I zk-0Hy!><8r?YONB-X@6c*hOGnYF8;^h=SvGzcD6=>xGCL3FvTnmFQWF`f;QRW3C{> z_BYya_v1ot%Iy7fK}l#QS3w>4?945g|8Dva4qT_96_6eL7)CQDG!MdR9utSb>(9Oc z<;b>ne2%yVd7S471B?Mra>%q1B I`m&7ZrF9^X5z%9 4bJ1o)a4YdmlYNmo-K1arGBs@}vzFe^#gYA(0kWq1gEI3J<`C za1B(p#xgH+)}l6M()6g5d;_&ske_wjLy#hM0oX@3@%E#7O0c%Z4U);?1TK^djG~~5 zi8xIYH|6OYz;yh1T{WoxP-E8QW#R^?AQ!qraoF&ZJO{Hzx06xaynmgfu}99ACht%r z2ziE})C$f*Q3}a`Wt?C#8Hj~o6nhCr6f;@)8QB+wDO;W+DXif+z%HAre3GspF}f*S zYx@kUVflU4w6*TRmxQyGb9-Qq6PBWvLf1RBd2o3CfIvme)bIv(o@_*2W+CRM_zCvg5mX8t1hA n6!@xOW@g_9vL@Q()Re*t7x%UVJE7d1h#?e<4aaxK z!4)LW;B|680Eq9$L4kT>lZRZ3=bUs5sYh+)IgIFsFZg3OF8b=%+=2zOQdo8CPc(+m zwZN5$Q?dz;inF+M^Z50pE8!W)-!HXmg-y)=Fv$39T!!R8_{2}gQxxw9lHEg9it$br zw!x(L0%87(L9#|=yKgmkI$H;Ls{8{&UStCzqYrR>alyLe KM$LisYwA;~`O1SH}T%{C4}`;lN6@#HJd)#C3urNi6+v zi-^`~T5=sc6;GZzY5nuc;uH@KJ`91yAJvC=#ta`4uT$R4z)arlXff}rj)WhH5|eVO zrthS0ahh!T?_=bByudl&LjHMDm9p##yc0Y;j!}oCKKJ)9E#y~QatA*`wk`_1Ir#=0 z-D!>32AW>p(lA2%A52`vqh1rtiVtvY6bad0${2Ddz8gv#1KZu(I3q1l065$q;t+ol zkZwWb{DDySVzK(!td)x1p8p+=LojR@OQw)(+ArmNNbX?9$qU*^pL}992%(#%krNKk z;c5V2HF2$^0%MSSrLSh{1=zE0*~ #>CAHUX>wk2qEOdS1JX zAx(@yvPf!>K?2{0pensZlJs)_rNItphlk%6M}mJ{Nh`*lmwJK8P2$~mj+JCc$2UZ^JAvj$E8aP6I`780x6T2vQMAAz}8P$LlX-K>;%I|g}4 zQBECxahmfAntuw0yB<{g15nCPcEXb)3ea|s>x3lhmbJ7@xNrIkcZvg~dGf4Z05kiG zWXd)MWKIV`@2-M56A2YFTo|DXL@NaLQm-Tz6=H?zV*iCBH#9`o5GujB`sQtvNI}X| znDsK|bc76Reg44OHQ4_`6BzChOKsP`JWw` 7VH~YKu&TsuNg#FcFBRvyF6SxdGXPd)la&6-R1 DdqR*ZDu2`M zQ8>@UW$r+$rX6Sz bGj%xD&wGAmeEEjYHovB!apxXD)0LYv_AyhAVg#?4icM$?94aJ#gGS?2_uDYxh zmMerZw?8=*dP0s);h78g8Q=C*xV=9a)pJSiZ e7RlWkx4Y2$e zxdny003B_wfT|-k&{HJ!vqt~60P=!K6vqDi8}XURg_ RI+ScZ182c!@api*nMA#_U{vu53n&4Ri(mt8v1KRL z$(Njh?q30~0EbUCHNZxID$*rnY?d09x=Qxv0IwL#k@{CjYC>Ij3L}1ZzVk#Tx^wHG zh$nFpY|(hf9poqrwTxbl-2r(Lzm-wi$kVs&Jxm%~F` A= z==`&wU)6Yw@y;ixK8#4t0WLgJCNn^FP-J@olq?x4{VzCTDchMxcX(o#L%{qvBLCzk zm~4kT8OnU}Y%1@5$nTl<;t=`EOMqt;4p6*@fxvf;iST^9Wh${90mm+a!NkxTf<`b6 z_vNax%{+XLG6wZ=C4?zomBNnW*~2-vDa(%>2Lc7861KPJWoxF+$k7uQpyu7g)IkE^ z(L# G-&R)nJPjS1 z|BL_4Xtr!4y1j|gShyx*O#-oLBU>**jNvE4IM+~nlZwN3zNIIm9=})iR~M-eB$G1C z7ZN<10+AY=K@!0 tv+=T#2bHV{M};b3^|1<2F2?F`dqqVgJOaBz8U zrcSW|5z+r1|AYWB#0IUIp=M$aGXo*Ch#Lg3y-xbZA(tyraVRZ#Pt!kr)#omb(0;H4 zj7(HE0@l~(Qcw+a<#rg=Ucx=kDD35c!?uvMRXN2xX05z?-=D906^BHx_M1PaWFCd~ zK_*YY(Yqx3cGJX;f^8t~q|IcxqF{J}qO7ffE5f2A<8Qo3C4~Ye#R&35y_Y}8;c 1n;KR>&Cthg0YFwj19{g_`7z?}3?*D6OR*JxA@uYf@K<7gc~#r-a2ojqtiRg! z91=mO1F@_DuYV!7MT0ebP?FJGfUQ9C$BC=AGthy0u7R+7u(DG>XFjtXXfNOXp86%A zD_x9kI`aY)gy2hdT0xQ$NX%#JZb7XUE*G#ZdR{c{lB*pHAMzvw^1|}xJ{~_j3`To1 zTAz77QTA`R$l?54RVBYsU3kt(Igc)EciN?}!qmCky19H=?ZCx!R$(i$YL11q^UywJ zs3&>%k}sVi@@!$&bhjoK%YQHJC35qE8BwxF47gnn-Y(lsCfNi4NaS`#Tw9{O^19n$ zt`p-~AfUjB9i4|1 9DP^i{LGBgmvC(I6j7jJ6jZjs#jNz3>8 zfLHtTe^Jf}qLu)JCtwd#pmV74FlU{-&x&6q(W{zkHla_q;ph1n4bN0;8{pkqaL$;g z`vKU-lb?+Hu0(k^ibJ7JiM=;S+hfCffa22_EO-)%CX=}NBg$6yf>E>-<`q`<46DCn zKIaxd{!B1`t{wl$W%L>wrs)y!B~K7wcPo&>j1^Er-vk|vGKS*EvY`8yL|ErJSoUj} z+K<}~fSNggZ;~c@f7_Nd4+UF_!b398M@%v)bN}c9chJ0srRSF=c<(BiEK3?hsGYq0 zm^knXp&y++ozUg@=lm|@+=Bus(=@!Sz+@1bKwPJDf+&9|n9PC8Zd`HQ2!M#~yB)#L zGxkHJA%CY1$PmbWl0VF(JF4?oecP78b_&cHf+HK3MGq-Q#*`yGAh)g@ru-V>O9s&e zr>_QN?Fc3Xh%M^jXu-;jNNl#V5CL|vLxDpmuy|>-m=lJmNkT{9DOhD$T{x(9-%oz& z-&w#0sUFY|tUgh%!V)L{Mb)fh@Y~fsFmitl{H5eM2~EYkyPpCJsPPO_f-6UKZcO1f z8UeB;XOkLuf nMQO5&SY@ivJW=RbIuoa%+tr zy~=jKu!5{9>%C7y(A%nuJn|#q$QaKg7zx+vol 7lkrdhPULtG%SsE@Zh(|M(99&f= zBwI{R>5e)Cp$F)Y;3_#`zHKZhD(DU>PmiLs^LGox1X18GFca${z|xT}0>7kv;rsc7 zE1>Iq>YBKua#<%L*<;7H-zIQ*+r8qHqMUcC25ysp9Zg{t__*{ut LCL6 z^BpjZ*>%RB#zA0KC-^`o S{uk6pr%iyL{wPL40zXk 3G>E)?jDpk z4+oZyT>%xsKK2v-6^-b0CfW3ht)6*ykf7hIvNIk+*3o1uEE<&FcoGWPJ@F+YT$7aX zfrl{MMf*ig*(^b}2XF`S3pfvohaav6R~`JQ-1fzWRPa+72P6{qn{KUPQHUn8La1zI zsm{vpV}B?W&W938N6AK22Jin4ZG@QL@_+Jn4sAj)8QcaxCM#RTkkp|-Cn9uv|6e*D zy=aBJ1qP$*b0{LS0)}WJ`n_R0g>RCpI8u@SG=2}@Oo=daC{B=C4z$3L^~!qDHc%|& zK*MQYk|?_nx&PHpn3R4Tv)|Hl5sE0MfFs8CFaa=T@LNDmnibTWfkb(CvNoL&AMOh= zk(FtnM4yq;LFo}=@46{WW5}8#O?6291{;PVLb3(RBXY%d3Gvo!;A6lj39t&OIW7sz zv9d|*O&Hs=-@5i6 uCQHXcp8>=pq!*uU?cw`6n@Il%W3UpKBr|PE#Zb zVDsIDxMmjjrM*XDQ1`q3V;^07ms%n`e<>85ycG=5K_r{up E@268S9sWGweFbW`*x-Pxgmn{8+Ju$IvPXC~gr1`Av=tMLom# @-Yn&5=Uj?%X8>8JtHrqH#$w( zyGH~rpM(~lVCE^8{|Nt13|k2JX4Tjw(5bT#_ukiTxhM
xI9}x!qzWe>c{(pnb0#Km`^{t*JXlJ79G72|=cEn@nWlXjR89$*$VX$ZY zqtDd-ZvJf=Ms*B4(3?0JJQX}m2BS-RtpHoWz?tIRrGR_qSA$>y0OC>S@s$fA-&ezV z-YPgwLn*!I5DRP1gYXQIP`uIAC4_=wa20$M@sWRO10QleygrW$)?`*0B35x`F`kfM zkj9crJF!lu`A~{{U8u8M#2W|Jom|Q5GBF_|5|nu;J0zEqLn-Ve*^5%H?YMw_UuC~j z$db4G{_wLxlir2U>nqD&b%+E1MLvFiE`@%rWvIq8van(&cH!e{`2lufADAjye)E<; zuF~b2t8%vM>^93$OJv?_xY=bsof#cF<8_Wk%3IShHmSTvx_4uS;>$a<{)uQkj1;o^ z@BR-&jlP!d<4(m}DvCWqPig h+AbX6f!bWvC %`>i?(w0O *6;?{^zS4# z-rTb9Hn;o5m%3O5#KJSS1gKb7R3xwdVtn|y)YUb&ge8ea!%tS1#W^)5453xcu=P?x zyfYtI)r5$n5@L0B+_)7Lvn5O~8Wcrsc~y!{wBF1~!TI}W0S{SP=M&W>cSXD9(rY(r zR=S1J(5+H|tls-?=?(m4o60mq?x*2}#v*=_o^(G5DBSwDtb|eLzS4-OqPU#EXL_cX zZq1(m`k _71+z+Uvt!yES!LBAIKe`qBE?Qf^L{F|s- z-V>u8v*NV1XxMo{?acB)xR?IAwxc#Ha(8- O{~PNy-OUkoKWkx0-tpI620NLUR^24Kp}?iV{m6H0Yj1}V zuQ>qrE@>7|R~<9rXn%N>uzeN3cIB3%js;6iw>;HRM#78ljcE?FBkxs~x5B$R7{Eic ze%D0Sbt5Vge|X)aW(nuB&AOQZRQSrGG#zE9RNek#= JEKHAc_mI2;;{3ZZA7H=4fP5IkuekSZX}#f z7kikQrQ#i;so+`C60&}kiu(%^n}3Z)g(iWR `O_hZR0m~FR|A~H zEe|d?v+pb&TaA?|gAuX$=p0u4eXpPPUSEzePV<>=7VEqZU^fKA|1+Xj%-e6NykySu z`1R}*+UN9Pq^wD+bi{!z?C`h1^bL|)f=c6bn! AgL)8*vx?Mqwha_s_Pu0{U&pfPy$0Q3-LEh2h5Wo)!3;HdyFN6vM(sxHY)Yo(cY zUw_>5zOJ2dI)2xdVIkvKd_~Wz+f4fKW}9=V{%^+M-!<3KlI85#4)Ru1(KW^2rJq`+ z(z**HB#Q#?Do{U~IcXb2KdayVmJ*#SbtZD-SLjAwvfJ5`DE=c_d0gq~Fn|*=>!JAh z&~Y*5!; #|nIZ<|g`%W}f}y zdDng0WGM^FUK(eIf1ov#O6KmEQU0USnR-*ZtLrS;E3Rx+1p>T!MM7V`m8Qk8KT3Tg z;D1fgh;WiQouHrQvXbs5|3uBvh|%yvBeS!`wbVYPr_MuHej?gFog}^lo(FlQ@v@Fu zO~065Lfb_cXNbmYGpIOf+>WfCp-Fa+i%xm;@ zM+5 z#hSt=QX*HC6b$HivJ5Kji1OG(Vjco3(}#oR9aFnSJL}-@ J1Uh8R6d}w0Zm@_9*PGopwQrPtJZS?EALr$f(PC zsC6-Lv-naAF6D}QvXg)pdD23TVs}o(lEQ9x&TS6e@4?4Eza|f-d~P=Xydz0j$oajz za-S`X?KjXQ7{q)7N-Sn3;9xLJ@P{ut1+hx`O>j+mdnFrI`tRS?1Yq8ZG*@O%bC_&8 z`E}HLDi{iMmZ@ZMJ<}2NBEkXB>z{PQM3x3nC}2*0vmca3*7~-se_L<=d!+MlKPGHX zdb#Kf;Bm=sBhqFzm)G=MQk%dwA2uMK!aiSq*V)(mXtez*9$IxAq}-T$WR>>yM~pSko0u o1UW4(7a z#fqt6Y2;j)-S3xRgK(A`ywND3=$!HRr$%N8t;~g&(J08EOX>3Ei(6G`DpRKpId@<~ zg$;GKPlD^iv^uFB|IGJ(O3LMO4 ^?+9O(%A6F2bB# zy?KUjE!; 8XKSjo8Sl&eGU}yESQNEbj8t#b(n~wgF3cX5vn_|8Tbf#qol&u* zJ-znxRY@tiul#-Uk!Ae{ t zUK__i?BghfYbw{hmy yzggH?*Su8&t zHZ#r^IV1{nGhM#tvBGcv_BNyvM%aD1{ZTY4?BLfbBP| t_ZNzf}c7K@9 zzNP8cveAEf |T_ZVKj64?&l=3=$HNMC`p}8shZEf%Ux3ku_*BcutyNdI`yx?>XhW+0;!wpl$ zy)+MG%};MS3kP>8&ZcOESY;>e>ji8x^#Xs?&$@BZ&OhDT;rJ-qa!bf=Gc3D_JM+9R zE n7#xU=)bQR>Qxw8FB1}-X|PN- zT^$*)cDK~dqB5m=I{9aEA+CB*@MF)Uon_d!r;l0+6{H(F{px6rZR4amV@3VO$H>0` zV`a2asA}nE@z}>BJyAjhT^Uqb!ic-27WcWHl$u@lYirQ5jN^PMZ0)`Mn{}o1L1fyD zf $27WIpVq3w`)`~?(iT$Ar*u )V<3NB(l>UCHO@oMb#l z7=3BD^4|k9_m>-wv@CaAB)`<|f3qCc3&N*ocs5+Ra{N~$Z4iFd+CW4*<;Y&&beTF~ zfp=pj4w2B-qc%}ec(t}k<@4ds@V_P(hA^J+ZriOd64I=aQN*_Ua7S-c!=sVZil2t8 z(i<<8h8!{#r?I?jA~&dtroTy^WVpw?qQ8ggRFhb84)^|PRTISjqaW8;?Nn+M`)9-j zE$g0MIU7H3!nj5cv{@0p@!ZVe+l0YU&5N1O7n2~het{@9gi-5vXxEdFVMQi+&C*fX z2l169bliD2569+2QD#>vkuxBZZJhFgbv5cM3sM|yaivVAXDzJhe*k?zg1^hDIJH)q z#HD<}u9ilw1`tIntX@hGJ$(RKco-O7{nEHs #v-D#;BBbPh3mY~-jeMYhgUZES28HOA>f1r5i!#-h$2$*62>TCJfgVy=$m{{Ys;GXeb7d{ z(=B@wc`vIwk6och#1l@Fcq&T*b>3wpZQ#LG^IRF)fDnkdE;Vu#Mi3-5ZpDI>B^5?x zMjd-~*?9Qzy-h69RRM2MQl O;YhD6YD- z3@fblwGqI*162nJUH92V`{)FWFuH^rVQ)R?rh{fF;g3$sIe9Jkm5*k8?7FrlG+!yp zRJ8|f7706cP-N6pCos^wCDcGy130e_I(A}lMZgf^!t= NWc; 3Red; z(W2&eRnUMd9qcH?C*K$rbPqVf>MG0CTo4Q M{TBwBsno1 zLJNA?@$~mUeb*Jn^-G??Ic#!L{&T5+Jd-hjGEIG3cTP#sM>>}9u%Up10(8$hh?Ge7 z5{i>v?AUiJf(&G7u%0 H!M5a9%M+^GVR*PPVt6n%*bU%h}nXUU?echE)RV_OQqa3Xt%EvRo-Iqe65) zks8ceQBW0-l_JwPtup2cQ)e>+D|-bccxrIVT;#|}B3+rQ7Nly;r5JOTVR5j!wN*z)B#I}3rYgT(l1D|zFh8Y}gCekyE+@^KciZY|t2gDlcHtGF+Xr^s zClsq`21=Hw5u=48oh#L5HS`|>jUeNStBh!-n_0pnYKehq&?zIX++2s}QyNgVmP5=1 z;=!(EX)1PDRqj14#O_q26zIuOmZtL$X1xRR6Ny~R$#rLQ>X&BDw?)~8-RJBLAbu7J zAqoqDzdkbEExRu4xpfupg=?27V2BJs&T(0XDcHev1X%$v=YIvg?hZ&R&GXkK+sa#t zrq+;`lejUg`e@Snnj@7Bhf?!Lx~++g8}kab7oxrZfjaZt+oqyi!xcCpAmx+}$ei(H z(@kx$l9*W&bu^`7Y}mC}#p}UZ!0UMP-pO|&G2CESa9flp&LVKqhaJj{;HtKJCvN1n zV;n_QHMAuxRt}ZS3{+?<7joqw2t3{YGt$uLT6Y8cw^ICPQtmNMD9d{)voIz{N{B5X z=}BucAg-p-MQ1XxZw5V0_V=9MiY)mvXvLrkXo?FoC (KFI57t` z0ioz&mkdKrKu}OWPHEype?3Vd5DqA1NO%h9-(JdcEd(~{-^(;GV^ q>FyP|u=ft;21kM$S3fGo!GW*-Atl&rY0^MZK4`;9bciP}Do{FzeI|!*MDT zf?Ct537w77OdBp>nKf=-$30lI?WR~;qIw4)*Ut3NiUFkTDL*jrNSx#um(iUoz!Fu_ zOuC}%>9THIQ{lsku;wl~CKZn%Fv*Z*i#@PdrH~!#GE8MIXReKzuBp#hDB ^`IO1T zmd#Ws4DK(P#nsrdJOKaEye!9DiGmf08tuqCV@B{*IYz1FNfkhQZ$@4|T-)70_H0)! zXK>)pW*OmrP!&WCDrhBuCyOxc${a}W$$LcTZ{6kxj2a_y{E@^cHp!V7D8(re#1N`9 zOT=mEsdXWn6!U6My;@8fcsk?JM|KquE(e`^Pz3~dQI46CjI&Cl lLVrQ$;Sp=IzR7# E^`k`I?%z_M2jPAa8a3Fx7%d0;C#b#O& zm^nBg&)KckuNqAh(|&8~iU7L_L&995mscCyT$$boA#6 E^W_k$7pe*RN#bxD VJ;k*e?&!eCH-kcr~N4ro#49^9aIH3dY zi5TUNdNN?s!mf1cr4dM`_;nR7S1)WYNS%&IWD8n^6Anw}1n38e9Xm~dGq5xl)kOOE zGEMv-@?Bohgb*^zu82f*uHF+8=+TFS5A{LQke2!JQx7 ZPx*-HUw;RXym$Q*m 3l6*vL1$?@P9?Fe+aU$yw{#YueJvSu?!ijL!tIMnB`xA8QddtwCv~J z 8 z^{H44awm{ty)dX}kVO{VN?iet1)$G%#jXHL$>6(#jQoC7eKuDD)q!1jCsk1Ptt>xB zcGe>EVRp-5-T>tYac}QH|5pPFCaV>#GU`LdYa!^GS@m?6H;2oH-9Xz#FpllJ&WdDS zG@1L@1-qk{{dQSbP0H=uXgH~9jkZnYT~q~r6_w!~%m^rwG6%Bd98&mjTki16^w%pI zo6xw}Asx^Mr&Qy)b8hA8A+F7IH+tZAr%tyzW4f4C9qLMG)dl9RFUHT8&(64mWOXN8 zt6sO4xr?W%YiowkVh)MykB-T+yHT{qg@xf|en|?>ecf&A?DHY_w8X0X5es-(N3>20 zQ(5BV>x}iVsR1S|S+Z@Rc&60d{b^wW{Hw6!f_J)7Vcp4jz7g=9g_luG+!9Xy&S~I- z0+j};b7)7Lh`#o-I`eQocd FtJiz2d%D2| z3o#YIYP%M^e52QA1H2enm8IshM-9%nJuE6G2%^(%S7GPxaURj8N%wYk_&O%BMnwFC z4m9$v4jyJd0x-lN?+N7;)1T2szJE_nfGsl2L7RI#!rr~*xleILm8PO3HExHqm(uR= zb!|~)cxGT`hi8CzH%-;ti8F$0`xVjS-oEc64mSI8a-lxjH|&DoSHiWO49AC)tuv%3 zyY)Q9OTvly8Gc^1IT`9Y%C(o4ZnOElZSC4!pb4G{*CZ3}$pJKLSQaS`Y9gY0VsnEu zNCw{~oZSl_Cl@DwdjgR?N_DSTYr)>&? |IRs!sbz9fd? zL1;0e0yMg6@mrkA1j2gyUR-@V$7z7CDwPwi{%C~~a1kdR6L?eML&1BY4lfRW1zRGn z5RfTFP8Yilf*?Z*X@d1(Ra7)+kwqjyM$e;Q;pX&Gs>;7X=h0`D{~g`=!48N!sq$UL z&v|E*0&gl1)hhsMCaAsFdKMUAY|GxU%-lcH$K2GS*6r@@vo-jq&x6eY^{%>;v6d%& z++0tzn_+#{yWXFgt@K@wF3?}O*|yEx`IS%0Z@JB{&hMGnbAsKNB4^On41D@^A+!eV zCog$Sh%}D%!R1pSvU*v7;&E@W$%}rc7F$kDif4i55fOX1y#-Kar-IK9r4xP)?4B%* zItMMS$hb82*89n_Aa_+VukpcT)>-S=lFA2F{YUQ5%ZIimgLR^6*jPCiN}(&+bzV|F zI;Y(JQ{+=C9W|L|a<_PB_I9&WDsyZFfTa3bTCn)S(m31`tL^RQ+v0hY1L OM~Z!h31Raj z@v!ettia4{3gGx{`H^96RqpV4Y?r^ys;l$d-0u(&Z R=2eFku#aJKXX>`ibpy>H%(a5zr{9WdhDh=Exo62hm+wA#h zQFO|~`sp rigj6p6K$OU_grU_K)DZ{T9{ zJ$m%&(VgJ$KHmuy@iV)@t>kef4HH;P@{PEV$yA1o-$w?I@-%OP^Eqhl5?Y8Mb)i?* zNQH?KNZf)^Aq?c~$dwfH`=!o)6?lDIq?UY S zN$`ZD%Kp*D4h12C!8%^VQzZr0u{1!LKzisbiMamQn_;jJ2LeQOCLNy{gjQ&(0ALps zn?=E29QSf*q!cahooV=4`TcU4&s~YU40W5N9|qC-lxX?e-B*no*7c(h8x?TKHUOH4 z)s<}SI}8T`mK7$PP>q*qCj@=LGOTYnLfrW)BwD4Nf!mV+1TZ)u%^UiMP7jn-Vi?w? zW_J>7Gk_6B2&2|Wp6mm4dfr&(!;c&S0wG3&Hl3EPff1pDjH0qLBKY2R-@MTw`pZWW zq|W;4$3@Ak5XqW|J!*U_CWt>q@5$K=6!`fE^9PQ#6;_&uL t?2??Z!)1WvHax$R-t aE}Gp>t)eB=KToEpvE0 zf1)n<*01djX}YGu7I 1E?T96Oq4MopuskQ=aF_vFvU==d_Cb8p>B|>Ab*BI zNs|SSF1PJ1h-8SsU%Vvo()x8f=A*~Hv5|70?;DUnXIwlT%27kvC_mQjE^p|*VX7g9 zpMu?Llf;fH6=4tU`p7n~GVq14|K#i+-~m4)5dMT80TNdDT>Lqve60T^fg}7c)4;1B zYA;D&@&AweG5>`oRNNkJljL%=lzk!xEAl;jF)!hh6Q-3aSEcE2I1{yfzne|~kbpu8 z5P>3)QUHjtKvG*sF^7!ERDzNV5sX!0f`AM`5-9;>Sg{x=ECfM*f&d1bWCjRxWI~q} z-T?eG1Tq&NQ}LE2B*F#h%vJ!Y)_j-jF;M|U z6<{cc#Zg7Hu}M)&5o!x7QmQC6sYFC;V;HQAR2C=*#8nWst$EIdlTbwk5LI0)U^b{R z5k}f7B8niyf`w?s7>X!}EL22{SRx857)4PP5fO?kRZ(IqZ3wYMRtU%}6k;q;2H7O2 z3`nq85kLh2K#L?s0)nX#h`~rGps)obSSYbVMHNK_gjE4RSs*APs-U966(wM>P!@EV zNaRLREC5ghyt}{9I~+WoCidL}#OL#ehd7e~xMl$lnpap+RPH#4Lu+368+^?BM;F3c z|2HVuwshyz`nDyUu7{g{4}Shnx9CHh9#X@eq6sl7v1Mggs>Q60b0#5Wvjh}Usx7uk z!nKXdaSR&D%F%^Ih?1nDB2=oZD=@{DWvZ$ut~FR9q8Nn{R4B!T6-Kh-m@2A;Mhg-& zr4}lnh>H;vSdoa*l^a>a;$bjk(8~rjwMGg>rLYkz6ptaBjH)aZB06PODhm`*6cvJt zX+cCpRasgw77C;hAhASXjErQ6g2E!jg-cjasZdlDQB{cr5m7~h5k#y~RxP$FQkEh$ zD-`H?>ouZEsH(6~D=Q?lv9<+C76QRQ+Y! 0H_9g@%0j{%(!t@51(Qhy@6Bilc&oD3K8nnp`AT2;4$Lb5%I|8M3N^h$Xc) zB3ok0ltFrgm01+ULYu6Zh7_@kQdE^Hu@aWW0*F=>%-F(I(xr71G8n;`M%p1#R#dD+ zjK-rC%29<%kwigMMHOR>7%o~>Ru;snhziVTqm6AVTCAxuwpfUZ1yzC!5Jk8^a~5$i zxdq%Y(W!Uygg}r4=#gC7vTd!Lbmf~K0bw}|_!(=5Oq7uDeZ=(XsbYjW1Oyaxi3yPk z5fKUqf(TfyOmHfqn94ClVo+qLDHaK xAvZGu bPog(gbrd}gPC^CVmAa!S4L`>Ycq+XqS(6Vdd+n_91lH|o9l3V2{z_ijxaJE zn58&L_&LK6%E3fDa3CR48{Bj`TMWw;fJZdAm^L*i!-+Y*ee&;}rj^5q+-T!|H)pk$ zu R<^F8%PbUPqb;6!THyXnSn1-e#?Mv(vGx@ zHeL+7Dq&o7-u+Lsy34Y;C~U*2Y%M;S4R)p(NS1x$M_^aRB<2$ s_75X$>irsbmBS;LS||rj2_1u;n=i*!OA@~Xbld0sKh*lsQzN)s4kwyIR}Edn zu7s3gZ%YcMs*4eASNbK&_9cIJ%Ej!9#{wm>woiI2rjf2UFMglcVi+TJ*x9tSk7mD! zmhH8Hb)gdINIbUgxf{=|K3aD-94j5MF&gSSMfmqg%1!u1`{!4b0$Mj@e7L5L{w7|5 zDv*y{tIlp?v3+bHmxXm#frdE;omQYV6!4T6f~Ru|yZ@VBNO0q=N!rO}Q1D !FOMa9{xMR4Is_9|eh+&ZItoiSe&(N3@LYoLCX7ioZ*>IqHIu+uT?Jh5k zcO7ZWvM|iZId^%+p;Ed?JB}pp`Di4|kz?e)Pw5p0Vs3>Qkr;K%g~roGKt$8v S+t2otL&TLCb0 P-~R`McC}bcE$<6-wL0Q> zX%CK=jQ7!QTpjM>@JEgNpbL2a$;*A~koncxwhB6s$5sw4^s_g>L}^~|H}9j5!JV$B zUVHQ|I1acQ#pTb;xs4D9;=s}1zz7kytDgY1_}LaM{`FMwDc_Y|J#yTyPhNmkUefq0 z79f(p)JMk6y* 5_&LMgXPfuI=kWJq@1L5d+d6qm VJiuoT@InBu~3K}YO6}K3aBA50H~Eoh>lJJlxEGTT+g`%UB`^VQaF*( z!-l~!d=WF@xo}T}~n }%}Q3}CDP*{j6&;GQr zh-*`k((9oUTXS9Q2G?g-^K)g~g&(7_?z?QXEj}4~+|c^gqqeVmt;XI{*Z4Pi@AaMb z-fk}e7A%A}t7{fWDIkr&0H8NRsrK~tofIw7AycF66|f&qpQfKvq;q>i#mB1juhQGI z8kN z<^stS2#AW16j&@#Kv;^SArt{X5J8C)Vl0GGNT4Vw08vyC2q-L2P!tvlu!zanH3dXa zRwPu2j1-9wL1PtEVlh#IL}HOt5oIieNe0 6-K5q<}yr45k^G` zCA5G!YAgi;NYpBzL`8}yEEENWwhI<4Ml3~RT3cIt16ty;LTQi%ilkt{83!o}z!Xvo zBo+e66a|9Cgjfp&B8wt~QAJS^WCZ|30T{#)QC2D_AfPOR7^uZ0QYZ@`u|ZZqRUoiX zSgR36MT#KEh$@OG#1RnzVuFIGD#TdED#3(Mib$~;6;X>65fxNfHWh_H7C>1d$VDIu zMUaaN1*pchrD&8I(YA=x7TZ#yF-0wuL0K3qQYeg76+wtGghnF-Mk)%VRw$r?F&L^V z5mrVE6j5TxsTho6D#1}$D#eP5$c#}`7|5v+Sg;j>Dn$fPNW~UKSg=M#h>gbL3l$Jh zNTgVzh{R%wh=7byV5+Fa1yE8&7>X*v1XM_|QAJ`ZD#T=h$i^uwGVQF(HGY@gSqX?~ z6bPas!bT)&QcA!pTC7G4RDl*nkWeZCQWmrorGTO;NGOV =MUv8^777<(C0vUF(x?j*0T{AHBB=yq76O7WL|Gsp zD#VKvL 9^rA`DanVv$8yDFjes1r-rh0TB>TN@GJ6fTA?T%u@?+ zrQDi %ESSK|q@i*yVrCAs?%QK7hb)EKP^^G0ErRA+ zqm)cWn5ImmxpNH58e-kIX0+S7o3t8Su`;=BYh7Ft(@JJ$W|1kaT&g;4Znm>V#ZzgH zQM(yqsk>}4*Jo`^-I^V@8@CrU?XgF8oogkU-K=)n+fmK1&78PMghZr@B#bF{T;{IG zf+Q;7>c&Q(ZlHvWpowuAfvOU?lo8SnifnK$L|z0!2^SEAE-?{dsH8*@s7YA}DHI@# zSrm~%3JVR(adO0r5ky*+2r)$#C?Yj;12 +Gi^CpZbuESE?T;| zW42RB>DyOpcDY>GHFVt4;hNTFYcSPq)zvgA?X4GkFx|Rl;^L#1S~6YQ&7Ed0IN`H% zGV57fxpQYq-KxyfYV6>uWy)#RWpg!iFvZnvHA}3urOmZ2t<`p|9U9o%3b!T8t+kt1 zS1zvEn`UckwmRDe?OdamWX!v4YUM*Nt*N|X-B(*??QNSjZMx~i+-)^;45NnUTWz+^ zYU$fX# oZq+kVmveQw+GaCa+hcaso3)07)ZeB%Zl?AW-8HMGY0a zNlopyYj!ksw%MsSZlk+4%?9O&JGF)zs9o8oZKllDT+Qq@cbRv!wvDac(@H6Fx&k^I z6~stJtU^YFj&MRn5C{u8D=0v2LAndAxA$ho$y0VUORJm|G`hQGX8zjUwb )!0s=D`C~pvX$X@j8J?jP_EJiEu?L 4=2jpF9-CWXV z&)4>y+6|1DUCy RWK@b+`%rPZvL}LX6K}A~DEh$S%f+)pR6561s zAdE8O2P)d!w-}aDWk$B5mW;Ng0;R02V^Fe+GPvf=#56cHi%@FjVqt2C mzjiakVt+=HNTPVt9qKJc*sH!4dxhhmlX ^%mq>%Y4*bDP_-%e8hHU2ZjZwWl}qew5*oc$4my zFiywfW&+&8ptvHK*_5kFR*$J|$|k7hWCUQaHE9teY>E_CBMn-hDvOOkMMelC7AY;U zU?`(ftVFj-h>TQ0Vv34lmWV5?%vMyYTBb3~!i=(|V_8NimZlkQS1n?g%8FRZjuu#n zj$mc0E06CclTNbN65`x$R~Io;9A*qFvy$r!W}LNgG@2bc&1SWe6h~~kZMMm?v9_*? z{!V7>n d*FsHq7GMi>ga5C(MT+BqeaKRT^%^KX@R+QS@+giewX{B(wl)Grw zY|PBo+g)hSX Q%9Xoh$mOC| zv_|P^fQqW=F*K>7w&k(Kx@KZa7U{$?+FO~G%%VAyF}T+*7+htQYja6(wAI#N>Z@%t zS(+|cmc_>`$% Gw#B+BP{F~+8A{7GaWF!q)dt!!<+)~NU{owZv~8hi)`ON(nT*SWjk%d_ z6s2xiiYu7aGcyw^tX+mmWr2*rw^t0eSmSdoN>@yds_NOTR=aG#)~T79MbGGN)1z$E z_}k9%e#