From 0f349dfc9d054a8d45fa1e5bf91efca0767817b5 Mon Sep 17 00:00:00 2001 From: Stuart Long Chay Boon Date: Sun, 23 Oct 2022 21:54:38 +0800 Subject: [PATCH] [offers][feat] add data seeding code to fetch from excel --- apps/portal/prisma/readSheet.ts | 229 +++++++++++++++++- apps/portal/prisma/salaries.xlsx | Bin 0 -> 51994 bytes apps/portal/prisma/seed.ts | 2 +- .../utils/offers/currency/currencyExchange.ts | 1 + yarn.lock | 36 ++- 5 files changed, 255 insertions(+), 13 deletions(-) create mode 100644 apps/portal/prisma/salaries.xlsx diff --git a/apps/portal/prisma/readSheet.ts b/apps/portal/prisma/readSheet.ts index 4987aa6f..73ebb562 100644 --- a/apps/portal/prisma/readSheet.ts +++ b/apps/portal/prisma/readSheet.ts @@ -1,15 +1,27 @@ -// const xlsxFile = require('read-excel-file/node'); - -// xlsxFile('/Users/stuartlong/Desktop/tech-interview-handbook/apps/portal/prisma/salaries.xlsx').then((rows) => { -// console.log(rows) -// }) - -const reader = require("xlsx") +import reader from "xlsx"; +import { PrismaClient } from '@prisma/client'; +import crypto from 'crypto'; +import { baseCurrencyString } from '../src/utils/offers/currency'; +import { convert } from '../src/utils/offers/currency/currencyExchange'; +const prisma = new PrismaClient(); // Reading our test file const file = reader.readFile('/Users/stuartlong/Desktop/tech-interview-handbook/apps/portal/prisma/salaries.xlsx') -let data = [] +let data: Array = [] + +type excelData = { + Timestamp: Date; + Type: string; + Company: string; + Role: string, + Income?: number | string; + Stocks?: number | string; + SignOn?: number | string; + TC?: number | string; + Bonus?: number | string; + Comments?: string +} const sheets = file.SheetNames @@ -17,11 +29,206 @@ for(let i = 0; i < sheets.length; i++) { const temp = reader.utils.sheet_to_json( file.Sheets[file.SheetNames[i]]) - temp.forEach((res) => { + temp.forEach((res: excelData) => { data.push(res) }) } +function xlSerialToJsDate(xlSerial){ + return new Date(Date.UTC(0, 0, xlSerial - 1)); +} + +function generateSpecialization() { + const specializations = ["Frontend", "Backend", "Fullstack"]; + + return specializations[Math.floor((Math.random() * 300)) % 3]; +} + +async function seedSalaries() { + console.log('Seeding from salaries sheet...'); + + const companyIdMappings = {}; + (await prisma.company.findMany()).forEach((company) => { + companyIdMappings[company.name] = company.id + }); + console.log(companyIdMappings); + + const createdProfileIds : Array = []; + //seed here + (await Promise.all([ + data.map(async (data: excelData) => { + // only add swe roles + if (data.Role.toUpperCase() === 'SOFTWARE ENGINEER') { + if (data.Income && typeof (data.Income) === "number") { + // check if we have company id + // console.log(data.Income) + // console.log() + if (companyIdMappings[data.Company]) { + const token = crypto.createHash('sha256').update(xlSerialToJsDate(data.Timestamp).toString()).digest('hex') + if (data.Type.toUpperCase() === 'INTERNSHIP') { + // create profile + const dataAdded = await prisma.offersProfile.create({ + data: { + profileName: crypto.randomUUID().substring(0, 10), + createdAt: xlSerialToJsDate(data.Timestamp), + editToken: token, + background: { + create: { + totalYoe: 0 + } + }, + offers: { + create: { + comments: data.Comments ?? "", + company: { + connect: { + id: companyIdMappings[data.Company] + } + }, + jobType: "INTERN", + location: "Singapore, Singapore", // TODO: DEFAULT AS SG + monthYearReceived: xlSerialToJsDate(data.Timestamp), + negotiationStrategy: "", + offersIntern: { + create: { + internshipCycle: "Summer", + monthlySalary: { + create: { + baseCurrency: baseCurrencyString, + baseValue: await convert( + data.Income, + 'SGD', // assume sgd + baseCurrencyString, + ), + currency: 'SGD', // assume sgd + value: data.Income + } + }, + specialization: generateSpecialization(), // TODO: check about this + startYear: xlSerialToJsDate(data.Timestamp).getFullYear(), + title: data.Role // TODO: check about this + } + } + } + } + } + }) + + console.log(dataAdded) + createdProfileIds.push(dataAdded.id) + } else { + // assume rest full time + const dataAdded = await prisma.offersProfile.create({ + data: { + profileName: crypto.randomUUID().substring(0, 10), + createdAt: xlSerialToJsDate(data.Timestamp), + editToken: token, + background: { + create: { + totalYoe: 0 + } + }, + offers: { + create: { + comments: data.Comments ?? "", + company: { + connect: { + id: companyIdMappings[data.Company] + } + }, + jobType: "FULLTIME", + location: "Singapore, Singapore", // TODO: DEFAULT AS SG + monthYearReceived: xlSerialToJsDate(data.Timestamp), + negotiationStrategy: "", + offersFullTime: { + create: { + baseSalary: { + create: { + baseCurrency: baseCurrencyString, + baseValue: await convert( + data.Income, + 'SGD', // assume sgd + baseCurrencyString, + ), + currency: 'SGD', // assume sgd + value: data.Income + } + }, + bonus: { + create: { + baseCurrency: baseCurrencyString, + baseValue: await convert( + data.Bonus ? (typeof data.Bonus === 'number' ? data.Bonus : 0) : 0, + 'SGD', + baseCurrencyString, + ), + currency: 'SGD', + value: data.Bonus ? (typeof data.Bonus === 'number' ? data.Bonus : 0) : 0, + } + }, + level: data.Type, + specialization: generateSpecialization(), // TODO: check about this + stocks: { + create: { + baseCurrency: baseCurrencyString, + baseValue: await convert( + data.Stocks ? (typeof data.Stocks === "number" ? data.Stocks : 0) : 0, + 'SGD', + baseCurrencyString, + ), + currency: 'SGD', + value: data.Stocks ? (typeof data.Stocks === "number" ? data.Stocks : 0) : 0, + } + }, + title: data.Role, // TODO: check about this + totalCompensation: { + create: { + baseCurrency: baseCurrencyString, + baseValue: await convert( + data.TC ? (typeof data.TC === "number" ? data.TC : 0) : 0, + 'SGD', + baseCurrencyString, + ), + currency: 'SGD', + value: data.TC ? (typeof data.TC === "number" ? data.TC : 0) : 0, + } + }, + } + } + } + } + } + }) + console.log(dataAdded) + createdProfileIds.push(dataAdded.id) + } + } else { + console.log("Invalid Company: " + data.Company) + } + } else { + console.log("Invalid Income not a number: " + data.Income) + } + } + }) + ]).then((_data) => { + console.log('Seeding from salaries sheet complete') + })); +} + +seedSalaries() + .then(async () => { + await prisma.$disconnect(); + }) + .catch(async (e) => { + console.error(e); + await prisma.$disconnect(); + process.exit(1); + }); + // Printing data -console.log(data.splice(0,100)) -console.table(data.splice(0,100)) \ No newline at end of file +// console.log(data.splice(0,100)) +// // console.table(data.splice(0,100)) + +console.log(xlSerialToJsDate(data[0].Timestamp)) + +export {} \ No newline at end of file diff --git a/apps/portal/prisma/salaries.xlsx b/apps/portal/prisma/salaries.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..983d86ce0efd05fe5afb7df28515fc0e7c7ae195 GIT binary patch literal 51994 zcmeFY1CK61wQ>j!cm7Pke zYOTFXOGy?K3=IeZ2nq-Yh!_a&l)23d7zoG#90&*%2ns}3)ZWg;%+AG7&C|imS)akf z)`ln_41_8d2;`sr|4aXaXP^==p)kONB>p1xDSAjRvso_$#eNmok3yp?(7T#QVf`65 z;`_yq`a-N0BB9<8k>qileQ{?hkyuro$nH^DIkv`xTMHK5Sk4la={vKtV3BNuBoVQW zGrEQlCqMk+Uhp;zOaZWEvM__X4siyMTmDINHL@(JHHZ?b@$1WqldS{#=ECB0w2}ux zou9R=y|aV~(OM$*+?YS#u_w{MklXU3D5p5;w*%h#&-M>_n{v>C{`kLs+a3JUE|#eG8HqPXLx1 zyU~tWY`*@XiieV6pQ_}O-ENIr7^0Qy!p`bT5}_;O-q}gI=S3VvaM%Uo9v4XZ(v2K{TAGH#_4Z+FLD<%-o&krb&(*Hr(CUqv#$A37K`^QMwf0Q+J zGP7}JWcW|{|ET&un4kaK&?^(<6$hB$LT{u#!$x10w&IXPWZi|OI*8T$0;D$)n_>#c zaJPCW@sQMTf$mTv!xUjH{q z{s;h49{$Zp`#+N406_tJ*f9PVPu%UDew*0a|Nc*8`(K;^{ukc<_3}SERjSC#4l*Hi z!G4D^xo5bcBd@tIl3c1^AVQ5bQg2WYv-&;m;L^0~Yc0z%g4&0A-b{_Sy|5$fgQ7n5 z(UwM{fO(6=k)Ksf_Jzhyb4)@a&~^7P#2=GQAt97>ICPb{Im}B zn>`nik8$drjeEL@#~bs*v5}>ne=GfeLnc`|PD9$)50!)+{yLgUSuV=N$F85A$qO&JCP-956phaWokEK@94zS3Z zECM*+1^U%8Q3|qVJg4_L43{e7KZpX=)j<3-@69;HDjrn(m((_ElBw)3$b(xC&{GgQ za@#dd7AnLSV7xT@>RVQqnnAk3{8oeeaI(QvC1cAy8P=<_CY+&cFY{uTW92~)D5+No zPIeom{t~aISKttog1t%5IE9N71Q|ap%`r*+E=i&$yTL7JgXECy=}diy^xc-#ESNYV zY}809cd5$Hl7nH;W?rClShHJA#5HMx)9eh?j+T#hJ-8=2`3;Pz^pTq&$EH?aYD*?n zCFx&P=~h=z503oXzusR%kLeUY4v7v@B3cl%;oWBU_jg`tP5j$TVvji7!6j-AvQ5Q?UN~ycBN~67)mA=IF^BoJi!k<<}SJdV?r5)A~=r6>(W5<5i3P+t%}i_XCTL`7z5vOz65b2gi+`yzGleOg;al{T^#--4qVnA-7R(!G;x zz)lE-*KKmuo3_w!CR{q(%&OA$RPZ$IQ^)c=cYRrn0#L)Vw%qb%P~K8-kP!skyOF=> zhtW9OG_-95VM|gZU)UG{;F#0O*sW&Yx=;V9FbFroSB$ zRe|fMA(*%s3IJfmp@6EG2>oL2WL@5_Wn2AY-54k@tjMtntMVKO=pr&>w6tN|34?=~ zV})mk2Ed9oiv$8-3+iBdSQq4>dEJVOAVc~Tyh_b(*rhz-RSbdvE4g(movivyG`q8l zQta$1@-b?v1&*pc@PF@2+;Ij3b0&WNTc1Rs6xZU*3&j_kIJx?#gyv=Tz=`5fEWg`!B$10;w!X?{VjctC`}s3SN=ifwWE0F% zo7+{z8S!MLt*b5Jp|b*)CtSP^(+do)DYh7+)eN*seGs+0*&?oRKqL@1&QJ@~@?={46Ra z#>pd5A)($-ZXuIYbI2w^?UTD>o2sON4Lga`N=JSecOxT1k&{9?S~BwJHZaD97y z)9>)u^LfV8YuDea{o`_OB4_;aNO5T*$|iv&eC)9#=KM$z_njH9HK+J$2O)BdZR}=4 zFbDJCbaADjvD4Ase2l8y(al?Vv)LaXO>;?~MRrTsFYCyP=XcI+rlvEloyy^o{Kx9^ zf;y265v<;>$cn*sj_EkA#B!Anbs-4l{x83m(Znqj3+!}4$ z{ho=5yyHr1tH{S{BQ7yje>>c;@BTVAnXVE%UysV*esLLEQZF9KLVHX1=AT&J+**p6 z{!C?hG~shvlGot**4!$zOYoVdc!;Q$v3L*ZqipM#7AU%AsIZIlJhDqrgvycKly~zT z&=y^0t$IxCfzfuE>>>j|avcwot9GffFks(K>SMZnnf1v(&B|6A3Dn1nLXAwW=<_W5 zST?6#VBd4lv~deE`yXitB6ELnUJ+LNzzCMB1}D=}ucQ3jv*+-BHSf#0+oJvlhk5!#lxaOIdS@#BWCuJ10hc#RfgIuj^bxj%;Cc4Bj+27Sg)Cdw(mn zI)509pa42M$4EjNKYT0}o|@e`I3>ou5}#c=N&~82*5(IUj@e(R)6CY#7&n{!c)gp< ze=K(_0r|g><2JX@xbso15=cWwx_2}EiMCg&E{a+W0Sl(#B9g2rQoiq}N4MW7yh=4= zwL-?x@~=JT))a0F%{xidOTPi<=^N$#ja5l0a4!r)>mF;23oa&so@wc(r$Dk=cdS!agTpy?*~BY^1glW&sN(0d^@XizE1g({Ej?Z40>~k_ zr@zo*G$#i4PA|{)@%7RbWZh@a1T{~9A8SGT=AAt6pf5^q4to0@h1wbOAxnYE&4{$W z(94~^TN5K2iY*+RJXtaRUDe&P{~q^r z48^ZF1r|0Pau>#{zQR}lWzBa#P~)t3^+Bc`HG3HI|H@&cDt~?&F`s1Gj8TCZUheFF zUK4Iy7raSZ66M_6PuXUTd)D9cBOuMTI)ovlNb{LA)2#c#T0p&AV6==x-K^QJ)^(rx zbQ0_MzEwA^9{@DvBx9oAvpcyTOmtVM@M&_VwmNgMo2`xfp}PatZcyAdPC%zq_SFli zysvqCdPGH9(T z`JQQ}UG5$aJG>{z5+}Z4^lN~cMf{!mJXeFOIKE+Szu)_Q~HYWIQ7xsz!% zaB^Vg@cMqrR~E@P*dHZyLz7W=)naS$FdqrplJ?RF0!C~^K20_Ylx*bOurOJ4+%2}* zEJ_mxjl0A3RVg*>5`%YfMA%kDvWeH?hUXG9{LWAZ=?)JoDvBo{Ta%bJ#99;q%iN_$ z5p9>P;XZV^EV7%?n40IufH1vTGXLe~Apxbpb{?!6-Ixn^!cjGDh=pQ52!gtdLd&of zbee{(sdWuH=a^tP1Ff}nTTIm6(t=Zz>ZV#C`+{{YZ0t}8T{lBE!8|?LvaM83Irz`Z zN!q6H%DU-B2lrB%u*k>5wm^wNz zM3M5-FdAk}F}U8n{bH=bWs&kZ6b$DnH(Up4{TdpzH&R-)X|!20Eb{aM7n<*0ILm0T zWUTjz6z8jFm1l~SGm3eUOIV}-t$W+QaJbzG0quZXpelCxt7^I8@5sK%Td5bi)DzBK zC!L8)1+->nXL1sjx{^HK*X2F{$sY3$h$@pW`JKNFgJ9TE&(SFaUgtIR`Z{xGC4`@; zuC^wq-0BhxX@n#xII=`+j#r?C-7Zw%3fm*4{QAR`@Z*LnR$) zR6`ToYm;GWi~vDe@62jo-NDDKV25eLrh#;WB|Y5g!_BAGY@ug+t4QC%m)c~XO~LBmq^ug>5ul8)19$X%L^P0^xwQmVL#gMK(H4+joNpf+IcB)VkvzU}*uyX=tj zE>L$0zVa>42VoSXT{uN{qM+@3>d44}yQv$!8>j}ZL+~{?UGGo&$w!u|*-UnlKq()6 zF>j(nZCton4A~!t^Gn|l0+#suq?YV9(M+7Fjh`EC@R;Pj&IutGVWB`Hw)I{)qUTD* z?ffKRF6u%|l9N{60K-uTueL?A>B2xx@tw^bK}QQ}=~%t&^&~zJLasaYr(lw(6FgH%Sl?VL@_ZQ`t| zHo?fiHBk%Wc|{)@<0<^m&3?ZuyYOdA&~~Z9%c=DeJv^uf&>C`-M9qcNp;LoVi_0U# z;?;-^N3<*txC2;-N^dh?r(qOU{3x+ZCLL4AWJgh>XfVWEFTb0qP$n0=eMRi>1n=#g zZgzAEL(AXxzc#*G8dfe1%qArs9Lo<*{7zVP$HEWg8fG`3!rd(SB|%o91wb-q8s1Xy zCn%gW;sMOtM60AsKeOQay&|ETkPK7`kfqEBws1Z-vC3S^dKOBf#yl7f!Cb*UaaA^$ zMEl4B+>4onaJNf7d>ruY!+g|d6o@@t^F0Yb0OT#emcFs1zYh*D6TDD@^v+33yewq} zru5PRVGA$t;MP=A)>PBgR8tj}?770FZI!*G>as`tvGsJp!J#zpfUlD!1s+_>4T5OQ zHx4L!%v?gEH;ddUBHPK0pNYg7<%;tU4@9}Qj(6FM__>Dmb{r4du{Ewdi(F>F_6xIi z;$bR=nN>RtsY-k$qw&#P_mo}5s{7`0H)#uYnP$Wx=;hW&_aFpoLgB@@$tiu$*Dz(; zU8NyD2LfqxSsx@Gvi4*C4QGDgynwQE-Y2mE{3|CnxDY<#moABX4|AUoAX(qc4O5F; z7_nO!9IE*+x#0C#l1ykyF1VtRcx;;fdc*6+j=X`Tt9BKI0kSUMU2UX8VV7SD)BBTU z%Eoow8PBY!PCN!rTs4$iSz|Xr^)Wq#3l~GMZBnHW=y$HKR}cPjf5C589W^naXiGsS z{W=zW~s0(cSly^(Es#lBof*Ro-<=3 z&j&Q!h-MRU3UaJQvu~ke6>yM~8c$q#pI%?UTGWdI3r{)R)Jj~5@@GbBO4caO#BP2R zaF$?>d|-~0+~l;bJb5JhJmN--%JmV&KdwfnhrFTuBHIZzdwR`0IP}_wRQF@IfnIL|2`Mx=`9G5mMQNDV+n;Ift zbDXb#f$+>hOSxfMv7B|hcyJ+7Q*xDprxPt_YC)j=^}x{V#|DP31`F6j%!kdss`a;7 z9(nP75l%<^wdi4IN$z~wWOi4}J=8fFdt*@7_ovsVKjH(VvbC!LHMc=oP-nSMkXic- zZCJL6Mbo;W2MUH*n2NsVOzH_UTKkVlBe>bLG}vORG$-1%{Q&HWo%u)>*;@?{*-nr= z%&(*@%xyG2fw{Q*r(s;EKMZ~x#IDJP(l5r{`=f5cYevX&ZLDQ>`d&89@-kzv@yTwN zXJRqj5Z|3_`1oh2X{eT}<48NwHwp82(<3t2vB&21I7Yp)J&uW3-><>|0{CZ9BhOa) zEf-;RrdY9GKeVl9(VE_)*-!z`^+WnCyifYeBg+ICU+f|nV5A}e>0so%^H??@rbRgf z2tPwDJC%u{%xBvOAf({7t>4ev?h|3!;J=#LM_xEmVpo25UPIxNhwg~uu*+|D9I^y{ zc@Yy@3smNjFxM{hy<>w7X30(1gr^S$Hs^SNWe0(bm`6P|-s*RDk`)0*P0c{j+#lK2 zwOrWsbei?8>%qu!jGv?x^<-@Q#S5S~=+roHNgdCGe9V@oR8$hVjO4=KAeyCBR=)yM zjEk&f9dt?PRTYEkeqG?qicEX4vC4X!w zUxxmRcOREzX!lRASsPOs1-j`>r`%9LaH>eO6F597MC=jAcJ{Bru49$aSf0vSO}LCk zm*06EC-2p*@M~OYXho{g-4VUQ8&ktS`v!b-COeJ}Q*^7-D&usMSVU z3V1!K405vLYkb^Mml2YPWyHiP^4kWW0I7t?1!pNTkqnt4K^r@3%*<6aRxX-BQREQm z^8pg{U#X!VbPNc13PqK4z0V&^9C`KuI(?U$MA#B%Q`Zqbxh&v0j1?wna0?jQjmCJA z+T59_Mq#5x5!`?RQCJ8Z3Ta;Pk5!WSB#G1}BdcuC6uBhqw?P6a0dy#DZ`~el0n4Ap zE>~EpC9#Hed00fEc0b2_Y=wh;?f0>Z-k~I^LcKEzA+Ry*@p-q* z=SCc}Wgri~_GcyDBM}+1hJ}A&?GibT6rl%er_M~S&3+RE9wcKn9NDtOr_1VkwMjmw zf--r_6K_abj-w<&{LspZC%a*Wg;DV}PphW~1|LY(ax_$Ck{x$JSU=vqpccu=&3{dg zZbgY&bv5+C0>5B)TB2k($o$f2k;80XPR%vqN<2jThK33>g^EYA&?~c@x$kZjc4mH$ zLDbecDivJ-*U7>v>TQT%wg2LGp1S}DQ?{LFg~?jin~lyvnIK7us)jOQKN^*GN-)qg zQn+T*QX1>_)IyEaeoEcCc-@BZbHer)r;(mYvwG}^l{aTLo&G^v-wAD9JUcMokZ8e- z$zlFW(jR70T{BMi>E#9jlXGahWX$#^hW0_#?8|5xHWfa1#t#{T0Q?lXu@3PE&c~3z z&TeJt>4XrR86HjfCigU&!pns}OK;z&`j)=M%`N&K8lBQ% zQeG|J(QcwvKn>@ri}q#;W+D91iOa;_;z_ExL7x zA{yaqwINzSPU>bMEj9z`0L;esDJ~R5fjk*&k&T$771E03s7V;O=-4pqer0ndEs)zXGw?B@c+w zBd}rn^h3CL%Ge{baNgVS6kjr23wzeW-q91VQdQXKiy_{;dEnZO1-HO$#Rt91I`EJV z-}$xZ&W=K5YHo8StM=bO5JO^pYm7}XG%qe++Ce~JRH2P9+fO-mkn>3DYUv`RuMMf}3!lcrknw(gRK?}$en!~NJObO1U?T&wQa0^hu62UKE zfsBnKXnesGe=i@qUsgcTwt6^g*iQvCwDF6Fc8`}hz5)z&3IN3ld`Py-XRIhiyktvV zyQxlO#lp?efdt>p{;-=3Js)JV7))_s20pt^j!Bi@1F|4S_7(MOKgd)S)JwOy!em(= z4>08h*xEpM@*JcF=(#*@a<1+bmz&LUn)-)Gr?j@zOoKO!(|4|lPgxx24Y-S))b!C} zmqaA)i2y8ja&jN5#Jl=#!}XD!7W=nJh)+>f=A)Fbq|>n&F@EB_OBjwliAt*{uZdW20+}LKjFi(|(303>UrL*jC?H^(VtPBaE?DFV9 zWIH}qzq??9NfhQS67c0^UybZA1SBJdMb)B4jZX_pXR1}{@K5$@2)ZWIAr%J-ZMf(? z2(7a>H8_jC@`JL!WgS|Qp*ct_a(Df{ap)|z%wpq~KGM04wz<GH-7^T~Bqt|?e;&O^Q;kn8>n^Ol(3l{N*RO#>I-ppuN$$$kgwV7zxC`ZlJ9eQxG>j4 zA`Owppf-sRmjy0j|4#^qx~XvxTHn8n3lvtzsL_c!MH7OP$z@J zISGyYY83(#6JwX7C;2Q~jDTf*I00e??$v^9H#OOKvmh1i1fgM-d-g%gF_(9x)$j~i zt}x4<4EY5DdNzChLGNF*;F}d{-7>sZwW$;;$^V1WjqgcHJg-cipO3iolCi{efoTFy zeI(DBd}HgNVj2)l$vz=K?W$&9(tZ`l4ZVGj0IpFrdK5R$bZV(qSj30k6##*dlU6#* zf{=ymT`I_l2giDiiA9L^L7dbrMu~Ex&{`@|nmB})x84sNMLZjNoYm|>R{e6aeKq`b zITm!7d=}Pwr@GzF&wMgQk50sGRY!M!iz%KA@A??x9qkw@22bGO_?~aBSz~6uQ{pzz;mCc#KJA;ZGH_j(p%pXWk7iCc+!Fz5>H39-}Nldh#0qfe{lEqZp`KDMlsc%z~qBJBD01Jz3i`i*pd_L~7IB(vq?;r}ko4@3EfBw1|4zK%ns!jgq zPeJzwIvSJ2hN1#veoEGWN!F5?*?St-s*Z+k{2$y zp-^^52Y(UuZl>P^hcDttodz zV|G(r836iSG<%hnRg2FB7X7kiqM!!r@J7@;VNA`+d~9Bjek}D@uXs!4HokCsxq@JS zwzZ?$1SBQHV6};n@$>F_tW*AO3Q_L!I79f|JvTedOOE^Um%Bz2DRJ0jJwCsVlscU8 z470AH+WRSCCV%X(-8S1JF+$68Tk%1&1~jSkOAD0nsoJ3^9OWI!i~KQAg5{ulM)g!6 zj5yTN0(}Q8qpxZTH$(9$A#RrkjQm#Rs;#W`u7*?G+m*cKduVyGG4!oJ3&Nt!MP+IR z3=M)`6vT`YD%Jl9BOv=i*Fi!WiG)=aorCaX&(3#8Qjj=?jV}FG z_9IwXn{qXL4%y#JPwb0zea*`e%mgFTrLBg;<#sN{fE-MqgKUIn_LtsJbs7A<(+{-_ z_BRTm5Lg$c>gI^!NG3|s26a}GG@K;cQ&V7%ysB|M8;p}!xEO>5++#(GK{5e+k6u)DEVD| zYwe)xA?Fqe5i^k@CV`s$kK{==8 zU*aN885a439oWxi@TJGY$I&is97|MMilpfa-l0L+-invw)Gzd{qDf}!SRS<-z0~LT z1XD#h7O{xWc-ZI0JA8D#L%aT3X&%>CeRk(R4PoeTkD{UQynXe;43_{%}(4w0}~~5 zVzL8d`X1OFwcFctWq>w_^AI=?YvSnVIfEj#-}qTlet4>KggiFLC7~+uC>)@Wg%||I zABxMDwp;Sves`I}kP8 z+|^E!rA7w8?@E7+Wh)3P){zmG%+1xNz=a!VmqoYKjT$uF)J(_gUq3G+@?NR7oWB}9 z@m*C@*EApgd-2Eite@_A*xfz zCi6Qs@tcY=aiVB2(rTR`3DePbcfFW~83+_lK1_k|7uR?|w+M83?^1%QkO&%QkLYC? z$XkLun@L*O>_$lzWuoyOM7Oho3*s%^6-D`xW_boIRB`uY9WgMY&fuyw9n1lMmW-65 zn_Ow}bKbf2sE}dew7tZtN){8k{oRfjqxV?DP?=Cv4HJys(tgcGjZmaK89|w*v#Xkh zI(}l7KFjh#nj<)6gp?vJlB@D7k=X7Uj_gbyo%W^O^{PHg`^fNG6%0@H$Ol@jYmX-k zowMq94Qk&WilDW6fAIiOYMxL|uyXLUlyLLt(c*zl(S@d(EHt4awUl{|1W8jQyZby@ zDky=~-j7OAc)+UE9%Zhy>v;~9wk;=p&Lm5BNnU{ui%7EKEG|Dg$8A=naHR=Y!rEy;=~{&M2$O=Y^}f)=4)%*^k?i-Pu@!8k2Qrw#*Ti z1|J(`A{47-z>7zf%GLypO3(Qx#89-|m|Xxa&Xn9sf83+NwYJg=d?bcd1v7O#?*q}G zH6eeI7bd1IltLD1L6?OI-Xc5GTAaQ zDqQF{Bd#oA506z3F#PQ4m-kF{4K8oZ`n11aTS!ayf0z306Lp@2tW0SPmzvaijlhE7 zX`#ad>BTF+%w(*#i6gt$|7KhzNW7?%U7rpBBT;$SO7up8taL`&Te(3 z3*Vc(bQ34xq|xywNK$sf@=D>k!z-+Mv~2cmcD7ypVV3Q9GZ)ZauoObGiYe}r7m_S4 z3~}!^=!N(oRpBMTpzh822tSlF-q;!Y=4>>Y9}~J5WWQK43&I}o_pj)9SjbELI*#3l zrMgoh=E44Z_UX1Bq$irqE`%_`7 z+Rb|y1^V=uGY=o`k$9J;af23tUj(2bypDSftAgj_NpM|cu$d}PZ(P-iu$;MK`gl1k z+kb&%mYv#femUC|7)YwIw=-%sus2TS^s49B89EWI`f)b%)k)!eEyWcZ7MU`2+_v_C zw!D7{M`cGK7fG*c2G^~Wv8V2w9Sj)N_Vc{#Jidfms8Fh`m7q6=V%B9Xqt5cQL&-j$ zEQugDJr({=cfAIY8GHFUUy>O@&k2(u1_e$yYqCY9f@73mUXG9#`l(#oOW(N z;g<-Dhx$VBu|=$T=IA_=D-+mt(%)R}l6=snE@6sFUe4*f zaRMqsf>`6;a+1kN$SNTkpwjHU-42F)i%R!muYdbHFq$z>2&U>)L4w;|uJP@hu+-u% z4zBrSoV5pUzyxNyl>Z+jkf*;bGrz3OeO;3Bhfg}vbtN0bt*ACEWI)B*yml$$;nm{H z#v!gg;I9f!@_V(-ec8RbZf$n1a~4W1B~0QO=@!2pD&e!o4ccFcErP-={lTVb@PXGG zSun!5A|2K+b=OI&H)=C7r4g>-Dl3U)$=nX&f5ve3InE3L_V$o?dH}60y$phH`;LV| zbddWqfGzZ>n2c z`9-bkc5@T4!Ww|lFl)Q~biyUb1kWhfn`;&oEL_aZ$8Bw;aASG-YC_<)F1tOzGk9~g{BY*bgshfooj zGemQ(ZghPagKu2Nxm}m5Yca3GN~)R&91-yx$N#v9ZbH~d8j?nNMhkwAO2U$4y%D;) z|H|Zln$x2PI*%Z9lldqts`S&8ZCL73q(Zmb`TgT@VEWV_I^I--e<8cO?rz*rg_2>r zayQ1>&(y@Ej#;5(81WvmdRAwd({~q={^qrSKJ-yIf&WvP*7!7_Y*2QcR=>G9Fzz6Z zIRMlzbUP`~x0fBchXDB@6)Ty78LQ7`!rZd@@7w3bK-dz;XV_AtcJLBD)LImq*cOSe zc>GLXYig{~$ly>dD9s=|-ZxDQ=KGz5EFEI1rXKO($BKC7_5!)l^$#g}WAwAjY3e0I z*~2!VbowzS;8_fxkRS_hgq{OXz4@2}FN@y!{NF)<@7~k!Pd)#Ck|Wo`F5FtpwBwuFqyXWm_l@ z(v>#is-#IlRlCa474!;+NVV(2ZD+BNb-nf)dQG1a$EW*^Y4t9jD~mxsCgRo%3eA?X z$$NiP%~@$jG5{=&op{LqYPv#O(eRXay-Yf%0&Rg4RK;48PoI2+u2Foz?)8t1YdxYG zw%b@3D%~cc;XRv45qNx@9L}-<$z?HNEq}F^W5=6R5$ZM{u|wGTC|#x30S^%z%twC`viaH zK@U%{qTO!#s^%_{=(5W}&BC>Y{jJU+#94vVz&F22W(^FFpJZScl(_OeO-+}iOFLU8 z2^8wy=+~4>G}skxNQci@6`ICv$X^J1#_xj)iW~hn^u1zr7WASt zFI)N^6}vlA1{5*cEYUrt?*e9dl7wjQ*ZMykOQSF&CXQ@0@hdVa8RyApZ^$E*VRKF( zIprO$U=?1h9*(3@<`5ZM-~^++nr)`b1X~quhz=iaNLWxXRC0oE6cEdIQ(<(%fRK^J z;IU`xY=X{6oS?4qfot??Lv^bku9gTcy*+VlpX-bvY-Oy$cpd}#D&G+-Ga^*E6!429 ziz~T8?o+O+eReZV6&(r-9cAJp5I3vRt7eia|YyL^yNg0?m=G@%GXRB%L1#`{L6 zN}l;-?8WOqeZ;EW_I|tQ_!>C-%3$#=RQ;r3-#ORJG_FcojOxAm?d-R`O?SLo25hDG z^k5z5MsW%jFC~c=lKj@sv=gM)jMv=0crf3x0O47Ev@LH z=jdHXI^qXyt!$xzlyOBncxrm&;rPKQ*+kVURe-+albxuEG3)(l6ceD^!P9mCBC{CH z661Dzw?T(cxGsH$ZZkN&=>1`<#*ScUdMxmIli@ZIj)Ii4CL|%V3kz6_vxX!ADnhEt z29IiPdNZ+DNLf5jCkEC5Auq`tDfL@T+|)us;#0 zSz}9|D@Yvmwym$(F0txKo9x}a!LJXaRPOT!2C^pn+*ljSc((s8Xa|2>GFq+tLj3UA zybDpb(;fYZ%(f0$J;6T8+gk8&!{ly14z4NR;*hiO1}}D&5aH+=K$~9NrQxS~m9x7{ zBtVkeBx_-AZY7+|Gn4eLe-L00?X0r`+H6k^sQO#_D76; z_NCaG*Zq`Tn1q6+E0!B24JXt8H3QUQtbVy8nrNOu0e=FChG$wGM{3jth zAq4`${V%zOsgtq$f0P=GZnidJ|5ayZ_*cJ7*NxrhKpWYied5(x3-bg<-e`*lFI-al zSk|zneah3R5;1|epQV zqQ9?=ULlDZcceHFNwO{)sT=RtPu3CqSv*wxNmi}WV8Jl<{ZKA$&y6lMiPwSkn2`%P z;#m)8^HR~3cgrh%+(e03q`+P8lPzHl}h zIB78FXppK@iwE3ir0Pa{HS_;Fr-QiK>`tXZri*jL8_ZPM0G7|hvpB2llPqx{?dL<@ zX+|;0A5;X3lzvk*QJp6vTf%6F5kykOldKe1oL_9tzxHb#wS}`cJO8_xUwl5v1^w8@ zdoC>Gc%fIp^l@M8YDad*RhOYxCyDbl6i{#8<6>Jj(Gg-(kPAzV9mgBzuhF`LJL zMPQb{l6S!3VF3G9yG-o7`?jHV98oG_O|w3x!eB=8q}rM+O>)m$pJ0Vkp@!~!u>~U# znBWicktlwSY@Ohg1Y5hH_yIiV#6+zW$4_fTff7oQ@!KuzF~7-4D4gyWA|qCLl2NZ66Nx<}6b z|!cK~z5ylV8!&}BYJUJN4SGn81ec8$jiTp(SFUxOKEWG2c6Vmk#^YN5>qWP6M4L0gH3o-FNB;>xw@KDR)4Xo@C$MnlH`H4Lp2{YayQ9~Is8&P zGgyrOb{I_vDZS}Fcdrx2hX2~hk~39}^1#dk!Z9~@P;4p0%k6QTu~mrLAy?@QHxtlOB{@VWQIHt>}{M;__N&F2|uu%TK~icyqo=E5g~&Jf|!So$A6X;n3k`b)W-aAa?4I;9@J1k(vbwpF7n?iO6%0oq4dZ+Hnk6XRL1FWoRKqUa8Up+%mp8m@h>Xoe2;sJxNn+UNO zA$sSLk5i0CNh+sp8vpo)0q`a&w%WGIQwhcH<33;UvteTsSE_cmQJ2_NS;Y5T1NdlQ z)mhqP=3-;p1ceQ3!|9+k6N)Wme?RhkyjK)*=qeB{18@+DOtbQvm@}}4UF(Vi7gwxB z$tTrhU`>olHCwkWWyaU-Q1B#$nT7+IB6xz+sHTCD#r!Qf{PG4vv6@XY)2aqUvZ>7N zHB_wX4~3fGB@1uY9V$s{mO4Z;9}}IyXdBDb&8mShE6Pp4zW~>0ipZh-MKsVhnOu=;iSg;&Tn77v|dlqk}sr&n)$8HRu;IhlrNjk2T$y z;M67de%`_$+q=DHdw(my+jmBFo0qFA`l@ehNgR1nf;UC&ivH(ikXq09rUEc(u7#$V z^w*p>2_6|jfs&q;Vofsj_(Sg(9yy6+%cTZuf7R%l4kH>I-3^sX>Xy5eCcZG|ZegzX zYb;+-uJrw4(`O6-jTcU_LzRA(Gs;weJoQDV>v((21Mv0FIb`ChTpq8-&Fw#a`nh|(OheM5@6Asla{+UG1!0>c5;qR(ZU7Ds zxE~wLj#>OE4PY(y&rCrzd~tR7J6pGY@L3(Dm^K~Weg*Q2eg6_NYEhF&-ZX?7sVxY^ zW1c?RpNineIf-oSc7H1ag)caA%Ff!~UObma{fS;ujRk>HThD!Zl{~5m97QdFx4JPwxhRz8LsR(&hqKsIK>`q z=1}uG5t_VZ4r$qrZDF&~D76p9K-~$6+w)6Q&+xrm)kDxsoGy);|+oI$@>^g4b9K>Fw1S+df?k*tB z%fu(!Z3jZSTN49T9_OucNPESIcCI7QUVgybH*x>f;`K)a#ZxhPuG8piOmv6#5J-Xt zrt|1QsRqISm3jY*zO3^`5Gb^FNWaG!#>qsle3b zF?)1RkH(+7W986r-ufx6vpAfmWfo2VGb4``c)H!(uF$nS4D`1bsL&#|*k_71p zXT!mL0w{@b-BMMNt4;eQ>$CBBpqEGY>lGqhZqN%;vEy(aPSsscFChUvH0zJxFNr(6TBHN< zhe5qPB>1Z!Za>Oh1ov^$ege@0XXY)QCH%n4zxjdbjgEA-dz#TkJ&pLSSO{9eGWaHm zRLjiMV=ftr5u-4_KHwcJQe{AJ*xF_bZ6;{Q>D}qerv2ZBZ;OVC!zM@I%w&xnnvf_w znHUYNy6!*P(38VURPYkfup5uBj@?06(c$;fm%c~IOI$(L%`m2az?L6+lDvNFHf@le zSa`ieY)(|X5&tL8|5rHI`ft@ANxL33u>UpSndIX+!xgSj%-=E$ELya!eKL^>@zJFF z_|Sz6opI(uNQs&olJ_iG!V&S=-rg424*dKm41Bw~Y3P6d$n5`oclvktFW|Mk-_Ne^ zi*SzA~Tipco9tNVCD4*(GczTE`&{(G+o{C6=Q_{u?Qh_k3Y z;wjmR1)PeSBMV?Qy)+PVfKX>5!XEDnD=QC~O#puK6 zo$DX=zny=h|84_;LM{CubjuMz2Ie@W9IT?Ue!q)@u(P*LC&%F*g%u_`5st3t=A%y= z7_OqAIaumzEy)g%w?WuvBB!{ltK2>(Se99#yFWP|xYv$^ey;bi4xh28vn8l($~()@ zw5<;~mFK&EUM(&o${ohNoe|C~porr!$nn-DYJxf>Kw`q%n=k7mCV-PZa+_ExqL!%% zw8HyR8Dd?Z30LbJJ)!US>#aN6?bi^7nzzaHxFXHwQH4)*;BT*eLR^klJr40vIv)YI zTNPgYQa6$#XP+`;-x+jJk)O-$GA(hgW3hqoa}wJf9RKo31FTHKuz@kmWC8XBlHa*) z3MnENRH-68I(JCJ9UZ$|vbLXInnM!H@yM;KSw^N!Bye~-2(QiTDCBk!c|ndKy^lk~9b8*s zwObzmIV3agm(6i?r#M2df152St`Ac)O=9{`$Vj$2YWA^?%1DmsBs zP}*4qahG1QnMlI3`}rMOMddaG*^t`<3QmjgUo8oCxO!^$hCeb$*^Lp;djc9o@AAvt zY7QOjB;vEqihkm=KUc`Ga#|$TTZEB}d)P-z+Udgi1LT6w-_I$T174}4lFNsCs_M7# zytQ!pQ5akAy}|Cwm=iawJ?g2F@~K^R(zzUJEicEmm_=LgGv8P_0ystz{@q=9!LDJ= zVx4Au)L2JGD6^}r*X^sK9U(6=ok!AlFVKNs2Yp+y>V8RE+^;JGBx2ro#mLc_}2 zgbO9ga%9Mfoc0HcxvTMUIrJy-LyD1lGe@*duh=oNNmNt8TY^` z&!!w}4X2T9^BR# z6nramyyi+&LoFf5vkTa&db0t`1<^~nBCUvC?Fs{U#}uC?U@>u&BOSW#PVsy*{UhVw z6L&VR2_j-es$Lnfc96M*#mKDr|7^in;=Q2<7;^8LtB0e>YtqE%dpr*Nhi;SZM zZsDu&R=uE}&=WP}&2&E1)go!VnKieWJA4D?=XB-{C%8RpMx5l;e_fj6jfsQyxT%Kb z&iv6a`BBg7O1&F7gmI}APpTd$Uz(v3&jxZrE&**TiV2}18CQ#Laf?BFn)Z%83vGw`=0&ah$IQ8jpL&-aE*$8&#^Lp z9}+Jo20Ev_pcM*Wy$jcwxCPoj)J`*cF&Uo)2k^w3<<^ayJ^4oyZV`s(dB_h%^+Z`( zKm4}*z1RX%l0OkK@xh|vMYgtmttKS0MYLHDJT>$Uo`93T*@zwh-S3Sjz@^q9#h93A z;Fmv*hwW!=`ghGfpX|2ZcF(j}{bIPUSe(7Nfj`7#40j3n*JM^aHhS^O2G(|1>W(*% z`M31P5f0h&IHYa#Hv4=#(OeC5#A+X*z`1q!zi3EWX7+B#u_`#Br#_EO6RsgHh$t9t zLOve+(mK|EEOUlR5UXogmF{-dd&KytrwVr0jTi35p$vZfrKe*FN^OE7KxqW-ir}h> z($lumlYq;H=7w)*fM?dUa?m}u?gcjdo2@vq)F%VEHiS+^CIPKk>bqA!W*BV z1RJ|Y#AEo*c;tLk0Q^(blXn;+=c6&oU<9O+9UHQM->~5B9%WJD>8tE0v(Qr(lG7hw z%&Vjx#1b>_-YW-yZ`cbkNa)A>p=ndqwpfJs+N^;P(_r%%F>}`k`qcOQC51a?B2`iiwgLfBcF6 zb4lluHDS0ezvA=z&{|@?)+YL^HV&Ej0xrLy1YZE*b&?lGSlQ7N!{V5_v!%y8InUQU z_^$0-lY^g+;V#+A7-CB++OlMxU(QQlW1(D585U|1t1Yl}oua0#tCyRN41~UMdpti0 zzGWq5h6(O&g)zmRobrfmbZ?$eUpZ`#z5nd+5D-cX{E-nDxAQ}+b%{A1;WAmk2CX*w z-UlmyA_d#b+KEk(fGxU?zMx{(Q!^LY7a#l@CH~9a5PnH|@34yeou2}JED68~t3*f_ zb6WK`|FL(5*<$cDWQXAsI73zBrjtY?XKZ=1po*i)Jo$D|pLZEAZbS1YT4aIMoO)4z zLFw(3=Ao&I|2NyZ3ZHhG7(c&G7uu`yHQdZ)z5)2*>F#%)Y~PRjACK$mec|&_>jhhm z@KoiKy?b(^#M2>v?xJF&>Wv{g7HJ&S(+;XI~h5Mu=NQAd%-+q)%7cIUy+K5Q)L?3QtG9z`F#m z6mPuucuE-?PdcZ0z|@6m^7|A@#rb&5K+5g=55;R}PRyB|s`^SQP1<7s*ZnX_Hq~7F zXO2VooOxs87LCP===GvTb_Jz_{wh(FO` zto)J}Z{MCM(!b*FBh;$E^Oh=hnMJcemGglW6Y9R$vB?+`ly-BWYSO1JGd)(9rI8HZXIa@#MX(RV#{B$;6^%7P zn6V&*7ag>B)JS)w5hPs@;REl@I$SnznAls`p%4>`S9s^%t0Ei%uNl1W4av@#9zPq@ zDJXJymh=zI!@pmJmEqo`t7^~>G(k(k%+Agup+B;K13%dbEBGWhH9SPjhVADxd=E0S zr$q-v9U-H;+SA`g@AhgOP!=I$hr&+Y?>7|VqJe(PQzTN{w)eu7?Gt{0k^}PAa^*eQ zG@llHiC75p#vO5rWR;v%-H{Rmg=*%bZEWZ5?|KgN_%5G3LNHD#-EwNFOzykeYoao5 zC6keth0*2dN?YNc%`I)3$;oVJ6pIci97FF>cU{~%k>R=z$|zLx!yy(nBGp1I)kx#T zlG-9HzgoDHh2nmkzI%!bE(&CQC>*qrAr8PP7iS#E<;btKE@iIV>AzmfuKSB@Z>^9W zvFc)d90~QKaYoUZP<*(3@BD(&z9a#zMUY(aO?mPen#+n|kNu$=jUSD22JS@M5P;_R z956C&zbz-!4qG-XVch7$1rO)nI*%Z|>{BKc^o}N-q!Arvc#%1optYt&BeqNjt!5U!RE5jGq{P{CfpalP&D^g)hY}i7W;m&-VrFq{Yb(4HE($ z`6PCB*hJSEL-t^E=ebLO2$Y0t8vDI|K!)lZVGkC9tLnpT)L`b(Dd(~Tyk8X4K}s&@ zjiUigeA)Mc;hME$>Bu7M-?h?uFHF&qUlwsLr@qT`@hOwTW@Pe!BV9^EL2N)-kX~^t zskx3r2pMWa&2pRTwGSb#sAFI-Y18Qn1|0HsZcjAT1n9OvxTd_4u?}Cj#8HY${2Y|t zpwbA4O93lPT#&^hCTAxLBKFpk6u;rh_e2?0ROG}S6!m9q&|3VCw799bX>do{jINe4 zeLvq;AkU0{IKEuvmz(^op$0|XM;T*{v^b_g&9*= zJW~A?XU7|lu#l5~eP5=^h$^qYw(wa>-$0VJ>m1B+*wfUzr#qeBjo4*o;klHH!P1m^ zbDvwbZbW46eh1`TK^6u)+t?DR~J;IV1l+Z(-yRo1z>SD{h%-{7vnN#GVn=6w`n#=b@ zrFjZt+`LC#V*5(XnUUxwkMMrB4(|$s0QPkh2h3ZXaI69to5Ds2%NOAA4yT9sEIO$5P zf7XfQka!m3+t{#BY9hIZbW$Z^w&hxn2u8YyyE*)}u`7Nq&GIc?+6MQVkp%Z@wj2cfT=MZ`)tX@>e|k$_@l% zgMQb7TyGkeSp@^qlCbnX*-ZIAEL=6HFV{M<)g2rB^ zl!Bevzt-dCHc|kbP&wOSL>Q8000`grD~;NyOOw=LLNDr063W{y9rce}bKmr%GsRL& zhEr;d<57*{{f;B7+z;9FU3VjBS3DCtH@GE0Bf`@3-0W9Ur z9uhPSC;1++aSTFBvN@dcN}_%75(r*^@Uw61x8G1AxSx_HqQr29!e^%O173qSN$yQ4 zd$Ttaf)b8u5XvE3-;#@N)p{%r-3t6=ln1{FttD50vXGVtPdvW66m_)iPpXL$e@BJE z^65^s4wnQ}D4N<_DgdA!&&HAO$qAZ!C`K+w-?Da-Pk4W05>J=z9^%+ZV(=#c^S+8| z_x)-h-_}<>d{l7HNa^{tYQyXG=S{^@9f)Q>srIvWJ7XvJ@5IKXfD!{NI4jT375KRI zR<3;C0@ct6(ChRZxEOhoZ$TsEM-fR*(A7?X$qgSM=S|p;U!f%k8hyTSy0|coX#DV4 zu1_wQa>kvXQ7{Ad*N}sD)|)aOqzX)$6L}G`7CbsV{2BV}0(0GLEfoWYJkR`nfX@k+NVq)eN0@w^v|;za$0>Wo7nc`wV;3C26N1*tIhKcK(tSRH4hg#FK1!8YN{id@qg;nQ4;ku3*x#_- zADIi0p~Do(Fj9>Qf#HwiyILy^BezEh+^DASj(ADKWkLGoA%OMYFp)h}BtDqI3uPRVclcZ0 zwVsL+mK0>Ggsz*MMgxO(zo#yA8lMZM3?>23h;yE9NUX-S5Z|7R4tXt0Xnj9)1$6 zj8SoKZs&dR$s0|aS4XhBKlvnOI?rXVG-V1#e=E)X=&|R1=>4Rf@n2c>gB24cMv&4s zH``~93TqJ!bG|ICBzKE-FB&9(V~xC=FbMV2O%tOnO6=Ebq%T}L&|nw;)7z$2fKgp2 zTDzbs)pB6AQ3~6X4)~sv*V1a5Wx1%Btji8wI$#1uwvSV+u}kyUYr2{C)OUS52tT(n z0!E2q+`gCM7MO>!DcAr7y=c{tw3G*0|3gV2xL>Y1$ke{V5(Cl>FoNy$Xbf!w&~tEl zo?iROoRODl2>0~L2ussOC^u@ha-serLzM`C24OHQn%C=fqpqTcjG~3mXs7$!{(=JL zOc?xCs<`jySuth|NV)1XvvHzq1|!|l&wN(j;J>WHIg#>O*~p;oGk!pQ1y40PY$aD4 zhx+nppZJ-Wlyue)gm9aKQuU35aJz1itt+hyGMj!j92$VyPkFyT6YhY#iu8+V4=a;N z4Ju2392svuq_l5AS3PHvo7k2ZpXPy+M#`znx)y{*aR7J=6W!7KB8={er`2sLyXFXo z%mzadE+d;Rr-W2qsFR)D5ch$Nxrij~WT+iy<+VOodxCo`MdJ+jIEU)FvIm;qD>Gy~m{*nHKI|Vk- zqRr4Nw5FIm#f=pBUA{=L)HIY>PAAMtQ82#UHrmQ>PQ#?|5$|6~GWgc0efy8hmqv-O z1u`XkPH~o7U4J>XYEOtzo#X3kf2&y}I1a4sBgB{A0t|ZHK$uz$!#+6_%nlU*5$$lk z2{QxDU-!J$PTw0$P6!GjVXq@Z!WBMRP7shE^M|tEI}gi_kKC5XC(s4c46C|+JNUg! z1!`IF!1bbB#g7r$th)rjSWMW|F!V0E3>ZX)qG3itQ2l9*b(K{~1uKFV^s}(AMt{49 zX>P1Mg>&rGHHG*9G6@0 z?h{WgAW?DTF;!j}_s*@COz$vPo1{E+^EiV>#HVLx7Txte!|1=;vbJ5uAsGel7@$&< zGrg=;Tvcc71nGZ1id4XBgqe!C-8c#-Q7do-dMcY_$;3u@0r5`_7o)?q^QQ9Wmr9Ck zl8H`uY1(U$09Sm^TZ$BCTIozDxP=>ub`pU<{P!Z|O zWiBAq_@G9N*17T&!qHQE3P?m+X5Vma*gL=Bu|Sh?zUUqefojV8Lcq#HmX#emOf5 zsp#P%ix-y%>Vu#E^K<=tc`d8;ISs(1e z=?{hBIwO>X&<=tTiKU3Ny>apZ#3&7nMHGiOzH-37?VAel$7F2E)aHkMyfA$x=;UJt z1xFDeW#{6bl^rfv-=N zYZy^EK~bcQL|VQ2z==GboL=<=qMP2%3sK?p7~CJ zErJxiI?t}>iY@k5*eb59a5Ziid&K`+bKyAYMX<@Mk|=}#IVsB zKDMr~Y#V{cHsfw%dGtMdl+FsJDP$W-V0-Q@F*Yy9e!Dezv+JOvIN=GDKmTNA^;=bV z0_nG1kzjqthVEjtMt94&BcnZFvg4v|5#Y#<%^VjFk}j0ay2H7Q5Bng@ZsG1*A+biB zX=nyDy&BWD)(AUfXdu$9ltpFREV5zU%Y4WZhG^M^+WJP5FyZmXIuYz-7M`Q$SbeF^wV(sLZ1u;mo7dLhJxoijqC zM}2!P3i;8KSFLxl-?zMp0V$~*9dR2-QNbmxwUsJ8Fq@Gwg3y z{*<0^^A-_apg^&L>9Y?)Z#B8wVHa$iw3WxxNa01+Ef(NAN_P&}5B;P^2+6`YuNlBC zP`g?&C_SydeGMwv8C}aPxeMXiWD6df#0G{c~acyjSRlB8=IIYNu)+7Lt z401LZD-A`$DHVjc{(>M`-Iww-dfF@_cpxbTP=q$(tQJm=<{SL-#;qcCax5k#A|HNT zA(#g%K5=e&CWA&r2-1(>mmKnzf&Kwxkd9ZwtCT%iYk0RR!9a&U3Q-^dQ0m{BxN{CB z!pQ26mBjs%jtRVe-e4Ksk#;|J^AYS?8ct^u&bINj`zgOPI^J5gX#z`HYew`HeWi!s z)`_{)(g;DoyJ)}vpjcc&l}t(D3$1!XHKn0?L|>J}C`R+Ft$Z0D-W$S3kt>W8rTYbg zyI6+df)xnx!-m%!pMQ-PQZl~>+b_>oZnU$2jmzb(PsmVv{{G$Dm$Aam@dR_b;IV8Z zc*?!(sxk%mIL85hDp}dbPj>$8?on-BBZSyVN~_pJLX3ZOE#fzb!@JE%;JoEyPm2K0 z`!LqkxJHZKC8aL~eC(89e+*MxJpz8C{jAF>ggDm7ndUnhDnrvd5|p?u;f>M`{^H&I zN1-_JY>UXdpJgoa`L>*CIzXM21JQ3KojSNA0rvL*l6czBA%l_MnH)nh&ZL@J#^Use z!a(M_Udn6f;V=i<=Qe01j#yogihmTEc%5?Dx6r#0U|O7%5W zAybvN2`Sq=f~&84N7=;cq9Ckjp$`^TZ3EJ^T#-Z@F%gqrS5n~l)Y1Ne@_y;fl2%!Q9c{=va#$ah12@3k*ZcX(Gn+#x{~ulvC>2%k#78{ zh?LIGFPNFA88}==mgcJ0<#DpN4Jky#fLi<4&9$evafqi|E-Q3j)u59m;#cyrL-M3@ zubdvOTu4?^7dek$<|ys}ho_YK9ASq3Iy()YQV6k}Zjzqt968>B!UVUn#BOG9GV>w! z`p^ATrf$Do4B7>7UDbkljE+YC01iH*Gj=fW*9Bm zdZwiK;PUM!e~98CNn=ZsvL?OJON(-hzH|h{rPp`ca$y^nH>+15avG{kKmgFMzH}$F zY^UkrzIWJQU2~OAya{HL7m(fr?){G|;tKpqF{>3WS-D@G+#v%rHhU?%$)~-EFR?O= zk0$o&=Rq)IU*7t4Fo8Hnl!hArueFTt<`mnhI=6MHUkFC1Y59vfLQ)fu1{{tcWK8Jx zjEKsLghPc(LP0Ij7LUlSwxRGcsX9S~7gQ$_Ex_I_%8Qq#Z``e?K8}M+OG^G`p?PM_ zJEYpZr!J4f62A>uRcagRP8*^A<&-$&gS!;$RYPSt0aZ~v&}x`IJZ|*U7EVo9jGO3t z)#hS@^83A&9B|BxvNvY_nD>Y$vLt7&1f1hG3NLoaWi@MCXqAdx z1FG((IrF+t&?69e+jRrU&*VyEC1aaXO24p#^unh!Mm)I9m-$%5)oNRy&-nlzh4R^7 zLjjmox09ZTzM&yQhf7!W#nGRY+uDhA@zegG$V!QSfkp+#J!W6~7jD7fB2(s5Ica-m zC+35P&NeK?+M|#fP}96aCx-`a)cMq!%K)=_L{rjKn?w|pm?_0uv;A1Fmxr5gBRsuPm0Wm@?W%ax5E64zuE*h_!W5)V zdaLY`<*JYMX5j+(?L%gwOwbJ_h-KQIv1adW@v#jQF#3#hRG=Aw8YsbBi_+>Y^VJkK zC6qSnD^7%WqhqQIo}7ymAfOj)${0&&F{PnoCyX*<2?RE2#(WXP;(K+Xx(JxRr7=Bz zxQ|~9Um#udfps()___-*QPp$OEsR#F|iSN>HUB{Wj>-W1moLdd%OCQi*^; z>1(9}cbQO6s^fgFYaA*k>uUwKdYzSVVWhY0AcK_ORpcDj198`r$RZbqeBft;_I~@0 zh4aglDJ--+qfO z3x$D$3J*~3nLjEDQhp<#9%adm1WzGce#e_GT=$3X_W$fzzjA4gArT=?2rkhmk{#q$ zqr8clKaRz1Z#U5!`jz!PIQM8!{`Rm%qY`M!X+%O))xKmurcC%+kq|J-d^|t3rweR? zRW3G@@pH7SZttGcpVU2Y`;yE7_1rnvgpNeMy#j;Ckut{oi+Z?DQt4#U;4+@~oEpF<2Enp91dY(MCr2tJt1y3Z1!NR*4e^jx~U2q1&9 z+g60{4|M3?(qiB#K9$A8D0IUjNy7~a#N^u1i;0oHO?{!XMlk}QDm29*A<-JC7tp~e z`pxaxi8Ob?d04*s zP!aU>g!PBf`IjcRp#m39NgW_80(_jFB!@l;{LWhYeq&`gvE>}hU z1gp=d=g|me&hnH3BO|Jo6W*5fpE6SdJN$%U5<@(rPHgS}4Vqdm|&_Loj}d zkv2dpbkYHxs%BfDJO>+^+A%ESvfZxvYmTs6p6&Lk(PWp4SPcO5!c=RJLb$#~F0oDh z!pu+CihTi9>RX3yI;|tUBC^RS&p2*oiz=ym<3>!vwNqcR9~YnH2WZCMCi3flHHU5+ z)x@V;K{Yf*mFiqpP&z63fI%g}f=Ao>WtuMqf~y|7OaFE^N^-BC$v#f5tQx;?`b0|F znUDZ&LK0RZ%-SF%*Wv~N)8C0AW{D921A!*-Om%WrmAryOI#bqxTQHN3j)DFkvwT== zKVhUd6^N7#9S2o_PMJPmBU=Fmrj0!iuSOD36yZ~7N|;}!dK^EWyzD0WmsH);ti&Ru zkY1wb&eGjR6|v1a2FgZ#mxa#glCxMg-BSm1KJpL5@eVXS+xFhLelZ(hFwts}GPln< zS}4H5CRakg+uKQ8S1BRj~L}w0hXDa@dt@Cx!eFiU%Oe0(n5am!3)M>EZsZ#KL zzccUp>3+i?v5K%^=El;Qty<;9WC(P0BDa@TBOcC<{y_yXTjbSYQ0F)CxP!CwneZF~CNBUl*aePd#SS76frw<9t}Oq}0KljC5&h zWYEnckQpBFr!m3JQTI<5-6S5Xs)2yzFM}opN~kX|hXxT%!YF4}JBiMIzqu0MgTw{z z=~pu04Fn!(6j_gcl>mpL@=`$Fe5Ik!BBO~a^g?)z7(@xwrY>CE!s*g@*MiFU*tBxF z2{7p#(-7k8MDWlbtDnwTfQ+Xx+16H4(sBk$F?#q)4cUpM6q~F@0n^!#O!8k%TykHL zVxI`q(1-e7XlBT<;*E4Y4xy2kB&F4Jby(Vcd4r3GT&67@%nnOT)*w`5%sJ%WGzDzZ zx5}|pkH8bPssEm!$BH}RI5#GhghNCO?Y_$z4`cyy*$z*DmFne;d;8s4J%TDTAGCOh znO-{T5k4w^TC%6t(hEMX+lc-?+W#(r5g zEL?>Cn-ddOs89X@PtizB^EZw;Y&RFLixZ4IaDB=y&A%rP4Hu#JR zB5@mnlt_6-T$Lv^Mdb3M^@Ni1NoqcVCO`1kzGj=_`b{=h67gHhWiu_kN5@I!vztiJ2*v=6A$3kED16#m2LaL9%ec~>L%S4Hahp*uPabqBb;`-TUerXs_O5A9^1C^D*Q<;jka2k zujSQ=eLZVY@c_vxirti*7$r}i0G(xV*%4^H{e?B}FL1 zpX#&ZZfK4&Xo@$=>aPS6>U>Y5WzvSY%=7YPC#wMMhJ!F6(%5E|Q}>%P z`4%;sCw}v^hoH6Rpo88g+k@n|i1LYb1+T1QKCKeZ{`er@+wZT;O@GBj?c z=sr=6^SN+fxg;8?Y|C2ci(&Az36Ej*b5r@?KGjOe<79Y9-6~3(wz0A;MdC|M^+&VE zCQ{Y53yI8ooEdBO|7TZIlF@%GJYr&KX5I%cPX?)EKA^UF^OZLKp`0e0%g z0Sd5(xGfl`IExawcn59QSLt>CzK_Av%$^> z3J5nPb*QZDN=|AtIsWE8sOrA5{qjS(L2W`XDi+HfgYs*F{7y1>j*$Cur2HM$tTpn4 z#*fYU;LvSeWEs_s|3goNG9yS}xy#Dy5lLdkFpMVJ3*Zv|)Bz}Qh=+g?$CHx?i$QuBc z4Ds)m;-m(62{mgcntH8j5#W=xc=NY=?v3TyhE%{LnNd?|?vHeJQo+pbBj@2#8|t%6 z1XrV^n9RNLWhL>BmoBTMeo-EY+b<{~09%dI;~;Ls)!#WSV>F8N!$#A%Gx(7X`NgR{ zApzXX#SGFz;xYxOf1R&Wv2esYe3+_)fhpR)a(v*|S(}n1wue-rv%Z@eNX6p*-Lg|? zg)J<-QMRK^D~kJxYbfa31hS>1U*&~vig42dqS-#b5rA>ZS1ZF}^r|b}ue8N5U%LZB za+77{bVNu-a;RpQ6^&w$I%T}LAB7^5*(L(+?f0(q4~)z@Y6Hs2sQJ#u+a{w%JCaFA z3ym?TDumzYV5(|Sxd$}n+GAh*usJTlY&|JLNdFU=L(U7VNmofnb8DsCM5*V^S?(Q3 zCpm-E&Pw|tX7wVbjXS}xH7C|i@&XpvuZ_~vE|gq436 zOo4A7On-8OBE9|we)4@HpuY&^d}bQ`dsq7R^15}?|M|rAe*6((+|vI^(EHS3Mk2`w{yVT1**MuvD*Q4mUXs$aQIm$7C?1sd?O|Ql&hU zUOn|xDXtf*JPRTTN?J;o_d0>|^MSR3`12Fp;>Mc@6L*|y0&}1VLy20Ib(}s1u5q1+@@m47zdw4RM03m}i(p zs`Ro;mF;o+@Wu0pw=IB6kMN{R%ZWuOv154gfFIW)gHN>U+i0RxAg|%yS#W8EKYYp5 zZ7&?#IwTwhJrvcxJ{$%CQ(`|na>i&cF|9PKcl(so^!tM+k!|(puSM#qR4((M(1Jw@ zJOhp8Fi`!}N(~vFAi1|}=`Q9WQRqpsz$YlBTaAy+|h|Q;b-k#rG&D1o)%l zV^42YT36mTIjl>$jz{DbgnWXsAYfICWL;R(B~DQbEy`JE+B?GICkYy8fD%Ut5~uA{ z_YQj7A^plfJ{MJKf>tr&+kwe4=dw{BSiX~VcnD={^5WADCw*d)jYQ$uW?-W22&POZ zbI64a|GFg?cQz0n{}3}IL+*&EoP)Wf@1Vv6(W|mu?y+?91`4)73IcG3CHPTarZc1h z1EJ|$#KPyLI-(mEjKTbhPZLxBEwLxOnf8qhR`|)tzBQ;&nn}~Y8?q^F=!7CjX`i!z zku`5n#oFW5u*zH9jEY&_vh_jFq>P%;PGhsyk$(d1-LG_{34T(5(;4bg$ z&JlwqIZe8Z(l>=qAN^`@`#L&_P$Wxo{Wfg>nvgU1oair^%0e)pA|c4;Mo&Xx&AWcG zjbP`csn?j;tpwkN4@{j`M*qq~{C<0HGzSG5<#Qpxy~u;FIo&|V7CWY0NH<1`_DZX; znvRQ)7&170<8383%i506P=Abuk7E}(aFiLh zFou9i#Qc3O)I_!Nz}sMwNMFSj;701jzij{unHDlG@!^<&i9ynY504z9gd9Uoo`}P@ zj!Y*P-rlF~H9;y6UX$#Svvg`igW31X1{RW9uveMZ&+hz(P%S;?ZkOu5^D0>{K}=~w z=Go*E$zR`PJWQM>NhWppKZcAn_hd<;y$Q&LFFx$|9k73_;2h{#q8>ZxIQg{P`Mr^S zOUbkb)rwWQr<1+G3h9bT_xZO~l5qec@Ium>EJM+iODub|eoD9cq*Rz1rkmL{dLjMj z45p}Xas5)y)w*PL(-=2nddZGX-vC9LE7PW67ddd|bswa*xV1K-AygXgExoGkdch+Y zT_|YjUo9lcFYr1RB92F*EO{)3mIIj0^-?a1^_;zf_aEu=Br0use(&Mkh~*?)Q%h;= zcT=ic(lyh>$ce{GBSG%Fp$*nY#Vc(f5CVK>RjdC4Fde?LvQ>cOJ4%(u@V}@8{i@b@ zInh@4s6;JVW}Bn(m8Zp17==2^)dswRrohBoWm4p#sUHm060yqEx@iI#wuvR@L(F&yyR`Q0v;dRP%UV31>hKSP+gptFiD(+46 zf7*KsuF85OTo`wEcXxMpcXxM(#@*d%tZ{dDcW<^_wEI! z&dy0ayOLCritH2v;0Tkks^~dwmxmUe#bwuCpM{ldmsyMLF$utog&#(cBYU`(QoG5Q z$gG)Lt|4RrVt8&tymqA~?DYIvEnP-5`)wVRDpF>tdmaJP+b(b7$+JHN$^fstHfUkg z6OT05B(!I|q9v}2yjVJk#CT!I#&*OyUrKs!mrJ=HxN8EfqRSp%+{<`%>CE+5oonEI zg~GMD*nNIxq;cPgXKhYTK-{V&eFzdGF%+U9qO=P(k}dk9tFc~bX&TBWrbY8~^AiMmRfr$L zQpX6$b3~YiBC9>bAjP80eqRhmpB{8He1SrvROC!c)n@coogv~_iN{9pGah@O!h69~ z;<{tZueZf7+U%@RJNCmr_U|-4PqgUFWUiX%A~_Yh?PZJ|?zLcmxC$0=oD{m96Hc@x zwfy3+G08K3=BoYmD+icjfA2i0TW}S+!?oT9@ku1ioZ8u)dh1dr_wzwebhh__ERVlK zpu9kd$^zB1ei?ha%7W6JBmU&-jIA-W&TFAN>r_OGA6eF|WUkFb*-5zXO-w%*kBmkB zB+Gm`?**HMns*0e+fV+~rlJv28Q$AvN}+F8w<1Z$7l+BCo{Z{O_O!M_b+hKy<5|zk zyCeiJVW`np>oMMw`v=;_4=ef&9HG!1C8~~+BQ3z>#k;9>bX%Lz3o~zM@vn&@F|H1V z)LY#x)>gf*Oup~n2abbwriQssX`Kw}4hT^W+2#ml(744b9%7j$%nyULQ-q8TO^vDo z_a5)hX_K{ek$AU%6sQc)W{k|hyHt>|wb92XiA#GUpB~bY8!l?7em_s3kiDEX;UEI` zXqyMoVwEsP;f02#uxfx{4})|RqQ;<%h)7`u7t8aT9b9-28djiov5XDyvXJD!n>-^o z98jLay1Xpx#(g=MhL@5vWyuP z8LBct(wXm7N;7WB3)LO39=-VTZRVQq;OI+;i{4WnWi0NWIiFIYW-hYv5jOjbg+G9y za3KkUY+qJbSn)?%aMRxOM_!YyvmwSU?;zqDu|B1-EKn;V*>k;1<3)Th0BWnN48V}#l zMi-WYcy6oT*tPDwyDVQPRa~a=(<_nX>(=)mu!DJlpYd`dVlnoY(&{hM0mWu?#KacW z&^Nfkt-qU;vV&CMuFr2q4*XY^4 z6{rGFNDmsCZXI&pQQRBpIx4j7IWo~4ZUNn~Z{sycnTS2`6<8f=9D}@_;VI~(R^`hj zWfQ%ZIt!aTZtMO*6wa4_?=LuFCLppijTJ ze>uEpz$VMXhXuCP$34qpIB1XCGZJb;$!1m^QEZrsS^T2;U}QS2STW(=`r-@N?VTPj zw9Ij472u$H7Iy=I<&a~tB&&impU!c341!_?00Otgrvjr^8V=-uWko@Sq#>%_{{=eo zq=RP!5*h<~ju(1>OU-@-KOlERgv1Hg=z-^YEZnQ0D~j5wN4u>lD<7yR*R>TVQ<;i( zX+ZmU7&bckHc(jz`~s$PzH+cQnA4uJ1%}sO%vb0mQ~86af`gE`ukKR z3E?M|LIdf(xdsrA>tzen5KB^1uT$W-$u z@wq^?2WxHAr++_i!`>Ykn%V87QzPPlF;Edu!V<3n6_@_~-YktD*PrfNppV($j*6I^ zVj|&E?t!Ho=_VeJU4p3o+f|OiQ_?z$r(ODNDE`;6Y!sgh;=4_+?wqE*mwZEa(pM+~ zb~>lK^5%#S1wr+kqc!Sw*6Wr*_vi>MB{0LNmtzru2hU>Aq zp$xGCeQQA#Zv}_>+nPJ0i3{6YRRgL^>6DSv!=)QjQ_^f5IhOp)Ey)8#iDd%;(f*qonV=5~N zXLgW1lg>q$GyYY>xmXe@Gf-ZU=xfO&YSy2_FGLTNS<0Kglq*4YKQio)fU^@xsdb?X zz#?Nk@;`34jQ@OXuO;}hQ6t{O7wiEhD$yxtH6GQ8uv@#7otYkS5TD;Jbpm?N+NP|h z{LOZaQY>t)uMH%k2Ww1j4g2~liaPb>jMLYdaXUzQ6t564*78+utaR0bj*Bq)!E|^i zPO%a#Zb@9pL_M^exL8^`^d7izvk+6ue3c0re}qYN(2A{)Tp4tGJov8T%zI%g`Plq= ze~BMb6u2ZdG0NA5H*>V>N;Hm|f4f6ff0hSfMQ&#MQWFffXweSL@=_>m*kC#1p6gUq zjK~lhSG#hK*>HhKy(n?imFT4hh<2H+N-+EqCWCxo*|LbJy5e!@%{i;wHA1j7F+b>6 zLMr2R3;{1#aO0ACLm>XHh<<-^^QpipHEs^*i~wtP$@pK>H&|S_k?Af{)TBdSk7cK0 zr5N3Q!ax%X;Nmr>-dpdZwqy`X$wtw+xpHhWfRc>eE@Ms^@PhReWe^uGJCY~FDUDXhU*E+n2YKhQ)JMee57lf;!9%;RDRdgJVz7RF#$(vyeooq z(W*t3DhmX$+`uqZZ}RvE5l_2v`F`4xXGDUrMB;*Tb80;3^7t160#S!N30pB|JQbXH zq(S?gZGliU?VUu1NWquu0D-QdpCxG4OA8o zfvFCHW5G4FxJ_zJwk9YeLBgD&!yVF#wF}wjeEfP1S_^YF37G59_WWaD-ErV6%t4w# zf&>Awlt2I2uQUJ;B_Xmdg8zLcy)^fJU>IVEC^GW>F#4KCf*{OqI1=tV2PBlH$e_2R ziRjSpvFroKtH&hZ{G(rz+km&32#+tb=~1f=UBD4%qjAc4DaAdp-YO?YLCFNZ4KcrX zp@2OoE&ng^@vC#)+Y}k7&fnN5?<=A z{_6YS4Fqb5nkB)i1qu+qvN&~QAf5f$**1nA3I9bzR;Oo=^d-dfrP+tHX|LxWi}NG{ zL~n#9c^CD>E%?L&M2Eas4fd%=fG(1^2D~mWqgf=ne@^zu$`Dm%?sCt_a4OUXcs9)# zO6;{3w!LL88lnP~HYp}9cqM^2r4YH9dqlA$x^JFa-p?HYXIW3Ibr>j!YgS8QZ> zF!zNYDHyFz6AO(R1^zG*FgU_V5L--l>_@+f5M>*HmyCo8yTN`FJ&`9+C?k2`;s`P| z5wnGxbU-HawF5J>pW%(mLKVDakK{xn&poV;K4=kUd|h8-gV}c&nu|c0p91?>4tCS2 z#Y9{3F@a{z4QFUHAS2KkRMF~F>=)eoIYf&ELN5fSrxiIg?`0W zb~UI7DM0kX?-0f~v9TylGSSA%#2hV|Y)ZXIq3#?^z#yf(b z?GVt)`Rj;2)wbojxnx^ygj_jBy9R7-yZLAf4&V)m$A(m*$Q^D6F%hXdG$a*1(blmj zY?Zzwk$lOv(djOXXNekF_LZW7f$7+D8fCxBy=2_9L@fz~@?aYIk$#5gkHm|zvW~B3YXuiSuW8Ld zP|M!$phMU-INV*upN3=~C$7BnMC3-NXTf+5W;p>0R(PGV2kJ!A5Mg7FCSr30J4QAS zsiyDu8nW6jm(+7U%dJ549jhP9yzC5;CLM1h7scd!cUPw>;S85hEIypVUiMlCNpf<= zohtIUKpHnJ5yw~3x7P|_V-ClKQ^14z1Bxiy3(mg zW*l3hujVmw)gtnp2(z$zDz1kZ>&)%*i)T57d+t20%1faSdlI3 z&>+W=@cX$^Oium_d%MK=RXn`bIwI(biGEZ%&-$UsUMrR}zC}dcY}00E^lfw!^-$+L zn{CUYavU(k2;w}E6O|-))uq;Ev514RLvk9idGl4=?61W_)e)I+`jFP}QAXbq_n{lD zT`~xV)5A02_+TqmP6B-i*)n$x$_Ol2uG^EJNnMMfD%LEr4uGsh=Evs80g}D^;Cuzm z2x4%OVjRkfxu5p*Rr`G#`Hcu4)!$lNei=kgYX_`Qu^KU0a)1W{C`#&_Etn*dvX2sl zzIbfe-aK^i7p)$ERC42qB(Oa^m{sqWEz=Sc_>h~|)Ukkb?G(o@8n(bHC-eH8POh8?BY=F2IxK$3v(NPAol+r~D#S<)M+_~h!cM>gD zi@RXX8KfpJ?nMq!$|cU03kVmRbohuZf7MVjur(jk%)QlDf4wN+a(afmtb1uKPhJE|@7a<0~)C zh)Q>sJEUZD=c%0ty&DS^_4zmirdmbHThI;^H0Jsh2Y6Ix>&}I=gV00Jva_f|iXvtN z&2}bfEdCF?ldJvubh_013 zO&3RkN`f; zQgY@aJdN!;{FZ(7U;d72t~)`GlNtP#gw^l{z#YDgJr3nPyuAV!yOi3ySWk9(B`{%wkWcFS2WdGFCm0tKH=BU zPPpHOsmvg8(fb(+_=OkAAo7R{vR+8O%c092Yv=Zvt-KTcS~TO%t1W*POGHLMR_|0A znMF?6_077_1dRWif3ts6Y(K%*cMJKZ$TV-~>uPh|`FqQSFob5iA$Kb<)whhT;dg{n z-4hJBGg>7+f-i8UHTAB1>$DQLI3n`!Cg_UBaey3w1r<3NM&y1%r%qvPWmTV0aQmE- zsJ*sL1pywMnUql*0jcoFFm5Q4h$C`LY$)0+G9?3CvVbwJ72w=0B|RZ>wqge=yBMjXO--!x!Ny>c7e-d#_M&D2B zHHnK*#A<~E79O5sB^(PE#057Knv2!-wVYgrY&9zM4diCaPM*>ebHe{8-Kx}pY$fY! z$grrGTk|b+FHx%@l(V#g-wlEJ{JCR$h=PRR?KzlILII-4DVTTQ z3}}1ff?y|x=W&QriBUT8m2b4!c>J4eDd&T*q>=HCSBv~`1!RB75XLk$=c#c}ec%u# zMW|4r19L(mASvs+cvrr{-nkPCw?q<=4@Zy2;;BgN7Y|FQb{r;0O9e z+}Y2%YF#1Ch2+W4es05-k^zfLd9T9bl5XszJmxz{ z&xVlmb;$JGe9KLVI?r??%U6EBmZpSYzQdYL1{R(iNtbC_88c@_hd#c(B2sbuRU#){ z;J)JNSZ^rc$cP~+??f=k&_*EdK(g8?-T;qJPY+skpvvls1fw|Q#ifx$=m3+@kVsh0 z>e)u9q;rrkoaqD~(EmeD zw-B0hnPuKv+9<7diYJFluq0WTFS#`8`}@}m;)E45IPfUT`O3-%jNPPlz7jpyol79X zI+|mW=z@7qroZoJB|uSPVHo016e1c7lNxMnO3KvTS_ zpEq(ekG1cD;BP@QK2NXZlT!%W zS`7j6i5j&I3_)^A;#Mf8ZVX-_PmV(#X>dp)#No7d-m)TUYZAUd&J^H94E#(xfWnlGrdm$61Z6rkym#j;T3rCmEbui0VZqlU%u0T75 z6@tzom+GRBDKWB%B9J>Sr)P5M0*Lt2WTCs}Bxm^4sp6^t3G&%}nI^pTJa$E9YrnX_ zc|I8_g-+H76#lfvB$WH{qfPLb8{L;Fk`#1KV0kRX*8M7c+p*GJsb%l zEM79bS1uPt`>95fElvQ4J}avZ%78T=(~NP@J4u9F8Kh=EuA%(`b(MOy`0^N1+L(eQ zOnP&wq7&lFPb(8^4}pQl!3S94X4qC+L#df%&%HYMEjt>gwn}^I~BStL$C0 z)XfAcSYY^1WatmPBB$`w(-Y^jcho^^ip5OjRiZOM{XCNuk}l9bQpObI!wSlf)N((T z2w#cx$W^csLk;FdOwS60PtXW7GNhrD87@_2*8adxzxnOSvA&G#krKMA>7_|)khq!+ z8D2TSN;Qs!K}b`Mw~}Ati6!F|SQ4|jR3Q_K*S8kLbL$cdr&B49ZK`-dH_kM7$uIn%gA$k<@~$h9M!1}w!KjUaQevkdJI0R< zVA3U{v6UDaBT!3E?Y?m%c5*|jck|jguH+F3M^HHr{v1X_Lm|wEOpsJV8Y6-b?E7WXUHSWU(EzC((b4q9+p(lm~6F-m!N63p$5K( zu%rBp7iPSBpp`!W&+$gm67h^;UE$kgRyV&*!U$d!NgMB^QrQwuj?w@D8f+Y!Hp=c1 z6cW#ybiKIPGrg%Fqat=5QNm+wW#6>?t3yz%^g+`ul4@Us3{+rnoJ*1;gdlY3c(Lp} z31Wu#(CJym#v;9!zEdx~?66qMn#E%!X7j{ z>(}K(pu8%Y@$d=e(@VEQ;Y@UfY(V{u5{C}@CF-z!LAGQ0GBlKSh-&`sICwV9;#r2| zw%@(ARTYaEwhFCU!rv~>u8Ddn-~UCdH=;3=L_{pE`&+iu(r*se2Fv~uw6R<@ujU)s z#0(o>EJu49liD5`B(=C_?_M)^$E;a&M!&Kdm;EJYvr0$pb;vI+A}?OPZye=w&TDnW ztM7i=9i6k|5%^n{!Oa|j<`+1byQnzn;Bjn=Jqee82z0V5n>yyI-3pxN*1OqHSkGhy zPpQx;7KgzKrbi-|>(}kHg`g-X9blj0txtWBYIdtK!`?{Fdu=(=na?P7$j?P9 zDGvxk6TYrMM7{%yG~3!J0FjA5upS*GR_?Y0vFN;1!=%wK+io*$=qa8ff=CV7HC2xz z87OtYdt-W_a#>7>@fd6d<$Y?*duiFiqk0%-rYFBF5yInk*K(* zZor$|{4tUSP+g8tbKv{n%M+ApqZplx1YVh~W2$Lz!KCSN(^9kk+y{BxTtx(IklYO+ zFp=@7f>B0|Bv$Al8{GQFsyKWHEcufemr?0RW`u}Us2En9^8ArGHHLhKzK(?KTL>q3 zv_o?8CH=zO5%F~3&|E@2Ga`F4kJny{^JSH*;BF2 zgV_vAEw!MydZ=*nt|q})zF3n}bH2s^8Cnmv!=}>e7nnKNguY`MO>4JsCglNvXy)xGv-uB%miGziiQ|F2;%c79 zJSjTwkv4uj3YaNtnFYp;Dmr3ny)Y^T~d9%L4fvg+Rtz{}B%Z`pKInSAj6i$vvU|f+TJ6G4e#Fpt6 zy%E5G1328e_A?nnEo5)swAJrt5J4mh`-Q(-oVvrEQ)!JM*AY))al;T#Q^Z7tq9OXH zGx2zEAPx&@A+ zR^jn^a!gIkc#ehG6JvEqs{||~Uc&8%9qH?M`qX?6Wl6di=pS(ICUOa5Xl)7<3u`HD zVux8NqL1xgE-$8|H%dEIOd`T-X5&WP=XB~aU}eV<6+x6oNPhN2S9TR6A7LGahGu1z zH#>(X)9X)RiLGF)w{Z?8KUgEslA=Qj!?nMz6sQw?0@%9NF3V?!;W4|>dcsaa^YY`O zDIsX|FA@hsFZgL_h`p#N5YjFdvdON7iOqp@U0=lE^DZRs0Ta{dy(AM}t70f6(bbMp zE(%P>iDZzkx-rlx_fkJ3bfcBgsMUVQ-;+4am@+~+%q1=pAc$A;J_5?_cyVhzAr*be zlCB(Gf&3fWBR?FMy5((>=YeXadtyLLhnoIaL=nltT28~oUWT?M2yXG=gjc=~qz$)9 zLbh0u#g#lkE?#p$DZYvSs)#1}i0v>mK?onWk&@#PR8~>`sx96g6%H`6XT0ZJkx_pE z2i5G$&o?=fv$KOn*56n>mfthSSKAy!#IzY;QFI-+h~}ggB+MJ^@FI!;HvXe*_fEnY zz>-AK`TC7^wNdkKagvXj?TTMOWFUzZRS?blWWn-hQXLEb24L>d<)_{N5?jBn%g_hK z>m(O8{%epe2`QI&sOIyz6DkjZ6WZ{T>!HXH|&K+lE?Nb(BkJ2bmmkxIrH9JsFWAl7Z+@B zHwj?Xx4Q9CnP$$LS`8xyi)guYdLO&*cI{ovkJ{zxOlk!8mhfy?mDWK|`-`@xNNK8! z?&#lC1AFs+R~%_0g~(H<2PFm!1B&d`<{!>s{^*8c|2!NBTBl25XNQ)}#T0`3DX=EN zqW%n!OSoK!r60^tUBV6#DjITYEiz}P+cA)bC&H4=+<-424 zn6*eIoMDAe*yHlQlTT}k@^KgIAMHAlh9aqx8!heq`A-A+V5NoRvY!CUZopzOavkNy zxb_hTvNRn8VV*4a3TAc4!WYBN391nIJ6_SAKvns`gXDoxY~@(Q}=`mqd~_@ZH)Z560MR>68z?(Dvte@hi`IS%e>C{u~eOa3TC0>dMLeI z7&<#20H{>bjB+OcSRQz6hi-!FjMaf*k-=6+THjOfUK4MkO8B*%kyv>_g75 zV4E6Fgw+*SqqhBB${B41ADP9kkP~`nH$sjWIWKrp78w_9vo$Q=@7QUlR6O!W!k`Jx z1D_@btzDIKV)KFWPepP^Zp`J+nM%8G9Nh4EZPQtO99r13u{BowcsaPM69kZwSh4x_ zpa3dXP;vLtWxvisb^%X@f!gE^p`?IuQK8V?P_4{XAwyZ^!5djki3`dm)?*=dG_kX2 zAk?oEOwcziQ34>$n2jA~fWyoe2 zB188Wt+iB9J;8}j;gghND|AlCZbIjaO5cQs<+buQhnK58j++3RYg{}HXUX`276+7I ziIq|K-R8##hZ5YQ-FQ69!{%U9Igs}rT$EtdM~{1|&*JKv9k!H*jafQE?6V za!;kZ6s_DNh??2EMJoCbaf0*7*dP@=J+8&J!RwGVBiKa2np;+~!qtxx8!?mmSNE)? z!-O(Hwq-nhTovJEv>p;+?5`Gb>!;!s8^kd1i$xsep}BLg2t(t-RiPq)vnr}1x8klJ zTr|E$s6tK9z-8A|mVGS@oeo#EYJtb}_pwd#z74nM)rV>;nyeWbAQp9Z% z2?1KE$0<0Gwz=gYY0mDsar5^9a+vS%=m=I0)F>Z1T(8H$PsSOLMbRsuaCE!vC_uqR z3*zdX@JtxH7Z<;K;4ET`i1p~-D74-f5T`EnU6{Y;OaT-B?y2e+n&qw(gHW!nApVAy zs8lUcbMX->neE)qU|w)(46+rE)AsX&mGOA7r#Ik zEGFATtfPZjjGb=}voA=Uu<~63ab88e19Bo2{aH=r3VY*{l{dWj`HBncBcxo02I+a{ z?5-~0Uk{h7F)R@3heW{ZSO9jMWBN%On}d~#jW1}YqxGgz z+S1dg;LbvO5K;wTD!sSF`4&$)?keR)7pF~B-NrYM8t|L_xypf0(fij?`?ge^oxM^3 zpGMBfwP}P zfAEv=x1^2g<6c}%UoV8}*u>UkE-Yw&5}AJyO|8$nNzG64qVY)-{zZb-KktmyK1qwJ z^(Oo2pYK`JIZU6>J>;Kc2J4f&A%2oAkWX@P|0(Cp)hD6f{Uq`~K8gN#sDvkw0p^=y zb>@X-d)f7c>DrgyFJDJR?ZU|(R(T1wEq6cSt@*lV>AFVcb{b!<1wy)ieunqg;4ON3 z<_X8dW{eKKPABsY+8Lxd`i%{}0%pTauKxZ+AuVNUZBe)k_uiMa{fu9AJ9|g7c@Osd zb@YHeC0oNcz)YqN*80owH{c?Z2Y2benYvCb^_O^K{fj_K#TB?(P>a8+nA**xqIi@z zYsS3iJZnYwd?xL1QN{H98}HaA0DeaKDH? z+3=KbJVrovv{}h<4gZEGgERgOpTJK43-{AT_HSBLDn4ahYyX6U)BJ=>{*;bGpT4HJ)?bZ&v}CHPiN0{eed@PAD{j^KmB@5Ykm6Ve5Va13`YP(l_vW#kqm@J z&d!iE64rE?nS>ovPv@PAw}SPu<6*{GOG%*(dyXQwisI$z>B&Gi`|H+a%iV&zCiPUn zrp20Z7LwGeceyEMo>2O@saT5oXla)D9u{#-n3$=6I?8IW91|i>^4MS{rxBAhAas4w z?x~Y?#Q6Bem;BeM&U%M~j#}00rOD46F;cVpZg1bqX&cT-iR15XMw?l0ed~=$?y#(H@-WfK^0*(2+TTxdd z4vgFnm4lMpj)OQ3jGm|f5nXco*8`>9WtlCi`}UI)e@&+Isl{zK&$m-lPi(RKH73Yl z@nBR!R}Cb&5VFy4G26!eSusS$p`LZL)2RgFnNV3SN2qdA(@tu0AY+-36{nVbq5We^ zqP zqh&I`MvLGZLIz#DZI0}r`VdGUqcaDdrNZzcVIrp<;+q1)@R#XVmd-+-rxgX+$M*`2 z8pb4$c2+`)eoH*!k|%0S#3P}IB7EHm1v{?&I)^dC8s)wIFy_%PLx}C7G4m2H3V>MYP2*0_%eP60&=+ggkRLnND z$B?;%`-}wvmVP1frG~WFrfBbc==Yy2UeTElhZbw4(qD?=93Or)xNp|&a16(5G6Kl$ zRdo211{Lz~NkXXF48>s}?O9v}ot>FKk2TWNi*ls&Y7Qm1f8)kXz^`x3(H{If;F_u% z`>s8v>CMA-sq;m_{jG5B+}d$7)#FfUXhw$pxW-Ee)z;!{A#QZ0auIP7VI_!{h&N}3 zvN5T~y18ilQ++Tatx@54Aku*TMVLWTu&B+&>zBof8EN>aua>NpyM-&I zd1*J+q{0-8!prdX;w0DoRsywVmBW#Xd3A8c3e18p^se?K0?Iu1JenErVW?;4>hc^l zF~Fx7^F78Pd~?xUc@TzW>lrH+i;CJp@M7vlEjLQJB!%RBYi8A`e6c`58DaQBTUw)R z2+Y=C2x|pq8w1vsj@3_M=J18SZLS{=$Z*;rreO`cyE(EERsO8*#9jClZ$oe9%3vZ- zWJAN0LZmKV_d-XxAFvT!la(1`3{m5*XSc%$kWxi?$@z%*!^W8QjDxXDs1^8655_S= z51ny_sC(;j3g=vl!FVqD#tRM*IucO(C^e*ap}zw5`5Wr;-ea1ehlZA9QaYiaGd~0o z?2}DnTXYaXL&lG=JZuf0K2z8zcDQTPp6O?|Kn#o0+8$}}r0)g%aCz&~bC9wKgwxRN z_YdqF`F)#<3mOAD>bKnF&6|tw3Vt;OImCF;*Ij2wu%&pJ{F?t3BZ2Zr_O5L1q{hft zX~tM?_EU?T>0K1Mx17aSnw(d|OAgmi4I96LkN@GU@7_|P=BRPgLIdFY_T^M#x#;c$ zA|JaJ{D=NK^#AgEY=QTUG!NkSI0^v>2=!l{J>9I#?adiKKR=zNPHRp$Y%n49U>*xX zb#k_vOf|%D3GWXd7l;RSiqFQ1(L;+vlQq5hMTpWDlXK2M3{zVF;qq;|hX3OGqQrC+ z50jbhdk6_>x>LkQbMUQ<_T#Z`CcWcITHI4kYvN=wpm;%$|M|~J2A#SD?CF3vL%P|a zrHuO2yp)6y#Z7)SRm4ZK3YyqJm6T)y(c^BLQPI$EPYxQX?|um>Ae#=XGHG{;IBn^0 zzOLjg#3m+HIST?Dz0hnT(RVg8p&pW}lY|GeggJN#<1kD`{mq*U2u zC&46R>>^ZD>z6H5$v{V-&Xgm&jd7N~w>}w+9^pX-35-)*C6|8}K+xqylfk|_FXs>e z(Rri-rjC{p6{_2Mdwl=m=_^b zh_mu$A&DLB1gw&0pPue_TbDeNr>x-vwwfz@2x*>#9d&Z@;pbSle3Unf4%%?0hyDo1 zjqJVjIiw`Y zy4F&g<4rE>mDGZHjFN(O-8C$vOG`Wr9-k(|6CW!VPNJpZ`-(|x7_s9HdQeV0PR|7< z{8axFgNT+e4i9aMo<$x7hq~+hD|i_(h|pe~2Hbnhlp(@0?UXLnBS*|t53M_`KZ;eu zHPsw+tZRkQQik1VM}27ZSzpe8+SFx#obr{pR$7vG;i`$lE>$5tzAvlrL23vX54F?I znXqTtDe&uQ#p_-9^1N2z+Kil}`rQ&9#^NLH4MvqiBu{m$+d-VHyH1-`GXl;RCz)>l zJKd$u89bXTXT$IoixrLZbzB3eYPso$pEWtifD;5yenx!h(yxLPbFCXT4crNSkks}1 z0>AGJta+?kTHL`WNF}_xV9BsoW4F7I()VcsfdVPXf`Xv|K>$Gk?umhVv;zbZ0e+BC z0CgG(2nyKD(NxLB(aDw3*vaXy=VPKmFkq^DAV7@&yRUD_@{Su!aN$>=4}@S_xZGPx za6#23R+@M9CIiXtmhz>h1<_=Y)k)_o39a)>YwqiDgpA{oj3sr5uSDKd$EwwbF3Qrt z^ChEW`t*ct9+-K>LX8a##Ny?L$Vvv;k5_k{#c*MK`Mb!-wrj|TX)4D&tGaqlye?(( z=8jQ|jj9#)Js}%E4IYrB^)-H^1%nFP<#&vi1-WFkpPmFna7@7aJ~i`OKybXcejnhK z{UdX`t1q3QgMzsHECtQ``*4@Yiap)>Xfx1%1yC~0I!5(?!yF>vE<1b8KPe2q16*N3K()NHP(4tYUGd9AvQ0NNR1W~`j}H~ z&e(gAc035e_pqTr=uq5Wk-Cb&*ScM;Vei7--%u0aP_IH=#~#slfL)`<1B}-NDDeqr zc|TTfevDcAPH(u`LL2DwF`mj>!m`=@nK)Dx-f0RVhZA++!S$Hywt07eTM5YOZPzxS zuS7)8bJbWpyI@^Ug*Sf?aN3J{;nifmxx4Ghb9Rd6?S?d# zj+z@7fk|jpOjnLhjR1zlRALTfSJgo{j>NmxuKpU(W1;ugKWjh<(ZN!sD46zay5r}W zMS`_Lj))ZzQihkkXH30c(4FZ zLM=?`)D`y!%`%>u{jll%pGpS%G;g>CP%sdH>4OA_;c3Tc>S%9o z?%?M7Y40|_@(GX{c+EDXyi7#SR za#@1Xu_`heJ2UOeYGJnUYQXUmZWN}51&0AtMhLwV?KE}X(eM#)iu|&(`i%tb_%W@P zcV1sWI);vn(svZKd^-u-U+eg$t>wZlT}$*--zu7uHus9SnKy8DOKO0>*=eDHL8s_Z z@z|_R><6SuIrMs5fYh{YMip6w`t%$ZieYpONm~yk!1JtUOFKJmQ++LDT0fnnS4Lh` zCx`JoFvMa7wPY3xKcc?UtBK2jpi^8UoM*>i9PIRkfn!!OzvI?XWvS&&#U43c&uVkR zf3#SEM*D!PwGVnUI}YyCM~YABn}der*J1MX8~y%HWVvm$3=(~b);S-ZvB+HX`t~$Q z#Nku3*?u_ywGG!On{0$86GV&~dS1AAXxQJXlV&8f@^w>KT95v`zCFZza!x>W!_F;C zfBs`YAe8wsJ9D#LH2etlu}s&g?$5zH7RAK5@0h^RE5xRUfQ#d=m6l=A%VURk0mIj^ zH$3v&v*%I4%Q35-9Q~D6g5_IXCqd6AzdDWI=e_~g39r^InX_-l#=Qsd1QV9Is(IbJ zxeBKTij#L{xBqT$fI;Yi{@riF9W!@$1C+rD{9ktPzpL2aZ@Qw64sHO&FjVt$GI!Pg z+X5-c{x?92Iuq#~AgUY)5D@HtaW?_FVnY{mJ6A@Azn}kP3=&99zXdRK0vK`ri*Xg= zQz`$&>*45PYvSl=`}f)Z6X&aR*tsPb5D-5+5D?;j;lKhce}HoTC&E94pioL|^J4}A za*qH4WXgYDc>p*7v#XV{i@BMqn~SxBrR)Dnf3-1z6D8pBzes_AaQ_nkNI~!u!OX?j z<1aI#yS<&*zrHgw0KWfI6v2ef_B242Ap#x@`1_BmR`g$@xOv%`|4$iix+zHU0fop6 zkOLsbe_Rfd|9=*^TA7=>xibDMS3hq)Yy1Dq(}VC_jbc|IAcX}GAgup@0|J_s`X}JO zq5heoe~z*K4OH6wiSo}8*FORN+o=0DJD|M!fq?#L;{B8RzdO_a