From 42f1f8d5b563fe19aae734b728614323d0e36138 Mon Sep 17 00:00:00 2001 From: nathan Date: Sun, 15 Sep 2019 19:54:06 -0500 Subject: [PATCH] basic label physics setup Former-commit-id: 0433115ef4f22f0fcd0a9e278992cc238e408176 Former-commit-id: f406ea69b05a5865c48132eec23e129d3066aac4 --- README.md | 4 + draw.c | 314 +++++++++++++++++++++++++++++++++----- draw.o.REMOVED.git-id | 2 +- font.o | Bin 36416 -> 36632 bytes init.o | Bin 45984 -> 46200 bytes input.o.REMOVED.git-id | 2 +- list.o | Bin 46920 -> 47136 bytes mapbox_testing | 6 + monokai.o | Bin 26416 -> 26632 bytes planeObj.c | 14 +- planeObj.o | Bin 42880 -> 43176 bytes status.o.REMOVED.git-id | 2 +- structs.h | 6 + view1090.REMOVED.git-id | 2 +- view1090.o.REMOVED.git-id | 2 +- 15 files changed, 308 insertions(+), 46 deletions(-) create mode 100644 mapbox_testing diff --git a/README.md b/README.md index 50a916f..c59b6db 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,10 @@ ###HARDWARE +best option seems to be pi4 + pijuice zero (w/ rewired i2c) + hyperpixel 4. RTLSDR (stratux) sticks down or needs u shaped adapter. +For future tuner, need to test audio phat w/ little speaker, i2c knob, etc. + + Notes: Pi 3b+ and below are a little underpowerd for unoptimized map drawing Pi 4 is smooth, may have USB issues with RTLSDR? diff --git a/draw.c b/draw.c index 889f381..f0aaf92 100644 --- a/draw.c +++ b/draw.c @@ -235,11 +235,11 @@ void drawTrail(double *oldDx, double *oldDy, double *oldHeading, time_t * oldSee screenCoords(&prevX, &prevY, dx, dy); if(outOfBounds(currentX,currentY)) { - return; + continue; } if(outOfBounds(prevX,prevY)) { - return; + continue; } double age = pow(1.0 - (double)(now - oldSeen[currentIdx]) / TRAIL_TTL, 2.2); @@ -250,7 +250,7 @@ void drawTrail(double *oldDx, double *oldDy, double *oldHeading, time_t * oldSee uint8_t colorVal = (uint8_t)floor(255.0 * age); - //thickLineRGBA(appData.renderer, prevX, prevY, currentX, currentY, 4 * appData.screen_uiscale, colorVal, colorVal, colorVal, 127); + thickLineRGBA(appData.renderer, prevX, prevY, currentX, currentY, 2 * appData.screen_uiscale, colorVal, colorVal, colorVal, 64); //tick marks @@ -350,27 +350,6 @@ void drawGeography() { } } -void drawPlaneText(struct planeObj *p, int x, int y) { - - drawStringBG(p->flight, x + 5, y + appData.mapFontHeight, appData.mapBoldFont, white, black); - - char alt[10] = " "; - if (Modes.metric) { - snprintf(alt,10,"%dm", (int) (p->altitude / 3.2828)); - } else { - snprintf(alt,10,"%d'", p->altitude); - } - drawStringBG(alt, x + 5, y + 2*appData.mapFontHeight, appData.mapFont, grey, black); - - char speed[10] = " "; - if (Modes.metric) { - snprintf(speed,10,"%dkm/h", (int) (p->speed * 1.852)); - } else { - snprintf(speed,10,"%dmph", p->speed); - } - drawStringBG(speed, x + 5, y + 3*appData.mapFontHeight, appData.mapFont, grey, black); -} - void drawSignalMarks(struct planeObj *p, int x, int y) { unsigned char * pSig = p->signalLevel; unsigned int signalAverage = (pSig[0] + pSig[1] + pSig[2] + pSig[3] + @@ -380,21 +359,267 @@ void drawSignalMarks(struct planeObj *p, int x, int y) { Uint8 seenFade = (Uint8) (255.0 - (mstime() - p->msSeen) / 4.0); - circleRGBA(appData.renderer, x + 5 * appData.screen_uiscale, y + 10 * appData.screen_uiscale, 2 * appData.screen_uiscale, barColor.r, barColor.g, barColor.b, seenFade); + circleRGBA(appData.renderer, x, y - 5, 2 * appData.screen_uiscale, barColor.r, barColor.g, barColor.b, seenFade); seenFade = (Uint8) (255.0 - (mstime() - p->msSeenLatLon) / 4.0); - hlineRGBA(appData.renderer, x + 10 * appData.screen_uiscale, x + 14 * appData.screen_uiscale, y + 10 * appData.screen_uiscale, barColor.r, barColor.g, barColor.b, seenFade); - vlineRGBA(appData.renderer, x + 12 * appData.screen_uiscale, y + 8 * appData.screen_uiscale, y + 12 * appData.screen_uiscale, barColor.r, barColor.g, barColor.b, seenFade); + hlineRGBA(appData.renderer, x + 5 * appData.screen_uiscale, x + 9 * appData.screen_uiscale, y - 5, barColor.r, barColor.g, barColor.b, seenFade); + vlineRGBA(appData.renderer, x + 7 * appData.screen_uiscale, y - 2 * appData.screen_uiscale - 5, y + 2 * appData.screen_uiscale - 5, barColor.r, barColor.g, barColor.b, seenFade); } + +void drawPlaneText(struct planeObj *p) { + + drawSignalMarks(p, p->x, p->y); + + int maxCharCount; + int currentCharCount; + + int currentLine = 0; + + char flight[10] = " "; + maxCharCount = snprintf(flight,10,"%s", p->flight); + + if(maxCharCount > 0) { + drawStringBG(flight, p->x, p->y, appData.mapBoldFont, white, black); + currentLine++; + } + + char alt[10] = " "; + if (Modes.metric) { + currentCharCount = snprintf(alt,10,"%dm", (int) (p->altitude / 3.2828)); + } else { + currentCharCount = snprintf(alt,10,"%d'", p->altitude); + } + + if(currentCharCount > 0) { + drawStringBG(alt, p->x, p->y + currentLine * appData.mapFontHeight, appData.mapFont, grey, black); + currentLine++; + } + + if(currentCharCount > maxCharCount) { + maxCharCount = currentCharCount; + } + + char speed[10] = " "; + if (Modes.metric) { + currentCharCount = snprintf(speed,10,"%dkm/h", (int) (p->speed * 1.852)); + } else { + currentCharCount = snprintf(speed,10,"%dmph", p->speed); + } + + if(currentCharCount > 0) { + drawStringBG(speed, p->x, p->y + currentLine * appData.mapFontHeight, appData.mapFont, grey, black); + currentLine++; + } + + if(currentCharCount > maxCharCount) { + maxCharCount = currentCharCount; + } + + p->w = maxCharCount * appData.mapFontWidth; + p->h = currentLine * appData.mapFontHeight; +} + +float sign(float x) { + return (x > 0) - (x < 0); +} + + +void resolveLabelConflicts() { + struct planeObj *p = planes; + + while(p) { + + struct planeObj *check_p = planes; + + int p_left = p->x - 10 * appData.screen_uiscale; + int p_right = p->x + p->w + 10 * appData.screen_uiscale; + int p_top = p->y - 10 * appData.screen_uiscale; + int p_bottom = p->y + p->h + 10 * appData.screen_uiscale; + + //debug box + //rectangleRGBA(appData.renderer, p->x, p->y, p->x + p->w, p->y + p->h, 255,0,0, SDL_ALPHA_OPAQUE); + //lineRGBA(appData.renderer, p->cx, p->cy, p->x, p->y, 0,255,0, SDL_ALPHA_OPAQUE); + + //apply damping + + p->ddox -= 0.7f * p->dox; + p->ddoy -= 0.7f * p->doy; + + //spring back to origin + p->ddox -= 0.05f * p->ox; + p->ddoy -= 0.05f * p->oy; + + // // //screen edge + + if(p_left < 10 * appData.screen_uiscale) { + p->ox += (float)(10 * appData.screen_uiscale - p_left); + } + + if(p_right > (appData.screen_width - 10 * appData.screen_uiscale)) { + p->ox -= (float)(p_right - (appData.screen_width - 10 * appData.screen_uiscale)); + } + + if(p_top < 10 * appData.screen_uiscale) { + p->oy += (float)(10 * appData.screen_uiscale - p_top); + } + + if(p_bottom > (appData.screen_height - 10 * appData.screen_uiscale)) { + p->oy -= (float)(p_bottom - (appData.screen_height - 10 * appData.screen_uiscale)); + } + + + //check against other labels + + while(check_p) { + if(check_p->addr != p->addr) { + + int check_left = check_p->x - 5 * appData.screen_uiscale; + int check_right = check_p->x + check_p->w + 5 * appData.screen_uiscale; + int check_top = check_p->y - 5 * appData.screen_uiscale; + int check_bottom = check_p->y + check_p->h + 5 * appData.screen_uiscale; + + //if(check_left > (p_right + 10) || check_right < (p_left - 10)) { + if(check_left > p_right || check_right < p_left) { + check_p = check_p -> next; + continue; + } + + //if(check_top > (p_bottom + 10) || check_bottom < (p_top - 10)) { + if(check_top > p_bottom || check_bottom < p_top) { + check_p = check_p -> next; + continue; + } + + //left collision + if(check_left > p_left && check_left < p_right) { + check_p->ddox -= 0.1f * (float)(check_left - p_right); + } + + //right collision + if(check_right > p_left && check_right < p_right) { + check_p->ddox -= 0.1f * (float)(check_right - p_left); + } + + //top collision + if(check_top > p_top && check_top < p_bottom) { + check_p->ddoy -= 0.1f * (float)(check_top - p_bottom); + } + + //bottom collision + if(check_bottom > p_top && check_bottom < p_bottom) { + check_p->ddoy -= 0.1f * (float)(check_bottom - p_top); + } + } + check_p = check_p -> next; + } + + check_p = planes; + + //check against plane icons (include self) + + p_left = p->x - 5 * appData.screen_uiscale; + p_right = p->x + 5 * appData.screen_uiscale; + p_top = p->y - 5 * appData.screen_uiscale; + p_bottom = p->y + 5 * appData.screen_uiscale; + + while(check_p) { + + int check_left = check_p->x - 5 * appData.screen_uiscale; + int check_right = check_p->x + check_p->w + 5 * appData.screen_uiscale; + int check_top = check_p->y - 5 * appData.screen_uiscale; + int check_bottom = check_p->y + check_p->h + 5 * appData.screen_uiscale; + + if(check_left > p_right || check_right < p_left) { + check_p = check_p -> next; + continue; + } + + if(check_top > p_bottom || check_bottom < p_top) { + check_p = check_p -> next; + continue; + } + + //left collision + if(check_left > p_left && check_left < p_right) { + check_p->ddox -= 0.1f * (float)(check_left - p_right); + } + + //right collision + if(check_right > p_left && check_right < p_right) { + check_p->ddox -= 0.1f * (float)(check_right - p_left); + } + + //top collision + if(check_top > p_top && check_top < p_bottom) { + check_p->ddoy -= 0.1f * (float)(check_top - p_bottom); + } + + //bottom collision + if(check_bottom > p_top && check_bottom < p_bottom) { + check_p->ddoy -= 0.1f * (float)(check_bottom - p_top); + } + + check_p = check_p -> next; + } + + p = p->next; + } + + //update + + p = planes; + + while(p) { + //incorporate accelerate from label conflict resolution + + p->dox += p->ddox; + p->doy += p->ddoy; + + if(fabs(p->dox) > 10.0f) { + p->dox = sign(p->dox) * 10.0f; + } + + if(fabs(p->doy) > 10.0f) { + p->doy = sign(p->doy) * 10.0f; + } + + if(fabs(p->dox) < 1.0f) { + p->dox = 0; + } + + if(fabs(p->doy) < 1.0f) { + p->doy = 0; + } + + p->ox += p->dox; + p->oy += p->doy; + + //printf("p_ox: %f, p_oy %f\n",p->ox, p->oy); + + p->ddox = 0; + p->ddoy = 0; + + p->x = p->cx + (int)round(p->ox); + p->y = p->cy + (int)round(p->oy); + + p = p->next; + } +} + + void drawMap() { struct planeObj *p = planes; time_t now = time(NULL); SDL_Color planeColor; drawGeography(); - drawGrid(); + drawGrid(); + + //for(int i = 0; i < 2; i++) { + resolveLabelConflicts(); + //} //draw all trails first so they don't cover up planes and text @@ -402,6 +627,7 @@ void drawMap() { if ((now - p->seen) < Modes.interactive_display_ttl) { drawTrail(p->oldLon, p->oldLat, p->oldHeading, p->oldSeen, p->oldIdx); } + p = p->next; } @@ -424,13 +650,6 @@ void drawMap() { planeColor = white; } - if(outOfBounds(x,y)) { - int outx, outy; - drawPlaneOffMap(x, y, &outx, &outy, planeColor); - drawPlaneText(p, outx, outy); - } - - if(p->created == 0) { p->created = mstime(); } @@ -457,13 +676,28 @@ void drawMap() { usey = y + (mstime() - p->msSeenLatLon) * vely; } - drawPlaneHeading(usex, usey, p->track, planeColor); - drawSignalMarks(p, usex, usey); - drawPlaneText(p, usex, usey); - lineRGBA(appData.renderer, usex, usey, usex, usey + 4*appData.mapFontHeight, grey.r, grey.g, grey.b, SDL_ALPHA_OPAQUE); + + if(outOfBounds(x,y)) { + drawPlaneOffMap(x, y, &(p->cx), &(p->cy), planeColor); + thickLineRGBA(appData.renderer, p->cx, p->cy, p->x+(p->w>>2), p->y, appData.screen_uiscale, 200,200,200,SDL_ALPHA_OPAQUE); + } else { + drawPlaneHeading(usex, usey, p->track, planeColor); + + p->cx = usex;// + 5; + p->cy = usey;// + 10 * appData.screen_uiscale; + + if(p->cx != 0 && p->cy != 0 && p->x != 0 && p->y != 0) { + + thickLineRGBA(appData.renderer, usex, usey, p->x+(p->w>>2), p->y, appData.screen_uiscale, 200,200,200, SDL_ALPHA_OPAQUE); + } + } + + + drawPlaneText(p); + } else { - drawPlane(x, y, planeColor); + //drawPlane(x, y, planeColor); } } } diff --git a/draw.o.REMOVED.git-id b/draw.o.REMOVED.git-id index d84e7d7..8d1d3a5 100644 --- a/draw.o.REMOVED.git-id +++ b/draw.o.REMOVED.git-id @@ -1 +1 @@ -3329d96b9e8da09d38ac06e8cfcb2c9227d0593e \ No newline at end of file +a17d06a73e34e6e65d1ff9ed411da79667154ca6 \ No newline at end of file diff --git a/font.o b/font.o index eb8e2e3577f2bdd21a00b071d8a63bc37253c0de..120e521686b8a969be98ed81022bf71dd8a63f41 100644 GIT binary patch literal 36632 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 AtpET3 literal 36416 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 delta 13622 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 Jq5qnO{|0vb*+>8Y diff --git a/input.o.REMOVED.git-id b/input.o.REMOVED.git-id index a79dc82..8dccc44 100644 --- a/input.o.REMOVED.git-id +++ b/input.o.REMOVED.git-id @@ -1 +1 @@ -2c4ed2ab46ef6a542479d8c3c9ea7de7298325c1 \ No newline at end of file +2305764a62eb8dd80a5f71e908a04bfaa9bc3cc9 \ No newline at end of file diff --git a/list.o b/list.o index e3a4518ca6cacd90b14d5e2af7ebc9d790e8097d..cdfa6838a681ecc277eea074d6ac90be1cb84a0f 100644 GIT binary patch delta 14600 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 EH$JULg#Z8m delta 14339 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 P>t`0Yb#Ib;7Tx?ml(#Sw diff --git a/planeObj.c b/planeObj.c index 6380a15..92b665d 100644 --- a/planeObj.c +++ b/planeObj.c @@ -31,6 +31,18 @@ struct planeObj *createPlaneObj(struct aircraft *a) { p->oldIdx = 0; p->prev_seen = 0; + p->x = 0; + p->y = 0; + p->cx = 0; + p->cy = 0; + + p->ox = 0; + p->oy = 0; + p->dox = 0; + p->doy = 0; + p->ddox = 0; + p->ddoy = 0; + memset(p->oldLon, 0, sizeof(p->oldLon)); memset(p->oldLat, 0, sizeof(p->oldLat)); memset(p->oldHeading, 0, sizeof(p->oldHeading)); @@ -85,7 +97,7 @@ void updatePlanes() { if(p->seenLatLon < a->seenLatLon) { p->msSeenLatLon = mstime(); - + p->oldIdx = (p->oldIdx+1) % 32; p->oldLon[p->oldIdx] = p->lon; diff --git a/planeObj.o b/planeObj.o index 56be23f6d059cd68c3936608cad125ba67305ca7..46f23801888532f97066ddc9d65d3370f7bb62e1 100644 GIT binary patch literal 43176 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 JsS5J`{{ySr>?i;L literal 42880 zcmbt-34Bvk_Ww&$pipSbBDAb!uSiQ<3YNWTnl^>BjcE!+(U7)j8|`M2mV%Bl0!l>` zcT`k#+-6kVmvLMW9Yu!`clnJQI_ika$monZi1I(@+;fw>)AF0&eEv^4@1E~FcRTmo zbI-jmNzZqV{Oi!pPtzUqMuV)J$trT zf8UMp*3fF_ix)J*6TDuyU^S+kFBUtIb@u$=-1=ZdA9-%4loSL4TvhG z=LdTD>S@n4ZnM?cyfxL%4PRwBx12zwY{|x3gL6yb)GR8sWJ-G8Zs(@gojq@)ZhSHU zD|!_guiE?K`t{tJxZZu?-1K$oMi=y?yyw&MC-?tQ{ny)Xcs>(*3gv8Z7?CLp5;{j5 zdJ!a2C#=W%7Fbg^J`SvN%MD6L?{|`C?T*CMq4q@Q z7RLx@kA1`z$5@cuv=bzI>{(kJnLYNITO3n*?73SUS&+qEi;uU{;{wQ3h?v_s&t8;z z$w5G!TkgG|ZfX#E>_wnM)cB^Ce>rvxv=*`Def{OcZGc8jbM}1b?Ae4WVEx?4I*W|m zvIQ04+_C|YO)o|EJA2-Dg5oy4+xdxe3k+q0bG91T)J?x&g&UsFI_-4ZD%s12H%Izjj6(A;Cl7QtwkMgo*! zukB+vco?=O<~w^fbVCtw*a@qcy{x zivU`^b4zuRvuE4RWK22=4{aw+ex16h@#ka54*eZC>LYfLuft2O8*dm;7FMc|g-Da2LbzFy=$4?kL=$f{u*``S zD3cT?GZX7j;+I?;O>T`PuZktF!DPRr{(IpzAn7fjRtq(N(gT4v4)pt%A4(g9>3-j% zYvJ@y`yrX6@S~VcQ|X^EovzZqU^-K!k6}6s6b$7U7G!c2V3;#N4HrTw?B5OuhxZ=i`c* zO>Nt)m^qd|Kt0bZgX(uZ4MTdro!CjG%3CnW>07b8JPdbWZ_{8Tn*ke;^bv4Fa8R+? zDTRZ8t~ywoUDyce5eldDNR__mE~qNq7@jm}hb>ysO;`w5bTd_Cj7S=E-D(gZKR)P&SaK(} zPx}cd=Jw6eV(yG9=B{Wlx84~o=C)Wdziq-|sL#2Bu00CONNkTW5{u)$-HkB!=N?R} znLFrSEIU*6XBVcYsPug(lVuD+XfSvkGAoPHaq^f#Ku2UH+imcKdX?-zC#aI8F|_Pr z5L8xpiY{b27vdZR$cWtJWfw*ZsfczjxiW@Ul|s>~kZW`yv$zoVDnJG#-2=4$EkH(* zK@Xmk@O#41`;ZL|nG#Fp(!yqKQQN5$#WO0MR6( z1BnhInj9_F@qC}9MxR&UnnZaN{V!^bmT`K~e^o{_UvT4pm5*AihnRZxUuceM8BBBt(G;SoMAL{4B|41gaH1oKo_*= zu|&ra9Zz%u(M+NfiB2LqndlUvQ;AL^I-O`1(G!WzAbJwfnMAXR<`A7lG?!=|(R`w_ zi53u@Lv$|DlZh4*okw&&(FH^o5?w@eG0`PNi-_8Y78A7-Eg|Y4T1vExsFP?p(WOL} z5p@x*AX-VZim03DDMUR)tBHDv)(~AzbOq5`qAQ7>O7t|MtB9UX^bDdtqN|DeiPjOV zC)z+XK(vu)6VYa(L8508J&R}y(N>~uMB9mW5Ivh{h-jE-glH$xE~0CQb`xDobRE%i zh@MOIS47VvdOp$hM1M_m6VVHaUPN>=(H^1~6Wv1e5~5p)UP|;bqT7gGPV@?*R}#I7 z=+#88A$l#*?L@C5dOgt_i0&YIBhj0P-b{2S(OZb#O7u5GZzFm?(Fce=Nc1714-GtpOw?kD;x(btH+PV^0;ZxVfr=-Wi!A$ox5{}BBP(RYcyNA!K72Z??}^kbrb zCHe``PllUX6BCO)G^g$OwTE%DSgD-)!iqF!AU|Pjz z=_#1bQsty!I#;EKV!BYJhhqbZRC)xaOH}#lvf zVtSQIj~fqKS*_BUh&QP8L`*lU^dwBTsPtq^cc}CfOh;6DDyF+tdOB))y-H_cdb3K; z7!K)e5Z>X)4@i2J=xab}K+{iJkir9$o_z&qAg1=QP`0rxH9hZrh{se}`51d~dN#r; z{!cIX8qzAZPoINzXDa!**gn=ZMTs*NUWhpBeIBL@6h6NKEQiNn0j7%-z7W&SaV`Fc zk-iAacaLjnZ{sxUx9DeR!)iEXfKj($Ix|r*#mF2SpcwlQh*@_gE2ada%GIfgaiE@> znJGo4gPAg9x|wlebJsJobR3ih2ST(%L>*9o4?LblV70^#Fos~8v1a1ez=i<&gL#=B zkn|v^o@PXP1>&($7@n10)dPr9gc}Ru^eLE5Qn&|Om8R0wnC8LoqD;ENYyL6}l%jSx zk7vAy96iX`8ynS(m)?g~t5MB(IX0>pf5Jk?D*1hw&Q$3?V|t28zk+Es+8O(?hiZf~ zUd6N;)r{9rmqkkcbxb=|`i+YruUnA#{1 z?}s^supy$A1Md*fJOklJvxkr{|B*hV~35jd6_) zM#gUJm#R7ASxl=FgN!|xP8(O(*=S@uR|MiCpf~@3GHHsP0>FeqkT4Qe&x$fWdoWu3 z-!Q3qmhm~Jx%@*oPHJ*we1W}J6C&eF9Pdo(amH6T2eQVshMSCxuOElJGofCrj;8Wn zNRSSO7@3ihQX}K<_$W3>CmQ`S{;>(d236R%xYy_OKXJ>>4fz-Dym?Z5kK(J9{0}!k z`XITXj2}?}2Q7;EH!`0va|D^snfVEsubBDyYRG?>nO~6kk(p!IMI&Jn5F^8|tN}$P zB}~Qvu+Z*0ogXDw?uJ~M%vmj1Miz64B$>BQY{o!l0P7#Uf_J1;iyWw~)BO%q=1=jk(3djbLsGap}wz5jU1O zy9IrGCUYgkWijU<$z0}~7W5#6%#~YkQWY_`)Pf$x$y^2Hb2C?I!O35nIJpCTMwJD9 z(t3X8u~fjE+{|1xahEXXC2kvYHN;)T+;ZZ!Gq-}c9n94dx0AV*#NEc+=@vYTyo)&> zJ-eT|)x*h8vY|^o(eAhXBeO%=oZoc zMNwP~;EjM@c3#xaju}(PlXhC(H~Igmh+0lWikB5vShy@ZZiiKHn%}U@Km)>ST8Cko zi4h)N(~($$n$7w>y%R)GU6#@o2rH=A885*z>*e>Kf6^N)G*e5p!dj7SsYzG^)N9EF zIO{4|(46g1P|j@(Q;D+zw8rEPrJE{@-myW_;@Xe$C-bA6nL0613!Adhp)F>s=nwt< z-?H`Y;)*KB^51tcPc_&uP{U2|4>iyQFQ+x$4J|#N@vy+Jjp6xPek1m5HgcA9Js`-n zA%V-X1C?3;W0@X5mKj<$>qDvYNy7oj>8Dk9grDbpqXm0snOyo`XPL70KV*s8$yR6y zXvsQgTPhj~Xlf31ECst@LED?Fc(neL!A?`DZ-oRVqR+EnA5V^S8J2#vVB#mYh9ich zKZO|cP%2>ozSy&(MNv_T=OhL!oXkdHm16?sut#%DcsVLI;ZB&FD#rxMF+bj{^}tzn zp#3jE)3(&ixDRh`V$1*}ty5TM!(zwBDl3HC6R10o$b@28Y)J+dGZESwEo4%hVnBE@mx+1; zc1pYkFz?hH%aRN=P&jf$>DLx#pz@~0DoKFRoE~dBvRUISdBZ)Hno+gMD`|92Oa{g< zW)v8C!?D_Qe;#tGo2ei{W`rKNN)LvrrI%dMpqdpbN~?`LHqh zz!<8K*|GLc&nTxX(KZ+Kiz)_-o?{lxq=wD~nW$Nw9P1>6CplnmsC_I~3D1)y6p(J_ z=Wt`AH7}sy5QprKa&C{P-DOpaPYM(ZBJd!+cLLif)cQ zRVgWBHM$c24?^MILb{e8qqP{s$a@L|7B-q0-z=t z1Ostb{3qGsU_+0epFyqS^O(Pg@4D;pc`>c!J*+|MBFsvZTCryqP?|F6R3s zeBZ|R`}qDC-?a~s<>_)Jvz&A&Qa+t$+H}6p6f;oDUkT3>jO$@YES8^Ah5)6{8$)fD zS)Jj~tYBMxOJ_r1R(IiC-`s-imS9_FcXm@-=d8M5By5mKOR#QMQ+<7Jk&|_9CC5dX znBJMN+*y&e9RV&~H=w%2mH!{IhS!GSOuNP37O1K_Gp8QA8jgg5ZB4$$_E03)7z{Mz zG=mEUw4ou;2x;gxRi$9)NU%LBK}paKlCBQJMeuHsM?kb(|z3id#lssj*`;b2o6 zDGCHak(TUm16GD=jx>P&ReE7vXRsxb9c){S<-?&dFUzp07-AXTweq{r=}BD^S1j6> zm|&felW4K7*miFxq^Dm1>E$+v4}FQx;lREu59q z8M02R-4I?J?mWl2)9T!2U6flhG3$5XW*0fq{Bw>mLp0vks z`?eoDt)<&`T3<72t-H>z-C+H*k+ifcY2(V5lSWvplNMU{8gIj=aV-`c&uY7^(q2{K z@ZsIzGJHON3uuqVI{M60Ugq=`du;Y)4zJfq^$Td2e{o#Nw(AEq_7=U)6RTuhH zGu-914wrYO+u?I#KT7iE8gP{BYwwJ7bVht|8Vvs;0dvK+nv(LWQd_mRw92!><|#2h zUFP;xLs<^hkP5JRo82r?Q@O0NYDJ|PglsNHDXG(8_&`;m2)isP(?e)-; z_Qpn8zs>D-mD{NwMm3CXr)oyDeW1EBkHZF?HGJh&zS44+!`IOQQa&j1Eb0;%MQcZK z%UP;HG}12H%BmW#FE1DW%QwJ8Bb}jup^Y|T)YXIoq0(rtqt#V7O3H234wu93HP!^% z8rs(w9UZOcr`toK!#0n{wz3p#$}}!+4~$H;-Q#cw8z|9MQC#k=u(@d__zGs{gN7S} z-M;!zy}2Np-PflHl7UuxtHgw{d!W_k5*(E!==^ci+Z!AFYsvVVBaseY2N<9-VVnf@ z?QLy=`be<7O`1TT#_Xtd*lWBFb6xJL6+A*~Lcs`5$OfamrNISe3&XyqEzr02z&cIZ zgV8Q2cG)W24o|fWns0ho0Y1y{2SfECecXgL&#_h z1;nHVTQC}7G~K+0qsZCNu*kYLe=B+ovL#bxrFrJcOGQgdXN%`*K12$A>b2oWpw$bm3mvBSk6VVDttHi$l8qN%JRyihYZeooZlobdV1f+ojRrgTY@ z48xJ;fFHsEm~7yPabVCC=N8ZmZpy<+48A(j<%0lBtPn0+Wto^72nk1pknmLq33r8% z@K^{5r-hL4TL=l)h0r|cHnhGy6m0T^gX@%u(25zgBm=^mHjI35fg<(9J+~E?c?{Ta z!Gu<37@aOKc(6n)cX+%IHn@smz%edRt4>Fxw{X0q$>y;jo)#v&*VJ=EC>wQD(RSEt zJRV1-ePwk`aZP2pmpTxA=&5#=mwF9mA60Hz@N|)yTD(q7t{qv0Q}}6lK5~+ZhPMO5KRT7ECB}2e4=5;MB}0xj0Z3#K|$k ziR!g_Wwpm~iaCeJ=JLYgMqAFf#Q^LN98@FhOu+o0^CqoUI4WzPg4l%9TZU*&r4ZyA z9pGerVVL#i+@*P9s$ditzxXr+TEKFBkw}X9;xy=+D^!YlzF8}W5C z`{0NOHn`n%meAyHH7m+(tEqnaFy}2bvt?#ht*X(yD!PoaOU=R}oD#NCVHOsCuFCL5x2DnZ zrE4&kAY6^t{Itf*E;q9)%xtZh6~6gY^HU5$ATqH#jXJgEtZxorWDfH*KnEN?f0J6< z<5oae0DH%BSC8a(WEV=gfPzd&WFlp<-gDB68 z{vzDg0H+el>$da?>(KLH_({H*<8A}}JZ#13oN`@zn{Z-~B^TVBo{P8)fg^^zaGXYXTaN9+-t1y+8`^Y+9LzoU{s589^=Oa_KKsuC5jz2oe%b%@Q4yk;$4pYE68$j5k z!qR2doIaJrLta`_DcFHPAsjdxvP4%q-VMR`Jeo4ma^kGT7iwRl^b_^MCFRv_*ilul zDEETT!#P?9J0KrMGZ3a3Ef6-8hQNZn82IC$wE9D5!QP+t>gBN05~sX*y%3Bl%qPLK zS^2n+4Eq{F?HwI3oY(<)e`4-5m>rl)G^(arJzz9zbrcyk^$(lt>%^B70ot3*&ga>y zG_3YBv|qulu(v@IGS`Z`2#7Tza6oaE0mp6-IK^$HyW`T(4zL%y3Qnn?WL>?^>7x2} z)Z*D64G#DiI50QBvhYaP+yXdi6@dvLpvl;77Y@+7x7Ra{vfgjOiV;KYL5YiW$spaWi@OD@ud&9 z-B5!?hkaqa#^DAY-+Pfc2HWrjfYNI3=vMFSqT4#tR4RZA<`Nt=@^NW&7)tX*7+9Jo z^j(@KLc!9!+2+oa<`o!al{K06yu8ela|&{DGqYPGoo#_dO#wJV4b}te57jp>g4d?m za|<%Fn=-Sj@-wp=L5KBcWp{+yBe1f!hqB@QAAM9B3)NQu9;amrBPMqJscP72P26nW3c{#kI=+k`k8_?MK39ot(K6h{! zWsd$0emlWIa%Ts;Xb0C$-V!&fD$Foh9<;&cHFym$J%Rm!!vin2jJD2Jc8sRykQ3I# zJ`PaT132XJ!nYZcbt$~zlWe>xo}4SmU^}G?Q?O4(re*)^wb}F4oAk(7va@WrJ7zXYfZ<29EpJX z<3R4L83gmeHx6)`PA3mi+4x#q?BQs6^Eg)E!4t(C^(_H^TW1GtuGA5@h_hfz;&GIE z9DI}=?-HV~@5NN(J)zfI>Z1j?D-gmr;kZBGLlAv}6g%cufk=GF*ANWDBCwVYxZ2xV z*3vl@6`+q$S_AL_8MQt{n^o;}!4wu{9EP6#oFLvN$ z7Z+*M!9$qdN6T{rILNLtmjcHw%i--Oovwz}8Uhw>mQhZT-F@8Avoa~1_YkawAf#_< z!6-j=Hf?m2!tR+q_7S%_=})47LHBwyXZoCn2pCMygnCTRL=a(mroxH1F{4>%vIdj9 z2rW#{M37;6Cc+KVvw6|8WTV5zFZg?D+)-t$LqHuUN6d zFzsge)gI0vJ{&)-`(3NpB1cUsnV_w$$g$QXh%Q z=eLZw9509C9gx=B6<91Iih&Os>JzfgATR!LOA5yYYsgKSnoVct${nliFzgHJ!3c3f zyw2AOAGM4G!fSdR2IxiATUAyDA+@PU_{0Y+N*r{lwF2TOFMOOb?l{quBerrIWp?}g z%&eL^Fz!yZtI5vmBrfl~yuzH^f}Fe)6|O#(2j4SSmt~#Duym(c#ta^igdcFlueih4 z#pu%CIf5@r82CLqyxNf1QqndgB($W!=Ya96M=r$RqVE9~r=)F7C{9Vg#A-{)yfD$0 zlC_~oJ+c~ochPDL=_QMR)krxGj-%51vcfMW_H|he z_!5q|1`~h0{=zrn#D&PPI6Z4y7!UYRsQrZgtPD|LH%(a8O_FcIBko5pe6nkE~G!) z0)5pp7e6kHR(%wH?-#EsNaKZi#9xZk_)`eNCFP%2FyZi}GNXV8z|AfL<#BfCa#qCQ z@%8$TgI~os7K?sSm-AMfJpLYt#*48+xMVv!7{_wpn~hQV7mg#3zq^W;lz;s=^5a>d zvYq$E;qW!@XuaCw;V*Oyz>4@%enb7b2d35UuHl?e7s?}Ef`!3Fzvc;djsFQ702lTV zFH{pZnRxmtG^9{I-dpC-(^xs*aYGge{3IL%xQf*+T5l##uyTPPVb|yu_%BlwutMNN zc%fV+@DG^}3VakgLb$a5(|Q=mN?lJ+WBvLII#jr}s#~=Ei$^K|{S02ZoP%gwaNVeG zQT$w1>RkfAm)rl4z<5__6AOfEuE5V=JG2Y@8#YYsA9Q_Z7K2zWeCaQYZ z2z)T>d85F$z&E$?x?JGrvz^=|@FhyzxLe?lOi~ZotK-;9&fHfuD|x z8(fD3{tYf-c(I??`ajC^H(B88xSb;fevHeRDDZ~Ks`!NhKf()${<^5H_o7KkzEa5l z%yzR<;NP&G0|LJ=QuZyXSKnElcx0-weH@UXzc+~1=DFJnKZeo;E+2Oi*ljo^CpxEx}Ao+$8L zY;SV}zGRH*@KS*f;PI^y_*5RpdVxQ{^>zqc*L$wOb-kAh{2tcB4uSuH`+JwbzvOoA z7Wfw&SL_q`RQ6*B1b!we5Ux)Iew4@eu)vq|`aXp1LhJt*p0}9-U(WvjB!S<}?VKxc zZl>W8c#!>AK;XLk4uR|P&k?vT|5|}Z*gxzN_=7yJcMH6e{llLGzLLk~ZGoS{e)}VV zr?P(jF7S8RAATqB5j-xx2>hSi&Vk%6JuXYQoDl;54cps9f$wBJX9@fhy?zOND#vg0 z1pZt0&m{t{WBXYp@JzO|I)RU4yJ{Br$&9xN+{JiA;7;!EI)NWj=5MSQ`1`ES3kB}w zeqADP4;$7M0^iT$zFpvp*x%hG@N-xX4+?y1rfTTp0zaS2d0OC4aJ{b!d>!lIfWXgS z`~!jKuswVt@TJUuA@En&o(~KB9rnZD3;a{Ihob^_vfZjb7!&jV7qPtFe`q@&F-7TT zEZ48`wU~fwlE7E+pmrPat?G|_^@0-pOxQ^R43A~Ee_ie|)?-IC|=hrTQ zf64yjVSyiE{0V^%?q&P~f!8zsiNHgQe@ud=HyK)P>nepWUU&Ht+f#WZi z<5ef{s~K+=_-%~03H%|(BLd&U_&R~V#`t=HFJ=5ff#V-U!s`-&U(f#e3V~n6aoTo) zk7WOFlfYNcLHC*arpfLhu?3b>rsJoGmR$&zKGZ5Jp$j)etxgO+cQ=9 zuLyiE$J=iT{DjF${x1SQo#)X(f&YQy$8DoUtsI}|xJm2zd$#iiA^#z_^GtzH=Xum2 z@EbVJ?-KZ6jzi8Bcq^BGfxzKM4(Zw~@R!(bE){qMmw%POZ{v2VKhPFiFV18Cuv5s} zSpRnjd_Bj>dcUjn_AB-S4+{Cq7=K*gw=n*+z#n4#d4d0t@s|bu4&$#1{1D@B3;ZX> z-xK%{p4T4>{4AFLT;K_;x4#Sg9@g7G1-_B}_7Q z-)oP_tG{vs@2Z4+A={z)&GndkIpgDn{827n{Y`+i+9 z?u3NAmDe5hcMxLoCrwl1dY+I!$mMJlxQ=5k7Wh~m$87>XFjbX*jlef4*w`WPb9vu! ztH7tS|GZ1!XLG%~1b!R$_hEtWX8Z|(zsLA)f&a+(3j%+V_Z|BLp2hpe*9Bg}_yK{h zX8Z$zpUe0s0)K|*?H2-no$qVx(ALMy4P2g-k#!P{KH$gqg7x+A$NBE1hcMys( zTgCpOmKBE}yT@*c*Y6nF#Udj#Ia_+Ei;X8aX_4`qM#rof9>|9=tqJsjU2 z6nGA=zn=;GHeScS5_lnx%eMl*g6;N4fq%^N@fU$V!gwOjKdt|69tM zj}-W8Jm1F({BHJplLY<_>oZH>`*>dG2weSXC-|I;!0}JG;5A?1Q+Qm81pWi>A4>&3 zkJkm4!1r+bJpzA^=S8i+2XS0?hQJ@442!8ljo zH?rTjK;SQP`!@?bf!FIx1s-8L)cbyIKc{m0uNU$!FuzmaiEQV02>d>_=X(Xdi|yfI zfiGkJ4+4M0suZzD;P>%9?j?a=%jLf+@Zns}I|Bcj?coD~U&Z$PslXp&eSRfyALIJ- zK3bp6JT5wZ)OaGd)53P7@rk_NB?r*=e|x*Yujcm! zcMH6b@dpKd73=e<PuE;b$R# zDUahoJwHGylOz=x#<(4Ve1+IVO*emc~ zvAwMp`1kB5_2-6k`^z|9>K5`D%x@I!dam35BF9$;gnTu(=M#Y+V0$|(@Rg)}_*|#JH?V$^_*mxc$2^< za{TZ+#&LeJ3P_{+J%g@SpR?~4qBl>rSV@pXYtS z1p;qly?dny5=d=Hr!tsdK^Y7VN<}!}M z%0-Z(Z9@KAo_7@j*ZW)j{!N#!{=lJO1cdxH?$_A@*Yo;U0>{6Ei`T^hpUdT3BXDic zw+dX_^DcpFdwxRT+HPMExVGEZ1+MM(1A(VyQuB>31g`D&dx2}aP2j=M`Yhu4qy2}* zbJ+ez3;FRpkERKHGuvmrz%ONdvA~b9pIIvKJGlJi0x#tA&pLr$i3SE&o4|9~p4SQd zKIShJ_yI2e3V|oHJ=`SlOHfg8?GgC-toK(0uII}~0>6>x(btS)cX$b;^7ZFu^|%b~ zN3b!J=Z(gXu-_Xi@ER_6y1?&Yr=BnH{yZ*=1pW$-qw_epSKtQ639AKuG5hUqfgj>_ zZWQ`#-^y{|4uR`--X-wAv0c3^@Uz%oy)E!(c-%i0_;~iWUkm&%jB9_U$K_@A zGslFywuh0t&TIL9F+WM*9$qi>=f$*q7MFX5ke|wN(U}6@%j4T6@LPD_dV#>TKe<%k zcd$KNFL3QA-(no?nYS)vxPKG!H#7g8z-w6l#{~W>w)14RBdv$6SP@*K1Rm!2Z?eE| zWV^~0_&<2vTqN+}Y(Gl{eje*#g}~QyyxJh}{XBoq7Wk{|2hJ1t9c<^<2|Sza;ZA|K za=niT{Ab>GKPT{Kxct`yet`A)p}@DXfBQ+`1GrxUS+9CrW?Ok&1b#0Hz@v@0 z{j-I6s& za7f@6vOfE9d$k^FS-;xuG~UJbHc`l5&GxWJ;JK{NWdgs9*T7D@6q~ykL@It{k_IB*dE3Syo~GB-_O(X^D~v9%oFmbvOdcMp3nABBXAFwQ!nsl z#?KbG`eWPhH&O-uKKs3`0`KH?-GeBy~q&wGhEJef#1&KHAmo&F>V+5ON^f)@OOC}eF8s& z$FWu5XEJ_{z)$0G>=Ae!kIS_Jzl!y8yTFrK{|^cL0oMPs0?*|3>=*bb9+&q8K9lh; z1#V;f-vVFG_yCT(^>~fu{+=N4Jv_dX1wM@1nJ4fQcwe(b;6Jjztq^!A$E&9a+{x=; zP~cy1e6mL1+VAfbxS##@Ta06|ta`G<4}|=uJdXNvA1IF@!u=!-Uu)x_3iZaWnVzHx zd@jqM5Qn4btmgJlh{Lg*3EbZ-#&x}^jOWJ5W8Jzv3yyvaR{QqJ3t#Np~{Eeb~{e8~I9j0@vTqd|BWQj^ExCczU{v`J2 zZh`C1;WrCB!sV3ta!v#5)+rwxfOC!uEN;kS~H~cBoLZkIQcuPZ9WwjHffM$Ll;UKQm4q%PL}gRveD? z>iDEk;FH;(+XP<5_%g&%f6Q^(VS(%Y$xj0RY?5kFe~t@K2iTrH9M23B_)omA znIv&ucd`ZkEw3+y0@vj`8Q1zzt%36^A+Nvh8afWXR^a-3n0kM#`=#+sLjDWxSI=?q zO9igK?|p^9OWA*I7r2(cnmdU7<)I>k!%g~JmQLdXK4vEO&QqG??_@^mEt8%qUl=c6 zAn+pQ-2&I^myr`*+X}y>1@}lu-J5j^f1f1>|FD~pLw|fJrw)EvIw#bQOiq0memppb zMCixm;Ex71wu2!4(45a-SBHNEBK|S_OqPlFhx~0#@H>8-LvwKj!XGRR=*Q3`Bd5N- zwH5y$M@}3325%1hhA;dEFaFfCswU9vYs8O6jou*f1LaB2UoxY+n< z9?b)%dXWbBo_m@~tjEIP!s&!b^gVcS_(R8th_gGTXGp%206*d4qH;4Kg=I?d|7-p{ z$ctsh+b*!ik6fT`FJgFUUf=D2$u^N7`@b7`-VoM@>|((B(%=27R1P;*02k^H$4J+! z^;ZR0U-jQO2_C@Z5{i+sbs!@#%y)>_=P$S)h~Xt=PY0~8_8U7