From 3a58b1c3b5faf85a0f538e66392f38f807750765 Mon Sep 17 00:00:00 2001
From: Askill
Date: Fri, 20 Mar 2020 21:21:31 +0100
Subject: [PATCH] enrolement works
---
application/endpoints.py | 27 ++++++++++++---------
application/static/coms.js | 15 +++++-------
application/static/main.css | 18 +++++++-------
application/static/main.js | 40 +++++++++++++++++++++++++++++--
application/static/render.js | 25 ++++++++++++++++++-
application/templates/index.html | 4 ++--
test.sqlite | Bin 11091968 -> 11091968 bytes
7 files changed, 96 insertions(+), 33 deletions(-)
diff --git a/application/endpoints.py b/application/endpoints.py
index 324f23e..2b442ba 100644
--- a/application/endpoints.py
+++ b/application/endpoints.py
@@ -4,6 +4,7 @@ import requests
import application.config as config
import json
import cv2
+import base64
from application.db import Session, Person, Fingerprint
lastImage = ""
@@ -14,17 +15,20 @@ class PersonList(Resource):
try:
jsonData = flask.request.get_json(force=True)
personJSON = jsonData["person"]
-
+ print(personJSON)
session = Session()
+
+ # get Fingerprints with Middleware
fingerprintsObj = []
- for fingerprint in personJSON["fingerprints"]:
- fingerprint["fingerprint"] = fingerprint["fingerprint"].encode('utf-8')
- fp = Fingerprint(**fingerprint) # ** Operator converts DICT/JSON to initializable
- fingerprintsObj.append(fp)
- session.add(fp)
+ if "fingerprints" in personJSON:
+ for fingerprint in personJSON["fingerprints"]:
+ fingerprint["fingerprint"] = fingerprint["fingerprint"].encode('utf-8')
+ fp = Fingerprint(**fingerprint) # ** Operator converts DICT/JSON to initializable
+ fingerprintsObj.append(fp)
+ session.add(fp)
personJSON["fingerprints"] = fingerprintsObj
- personJSON["face"] = personJSON["face"].encode('utf-8')
+ personJSON["face"] = ("data:image/png;base64,"+str(lastImage)).encode('utf-8')
person = Person(**personJSON)
session.add(person)
session.commit()
@@ -120,13 +124,13 @@ class Camera(Resource):
def get_frame(self, ending):
success, image = self.video.read()
ret, jpeg = cv2.imencode(ending, image)
- return jpeg.tobytes()
+ return jpeg
def gen(self, camera):
"""Video streaming generator function."""
while True:
- frame = camera.get_frame('.jpg')
+ frame = camera.get_frame('.jpg').tobytes()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
@@ -137,7 +141,8 @@ class Camera(Resource):
return flask.Response(self.gen(self.VideoCamera()), mimetype='multipart/x-mixed-replace; boundary=frame')
elif type == "still":
- return flask.Response(lastImage, mimetype='image/jpeg')
+ lastImage1 = base64.b64decode(lastImage.encode())
+ return flask.Response(lastImage1, mimetype='image/png')
return flask.make_response(flask.jsonify({'error': "No idea how you got here"}), 404)
except Exception as e:
@@ -147,7 +152,7 @@ class Camera(Resource):
def post(self):
global lastImage
try:
- lastImage = self.VideoCamera().get_frame('.png')
+ lastImage = base64.b64encode(self.VideoCamera().get_frame('.png')).decode()
except Exception as e:
print("error: -", e)
return flask.make_response(flask.jsonify({'error': str(e)}), 404)
\ No newline at end of file
diff --git a/application/static/coms.js b/application/static/coms.js
index 71e1d85..85c6b9f 100644
--- a/application/static/coms.js
+++ b/application/static/coms.js
@@ -1,4 +1,4 @@
-function getJSON(url, callback) {
+function getJSON(url, callback, fallback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'json';
@@ -7,14 +7,13 @@ function getJSON(url, callback) {
if (status < 400) {
callback(null, xhr.response);
} else {
- console.log("failed getting");
- console.log(status);
+ fallback();
}
};
xhr.send();
};
-function putJSON(url, data, callback) {
+function putJSON(url, data, callback, fallback) {
var xhr = new XMLHttpRequest();
xhr.open('PUT', url, true);
xhr.responseType = 'json';
@@ -24,14 +23,13 @@ function putJSON(url, data, callback) {
if (status < 400) {
callback(null, xhr.response);
} else {
- console.log("failed posting");
- console.log(status);
+ fallback();
}
};
xhr.send(data);
};
-function postJSON(url, data, callback) {
+function postJSON(url, data, callback, fallback) {
var xhr = new XMLHttpRequest();
xhr.open('POST', url, true);
xhr.responseType = 'json';
@@ -41,8 +39,7 @@ function postJSON(url, data, callback) {
if (status < 400) {
callback(null, xhr.response);
} else {
- console.log("failed posting");
- console.log(status);
+ fallback();
}
};
xhr.send(data);
diff --git a/application/static/main.css b/application/static/main.css
index ff65f29..da21677 100644
--- a/application/static/main.css
+++ b/application/static/main.css
@@ -27,7 +27,7 @@
top: 10rem;
left: -50%;
display: block;
-
+ padding: 0;
}
.listIMG{
@@ -46,7 +46,7 @@
padding:0;
}
.card{
- margin-top:2rem;
+ margin-top:1rem;
}
.card-text{
padding: 0;
@@ -60,25 +60,27 @@
float:right;
}
.middle{
- margin: 0rem 2rem 0 2rem;
+ padding: 2rem ;
+ margin: 0 !important;
height: 100%;
- width: 40%;
+ width: 45%;
display: block;
}
#image-left{
width:100%;
- padding: 1rem;
+
}
#image-right{
width:100%;
- padding: 1rem;
+
}
.heroInfo{
- padding: 1rem;
+
}
.middle-controls{
- margin-right: 1rem;
+ margin-left: 1rem;
+ margin-top: 1rem;
}
\ No newline at end of file
diff --git a/application/static/main.js b/application/static/main.js
index 9bbc4a7..57c847f 100644
--- a/application/static/main.js
+++ b/application/static/main.js
@@ -5,6 +5,15 @@ var ml = document.getElementById('middle-left');
var mr = document.getElementById('middle-right');
personData = {}
+/**
+ * Retrieves input data from a form and returns it as a JSON object.
+ * @param {HTMLFormControlsCollection} elements the form elements
+ * @return {Object} form data as an object literal
+ */
+const formToJSON = elements => [].reduce.call(elements, (data, element) => {
+ data[element.name] = element.value;
+ return data;
+ }, {});
function focusNav(id) {
focusedID = id;
@@ -51,7 +60,8 @@ function snapShot(){
postJSON(rootKontext + "/api/v1/camera/", {},
function (error, data) {
document.getElementById('image-left').src = rootKontext + "/api/v1/camera/still";
- }
+ },
+ null
);
}
@@ -70,12 +80,32 @@ function renderPersonRight(data){
mr.innerHTML = string;
}
+function enrole(){
+ data = {}
+ data["fname"] = document.getElementById("personform")["fname"].value
+ data["lname"] = document.getElementById("personform")["lname"].value
+ data["gender"] = document.getElementById("personform")["gender"].value
+ data["yob"] = document.getElementById("personform")["yob"].value
+ data = {"person": data}
+ console.log(data)
+ postJSON(rootKontext + "/api/v1/person/", JSON.stringify(data),
+ function(){
+ location.reload()
+ },
+ null
+ )
+}
+
function identify(){
snapShot()
getJSON(rootKontext + "/api/v1/person/?useFace=True",
function (error, data) {
data = data["data"]
renderPersonRight(data)
+ $("#middle-right").removeClass("border-danger").addClass("boarder-success")
+ },
+ function(){
+ $("#middle-right").removeClass("border-success").addClass("border-danger")
}
);
}
@@ -86,6 +116,11 @@ function validate(){
function (error, data) {
data = data["data"]
renderPersonRight(data)
+ $("#middle-right").removeClass("border-danger").addClass("border-success")
+ },
+ function(){
+ mr.innerHTML="Please select a person
from the list, which you want to use for validation
"
+ $("#middle-right").removeClass("border-success").addClass("border-danger")
}
);
}
@@ -110,7 +145,8 @@ function loadData() {
personData = data
loadPersonList(data)
renderIdentify()
- }
+ },
+ null
);
}
diff --git a/application/static/render.js b/application/static/render.js
index 6f346fc..2f27123 100644
--- a/application/static/render.js
+++ b/application/static/render.js
@@ -12,6 +12,7 @@ function renderValidate(){
`
ml.innerHTML = string;
+
}
function renderChange(){
@@ -20,7 +21,29 @@ function renderChange(){
}
function renderEnrole(){
clearMiddle()
- console.log("enrole")
+ string = `
+
+
+
+
+ `
+ ml.innerHTML = string;
+
+ string2 = `
+
+
+ `
+ mr.innerHTML = string2;
}
function renderIdentify(){
clearMiddle()
diff --git a/application/templates/index.html b/application/templates/index.html
index f447829..211dcd7 100644
--- a/application/templates/index.html
+++ b/application/templates/index.html
@@ -40,11 +40,11 @@
-
+
-
+
diff --git a/test.sqlite b/test.sqlite
index 35f6d6611e91a78004a44c80561cde16b3672aa7..17e2cebf5d5395784012ab6009500b0b34f6eb45 100644
GIT binary patch
delta 3013896
zcmX`TdED#lpBD7az?}2UFvD+{L0mw=6*NkkW@mkqCQZ{eOVc)K;zrsmO`4=hnxt(&
zJAnRhML={EM?@HKR}f{~SN>9VWOZLr^bb)ObrALH`KjmqT<1LRbDq;S_nrH@T-Wu@
z5B$Jy{*E62e$`L?o}c;ESKsw(zxwLO|Aw!=`t
+__3ep9p*d_+H>A0pACFKk$=*
zKM(jRz@HEN1;Aej{6)Y|1%4Xv7XyC@@P6-~0sN)FUk3c;z+VCUmB3#G{7m3y0e>~{
z*8l|Y*8+bX@UsCDm;e+o1!#Z)Sbzg~KmbJG=Kw$VM}F+5|GZD%`@+?KtgicfALex2
z69Azghg?b3T=Vitoc88k^k145#x-4z(`bz7{G#Sv_A{xoo3}5c!Qh*vUv7?p);s0ozV0y?+s+;fH|~ri~%qLWAk`hAH(X)zfP(
z8ST-PRr#DdtIh5C9M?@#H>O-~4Z*)`qg7`*jd|saoTVPlTyq1r@QS86yKd-xxu6AB
zppjKan(4ERx+`qMSQw{ZlY3Z=dF}09>PFqjlDc;`j~i|EO>-5-$w8&4jVmd}ZW2~;
zRupMa>|ND8Q1oET)|=VpnQPL5u$s7m1?mE?JPvK4M8
z3OsQbl33))<8Ty-7a#TfjH9)NVr%-orAThlTXr??0`E{w$kpY#NoTsQDYC@q3r$y2
zDJI-ZJE}YR?8a6cMVy!nuIWI^eMj~1Fj7tg+m)M^U-Ebs``IAbB@kp}#<611TOd6EO>LJ>-Xb%Hv
z@48MTr{mfVjtiM2iTwIhYEp>TbLYYFQ;nk+n_h~PM{U-(v7#cEa)(YzGNmP_>s^y5
z^H>sJwpO@{{kY}nv9g$?ZcTDn611<)EcZ#;r`0lJM}1fZi*+~6_ZgF)-%EU5UerxC
zQ=Quphi1(6L(r5;Jog&PWwZ^qSS6RcvfexPz%$I$3+W>(_F{Car&ZG_4|#bV^L}=H
z)lYs|((}jBqX$u@$%H=yG+k9WX;))H?p&H@ar#$B2RPhFPB*7djNy}CJ@v=%7qCEI&cC`JTHk>cbaF}u~e43$lGEuuKy?w7oe
zeYezWosDa+pI)Zkz3;@N63EK&ZHG?Ch#ts;yT&$jhqg}^-fZ_ij<2{_T*dj?CeIHq
zIL0B{l=g+-X^$(02ER;IHss6}#s^)5PVL>E?bCC%^-ygm-E!4YG5*=wt4?G!A&QAv
zcg2k>#`U$yoW?k}`C9WN(-k9zXGMocIGbE=={zKOTqZC3ngo3b*I-xptoUr7ACx
zL(PZ2((|P>OV@KDd2ABmy3()0T5P+hxNv%^JI2E>!lqso4}#pOJL9N7AG67B&mFe@
z)X9}`b#3$;!>XHNwlCaZB3~tUyU%d&6@)zLpV@Fzca+w@kL#
zQ*ORn7(3kT*QUjvPFJn!$#W8!d=n|
zWVwGD#&(?z&dHI~ojR(!%W#U6?4@Txvk4?5jB>^^*XHD}T|~X0@#pPkacz&=(}{B3
zK4@tg+oSjP!_u29YKMr!b>K!lJ;Wf?>uaRkHSGHH+8_2)GdNt!xY6epLUX|gnvZrO90Eh|&Xjom&P>q6TH=0nf8
z3sE(<<~$x(x69E{m)0iDnx(`n?>QUGYAKoeCEHpIzntjRx*V6)x_FXw&M?(QsLp;u
z-UVAp8BL}mGI-vo
z`*QPM#`q~@r#to}v6^=-XqOW^&6Hbv5z31&soGS&Rvp8{WN^Egt$DlM7d-+;cN{}5
zak-LtY1BqC+;nRAQs$2fnXwK7y_}9D``nZLK#O@ycf56U+HiVXxQnq^QTV%=AWq|f
z8fz-fJu4N`+4f@3Bt}v-eQ}lw1gn)hthc(#M|YwhszQwDnAVf0$kWsiSI%Z`?63Um
z7=>-(;p5byk&};yY?H+8U3=&ZNI0h!p0bXpXqaj@#sBlf7hD
zMH`jUb8%y=+%|}Tj|Kd^*~$oX&LmpaPa{jofnRcMeO#EMz^iS}ab0^T^B3MIbVA!H
z=g#O)p6&E;waz>_6C+38T-w
zlYiVYw8zAYGrK*-;W0T5!GY4H)Do`|&5K;5%px^fD12O$9vKXSG^7dH%k6F?MFdjg
zCSHsQRfctaN{~M%Y#*AO7zgp8pn_c!(d~J(#?}d!esx&CyyvZ3*O7G`iFkg$wc810
z)e{BxD9sb&m21X!{h0DmEmS?$@SQ~{f;p{J*Lg-^9^))qQQ@8V9WxxeDNFJ^YJwA|
znYC!vbJT1t#hDUmUoI0uQ%}bn3Cv{ZGh@vUF8A6!$#^(42I|!$--Pa7^Xsyh*IBw^
zF0z}Gt+G@vT(#Xx^4QVt!8`3bW74_mm^J!joW`RT7?E;K=EHjJEpwl{`zs_4=Ug2O
zDa~ejJ72i?#_7a{%W`9`rS(XUd6Br`HGG}xWl?S#-}0O7p%E7j7T4jfajNCTZjySk
zv3PFVgUP1zsG6PiW>j<>snXAy
z<{h3<0&nN8qoRCtJ;a#v)j>#qIjCI2cX_NEtfOosC)`Y>&IzTa*AIJXDmBO>BE`C;
zbCHmAoO!Wxaqg*iGTBef(mm}Lx^qBgK|~7|<*<*hhz@?5L0{bd_0E$mg_3C7(uy~gZwdPq*$=Cb<|_nCHTUoYqOotc`xZXf3q
zSF@F}wUQ2AREE=uf3DO{QO))k4sLm)O7g&xrrZ{>$92cuCfqxYxjftZ#yA@I_nFW!
z%0#Xk_obTVm)Oru7_5UWp#mPICo-FSeaGsqYtAQ*xowH)r0K_&BT%E%)bT(OHbb3N
zgkF6@Z=R+9(5^ypx%3e$HCD6lj4-_Uev;;{wBF_CYsSbiA!1d}u4Li@(NK)H~G+HCxtQYldyfB9_pjI4ZE5e
zzkH84^xK9!lwyBFR!!_`%28h1@i9k=5vm(RQb|L_of~m}kClB8yb9k*r=>t?lXmS9
zofP^^uH)w|iBynUPlj=qwvIp5wZ(3holdhaeIQQXUPV2dB$kD%%Jipt9~C1Ys@3z-
z(3DGsUS3n;MfcA|cc{9`pQ^ca7_X0AoQGXZN8YiScJ(XhIJKtP-Ka~KZX;KFS#I^y
zeLCkDVRCGFdOGds1KrjnIdbKlvZ`H2(-T1?$-x-Nt{ILc)m3g=KhTm1q8~Pfv3zVS
zRleusLfo_ReY3x75|@y1m`SmaO=GVXQn_qwZ&99|zel36V>)AKIR=)YQ`pvKB-~3wp=GTkg
z@wNWxw|@HeKMXqIkN?Pb|IhlTZ+m@izxwKP1JuA3sDKhEfD4cV8E^(tAOT_^0#3jY
z2!US&{LR4M1pJM_-vIpeKmho_0q_79*aJIY`_=2K&v$$=06owFH(&$UfCZR<0jz-)
zump5q0cgM+Pyq#)0W#R6@4=rE@HOxYfnNapeBkE+KNt8pfCva+RzC9p2e1GG(7+U+
zfC)eXKO0N-dw|~!{4U@>1pWiyj{$!a_#?o3S^p659|3<5_yfT22WN#h{lJ@l;6r@i
z!+hXFec;1=;Ddg=@QFY0$v;qT$fh+yM6@TE$Kd=HHScwm;$Ol&D
z11t3509yb{`GF<37-RlE;
z_<_Crz@C0!Z$GfdAK2>;?D8*9W%k1Kan3ZT!G?
zemsCDFap0A_$9#K0{pE2R{Y}!fL{vyGVK4yFUJ>u8}PRS-voXI@OJ=zC-8Rxe>d>=
z0Dmv=D}lcc_*KBK27V3j_XEEc_y>T05comh9|Hbi;MW2F2=GI|KMMSM;2#5i1MrUn
zzwyW8x8L-GKlJDHU;q02Ue2Ekd_VAgz)u3c7x)J76M^pmz8m-nz;^-P348#bflt79
z0PolPalp3&-v)ezd*}ZK{x9Iq0sklPXMrCB{tw`P2mUwUN5A_1uRi}7eDSA&{}uRO
zfIszvzv$2EzwY(2ITt-!wk{PVy+2mG_Z
zKLh;Jz&{22lfXX#{1)Ih13wJ>Cg3*$Sdq_Ina^0E&seF?Sh3GP^gg0k!p~UB&sfsW
zSlZ86;?G#>&sg%$So+V{g3rGOz?OW*)_lemea2RO#+H4?)_ukne#TaQ#+H7@)_%qo
zf5ujS#+HA^)_=w=@cEYkxF@)
ze@d5sc>-T|B{++X}<4*W6Tj{<)L_`|>-0{$c54+4Jx
z`27GDe+6!NUR-=#ITZlC!tzar5Z>@R{r;I~%`@b|80?F}Ts~G*hxUpU@*i*e&bU
zwY@wq-#zEjo{+Ri#t&v{4OG>hg_GB{+1*|V{M~7tIyYCFyP_qmrb@$X!4EHy=7!}a
zH0AvHBz?OhyG248bV4ZSrgIzHCZpTl*(!Leh>mFD9?x%P)2}8~M@D29mrXd21gbQM
z5*5Q?7HR7!5A;i%j7Ggj$-i^%{h}J#p6;rneiKP+pRN3?BI#Q|#V^lg2rEA`?1^Tc
zrMEE^JyGc7wnzm{+C@&&Md!9`j`^LR9L*_<0=^a!dt3%1IU%twq}VR1N9>3O&)gT<-k!o#f`+KVNw!!AMehLYzC&qfNyN;`Qby%aR=(<+4r*s_^
z+!5VD(d8`28irJv@m`n5JmlVFCp~~~qTPwqr1i5Y8rIqwL;HMoZNp5J5QWd#x`u_i
ze+bE<*ryv=I~19p1^I4%k;=X^{J=`=^{yIsnyk*#)^kf~w#u50<=b$f&FISmpS$ru
zdc0c-)UuEW)_ZDkle!h^+4=6}de=TgL$YzBt*`C8ZVQSheZCt8$Db@)`cUlU1~lTA
zO8t7?&mBT_=Tfex&>ohJepLgA5~*$`H48G!O;=#r{$DQY&0G1CI|%(5Q~=!x3N|^6
zCrU@NvAXq7;_!OJ^LJ;mJ>v(i>c+`5XSHpl)$Yyb`}(k=ES-x^Q#Y{sXiqumPS!Qb
zY*0uylgrjmuOn$pc8MX_IF3OX?EGmEfs4DY$~t^s{kXc@cYir5IW!2gDU!9FXA)Yg
z6f5wGq!9Xn?zi=wIqAFI_w=Z@7Ak9+7&kmYTDM_M@r(
zKAo(a^qNYGVW5g9=)*XHF6gY2P2(5AF^iN=QDYRAex9G86|P-xfRV1wg0k|lrVUc3J&hn6UBJD
z+kxSZc#;_v+g>Z~LoX!ZDlyeu5;luW5%NXcE1E88@l57-gJ_DPpt5$xbzXbqN8vU^
zL_mlZSowANyk)nxg#6N&WLNI;5led>HG!Ssk(*?8Q
z$%$wzQKadi6h?sPNutA#clSv-;i{G&iN_F=Bss}urz96V
zEwqQD52oUT#%nR`1KyIyr`OuABfkr`=6Mn5Gc99CTB#sUF-((?!?p@oKcpb%n56xv
zN1noW3B=_>7?w}t+(VAd_3K3AZKt>LD`EFMT_E&MAw!5@-V{SGv(+MU(W#r!HP+9?
z1yq@;ylFVFoh?hhF2wWNf?l$+wP{Qi(0*3WTid$fo~18s=1(5Jw@?ggq;v2QmBFt;
z|7cfQJw5oDRvye`w32aBdJXn}{j|?%2_@m4sHtL@%c=#Pc+fm#(vBWhp*S)+`1)%M
zoj{c~hw)WV{=r40&sh$gD6NqFn_s#rmcj6Y>y^T!Jh8KqOZfio-KXK*S*p@*y%jp-
zR6g1z$rispiJhS=GZ`r6)e@8eZP$|ZJK?ft^edP{f2Nw#it?@f*bZ&}!|4N>kALYmyR
z2F15rV>%ZTq1jctcSv5}_wTT5Pe3k$MDgazz-?8@l|9MW2kt%sA<_k}u=OwcqFfnw
zUnd@m&UPf_swY`>+0@M!T4yfr-0gCf``=>7-OWK7)va1KZKm%x>N}};l$b2;cTFHK
zLY6JtwWC5a$5n(B0+7Fd9PY$Uv?goy=3IkjSRq4#3OsA_Yw5hT=jt5ICrHxSCi_Bg
zy_1E(yeU)P0{L#-$IQAsx6AA89EQxj&Psh+a!`8fuxOw^l~pJkG%x
zpWN%8zK*~bZS|QdyKb^sOY*L+^s_NSp9o)E$aJeJ)^tv
z+#^RI@^re(_oydgV?^gu;Kw(Ptwa}>EG|8Hnpzu
z72$pkl1bLw)BL<~w+|evy_@R!^(9@QM}xXIJ;R`wv+gG9M!&2&?c~2Thqk%Z+VyZr
zGs|QWZ>p3o;y1LX$`{)(Xo!wBTU%!B`gs{6eu#qBs<(yf#$gP*fHpEtBOR9B`}63O
zec3g));OOp(uxB;qlYg)Q|rT9`DjvXWvU>9X?0UxiHeKrvh;#C*BFe)I#Swsv=|9;
zQRU5>_Nj5q7xOlJcBd)-V1#%@`LQOBY+~=W;f}R;tN|68o40XZn`Wx3aiOZ_29khg
zPA0G`7|Sm^<+p07E*0jFLB=c#lvzI>WNWAMOn?Z
zPcUshMC{!-DbCk;Ck%(f;Vy2iU5b*n8xrp}L9}F}XKXRzF}&pSvhgY~^Gs6iOwfjR
zZ}vJF_mViwvzX&>9wR1zL!r*16HCRXe&s}W9=a<@COH?3UbvtS5>ZWr+3ChPoCcoJ
znLzW7r&Mto4(sd=2gH{0`07%bJ)d^&I_xJXR?GIuM*Xk>ht<*b%|1^#LZo|=ewj}(
z9v0xlTbf|Jbh2sUyvbIXxly!oCh20z*y3=Uf+T;SQtFQI6ohyEc+M8X!KO8n=N}iB
z6pv^o=<yX%rL0cb4gwZKFq+(jvom~@6wbP3wM@M`tmJXEL
zg+<@y7o$^CXvX2LnKc_nf@_1~J3+sX3!Sb6ab2SkSx)w{zjzfz?q}18U^Q4iG+XBE
z%P3u+kJT6ld=<{T8pFmL_y(6adp$T(6JG^>wA!|*N4NadfNu1R8fr;bDf&`zPIf*oP1G=
zX7?-=%rib%OMB2gRT&HDQ8s!g9L;ECvTMih_F?O-;@$P6bcyHIp;zRfsZoU3$~DgS
zN6YeT{vpy$SkX#TC4LUUgT}{aty~`hWf1{T$V1G3WPRPdg^Z10;m86*@ZTF7sTKWM741PWCZ_TVG((t;C
z@A6*ar1j%`{+6v|z17s``ZZBaXI}(`GkHLeM)}?%;i!Af%+^`iAUZ-Rz0_|BwE^>O
zJoa~5ST-Sa-FHVJ3FmhoAiwQ3N?viOW?j6`x4cRC`}JWN$m@j=TDCp3lgWf!oDL(+
zcj)vE6UW-U?m{8$rFRHL`ASvwMegB>lHXnfNN{si-DsM}JV|*Q9klQ&dFos}DE3Qrlx>_}b6wMn1KJkD
zUJmBF1#5;vu_75@$rZ(m7OlNAov5F9a^OqnjvBGA}rYym;aQ
zV;XrCS-L4>D13;>x0s!yZE@Awn{1df1^TNj>+<40eM!Py5=p|i+5_nxZen$-f{2`;
z7Lb1Tm*Tu
zPywHKYwX`bsl|-v;P`fPsL)udY^F1_wCQI4@6U_y?Acts+kiO2Ilk!m7S{H_t
zbvREo=GHZAOeX!6=v#(dFbA5fUr&b8d?G1%$S8a@+YT`4G?bYv_m`(Qhs+lh=;hit
zruN0PDjkThH&G|-`zYU{T_>x{Tyl!}B@)pFo%RRB{Qa3XU|Zwte5cJPS~}@-^+c~J
z^o`C5r~9lfC+uk&=A9V4nl5Hd1$qlvN)xer+Z0^KF+zl0I&au%R7H~8LGYcHX>}k;
zj)HB=T7q{9rWVvT|A74P9G5*Z&Z!R!j~{X-R?xKy)>*DJp5Ak#4<#2~zyP=0DQk=?
zdTKYd_@=+Uas!PD6<_VMrIy>0k9+iGK@HcHJbBb*!xZCbo=z-kN{L5rU5Es|=*joi
z9NSnF;jUZW*;)9UjPC|SB##IXIUN7%Fvj_O*>nL)7X#LdWzj$)5B$GO-83P8ykt)GmrTy8Nqz<)t$(pee&3&
z@B%IQ6l!$USN9v*?)QiF!cp7rog@y&>Z!u~qQcHuH@SpzuVY{QyJPrLt%64I;Z}3Q
zvRPX7#EmC(KmA2
z?o<>(%UqF^A;GN+BaEaW+yzZtDr_71yqDpW(YcYH%|a5=^eAItWpG7>2Jt>Yxa>##W6M;TPcUqxiM-;HDqbnue*=qz_K)MhD}BqsY5q1?Lf+
zGTQ*gU~=_bUBSwrtXjHhCi`IydXE?5F@sgeeXa9hu4?YUi0-I&FSpDWH{S$PCKrJxjyk0ClX
z<8*r;o}*;&;)BVV>~{C0`&L>W!Mv*iYPxBqK@B)g2a>fDwk}F%!>U_!m4}c&Zrdk)
zi!SdR(ejkYgP@A1qRYHE5LY6?eOyeqbZ4|n#Qhce0mCdOC7c+fy`&Z$nc#dHf*=^r
zqU8B;9DAN1Z|&-tnOH~7Ji*eP7b#b4l1lxF}d+2Qw^rd3R7_QL3|r
zHHnhJI@0u5zv=*PNvc2AbR*K`yG&jtN#eEZ3ytcBBy-SGrvY-x5v*x8tZ&`GPan6V
z#*?@|N$UNf1fgByCzS=s-cQOCuCDmKTDnx~9qhzU%i%Wa1gB%_8LMq;kH#^ac;|^N
zkFRaEogpEoLd8_N0oL=d)Gy>|k#b?2)EAPRHZhEkWnHI(rmd*u+mmGMY@PAJ&+{83
zlV&BKdP5P`262`!f3QuQ(Jhx5+|H`g>Wxl;2_a^R)vnILb#t8N+Buv!n0wgIUoa}Y
zEuW}db=0fAgCf$s?9VvhUf12sZh-zYE=smP-o)}o6Ock4M1^qzBRsm`)k3B8`|P=1
z-BzGd(5g||b#l#MT;3obpy=RuwhFwmH{J$E5AJ<6(n63L?H5(#%e(<>SbJ(OHD%L1
z_9j@9n-r<@#ycC1hdA1#(3*0Lb-aD5-o9g_OZ`#R}98Y`hzG-@jwFv`A%8D6oFE
z)(PT5R%3br!F2~Y4*g|z>oD~J0Rm0!);xd@3FqExu6s>(&CnR6-Znq)^ykuDZkM}^
zTk3DFuSw;7;b(^7?s7S-SspCt4qKFA*-kg+i|E82X|ak5cnGIvz?*^V9*m=MLFXg+
zOEH5F*qK=~&8=|tLGGW_rKS^7td{=dwM=e77>?(ZZOZ{>_UV|yZ!4FUv)b*rBdCv|
zJC^KVSz&?VaevevgBi3&^Q;h(ZU<9GIfe3Yh{h($9w?O0ljz;Hze_Zp#6I@7PCb=R
z9!!6_EO|QSOSbe~)6UeQeL-$BH>7F!0ugFeRUx6oJPS2(LPkA(q^m)D#BZ-+L?7}S
zw?h&cGu)$9;G+vuB$&@6U)ayi<;rC_&Jj`TKUg+!55Xlt?SJFfvGoqG(;bJq$AMzv
zV4eZwK_(@V@|rETHoTh9yKHMEZpcf?LdZrCGJ+NmU2~}w^A_xnDVH)QutV!+HsK=s
zL>!J74_MAY2YF)>zbV+dLz+$|0q(<@?an!v&5#OY28XK)a&vjfB)whlecCG#UC9?C
z>bGIAm6^CW3!E5s934+VM~P+EO4jZK$|gA9#Cc=Z{SxBi^=umyOFiRxVzY-iRpeT=
zI3XdC(KLdQ`pLyP%d$A8XW9r_+eF+M*ZPn-D2v&r0B^m%UO&%)3;(ZueC<5CEy+BlM^yir9cl4u`G;bollL^xrPIv9gDFxs-JO&e`(ICZThY<7GJtLB0=`izUPK{DF07
za^g(1*4$kY6!A
zCQq%qD2Gqssob}UEkMV~70q;RX6WJQRehue`hA&RXMuZ!r52KHbuf!6jpWPBS-u_E
zUxwnE8coigQj!xBK>;J0Pp>Z$*UZt$JnOiT~fd`yQg;^?v(;vpEP;
z37O2_$R@_K(2hw4$6}8aYo)(a6J`vjI+#tgUmYm8yEL`e_M5WT`{lb3mCEJClUC4})Sn-yTsBs6
zri>eC{ziI}nrAB;YxE1y{hxJ2N))}-%68<{baZwiBjxVBEh~1j
z5yUVHrf*%)pW5A%A_<{C5h8a<)5T)8(;4t!d-|SDFrZ`xTs&Iye-pmq7s-UAgf3o{Ce9mFyT}GlA9*MQJ7F%1tHN
z_t2Sn*l<;14+>AyuqYJnT(g-xBjPACui3d&w$f3=(bEK>d`r3WQ55zbI7QzImf?og
zc?eOe2LsP>6Sgn+1m(7G&w(*6MwV^xs^@(z8Ofb42EEd3h{EfNWI^>VyDZ>ZnwG4^n)V^i86Orf{&_-rY}n&I
zeacr%jA819Ue9__99_h_c@aMgdc5pF)N%9YyL*vy?n6^vWKn$mdSWjkpMVR%m--GRpq
zxX+fik-3)F_t%($npk}|v0Bx7^u{B7;NomeSgeqwAm5uLiFr>HV$gs1Hb&yEj>Ll`
z>x4gAMp=}sV)J5%`wz*Dqsj61?xzX#ECadO+{La{5UecsN|+C{LNw2>&G+_HeEtye
z|8%BUq^S0Ir(FxmpBWtjyysz6yggO$gcUdT)^c2L53jX;#a$f|VuY^7I>VuGGkp&O
zX?t!+csLoJ&+BbS4k8_~5hB8loh-}9kVZJEoMN>{3x3?t3uwRV{TX#;>=QmWvUk}C
zI%~10K!HQAoMF~%mVrfmsAs(w#8q*J%OCT6uRA$IiE~7pRyT^Br(<5R3TB@Wzm2IS
zuWqO-AY^P7%vM@WD3D$6k!>$jwNt&hdNsnMqi^P@-PZ<&OQ7}b_Z`neoUd+F;mkqH
zEYW@k$Zd^?yM8vVr{2?J$zo!q)7eYc`P`76?jD{k7yKN{-XD(&GCa&hPN7{o7yM6u
z!|dq6(~A|lBd}fIZ`KZ!WRF!G%z(VdNMzY9>(t#pTm5}0Qf;k7d5YF9x`7r@<(Xk^
zvbppvxn?EZwqU{T-sClz$)p-jgk)*@7|Gt=-~Si|A_%F(^ZL_CT6udazoyG<)vs0_
zgWMj5kHv$|hYD8?N^Q5ayx4#)xthspT?gl2h0gBHDK?lj|FW{Gv(dNk1?;SLmK(}D
zd2!+6KAvAio~3S{FW&T67em3yhJ1BCXt#)a>;9A3zB?ZEcdo}E+iWqrWWu%ay_2jy
zRtII4T#uvryg=pHXN!D*Gj8rDy0B*2nI;>T8w$FKmkMHc&P&|rkG0q;6Xw$k>e5hHg#@y2r-OizX
zpb}qo9v@@K%6$)1?LuyM7IMPx;H
z5=+UI?KaLVt@m>*0u;$qGtz{Y_$#>r)5V2ouV67NOPrJ#|jkMvH>rLlsbuyuBpRi0=@PBGmd>W=E8@uJvJ-;&T+)Ym_$eI~9eJ2oI
zapq=!v!R@M_3b{haE_^N2Ufl8%xiLt5$1$lWCrDKs4!l{VO*EA^Lhn#JS|R-`3W9E
z-UZFY6ZUpfN%;B8)@|BGxC`f+II8JlvzHVfO2bKf(Qx|sl~<+*%i12VmOJa*wx=S}
zMubh5(TeikM5iGf{hKuvbHenU_3DX+^_u5RG*%KGrNAt#%eWKQjGZL;zHv=3A{?8$
z*Ea91tOF0+MnxP#1wnYe^&-M=xw&(Tkbf=fDMBGRv@23O1rO7y(6K#D`u2RRz3I*%
zR|gzKHupg$2}BIai0Q=ZyV|k)#vHoqFniCuG1M?;Y?~u#n#zv^pQ10*HY2_89eKV#
zl3yyJG+M_5GgLec25T27i{1Eo^S50M*TXO*;({EV1xY&xuvu$S1iea;LI`ge1c~?(
zh5ON`XmW_r4Nt(*9}xV<5wnWqwZxB4=i9Euxlv{_L4ZIqo|zc8y1)p8HB)e~h$uc9
zC2T&{BQ;#p664XZ7em9?I$ne;f$D9ckb04;*!crkXI;v)N4wjQIg1
zRnSF&x_r&nam*@nc?!?nNt)s599beORW*C0>9+Q-5_$r5zL%h~O7g<-dP{lJC%&$F
z5BN!ZRc*G}CA(kO^dWoG_?W0`HK)o1Q`tnCL62
zs7rVMPE;n#zlCQyFBaWoK6fCLd`V!)5d|C*(mtKP|4q1>J}~08e=e$*FrRPW9z}+L
zhObxQ^~>Dg+t!7Igt(DawvFc^NG>d2Sx^Kk<7jTPx~%mK)FGVd3+sxQ-yngt)aI>-P^h9*mV*DydS|Nn1OD0VX
z5M~7H))yj}w^)r%(S>W~nm0g85MkOEUV;k%Yu?B1i==o2_z
z5Ewq+W8e^#8SgVZf6frqY>Y;)=NX-x@T+Zk__p~IUF~@u!;T1HEboIK_-4$ihvaJ1n0BT#;#R^TYd%5xAT1Hn{|TVaGAjBXy!h8bZC6V$>CS3kDg{WlVS)?)7Kt
zt;>CRn^}$|DUbA($_aGXSRh1<#a0JvX`HC?Mh@Ea{m2fKYgB=Z=pQO_ph(!{PPEyz
zrrbpF`L0UQ2|8gPJr3$g&z`Hzu)4TS4{;~SPkU~P2ca-9y#-a#_0;rAU1?A-Q?IaT
zyBybhx}ChR$;wi3*369OfnQh29qkrMvxP9TL;j
zBeZms$lo8!UU33d?@TEsfuY
zuTu4=XAE%E*8K#+msiGJjwy`-D{@U(}A|
zcu?(0+eUe+OyaSWn8WPWL3*+90i(O9p#m>Wa5(n|Vd2FWd|UAbOR}RqIq;Kkl(XI+
zqt&rsK>1D*gl&ZPT302DBUoarLCZSMR(_sI>OGQOoSg|~+Ha6wFn>apLp1R*+X1pw
z6z(v=>9_Uqu?+!ON|RGVzM{i8+s0nbO^AZZZOcjxluX)Pq%
zMFL~zJVDH2P^958@H9c>wN+J-1VNHd45uHUiVEEI0#51GIvBl=r{~lZ6CjmkL&17X
zHqWdsI>Ksb8psDwna|4$p2*~Ecea3G*`hzO63=A%?S69CI}cBMP>-4Me%_Rttv2u3
z59aQimDzKh&95*9&sP0ja$n?`Ij5Wb``IC9LOrXpU~=o39O|o?qRG^J<@=hxhoy?$
z^k1@_SKczIpCM$!GuorcfNKgRIQ@?GO}(xNbhQhe(jdK9le(m+ysQdnGFsNVFf^R2
zrLkHS;QX|-m~UT5QQ2y{g}@A|zp7w*Z1H?4*luDuRjy|9eh}E<%lFYAwC%w};KBs)
zI8+bi>dZnd@HSOh!E`o<9^wnkPU7YHI$Ov0v8Zrfo#l--9&JYITPQZ1H=%Cm-s#7i
zj=6F#?TqFV9Ib&zC%nsR(5cf76-|sF^^PBo#C
z_`bP7UyG@+g
zn84EtAl>cV_Zl@cAJTKFwT>({3H5`)3hs27`kBjkQA=MDUO+Ra=Ym-6Vv!91=_Rs
ze26KTbh6UIVMC@A5k-lbRQ;-d8uJPUx|lWbPaC1R0@(gz?A0hw618nzH$4G9Ht(1
zk|Hf)QKXd$A|OF9)q-cpyfjuK#@dGJI6hhzJgE=;VKRjbLs59nT+SS%ySC1R+_IQ`
zc$;r_GOS_nYd-7kiNAD^+(xA0_IyV*$Yeguj;TD8VRVPW<-^UcsERMI3Kzz*cX7Il
zpcTQ{wyncMfe8ntz>v%R|XE|(Op^AV!yDu`hfDifI<*c0xE@p(GgAAH1+RW*Ztw^k~11|dyc0n@DRv-0dT
zCUt>i4EZSzKZr;9tccBOealw6uerU-zsKF`2fk`+!h@S-d*c=l-=@F9ow7g2lS(bF
z2pwdz+wLBs2_QoH^fuCVpd^k92#*FUxjitXLIHs{XiD*5x4(YU9w#1wnZT
zQNfexi5-~T+rpjjJdXM_`CS>xEB9AL;WAocJ3y#O6d?|#
zF-bV}BP^+RCp3P$e4FPk(ntC#|m(Fnl&=}T;pxWfD-FXF;5SA;|7DVrk
z)Db(Bl+ui)^A9XD=Jbf!uYp6&Nq=Mx*N$L|{XIXcw4v5POVg8S;n;mb%ND;=J;Z(D
ze@eBb_m%PjCHE%f(FNx2ry8V1pvQwCV%Fwfkrao+4guO>$kTiHu1+meRK}TVIwa
zkmQ#zP>yn#y1`oPA>8GTpvc3i=I&8tRnBu#uvk>&vSzJ{w8B@D?ZHu07*RLzaaUYPxD^-QY^PrTXuLvyicJ7J4N|1p5fL6Yd
zpjA{g(k(oxI}OLXTfZ(OQt{yV`?ZQOPp$1W1AVv%7z2V+B*Z_gLO
z?<{wsXGeHK677Q6{>z*C!+|PWqW~uh(Ci-B?#M4VQ4C!!@Gm^-TC|O!TNaMLCF346
zIxZ*;3gjj5uC*+F!I1{l{oRr=$~r!xTUug)X`ubQXs53HK6ja-+l
z4`=dBjFpwFR=xB)lhrA@`s-A)lH9`HhbY2au=?u4MWk@`epWh^`;PDg8w&
z`jP!<9|drJ_!wMh+9&9Bi#<&}xW#EG)+2u`P4@0lxmypwTX)U5F@#8mJrCLeKi<$E
zI#1+i^MkQ)^B5^$ylQK7<>&Oho&ERXcwKJ>tSs}VIQ4=kG4KbtCtrWz(v`i74Xk(~
zLm=JJ)Hw*P+rIet$*M}E@QMm4pda0F%xdE&Ef>()y^|1cf2nYG3mjg%{N92uOl$bR
zDR7eU2RoN8Wzcwb#C~r*07-8)I`I4HTJAq@|Fy^awO1?SQ~7Ppd_$^*1?Ei-5Sl}-
zjf=%%zE^Rd0F8Lx=yj}Z$>UL0)&2y|;pUv78w+bi2dPF%_!_?A5n)Bv>-R4W&!StUv`c7H&Ln6p29W
z4Hj_X0Ms5RCxDla?6y_0ot8O(N@oBt=dvfk1>A6lkN6`e`A5(pvGVrF))bz4$g_d*
zFuN!8fc{h0A)eWPw#4Daz?6L3HgHGb6qF_-hjNLppx5t_4s5j
z*`Xl7-ACZj$m}Jq1=cx{7U&rLdre^*!V9{s^zA&CzkX*A8N3?j_gv$L%%8{H(=^jN
z?QvxG-}!Nk-&h
zaxJfs#jHu>B}supwwKL!p84Y}a#vU~7Nzs~9`oTiKWlJ5*(zNBdBq@AC1-`-_?t{=Wq9298Rz-I-Ij;4~3@K4Ab~g_Jbwp*g4qc7zflN}Zi`
z$e3z-Z+ngcZ5Y5O9N)NjB8G$v8^`V*L5HarL2D0b?!t&Q7tiwimj(9(oOl-70Xw>{
zs_!q&07OvqfPdkh-^WX^xdhZ1TrzeyhlN>B>A9j#1+N{Eu5>im;7MBrjB42Z_6KMN
zT<0F{Z97Vm^{Z9bQtR#mPQ`Nzm;3pR{LKrb9FZGAl!!$G4`jR-e`p&XgKqy=8*b+u
zp9t2wLu`!i^76D6i5sG|U@!T{$-a;nxl-qrkdBhQ<8iGjc+k2I`wpkHTB9uivC+j_
zlh0Q5#(6mWOYN+~jYy?;iM5a4lwQyGM+u5%J=XX4qBZ+PFYuHrczvFm8gt^Qzg>@k
z3d5-l36SD_Zy!Ow5z6C6Xm?Dq+p$Dqg}%7guSGz&7s2`lL0*1yS?-2#b9*lt=$c6{Na(yxY+G+0N84Q}-=Xz4VPBO^xgvH8eeFJohqoxBAD1h*;5G3;#^dd~6?eOB@%0WNIKatV6=D$Q
z?h0a*^f>upTI)X*K@z5i^Q-cM
zB5bOzFd=P#uVph?!3KSduP`2kDUO4;G~OJ#xW$DG5m-Nd{oR+3
zahAVqdi(j3VGA96`@C---3~%dcD_$|
zq779
z?XtL^)V_8?gcD$u+-5Z1Td@cI2&)O1Q~94#USA=uI2r#s@9)d(cizmalF^-oxu8
z;*^J;>@0i`?#s~c^P=+s0U<5=pS|rgBEQx5V$W>dSBCluEG$lmyjosPH@)IhusF{>+o9zEFj{}N9s>j|U|Pyc&Y
z@wxar+S6kPZP|uye*!JU`bO!v+xHf}E;eVqLNju(U|)_J*Gn)CuU{^xn{;NiVJ~2<
z8jZQA!|H9=iPSrVhL|9R-oxS4htUy!s}mGQXWn?*j#@y`4!q~pg#M!$!?Jl|X(9?k
z#N2qsjko^+4x?Z9;=M%kE^&^m2}@;7UwJSer9d-
z47l9hXMoG^?#bo6?l8+#Gs_i{+5bMwPeL_;?H?fVKj9m-gycrL%Nf|Bb%ieHMEccm
zBuLaO*o$X-$%x+F5yC+u2H1bW@f^P+x);*(1~OGSY%EgO?fjpARUaP
zNyzN7M>RA+r-^Na8wYWMZyq?XdA_Y~(RP`VC<*{Ff_nk=kw}REL;E{C?hSH=!PqI7+I~6^=thgFXu-w%gL!8#Yr9?zf
zIuysw6QIC(^{2^85CytbTlfMWWx3BGcKy1Jv!l8X0Q>C^v7x2}HOhHjL2VE3!so(f
z4$GFKNgK!E%R0GA$x3yp|#!g&Y<)jk?v^=j24Bg$c6V8uT#0F%3?_d7Bm;>DnfV13t#86W?(GeqPHSAt(0C>$YU)c<;%U9osiw
zJh(3+xVkeS7cqsJyxhn9vSuZ_;dXDNd;+SXiok=cR>O;~G_i*W>Tndy&Q)APPAw5Z
zQkD5DD!8{;m(8XF@WtH6K)ItC9l#YlGF(r^ITvq7wabRVmyWgh6?iMF3Pvu_RRh*p>W7Crnp_5%JB=k8!EDJBbp0k?`EQ$?6SyJ|hJ
z>*on*)xiI#F4>qyw}(>>H{OVE4wAZ9?<-`uvjFnTW3py|
zWaU-wAcO!Z`AE!Vp$W?i@H_|1e6DY>%hCT%8bRIZd&GxBCHre25Z+NZ(XaIZOdlQM{v|K4u>s0tKQatnI8+`fV%Pa10giYS
zlu=TcEy+|MW?uVuiHZdJ8(-!g2-jgn9}EV1X0atpkPeahWUj-bXox=AV#XY_}wN8Om9e-})OSjC@T!rwd3
z1M_SH?X`75dm{4d_01rJo)&=Mzp9TDO5_f{$o`#_r_c6uedAdotqgu^G>WXSA!YA1
zq`B_{(M>dbImx6T)9?LC-^doKHV+1roUXK71QAR);mEG&-PNf`IsE(zO`UxV7LUXO
z%*J9<#dUK$fz{4MMYlWS_yQ{n51+63Wmu*<5e_Z3;|MASHxo`sMX)3**OPnlb1Aodhthni;)*wvhHa&K-6!#i70ax5y)661igVbSR0-1upkM
zPFx35+w~sS#fmuakl?J4Nv^-9UN;xTgNK+M9M28xLYPCGS(m>=HO|E5F>efTb1Y}Y
zIdYBwh48%*ZoF@{#457#4Jm%~2ilW0){5gPVt(@s;a>Z=+~T4@^!P^aS_PouE;DYh
z)TQEzSu}lgl0njT+X6Quz~^o1n(O0}kwuLoK`@^`g;+LM7&O%ltibwdy(H(nh7O3b
z!oJ0|b=0H=d@FP-Vhi&roBKE)?UVi6bt%M|MU*p&%i@E+(65Wb`3TQ6wzo&j^Bh|l
zW4A_TxTN|^oO>I}4_uF{J=Ho|&mj)}uG|}3a!;~QA{|T6=ishh>5>V6xeW&Dm7BjVQ{t)mAr7=QjdpyfbAtRA#IFsp+tl!=K*AbdqBG=)IB`wO7nKM@4iBr1GtlcAjxfBlUu!x|dhzIR|?*jk2LPc${4M
zVQGL!KzSS$7E1w(`M-cwu{$pHOn~CVGi540ycPSE*d;@#O=>kl9(IQK&_JhDZ_%je
z(4xjND3;Z9fefLa-La70Y_R#zA+QBeMEnNMd?(^G0bYs6vtlI?VdN{W`{8zrmlevs
zvk?3qQE-9a^F_fcIDpZ1>O;;rVHjEMj~$UrlGS)zWB4`b}ndzhK_2wmq(?=zRbQetUY!<2M#3H2z3*&(DZp3OqYq
z7u)n3GgKX4>Zi6TfPg`c1nu29RuAg>M>wWoKFF*fb
zU{;Ahn@)={4Sok7IUgoE88FzPr3%vV=;A}D9MOzF!$0g&fD%R4n`3$#9!(ZH#J#V=
z1q(}ivcxjLYm2_I+Ve&@)}h~akVxiqCGKupL1`G&%v^j5A7}Wd!$?nH5$UWlI
z*)Eg~F5G}D#xN%6d>Ho4nsrNP!X3D{6ccV-IGKdp#n&Q6Vg){{Wq?H%vJiwdF$ghx
zVO9L?t)n6N(+Xee6)tmw!1V1eDy0K$O5m$sU#u}Y2pPxd$cCzUhZQeY^&Apn{Hy{
zxFA^d(OWxCSc_{IYh_D=$Rs}xI76r$6N{OdiE%(2BE5kQ;ZxfkxpTL?Aw&8D)H{HB
zrdU)m$3#mE7(n7G6mm_WHHcI&(BUfFjI0cY$cc_mwq;|2gM*IYe*o+D^hco%Pk)-L
zt-K&y2wsaYAEegpFobX+Zi9wX)S|vwM;qV4bQ_XLOH%3-V}lEaG;AfCYyqL&?MNO^
zm?1~+pJ7(>hCBg6v9F+hfcz7)JL+B5()!QffG~`oy$D9-{2#!(aEnFbbBS0%S2`uv
zF&vAC(MXTq1hBbF@2c@wvDOhWZ20(FcvX{y0&JczxD@U3i;t=`^2;3$ji~Pdh(aab
zW#NL4h;mv`t0NMP7%sa%TMKy-=$l)92`dE`!QU^Q3{>qLqhjz-l@Yy089Y9$tS}IM
zAvQ%2^1lSBE1s~Gd9NeO7fD>+N^uJTsS}b*_HqroRg+yJL~BIxqI7|NxQ5j9-2$GOz)wbZ6zi?FQp^YQ*esJ0
zGa(^Y^)=$^z%>oz7&A;HpLW+m2X3R*8mr~A)p}Mz-PQ!{kDf;M~!2p<5RqD
zCxjxD9dA5q3m-BOAwA^B91xGOOK#cO8FBwW6}w&3a=?3cr|WCAHR-%Yaw}@|ju~u1
z+4jl6#!BzH3q{E?P2HT^c|UC(R>n5CUx7?yb}RCB1C4*<;eSGhNRN+S54UUsA+S5`
zAG#BTcD=FtwMw7WHRL+5AMX?G?H+5G9zNxH-@y9uT${)72Iqai8Zw{s*@{S3`r^>|
zY;iHHU?>A6QLb?dr#2@h>lT1DecO_BdL{QacZ%H~7>OQZ$yC7@w0^-7Q;@P1FGK?*
z`|1d#I&6}&i6h2$*NC@VfKG6%=O(!b)f%hf(N^azDjr{B2`RS0
zYTPonU;PhkmWK
z6r?~MkUm88SF_fTfBc%g7xbR+!nq>V9v$=o4X!+!s{R+5t-m`^s*UI!!04QB
zI>OV1<+)?DRaaV(2lBzJxUF>dn{m18G?P>w$&zvsgP&%SYg$0ioRfeV-4Icc=Io
zUtFg8nSm=q?Z8)I_kJdysW;k1Rk%Ji*xl13s4`~$DC-Ww(p8}*4(_Ci#kv1<6#XUL
z8x&gNghLd!atA-qdV^J;MF$sL4c-TA9_)7|_5JoX%Y(EwG@qwo+~0DXPHb_-?ooAYNG
zb$e?NPf~+CZr}<@lTh;MH7y*`ulL&$gF8dh1+7Dayc8AUJfBbE0Z4$MpmHmnDJcGntFwsHu9aPe918Z?jN>|y&!tn#XOktk4!dBNBH=ZC^hj36
zvijXx_V|Ows<~Z^^9eRFF}kfB6}e4y7P=-~1V_Z?1v$*biwJcQjnf)Ek1brL{<<*V
zI|iQ&YI`PZ2_aTHY!#sBgj1v=;Q$Q^P_FD-QI?-AvZH1srqAuvdWbnGu#`~HuBPey
z!z!-ur_HJAKyebleP>iB?AW_?`+Vi|yY!PU!e8a{j^6C7r%i@xZXSUut+vrp;c5&h
z>>9UnXYCNJu7tA}UoKF_VBJRi&dF%HjrM%rXL}8eA=LCeiweK92&;iF;0vz&6a!rj
z$bH3;-1jck;!M6!dCr=b4H&g%wWsk6$_DrkhCFHukIt*e?lVx}P5GqIJAejcT?cD&
zC76~taM6BKbAg(t*9s|Er>F(mX+H-dxUG|~k_%N7Xc{!)$ESSR+?$_{HJPH%@)1Ii)iY-p-x<*wVdt9
zqUQ9e)aYEZc`FkyS&1sMsS@NJn0~nV;T(4LO!JA52cn+^us!#&`KLtDUT(Vk4X2HLA+|TXgC(
ziZ;G-pH6TIQ(r=ezX!QLykTH~p=~ILecn3L2Koyg$=63|Nr0J4sSy!3wkb5sA@BDJ
zgEfd_O@%`?WaRhV=0fGFcFh!t(EfENN=VEtl+}pzrbX1oNeI#D?tofdb+3$Uz~@{c
zDjxxj7cFcc4${H9z+*Lst97;JnsD>OtL1Gf@cEpq$wp>dA0wEDQsQ|7ePpAwQ+s%RN3p!`u;}kELF|D}a10pXq(1
zJ!S~L{c=OhIg%!;OYUL!>vhY`U=IR_Qwx^w>OImlwvsB*EsFnkLV)%pHf+;y_Xf(B?O1zL!hXa
z0K!n-D38kg-29yW2oeF9e@_D4M$X^uu=$Y92j;BfEbp)R-feZ^um#+xzFgHot?ECk
z(@f&FZLd~hub=85zTUkXOPq29A(R(GJHnNRU)sdd6^J>S-E2)1RScI9I8Oo<~UB9Fd`2cHmS@TsJ|ar3LF%dcotM`TN=B|L7~XGiIhVX
zM1ne@Sr3V(8cGRe3O{{`?<-Bg*{HRxY7?1vo^eUTh+}|`35tWaY{0dn|7Hc@=l0R5
zT0CUvch!W%{XbNWt02-kMs|NrF)LFP4pn#Q+gvY|
zzo{L>We|Tcalidehmr&t%<+rtZJ$CN!yFDj(3!MR0fGvbXURT6mm_6^z<@DXV3Bup
zNBxn=Mz=5=BdNhms_8!Bvs>DV%Jafxo=*W}@k+C369?+H4iu1RXc!1Lz~?*QR$BzA
zI@?503}jCqh%bk1!#awjzW>?Js=dKB2ia59f*Lp=a1
z=3(#LPae7X0-ho-QTJ{GEMf>EJE#3ipQuj>WeGP)sQcWV8U(WY3~2BDIg8YLeTlB_
zk_n0U4Gz9pk`&LUpWAp;si&JBMu@|BQ5RT8U{KAB8bExw>*JGV)_c(D^dU8OpA{tb
z{TbcLR3@TL0SJUJxy%_m7|86n^T)HYUTm19iH&f)c?f?58+P)Wlhlfz
z#>4l?I-$*=FB~B`IirGoh5x3{)Q&V9B}|;$R$p~`n%*kT+2imTw$^SNDN#;
zvS8Vi$NO@5Up|JJ=8({6*Y9C`_UGNRL;(61#w2qc#P}|=M?g}7LXF|wF{huUV%mwx
z&Han};dz*!h}+*vRKGtPAH+O51@Z?lZtLoL5u$mUXYWj%JEcIzG9`fUz#513un$IW
zzR;+e@0LTyB+pTFGQwanD!yLe`jt(2O`Y`vRKF8qIYHE55)2&o+d~A{D)s0}nsfyI
z4+LW6_Z;eX`OAV4uW>dbh(gj?R&8pTTk;7v+)Gp1wWsg4>-EEN7Ja|+OdY1v#8Zl5
zr_EH=LR-YhD%nu*iWhi*>q%R7LGm8#@opUUy?G0z;P-cSqq)kVI=CueY=J=yh6L#S
zGx~@;0(Ds;7RW?jQt&p6r3=tAM9YRNL&Plmss;-Mj?t$MNa$W4
zRgU2YR6#8O5iXqT@;krAN)$bK9yBF#yao56NkB!55y9Xt8RE{N$iZ{Nk*+!&wwvw=
ziRP8!8fCGAF+j}xMddj}3y8tnLC$eYS6{eeSG&zk
zT!L$0*{FXt4=~D1>G!8&yi%A47eRwob(c9w)eI=y>5bp(v7swg{=^ji!Apo!EfQH@
z1Ehn%i*kHi430HBF4tCQn99%R2X}+H@bXd4$6QLP9d5UDVoBT=}QzaboZ2#bV<>j@99=hD*)kNlLu7j*Md1)2Yx_PR_fv9ReS
z1p{@wo6{q#B9?3-qAI#JOG^c
z=ezrU?L7(J^#(IJs8Rfvh|V#IrLeRn5j+s>4M~V<31mR4x%UzL&&+RCWO2#G2QMAd
zlrzIA{vt#1h
zj%Wmt0vR7BFNm(t9`b=4goNDNvwv>SZx^j6Y~+w(U)B=}jB4kN`OnEitV|lvb`1Xd
z4$)8q^BNGLhuS{qs3L~I9s-*tn-n+>FaZglAh4(Tj#Ynn0Me#TApgHwiMgR(UtO@_
zDU0B;nnWZ_v3|?QmV*AXWX3XEC2o-zZ}YOKA1jPi&WYHbrTwrJ9n=bCLEnBH&;hJy
z!l00Ot6Gj>07eSQX7l2JMIN?ot7TqNPGxU}PHSTt&n@^y29xZW@u4k-Y>{V0IrvC!m$v8DNk>i
z?Ij#MMMgtgc6=JxigAy;E*}0F;)kCtPN}5pqhi7LksXYlgC3~nFdFplB7hfwWHkrM
zD51J79QX+u$p#n7jGWa1E+>Yi72GWl4M{oJS9=24gd^PnmD?w<+D&V=S-jr(t(J-;
z3FEdX1j!<@5I9$!TwLE&yXdGMEk1z?2U(wy>#VvopZy9BD^B=cZW)~S<3Ja8zs<+*oer>SDr#i2_i7?K&dXPvPqljifz=U^e?Wn`pRZ+T
zt_K_C6|)y04_HGwy_a(*h+H1zZ$Z=-u4&O09*6{SDsK`kW@te`X~wujb8QeFefa{g
z-Uk7sH9RC*7Z(l(WIm9z$Z@)YmtC_w?BD@&^&a?P5SsQT_+a>dd_^3StL}!A?58SI
zlCbWZ47i~>1irNW5f92d=7M%bn6D2>-RtmZoYq)^Vq9~{EG(S&7n9(WUjIPk`L+qL
zS*cG$YcHCw>4*v|3Jiu2XW1vjKRls^`qZa5x>UXJ$u5P)PBt}{D8I%eX+pRPCp8WR
z9M=H5eisDvrr-XN;4AmiY(%j+c60>Y5CY1(cZg0pEw>Rab>|
zu}W4$((cjkZbFGV0^mpwyzOx`pd0HAeq_gxDZ=X1J^H#`C!2tn!DD~m)mt&a;?<##Qjz`T3)Yq-+fCkC3oeEi;7}NE?t}yQ7yInP+_?>8+A$c$#o2HX(t
z!F1efW*`M@6*M@y!}O`=IY(|Un3%gM{04h>-L`LU;~e>w34`t@cdHNd%^=ehoal0$
zSqv5h%SwI~r3i7!p^t$)b-}Qv2BEi)$j!-XA20gbfYLCQ@#Zdh43I31_}SdGa8O$xN6^i$f`m;LIRNy7Bp3<43dFQo+3f$wAQ`vDkmVTgDHlx0Kj0X|K9u)hI-dj
zUQju*BQiW+SOn4(9kuJq=U%@3_95(y5j2f#&WI8SbX$G5h$YzXUf>3}u`)n%<|-
zd(ofkHeODkWm?AHVAYF9LPi!|h{Tz-Y2zS@pc`Orw;kvvsLX$@xCXteBQ67b90v9h
zNJ5X;CHfHJ@6OOHJASc47UToy7h=@w7YZ3P8yV93UQRbKnofsn^8`Xd5}V8VYut_w
z_ydMOk1F%_!+D$WIId0hb-KOL|H(|KZOg8Z)`=j{kpHxTa{;Mk^2@=b^4AK(#yo*3
zUwA)0P`w&Z*&%7z3g@pgW1bbG6*-u)o%E#Es&X~r3G+@-)Uh61$m+9f{9-*z5Q+kU#xB-1#u5D2?%+MjAw|k5J;OHUa(lx
zl@>SQ?drFS;t{%^HGCL=BCih~--hStKuf#XeRMp0IOHDRdb(dWG=Dc`W6_NwtPOgP`W4bB2ZD6dM^)-pxP&n(oHxE#
ztJDs8<$IGw@2x6>^gUjQA3Kh@gY7U
z#HuQxU_PD+>PYO51l$VccZoMTPzAAiV#Q~VnywqCN
z)m6*Y((ij?pl)KQ{>0MB3jIll-`MNN=xz69FFW{BY)u3=tteD$d}6HbSLXup7YOFJ
z^WI^+CNN^LCC5}a@_YaQXsS#$apDQWvC~=M83|$_v9N1`A<^IaM@pa%A<+?I(Z=|+}(vheY5{lP8z~?
zx3Ei)J_ng~1Ca?;)fPXTv%3rv7Q!nnV?GE6PuDL-d2VnF=Mrz0Hei~Wo!AAsG1hNG
zXWfqtk2c5R(ZYIY4;R?=yiZZ7?>QMc4);c@x_`?G9)Mzbt`YyRi!IB>a=yO|cWWul
zUuwk;-8>p>c22Eoh#@twc>LXPuh|E|a1U{VsS320E&hEpZ&LSd!2hgYHV+}G)jVYJ
z0O62>IRLHN7I(!`ayP9bxCPJzFj9cvszvVN{zf`4t0n0JB}CAGQ+Cb;Sa5XJT1)>%
zyU>AWc|hW@GA$d_{b;O@l>R`qp0+eh+ZK8!LYR~c6rFwV1l0pQj{rR{r=P5>LKX&3
zgPaYCKl_)@tyPgZtBKHozi|FW&!Odj3`!_JX^~zZLBBJ$ImDsgLkznZdGH`!e>&6>_pEDVQvqVCN
zc`k?q*iYNb%41;sc;oxozv+-dSohni;KoWr2HxTCrV5e_R`~3D?H+J6%jorbc8$e6
zDO4N)Lv%w;_@Yx}>RPxo+TbE_%?&f`{sU!*^3D*%*duI0h1)J4jG4^ZO?X6X-^%-b
zx&3*7n0t19uL|JM7BjpDCj+WGi!Gc65ZNJy=!V3bGa-%T-X5=-i@dPUb;$#1$pofLe&wzg{263&2o_K50Z;BdwYMTR;ut
zjvQCNC$hVcZ?(fZ_n7Pa6ZaFfzC5?f)&$7&hHz&m=3@K~jw`PRDm&euCw{knTC4uS
z7bA4L+r#Yz3Wl@jwi?HL|5^fuRP-)f#e0AcoDW3op{u?V0z0@)4QY<^Qb7FP{KtR%
z{?C7t-*WHYsTptIvt*^=^qvA_eOxxLZQGyP)VwkwuZNgtVw~!08EuxYD+I0&q-8C^
zb!7|Fp?S#HQJGwJhm`ld85WoAMw56@4mP?l4w!i3-H0BnbL*mObP=hxr^O8XGj{1N
zNJm=I0F-V|YYH@dJ-0oXEVtn-tBB|NoXEog;M41hJmJ0F1w
z5YKCSx79eJc?p7_6#;gQh*DyIPaxa7%WaFI)pq^ESZBC)DzAWLK8x>*58&BB4h?3u
zSjH8Rng!}UbQ5%4OB;~|H@y47XEQU++{qQ4_E4p!@
z#`5{f5Wa+Ht;J%dqlN6j>U!a{`>UP2$e(4D(37IL>$U~Kezzf=d*pI1ToNeoZ1w3_
zN|zWoLOK1$T=qGJhvC>2&~Y9EE=;@ukz4tyZ6BdWn;Z}B{(+yiDa!v&|m&B!BY_)u}0TEI9*zCL%L*AT?*
zNDfeqdOm@
zNe@7opyTAD)0md1qU
zy-eKsqpl%`5FAH6p;ttC-ve>*P|BJ?Xe2dez1E8B6<>#U*DR0X+5_tTq6P
zNgK)#w3{B#Y4a()%*EzGoY0!B!C=xM(&Z7rqB85j7XP4^F=M
zaez5;`^{D)NuvQ0WkuU~ix@_m6oH1F$lskrwWhpyQgFNJofrUMfRW8TzBY(+0_d_b
z7@kK;64`!W-2sEOh0hA{d3Aq;?>7w3h+F9>4I>{Vtt0#Ln#DafBzLKFTqPje(G!hS
z=0d`k21z*wL8F9U(8&+}o2(u~r%5wF{F
zbpv~W06BGS@?Mrdj_$C%Xj%A)8$>y7pS?hHja-~(mh_*G2^SbF^N8&s$vH((QD@w@
zE%t6BphVA)$8w8(;{8jK45|lDrZI
z`9D*FWJ{GBSSbcbm5LH_#u)R6{x860sg)7Xl%xN2m-!yt(#uy|X6g7H{vZy)56w1=
z1s?E%3kqK|Lb=n3Sou8gz_a?Zy+M&EGs}MYAwK+cTNK+W_ko=5z|g54yod0WJYgVBVZiQ0KZ;xHq1wab
zLJ&A4SryT
z^p2$V)IHldtd!GriET8H9!vVobD4QbK@CNS(Hv-b((Qg)GW}-mRiiKpXU1h*0LsUA
z(}u8gC-W$usaNQ^%4UES69;(luO;PIE*k|X5~~VrheIMD`?tM7dO7=cl9?HVM~5-|-Z
z$mYdb23vWt#tVtDAwM=?v|2U9Z513rEG>lEkz4b~=!93l7M@T=8o+7c6-Vf0{X+)?
zZ6Y!oa#?(5Gaji0%d2qJfB~j?)u5D;fglW<$6zAsq3puOJPsE?-cEbk$B1w8_pMPy
zh*6EgmU+~e+fP>G9?st7L(-3T#CWfUn(iX^JtLL}ThL}H)O$e>{%Du;-wnG>g6VPM
z6MJw2AZOphDFj#hTmg3j1l6|C%GiizL2JwhH(XB1=mL+?ga_*lc03#vpBR=3eu#KK
zLAC?kSm5hnv)?m`6c942f|+0
zH_bx?gRF_nV*^Uve8J!g}i(=
zxk;4N2tkoSY@lXtuKawUm=KECzCm#^ToNqRRDjs>X)@h*37ObN9{|39bG@LFR=YJZ
z507gaK0fUh=%Q@XJ~%N>8;(dx-LAdgdVe_Ci-2m0PzOS~RIEwH)Le=l`@kO7YH#&z
zvB3g0d2LAw^!h@TnWrUJ>w7RI)aXqLw`WQ?IBnlc%`#LwCFD)a`tW4}jc&ewL_n55tOdPG|2h^|mOI
z^kIgP&M_;)3+UnDrvrlMp0TlZuNx$7<006AFhrib-L2@)4N+Uf_<*(qK78o`h}nj=
z`F8)vt+D@JHr@7zDFyKI{4JRqo=|1L-R`0R1=e}y@P6A{IU|5{4G-r)Y;v;W3=|OU
zKJawnc3Lj573HtlSiz(Wkr-4-o0JI8NJhjb7ye!CN=(NR(uc=ket)iuUE6e4Ib!}~
zbcrKV=Z73Byuc6bzWLB6V(%S@Xl8>(cEMcHZ)k%AmkbmtHf`_wtRNzAxP3aZeL7=I
z=ONd%jD1TUpQq#a!i`ix*9m*NoFGoKwl%?*U^>4K%ea+xf1k!h*WXm6I&?79$3s}dqQDe=8E!+3S*`a-
zT0wjLeh(MpN_~-sPUXuD-Novdo@qE(k+8T4|LXU?yNpIh^w|s^r$0;9?|>zMLgo{~
z4P~dl^85xB=Y(EMyYvIoX$eCho?Xf2#u0{mbSbUq9M62b|+O(M+
zvT@kzUKO@pHP&8ESBGqyBqh!d)Dr-={phQ?hvG`$u5d%b=li=sHjT!-Ss&2(iSqH|
zN`xEA2&08s86Y6|A0w%ZRZ8EJ
z=!K_H$b9WFG1NAek|;u1uI|7S)2N`xNBwv!jawP{zfsYmtw+}HsX(SH12Y;C483$Q
zSgcM@>2iL`-DC)_Gb=BOXk1Ew-x^e%L4;6zCSHZy4B0baKrE^W5u`FZefUx!;aE7M
z%Lc8-=nKK-47tYJlnkTx5qPzzt-#LI{SPa4z)a+FCpNxVgp2y^oZ%v2i=o^E5`g5t
zU-tiR#Xok-QLRO=fLo384d_0sXA`D)$?i75NA~Cm74Gq+DR*Jg+8Wy##_a`URFCtb
zCtm(Mo3e)=`gHLqzch4m((y*dIUJ`stc@+@ABzBs<=WO3(FlaSOGF}AHXZ@@pB~X%
zk+XIu86edn!G%1luF=Z+h6+rnUXBIrq6rX+BH(x?i0FlWTK;39v=LTe4IEte;>??=*lhOxVLK7TsvJhi8
zTY-TBIYq2Docjq~#LI&2M2y>fMvC1rLh1qe`J!W}z*4+>bdgs%zu3K$pR;FvNI-Lx
ze@S&XR4(@NYTRLMY%aJCz(>3EKzXecUlQhFv=2gbFut8ZB+B*GT^u4GdaHD0Vg0uL(yf>#~
z>njLc{Q@pa#rR6Tj3@I&oc#M5U0iC>9)DucLvQfUO9Xd96T9tkX|#fiF+w6Df|GVT
z`jELphG;jG)*1@I5mQ2-V_WeulMbR
zQ~XURXvReSG89G_6;W^jZ(gih*XI0KQp>TfMHd=~7KhqPYH}eF5T68(Yv;Pco{APi
zb9oIIeD5K8c*qbS(WwNCW(P0#@%rP(;faBR>ei6P6eWa%UKoo|s*7RO3Q?q7#SxUn
z`%FNZHTBRZ5QIEUXriEt>?Q}KghTFwPG^;j0*mT)8G!F^4`D2rhV}o_bY|k&BAhjG?AXX?=AezSiD`D14PY
zJ^Mb{qH^4pZ(0*G5XuK!*I7Oien&AnH78(`oa*DcnJcg|0Qcd3er#Wv(^HdGq~i%(
zEG$9aXM(uj+RjP-L>N78GgVdfLwtWFrmkKOLPxk!;XRv3Xwr9P&odrDTEoP)IKp$S
zZ8uYIH{27+&3C~uZ;jL+fNCV=ZnSeOG()1)+z9U>Z9cz-6B5-Eg2T(
zF77C_Gie_TMb79W9jsG%-1WYlVZ(SA9!qR`uaQ?gMpHA?Z=!Gt4pd3wcwe}iD;|)+
zO%y*0kLu48^po(B4YorE&E_W`twd*M@xgUvw6wYB8&CEm>Vs
zcIsBifD1E1!LjNfD6GQ!*$PkJXZ%X6GaF{8)VyUPyN~Asa~)u`n@?SA)fkrF(kjk=
z8`_@lP;BnhzAu-v@w$px&fT8u>6Z`u*XnZ9B-qoPkBMP43xhBCx+u}09XT;>jDuVx
z(Y5qbGw7J5)tyg#YE_K=WDHaMUHddO6*pi8+2Y)80xkn*R&d+ah^996us@gR%V
z8dy^qR{pboY=)zyQ;*CEQJFuR9gaDWAXut7p>Z@f%~gcIB6BzJ-cP0>ipL3}a6}NV
zf%4I4dp6!{ymsByGvu#xcs0M{HC2EY0x9A3JGw9~J^bhIJ+2x{1b;I=?#6<>Jx=z+
zHZ4PpN?7aujZeLAmo*);XP!s15oB{!;VMq2G2-XWo`ze9EAS`d#||Le8g}n%Ptmyo+~NLgs>@HpJ-K%F(!_!>^FDk{&;fA$$BGZ#3_CVsd;({Ax{P&}6gPqB9E!0@hh
z$qx1UAnQNg?JTZMfd^k<(ap2(3|itF*P4?p+ohnY(Mga38T|VC$lHvj+VhDyBJGk=
zN!HU_cQI@9tG-6h%0bH(Hx>;aZaoEf-nTvk*z3GxPCHB_ywV;=$>0@zX~&e3D9iPa
zm$WVq^ahcCZo{(7CL~Zx=DQgJ{DB#vbsq@!O>7?%T*O@;XS$aDK
z6gZp=Gmcsw==l5gX2bURsCdljNXt9o(`*XT88@Vj>tDFO)ngV3{S6QjaVR{dhgU0o
zY#t3+uAK2s@3n<nl;_&aG8%ydeKmRTLFH9Lai@o75Ui>^4pF?Js$+xN>7r8hlC4<&t?5shP6z)yKFrk
zmf|<}{FO7}JTY3ax#o|x7zB%%etwlnZ887O!~K2lKDXCXp^@=zmmR*Xi?`H%(iQ6pILlR
zDhv_-7~;KS>dzkZ`S2`5sEdAV@~GC)Usxg*S*6cuCgeu51D0=ilCjnEO6`7}oXE1$dnDL3B7Xl36n@q$!S8gK8Jma^<<
zK=luTv-e=VZb0?NZs$)kyiQH^!_JFM9Cbi!uIK0s>fyVv6S+C1LC#>3CTo9BY
zg-l4R;QqX*Q<5~yK~L6n(<#fQ_;7#rZe=WMdjk8G>wz5KvMBe-}
z8D<+;cLa{eHuZsHlDknSHC{`^Sg+KU$_oc0bVSdl4P!eSv)A)4YSnA3*Glv_R>bQ{
z;ydPJFr7Z5)g1Tx3zaH1tD%WS=LLO`#uod)H=zF213Tf{+{e-zbRk=X{NF`qXfLu}
z=}aymS$-D>{vUj
z7L$9sw;NQoP^`gr=+Xs7<_>ihDoRcfun0mm3zt)Cgn=?%
zkH)oyX-SWM=d93E9q$HhKcws|kR2(vgx2%PF!30T%EICC*VF@*S&M$}3K6-5e1y1k
zwJiPgxk+Zqt*O}?wl_`l;&lBMmYt|If{9kPueH28`t6ePBLBji__!`f&m5C37LXlHi+m%JF5E*yr3_3QkQuKJc5PodHctk6mSOs|A9_;u%jKvwR*nzxyzj^$
z0cfR8pUW}yGS&fu9L(6po=oq`g_UM+6p!xhDHE(j1L7=dipLw_tvl#CI{L6GB$22a
zSAa%T85ovfH{!7gJBu@44Gk8rWn*QAHdh21n+IQ!afr?*w
zfTBW4w)GyJ>E8SbV|t8lQ}ex#{QX@^z`6yqSFv-FpY@if`@yCX#FnIV9bYWoZ&TRl
z*G;u)E^D~cpMj%I!*#DD1l%{gzv(7R&LpDCZ~>?$2k4%v;u
zITvez%!1UW#{nPCI~&!)30bGrs_FqP!Z@v|(~gczU)>h2AfmLW7%FfjuE)2HA>`U?
ztDX0EVb?&)P@>3~bQT|BFdolUuUj5}saUhcmR`>M#Wh4X)#QNp2?uMQiz{~y-ml>p
zG`C;wa~moW>LK+92PM1TMgX_9jwoR>BUJ+3yvXyFvbZW8*6<>zPA;@rW2Ew`+>rBQ
zY>ArwvR@nfwhi`=vF)>eB7@uW=ysp2#$n*x&F#AzV=QFaF;cW4`%)iy`o<~#E65lD
zM5BeK6Z+%5K08pn8~Mo)WQ*U`;+J-$0*EE@dAIAfzKsP)i6^adqSCiY2(Dyyn-`-+
zedp%-!135J&44&Dv*wp0IkLbw$GnScM2Zr7mpiy!W`
zKp832V(#0b{hgEB{dc@J%O3v2`@@>rAQ!$idtu~QlfndCj3AY5Xb8>FaisVivn5ml
z|K6g6lDpuIn01p8j*pLh)%k*gC?gz`;^evd%LQYB3^)~~jrmI__UgIu>(y;tKP-N_
zdo;J)dFVf1{&hUvLbM2$S&92)n2=x?kjEpscC$}Zt0fN>R`3G2^;#5HQHenuOU$qE
zdYF)K`P3yMFIh~N6~76cR<(Fm7}^sb`XN!#As
zOXaw@Dcx}Z-}40-VRnK0Ls4ypI!SuE}dKZ#t%42lwb&xxt#x
zUp9=9Aa*-V;gQvPAAZ2wLZhU@6k6VUjTL`ONSf{7Gr}DNnVDD;f0ncPN`3cxU48qs
zy4r}ARdcx;d`5?`>17>k1ZW0otXgLZ>co6FvIVCm^qlZY(b^jD9$rSn()Z@Ki77cY
zJh!4DsCsHM>Cwe?gBX{ysGh4$0Vv6y1}ZMYnstg_FLX^$@~E803Uv1e&ym(
zx3#&|L>s{ID0U00*W)RD&mZnOM>0d~(on_ULO%Wo$FXrVzAx6nx%b$;ey8-7_T&0;
zy4^<7JWFRiqwuw5cL&y7IIg(i$SmK(POY>5W0NtRe4n>swt$x}NH%n^P_u+{(_U?}
zUh5QWQ9BqzeA`&<9~~E3-OzqFV8Zt%P>RV7Gs| |;QQ#hijjxnLn#S0B7Odg*~2rm48y{kDw7H~M;rv7g3RNR#5ZUQSJKt%TM{
zr#>RcuUB@furMB5az=@)7*Sz-75Iy=39r+%yM1--tKS`F_Lk;i
z(pj@is9v(cOI1$EhlKA}XfvXFTRNQB7mY$Pq22kJ`X;g}MHzdC{bA5Uu~`gz2|J)X
ze9PHgB#U!P`3>*g(3_amanI!WT{tUa*Ukd%ryaNysIu_h@)5?mp6PkEv*r5rRXc{<
zGy#zvXrUb^IyW6LJ?4y~YpXS%GFUDSO*ONzFaD0Vw^UN9CCfD&M*UR3M+4Ti>@*L8
zvA48#c%{EZnV^FRneo9@jUg#v|CaVgN%rKS^O})6Kl$cmq~V$nF%Z>Mes=eC;N~J5
zt(O_Ez+@x1uj+kuS|}=C)<3yL((m3bP{TK6AcxsqV1v@%lp6%5Ee+aD?}zPlzu(KW
z>yNDiuV2U-Y|w7@@69ZFvv>KX3cn!jc#E=-+)lU4?^AghS}@&WN_s&7jqh4}nA>gf
zm>v^VI7>Ozx14ml12HB&`OwwY5fPEs8rq51IL|kwO#@*pj@OvkvE$F9XhLN$T&u1brcH<~cpnar
zpXE)?+wu6{!qBQ;JJ~NgHGYxd**)L==Q8b%!O5hTo>E~XHNmTQ#P7=GhfrDJ_N(I~
zcoufNcBf2;E%WGgrprOUAMd@2n_s!?Y40}z;h?(3(={Pv(($ZGBUXVn`QhJ~T~K=1
zQi`4mLw>q_bn3;t#=G(KALOk5DpF6*ez9n2emtp9^0954!;Ue~1?clI
zpj&?{BU^TwJYiXD;gtPZ=m2V^5%dJiX&usLj%8F~
zHceAxI0hW+zMhZjOjQr@gOC#WYx!ifaw9%9yierUlS3d)nD)+_yW!Y!qk`tD+n_s6
zazAMKZH;TyrRqMZ_;I}E22?gr!Tp6c7|M7E_4%c|=$bhHOpk26eb&xHe<^n3^kBu~
zWZX0)taqKJGh*wkr@!=Cqf)%tMt7{S`n|JTzyICcs`GC826?L}B%ia$fXrbiC7GE~C8WQ*K-E%2)J>u$mvS((tH^Fi=>YnK4%C5@$eCFM(cN%-vzHNSpQGUV%ll
zF*Xu#inlOx>rNTNNC8
zRd$WYAWXKIiyc$j3a*CloGEVVOj-!_p>)+5j9Gc2CEvKT65~cNSUUO7XySA?=W~vL
z4YVJ;A{NXxAMwe;%RfwC&kNypGv$u;b$W?_Hpw@8bNaM0ouk9P^k;{BusfOy?gk)U
zA?MLmGvDL}Tkk?{z%4?jN?SZ@%T{x9;w>ExiXl|ndtY0%e>_k4I@~-7h<6#>gm$PM
zVy6`@PEH@X>F2W~Nokz%`f%9iF94b(_gBkKtGI!bGt^RtKm#(M6aHg`Nb@@Q;5A#n
zzV`{=2ydvK=I_Hceu8Aogw`$?2D7s7mZRRY^Z2QsKnfF?f={S^@9fzA`he`1uQ$D8(uZu`>Jz3&P!Z*wV=v6g6;E7LAkChSPgHI%xK^7fA3bp
z+>fG@nVcK+R$89UEW8qL(dFIo&YwR}Q2U*^>1uu9Nwff4$6~-ume*Qb`{~#lT;N7i
z?Wh9!XVJo?k}922d7*e#r=}U_at#Zo*`Dma+&4E-dyKoc2GuqI2g5~Im{-T%-qKkf
z816pi(g>wAh_;tQvnPZxjx0h|*IZ?tu(1}~nKa(KPBYE?XZJ6>p$B7HL2O>fqKa_G?=Q;Kzh
zm0qOP)_e}vS=_+u`d%tY_TUudp*}sD8${UcTiU1Ti-HSjGUffrAMIdDl@-jvpI3fx
z_wFBPIB_6aq8`-*6#t
z@0_v0=$0M-ILc|JoP+*UVS&qPYbczXA(J=!(ReQ@BkXPGoP6;F!Wz8{Dc^1swt6U1
zVW7c<*=*!hlp1f~ICK3pw|Dc+8w0YhR1MYl-*?B~{Qm6Mf%u5C1Fy#i)$72i-A7|T
zWSj{u)J|VVkNYw8y)}F|+)^S~MqWl2RP$Lumsc)|yY=JoHrN2Y)DvW-n_6%x?)l-7
zXQlWv0@%ubMZ(f1b7$yukm@@3xG|#saIlM=DQlAB;eiG7LA~E##J{J2cB!0;VmIas
zhDHT2wl;tOH9wa;8OtFdUvkzr9`wz#9@dXg?6lVg)3P<-b0`-{tS&ZpeH+JbId-S-
z(vI4OQ=^sopOj&T_e~W#@W)$_s|bbW_w7ABhnN1z#!_`Wr$eOIDPdC2yL8)=Py51=
z8GZUB-saQ1VSP6*N&st(sXUF31kY*-Q>m(u5LvY8jQncPiUwWrdx^Pk=yCbF<#iyQ
zTVofP`Dri!bo)DbSINh~@VLwz)!gDj*ii=f?8~xunV-k@SZOaWbY!SwtQV}|I^bTh
z6^y&Zy=anb;)QpfMKW9Vr)MEZ4z=9U_gFW5w6^tXGUTaA)83pX=@gXyjtE9I!MOrK
z_>=j&A1@q1X~^8?o9=Y#<#7~UzsmfunJCK1Sv?a0&xb~Z(@6+Mr9zLnE_EiUYriE(
z7^6{;s4dd|2~z>Z6#Oj>1@ZjZgQGpR9QLgUvU0OU!{Z40JZY!q$()kzqXIl5f1n-L
z&-0OTkl9E4szQ7J5!=qXCjxEnQ^(5Lj-*+wcYrbskBu&5%-5b>O$SDaUoDLWBQ;56Swa&}Gj-fSpJ5`>X~UCv#7a=oPaXfw>F^QaL+(EFTT(~<
zwn3@sT&Rj;)yS@*roDMkoPo2^5stU(&t9HaZHF{0ZittzNkw)=8YP9PwpJ55l-3{N
zrmneOQ$*>EqOZbM2W(@~*mXy^rrxQKtoFx?EpLL~w?292op&vsSh(nXNT&VHe5v(k4iB`{
zL&80(Jswxjy${D|V`hCmZB~)cZ87OMO+H+D0`fyvJTO0E-H-kP3_Y`am+~NPas^hG
zcsEBUkh0Nkew=rpU5|B&o>uGLFJ2VdSFteEKNi*g0TNMP-8an)2q%7J{oRKDR8fAV
z@n8I!bVJW9(r@>Vc=GmJfJXvr*_@hY*UA@K^VgRb45v76{BLCpmc6)_cAq_S&~KZP
zx4Mu5K}FjF?D(a-xT*D=zSHk}&>IfT?=y1gXqfaR^S)r{4HX!k%jsO&`sVsxtJ<@;
zPP+F!OJ#K2yxDNBqmNbd7t3Nb77<6e6EMgV1Zy8{cbA@qa@t~LyJWAq-o{z1;J;?+
zwW!4XkGx1I?$}>hkI@zezncLH9WO8T2bw0WX#(lrLBO?zv-#&IZu&}N^ti_lwLLfUZhFs{YKTLt|
zsnwQZhsV+300bx6Qn-~cx5~43Dv6>`IRiN%cvw78*}Y!W%mA3Ii%PuS0W8>?zXVioY5HuY-wyViL6hr{ICs_7AtopCbrwQFGedLqPVZ4UxkpW&
zj8E{B4Vxk=*9U594BwkUx-doC?~O+fZq)tu?ELf8YfQfD7PC}4Q__SWtkZ65
ze$VTWBQv;f1NVD&OH*5<;X=2$m^jY$p;jd5whOl2?_$E8)!$yO*EP4sf!|r(S7{bQ
zK3;lG)p&*$qZ}wTg_62>9lnp{eu?#B@mnUqnT9iFrE_>L!R@>YDs@kfW%2}q1tmRv
zp(S^k4M&llF@qz)dajHh{(W#@uXocsO}^Q-`~670Mt7lMY`cUkjgt-{KrI72kS$<3&xJ%ZXDhFzWe>h
ze1`UZSXIioBHgHBLD`EVK`23)FvX+KqP9_XJDuu6z0i%#BX!pU55okP8-3@GzB*7a
z#Yh&Zywlj!N3)&uW4lxA#D@CYIoqEFc@1T!<5x-h=xbh~8a~DmBhWyZkQU{AVsFzUP}zV8z;KKZ`Dg;^
z{dWKRc#N(4bGt0j2B#9Q=zaT*73b7;#+{k&F6b3AsF2y}PTWdV`sY()8_wiN6y1|9
zN-6_RJD^W<{#wTghTDl(x|If>FbF?X<
zq(s`qT35UYDo>-r8i#{^Hp>{5$qfD
z+$trlxYqPe5QkE+zB#pCW^ft8A?_}jW*Oo)eJ@@(`)*_5OMP@$*%E4>kxaq%
z9-!Ecy3*sCIY(wF7;=5q$y?DLZGKmp6&M8+9Z^X+6%Q?VJx(kg!=8N8W>0wG?4Lh_
zS>K0&HnL~;Jf7dnc&BaWwp3UY6#Bl_7KiUW(7q~58JMN
zHA?c&>u8SM>3;X?q_e%s1Fe6wK2S&H?$bWwM9ac)`Bpedw>1J0wrk@Sa$^090|5!Z+^9M7=)0b%H};zjBuNcVegMp5t+b
z1Af;b
zVgfNq8%0G~W5H_n%pCeZF+kmysPdg!WNv5Jhr(l0oO9!lvY0Fr=hMF?-{8VqOmgc6
z{E%;aceyQtcqiNfY PuzbaQHhJT#rF;e8c#dUGbhzsUx%slh&j;Lsfh#
z_|?8nqfTOC>2paY0fA{j8A;w+ZeCO{fvtSr><7mXw6e|4vS$nYmmIjRyWju5%ym3>
zkNMa)m2cp~>YsM<^}2xKi`lR_=^DvQyk4V>nw91h%q#QuZKlj8srb&mfdvC1=1Dub
z#{IHfvDX<|<95%s4`1im%#66Ss2&42##~u8R@uhb3aZ)f{=U~|R~Uu1+$NEi>~%D%
z4Fb$5VXxwA1p+dun9pfFnZ`0?dz&nvbx2thd>Odt>lEJ>?K2RSLA`m7<>!I#=e9w=
zL$7~#yV3UfEKy-M(Cx5gBi@_K_mx4JdGPE8I{f#*Jg;0U8r?-_!+1egJe>G)D}zhl
zbUy$iqjj=X0BV1GR4%lUVdz4a#ZzLP(1rV4L|)dI48uG~*}=ST7R=ADe2Bjl{qKCn
z$O|t(G{AzMu;jy#!{=J6S~~ab?Dz}7LG=dctG#L1{Vt`;d~b|0!#}=WhW(oNS*v}L
z{R&AAr+n>fJJ_pMN2Au8;tgFmjT+H25eg@1YPRfv3;}tZt7olo^jcx4+ujZ2T-|-W
zc29lr?e?3>j_3Y-=L3#Azr1SO>tJ&Kpkr;=c6>-FiGutsF40Ix#<{9?wD*2)Rqlq`
zQgw&*i@{H#*D0p8weez^_Xg3lCi!nKP1ARyX6w|QNB!&H?Vqh1
zt=E{y86BSxO)5W`)bGJJAU^9hFpd+mo@&l3;C4g{VSo++t$5GP5jf$6LN |