From 3308cd28f490b3adda9d04fc221f47db803db624 Mon Sep 17 00:00:00 2001 From: soyeonLee <109227292+soyeonLee126@users.noreply.github.com> Date: Sat, 15 Aug 2026 17:01:00 +0900 Subject: [PATCH 01/12] =?UTF-8?q?feat:=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=EC=B9=B4=EB=93=9C=20=ED=94=84=EB=A6=AC=EB=B7=B0=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/designsystem/card/GamssImageCard.kt | 298 ++++++++++++++++++ .../src/main/res/drawable-nodpi/bg_card.png | Bin 0 -> 147607 bytes .../res/drawable-nodpi/character_angry.png | Bin 0 -> 27633 bytes 3 files changed, 298 insertions(+) create mode 100644 core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt create mode 100644 core/designsystem/src/main/res/drawable-nodpi/bg_card.png create mode 100644 core/designsystem/src/main/res/drawable-nodpi/character_angry.png diff --git a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt new file mode 100644 index 00000000..bfc30eac --- /dev/null +++ b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt @@ -0,0 +1,298 @@ +package com.gamss.android.core.designsystem.card + +import android.content.res.Configuration +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.BoxScope +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ColumnScope +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.material3.Icon +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.RectangleShape +import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.gamss.android.core.designsystem.R +import com.gamss.android.core.designsystem.component.GamssIcons +import com.gamss.android.core.designsystem.component.chat.ChatSender +import com.gamss.android.core.designsystem.component.chat.GamssReceivedChatBubble +import com.gamss.android.core.designsystem.component.chat.GamssSentChatBubble +import com.gamss.android.core.designsystem.theme.GamssTheme + +/** + * 캐릭터 배경 이미지 위에 콘텐츠를 얹는 카드 셸. 배경은 모든 variant가 공유하는 고정 에셋이라 + * 파라미터로 받지 않는다. + * + * 실측이 고정인 건 카드 크기(366x528), 날짜 위치, 우상단 액션 아이콘 위치뿐이다. 그 아래 본문은 + * variant마다(버튼형 요약 카드, 채팅 로그 카드 ...) 구조가 완전히 달라 셸이 알 필요가 없어 + * [content] 슬롯으로 그대로 넘긴다. [topEndAction] 도 슬롯인 이유는 같다 — 아이콘 에셋이 아직 + * 없어 지금은 호출부가 플레이스홀더를 그리고, 나중에 실제 에셋으로 바꿔도 셸은 손댈 일이 없다. + */ +@Composable +fun GamssImageCard( + date: String, + modifier: Modifier = Modifier, + shape: Shape = RectangleShape, + topEndAction: @Composable BoxScope.() -> Unit = {}, + content: @Composable ColumnScope.() -> Unit, +) { + Box( + modifier = modifier + .width(CardWidth) + .height(CardHeight) + .clip(shape), + ) { + Image( + painter = painterResource(R.drawable.bg_card), + contentDescription = null, + contentScale = ContentScale.Crop, + modifier = Modifier.fillMaxSize(), + ) + + Column( + modifier = Modifier + .fillMaxSize() + .padding( + start = GamssTheme.spacing.spacing800, + end = GamssTheme.spacing.spacing800, + top = GamssTheme.spacing.spacing700, + ), + ) { + Text( + text = date, + modifier = Modifier.fillMaxWidth(), + style = GamssTheme.typography.subtitle3, + color = GamssTheme.colors.gray900, + textAlign = TextAlign.Center, + ) + content() + } + + Box( + modifier = Modifier + .align(Alignment.TopEnd) + .padding(top = GamssTheme.spacing.spacing550, end = GamssTheme.spacing.spacing550), + ) { + topEndAction() + } + } +} + +@Preview(name = "Emotion - Light", showBackground = true) +@Suppress("UnusedPrivateMember") +@Composable +private fun GamssImageCardEmotionLightPreview() { + GamssTheme(darkTheme = false) { + Box(modifier = Modifier.padding(GamssTheme.spacing.spacing300)) { + EmotionCardPreviewContent() + } + } +} + +@Preview( + name = "Emotion - Dark", + showBackground = true, + backgroundColor = 0xFF000000, + uiMode = Configuration.UI_MODE_NIGHT_YES, +) +@Suppress("UnusedPrivateMember") +@Composable +private fun GamssImageCardEmotionDarkPreview() { + GamssTheme(darkTheme = true) { + Box(modifier = Modifier.padding(GamssTheme.spacing.spacing300)) { + EmotionCardPreviewContent() + } + } +} + +/** Figma `Type=Card` 재현. 캐릭터 이미지 + 요약 제목/설명 + 기록 버리기/대화보기 + 공유하기. */ +@Composable +private fun EmotionCardPreviewContent() { + GamssImageCard( + date = "26.08.03", + topEndAction = { CloseIconPlaceholder() }, + ) { + Spacer(modifier = Modifier.height(DateToCharacterGap)) + Box( + modifier = Modifier + .fillMaxWidth() + .height(CharacterImageHeight) + .background(CharacterPlaceholderColor), + ) { + Image( + painter = painterResource(R.drawable.character_angry), + contentDescription = null, + contentScale = ContentScale.Fit, + modifier = Modifier.fillMaxSize(), + ) + } + Spacer(modifier = Modifier.height(CharacterToTitleGap)) + Text( + text = "오늘 화~나네", + modifier = Modifier.fillMaxWidth(), + style = GamssTheme.typography.title2, + color = GamssTheme.colors.gray950, + textAlign = TextAlign.Center, + ) + Spacer(modifier = Modifier.height(GamssTheme.spacing.spacing200)) + Text( + text = "설느닛람햄을 긱에자네에 신손 겅투히오의 흐랸비의 수매해으는 하어이", + modifier = Modifier.fillMaxWidth(), + style = GamssTheme.typography.body4Regular, + color = GamssTheme.colors.gray800, + textAlign = TextAlign.Center, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + ) + Spacer(modifier = Modifier.height(GamssTheme.spacing.spacing800)) + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(GamssTheme.spacing.spacing100), + ) { + CardOutlinedButton(text = "기록 버리기", modifier = Modifier.weight(1f)) + CardOutlinedButton(text = "대화보기", modifier = Modifier.weight(1f)) + } + Spacer(modifier = Modifier.height(GamssTheme.spacing.spacing200)) + Row( + modifier = Modifier + .fillMaxWidth(), + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = "공유하기", + style = GamssTheme.typography.body5Medium, + color = GamssTheme.colors.gray600, + ) + Spacer(modifier = Modifier.width(GamssTheme.spacing.spacing025)) + Icon( + painter = painterResource(GamssIcons.RightChevron), + contentDescription = null, + tint = GamssTheme.colors.gray600, + modifier = Modifier.size(GamssTheme.spacing.spacing300), + ) + } + } +} + +/** Figma의 우상단 20dp 닫기 아이콘과 같은 크기·색의 프리뷰 액션. */ +@Composable +private fun CloseIconPlaceholder(modifier: Modifier = Modifier) { + Text( + text = "×", + modifier = modifier.size(GamssTheme.spacing.spacing400), + color = GamssTheme.colors.gray300, + style = GamssTheme.typography.title3.copy(lineHeight = 20.sp), + textAlign = TextAlign.Center, + ) +} + +@Composable +private fun CardOutlinedButton( + text: String, + onClick: (() -> Unit)? = null, + modifier: Modifier = Modifier, +) { + GamssOutlinedCard( + modifier = modifier, + onClick = onClick, + borderColor = GamssTheme.colors.gray900, + contentPadding = PaddingValues(vertical = GamssTheme.spacing.spacing200), + ) { + Text( + text = text, + modifier = Modifier.fillMaxWidth(), + style = GamssTheme.typography.subtitle4, + color = GamssTheme.colors.gray900, + textAlign = TextAlign.Center, + ) + } +} + +@Preview(name = "Chatting - Light", showBackground = true) +@Suppress("UnusedPrivateMember") +@Composable +private fun GamssImageCardChattingLightPreview() { + GamssTheme(darkTheme = false) { + Box(modifier = Modifier.padding(GamssTheme.spacing.spacing300)) { + ChattingCardPreviewContent() + } + } +} + +@Preview( + name = "Chatting - Dark", + showBackground = true, + backgroundColor = 0xFF000000, + uiMode = Configuration.UI_MODE_NIGHT_YES, +) +@Suppress("UnusedPrivateMember") +@Composable +private fun GamssImageCardChattingDarkPreview() { + GamssTheme(darkTheme = true) { + Box(modifier = Modifier.padding(GamssTheme.spacing.spacing300)) { + ChattingCardPreviewContent() + } + } +} + +/** Figma `Type=Card_chatting` 재현. 같은 셸에 본문만 대화 로그로 바뀐다. */ +@Composable +private fun ChattingCardPreviewContent() { + GamssImageCard( + date = "26.08.03", + topEndAction = { CloseIconPlaceholder() }, + ) { + Spacer(modifier = Modifier.height(GamssTheme.spacing.spacing300)) + Column(verticalArrangement = Arrangement.spacedBy(GamssTheme.spacing.spacing150)) { + GamssSentChatBubble( + message = "안녕하세요ㅁㅇㄹㅁㅇㄹㅁㅇㄹ", + time = "오후 1:37", + modifier = Modifier.align(Alignment.End), + ) + GamssReceivedChatBubble( + sender = ChatSender(name = "기쁨이"), + message = "안녕! 오늘도 행복한 하루~!", + time = "오후 1:38", + ) + GamssReceivedChatBubble( + sender = ChatSender(name = "슬픔이"), + message = "안녕! 오늘도 행복한 하루~!", + time = "오후 1:38", + ) + } + } +} + +// 디자인 실측: 카드 366x528. 안쪽 여백(좌우 48/상단 40)과 우상단 액션 아이콘 위치(28,28)는 +// GamssSpacing 값과 정확히 맞아떨어져 spacing800/700/550 토큰을 그대로 쓴다. +private val CardWidth = 366.dp +private val CardHeight = 528.dp + +private val DateToCharacterGap = 18.dp +private val CharacterImageHeight = 156.dp +private val CharacterToTitleGap = 42.dp + +// Figma char_image: #FFA8A8, opacity 30%. +private val CharacterPlaceholderColor = Color(0x4DFFA8A8) diff --git a/core/designsystem/src/main/res/drawable-nodpi/bg_card.png b/core/designsystem/src/main/res/drawable-nodpi/bg_card.png new file mode 100644 index 0000000000000000000000000000000000000000..035a19b74d155f44ba36768340165687728d7b35 GIT binary patch literal 147607 zcmd?Rg;!fqvp!5|X^~P|C|;n2;uMNIw73O#w<5*e0#tCf;%+JKF2SWpfKXhDy9Ns( z$&dHm_PyW#@a?s-vNGqKtn4{^&&>18a}utqEQ^mzfs28GfiEv7rH+B|NC5-m@q6sY z_m)qlrH=P+IL>lyLns7#KCNcz0%4 z_n)7+OY6F8I9a)SnYn(#kg>IPFw3qJfcN6DsH*;S(`?Fh^jj#UhQkUWBXw1mW6dg!x(9o(*ZNn!1y7TLmmgg}iVU+tfio(SbMBt0&@Q|LdA&8+OmU&9$|*P!8GN zCuV-$bN*hyKg%b9ZT$G$ouOnN)GI3RTX$Vc=hZ0jy^*U}1PRGYWxO{g{^;T6CyOm6 zsaePYfotSiff$51S(ZTuKSA2khvmusk`p)NCrfE}?{3j>21i@S@F$m*i2v!bV+NjnCDZ_n43YexN7 zNM5hn*u6Ply5VGdD9jS8(RKsmnG_?0JKLyO|LR9Ny1UmZZZ998L0pc0U#}h5;Fhhu zXwZ2&%WRw)InWu@$YdpD5&Ef6(vpf_T1YwQhh{KppR z5>0UB@ya`^;2Ks<)2KV}?!EmW(xvbn&ERsAk0UGO3;q0|guIDQ&L|C7{8?NUd`2JP zyc@JinaKNb`5J6Y^F@U~NLD$qdiKGE$7vEx{Q& OIgg95@D>MfUnRNi8+6iKdEN zZU6p|d43Xbz4hj(%zr$8!j2sM2|VG8lzV-hTbknk?Jw1Xjb14Mlrv=ci{7AucCp@oIwI=9p-42OvBt`2@{um@@?p6;=*ms&a2 z)psz>=oNVbdZ>`;7T*~1$DsXB#wH#`>I40q5lrJ%osGy+i}oi)-91q4quR%TWiT{=GCWqew3X?SynP-Y#I2sK^cp=c2U{1<>cyNMb zXy9(^G8z#F1#>;k{~JyXHhRq_H^K8qs7-WJFjdAFd(s7KekfK#AUdu$5c2n|t}B-- zllo56sZELD-d=HJr&|unuGiD=e-D2d*=ROB-$O(5pWD0P(N{&jMR#N9*<0FPzo$5W=dxP4Bot;txKQHwfpl*Tquq*9GB>Ej$g;Tbxo~UW+9@tuqu!hhMJanZP-0p1+23D=5%x-LKoS{=v zpt=+3qA_Py1t&4cz3qEX=~gHIx{R)Vsyygqv0nXDpK|9-EI-0sJT>rw&vwr1q{GJq zVu1FuBN~s6UA={zW}>|U#|+RBX8l!Ey%>y(uG~Jq7gK~dfqu7J0p8B#023!y%iuEbj{%}VDNgD0s_Pq%aB^uh{&wfd~Ly#K(U^>ka zc;`C@IWoSj_4o0iLQ@lbx?8jm-$Pr!nt)m9AUuJk2QJH<(PbS*ha)XcgCMwLJQr%9 zMI1F4ibkiEC=m%Opw4>5;j9NsftlX(HRl1BWhUuuIayC9Gt_>q`ApQT#2|j5+rWsn zjWa0pB$n!E%j5i(-Vpfb)w3n!=E?D~wFwFNGk6F5wtjAcGIax20T3IC;X# z2a%3rptsP|Bo%O=5XG9|#)MbI^$A!Qg)TEeo$GdrBjzE+9KK^a2CX1;pyB9;4$;@> zyJ|Amax~=V&r12&V(#p{UCIY|%jFWTG_>N)Er$9YfUZ8}`*{9j-r!^nkjRhj9$9_k zmiZ{)DWj1jHAE!$-PmFm@N+CkC;+{Tu*f+Zk>Rn6kL~@sh?`=Ws*GryxDwFa1XBOV z6YsvHS#fe)$K%;q=skO}Tt|%Byt}%xbEy@JZh!tqh@U%z2>EE&qWa6})%=Jx;uYOh zm%kq@b`-GQQvxVQTzpD!vn^~mFv|!4-f{6=@a-RYmjoxZ&Gz>NEcsEQl{c1CO!OR+r~951;PUkzB^ruzk;q(iy^^jmK-CC>v~Q*VASoEo53C$-D)By3^dM1+fw%p ztYyu`dZ98MNGW*_nI@HoLYLw2_vXf{3ElyMV-HtJ@DVQCd$3n7OIM(qJLikWpYY40 zl>V_&bp(BvK|On{xs&MZJq*DaM$yM7on{e5`fSJaWgz?!)#y5gD=*&`vY=bte&(8(#T zOp+Nl(PxR=^57qEE@}e*8Kx{p;tZ$!*n@UKIU-(xwJ4rR?Lla(F;MG@rxhnqxb)ZT zrdDd@t|^+$MI)v(p_u;Naq9LgH)C(o05%!gHLFmj231-$rx$clf_HX~6mUHH9dA1^ zCjtO6sM7kb;xeqlV@=$YLJZp-L3hb~H0oHU_=#sJoCzk?Ip$9E1cPIDE)`8SC|Pzz*S=k7p9FvxZ(0gv8VyzxvCb?hN>jD9v~Xp5O1|AJf8 zGs}EJH1)?;QY^IhXfPKL7*PG{hnjMyJ25f| zsBpEf-!i0Z!$e^0BNKr8UlB{3`HM#q4!tc6WdzmZE~Pin57I6 zPj1i`;s_OOz1KdyPMcaJ3bdi|Qd4K^Nyh+Kg~B*+790p7`yfMf@Hz5rMfrIBd0b8W zxy`3MsiE)Cm!M|Vbt@gkaOo&JeI{lX4!d_rh3kQKJMH90XI0~GCwJT;@#q<6d`!!~ zepY9z7d-R(feFJ3Zy-^)lg78}1$CP)BL+COm zv*4cUo} z?&fS`7420__}hfwZrGh5-C6csg5YA@-}=DR!W&cmGpG5)cYWpZ+eXMM{yg6d)^)KlP-zJ>;al;GzPR z?oPjYdm2?mt!~NsGcH!UX(ps$Iwal#3hGM69V+tY17nRl^&i8kj)>g+vh83zF6`#8 z+NlO;ye>cP`qG=nJ4SViFPUwFbcu`uraP`m&OOiGfsXD1oN;-ZyP||+hs~q=37PGV zo|Xs(+gJxwHd|IGJ0N*D-1wU1T#~~s1b)hl;}g(roZe7)HMrfFAoq1-Uzimc5BIL^ zJkj{NFRYO1R;rcXhFj(LA7bEsd~vnm{|Mwd>E!=m({;Jstnl_6h4lJc=3z9Bkkrc_ zoG_`ilaRg8`QIxrbibEU(02$af=-DLw+99qcv&ajJ_M~@=-)|QUdeSDIh_oL#TFy3 zFS0s+#>mJIL^t!@jc_0U!&rC0$k@oF6h%c%x9~)EugSUsI?@0Uo!~yBmM{rt^i0#( z9)4-^Gw7*tj8An5>ekg_V%gx2A;E+|X9Y3O$kL795Xz%l`}00|uYxTPtaT*Y?StK1 z_X!6h5~UM9Ek-4*WvcvOM9p6|JR~E7^5F!9(n+3&O~C}U5~kTf^Tlg23yd#gYCd_J zWltXdosCX63|42G1vq4C>8RN8{b&B}P$rqM2VR6P~;@k%v5;#yhZA~mzc^&(fibBN^FkrxStrxkt&;AQB5R^w^pno0RQ%r0Vi`% zKAjzFolQ~(PicnV`O}oq+ZYliwJP_ak&mf(x9RjVM4WXfUhQm3nRJ5N*OaCxi|?7_meo67^cy}qyKBeu&c(2PO!Ux;~E;+)yT*IbxhD6dyk9F z@J>V&>fc)@+m?KD3|GCJnGmW>wj4{)pHNsk7ub({dNFfoX3m|t__Ng_SWL-j>AgWo zv(`De?XdKe!}gwimuF4_^>1prz@LpZ=J(07gQc=!`gtaC_PUlR2Vi(e`qq;O(^wDk zjeM(aX!DP2C~Bm&j+f$Afi<86X?!bEmk)9Pv3WDhQ(wbLH|r$YbmmW@BI;r61au`> z(PRwI7ks8~36!ri2G`urd8+K(c!|2_@TU^s`bEgMEPbWF261vigd{y*Y#HOQX5;od zj1|wHT;C_B&yg*qj(2c)!9UhXH@y^(o>wRAuR~0YsA*^b2lhRe+i-Y)y`oR-I3ef4 zm_S|ePTfkSYNHhdB#j>DeAiH=2}p3?_F9jG*>X%sWxR{+Sw5NC7i;jAYT`|#eqv03 zKcyEXG^!(@hD1Vu{-#Bk=+Q7Aw zplAHSC=`Hb4qE=wuNRQE8ML(O+Nqk2HpF54Y?t)Y2RO~L@fXBlY^wR^ZB{FQ`Ts2$ zd{zIvzO-Ynbmv%=BfQSP<`0<_-Vr>xYUWx_oj$&$8oAPU?Fu)7)@pOZlQ9k0OFJe# z(%~N^0y{DhsRlp2FN)R?H;X-ECv2YQ)q0qMQT;sf_U7K`&+}i5G)&|jcLWzm%S-{j zGCku~PxyCV=BKDFb40!4iH^>Eu^pm^G=8I-`15snjm{ngj{DpjZ6+A+)N(SFgVqFy zm~ik@+d8lf^9iE<-q{}uq#9JGt}>kd{?I>!_W@3(N&O<|0RMkYUBrJnIf>^-V-jL% z=GFcSUIi>l*^@M9nS89pkQ2-^c9zkEAm?Qzul0SQ;GB%N590P&tUH*Dq>-U!=>r^+ zq?;pY<8n1Om#>!<$w2t$YSffxzxp}6A~N~*QfxO|yJX%bhs^Y)RVx?P4C4pbg%1i2$*%IL zXYJud3H#`an3pqTosAu~53CuZ0c$2i+bp6nm9T|@N%WEvXgzn2DunOD6eiK)&nms` zmmUX;`>zeggKVQX_FW&nwrZ@=pn6vC9c6x4I~gYP=$cT|P4`RfX!t<#%_J@#z=eVM zhv@al+^^ZFosBYWExYxjBAIhp?y4h#KV8d=uh8oyQIH2 zvy0d{Ft7^8bD4r(e{=TXwO>4o{lV}8<`!IU;O-BHJH&L_f&X++@iHa4kNk!Jq?0rd zO7bgSL$;z**my0w^BG=h|EFK=A7mnlZ|nWX<1fkjYqs8jYoF_W4I6nGC-S)Pc4gMW zn`031d@*-P?z=#+r=!Qi6Qw)gTriKr6t>%sH`l7UK6+3`N~~u0UjUGZT>^_WDd)o! z6!84?^mHr$tkZE<#6zjihc3J_A zVNL)WL&?P|A(lxn)^D!!$I3)d(hP8$2J=QT=mj9b1GvB|hTe#p>&ntS=kS#A+~)wR_i)Km21U}* z-<1(<7zRIehzuUMU?3?h9~g=zkOUi0;v6GxebszjJikh8xz`A5@&5XHc!TNILQ8*C zo5uNJG*#y3Z(-%%las1F0raf-Gkr1W#^rexl|fIT2whyhvu{uBc?{HrY9bVl)JAkF zm3!GPjm^rQ9{5&B6S0n3xOSF@mo=qFet^$p^lpxcq$=?I@rC{V{x`{diQKu8DN(B} z+ws-752lH(!qJ|7&;EM9ei(5rt`l509$?3EA8Pw3t~(fBId%NKbdGPq+7Fbpr~B_+LKfhNMq*e?f(P_#`3{%{#yAcoPu=O;MqJpQ=fdu@M~acm7_l~E z!TMdP&W(N3oJi)nk}{jmC@~FF{KJDH)#2`$CfOQ$rIBo<$0_5EF_=wnqVw)cQXtR9 zFYO^{oLp=jHaqW!5a+zJh7YceR#+7TAUVkbV(uRyA$WxE@q?|9M9~*;yvax=Nmh%T z)66sYY#*`oJ}(g4HT+1I`+(}|M*;Kx9qU3?;>CSR2nb02CVKCe>H<7PSWV~bD%dL$8 zkCSo^XKTuA&?vM(@0ZN4t^W2C3SAk-F&U-g3=uJ7qTi003Jez6Uh!kM1hdTr_r)mS zX9lHb;(z9s6e8PCVeiFBV0vH*YaG(iIq;?X7RUN`>g6BrfxC(f<7TNpgzK-(5Lev) zJ@L;{we#_2Cn4$P71E1c0*V`3c;TLRA8;BItYNT1BQUZf8sDW-*~JbiAh2Z;BrH7K zv3SWK>HK!Wy=KFX=kn)SAn}NOHr_FDZB*;%-SdMDF*Knhe$2L=b9q5~Vz$N)QH3bY zL_96Mm(I4=N6{V6kx_&}VoRc*8d%*cIsp%N`0h#z5;+2n166i7)S8 z`o>7@;|Fi9&oBx8i1czi zlfDbC_zcU8Bl-A}A7t}%hP0fm%iH|baEZADr?5%(O|h4^f<>8f)no=IY>0fZU?cBR z<*iIBem<1sW4j0&JL5onCMCf73`RfBG3uG^p`BJh{CPIppF(zx7Vl|GNHq@>uCLUW z249zn9|)pXH_WS=$PW zmVM@jJxrD<8;-VZ^-HOx$t+sVXPm#cD&8R>bfBTSQU_$~V_nj6MLZiLr_pE83G(LV z9PF+#R}&F8TM;%A74OYX8O5}2z50X~Na+%#jAE#Pd;$;SzT+*Jtm^37s5qX#XB}7) zup$YC0*?#XbWhSxzjX~r6HyGZJi>MWnCtaj>JIF*M*Z@i?Xw!^8{h+Q`E2AUg!?}) znSZP-pl!I#wH^j((N0Bp8_~}{W7n+e?l91M#jnTN{n^(PE*)LLmiXQ)NYG}Re&X@5 zFR#M>@_k?ae@6L8;?(7~QGe4)?td3&S?)b`@G0-n-&5E#QmmH^oTA|OSWNzQD>F>o z<)_M@tWzVox+QXl_}A-OL@v!k9U*I?CP31&oJ)Tja?mSFLgwB6*pEEsFV9T*Es4hW5(yV?z z30gEMgiGxZSlHSe1g0dFhfyRq5fAV)4gs+|Ut5QrF;c1JdCEJD9*Aq(vWCdI5~jVh znWg*qg7Hz<9+i9cdnGmswcuI1co`QvC{f#rV_|ZP6Jv#VmExuF!kC4YP98TzVwR@W=XntUBCp4r{|`D)c0kd0Q+i`B!4?1 zLHF?e^Wi9@%nUF1!9?xkm3#N{p9IH>ti6uNyQg9fa6!vD)t{G#R;D!SXsfkIJq+(k{7Te~2b~B_~ci^k2b%^iC zrJU!^rem#73jnJ#I&~-WsMG8DGuk9VTZwDzJhML%TmlO*6AV1=Rw#a#*#_5Of7r*u znu-G2Z+)0iQnAkhKtM8(XQp=blQEx=bbyy%c~uhIhZVH@eV7aAZktx7zf;jmzDLRb zd4rQ1H2y#P(^;xTRekKJ7<4WX?)U!hyf93fw}T0(uD!1R#YIzFz5=x=gn^b1z4=4O z_L-l?IP9_szR`HZ@-l;=xbjs*^EpBnp$&;<F%3fkvz!i>g+H386$=0andf&(r z8SnT$r`T}ZR}%J(Z!%jE#A* zo)v^mN28zqVynSk<}`p>y}49thFlrasXE5L<)p)s3eWiT1DK<)xkr{Ey$cm%FFx1$ z%7(zQ(0!$s8jL#^gMLbif=<2TbaEM-%z4}(sG#J@l`qxqfwN7@;@>R#Em;06m`rCN z*Sqoc=EC>Xf0>tU{Jw+8vSfB<>%^k&k=K{L{NJ3C`+{%H7aG~}80Fn*C7%J+=3J>T6!Ex!!mGFxRIrln9F zC2!2K@JEO`0k?y9i=k%OqP6Q<^;z(w)K|WtGhT6xk(vg3Ovn}w$5$B-bf)nCh_97o z-)Ph7Ilq1i%@-s+KfAcFxrbdm3Xh8dE@}XdPrpjVSVv_|4tb6;NX}YV(}SDf?(xAd z_}RYLn0fc!j0-msW%NIM9t)rW6sP{ zdp%Q`L}TQzf~>EVqTl{s`W>^)NN~YLUyRZ(wt&&V& zrz*~Ta7fs2pN8HhRT;?Nt-vX~*$J&bYgEH{ont;q0SGTRwPo2{4+nrjVn^X!Ewt%Y zl*Lo9$hPg-hcpXw{OV*&|Iu^(XZ)uuNn}|Pwh&8=;5qUAzW9%!xbpFxdY43IQRQ|o z0{X(RbaXWP-?@*$>aHsIO^yK4rJs{*np-AMm~3Zd4PeTL(*g=oZ#G9_R4%t#>a?3J z`Qbj(G>ggy@7>3%bb?JPH4P~}Pc9Z4?55RR$xZs@gd*NEztPkuBaRT!hU7!+U%;c_ z@kurXb-aqBTNhN<@LA2bW*7z%9C(il4?YI9N+`>jwT>-7z*8T3xABxY&9FhtS%I|g zR*E84of7o+l$z{7??1RLrVQ{of$;76s0hUeJ@J^VA{CQtT@&knxk;qTwDnZS-u9RI zAB_D^sV3JSoKQs_B|hcFQYH21z?57s6%8|li#&!t{8+`P)UN^jGbrybx`b8G=JlH*;l{MpOb!)C>)<4sOUjsLa-(- zN3XWrlfm}Bthq4mg9&gs8b~&9nS%vSpP|GN_pFU=#PdH3*_-=`h#43LiyrcMO>6Zt zkB7O)rC2tQ<~e!Gp=OXf^vA^G7XFDL)_;f#e%_hdB-{-YNRY^99(J|M_&D6Y{j_8X zbRd5dEqyp3@WTS{a$DBz6REOW99CatE?X49L+)4=#k)b2VicWX#-C2==3kHvwx%S0 zx6+XWU^KA|mS1(rv*gzmaOwCps%t$Uh@N9Qj}PJA$ZXq40MseSKxxW&IvdUG7j!rE zOyl21s^bUx5+1TX-7ZX+?VPH_VLWk|gXwmL9L))81Yn0PwOaad7@XvO3hGz1&FkyM z4>*7(N%?507s^;2(_N{Lj_9;V6CO~Je$dwu&PbUBXTB3VzT$%@e5+;$J*s6W(TP-O zZ|^TzYtXVNwe?uTQ5)o!EpO9bY>w)We>3)9Y6hbm>;GuxD*J&;D?z?m6*iA1$3s|J zlkYU+3(szu#OG64Wy=^Tqsjh7pk?z-;k3Z25qmIOTotAep5mV!)(N%}sW=WI&N72z zmiJ$Iyh+KHY}p=kk_=gXxe1rXKL4?B!o8g!(2v0;9UjWP=1rfR>O{RQN>I$D)1g{B zC)M%6f*d}44Q|D(GwnW^9^fOJH}gKg=?ob!Uk06RWr6haS);E*jP_ZIs2d#Fioqy=xx9SrW&A>K@GQ^`(+(U(4Tk?BtLYuo#cc zIWqQ8)`g5u@YW<#2We%J6B2itNJuj8;Bo3EX%FNnnul|Z8L-*F6gf+P+l4;9Y9o9< z_k0U{`D?F;CH`mYV_;PKXgUoUC49!CKZ(+Mm(kES#*D1p;+!xdmcA&?&K|{G;+N$x^GxmHFJIey&t`2f$q#I2YZfO&%o{I;nxqiW{ zlrK`V{HXJ?$k-`0cAGb~u1u@{PK?Uia~{jsqQYi}-Ial9b`w}=lp9F(39)!FvKP+Q z4icQ=TX!(SQQ$e8^06s&_%W1x50YP78LC@UXl>J_ctxb2m zKQ?@58I>NzEcZ00inYmkKvQ#{5|uiEilbx%`M>+xK<-xklm{Y}=qm&Jy&u6#%weDo z7g#G#s#;v6EZAH-g?%rP0z?xQ9gG$D9QZ&7X2Uf?*9jzl$=zk@$@>hFyUT2SGVQtbqJQm0kwSAD&?ueC7_@I3Wd=Wweg z+EVe_num(^zJ!mcggX?xoazX0%^5ZHtfQ>KW9ZIHN{nPti@KNOJ!M_YHp@(xrXRyB z8Fi;Tg3cWU0bBNn*tsxuOWNBxKDV;xgNkY+HEyyDNx-KtavHjFF9k9kT6nGYZ33M~ zuZw+)O0`Nl@K~FRn%b?c#p;--@I}o-6gj#Y#4itSXyT{1_{x8wDZHsg8ZUXnsrE9neyihR~!v4%ambB}W)%)K2wk+M*a64i}(~zlT+qdpsfvVeY zJ`97w&Yt{Tr;U-GvcqeUC#9AAy#0oV-^CpaOHKhvI+=fu=Nbi|U^%Rk3nr-%nnp~V zGsp^txmdP;*wH@yUS^|l&v*IXS5O)S_pJqsz}+bLj(W2R`qpU_4ATkR%8G`+MZ9_R zge4mMW4ANsIEtgJBq;6F|FvY`f%_8~#+x0%lT6{nx-(u}@n+3ve7ZzX+xyt&HaI3~ zI(&=RurtBwK!0zD&E(oFs#Y|?26V^%M31KQ(VolWf)Ietx!bpwu`*2(pWRB&6<*O< zERZ=qsB6)3{Y5)XXHf8gJ}Y&kR0os_a(EDE-1JEyD$SGbGWimy9{jGU0>1uP&nvLV zO?=D1>6YuBaVcpl=sVP0XA?)=P`WKobBT-^Kfw6a6G7IMJbyJB=0jDEbA-RXw6a1S z_)^nf+IcHDAx9IBJ~mbbyY(-0w$DT$gdHZHXoTPQqL3L*QRhFz|L7<(@m! z{LLgdh1V*?irXL}Dhem{9VB0DGYo$paqU;usIL+_f27VU(Ehr{%iNE#HC57Oy{t)V z{(QNlDAK;b;F_m@>)^3rNCqr?x^a@}V^%Y~^Qw^}Q~HEKO-O8_unxZXU zb$1Z|Oto7LK4BmrewliG%h}i3tz=Z6%vA6(q13NY{j1T?D|_a?6}3*`;k2-5oDzr> zY0wpMcTQA`_H0ICZW+VUJtOnnd<4I2vVB7zTNPV~2m_-YpN<%#JXpP;5dCfKfATuw zBT?ln^S@+&lK8SA6M{yJ2{z8bR(A$ zGKnq3R-{*(1I$0R=8N%iv$x0^q+l=DQ5g@L9#BpW6NvWoA3;R5bjJf`3RV>N1gvP;xdnm(4gkCqx=ixj_$YOE48~Wi?E5cEt@EG9 zdNtRP_mtE7F5>=_!pXV@6>jZg>8f*>Fowj3!o2nDA0bGK+VQ%fMCxHBzlrGXbx&J39p?=#+uGnO z**Q7-qq<)%=Nd+dx{T&eYq&CF8kVkhaXZV^zs~Ez3xD{e3D2Jnbg&7(U-eG10US&p zZB>smz*3^__TsWBT;B7g1O5fJj9y;i+{>DHhP!5R(=VV4@Pq+kjC{lRY!BXN;K!UDIzXA7p(?YT#q1wV~ta>T}ahk|SiF zB<3!re7$Ng?!TF&gHLkWK|qJ|OyiO}!iLz8vOgnLBlAp5hm9Q}q&3`1+;VLTqQil> zuWa?)>?m#Xla=7>Sv-QSzdWfR^IYGJLh8MyM7=7&CH(|eSc=ZP&x3u|^VBjyljmp^& zl|8P`Wcme2>a=|+P_KZr2y6c(mW{^ZB?Z7t!@o#vn{Ntx`1Va>+_RXVT>sy6TapxB z>%&TkAr8Ig=u|&(8emX7!3_Y?z<&y3%5Oz1t0eq@B<=kkN-S0v6eBO z=2Yn1u?ToKOSu?SWB&dTMl&|oBeDmTgewCNF`R2e#6$UpE?B$jdf)O}QS6p~Q9Ea6#~Lc6W#lAAew{o2^={cKO<2Las#JO9y!@<} zSj-E`XxLW*@O0wnEr?w`IQN@Ho>$W^NEpjZ>3%W*A8Jvs z5WjpLHq0RQwV)T9kqekaT=-dZ%apE%#)6Ur zsw4+x3y&>j$P_EsITJi zHDR|%V^frK?3G{M3#Vx8#|rTZA?8;dmHo8y`XkjKD^vob#h$-_O+i94E1OEloO}IB z@uhNPUyYV~qKMB^rbOih-t*=u8EH7&eJln?aMr$#yYIp+CFN2y)Y`D}2Ciqp_zSyi zyveqj$6*2XCG||s-guUo;F9O@r$&|m&bHyQFlARML62qblM0(&g<6I{+PtlBBb$?AYde zbzcQYCjaatX<@T@<=k+vLqO>^Yu8tKZzgVoaqUxqRGW_U+9tPK-P$aY&`AFU=mgWU zz%M}2vb^1cdEz^9O=GLS51dawwmzy%qDqwnmC42tQw{1f^c|Q@a;i(Ok>{4p7?<}I zbNi)B{i9;N^gSbV5Wh~!B-IB&9|A5%f#d}^f4!othTZkrJKHC?jHkR$&5oVv%Mukh zyBEN`JOoJd)u^6d+}MnA1llS*SFpv&S47ph6sjq5Q3c3iKV~LXHXejmTQy}|8F+Rk zDZIAXOHQ-@B%-QsR!hBIuhIABP0txOz&HlA52>+Xn% zV4QdDr_Z-}@Z8)ei@391vsxlM-;QY$+_)UK3kl!{c)lzlzCP$rb_i8z+~`*2mK%(i zQ%>gz#^RCKr=hgEoet(F~4Vp<4^i|uk`**8{rYX$k{YhYga&b>(&Ok?Y)=aW#J z)(1Z-8LD7VG2LnpQM=`PKV_!#BA@KZzEEPfVHF}-~`4!GG}6U)6Ik#h)09MC09lRuN(}mN<-B-!WvvNex%5k z(>`vggzELqP3v9MU?l*u6ltt2J?F9qUL8#4YzPORH5AD8Sl2lM+x@QDKjVZ17RMM3 zlI(`4HRm3kc=kNfRAV&np_M<`Bz^}If|k_sFU9`9W%+;~XxBEA0#pVT5__hH_twEzQsWV@PZF?!iw_1)q>Gw(wD}4KAR;%1xtQ^Q< z_GF!ceFr+Rxsi{9_wz%N16j@|;1VUhB1Pdq$GeF?BxYH)deU!tC|sUB9wD>|Hxe|k z4Gid@!ZP>TFm5{-@OzS(Hp3<;R_YNTln|0OuLN_6OugWU-#5WOyk`!34!-^^R!m*$ zs~%V4|Cgkw7Qm^c2>Tb^F)o^aId$BNhdx|^BL!Rp*Jy_ar)QORO|G+c*|r~p2LrdD zI~vz9aM<9Wx73r4EvlP45h-5czR&fOb+ZbL4QhlA;at*(PwKtC(IRoSj&~MkcLMRmlNfa*N9)DR;GE z1~$9zk01{`ea$y`ZdC(b;bt&2l9t(0hHq_*OL0F5UM3S`6cO9!QCML%xvPD7$TW{R zi#WvB>A#yNhY8<2y?-o|BrnFrj0Jn*`6y@Qw|iuA5``G}8{@nBVHX#cjUVpY(Bovk zC5DfVD*ly#c7Mt`N`@GC6dau#M;lW;^8r^X2coZ~;ZLk((%-UUt76QP>rSDP{XMi(cs6!H&Dz%K7)gnTK#oI(S_e1HrA-NMf1+>jJa!Kz?6);;`W~ifXDV{ z2mpdtU{Sh1lj1aVuuE4Io2L_8eDbu%hG#4a);ruoEv$n5uGlMe!I)h-@L=fiVEiu% z`g`(u{}{Dm$lc1WUT|qtsb+=Sp>|3hJkZ^U@qwCEH&$kFg3BxBGFWHk_WUb@S29Sp z;$V!X^7^uC=CG6Zuct7o4zCdhMoccsjN86mUe^E2$;J0_Qr_*4b#;5$!Gy%&gf9RS z$CdSB)+Ja&)NPzwl%{O}-v>2G^h35YSh`!|eor>njOP`uTgfRnbx7*=)?QkxKb$rX zj;e4!p-)Jo3MEzYw^v{G&q7$cdzi;^BpD}N@~&LnCAIB+OhSy1|Zb$4$5 zpW8+V@;(^jTlLoXJV7=U9RoBg`_yN^tAzJyFX~&CNO?cdrS_o5$H6^MYHGN&m}jj; zf8?zmZQt;EW$hQe&o7aA7hl*!iJHSw59G>^U{yUz8SS5W>i)d`&1&VAV9J!Tpwk=q zHKkoSZ6T_zP(a$_IQY4}A<(hDuifibL&sFJgDG$Hm3GZ66muutPF-B=@r$0Dqx*i) z@P^o!OC~b2m( zSO>*FwyaS>`o4yP52UJC9VB^!I_i7x<#VwR>4%O{tczEv8nT^>5*gVF>lGCVD#4U) zz`A1*um*FMzQ;>IQ+q+XQsG4Jd0JESLY1$yMjTy>cd|3K!8eBT5f)3oUWYH6K9S4C zR}1QFYYgj(!e9G-;}d4|0#jh)EUPo!V`q*;bXt5Ut-8A6q{w z(B)rL5gd`^`>ri~gGHXL?NDm|)w~i>ynp*)q$h~{j3ALTr`X>y3y+i!b}R}|mCBT} z9y=kiF~uDtyOlRBAjQQR^ z5j6P};rUxio%onO^_$#d{{W}Rjy_XjS1vIfYTJ0J^ZYmmhY)40ug~2^bRFwnAmeq> zb)M(xghUq?E_1|TlEg>$3O30VfCegh1QPXKi!J${fBD}T+hh@{=tc*?pOAiS+r9Eo zyVgebbKFCMOjn&@y2yWOx{Uh=8MTQHTS*nlYs77OkXM5=|B#q{%02N}hjrhYAhTXR z;Smm6SWq)31|4n=vggaMW2vfI*lDo=g#A-DNOXFte28Ce)yN6WZrX_tT-Ujm3dv2M z>6Uog?S9-HvT?$bqm}Et%y$R}QbR#4?2m)jX&qE2XsgvTUnuO>Bu#M6M})|$K8cPA zTo>7X$s{-vr-{D1z;x52&?KY)Fq@&0h-6LS9nUC^$t6g1uNN*mDN>55O z2&gQnS<7}<^B?5Yt_w{1Bt~V4ybpKFde!67G~g!H+Ncq!xvb_Y2du)mrW3yZzk>Tw z>S_kLbdI)cmwm8*FNak9jVwMt__~U0V3@87ME-yJcSq3*1)E(t#;|*N`gOYMJqebb zbI{4~Z%?1AMYL#x_9f)e5r29ESw7B!R?)`KHV4GVmC(D-D{=3(@!Bm6iGvmI?zO}P zsS&zqhmywUg7G>!`-o2)FWe@92r=VR=JmjvD zPp^Jv?@Fj1CG_%IhWAU3`m`4F=%d6~nI|Jgwjb8CrNu+y+?5x{dO)g2r zng?>M_-d2V@$X8M^I_&_&|?G7K~#rIFvt zkxd~))2hR^-rE9dsrK`fH3C?4kVC_bP0wHK2g zg)3QU1{|=}4eWptIk?v7g{A=HH@JAfYvc!?BnhvfsqSNBv<>oLV0p91D_a#~oC?Nj zva9aB4MN+^pcnhOLkaC!RJ6wF76x1|MOk$q+`_rMxQKUBYl{F7yjbe@gMRnKusPN; z!j?>Gp8o!k<%^1D2zdLoY%WpxGxl_)0aCKN+UH!@#}E(Ch?zHIa1Cj8Em8pW{%v`d zNT!J2voW$a4HiZw@j{vM12l_U!OvO8-TF0O5;rJnpU$YhewIi5-GzaVQIWw(UL{Js znyO@M%!fqLg1_R3_N@3yoSQrp-M&N1f0EID>`-Kx8j_+D7yuuSe2dC7l@09A#sS6f zT70W4d#mkf4pbMrbn1ZbryDu>{^zNPo!I7;zwydY?D&3H);o3D9uRl`wZ-*BtB+nL za?T$4!iMJvJW&BNTdIdj6pkF~4r}faK_tuxQ;X&7QD$dzd$Eh=Le@xU)h1ias>KpIE+uL+r85O12NdDf%{B5Vmfn!?6sB6eK80jzfr!+T^P^m5 zKyE2BQ`+8VY=t17s_k=CU{{vllo@H+L4D?p4}sCncCmB#uHuISUkla~rjjbPT0!$V ze81!OzJO8C32>LI4|)BEE$=e+r8y=2?!oTd&zP7rsk%5?xQ^EWj#v4YEP;sK-X>f8&Qyy1{q4ayBm>C=?3ZUZt3o32)M(=#N?a{(}5z#F?m)YcAa7A_*s||Y#~1J zyw!AUdClKx6my&F(Z!Jz)N*=1H9f(I(rph}vfWFKTEJ&kvD|skT_X3;9Ht{MnCxHx zZ)q6u45I3C*9v-hqWHuM1T})vKMwW9Exm8xbCm(h;X3&G79o2a|EqbSs+|5w z16@ImuC7&xO|^Q!@c;Cu`2Vi|CNmq`L;(31Uut;WH-+2}HNWgeNlA5q39wxKh@!=g@;AwfDZxE17wbE*VB@uf$r%&DZT z^cS+kPl1J1P-L?dFOM-zk9sH4m|FM8WrJ5zMc}<(QpRfqf{0 z<+$@+dK8Dv{=xfW3&p1hN~&n}dolsaPG0D`7^M!Rn2DN?_GSSNh!R!#S+KSS#H-OPtW~tv4*W6uqgN+b;h0ROCrqKuhvtf zKQBMzJkrXP8`5w7won-l@kVBkww_jWQy%OJ`r3wnJM&BQD$mVcH22j%bV)E5V+hM9 zy^CIS(qkSXYR`0a_T&npTn5PHf!c<>I*3Y>>ORVpgWTiXY|b>`8gnOFVy_V~f6eIA zm=m><146{sK8OLI)oT=L7=8NNi(1^Z`p9twhB{1Q9Ub}=ow>W;SKwOeaf^=VeLEH@ zHA;<{^WNF}JajyOcX|XJ5FACNcIVta^iK-T&6R9Z zDyCsI$(${!IR&kV^l={^#zgQ%>I08X&8~o|l8>&MKRWJEwRpu`Ro&z5?(SjSFZ?9V zce|0TC4nvuCYbKtd>YXvttd>DU+DrNkQJRrJmOON#4Ch`%!JjbrANj-75m4@j&GDZ z>lIsYU{MM!c5HEn$;3dB+R|pM%rcWWLWIgaKR$=tO!#8?;FkAfEFAr+Zm~(B{CBgd zbOhp~9}W>ikE}7vw20~Bej2qfXb>|tju%B8*TeO-U<^?c>fub%V2_9r&xSHt8>F>< zuBw?-Pg+rPn#T|4dDNbr<0$8Z_*$60y0#4-GoItm^w(;{kz18Xe0s=j8+V;sf1x#aykew0E_O1&16U_Ei9Xs6{#Rkx5;WX6>s! zR|SVR-J8;OrL0r%DwezzqeGK~{<8p64}!_rk_V43$ef)2u8);rzg4Joy?-*)$eQlG z$CpEw8ExBt+7y&q0i;$L7${=wP|UI|rC%eaB@N@iMr8}VpBr<&puIr1Kh-&9CK@C+ z(tneElfgyiu#~R#@dD>$WE|$?F6`HR90v_}L@H=+b(n$rPI!LwJ3Y6Rs3&D|4EDCN z!&V-dcCVn`G}_!fr4ewpUi}--BYjYHysijrM`oQInrU=@U{x>8R-R*Kk>p0dzP6mH zRHHa~9o<%$@iqeG{g~-{CrDYt^c6qEE)H}DQ0(ALSb`N2; z!j@Rw2t7)wXrf0KT`2BP8xQEes!SCL3rNuRc;6f^$$F=UOJQ)_a5Z1n~Xz|!> zdW*uSC&@}JVF<59a%Z&&_DwkIf1Yr5U?HhrkW=ON=-4Dwn!7#4Q<7Y9zfFxM{C`8#W($AZ8 zPuQC_)r_er8cz{cFNSFx$436d0X~f4`baA_E$JC$8lPs^pFH6-fKQM>ZkDU*71cN1 z8N8cs+KA<}Wk3ergid$kU}>R`m4OED{7sc>0m#K~6u&yV{`Et2u`7Azi1e|x{PjKr=n`n;waK%17Bx}O3 z+~Pt%zih7k)nw3fLwx0FTIB4MA*>~qRWAz5_rjF>iY+W^Io;P$pZ{T)P_h1~Ja)qH z18Z15Eh^aM!g_#BXE)^Hw2qPm1-Ah0CMphFo-P}WK8-1wO=@%~pDKJ*zd$5IOo_T_ zF!DMk^8B>F#k>`lpdp|oEBqsc1x~(1CdP=2hf9PmqnXUTlMW6ft6d}u=0#t$+LD}+ zG@rBQJ?=ql2?Ufg%@$pChJ>6F-aM|JfQFU5C%KVoN`ugggCd@~*ionXR8W2*0Z*b4 z%ZZZL>Y((aq_`SC4D=QLhzV{K4QGtN`Xvve+bMzjYZR2cc$Z9{uuqL)?WiyJy>TZE3gvuA5D1%z)-Q!W}-3R>}DE0N8PY)y`I%M!x&j+*#& zD78FlhypC9txj{9!Sz*vWiqEXEEh$;o@mMA_Y=l&z7K_gE$S2s1!pl+^5rq4r$C93 zKb;6%cUs7)S%K-Z9>rlx+L{C?_E>)Yj3%+0I}tdOdi>SR6%jQ5fK=I~Lm` zw2cbKou}My`!Kxi!2&#zk!-4bBWzmo(=5)fUC1zMLahpziJO;M83VbM0cI8-7W|Bp zeG*^{XdOH~4K+eq`Fx7aE$;TTHZ0vu zZE@ydM?NW7Wz-W?DX9QmVYT^Q;joo!6Td7BuF+t7DP-R;*HLLi76AAG-M$OKh~1F$ zex8J)K21e92KwZ&nn@AP9m+}wF+Y(|@$~}<4G?F}MDQJmBrGE~vspvQBQ=YMS2jqX zRH~-q_^e)7u7X@)mn^g=>fmCoqx*wy&C~V6&Z{h2-A^}R-+aI_X7~;3|~VlPvmwMPy25w`wI*tY~7~RLHPI0X9y@NqMTv@ zy8ZK-XyZXV&M=Tg@KgsbpW)+w7VubsIc?6qIR>4tUp$Yrd;mck@NsWwmXxZIZ`h4A z0qbe3iR~o;4EwhZxE^HL=iZFc(-qFb@yLn#J>Isst!v^7K_A7^;SKpi-6C7(hR)a5 zOtj1GMe7v$i?qprlXp0z1GnxlQiJ!StwL%(HV=V^{R0E{-D}!7C68Sp%eHdu3=6%- zbH7i9H?ru9MZEmC7wnQUA_*d7X0tkH_umEaUkD2w2Wyul0p#f|z*)mEUHxawLPmrL zM@`v+jFVWQFe*}|{ry(0w@z1UtQywD*SPlZI!x|X;JzlW7euRXoCBcanDKEQ%`YjxF14`qf5(Ib31 zt7<;~Cy<5HtNo`gY><1Y!QMvHx+z4*b3cr7(fXG~9nN#$3}bh(rBRr#I?@3RqP+qbhfdRK|&rz){Wk8dW`+xGsbu2Psva$_S6_@s?7z~;P!O;R$}z<4<_ zu&`W=+*~XMRyXWPIp5=piWdM0CG}14GpCq8xx_^3E?lzWAXGki0XyTeFu}?*_xDbWZ@3@O9y}Y9`uJGxRjVC(M zJ;{_YC=zS|uLn1DnYZUOjqou;kSz3Efd2qn>OYaT|Kt$v>kh1{CZL%Q^Jps(v%aT^ z4GpIP1zfmC@DZomv7!;zU^@k~F>J_xp>kknf<|ao=b*HaQh4!o`5{KYJeK_DAIiBc zVqq#xt98GkjsI*lu@G|HYH9azrF%{>{kUO-Xnt{XA@}d1&0xVLx|;&+(MAjn_Av7=$D2 z$Z1fl2jr1mc}wxBwTrPfJYNqzlHU+NHJT^=frat z4MS)`zMpj2`4mK=1{p7-b+G5nxnI7i5_>~`b8eqMeM#x$NSYfJ9)f_`K+nsWl0De) zEbltn*6kTEdnE}DrBh?)yeg8I^I-zEW!yh48)^|0yW8j`b$IJc84RHxuSk{VOa?^2 z6P@@6#Yz#VV!z7tF>|&d)?(Gso{1eEdFOM>g`wg|kZnI@d?bns3h_PKpe3Jzvu0^> zwPlJiT^v!%=jYb5nR&rYfJ(Vu1%EF4VIl;X~Li?>ZOM4V({!^scv5n8pY{TDU}L9Ot#@pTq=b00#~ zWJT|PQV0WtnkBB&Re2H|4r*FyYvUvGDQa1PQ(izRT*zRXS}qSPb3?0YWY?y!WKkKE zT`pVWT|KD;T~n*r#>=;AP|UMmted&=BR>jY?k{q3VCyIV(qdp zTv1)}QKG%j_jWT2a<2@RaEae(7#UESCBNZ8uKq>25+1eHE%mXV=}~)h$bTOGn$%UEu!H4MtrNoTBfrX2<2?mK+!Mm6*Uw`X{Phz?LBncSGKLf36le zr9o&IE9+#Ct$v2eQd$1TTp9*!aX`M%>(K+=kt)=K8ushaR8EqIY#8MrZzyT#Ni2ml?dcsP)(U^_>ie=Gflc zd_HDGlM((=)vivNni#?Vqap|Un5%~UG^*-X4X&zL^>>(JpMoOhIa@`FBo5Pou)L>zDgrzUU$=!1voBJk^9o`Qb5EX!E#}Wz2}p-Fv0}xH z7bmogM5=c-WA~0kQ9nb3b9j;?QG;I2?^YbHkcaOM$CErmZ(nytsQ?ZWPNVLrGVJ0S zViy2x50)-T6v-To6Y6=Q4^Cs4Rsm-oU;aE7b^MB=Q1+7_%K06sWm8yP&pPXBum3!g zE(?g8nd;Mmt*j^j)scPm?~&bP*5Uc0i!}yu5SBU{& zmD+3aBeMRm07Bq%_02hdRKmClUYgEW!|FH#9QQ**tZe4cO zcu=}zGKn<}s*_DCFqvp#nDn-CcFI3;jK@rgvXKk(!>xWEG;9v_WE?0v9q{8@U!ludU8<0PJGRCoQ4GxFpFqwG$_-NG85mX#)w*Vf=zTsU!Kf@92N8r`530E@AW~Ex_z9Z7%c2BVVUE{{`;`w|J z$|h*Y%C7B_l)W21A@3_0h((+8{(OIWE#t1(lLMuPJD9bHyNvPU^>x(P^^V<8K#9Z* z0XYiFi*mh`(^3}3Vb^RgrKjaZ^Nze=wQslt5>ywayJ~Llr@-b98MjIl;n3BE3TC6V zg-1*lW$*fp;l-RfC(XSyWyBwsDH763j2zAkJ`CtSp7Ht847h*Ex zG_5OKNsAy5auw{KWY-+e>8fuL(*1zN38xCAAxoWPbq(`3vs-bo?8=iFU%3IaEwxBg z&%-cl=DqF5`vETNwW(0Xk?_1Cva!!5#v4&At`Az0YsDLg^9mq+tj{baMLm~v$-^j| z*O@G9imy$%V+|U%bP3b!)M;FjnA(e&lf^e(-&mQ@AKsn6D&8Oo$y!lQtJW^&9`d<8 z;ToGV#e0VtCn+VI7rMx94U#3&Z|a_QL?&v>M{;iKl$)9ykP>J3gIx-*Vc#5AHd#(ns%U)8Tc*ZZgRkuC!lb zOSu?M=-|0C*{7QZ>Srj3ex&wKf+b`os!#QN;Re^HI;4%-&gFc!<$9rGR(sbel7XG; z{DbpV)-fovXQ9q3Xj+}jJSCfU)yq)k))ev+*rm!(X1XA8rhn-?h}KrG7gW`dmwzH0 zcCkDt7;*fsk0)#I3Q>zn7u2iY{MOVr`XAL^m#JmESzU#q6(_a@(QMEQL{Hpijx5wS zELX&r6qq-9mc5#6{aIgLlXj};fGz##aP3cq7}Uv)ZnFRyriomB`)*-vhQCtA32LKQ7~ zaL8n#@n+sdfIU9+^Uj_UPFhp>PxeXe!{kqKa(EG>+-a$mkBznF%r2Xo-z-Nn+p}6t zNOv^jWJ~z(Md#9JNy?ty5WtG!CE_4Ihs8&fCxMGgw0C#whvFP&%%s%!5kz%o89O_k zk({NpcV$-c4KU5`N?a{7fi`*Gg6|Q^2#k))d)ISFbgWrl{ zzA+6$BG-(tn4~v$?R_ z*usjPc&=G$a=425Vyx+LzM?%~f)|$O*GkJA+~Cie*Ty*G0ZmCdbSP0j<5@W|!mfTv zz!Y99g4gz7z6{_TUvkH$$I50~f^k%*431l3HD=Wu-noaPPAN`M-APa+M$E9xeb{}f zQm5h`kb5Lk+E^EbGgSFigLmFuK69U*x>{v_nT|&v8v~6_=AO>TTCt-@cC*eRqFTiu zX{=5roTmA-BwH7j{q!cf7@*eWPwI_c=>d)nIv_j$PMWaeHeO}Tc) zdx^YW(Cw~ZLL76qlq3Y2_K6!@3A_ndo!3DvGRiJ@jk>bi%#ieHns6T2cOlAGmmo2l zuEfji?kmoy zW3JCbl3Y6S1>~2(e~)h{wm1LtJObn)!Pv6yf2aetK{Zb$KUuRxd~Z->+OaJ}?Frw^ z^$iaMgQx8!Pri{L1m#+Zhw+_!LhmiOF$Xq8uw4B|e;>P~ zmjjz*A)~!C9J7dB){+7%SxU|~j0Af}jdc2ZSBANK!_kTvsta~VftdrU3R9z9iwNY(J&AzgNMuF`*mwC% z#}p}C6m*J)GsT&gqAB6+@j9b*s)+KpNl^I^w%~V;Q+x*b5b@s<33~SNwMHZtbM7G$ z6!_P#N6N}Z^oXVtVh00#jQ7SnpAnh0J7sqxY|~G91$@iOuVKW{U4=xwp)nfM`Wj=6 z+seG`SsFqlt56vePo3E$3he_{2Rcb^O=?T)yOPhy*=#t%X&r2*Iy$uaD;-#U?uW)Y zb7Icta27_ z5R=`t_O5VPncL={jRr~paz&`)6Cl|``18q#()o3lc=mid1T%ok!=+@xnhfL`c5Kx) zN|+-*<^#Gj<`fy=J%&HGoHp|Ex*#=(mw5=RFS6!rboQd zJ15t+XNTm2D^)NDpAwhm17sW!sPbyCSYCmH@-++)dec0Rd-Mn(7n~NbbpES_I$Hk( z4ufnd2{Hsqi`2M+mf0g1bv-(VKw3e9R6-3KZY5n?#ttj`8d`pU(OoW!R| zIkpLrZl%fB6X=`47}0%*4)euP^6k&)eM$FU5LpNJta9D zpf2Gs*K5wrDfQwjsX_ahAv_kE$Qk<;!WL)V_otjCX>Jx)p8{ z)f0CU1`Vj^zk-}H%WqUtkm(Z#JLF3_POnW{bIxrEwE%vzgNKSdgf33P7vkVMw@3Ro zJ_Qq)6eiN5Pa#+ltiX>`D?8?PLOg!s_PdsHB5aaJT(FWD#e@0e7f>B(_M-79Vc`RA zZ|RpTtnQa9 z&+84Po-P~OT=S0rW%*evZ|ft@XrD7KpB^)9#Us~!;x4RO?=It6f$NlcmRuG}wm7jM zH+4F?dwo1(oxAs`hfm@;<{SRkdPFMQ+MJzB&o`T$0X~f*5~KVTrzbzcGaA@zKRaQ?ECT=^f;H;~$kGk{3*)Uh%%38T@tC(8t>MgX?hjaGBTksKyY_HQdqavejmxgV(leWRm8>`imIm z?AR%7vQ%lleb+?*#uz4cK4rx6TcI4?lBDG({Wkmd((FX^vmR(5pl-fXwmHd@!IrxtU( zS8w%&D}qz2ngSUaSiM!&Y6-ju&)2mI>;nOqo4gU`y!rb`Mj_{n8bA2C@}mf8?w2i& z;L`dJvtwl&r0eCX=j@3~Xe8ibuF16Lo)6LKZQZjgyA12Q6voiL{w-tUJ6 zHh=*`S2WH~rAUwR0nI%}3Rk^R?Q34q~Dl=smf+-boD!q%k#)npc-=xS)P8Caz{1N_G@6A&sxfMvkfytE;_y<_2$LWLO#xvl zq$cazKz_Z)dv+DBB4`N~qS+GJtdU-G6BS?X9S zM;mv+B4IE{%i7-s(!Hb(F#u>ssl?yWXgMR<)68n+l0uWvMx@b9(ORi+>^;a-B#6`r ziRvNI4G2%ZzE3-ehkX3Mb!Hb76rBtttkPq#0&!~%to}0la|wWi757&?lw`qmrH4_q z5UBC8Vs!=gY`To^a{={weZT5(Uzim$3cs)P(I;2onwpr$CzB32&vg21dr3N#E!jl1 z2T=1BMqxOSgvhRW^gdu_#%K zfz~|Z%#BSr0>?@2PqV~PQUM$~pcuTty$lhl0a&K>d8l$t&Y4DLGRi-Kzo(Dn#~^(; zP@p7jWthZRP!H2OMhe!^giYgRw6&ep zu}y6M9Cqsu+s#aZ!UNwEG3aV$wjhD3jq;5L_EH~Op5zW?b!DUx-hyR?i^`4YcnEJI zJF$|p^B%eKZ&VE&&^{Iv@47Pu85;nRUH&y~7kBpeZws9vlHw7HI)ohhtAg`E4ermT z*VS;p&%-Vit^OEbf5KSs1>!Y7IXxW{zq|+IXih+(K5sQ_rKW3(!92l%FJ7*e$6+|7 zEZIHSg#kZiw3swo81RlvI#P-Aj1#rsYt66F%{E>3OQ z`Dr`vSRB2t$o26hhoDm@h`=mYr+>ICC^9G*41-RdB^G9CmEo8$0D$&9;d^n!X{F%8 z;BLUkrZt~^S7;6u%E6ecv9Ykn_e#~?gdq7dPuvWH=9f6`4v>T?>E*i@0smbJyztr+ ze?z@mBhCYGyN@y$dB6i_&X!Wsa)~%yB-vNxzp@!(F5ac6>q={#IM1KP8sx zn9s|;bIZyVKEk;z`+C;gKQJL8gio9Adl^Nc-QAk}_mHS5?)VG=Er14M{;Vd5M@6y} zvYWEDdb_GK#0}0XCmh20P3|QO8$6Po)BSojUTH^Qv;DLvGon z{P(-ZL8dFVS9slAUGi_z4Y#)6Wi41^csP4q;VzHRhVmBW&c7K?(J!pHkl3f29Q+Bf&oN zn0?6+85kLf`1^R(<3V(Ze1duZ{)7=lojj3|<74Z+f!Wc@qBJ>m9#e-}WGOhKK_2X$ z7Pb32#<&MNaxyQwi>cx&=Ca`ihpuc$a$1Ahe|HX2CJ$8T90%*|2rhLTj>BInhsZgLXB z8xFW5c>fw$m4^{{@mZzz%e-%9`KkCx-Z?`oPdeP7Vp1YA#-=GbeDu;wIe}$g1ZHa& zHVGaB&~W(V#24T^O$uZ{u`IMMdwjA?9lq;j_&)BK-RgigOsk5`VJ+}s{vD{!By4wk zZGP)|wRsbaHenS7g3ueAn;}-T1ntq$HhoR%&Eu%XDs3CmWvirA7I#5<0hmMb0Ja8g zVJN!^qjXBnhcI|A=&L~Mb;ztIu>pCMLUd%h#HXQu#=vi{AeasNQpn_y>%aX*hHUx% z-z*g{)xNE6?c(9d$ynXTV8S6QL8*pAxd~fWm!lJ{Y=E&3=z0n02YpMVjy;rbeBdOb zv}Yp5++avqbW*O#5J1AH_qP6Q;HzqXpinkh<3+pN;>OWejbY8{Vs8p{oUq{!@DK0X zMI_fv%-H8sfhIjYdU0CxI=X2?QnRI*rjM7u{q4glB(nMs7~AB%wc1;wPw*{_v$#@Q zM+*v-*72YDCg3Qg2FHdrG=3D72!|kCY>Y~(H#O?W2?XP$A{hv4n3J@*8_~#(k+Vzv z&}kAxilBAg?uGHN$&`wllu?q{&J6GLhLfjYl^UzvqA=S~*48 zh|0qdbGb^SUuk46z0E@sG{BQ6?_6Oox}KHpJtnPiaO=p)6xtQQa(ui zVqAn=B+$$P8DSt{i_F$slkV*yXHfa|a^T{oxaIS20KDw(76JJ)o~?~7iEX?6rr>K* z{i2x6LQ|LyrzzM8QO6BYYNw>l+EJ!ud_7)6qmp1{txDl_83uIPDSd>^B7PkDi%367 zs>?3UTEtJ06o<2K1P)s>8S79dWcCVc4+bWj5%}R~v)(HW*Ebs7)sg}3GUA3L@Z}U;Keui>;E&#=8HKEV|%>1N0Lp+A;ys%9N?mHL>sFh~(|c ze@4{Ql1mjjS13D8@eujBq)zPZiI7~t9em88C%thLowA#9u!{IL6^2;JvYke_CN(#~ z-Wzzlc013MUbxX;J?yIYYsFzftOi-DSgI6W9A#THBdMOQT&FNQqES!}PlUyMhE0-% zDn}B%*$j|UTC}~Y?YVn z3*N#?ai+>u<7ZkBcpA=;Li_+GY$jsRBI=QkTat%5{yzB2uOn8RDirCVrmLX@rC?w{ z;WKyCpgz26s$g>(4>tsN0g!6dDb9H>FqOLR6@?&4wN-6pSrM8>T{9gUBi zY9xyex~wvQJHu`GF}3s=^MiE%I2dxSPe8`@Rw?C)ApU-cfP(He^Qq6ehEym`!hq-D zp*;t&qGgiVhQ)(#?6douq1YxLb3lIGr zll;}POI3%eq)Z`R=(I;=sc7mpD*8_9(cHo-GNNm&pHajG(WJeTm-`7iDfWm%J>CW%o(0V@z&2ucC=UXLP`2@CioLRXZxQ_*81QoF<&oeULQL$-_i;zBq@G=chRTNP!a6>Sp>_im&BZ%o1sSX`ZwHVSwCk$iKOLv)?R1)!ta z_*qO$67#!!l(LW2c{_+BO`nQ$x-r<85W^7}NA6&03EG4$<{~CGoC-lEn59=sNf0Gi z-;||J3*!-3!-rz|`(Isvm{jcnEiHEZ8Mj>-B+9;eN(b*^D3f<#Q zGHK{CBWiKW$&mDLWStKt2>nP6bbTYcBA7M?h#tYk)%z4)EMva|rzWFU6M3u=YJ@`+ z^DS+hQ@!Nmm$;F6S~*vtf4NGPmbpB$ZNRm*WJ*VOXQ}FOQOMlr=XUBIZlj#YhBH*< zgV`OIOwpYmmqTd)sTqJX7M=Ymo>y>X%V&q;MHIQ~9iU>v=6(Z1tFJuReM0}?rV+F+|yo$hg@w09TMi*ik|Q zmVQu@#Pvv2OW*hIaTOP`0aJrp}%qE%{~}g*lG;$>`<2?zc?ay2Ck0owwtf4FO9+1;MQ9=|J@TPi#-zWhQV*KA0cu+iHd6?J_WDm z--aX3_;RMr>pT-rP5fr!K2*-vDo8rl9ko_>&~>yhzZpG?c6lOm zLhccMm@wxMHUChU{;gK=L7~Kq@8>>hx>nuz;J|1Y8kV1JaY)lSg~#d%WL5zQA^M(9 zHPmO`1=R~IjPDSp{Cd3 zt>sAr{0*wtOH(^_J1M}29*z=E0l!g-34dPYuhx#9o@MYZ?TF;rk^d$RtVuON>Z}Tg z=)RR%{m7u-Dc=$;+^Fh?XHU7XqX zMwwH&HC9ftRtq-8EPoT2#3p4W0@WSnGlXZIz;9U>B-O`W&S}|m{BD`(DeK zPF}t)xqms7ejYv{^c#0^gdv|`4P{*X`R`nh)>eD(xs{wCZGGbImTPiQ8HRKPApp z4qV-5l|nLrYS2JtL~pUFzQI6@%j{-sT0zN3$5#!!B4ksG8_1vpezpylk5Fg|qYTa7 zf!>fNX`6=opz(8m^)bhO!bw*)eLCAaP9_IoNBek<#p8D>2;Q9p|$+` zLe*VhR@0W{Md39vZD?_p)%lrU|1@n40Fnf7k{B0qH?GvARSzFFsPrxOxcsv^e&YX! z!gTe|m-p4U~XTCIoejb=g zGf?_*&O*wt@G!J?^ZDz!Coq!a1LZpvUjzoJvPKfjDG>FDIi80>34;?6sbm-lg9o<( z>m>%Z;m^7t_Jwc~qEf3sv6H82r{_a}rnG0qWm9h+e{=?-4xmiE_dG(a zg3%K&oNX6S=I{pR z|FpUrOEZt(sDNjFFFMSa$}8`yJDe_USlp|qY2f~B?FSpr^mghX0e{#E!iv?%Ba3QA zrW;VRX&jN9k}kPqqi{)(?B5S$!|Zkx3m1OyBG02W83|hdL^_c+i7Od3Va&Bha9VK) zYftsG#=Bea{qkZRnIzrHxGuADcIo4pN|L%5XBTqWdD1?%5$WS&e#@$P;9ZMCg8{Yt z04|@vjV9|R>^9gNOzk0U(N29Zgy2agoeIN@GT3ylP`#^ZWCMG9X8j*t1wf2KJJljqTxuX z@I>NJu3--3iPotB+U({&kJX=M32BuIfYKyDUVNEBM#9IiowS1syeswv%?7xWhei#B z@do(sPl--)|36~`vus8G|L%3F# z`5D5yd#H)v_|9^Yo!WFEdpE_j7N)dyMIB;LsCxV7k}}7^_!~Dj=0XI4$ulN44U^FS z-KP0s7Svw5LbwT57(e`Y22xa(bW=ZtQF-B5udg(Uyt=()y@R0$ylI#lsDG;%W(A^G zjInuABef>3=uOGb%#eY2o2dfSHETt63O@~0s&^L=IH-SmW15~i|7NhT>xtT;$^sWS z?G$uodEID-B;lHZLs}68+QwTPC=|d(yFzodbriA9AskTuAKrf?vf zlegKgknUvf?^Le-mV&C2E>3>+hGK)nv>Y`Tkc;w&uo=0^UanL(6gt*zl#k}66TA$4 zJ4`e5K&QOp64e2PBk6R6-j55KtCxw$XsCY`am~3e>OnVwL2X}NN*{qmXB+BO-ihmT5rEBkShBvuc=*2m2!HQ=C6)7zV2c7{(=OJG*wKA1?{++%vW{_ODW~8PC**&ebmbYz1Z$;Ho3HS= z@-C?k9y?Y7?pP?V1+gMlov%htJ%3cie9P$_F+obP20F2KvaNAcd`*n6M__fkoE|kv zA*|^dB>R$P<#O;@$ey4w?F!~cnHcfXTfOhqwshT}SE^}0_wpe@Lw!Z}wXzMimSLHO zj0ZsarxZX{{cliF1cWkS+92c%#h#|J2KS$!!+p!5;s!hIZY^p@2A>ao z($2Y$>V~$3XCrx#)DCcY$Uagt5|LdpqX<`jdF;_^R6#*_+9ut+lNID$`mRsWT_cN0 zDZXPI{mT5v#Rqs5-OjWB>Xu9$LAQ)Qb~N|*659=5Vb6qc(K~819?=3@Vj@{{ z1XP(M17u21skoh*SvJo6kUhMrNlVn2>*a#72?k`rYx!O8Jh7*8qv|WeqTHgkQB(v3B%~4P z?(XjH2I=mh2RM?_-QCjN-QC?%LxarF`Hk;;^t|8mgCEZT*EKuVUVE)OV6UT~Qq_&ASBljP8}^Mo@OKHUT^#OmLaF}ZqkH4egXVY zW;*~;A~NA=+L~=giZspxBZMiDRauW4^~8?@LCf|Ul(IFqh41XOe;)7M3A^Ncca}Yx zI*!rDZSCMG3~j`vl#dW@&wV?S&H!h*kH(@QoIY&rKM^Jzp4SId5h=NC2hMah&g&~~ zC0uYC(2se2IkQTnU?;S#pG6McZ$0mr)xShkiGiZ|Z1(=z41C;&D*m?oGx1aaMSTBO zMK0F0?|8l+_&3mZxk@d)xyYVp)%zdGzjz-B4vu!hS@mo2ia3S+C&^t~rcLpbRWjG= z(xKHJ>V-6{FZC5kMCyXJyEZrjH<)Y14#!#RN}#zs#7e0r`02U4n_6YI;Nc-Rj+Ann z)@c0_OZY_{%LLqD>8q2DmP;kQY;EJ0F}% zgh!F-ri!&ShI3Ejn7e`O#eNwRhitJeQbwQKa(5Mys}8ro#9QtUPji$PX|$2dD*3flWvhVo}pP|wv?GLs+dy_>X(11GVHIFFKcWP zxWDYv%!7{yiqx-&M~-)@r+T`h^KV+THxJD@;hYv86Y-CyWj>Z0cB(lRP9T*(+QdRm zhz>=9Aa#M{qdsUmmU>m|UE+`g&JKea>@ODMmuDOb3JT(&TTmLI>~FH;fonYUy7{MW z0JVeEc(VwE$o(m~^&6o4DY@wgzku+ZGjPcUDo+0*t4@tO*?w0rx6`32F*l3Xo?O7Q$9Km`jI=ph_?2y?V$>%b`4*cug_tl(e=i0;H|M)%#7ww@v|4lhsm1+ zHtGL*o~MdlIlJBeE`KP>=`;{6=HY?Hx%JN#$_gr5Y>5ITM`^L+bW9f;3e$bmkf0$G zyk2BbiTb4NpWwaZ4F;ml0=Uz$$V=#ECHJd`k2?{nU&HUu`;Y!gi{gHf4_;nQZ@H$N zD!{5vhq~QmRVvC1jE(l*1xWa=2=VpXSR`&JXk)P(0upZ z-x~UL5Z`T_o7jU*cSS(zCUgk9EHVrE@^|5vD-F~nu!uwl^J0EFQrzQFEVxIL|Prrp=W9 zvGQY#gGypx`33vsUe3M=z2uemcKTKA?39cNs&&Ab3V8)%2D!|K)*mGxe~(rNoX6Xp zmwbdqmTRbkffXVd3f!M1sf)zGFgX%^4fXVZqF0~33A|i0s2b}16kAj=+9_-ERi5*$ zs&VU(;m>jEz}g=BP7LOD;rR8y-;uN?&A;X(9wbyoZ{F?5@x4#HqB_?rFD&Dd_}B5q z`#XFCedYu0j z&x1BR=UwA%MDup%Xn}^)F7Kut{I(4Aj4r;&&MFMr&(HeHf51D(G1&e^kvD<>Z0MCl?V#j+NuFS zbr>_~(nK*+f#rrAxp7^)fDHJw**ZG-l^+n%p1@(?ql!84rlD*h9=`clt&D7Ff!NRw zZ?v;{DfE@N91LQnx0F*IvMY~YafqFni!+U6)AY&MFN_&BXGAn;4MH8s^-k1T*x8tU zrOj3r+A`C*X=ClINWxOyQXw$`1sdxtA>Yygc{`y^Fh>MM*AY9;ew@uQt!2ar0_(pZ zhwS@^*}xDU<0d-;7mvVoEOE$6;ZdQd5Z8$~m#tugra$lUE9tPuIwSj{Rtq?eO2GCQ48s0M{)gB{$hW$E&yJFWaN0Q|BcUM1P0(7c)}tBPwFu-!YDk7^~m6jvcyZ zW5?~0FG@SevJ216uogcu@%Bd~H!qu%%!8VnHOzQm8q(a*-&k_J8-J80Hi8p}U}C`= zQ5ZK-maOTT$%Puna9(8at7oV1+~<_RXVE>9%3#g*zE2aGZ zccoF|Ae3vjy>mc?caNk^p}S*XsN(X@NV0`16q_|^sm@)DF2w@Z(owV?I>`W5^j>vO zj7G#q0Tu7j&c|nb|H@YwQY2b0#4?ft5P`QYeQxuu^cZ!HRdPPmF&ZLL9Rj_3i-zf~ILE|hWGrn|U0;y3CnK-%|NY2x2(ZgolHo1Lq7y766s?x9W;2XXD0pOi5pKP9!1 zUx3Tv<~S?RRSRpNjQLYa4^QA9*kzSm=6oh`YbQrSF&(G`DnT^x2g&iZmRG>qU}hW2 z!d8JAF;aO)UB3MT?T=Pai$J53m`?iixV!D67kVt(NXJ0~WR)wB_VZOk_;wjsf;{le zwL?E3;ZZ%}DCCKX&H42N9NNGwrjH} zJVI3$DDNyQ;S0PY{_s$`@Y#t#_ZLt{#eWyK&K?vcV-pBfqJzrc_BL)l_rsZwaj0zF z6Ob`wl{NF%(Sv9*?r|-}{-Jk2yt-s-S8)4j$fLqQqA*Je+g;31xcl`rq2!C%lUwxa z&LkrOdYBt=B=+I6TaNKrz-k4vTt6G)NvV#g0twB?-JOFUVIv|?a(wrq**T5~qtVbd z^6NMNFX9kkxzFrGmIJ5lrqRV8P|mdTj6E#T7;q2~SNTt1NKL$H0dFm?P#+G z!-yjg55G0NdQ{#Tt6O|{hV3E`+gHG<+^!HUJtftzzb?!VeRk(pVt6yBz~t0TDRY-4 z2yx{*|4yL*JNeWvM)oK1(SuE?NgDlBCO)2Vh-3|Ah}!{1s{1qGFm7s-d?IsP!bzvv zG?PW6@ETft)>dtm{!HlD*({pe@yaGlX67fX1=4`1MaF5UnLYNq6|a8 z!$J<_GNCId9Q9}hid;O1|96~i;-JKHy{_M)ZH3Q~Xsh0H0bW4QzgvM1s;C}M)GEM| zP+X$qBzzb8bKe)+VE*#mJfPjr_N0_X3FM7$x2=ippApIIk9H1szJq-af4!$Yxs z+kk1oja6Uj?5d;rgV(I3m_0TiR+?^vgU%sQ^J2_Spn8Jj-X^JWKPf<6SfzBG_{xq{4*|j#osRG)#C{12K9-1sU`Sv$Hx(Sa zr|S{pmt1Ae@W#oclTn(aJLcyut}qW{n=d^ydes@j$(mQijWtW<4_8gA(NIu&rQn>BqJ4ziKc}MUgVr_olY3?H!v-JVjY|s8>zb8~ zz#SN^=`A->87K#`Pf7JXwrDJ#%< zb$EYFyu)AiL*mm6sZ4r6h|;^me}kNp}aW zB)h%rt$owoj!I^U3pH~t_#QtlytmipE7TJMj6Z{1%TC04CYi}NyYIYB{3q)IV}4SQ`Pcg@x7{_9?M$z(eRa$8Djpmh%?AJ-U3D} z-}JnrMD0EI?rol!l@1#`#5ahLfr$c-u+#Ttt75+SsG3AVAwIb-F2$T%vbq$7^XKCg<|c_N`2w4OYHQ5osKi4W zGUk<|GFxs!t-T~|UUhkiG4YUw9iu_#{UG^t2C1ypbgneffwsL%OAg7I&*ygX>_JSy zzFAABuIO8vBN9_zhS4OseaF|=C&Pm#n&4DWUH@#%u5IAWx*PN&gZ2OAf@`G)s3#>Y z8&E9Yor&(1#>>CUpsNOWlOdnihXZ-)?G>r7_rqkBR^{;Z-K^v-xThHLX%@0zkZiHv z66PlCDGy5}rH(*jAymQ_jhm`7lftwE|BBxp1FZeLxu_f}4?Zmx_0sC1THYZg`4XxV z9+fn?fHQLv5JB}g*2ea5Z-0-VWI-u1m~D~Sp>GOH!bXr?V&-eW%>Ko3GZ~Q zn|DiZ0FW+$5kaNrOZ^WK)OL+Z-m)I?k;X(SY2HvHGC7#yQe9MB1J5)i6gwju?g-yS z-Cx#n(IavEi!z-Wjq0;a@#Ge>e(_DG4iic-UprXWCE3^~QR0A=?CoQ=N4k`LmDbCX zo#~tu3EPk0hsz|E;#A+%{e-G9whK>UX@3!~bbFuWtm#hTTj)vhTUjur@?MY3*Opol z3Z5;eoq6rxt$Pg%pg*{IlW{=uzle&e>KN`1-P&=A1KV1K38xdLwB zbb7=g5XCa~xf^{6o1RLkNPUn)#3h6OtLXK$^uPdBS7E9i8br-I=b@Uo#(zrfUq{<~ zE4?6cazcyuP+?VI9<=%9^-zyDi1#in{A&qH}BzbD!%<1WcUFLc~9M1fIH{4=jEsMyKaJgjZWy2VhW~!Wje` zYV(l)dR0fB8*J#$s6R5$X+#}?9h=zeD4`d9mz?*|SA7|IZN&4cXf!X3$C$jo8IdOr zOK)?uT^{#x*)f;La-Dl7ST9L4hzWv`tkm74xpNp1VCafU=+@Yj*NWI$mA0@{)mk;Z z@-;o>thf4^)0DysWlz&9Cgr*c)4QqtI?e=Vk z?PJ66c04NH_w<^$5LbEJ%>kx^Ixom-F1f z3ODubk&AX*#AA5#)4e)P`Neo|uNz9?>v^cqf^Z%*mS5lgfi|o{p??p+mtgA3_fV7! z*g+8e?D_c*TCnSS`Y0aAd|q-8|2vzCv%l9#`rTl+CVD`^Rijl&YC_;SP(34`J$p2N zeMgwI)RcM%I+st6qv9JiXMNzikBB5H z`^Kmc?-Xx16e@V%i7bA}-KBMCkdcBTJLVdtnj9B8sx_}!zaQ29jfR|OPrX{ROLSl2 zaNo~}q>Js+8Yj}D^2FptA5VEKO7y3G1OFrHLoYdr}BuBCuEp?b<+qZE>x3y zf-En^D(eEpV44rAyzJ5rRY#`Oa+dgeSsy$t2jg_IEEXvlg`X8BKrjFQ`%G~{)%Jg< zRM|Dha)`9mDOTEfqVmk3GOb`nEV^A9msMBVcRZ)QOTXwPG8X-(-l?E#9i<|YopcL( zu~6Kk&qR`_^D4cc9@0B&c)rar<2 zPmeq6c;}q%(;^p^?YM8n=)UgGsSx<_TN)Es9mOMhxu~uZ90j zV=bjqfW?kRkHX>|!4*{crFw1Sk)Q6UnwF_K#KhSVsY|%gu-{%h0PZY2;nyeerFl(; zbIZxkK5naT5eva5}Ptz5dV-JvBn6{BH-&AD9qP(120XLKu9Rt{O2(!-F;*sGe26w2iJHo_@}n5q-So_RLYBzVs7l!{&aw5BbG{}$9u21+lN@Ahj}xZ97J z18OSpmL)AFNjPPFAQ1KiV$>h*ns~Rj-d>aUUC1sgK0Muaa zDKZv6tAPy|{ep76Q8?_RBQ+bq0vJ5YWy#kz*Q6;^S98NuDXqA}v1RXcHuK!%GgE8r zs8_a+PhF33F|pMNJz#ES*O1Ek8KO$Q^$XVRpD*y45dNAEZ>2uMTx`Lh{z_tfxDywX zr>U{L({T=DsMFIA?R>_yi3upy%3beYc2={k18J3;P-aCcAR3Vn&Ztq2dDUJI(1>cQ zFDHtIl%An8B`EU+P=$7XP&vud`+=ttNL$Gu01}dBOXM||AuOC3T?J6lFCt2v<$$k^ z^ef$$MDIm8^JNSUT?R4`ym9B%bR*}bV0JXaRPdp(8(Vc~l2*JSK?qSf5mhCwj}MNf zpstHO^(NK5?%vhn!-#1ps9y-@IH|KUKKD?a%#b>Wd=+!Q@P1w4UGE8{JO_lV-{ z#znkL7$TgAYkUV^EOq6-8Dl>x4tV5KPvd=w;<`64Y=v?ZAs46Mi#j2gwfL3(RC>DG z5*op*s6;oxSPvEEw3W9C{5RRTif(yA{s##&IV1VPh$Er7B@v-MF_#h3_%GHqF&Ih4 zu`!qoA--gf7wlNl`bf(tnGU|skj?;5m80(P`Rh=F0E}|qOdx%oo}R*e1XyxJrHf`R zt@0(2!iG;KRXB~6^1d?tl>Csfw%GMPE`ti|Nga=&2^S-RN(=PKW$Ft8OyrPixX%W|XEyDvegIK`N#NpB=)a%Gx*sj?sQ|Y>B?R+QYTUIxr{>!Lhg# z?-jxTyDL4C^eR6TkWr1_ed%ciIxZ$(hI;B0w5!euskyJV(2KE87kePpeqvC=OgQ1x z-YJnl6|Gf}!<6vLKt3R7MQKd22hDO;GA3;|2ZFbbS59zYrL@vl9%C^F?p!4*GnRe~ z@%`|41rS;mxk9eV9g^7gh>sc6MLS-4>nLsYcKZCDh9&c5zp^`J!48p(0C*MD2?=QF z>_quD9KyhG(r+lhvP5irN&ua7D1wKZp$wg=p1+|L2F7d4r5&CmqeuSa%+nd`c6w(G ze74?N1y|4-H-tWjTfvd3BkX~(7n5jYZsZb`8{Go0-i+iL)-Y*rIa+ZUwwbT^@S~ZY z|Lsu>Wi|H_byRhCqM?M>4g}Mp#T|H9!J32Y2t6_98*bhg812Av7+GNIg(DM|jsgQmh<*`CIrn&fe%(mC>M|5Ue## zqC~9W7#=Dh^O_bo{WTa4_mok~U~qs_U-pB+yz-*Plk5@8NLm}CUEmdCX0YwlfRhp{ z^`>6Qu$rz+;8zN4V=9)}cXdyL;<>PgS-~q# zi}O_x!t19>qnm8n;jh3b*n3OoN^FyfUj`FOD9b**%kiMV5(>D*r@3K`UX`6Dl{S0J z_{7bC;=y|X-qxY?s7EfULg%xH=k*j8`peUS;bhleOl#HArzHB^aTU<&8yxsY92@56 z5b*I}j&eEX$t_;7OXDxc>>s?YawW75uE2~Xy}W?soB1@~oAZsg^q18}gN+*`zQvCe zIajP098Cos<6xax6(BEy-Yesf(Vba}r|lU|sSEVFOC+mkWVbtD#;6E}({|Kn6NL2k z3ZWni_|6Iz&>W)G(a)P&GD*2WM(ItjNHBAMX8dBb7aEzI2*-ez0=`g{<0T#QqA%pC z4_QOK)^4^U7DG{6KfVF3#od8x{e%6*{*0o%v@w%uAn$XxsZf(<0{i$NC&CjdrhKjT zEKx6LxJU6Zc>mh!$g5ZHs^h<=7y3R!G{q2UVXb?Nsdtx#Hh3de#g)#z3w_`)w&A zNTi&uAxmVv(4KY)^#V+nB`jG%`R3@SYMgo*Bn zbG2i>4#mHcCHK`Zs;U==a6#t>k@8kp6!3rQ2FOwltzdp<%i%nE~Zh94YcS`QQFh#A-DE**PL^$mDQ=8BA%|SJc_HJq1 z^Sds&nNnLWWT^KAkgq+D{F6sK{R@sSsdS%?)Z;h5IL8HOalDaXLl*D_g!{Q1#^F!5 z9|k5e!i{72Sb3D{L=pv&j2tR%gZO_!2vnJgOJt^kN7~h;-2-R}IQi)5{sYkJXj98S z=DJ$Y;qod?VbSpU)F~>fLU4MTs=P=IV5Hr*L_A{mP&6k{)gT;XWEoA3`G7~`3AaYP zbLw4J>SP#JnqPzlUvL}nv>2pnEPQ{c-En1)fFGDag!975#jf`YUrn$ZJjrn{zI`KC z{jSG)OLEf!GnLfb_fm^UK4&;u2S*}rN-eQ|7^1%WMWq~@qa_E{fIX0I4ZHmLU|7Th z|6yr79@jgj>NeBJDs)mP0+b=A?<;1nR1KPASAE|(RQgGa?sV3^!PRmcdva@9ImTFE z)z+7l{JqWnc%ee(!G~cW*(`63o~>1~*w!Z}@9|Ztlc5P*GT&SJfd5Hrmhj6yyA5gu zv&AdjOt}2`1P{}Nm4YoH}d4fv-g(uf1IR$kE;VLFQ12= z{TGnc>p!$I7?__+K)@L#PR}oqr5HV^!S-99H2@Ee>xx-*Tf`na%ZYZ>)2@hOYVtG) za2Griq^*LkZkyzW38<`;J%eqlt1X-EPCfZ#E5v~lk__~f>ogOqCG`p(bf9;8aGhxw zqw_}7z*pU=eO6b2?0~y15qVb4c@_^^YEMrq9L)#~4`4_ z_Gb=7pWYJ+qGaZ3AKr*Y9BEAQx{hnU#SO2upFBXmkc#cdIo5eiiXe$fx0vC z$ow|IOW0_fsG?bCgf)(tt4TxmjA6U9K{PArY=!UWB0lIdEiM*>sw~Bb{MJBrM@0X- zb@;%KC#y0$z#GlYV6L0QyF z@P}FUcM}EXBmEBx$#s{?=cH}P1b0qLnRAZzuq#HeXw2e!-XVm zPM{^T-mD^}>V9)-o%7E=h%O7RPcLdrp`d#1`Lsv#6bLtpnrTB2N++A18(cToQ&vY- zY>Sh}tR5zeN!agloB|`dal2KKDA(Y;s`hZjf=iXT%EMH(PyiK*glnFy{=u9D}s6769i^r(RI z;#Yf4{Ygt$nnTkaM=mja-uu-ep48L0G7kqYRX2;_;Y#Y-+B1RTZVWb$mDHu!-3$`r$2Mv3#c) z=y6BjIT%LU$k*TJY{%^yX``!n9fEZ4!|P()c`I4lccJ99zUleI4El`lOYm%=f82-V zG`J>!vYA3nQd36MRX**S;wf+$VMcQEi^(imp(<-aI52waK{rQe&qEdTNVnG4&u73u znqEL5upc83$f=ieK|Ep&K99OGKVXYg>O&=Qd7FPJOFy|GSoXd**`+n+v`Xwf(uIII zwNRh(h)*i1didy0z8p2w9|q;lg6(NUw6uF_IY;xL)ND-CG&4_rd8nfw7nZhc%Qo*$ zH4sPDCStDPJ^KtOje{}<(`sDl!o`5y1iywZTv<1OfZI+FKkwT^5$M28MMi84yBb!yG{Kg?ocibe<71Ft ziN1TBq)+(P789d-u*-3``zRGo`=iLVL6PLe&vGnV!p|GQc~uX>!ygae6q-;7eg1UG zq5sc%=9~ENPi@LOhL^pUKczHirc4f1XwCc@WoXVlMR|7$H|aS}dT@VvVbI(Au-SNA z2Hrc}u@NdC{&A7wI%?lRjRdc;HcJyE(s^Dz*4877ozL>9Q%yd0D_=?Rss2 z);3@;JhI$T4UcskfE#b%h_S*W2(DTn=$3Z>_?jf{SyDewG$m;WLyeBO0M@%1+aMKF zy3oxlY;bV!T)t@5&Y*MITVi-W*zJ`1E=k~p>-Ub(J??8W=hh41Ie2Y28GWmO7}Iqj z;HVh~Js0KiTOYdJZBX8Azt714Uppc@rmt1e-`t$16TLK*W?Q3V!DSxpWbt+LKfcNM zFU9@N%gf6t@_dc$njaR3=8Dkb*>Lb@Gr?pFY_vOD#s?^TBkYX?WGkWd=wUfKL%O`3lAHOYBWuwDqupH8LdRCq1UL@a^$%ZS&ru z!Cqu6W{)AWxX#HrHfO-1@_f%WXUU>L=xf#8QXTcw@X6+4k3#nEjSR+7U6!#C1D|^L zHJXt#%h8qB7wYJe!w^S^;k1YYTx+VQ(q}NsIH~$>SaE`HjfBPdK@{p1AMgbTX;|!I zrRyK59wMjW;M1{itU)0flq&w@xk*2hZKl==uf}J`e466`T08m}dE0=HqG23m*a_>xHzdsxHD;+;uEB9CpZ-ugxBn@rvx^WHRs zwS@|@hf@q@GssDC-f~g5*M4?VDKWlsbxB_rP^wL-b<9&HNb`3g?p|<+$qK8LhytC!0aAeCs6hFlKRl$I4?S&BTD^ z;MSCtrZIw2&ZufS$^>ESiN}TR{yfwr(4S(n-+3RLsi+HLUZF|d_pteC5x@9LI~%sY zVG;jVID7FL>PbIljuM)U99rf$)Ccw9rQX|1wHDW&4AKRY-Hq35p7S4*N zVz{oN$k@!MV>F!zMJWjBij37DH0Q^-l$(PgR4zi~d2QSDz=dvXsn8**i?FZEzK@5C zeXc{yizlEjqj_WRYQA&W<{ef`zzWV{41@dw-H)xc#s(`POJtc>v-Xa6K*)H;cNWrR z^4=HS#Ab!wK5UIx@JQHlMwIA0iim%w0T)2wyNUa9M;VZ|vG%hUzhczqZMwNtT&k`V zZdq}>`CQgI+%oEvv&L=7GkB+G4B1$A?rWc+FV|3z{sZHM&ys z1bmXZvgBz(UET?5lGI84)a0+a>1ba#BV2>Qvl_S0GClbNyWaPwjimBu0~#w$(=)WF zvKQm4KLJ3FwGhV9(*sS)3)eFrh!v|= z_3A&aIE-c#G-yFDE|&qlk$+=2OqmoGE*ZcYk?hlRXkt${WB!E8G?(<#PuZmU+5zz# zlw}0@#{2!92Z(Ln@+1c*U57BC0M@8pKTqyA6$_#^VYK271yk-oPnu$NSgb}0W&)Q} z04zbClHKNtr}CcOq)tD*XaiWsDwv$;%BuQdOwDZ+iKQ37?{;>SPn2gaP83LTk%R0a$5bY2#mjJ zhvFO^-f(MCI-XH}`wOgvagh9vjRgav_C}Ap19S`h~p2C70^du0)}Y*jQuQ+HKNRZ3SuIMF`QnNUm0}*DTG&hu9?V zMHJ%BdP2F8BBPBHX0`%!(!ti0!frN&Z<5ql1Ksn%qsJiGb0<;ZJQM6#MpteL!&^c_ z3FLZ3r_$?THX_tgI50NkcQ)+hd;*UL^Odkr>V$bmXkS3D8V3OerK5lQorO^aX~pc` zudg@`zX$f;=k~*2jv(|6zcb}xT9g7I>`U;JfLbeTl9g7USLJtFUj-hNb;W|#DL9+V zkN8cg*I%tbwgB!0)4RegvKClcr<&JG-A_I<*#>{k} z^PCe$F$aOjyj+Ly3FRj%^w&rd&vBCy1WTsL4sbOC-(ae!WY6+dIf;q(q!{>IN)Y#H zJ1W%tl)B?jFYLa~Ehf?&b|uyr03%BUpUwu-P*}m4@GU*MDb$(KH!zqWEMU`AIx*8b zHy%YljG;uXYFrZwR34L!kXz=%8UZQeV<(+YHKkbG-y|gjMC`~r##1G{t&}E7`++9G z?Z^41bCjM(gv;h@j$}23Iamb0*MTB3*xfKd(qj|0{GjJ5CnhBLtSsz!2_1xX zIPEDTto%dQSyE)1#q?R>!|fK=t_46Q^CoQ+eLp)iMT;t+J*CNpb&V~T{(%a;L{#K! zrsa(dyCxss{?GQM0}Az^V<~H^Vq4aUH+qFqH5_b#^(2+Hray-<+R`aBynp zH8XBAn!)xXO2v^&0ldG6b$+Gah(UJ=RsW`aBeBC$^&sM{n8p@NRW6Og zd_!Kaxieb?Gg1kpc!1kr-m||oT+AblV$%I&*+r%Bc)BmQ{41J{m}TR19dE3FM$8;( z$maRkS>FR8l4~p+w)ok(_c^$)x6x3d#Q|FMlb;nH9!9@5MFae+Q494~%J~J=ZIolc zC7TUB`L|c}N2=+!7wLgnPC$t7b%2*g_x}y7BG5mGTUN375bTzUNqZ zc25-`!D)Hr=D(LGPPCtP^zhu+TO84-*z@5hqSyOD*4z*;UwsmxQ`=AdLWMeRa{0BJ zTA4q-_lo#GYn>QWka>Lc$ZQJ@{|rjS5!*w_JMi__6E=IO=1z0%{2p)pW+LvFKgm|| zH(I7$eq8>>p`fX67k$G)iL$xHyEEp8{mFo@@K&OJ2rdGW%@QgbVUfIQb5MLBFLE67 z2Z|MLaDbWaiPqC|9d^4FoO9-rS+K%JDTW~p=Ab2M_r$#NY)&ML2cDTkO2_dq82eo@ zA4mSp81g6hk;Q6WA1#6w)M)OF@RGE^Scl%M_YK^*O4QdXxKP{a-w%h>c#;duLHMfI z>dtvjBw)vr#hZ8u{R|iD562j4Q#x?GLJmEsc2<L_7LBshCNbCo=v(VT6i z!u*2KCz#DlOC^nO7mJ8Rz*A(2+ecMJ4W90eK8VxhJ?SWZA*eId7-PB@wN#v0u!>bd zyjlRT4Fj{;A)~u{#BT2FZ$PDRHqLC&JS^pCzP@yKWeQWu;@bY!=xHAc>I;6QhpGE& z?MuKLJ=lMII03#kbng(mUP;zF5cSQ*RzPbZf<=E&7HgxYwUCXsxnM5PWkCt zEDx;1E-mCtl?^b?851>e4Roy61YD1B)nWf^ zI}5sWias3{txij%k_$MriWi0C)`VWkV>O2h&>fzxVaQi8zvj-)@{ppH*G^?9dEeX3 zcu>KVn$LtUXG|x3M0)lOqIMoNdK8pPIv?tHD))UBDTj+xLK7?b zwyP|wg`DxgrqyzmE`4SwJPMTbrV1%>o`sGy)~I@S$PkcZ}j^!{yAkqoQ*jR z=3UPInnBrCQ4|BRhAM?Q?#-AdjiFKU?J~&=%dis;;!bAXca$4#ONT`XcUIU05q!xb zKE(H9&|ODWw^^}Uf*>ECk?Y(nTKI>=u#{Kxv@j^qvS<*@nhjWbYpX*->y+sx6U-=< zIs%!M+`k;FJ}d}U9R35srtV#;K2f-@LP0t2ot;%VNP#Xd&TxSnv%~>M40D^!10kC^ zoOjBRmah200u1rdV-i{!VkhIw_X=06igc5azDnp0noglyJ7#(&x#%k)7%~x`4fL?gDfj z{r7+EMxo1y-~YevAq-%^paYS|aVRhr3;16{xXGwv*)}Jig-PSSAN^?2z<~N`ew1kR zLMENNH0u2z{UMgG5a}x*D7CX$U!<|e+i#{LwkvhxyGT``kk?khyWNu26I`S!-P(LP zZk_Bq54==Tc($HE(^Pu<+%3dF043(Z8ES2#ogZyf8c*w?_}3$baos=+}kzNe^W6`UVH1 z2=VT2xrk#tNkXIW;A7C3J61D&T6y9@Rsyt1thY60%e}$gEMpz95)24Du>~E8x_0j> zWF?@;le+d;o!i}5Qwl!2ahgj3`SrGOGafKD0SXds@^@xU6pp=Bs|OKq5r%RkC4U2J z3#-H}Wo21Y*(iW*-&se2%(po=0<)1&jx5_>NO08e#GXT-!TyVIjTBC;_tg&){;GyP{#Mm}sAEVeX+-Iv5yaL33QP&J5n1iNEM!=v!Rpp~?+j0gGCp0t$e`op+1_{SW5;M9&pG9E!#Ur_>}IOPpHWXuZ2#MYMvj?e3AF<(!ac6B1Oam{;IIt8|&-2%<`|Xp1$U_{J(@p%vyq2xDq?Q@2 zOpGJm3QE;DM$~T`*`4SyB&$gKk$t-S?ULEzeF9#mGP_ zxs;}bww58zm4cWiC8{dc`*OyQF>3&kYq|bZ(#Q~10X^Ppy!fb;Y<&?XQUJ6KI)|u zd5d#9PC6plKEvjpfrj~6^3_jVs;?-cap~{7Y`#f`$*uQ*#=mYMF#jBjSViau`6Bbo z$r*0!-6*r~J>bO4ul^>{%((**XpD(|pn!!;N2eoJ^W z68CZ@p;+PU%BG@v$-Hjto>Fq(vu28g?}c`PoiGjmLY1MQ)c3(l27RBq|IWMl-_pRb zH@f=*hdKRNr5QT$ln&_egx779A`iH;kP1coSs=7i;!1N zNjcfQMLpsPItgqg&2>$;Q|eg85dhaNFa>f8rV7cK?WcQ|a~!IdQQcU1jck5v-s>>` zY9O>l9e3(SAHefdwf_BcZ0DoWqsMP>oou7bDwEb8q_WEM+MiW8`m1+p?G@Z2R(ptJ z{nJ3PjJap}_iC|U3J=i^&-ua`zTrZAffi|&A0mIP_tiCD$0m(Ozn8wABV>4VALmkPc=$BX5WvMtLa>td0%t<=^oZ(^io?EA?HHcZx z_MCZB!x>^PSFMs)8C2^pFMia(hXps^N~>fCQZz_-tu~xg2}71{J!?+IjpblwG9ki0 zgcBYZQ{t7=0A(0-NCkB~op&5%le4$c=J9X&WatkV%uNu8f-Sw=06~Dg`u(-hZe~w^ z_sEtrX^%=yjL`E9|72qYkYXt&nytaX{Dh8*+QmbS9_6jTu~(f{%a$QH@mtHAj~19C zC}CIbj#qyOv^()U)l`hG1Ca@*_0^C|v`!9=dX$3RIEdNv)BLH-P;Mj%(=CgX^wl?u z`>bj1oSsd3$0zhtgdQ5d9Y>Zz3|3;wiMZdQwIJvj*5?Fu%t`#}*vfR?`=N|B6$m_x z=$R%r8tNZlWE=y=_bD?FroKGmSxC-~D3e8sCvyA@lILxyBG$xHd2+-)z;MrR3qfN# zugTl{qXZRZ^Z923GH$pNLOh#ITDdf(5dMGG0Iri4}_S+ z+Y%OU-an3C8SQDyZG1$-`0zk!xh%P~Lf?UmqACKQskr6TjB2)NRh0StxmfEO(iL$) zVXJTNiu78sm)9xBBu=aBN|`{hTx_IdpEyvhcyxwbp~LsLjt`>t1L*>d-Ku37_#Jkk zGygdicPoTT?Cbk%?>Y}^^SIv^8cGL@NFfxw+xwFMw>KkzOfpf*6+iBP{}2%a9+P!< z@?4Y~KYm0|Z}zQq{C3%WCxyoHu3TNn|DuVa)OJ8qnj_RJvs0)|o@fxOclOZ`D^HG6 z$(8kME!jDQC8sMlE5CedfsS|3)A)Ttnq&wOGLthu)Cj{*3?VkYacK^Xj?=E9n%=@} zk!zT15XdTzND-TAvtCtn>5LO<+i9B4^2`>U#8hpm(zyI-n0hE8A%51jg6yV@QZ->Y+F ztmv+^sCi${wA%oAd&NV@qC{}6a4fVMzDvIlIo>1eioxQ8Fu)|zCR_%?G>-Rcp z;9h2R@kmH?bF{tDhKNX!o2!yFLjrG5o?@u9kTxT1LZ4^!)LJQ2lVwIG z{esQjk?Kr5ELZ5K5!slpt_$07P|E%#R&%w?3!Z9?Qc6445zq4LAYoSL6xOiNd?lC6 zs&Q*3rqI@jSvNB`gYNxBu}QKvwm7%}-{XX13D&uNYu9eZs2TvOA3Rn-Wqj2wP(8DB zAot(eG2*n8R|_z<$(E|cw%Hq>)sWi95zoqCLuF zJa{19cS=m-1%8__+u+XvkZH|`x+Z8N)Vq7<8i(B~m0rImU1q_`zQ*g)!DHEC0(UdF z7xT(hCYI0)t`Ybe^Zs(pwzb2RI#+kTxe^&9w=48~*Xg1Hk#Ra`_*Gr9y1(k6GdYqE z%E-Z$)W3Vjv<1o~OC!qK6*7A#Zy=HW)Cc15Ajoi!=3KDMD7yv$)KWJ)es&qh|A@N7 zju<3M;Sfvp&4TrRgJS;Ih^alXrKzWBPLTR_|5|W0t;DL5vt$(7TW5AEa-4sW z)OSM(f`~ti#3t%G&|_(}tl=neE9j{n{y1!Z;EoV}Jm6JA%ZaE3Lz0 zxJr=fDUa!a7^J?N&8+$Rwi;#0iSC>+B{ctGb&4CZYd=da&+n(j$4II?{>)U7(Bi-G z#751~B#bD5Y{@_7T3XfJA(ezYN_4vN^#(1C@Yt!QFi@EEI=}p4?lvTo;8Hh z#XXomW_^ySX8r%`PDn<@v4%DdgLO5D!ulrIFt*gNt%$3=NJE9Gm(-}2oT=|GZTk4C z(){{5>rqhTz;$k?L;QJ#8A-}BFX}nsNjZ}qd{rLXM|m}fwYltu3u$6@9TC4mBHkNc z(v4jiOSE2#NR%=7u9tG?xWwli#*qsp_$6K^#s3*Gq$JI`;-YxeEfVb0T2fiW4Lhyb zWUgVgmCcb^?>Z21CUH?wW14L&v$GKU$Zg*9y^v{8&aIAxmJXFZI?RIrkSew@OI zJzy>RF~Nc`#!+V@U-RB)Wr8lBbqRm#J}xVOf6^l4|D3>goqY&j5%bKg;)wYK>0d_z zRZY7Y5=V3}dJA$}042?QKHKf`Z)Z$O(f62k+kIbR>(=CpsK@i(7~g-p&v{yRV2;(N znh(2!N1bT6LHscNGHe$CHKfjmw&M(yDTQ`O30?+i}8tBC7#WGJgLe9G&=db94Fp*8i1WEf@okaVn;BmI z>+_h$#nW9jg-v2M^SjtUw0HdHb+r!(JCQy}`m1?>$9kJSUt(?Su}X)~edG>n7Jto{ zV`EtZgFx-QtG(ndnJUV%Tmnp~%X3J~+*9z5&q`7X?b0?#u`2CG!WbD1p_Z@w%7!)3 z=>&Vqs&&A)!1?*)E8wlE z%MorxIE78R*f=VT?=>bIJrQ`YAPTlB;&PXq+vcQtL7(%kyNj?R`O z?>CwHN)1kYeJD`tzALFmt@@@c6~smHQR9F>be$}^MVybK%As4_^Ok@c>5(WG4$~yx zjJx8_!yZ&W(3c>B_?A9|?~2Y&XwB+Q{Naf^4pd;7Sa1J>af3Dyj~uxBi?DEgP|N87 zgy{1HR!+J;O?&)imW4@1WY}&(-drIcjAO>QgWmU5^&pH3$-R2Vmf1sh$+OeveiHLc zrTHmr>Fwo{dv4p*hdLLH5lBV$|85i%BwKJqXq}xj=sdK~*}JX6EBgECd)dzRb`Q2A z5(Lc($zafyTk`gHhyML+a&fT<4*wI_iOf5jAU^VO?xC!L>T~bdn2aWZk8hmZ=u5Y? z@Xg`aD4kC=w~Bc|KRxjo-kX1zO$V^ZcEKbnz_zFonAYvX-i?PO6>L)}ak?_>{%KO* zY^6yvbjOq$S1@WtQbo`!W)Yg=UUZ65uh9Vil#AzvnH;l;J_M}-Gh)(e6{}X?Y@=$< zLg&HcK2S^lC=WQGT3=Q|Il_QSE|%j~fru;KVt-WO)VaAy3jeZA+tse8Nv7o&ZBQ&_ zEXNpRLOJfPKaxzR4OV66Yz<_Qh+>o3tI2z#&`vUAVa`&BT5*+{gvGG+<8YF6&t?$s zPp$FIy!W^lh>BaPyo6xb+Ct)%NLS9sIEONHHrR?eE}+?9E>f)cHY>QNfg+on7IZFs zOlwfzJ6A?djJ4l?8-01H#1~t?+4tVXaQU}e$lm*(e5KpX<=nMnySggbCajWEAYU-k zqOa;uVZl_w6)zk#lf20)NZO*|!@Uks4(_ij(PlZ}QTuW1uCT!o8rM2`(o`iUVi(`* z(a@`;*a*#Awg=Z$p93MgDVKI{E9(Z%6eTd)fpO6H2^G|cRg{)eLq)w6Gy`WPrNV{O z(?1vG(Dm148Thk~(k(DLYwqW#t@-7(FoyNr)EY%nwUO9`$spSJ$B0;V`?{-_Q)@Lj zI`JeXMx=@lwwK+Lqa3Nw(np)|cuBfPVVU64yj0EKP5LkH;x^mN{-F+?*T-+gkoL7j zW;<=0EGRFRk?W*AQ)-nKBRGMJPaiSxu!LH$905*eZlqS(xEm2JbYDemyM9GjK_6B9 z$#6{`KRsA0ySN||-H28oVwG&vEOQ-uc&{#yV5?gUOqo!@1MmxkF2q_v#3sYY9G64l z;B9)fv8^;=Y+`XBu=Jix!8Nd-_1-hTRK#dxhJ`$-!VK`6N~h&`QCswn-(F6=z3^V&OzM4q@^$_0mcO2sVtFWbA7ko%KJ`_+ngRMy#Z#bv0l{oTo5- zEx$M+vNht75QO6Z`TiQUtxI%n z`yFX+f+s`}0Xvz%8OQW7|5Nd;940I9Bm&J`U%bC@j?UCxdB6e47ndK`28GO8F z*i;)o3uAE+RTM_1HO*s`sM!^8av57S;LPj{)JqYV=Oj^FsSE6&VqwxK@ z-`*6yK6WCc9Qj|Y%SFnEw#|H^#=<$vNJ1Aioecu{)se*=f$d0G9SUs^R3;afPR7#J z3#_zq2SU5^n(a|_U`#E>gpnr|o+%lj1dC@=Y9i>kx^Zv@icsJ!(q;S7ifKHsP$|w` zuq+^PZ9+e_*NEPKqS3c(b6hg@f$!s3b{zrQU8>81`?W3xyNQ-lX?LMr8zse{y>*G0 zc-&6J#;?(gpHDUQcG^D#6N`$996zG8DU!02vsrzzHVH>8ISo$MW++1{DZd6opjP$TNy%D#%ljZ$cOyMj=ft9LIE&Mmkhp%y3Lmx!eMC##6=~MtQcU zJ0yDL3Uf>YJj`k}fWcPZ^g~niBG4`<3@Uz%V(*3TqWW6H0aCNc`RZ%HUZQG0<3}pP z;IE~xYwt)hA$&x&Oco`Z;Ap^y;%A;{KXqlE(@*6b|)NfaIX`J3Oe@=1|VP*0}6I<}w6~}&HPq78j zI(~WC0oFyO26=%lDnuqx4c_o~zKJXp>QY?8hQ#MRAT7XQ$31M&GZu6Kqp1cB6*nbm zQXCRvM67P+flMU(pe{g3wnOS~#6#whu zkcH{}r%d7G>FwOId2-~=>SW8T5idv3cZy*hOvoy+5SvJmnz<8oLnKUQF*cz2!!cq~ zxZ0R)$MlIPm*s7eryeVL>PgA3=vccRV6bQ#H7yG#KDsV>K+a8H(R6zXa_3=b?34r~ zEg9^mk~_Q(&^_R!+3xyg&9ebxmcG)*abEh&NpS5-26~L z@4+bp?BqhU0<3m5*Ig3fSc08yYSQPoEU1`5m)^vz1i#-?d6 zkJqQxMQ(fFj_YJ7*vdQeW{fM7`au>gttxqD($7b)D!O-svo4-#8P>fzZ znEnH`jO^N_cj{QD|FBZP>8en7)Uz zqAU`fKBbury|93!GiSR78IHsN%Wq=j5emG=q@U%ajv(qYl5+eioI1GIuXB%eTBx#! zRYgY1#IwxsS*^8+j~#26DVBelk;JsjmMo!?y#-J*0?8)=YrzjMvK$*qgI1Q^is`-i zN!6is->k~_FKStG`Rb2`6Y+)gt@#-`AF9^hKV!uSf;CH)gg`EmeWLG-g(^68;=9D+ z*QJlGgSguht3sR-8(Ugv+!0#b-$7#Y=MzCJS7;^_sBb82*$p)Yva3@9RZn7`#HFCC zt1K=hffm>br-d@`S$jNT#}3F@b=w`vzbHK0)?W@;7ydt3wQty8A>I!6uYM^MR5tox z7d)>EtfnioCXN%Rdqsz zot((moXSSq)of@M2(&VVYmV7QzST=xC9f)wyC?-&e#Jc9PfTviNIJ&ma@CKEFlB|| z#cg{rwfYm10Ki_=fc6>xrKI#!T|M3)u-1+@My5A$+jz5rC+jVfmz=c7yAP}NGt8lH zQWq>N^}(7gOq%xxDGMN-8aix#VU%@4fJl&`Y_ zklBvv5PekbGXb!;QD3bs;I$;-mS)K}dFbY2hnCu}fo$`V3A?@f=VEU?6w$h5AkHoW ze*CR&QLrRZ+t=F+tVL;b5`DBVnM!4WM{SV><&HTRtJ*yMdre9ylQWMQ(bZ_I>-CCN zLqMpL?;wU`)YvY4E@SD;b03@!Qmbzhj#%f};u3|+%jc3_&87CYQEJBdxu*NJs(@zh z^5cnE441zS%@GOW(7j$FCu#ogdO<;*bQ|e8WE$wt#yfLXwqnw`C=m1N3-+z_bzZfy ztJXZl5?WxzHPca2Exxle`7ny0wNapV9B~5fF!mt| z7~2W~Zyr14+hfw=bC(aMYKBJ$I5wnfDW*fgix8QErT00hQc{$140`rT#i0u1J_Iy~ zOb%*b_V@z!XCn`ix3h9(GfLB^*q2R;7NZ+X3N&jz^vcrx2$st5Sz`=NJTc5N+3YeOBV7>0x*}ALF|uf-ZDC{*#<5>bF;ZiO&DqED z%TICDLgxT2{H%x(CoazUb$N1#7Lm*xF#1h*S-cEOU}C}KPP54FlUG#Bc+FYp+?Ckp7+<(%foN9$W&VMP~Uw{`NE~5UvQN{tlzFwSc1c~96Skg@@r{@EHl)!_k)Ajp%RQo9 z${L%RsJ}22(jU3HpFgvjhB|5_~QMZ zCY9nY`L{LY@RuM<0^10jO2uqz{E6c_)fN@r{HkB*2qlRh;Fa`!4&=u?HwE$+2e?Iz zvCC^@>WM4HTSQO~tP!YWGaH$4IBBk6YQz;k1d^-QN{3ue8CvueX{f9smI%QG!HA_V z($Q%v9543_xH4~g4SI+3-`nR(smE5-pJ5Mr(PTomM}3NTH@Z=$q+@jz-CR#p6^tTr z(3Q!TQ~fW11*+noOx%@6u9B0AZk-$yG4La@xS4?E`e$kP0)GkI(>B98xO2-W^K*^CiYJmram-{LIAH7Py(chka z50N3p6AXcs^S_-~7Mxe*ju;IXE!+%;R=Ivq?Glb-?^t)5wl&f{ENlHx`y$B?hc?!? zYeP(xBWI{yL4v`$f~?~~YK{YNJ6@rwNR*%%?6bmC?`W9jBo$dRCWwL{bR7xq8XeUcOl1T_rCDYx0jvZ@U4DWY_K!_5B|{t&q`-2E&Amb? zOdrP_3xP?;0xCq}N}!(PIH?Xix+oW%5-W}cB~=BCDQKxFyR!@5(V1wM-@BR06CW9Z zxr;8~7^;n`w2piY1K)!yY}P8&j7O{>=D zMDW4z$X?+pY*XK~D54#}I?wN9y*)E+V|}`Ah&0mf3mMXxq1|8~J<(n%t6UO7i9SvG zK1YLB=t)vm-gtvpmu@qV;M+dUT{32 z_i&?-`Ooxul6JoT+-cnp!69f-b96l<2RxS$=H!1Y4zbm>BPIEx9`{8a=GhQ&08+rc zN5KAS>e^o0ERp;2Wxmg|6NhZXPTW_IF(4+<>7a*@_iBCve@h`Dv6w?X{*^vS()!mV zDqfEo3Y`z#i?Y;hX9cDFH4hnMCu(uGQpZ2U;0^`oT@7IdVwY|%r0N9#U$2je_=D6Q z^FZosUDCi*c;r=?E=mJ?jmGFx3zFRj$>PqNLP7h;iPPM1hFyGHpMG_I77F$*dEg;y z)8^$0sFsH-i#1K=viOs+9K3UW%F-93m%?7#3YDosq7`JhW;+eNHu_m>83u12D)j5* zIw&-tv6?O#-HAC%!EcVUL4!uD>2qQDOTn(i>wx-RzX$pQo`&#QsV;woq9`eOXTr0` zL_@{Y;ES$8PS&q6b)K6+om#=R@$7fAvC^6!jv6bQJZWx!Gm4sj&S)MS%$Vc0C9a3w ziYp7}vhw9y4-Y}pW8jX5eOds?X^<$?C>Fw+k@O?Ti>i}f8pVgiW#Z?TKly^2NBhc? zOx&lHV;`Yu!cEG~_hS5wN~_ zwt)XL&c6?~_VlUn2*g%`sMg63{>27Q|FG9{pcGpA2VtGMt*@_dE-~mnT1%J?8-ySH zbB4c`+vR1@O7+WteQQ0R(!2=?@2MUAIdF`1q0o-2u~owf3@+4b3b&EUJ?vdk=+$o? z8CH4?nqx=}ADd5hCd)wjjt>rHAbz9GM%XHt_;q=wp0z7IcZ3bv~rIUt4kb`O#t@I?xx(hW;5#^%tENP3U zHhYz-tC7-h`mt^oLzL(>JpO!n96i}Lqb7!jme6B5nb(>5GU0?V*^R+uoE|UvJQ314 zT>sA5U3vjKM^odEeRCw^HT5$fs9uWz9Qt&EOJi~1{7E7`zr9#0RM_t`dxrAMFRWu7 zOtAHjmhOU&*tg=wsEjf0;&O!bSZ1l+gA0CzGxG0ZA6gHB^Xkzt@D1)PKmJt7Lo>98 zt(HWK2RJE$M0z5~F*X&)YFkz6XmSCKT$qT9gS5C-Ov!X7KxU3Z0bs1@R-k667EP6$Sx$a}VDM7XUu*bo zvI~AZU3Kk%fLlmG+SK72e+6rxrqNMRQMaif-+GOnSJ3U9yZ#1(5SYd}9z~?#wwLsV z51yX*V=>tG)e@^y7p9h}YvlF!sZ=6!(fD&`xutM#;#`%DrZ)9&tGdrQ?MNS zL;%61B@M=HS|w>se9^vuL*VjVX`}SyRDxz=T>FP~v3SssL4f`s*(VAVTIR=DI7e4exYzNF0nEUbre-fT^t6Hw&mE`O;Y^Sr70)&VK`WJZGm%Kb#vd#@Ch z05FTc^);in-wZGdK=&JT9iU&QV-PNBfnGaIOkI@|dPQ7~ZCs}gOvDw(^l$6vpSwLb zVR8-TAHat;M2mrCJP^+RXd#}M8=3^P&Oi^LroI*Jh<Ea-&B3nPnh}urc|=uG?IKYa4c9RA&VMPXcDnxJpzUVR(iMR1`+WECxQpSw53=6y8hSP-{loH@? zO7vZ4;OR^rg1T)%SW5FaXMEt63fS&PO_h_2vu|W-sTDFyLJHU}>E^;G>YvB>4LmQ& zkZrnRD3D01bKmo`ADQ8leRE|;D3LR44%C#YCi{hD>a@Y3DDZjpi^ci&u$B58cK8%> zc*P{=a}!%XfBF$ijT!7hGWO2Z?L?8up|_^Hkhh>$H9Hk!=C}dn;WcrhQVNrODm=v` z{3y1umqQ(U+u{s)4f~JLG+|m8HCs-8n%ETSc}kk)TV+=9Wy_%NX7`B&$I9PztU9N) znfm6$(L1OakbGcvQL0^e33g?@aPQ&E-kTJh7C>X{xSn3g9$S6wU3OP)LNse^FlS7m z6M3VAeH1tuzO@9b^9`|?L)s)(Mp`h+3us-nbM1A$v8Hr}Q%!?pu?UUk_y#_#A;+&W z!u{+vQ+n5Rfh^JMD67eNr*^6I*Ll9Tg*HoROPD?9|F#TKVl?uClix^ABq9E$G9)e! zuJ^C+YKmBb@Z@aX**LLRaqwg^ZO0vX-u=Gke622>;%;_wy^ zobbEZg&IAYNnDUF;3l+++*9MJ0RYFIFii;YCVa{JDOzuPvs{)o79s)(VKh)pMy@^F zV2ttPQQa8gimBvTW=Q4uzLWh(Psd{rpEN4>=eJJxYy=;3Dn9PntT&fDVgB!R>V2GK zQo65d;h&*Hd;?6yMCCV47T|e*$*pGYQ3_>2Gjzy;7%C{8l6JHA((QKhlgnu2rSC+; zhAkDOJI_Sb7cIL!yle^x=B3T1QR|B=C3G0bl@A|YfRfI?V(;? z|K97X-e0@;_V&Oo9^iw->m-&1+nDhj7bQvXIyQ>)k*!y51PPj|w=?Z$lzh|e z4c@KjxPMeM1X}UrJs10?z!0l5R6d3{q(O7uGTzLBuLwgla_2>wh@u&A zfR2^5Rw{RbxXZcZeCGSLg;nqu1TUP>-w`9@s9NdL?7?TDp2OF2&Q}5>@S~#Xzl0MJ z3r((U8@+J(=y?2)9LrSr0@J9|Ma$O3FV$7(2SkA0IF&{#W@%EUqPiW216XZ!fMd;$ zj0vKMU4^W@Q-WH;B)y_5u<|N-%8F9MC049gqd(=y zXkiM2_Hn!R!{#ERndxuYl=gUHI@u&dZ&LxjDIrE)!a`|5PM~oweX{pRHpyg+?UiiE z_f$VV^xYOFdYu3H54s=_B84@8L)0fv;Qt>+%1}20h-bRVh>8a?cM-(=*NFaDKg?x8 za4OONIG=vZpDoTfg1m5)oo?lp=zGB&lvx}#uKk7Rc3&4>ZNvG)Gy#V=n%h$njV?@) zTp(ay#4aDzs~5=_*u7+pME>Bc-^)NbQ>7~as2(gW4obUFp3D@lv!Mzq=I33zvt)TCB4_QiD-^hRP@U%g?BnV=(qmc4 zkF7*mu>8zrn{9@ziu^J9T;XL;jLe-+_=rv>#HmTNG}-M` zlHJ#gA=3$A#haM3&^;cCJ6?=hU)hBtrN)+gIsIg2Gg7&D_S8T5ZQ1D)1cw$Uzkc@Z zNX!8U=zYv0UD=9P$QN!fib(Q7q0`(YGxau1I%3gY8To~xV;@;23;Lu}CS%Y~alxAx z)|e7yE~a&tEr~l$nyX^m2Bb@$q@B{Em!u;Hs-RI)>LC&&kcm7KqxN_d8aE60u%{Jk zc5|RQ0{GPBLdoVA-8B*()6EY&hNbnj*eeaCv8z+xqGcj;xhw;&&DK)eee|nOq0`7` z2fE>Yu&+#p#?9LoJW$jlatsf;-5-1qBrHT9t6sXJCAF%@@$PdwcJF|nrdE15#rSIz zj%uFJdc?%U9xH0^|HbM-*@gyaj1YThQFFH+PmGO?C2etET1`C_BkyF6Fwox~Gj5@a zAqyur-LwY%<`W7wFxx4#1-Gs?`?6PL97(B2`n}3rvQfz=7{z_6VD>x5pV5yO4exm{ z^i{4pp*C=~Trcm%OC>XOIJv8n6N@QK^WX_JXDlOkuS*h7-`j|1GC^|m5`=$ZY?$XF z_tpaDciuMoioC8^-=O|TDRfIg*UM3DB3&S=9#X`Y$uq+qUVNp_2q=A&Dpb!3E&m|B z%aC2#fSbyt{fQTCNN&)LCAa)cD@_(Pn&}&ei7uTl)1! z2wD$>ir)45NYHK>-|j^QI^Fc|wqO$rm;0s$sV_Lz%~-1CC8^;6Ylga9KT~(E?rh^> z@ErW!Fi+Qd9LKaIi$>%%zJy>;aIf&2H^(9DYslLU{tt;-7dGp?U?|~%Uf!N5Gz0{Q zGR5?&NAdS0mQmlLrFHo;#@M`k#b zvcr|&@FQt@a!P~C=^9v8@uzwUG~6+3H-Ys??x2K$089R)uVWi*H#6yAJ7(?_+tg&y z+QOtz)PYTfJCsm;duSU*8D79E4J^->;u?Vj;%vDHx+$#Jo_q@B9pCo;Olyy;#tIv zHpq+Lr~?P1v+L)bE72&uTwJMj!fs`(xHIaypZ4sn@W^qtqco4o=OPR!?}_4}H;8>dzKy7TtP9m199^;OSs3bTf95 zFH;m}t^OYlg$=8rGsZs`*sIwQ06no#e~I}xje}guN&J;?hi1*&m7bXGPO&zW8Z@ka zKjZoUxN7ZE-U5%?6-jw+zwTknZ)R>%?`33zA`4g1LVcMbR181i8E}*G)N-bHX~8ZW zU_`>p6WJQW{E$$>D1!rkC9!VL#s9NO7WAXvX80ngp*=^5)aylNek#*Z0U{Og_e3A} zAvh&`3`B~!o*X5X%S*EVWKGrSkYHQ@n#ZfNBRV8b#t}sAneOMtl(Z3x>jF2xmhH+4 z)IO9(X&2&Q8@k!J0q%X^SsX3l z8LWjka-?#)0?dT#ah2H8XT3$l;zNZ=!~xHrR=abOX!_T=5D7Uj$EaEs6&Odu#w^(A z!>*h%uX}it!wJ=;b#D{fpH^P0K|7J3L#p`IFcc>kYW;$l14M!by7GVNJUF)b=FyS1 zXf;=kIX}~_Y*?+_!uNp|48hV>9J6lIACEKTI-8ekJddmpD`MtB175^*lu(Q5#>U_} zts@+S%&rH;8*yBii2Yc$_3%H7-?4d&{e+0y)R&z!OzN%We^6Ucxt71;v@K`t(&rZRzE6d&wV660Q}=O zi{?oDGOk~v-1Z1B?!fL%gU$}}$~&6COX&?v)MJe1c2R!+cAG!W6vR69(JXC>z_Rn{ zg6ds~7;8 zi?J&$Y-MucTg<-Bq6da__8iP=#GZ;Fz(n|lFi1)iIz3}#;37W>Kwd%1xpNPaa88~$ zwW-58bh|}I%aX9vD1;8&|DZ8{G7t{X0l0D(Wm?jjmOM=+Aun zm$}eP3E>_Sa(x#MCw6~8o>VB|Wh30;^)My(XpS}@A-3GFKB`J->)BRlzt|2R%`2Z_ zZm~BIDf>o%>fnlOkiz*{TNBMBk`lK%Z2h9a!6@Bk)f5x?F%-9GXiQL$tH4B!i(a=? zjh}|dE4TKm=JTj?W}KjW{-UrW9|G=@itU;y|z(GuTEz$|ailTlVXyz0W(e}nfw>1OO|VE{gCpALDXN_^BKzICCf7{%bL7w$RZFXE)0}>7-5HRA zlS;Fjh>pq>C_8o27zQCTty7;tm%If-VqJIELdUks<_c5U#jS6Qly<~N*yvr&kp9Ra zrN;PiqVvV*J!D*gJe4ItcgIbU_b&nyiXip<$}g4W@UqYU!ZN>Yd3wYvE<5z~Cs+Y~ zRw#vbrF8N)G-R25U(4>lh)lAGtFY|=7=)aBYbk}|P{A^4V=rndSMJBey%dGFkHgfC zkFKA{NZn-rN+FHc{g_XVZ(hf2m;eJ>ZtawPpUpxHXhTBcqUni{))IOuk$O_5v}(kX zZP&aBC`)mRKq5?zmV-j1G+Q2#Pw(*iXG* zN?{0<)hg7^oeV)B|9**JgXwiqS1-|ByA zKA}y5N!HAPjv`58bV!JyEf-%gR{X*`=o&7(SrP@#!lH%M7V^Bb&}2EN8;|HKq4U|2HBW3d;6} zPmU>E8(d2#1@d3VHT@YWD$XvsvCREY_|HZ7I@MBz@++Q1nZgNUl(;{w>@~03DFO#N z+R&IsqsFXA+m@k-kwROZ8C7MDFzmkf@+iCGsW5$0-c>vx)2^3Y;H*N%vkOF>DefjY z6@SFI7k@EiLntGMmQu-pu{)~nv^ge0<>IfF9>zA2s?d@o5I)bTS!L!xIvv;liC-&T zVyx|mfM^Dz{El2sfrs$mMz25U_9CsL8bH;Hjq1y3HP>1y!C=yCogNiRDyL zZFx>RRkO&Xgj%1;M;!WSvE+KfH6Fy8Dfi-oy4A=sPbu2l8GCb2lhaU9s_)lKE_up> zBX}X~>Q-f>O8ok8tR^^T!VyZvg`iL@leLwG#~q8ku|7xaB=B!_XVHZT=RANx@Ad7LU*Dn{yrBY7bS=+^@%tO`hLt74is6bbc67TBK}XAn{2# zp*L~c5uP8#Jho|p1n%tDcT%(>6FCjT5EjNn3nNyP&GLzX5>Skt>LKY|7he@({Hlw4 z!5XYrmnW)igAJM1Y<(t1c-*WLX+}KF?fdveeyNW5#W!cFO=Bl=fEk9duLbY#77Ocu zUFzHC{`PZ5yEzOhG^?TxD>ioBFv0w7`j45|L0L< zKM26W8y1g30_p>YC0wX76x8y2q|Hdjjy_}254?RlS;wI(vAawvmO%a=+AYwKXY1;3 z00H4_gRI>F?EzbFcZ7fMndkC(9^-}$fDckc&{QBVOF^QID;9 zaM=P@H&-O-^>>`OADe5q9VU%Qfl=Bn>gZi2JPMx@-BIS2e1lr|f7Es5IlM96F4}%q z+mlK}T6Sf5vuA4{ zDxv!wnv!$~re;!_tvHrU=bMO zUe?{qI6v=e4b<;jyYBshf$`UQj5dzJ5R2;lpGFrK+y*_%`#%FDq4!=iXJdl(*Jg%x z?{(kZk-lB2kqu@epbU3B!;L{(4iQqoYEpyy>_h(MDBs;7vbUZ=#yNW|ooeLg|Jmvr z6hC73T%Ra3ru%c>H4kIFht|yPT&~GACm`%h9kb$PArFF@^!s;EsB`MGS9ZYA&0+Jk za(@3djaBR;BoXL#J~&{|Q>sh>mkQRyhZFfAP=k1_uFITS&56;-EYdO@%K&3)KAP~t z_*tmtvPUYi2O?PtNE(3YK*~DOdRbZDVap-3{Ep6IxZ1OJ>ol|K>+z;+dPzymF}0IwwQYhGHue_%PI>(4JM4GF3y2ki2U=sh=J zI%g2v80C;ri??yqG`bqS>u(xR6FqV2a^i$KLsvZZ1r}cRv4oMt5q0HDqSUBy4fOV` z&$rNsh$IogF(+@~pH0!q6A9NQN8E(hvczN#s~hDOblB3AW|zL3*ay#BhGMNaGF&dk z8QLWyd?(#zvz_(L9_*ieqU8F(4h7dCq3YSTT*J8@zL#dYEd(h&4!cLkxWr zmWyN8b(32x&Bt85t!S(wqX#^6dSBbM`VGzR<|?*_Zj*FaV2t3+$!z2ManyL^BoD*Z znn#C;#fd294aDmbnp(!d=bvnwvn|dSAJI)@cKG!t5^4s~PUJJJqOK)bT_$&%za8#} zR0}<^DBxJ`PQn25?&`tKbfVIm(c+)ObZz0qQ`1#nl_=A!*qsErgL9bHW1FI-0|`zC;g%0;qpQ3cs5Xe9JR^5cunY{#@|!`yq9>up4xELFi)t zu0Q+(1`R)BmrnMpx|v0f-6CZ#@oCR4*ODwT!ckvHg)6 z>7FA>>b1xl<*L(PgYkN0qE|1FcGF}3*ehJ5sK2Yk=kA>uh0i55vx+&h^PHXCNoh`-07{CDe4;8I<1+rsqJkc!EiL@cjM0&iR4^=u} zm%_iJT15LQ27OxUe>}~MV$I|h&lTDG%DDKz5e3T^X=%L+u*4jQ^+o6s8xmn*Rkd}P zmBRlit?NX_zW)h1mENwFu*b}At>`E=v+c*7%Rjy+Bo2aw|NHN!85AHAKHtgS@Z5Kx z@F+U}qyBU=aeZCK^yd?#<1zCh49|-tU7hw<&+UL1f?I)w%qBU|&+DJsqc^jP`+dkn z@q%7fJM)O8oL(UE`r$D3L@M4P^!^(YxYFsK?cC|%IdUv$48Hnn9p=IpTl5A2$KBe zUS$Q{bE_dknHpiXtFtWG6$#8s(Z^6Et?QR=1SXU^D|?n+CFhfmR5>LYjpWVvBTfyy z`>6HtLrDbxAG+Q#y3X#6_D-87Y22`}ZQHhOTRV2r#meT6yOBw4HZQB`eG#e3{lw>NLBP0lo-?)JBu2go2?O1nG`2&l|BzC<`bVW|Clhs^yW3~ZB3u(~|@bjR{RDIw$e9Fwy9Ty3NF(*|J zeRoyb_hZhqzM>XggQ6y>ulzAK?Myu?mXJ~PZE%Lre8W4nOKtVK`=?0Q_1?9Zf~B?^ zJunlIKQ5y`-VL*ZhB7rWN7SoTh-G%pJHIe6$I>2e#UKQ^Gb7r83O&S&3%5%wxKPH# zuiq0Rk*!k3Tv%_tj%6>5i0Aaa7VE47pOaP`)kyt`$M5Pr_bYZ@iiX<#@HZ*dK+bDV z@jN=+f~2(SnaQ&a`C44n9rv57Jk@Xi9lhAVM>72eY+>qR%4FIBQ%U~QkLW?JwXOdn z#XW_1KI-|vd|&ALP~@R8>689px{%;8igeNgG_cXX(JP2PF*6aB%aS!-9-TP0)vg8} zkaOFoi_>U!Rt{6E#P1Q!8AMj+F0>sJ2>M@cHXt^6l9*bwW2dH0E z%wQ{5v#+{O*5ztCGM5{wH>sio5r&X?cW>;-M*+oX7f?H^5J@po@Nq6tj)9Zd5Z1mB zlVn$CWKT^#FHLqXF5fdS3vf4gXTE1RIL6W|O*S)M-cnta{J*6SOM_+ht{mI4%AX)6Yjuav6$y^s1JkMhXqsUQDR+M22K;8IScqCjTC?wPSLIXGp^4uOfuB)+W2$c&PHr*jUbvsVU=v;7%k z0QCvz$tfiz5bIB<`w^*1zyBtRePNXD0>GT(p`s_+LvTsVpMZN}?}T6&RUcaff@D&z zg{FUZNK=llEHkfj2M3XTCH0ZJ8$~(uobw#b$E3dwbi8oy84rm4r_K8390f_71a2-M zx%SfkCCTT>;lDqqbpyQ%Hw!=lFi^#OWBT*IeP?l`lLyr0zFl8*eXPu!R7I&Q;_|+t zy+8Q84#>e%>S$rIX}R6P`}bUuc@6oIZY$KZE&fRMbL26aF^^EcTBN+2lJO)EKcsQ> zZz%0GsfEdpZ$09*ekrrv*-J>6>BJi;z<4C3h-2 zWy9iG%fy42R6l_j6YQAPDcG86ouJ$;==lc0a@u0qskhXj&0*DI`j)2Y$)i*Qt5k@# zPpuiB)DsyyLWRchX^-J^+oWV;EQ1cqUdN~DrvqjS39PW|E18+Om@Fhbj$nFr5Qs&2 zM3TK!pZhN_ms>@D7R8sRrK{`V3veuM9~=;iA1zt*<>$X?@gRI%Y~LlE_s}>cy4QH! z1m13u{v?irfQTMkU0ts$r zTXZU>pnKb6Wn+M+%2cNi+^(l*%;egafwG6u=W zk~D44P9`t(&PkM|(ds1Uag8VXW5h=2{+Rdty;4L*uS+EPG%fHy*P!6tiSJ zUQ@VLoRxG(!nKj`g+4h=1Zx>ig%$H)k>N9Txe<4iyJkJ>VdlekMmWG}NbYe)3tiPa zHnC4Sss!+DY!{489G87^%S*X>b93{wA^mHZ7vL7hMHR9AOC=%uC)lswzw6H_)C)AK z7S;`kfOm#!X1fmaFiYYilfNbzlj%ED@!vjJWvk&Q$^Y!iR-k+#gK<|kTi!qr7^p`( zF`@g0I^c>OEPm+D)_BmWC0IO)yNDtn#2$GS!vAa{Gr_X(F4wMmrX}WMD14ANi61jG z-Zu#7fH8QBWIm9h@Mz^nAx=43`ZAUzgIqgN(iZ8V|BbtSOsaUc%aCS07- zf8fUTJpqlQ1o7RhzS$hgq#pJ3BU90j`2GuXpRSVC&mm{`Y=rgC_6FGl8fSOoX8vMB zWhWB0th13X+B)77$3$wQyc_)J&iWSO9kyZpW{jz>hbC4G?p)>-S8ZrXJq@F9}b z)v!}p+&&1Wn`st$t9xqfv8vpH0N6K6AX2D4lehayx_{>A1gC(LRz1bmj){qe*T&2| z4>x6#ld)`9rNM{>%F#DT!C*HQ#(m?b&?aXrsz6<&HXRX~cBEezn$g_HRNN@inBT!O zR$&(aO{}ZyUJz|Yu-bF9qyWg8_;H;y)>up-BdjWoO^?vWJ|@zDoc#YVt7d-%y1+E2?Iq7UhP*SwU*Gb?C` znc3?S+uE=PzPec|@^zKDPXEG+)|eOR2+Lcy34{0kZBk_$v+G@I0`r`p8bQGgE5!|& zmGd82J64zBIX%1e@XHZsI3J;!xe0A!7ffagn9XY-auOaRH4AA12#dbz)n?Lf+he*not z29-d-@1GtA2p_C!kvzi_@7pZ2Y=)|ge8b&-O zTLEaJbo)~c{>L7yl^H`>EJVf9-@m7e9tLU3@e8)E`ij8uZO|ndf12|4iSrs+YDNSg zr71I!ScUL|-3u!vQY~UkZ*+uib(1BsW(nFkK@&@|g*G;TL&s1wbgKp75i6{MY@BdI2K=qg_AYRDN+$tSE7!m>rfdS0Kd005*;#QY0~}4wa|HbkH(! zmTkC3)Q{*O>fo|VCfBl|s;+y%jlEzz1Vw(>tZaA$$y~a3;Z$+*ci;|6sw(eS&Ai9n zi3usx*s4}83%#9cCDZKw--^ZRa#oUyaZ=LUs3r*(-DD0q1{waC7I|F2G;B&`$j8cx z@#CJ1YNQn+3;Xdo@HpX=FB@`cBsXVc=o3__m3IigQ_37VfHtqMcUa9mBjf$AcNsAW z0e+k6?9B#x=^!AOzxwG9!A_zGK7mX!(pBmS(h;qK{{_6@Q?|wk~+qMMuQZT_2vUM0*o#VjM^UVo2GFbG3Sdg$p zq~EC8*ZvZrI^qt&sUP|~?t?p%U;t%)0O;mx$wD~t3muEOKjoP|b$FsS%D@!%-f7*B z+FVIWuN|~B-jHx4l+L-54hwlyqt>hR+s=a&?QuMF8BQGb^@9lF?UlZ8uz zex@=wKoMi(d)?g<@qD%~C9R(!YKc&Cg~;z5l(!A3UfQPAsTO-*A!J5K_p> z0)EoH%r-|8jEsU0|l^?f@KLC6*pWunmJ^#yxyvbBY zfuJ0K)0(yH4~sq9ft6l)Z+b(8L4~~D@rCH%T{50CN;6pGfttWh{xR;vabNd1oa5=7 zlT7gV<;=HgCQ#MEV&;PmWRdmh6Rjy%R2HFet{bqEJU9zfm1<_|a%N1`1=ojQ`3?FZ z1d^5l-PhoRz6-J~cnDA-h4GRGp*tJaV=yD| zp0pIpvd|vm{gBp&nOVE_Yq48d-i@C{_B1p=rP)p&UAW)h3t1vW2YPZ#Ge-{k=B-u= zdK|PB;OGmSJT`013{#UVV;37!c2wz!WfTqoN$|{-S93f6T-#=jZY39!34y{%m?jBP z>hxY-V9Ct-8P(mTNaWQEJH`nF4!rdf$Qr=M=K|(wK-)P%E8%1eK}i4K%Gy_Re`~7) zcsuzE9^-q`-<7uu3_JK0VIJ=YqnSj_yAPEUx9t_o{DNBHDPO!ip{=1KQ96%KJ-_Wy zt^8)9PPS&ZR=@aJ+nmEHk=BoHMh|J}iwaYW%7_JD!7S|Kg&hXuza< z%wE~bmy#Lz9K*TvIq;YL$6;3-JSv}h(3W^}mNTG2{PNPAlwXx9Ud<{ecqep5gG?P% zc-3kB1iM>g-7$1q?QHKWTzNKvCUa39(-QboeB&Y46pPT*a14s6D$$t=WG4C|7K`Ab znJt6oRcU4*p>E(;!#Sf43#tu+&v*(%6}?pW^REI!bgr`>!$9#+&l|Klj}2BSuxZc0V;;{JZiXdhk%U z!ZmWW$bZk89LK*dr1=qGjbg#gJ8eAZ;5tCFldt@)eslJa+y6B}?H0#eEqb z={UGXZfLe-sn^^O);Kz}iv3MXgz~jX((-pO7`?4nYUg@6cI04iu>q8~Kp|{#;+z2__QWn~$Y#=adw}{K@ z!L9jCA_+RsB@-K>NhRZoe>uzml8)ymNyYLHA{nI3s}&3)301j`4fn*Bf2?A=$FSCf zU0Eu#Th8UhRI$9>G~bs5t{XGLZM)x$8U9&i5Ve%DX|gMdgFp9_Y}?=-!^IzE_8m*Y zqYVK&O&IxC-nD%nCJc^O03*dql;|ppa4icetS9_7meA|UQ>_sy&IvtseVXYn zUQCK|z0GNJb@Xl@bCxf&`s^bbK}D}54;$&20Bw|VhHtF7egNeo@IK@9Uk&-HT$L+* zfY7QHgZo*KAoh#KbT@!6H3Q&=i>n=;+hGTT*cnu&%aq#lIrS?X;QrA;q;{Y+XZQt! z#AXas7#L0jTR_w6wEhIW0fHS8tL&>xRpsgIFXj-s#VZNlR~N`@HOa(MX{4B4)}H9W zQ?xfHp!WOQ#k?aI97EkKYWKm;%jL*f8wS(mqX!u1p0Ui#j;M0btbwMXU)53Br@9rpsik8s`-@Jg|HEPu>CM^wYnz;@m*-{93hcnf~tN3f#?6Q;(sy{51kkFqr| z@9djUPRz4Z(jie#!!bD~6(@zXCjF8hElw$g1Ao(HK9&DM@ZO(*wcp^XMh+{{Cntn# zKmPma@;7}ay0u@|tJwH>q(wdCZgWMAa8JW5_HfJkkw6*_m35E&sQ_$WD)Df#ULPR+ z$$dRaD~gIoUWSv|&V`9D8^T%vynKz?93Z$4|;?rX}x zLRdBO?q(jlR&OU^762m_FX#eq3#-Dfuj3hG#s{C+rYo9|xg%$BQ_!F?pi`t>wj4F- z-0lld&b2MC0gtFai0(;vt>^Nii+g6D#NhplOp|BR;zq_89(SHxfhK8jG-DdEz#C&=u8MBBuk5=h)cmr29{mr3rGU%EJ#mE;(A}*~d z)?Z3*%Sr+pX{M$8MIBKZ?h`~#>u(9SK~vdWBK-)qh@NCc|CqWbg@LUtn%(4XQA1|- z`mp>)DY3c?jSKqkeH5CbC#Oy6FHC4cuwG>MW>?7lPr$3XA|;MBlJU<_cL!Kbsz}W6 zhZ6A-QGt0TQAxp+o+QO$-a;aCi_gk$=31zDdzB;yO=;a2WjekXS-uza{>heS8ze0@_6rx*T$k;RB=IU>bqqm#; zbw}GpgZVaIC9BU{UtOUC&FTEhO|y9PSj{W{kjny%UKlYO*IKg|nU{N*=h@|{qY8M+ z5&suWD53~LqV?XrC$Xkw6%^4UZ|xrLILmFV07ph(796ubYB-zI8zJfdxQg)tmuQ5U zz-N&;1v!J0pV!t>eSCt6X3Ef|xw9fuP^nA|g0@!lcCCRT;-E5BuP+xL^Dw5C@l>{3 zL%nT|BDkJ@eFVmA6}8;3fL%URADzeA zfI8V6{s%K0_zGLe3Qj7U?G2{=XT9aB^LCM)H|d~>t0?VxUAx~F{!gg#|BkC{*>+4U znId4beD@!2#}?1)BR*Cp_)2B9{CD5H8A)1`9bK?8uGF4}YPORRMvA7jWBPt{!?V`G zrYADk(h_+h0ukczMsX#AlcA|hvUeBf)!dPf#!I<2ibnTG6e%rMfG=qE#=uY&%0^tl zj?MI%#slwi|JbcqVNXk*QIc?Mh+l9^X2*mNo~YBu0yf!r>EJY^m8_ISt-XA|VD8}s65Y`h|B zMgS=RIyg|rpXL(;KUS`RTttWi^YmT+^Owa zU#pR1K1r16Tt1CT^Vs>#k|CTJ7_n8<#6D=#btS>^eGqwxv&|h>JiD*7Qo$cJwk4g# zq+&vboclL_j7068CT;B1MedNv_6}4PdhD{b_D*Q7=Iv2VS3KtmV634?WG_w7K1ilS z(pM}#${UO&vi4!dz@rbyRf-$5T)?~JaxLPxAg$2?GJL*oWn|QhB*%{0zC9KVDd#a+A-VRS1aJvee z?>$|aB?9??;X^?hWLL-WQj|&qnpA(5xe_zDrShk2QU1ilmp@&_U;Al5xrd;6ycFHl zL}o?{uJ`M=$B(Z8vsM|zH&WYCG*ww|6^1dfPu#YhM@q@iZi!m%6bPr{WL>1~&=E)= zje(Ru$=;6(P|1~*ivf_;jIss&y^1(}jXx9e?qDMev|{%CM(Ocmb~hJ)m_XqcNXAKt zVu|O9=RS$Vp&^BPE;$)Q`Dkg7mL~dnt+dCN)DP*3Eljg-$w#`B$iRpO43?NI;nnv9 zBTL6>`ACjDlm@L)dN;f(38b$zw`a%W32{y(KPP;Ne;Nd|cf%8s$_<6?Vo^ex92V!{+S8*0u> zVbct)nelf%1Q>nuTZo8Jnj!ky_Kdl0ox~23jd~@zoc7td4x-(l5~vHPWYq!sOnk2W zUoJoW$6Dr-1ympTufrP-5XG^JksBu0GA7a@UiF(yYa&sPkno`D@@HbV>!7sT?RjDE& z&BPJAiJN_&FeZyf1MtPHJL>@|nuq8#osn*~np}J28{7&R{Opm7fw6U}8B8Jh^eF2b z%k7m{b==_0}bQ|FV7C?MHwNeDw6Fv0t=ehK?Elb@5ocR-Hx+YgL+VnY>SpR zltBCSx~g%gAVXLak1|pr#0YgDP0rFgr&pLu|LaMysPnJNsG8cf6^rKLg`{u!qiQzF`k8Urn z+U)-jgu+;Tcl*)6SICGt&E3jDlA+R{O3m(!i?_?4&`t>mBoqj-Y$%;o9bINzFp!ySrhndiK<$isZGr^+Hi zclI)uCP))+myN{k&iB-qIjdT}YI{94Vhh)@{f)=++Ag|euN7FvXw0*`qrck&D#!OFayViTfxfq2oKokOmO}^F4vt^Y}{h>HFJD^!AyV|YM zWXL|&l(d8u=zBon{BkksE~z9Ld$L1D2-}ZM)lXpk1+8}Az%}<1y>ti+aan=&5dkzY zk{lhd1C(m;3FVe z?7-Gu(h#jpwsEG$sa<1QR%&YRs$RAmgYN#{x$?}FDZ}LGqMrSfm?@1gu^+e z7Y($bx)l@F0Xx~A{0^#_8FR9CvGghxHU?`SWXz?qG2?i?TR`)N;3@C#K4POf^JQjnJ9T4tx7;J`o*h%%{%X8t+31Y4U8uJ`!#^@nV*&Hq?0bn5 z0WmtRaS!fJYyP*pgeDs5(_Ax0TSNJHF+?8oB5@yJJhgBaT)*TuSbPue`dT;4Nl}{N ze>SU*7^iNHm!z(g5eDq~y&5+oE0xuno$%?M9U!GDCd#t1(P5+Y*x8LZ*n~#&Ek^G| zxWYb%m32z~ds+FT$|0KO9qV#Fpf`+5{Aqz{nw5D$J)cfy;YS|5nstD{lisMoxvNqh zQlaWAV)e?x75jVJ?!AU%I&gF*S8NaNqDh)VYe ztq4fBXpTA-$YL@Yd);?vrYpRKDY#%p$@z|YkeO;j=EP3KDb(Vnv`lU1W0%DHnrl=9KFM&pj zUc>@!hB5)jgsX|L7&fU2YM8cWc!0zkd3KH~>vu;8Vz`L0sS&Jci=53qc7fS~?lQf| zv4i5Y9|Yz${^)`ZGVuyios*{H1%)teA_*6VF$-%Ttw{9UH`h)?d3bZR-evd zs+ZC<{P>HyeU9lbaS&B1V6O>Ta~2 zaNEA6_OqI{A51DqdLky(s=~UKerf_gi0{wtg69)BI z1Lx~j(b2i)p>(ZlqSEi9bVGm~*D~$(N-@IQq|b&T79{!`d=Q9Y$DdguH4F4%Mhh;~ znF;C=`3NnY^%9u7J@X5HohRXfT`s-RbKnbSrG0%st-8#It)BF3F+(6tSs<@HI_UF% zy1Kll{cfp28egBZ%~Fy)=Ek#*I8g1{wyp9c~rMsxN}PR)f9p#xhBjTQYF9zg5_|!Y!vsH4g)QyhbA%E z_|)vs`dD0qYZvKv*-$Cg%w3>oCF|o~N(KqGQeY8?O&O6FH%D&`M1 zlzt}a!E2zsW|5?nE{u-w3m;Yd)WyQPR#x)y0U50(=a;I+QqwNu z$u34Mffb?-Vx0F9XwQ2#GHx}TP>5s$Dny#uG^D$J<=Dmtd`5Y`a$_Q50T_@`$tG3V zLQf$=_OWCJ@|(qf5&cmB%s~!`77%wT$5OLd@4ddDhpYIc9KJ<)a@(}%Dz%pdS0^xI zJa`gSLnr3wd_kW%$H*Ifka|cJ;5XTMKIR5vt;lol87dv{bsvYqKH}XxNrsmLhn{)a z>x66MnvGgB?odsc7;(9WIvgGcahqf6;&%x zuQg)nn*zdKSb~%92-1u_k7hdG{Zh#T?hV8FDdIoCEKvF0Luu#=^MA?VfmY0aOp9Au zK$L=a`@OdR@x5`7E*|M`b`BGSPLl~6L{SJ#pCapmN%EyER1I7c*IK{$T8)>ZLg~Ve zc}xvI3Y+Ubb+Y+tbnL}u)~cOqf96$#<=JRb)Nve^p}~CdZWUc}N`7-q7Kb0jhrMrb zIVXqO<(S^YMx;ErBb_y}Ix8!QmZ?Vz@iL@4TNq1hx1QWdZn9g!GFtSXGU}_gYj&Hx zjHk%}zi+z&GMY6aVnbL08@;d^wUWN}s)V}}Ib3BrJkqynwP%Sz8PE4_Azn*XE(@rY zeGQpkb8NfpKB1m=%FkH}P{UG37(_ZQXdkMhi88{F+i~eK_iczb@1rMwk{Cz#>Z^-Z zC{-@iUzAQWC{Pi_A}>@~Q5TEP#mu)eD@i=jY=HdDirzb4&qUuByTtq%!!#bmXtxIq zDbN9b!x*&Y5bIhToKl)um$UsF`QF^YrOAkn`#L?p5izzSd0Ai3El1{@p!p#KV(C1hAl^_pMao>|a z-xUxWkPCyMot+(;tgk%V0z-eP=YxQPQ6M@cs*Nfh3m73xGf7LRh382{MKXuoND{I? zSFrcRaR9XySNa|^)_zs;MI#Yj`lNU&XL>jS(*d`d5an4^k9^sa!g&l9 z0%!RRn%L*Jzz_oabTsor6-ktA<)!(75aNA8%qUypOcFEjj_fU$P zeN$k_mQ=Pl3YYgUp%-GMv*-|T3iYSU!l%o{eb-U56%0hv{gcwo8-yCICJ{^Xu?uiU z2}e11CXB*Qi{Z<9o9A(ONUhTk{yCAC{95Jna#ke|(}V22f56ht!!<_e72(et;wiSs zh43;xrO6@BQ*Il|Nc*5>wb>?~Pp^X87!qO__CusT5AL0O0XeTOm z5n><}&^t|{q4J>kBDt)muynOGSkOpnjQnO@{jQQ-PblV@}RfNjg1sq6DT(oq7KPO1dRDB(oCk+<|3kjcaX9>iiiei z*DM5J@K**}3B``Xvo%mNfE9%2v9RwtIL-%*rfpAnu^3e!@Eq0ISDQGCXCzz4BEQuz zu%Uxady3rbCR~oXTds?SmW0@wv&^Obx)#CDNl;aZ%96=c+(nUI8l|KlyPYsLn~ zb(qimWihJH16udCWbfI5SvG7hw_{N^Jif|u#|tJ;@T}r4D1%NE zn11{An$OKB?^$8WI$Sh)=a{r{7O`So!&SUp;0WGp0XAbLvi8T6H29)v)HDv2=1(Ut z5(`t7om?z5y3nWQdNKE41<&xI&<@-1So1|IS2PJFp(SVxgN_G9(H83QM@nSZ;3MXY zFhN4?KQM@ljE)16k$e+7G zrHs`v$D^9v21vft3tkL(*IthsTA~-+$ht}9Y7*aiinW6xu=k_H47<*6#kW{~3ns=XQ1_tK+r5yY~;7 zKfV4*XdoRskC6zNqqYs~$N6dIW zz@346(I_G!tWwH7b!qY;{hlB2@l3Me#!FYbu7M(py9|obS*;K!G({FN0l?^IlR-3T z^y(wtz3iycH^;(stZF4f=G?rLWXYqtP1y@|m(++_V%erk4gBebHLw4@ZIg_)?Rd#) zSf+TB!7X<5z_R1~kX*@aG-W4avQ|I&L`j7Y=@k+MJ?4pwdIy8ed1Ul7F_{H)}$ix=%Gf+&N>x#Sa6%)oP><2p(j#8`IPzuS6gT^J;R=>aiQq(cz z9Yd?N+KxYdlS)0$Kgy(0-^2q>$}mA;t%5vBT2jhkA3QHHXbALtPJ~P6HHldda@BBr z@Os$JXt75Yn18+{tJBIy))|2uA~CK@8C_L+`%r$UZ8eSQNDeQ~m>y23JN;VHU+zwk zZt7UYwMq+*mkIjqwS5BVNFwITr*F6rc>XujA5#gssxQZ5GRzX*Ubp`4?%n?y5%efs zwQU6+v4QRAKWgk>&cHS|7ti}GnuxIuF@2K5-LTN(Da$(jA;k&nx%|#t- zD>Z3)20d$X4QkuGQVQ#eM2m7o7zXvv-^xR-LxYEaV-KVrR~VMm zMdDV)AbYBi5Ni4<<<|A~ChF+J%kk*$-)*fIQuT4lTTT}VNhy<&?Uy|hr`d*a5<6n1_e*vMho%~Tw6Nk*O4q+INMMW4Px);L+V7S`1D);J_ygx$M? zNUkgrl=z3(v`I?7KwLgB=tV6It@YetVy^Eh5La;UFfksrwq`NY?UAHVcod060ug`L zDny^M+#wfeDKjk%*8qU|L`P9XvPwK0B*m+`UlIBwMNw3F&=L3h&YGR?3Jix80u= zg92?Yp@Z?7CwgOQLMR|T7?zb&&~NDVXCtL2ShHZ9pQPKP7JO4CfvX+MtIFqaQKTbIIlk8LC1A9m6h;9XHvNV$eS&tz~ z;qZsn+Kf-*>#ko(9Ag4&M+^D`+k&4`0H;f22Ie!h(H&FH4nnSk45nxrySU6kDyw}nnirP{DmtD=Ho_zS=VDa zTn~)W6Vk}0D*Z4+LYSB^a=DRWM-atTR0M;zk^$ugh3u{%*87}uKF4@{70h_ZA~D85 z)I?{BUtDB5>(v|f!%=0f(&aCNTnb$iVzrWa5~X6x*e`>J>1NMng@6>9a0$~K=mJEj z75&8U280{&i2kUZr-j(7T7y*+~uJ{pl|Z5C%?Y+(&4z zZ9mbVXJ(702`19bs_LRMI3p!viCmBA=eXnm?U`utTP<%|i$ztuBGb{S>F6$InwVGs zHLrOmvg`u8)hgJVc>Og&#!QtL zFILzspfn5>sZH-bgDG?yvAxZKCf@PnjEo(qek_vB>RzWCxUH~@{{-InLsF{7(;iIJ zxH3iG(tzObpI7l@`V4ZO9hh7<2V*Jk#}m*BkN81e-V2N$;9=AL*Cwxr`Pk)-^mzR5 zcLytNMj%A7Xm zJE)V{hf-E}T;T|PN1sm+TmRPUg0VCRp!1|<^iEXv9#wpxZ=J3msTZcz_3K?&pH6Rn zd?F64H!tRe72`dBNKYU;vLY;+IhqaWUC}q=!=M_2HqYNhF_kUx`Kx< zGGj&xm8}YfFnH3!lna^9x?1v-+Kpbnr&psRYZ!e_ZGclbQcfu~+jxA@6dv3VT0gY= z1hlj{rz!@C_C|-v&i1Og)Y+}tog3PaWhbqz+l+i1e_{TQ0yLwOlPG*3Dzl4|I=;En zbp;V<q9Ek`3AkMewY#T^1^94sEgYT^`96x4B)V{CQne-y#Ckk zfVj46H)4KOCJBw5Wpav2#XZQ8!MOmQ+RhcG{oKWzn@wb!i?p0$Yu$ybPDhdh=jB!k z?4?Pw28hPWBnA1y7P4bn+pq#DTL1@&Vexzh*({m4GO{Qjz|I_;$yH4*bmwBq{g*Nm zf7j+^qEzk5=Nc)5^yJZWdUQpBL)n#0b=Fb_QbZ*vZ7IGK1gM66Co#1EV!%%ycJs7e zJHTtII4Q<8q{KrAMO*3&3Xjw^AHHICWxI$ z0KW?(Q7Ib8FVgTvb|fvN=pKkub{;(0GjDebx{M37-!)sm(Z&J3#*pq7rbQ0ZJ_=n@ z{KrMcBzng$|MgFZ24~Zzr_YPm|8BRw)^L+K&HV9UO)l+94!Ce>Pl+TE0+Qh?mno%B*1MZh(S`7!S3#c8zzCv5a zW#B6el_II7BF-=xG;}phl<4eJl3>1tImB4Q?8Uc2*Xw&Pq&bU+FIG!o>~&azb1I&I z)l5z@MyQ}Olb}09i`PoGX`7^LXBuM|KdsWkS-mH=MV{HI#NFK29T@Llq&y_;FM9iK zr|L;l;%VaM25MR!EyRR;E~{^2_5LVkow7Twjs`{GDDGVC7S+qOvs`iuhMy zqj@k6W005KwBw$=5(kgE%!2JLg$*fDZc?X}Be5Q}&T(1iDewskUU$C3{u}(E&w++= zfNx=Xt z>z;F7=q}-9zRL{XTruY&gzl8vH70@Mk8&D37w1}wPX`enqNmW@^wJc^zl2J(%x0oP zGJDU}>Q;vP=Q43UP%)M@%p5}15Kt@!YD3UFkigLt^|99&Fd~2O4BjJ7OjuhaI{y!rLmvhpS|4mW;^Fx=Ubn+PoJW3 z;$5oq5^95P*c#q6~d}M9~Af~gc-t+;Wb==YcS?5`15v6 zLOQHF945JbE8?`OE{aapuR1Hy+&ppF@Yfx1w$f04Tcl)Nb zU`-(awnhwRi7IyDv675{l?oT7BXb=rB=PDuTJwvfRjN4Q9IxEE&OpK~H!QNb>Ki5W z?@A5IMj)grv``hK7Ai@*nBCLer6*ew|7p|t{wF09$gUS5J-Ebkb5(7e_^GPgE--17TZ0Ze!1bJ?`bj?IN#ng-+&OwHTXS6JEm%+4CzXzm{hNTe5MPlE zG8&H_t5$u6-{4ggUVR|lAiis5tfWxXV)3F=lwRX+2~4VIo)46kx78hIb3ShaSY zWELsGwzo?`D=w*AWdfngotX`xMs|je@;?nq*80VeM7H2uADI@FTu?VIAB2d^kHO$> z+HzG`as6k6F0U4ue49Zr_YOhaw4`nnEkr13za6%nNo82&9l3)K)EmLE9lYOK-$&zS z&w#D_S~%1})2L%kM4=|>|if{Ruj%L;kI<}{?G03%+dw6S8@jUN(Q z&C@LeuP7_R!m=&D&hUR`e5}2F}kT^tJf6^?s``%Ufl@G=-NkG zL`*~ElVMkXR6zoRChx~Y!!l*%)T{`Dm{Ct7`;8J5!bW$bK9w#Qu zPUbuB)DqN&_bsOOrsP;^RkDm@ufNxlURQPP9Qx13ToelI3}FBn{`* zTtwFwKHN#4D*6)7VcFC;d0!N7+w4T;%Na^IAw=ty`M0amtLE?t$Z?FuHlT;g;p=8R z=UC@&?`g^*)1jS64gvh;Q^W+lEVhyUiQb$YH<>I z1&z#+vm&Q!#P{ZG z1NHJpsS-335Y<}M+d?NdOQAWmepCpAspRxp4Sz7pC%H+a-ytxEiW!SKr(B8Y6bwQHuG?2-i{#q;wV${6 zQmqtsM?2CX4BbZy*gogy13&MbM3m#mzMT|RO$Kq~PX`eHo{9KY8R1~WXfjVcsQr!4 zTXf)ET8-JTbV{xSf%I-Nja&7iRT_dM<5x$Mtmnki?Y^I4f&O?OujCRds`ucUHalBl zok~K(4nx~^Lc8sJ((6R`s#f+{Ipf4N_pAwdQZ7t|M55mKY=X?a_tW<*WX>(Bv-14vZqKbVqMRl9KSN4<*k&Iy{D%22`SFw8!_6E;=lg%6uzTKyOFY7k z^3c)oPb<_eXlu(-r6w0)c7O;UL0PBbgSdyhVRR846c3W@talF$0Tpy`2k*nTB$nt+ zV-W%$HH2_&uB&!KDXzx0)oH-4Tn3JmNiW(Jw~kUTdIeYfh22`m8&vB>8p=BrFRxev zuvI(B0c@q5#^+z9uT&etH%)QeNHHK6$R7^-Kp=RS`s&kQ0JA7_*5m zy6i9bZ4&zFCmTx-AFpf~G`)un0|ydTTBSv7nwGslgGa2v89UBiUYEdFHGHhlH4MU} zEhTibLeuZ>4MoqrtPZ%hJ$j=BRdP0I7M2%%eoa^v5`z({V8Lu~mlejG>7;kPfy(xk zm1h9gqiBTx)zfx_{{fyl%f{G`q|+#V>`g~w+JAD-w%AQw21H{4^WUqdMl=`Xi$w4Y(2kZ0XqesN~uy(xwnoZc&x#U`&U(|5WqN?y6@$iHL{4EK~gUf|_|A;?fpF zQRJ>`wMh*L>2aBS8%ug0`Z^%(__DoB=)FI{}IGg#$oGWC+0Y@ zjT{z5lkrwG-|f+}aDhNkq5(2ZXZ?1CPE{;Z9bE)*$Wk6`b=ri63>e)(_;M_qb0>om z-V!*+lPH_!n_r%|(dtGuOAE(J#b+YPSO-taf~QHf)qgudhMDq9?vocX1&tDVjZ!U5 zDK}q|wlB<$>b!8`Vfs1<<5;c~bYDz=pmMVjD{^~;#jU73du)S>4}$a^^_EV&jQ+P} zfisNP>!Z54D5AB9AUf9-Z#e!})z5uwD(N$mlP77gWPur;omd-fL;V(d~xUc*}Y46QQEBBywV59&J(^6t04oHBMnDxEwu=bh@ zqpWjrc%k1+1A_{6)%#FY+@0T61a%D^2nK9nxM|dSWRk5Dod^ml8>3s1oE{oCTaATJ zJU_w6<15 zYzj`_a+30M^D)`gFwWFWyZMJ(dNzDJt}me3x7o3+5Z_~#fIGrA0pH!7^-rd1d&!Tj zlem#XX(FLKhn-Lsysn2U;$04O86ZPW?=vq8geCelRxdsNxon_)e~PE? z%11WI71w=PIJa({SO`a{(?|`-Y_S)gpHkln+Z#dAAb4ZI#aobBBw_Oa6i5jTbrnuRVY$JU1I%3)j1(?pON zWjiQuR?Nlrlr?L-{yfHrZu2gx|JN_B2$fttG+MFhe|`d@|D7=Z$W_*Hfgti+;6B`y zh&{T`am4b>*65t&4@i1Elu3?9-!>J`4cxop;AWi-cH z2_xJX5ARmu@yp#(5B)R^dR_G}%v(~+i9fX63F1^nVOB+c7HiDrk#h}PGd{syL=VcI z_7$pRJ~Jk?CLqhC)lw?mXLy7uk?5-H36b~DqKikvUSCW3+Jenq=M(KeVP1CbOXV9m z4&(KKt8w!~UuDQ-30(@>qQoN0(mL&ghYYm(8f^>^VdU?_I>P66-A}!5O|>(~Y?H4L z;2MD6A23=CdG3+}|L(9IBE%NDRB-|PPBj1E2}XVlpGGk+E%=z3{}UYqdu3Ew0&aW% zSl|TuO(4=$uJ##*>o=m0MIIHW{{#eut5L?G2W21G#&;H(OO}bjUmpuFE=v%PcpoleW92e_WmrWw@0O9m!L15#bVYp9xv@B%EZolpD<=2 zTe59l=-DsBj3TU*uz+f2Vd4~TrgvZq^`mU9T^>rC(I7nx0KW>R6>T7h>Ovxrf<5va z-RvRY7BJ@O(eX2VA&q|e!>YtlXj`M?q!DKLjpf3=1V7#l0#-YM%8rmUXzXYqkl%1L zHg{)%d;8OSp9SCU8V3An=p*5`8z2TR(~s34qk#K_za#t_#BgQs)vIH6NbTIiRF@y> zy(5OLsSvqahBmyoR2WdO??ABH?(`|Hs6AdV7W9sKAd+td59+9A8#E%7hgoGdq$g-d zM@$P1=%Ug}97K3|A#n~^LYYY}B%_xUplWt8&liDED#(WqW1ZHj=F`^r3mR1-o2F82 zd;Yn-sU6e#*s7CF@Q(o-zIWbK5aUTFcOi7xp?FFi&i+E!qfrV=PnACP@N+E@Aq}~9 zj2@f?u2@~mq4ak}YLPthZhE@Stc4aFTR2#Ar57#4DpLCxB`?^NnjxiM6$}gaPJr?1 z)Su!@DtYz9T+~*MaOYi~vKOWI%Q;Y1s30TIJWd;D3kN2oiKPEW@k&)7$WqiUz zlGnCmlVAtsi2A-}u6LZvI?9a$eHb4v4+tgtUnKlx)7sj3j=Z;iiCA!ibu0ooJz>N0Y9Tqjvf0 zEMpo4_fCsTM|>=&7U5nd?hO|2qNjY7yU5v(8S1T4_uPhy*v^WWD3j2&Q&Mb1DS6TG zV3EYD$`^7z4O)5aLq9h?zRV}sCDYl%J_t_@Q%Iw-XG-{u{AQCZz$4x^1JaNq516s( z^j9_!WRMzpW5;j8FZsvf@5Mq>7VgF6KJ76G9^VaH=b349M!X!Kqo~X{C@))8@Z-XT zt;<{_v*Nv)8JI2PV{R#w%0%r0meUBZ{20#!);&R`@5Z~{!Fkeh5z{oR8A%Jb(Nj^5 z)X}p(_C&RdO~FFcl;VytT*C2qLo6&)ZO9)x1^C%AQ`<|*g7mSnJnhHBo1w*<4MZ0o zku=3G*A`J0)O_{%mpDk;k4t9q=dA-L-U;YplQb<9;j|5DiJ01%#L*Chy=Eu5G~-IF za4uA;v0IZ=0bXeA@4NWukAlTRn;S;QLIEybkH2%cL&PgiJGseo54$e+86qavytz~6 zUM1N6RXmwpgZDQVY`A^CrmPr2Soi#!ni?(QS|uONWNjvVY7KDmY>*~z>Tn!}_8Z_7 zP-AF_3@6X}`wsBtKX6L0uA-D|QbPbw z2u+%FmV%U~lNLw1abaXJl_ut+DS?sVb6+M@{j)>O3@G(wGRu`(4t-8fT?nHC3Shu0 zuf3!_E4=VY2bTUFF^Ow4tI(;urn6mUVy!LX$+v!t{}tcFbOo zU-$+W>wjDF9rBMG;qTYixsRlpW^-t?CHn&F+K6((!~XDJYC&Me5o+57Gg{k$ugsvB zh^P4Sa_xtId1f_qmn$Bpq9Va~3y2qTYeLL(sYiLI?F7X9+w74mjxJ*DP`7|{?Zl1j z^1AuwW;-_zO#_?69+%gov949B-K5IIrmvVtvTY7i!focvdqk^-(f;Y;2w?rj7@;Ghd{`m174C?=d7>x!RdG6&QAGWot4L zFz0v)@*CCw_-XQ~EcSjwNX3$+s2^@8R>2P?L)p}3tA+8UpQ7;Q%ukXsMsfS!I}yon zsDz7hB{nX`K8w4XFN*!XeYp~D#@DWkpCB-%SY+c5MuE6|v^|z|V-o(62};m`Mh(Q` z(``&pF!~u94{>fxqCWgOy9noeP}5G(KV*n_ujj82a91#g`6ph(e~l~0U^{_#$NN_L z^z_B6F8?+JD~9CoVY8QcDH>u}9fxGJ*pI(nd3Xf;A0Za8MMnClJdzaM@_V`kG`&X< z7?QhBpvtqTO{6RrkC@f5mb15C2nR|N-)RO(lF86Y8{N1Z%$fsl1Bzp&{CPAIN+c>( z^PhX<&-x~$N4aHNS*HfGj}3SAZ9%FzanSp$C_dKS8w;2JFozbNcV0D!3EesKHmUh= zP_v$ki6!^2KrxaQB(b0-n4H^F5pO4dEdc|_4(n^x{5lNFUG%C6+RZaJ|G_o8U*qkf z{%*pabZVlbX!TkQY|ttHm2s`%ZR44a;eeqOGwD>^`7)%%tjj{)vLxNx{uMTg8iS72 zJF8W_kzkYQ)6=@!Re&Y_F(2_fsgMvP55oI8KJ*$!@i_huq8TM>e645j9?ouzd~x6n z>%M)J52)7w8nR3yR`>`nZiF2+LYb$#D3S4W0+a8Hhm73oFMsi_q*?7`zEtUdW3zVf zB1s94G(i_8bFE`c;>V%oTm6;lC;@PIN>pSRntOKIAjnsLxLLq9R}XLNI(c&7=(iZI zo;xI;xPUE(=VO8s#b$Qg>N`^^fu;HY>90x!(@AlLY!PNvu*gl!aPG zZh(~w-rRXKrj7~P^wCyK>%R6PCUTgpfox(b`YPQl(vIh?S4=6JtSi@4x% zpaxs3_QMI{Qx&MeBWzguJwM%==9yN?SDpSEMOq6(UN--@;;$KiIb2#)-3$+A68Q7p zaJ93D_ztd3J3F4_8A;K_>j_T1UayzjQpwb%t%U$ z*qO3%b5iHjGG@ousc*_9#udrr>14N~z)aPV@3#P1ys~|`;~%f*U$Q!G5BM z_4AZss~9dAbasUqyl%ozRpQZG8yHR9DgxHpj^l9k-A(#MNBlftSaC>cc&^j@Fu1&m=Nlz4cl!}3C0paBB8RW zz-+FHAN!`us~aFD_7|`jRX)Msb#un}Z)`-;-dj4S6ZIDN^Y$igZ5#D-6JFSF*3o3_ z+DmP>7W7(-Y!3m9K?JHIOsQ#r2`)ZKwp7bc7gzAUwn?%{;>S&ik7Qjt zLf3NI&r`gFeQtU~WJq&^!V)eprtJ}fhFrL2?2oOJ_bFO;{#-nwgDu&!@B$=_FW;mc z0eoXv(YFa|?(H>Cn@ZCOwAgK$D6sM60v*E&iigh1@HsIds52OD`lU)%Sj+d zkH>*puanIk@TgC~RmTN9ndYWXE$?}w+%8)kD}j}G-_-7u)V8wefCxhX@cQ8W@v;N~ zFL>+ps$7_gb$<>WWZ&-J3PKS$kj&~giemUx((z0$Q_rM7PikWlrNC9G0pM}og}RTT zmSje`b^H-OJ$ADjjZZAge*rqSwVI>phwG_S|xjv$6ilwDt043~7;588C- zB+IX>Z>X91j-f`BI$rF$y4WL4y>joxoJY{^rkdC6MY# z{{k2PO?M3UE<}MSIma}0%Kew#YkP7w*!%%I`|!r42H|;vxpo?G9DEz`*Wj*veYN*! z*%Z-avrQJbPZjN~x1nWw{Jl$i{K)J3u>Mr}bE1+~4jy;G)Zo<>Iy7lR#4IJZ|@P+DZVJ3SI&^Z&^>Fj7<{Ti@XC|>?HdKFuL(_B&qCe}e5 z(k;lg>f?st1AZnFRAWCLW*;yt{tVXS!L8IJ*Uz$?C!SNTm~D+3>(s1%xw~G1w{s73 zi?_>&i!(%*ZidzEa+>GzZr7t(m&Y_LRr6$!G+Es;QRHSLppkK600chnJ~nYG%`xA! zwztuyuaH=?_;WEH((^V9q>&zwJ(@cfQqva~nL!%|etN`OIg4lKzI@oY2>Cbr2~712 z(JMG53t+>j{eYcg)AIj05u|QSVFc@`kiIXVk=+a6#v9ly;47Fe?( z)44U&oiSiXvPq43SlC`yxiF}Ql~lx0m_w-3Z~Q=Ih7$}}M+Q`hbk;0>KR zPn=>%SUc{u07YO8@TL=mUBoVoq`1q^Gb#x!DR#PJDAm;s+fV8hIvEKXKXSCY);RND z`k%v}q0vqWR`N+%#u%bvUayF0S;@K3>d?|zM^uw-ZZ^NqlTqE@ZFEikSraT8UBYZl zG9zB@!lH|d7Uh3?eGXEm0luKnLsAZiSK!)eNHn=I@P% zctVJOd^fidU9FOEzE~#d_B>)unErhH&GECik~}LF=eG|oZaJrhqH0XpM4{&#xh)R{ zeZV}xEujWX8MjlR$UZR2^ z+f?khyZonRJ&*c#9*ATYB4L#r{4^%fHeWl*tbocHgEj@lT1fJ{dVKRqOc3nzY)I-w zQv6`Ym+mV5}< z=K+yDy^+DjZZyHuAIjchL=>)Pvh695`vp~?#2O3d!$z2RwuMr^I$XDu4^P!~I3KI! zbVQq-krPEM$a?bR2(2GoMkHd9rzGuv@ypFRfon`1HCh4A+xW-<{I+AcewN||W~{x9 zADlhHq+d0dbxomJp|KiAePBlN37w-w3N)?J^6^J_H!v*!rITNb?T}LsAPgV;kiC3- z{sq1w8F^(NZj`eplS&oz_U(_BeoQXz?K{uL_hsBFAN8Gfg+h8fCOcSM zSZYsCBrW0=*F>QHcukgosDFmZZPwuOQC+rJt{@_UzhQN#Rn9y*`dWuxCbqh z8wGwC1Sigq9HUpxa~ZcGru?LYkEdhB?wG@qhiY5nMYPaLc3e{vnjFR0*8-0I4+QnD zDU;VpV7ARs(S-eQ>#Uv7knF~+G}wvY$S1wone^y=xxPsKVtwWMJ(Jg-ouUnMiP4r3 ze*6#QJ9RRw(7D(1enoV-wIboxf$-*KHl{iVfeKQny*laXII&Wq_6-N#Ayw@s@C|M1 zTEYN`z58m3fvF%>%U8{PYJzF{VpoC2P>?nGAFxHG3&J&``dMEPeRiXFBbFK;b^gP9 zEY*8k+)W1cB&x3LnHF7)XQP%rdOjp6IT#X^b&;J+#yQxNO6ntBLZcFQ`_*2C4-f+* zj|nSdDoo4(-x{N&t46~td#8;JWTl(YZb@#h4$HxZ82E2;W}mgUHI^C9I=_cx|hA3>E)W&B1dON z7hZZwWIXAK)~~+0+s_iyUO=@iGGD-^P-RT>2J;wVurYIkR18ens-#EG;dJ_~^7wMy ze5K=Ql*vttm-A{7+EkxrGpttBZ@Q@yh54ZA3UcV+b*8MzCQiUuQNC=xuOa>JZiIkG zP??uCx(n|qvQV5cJ=golYOPnOHmQUYn%Xq2^1A%Hwl@eUf>Q?L8sJM$Ui1`c!M%us z=c=ULR2Yo4IwJE=jfuE|4QCCJkQl= zR#F!#E*E68h*5ub+@~%diREY1f>oQ*%87<&m1Uv7z3Mh-K=L8Vmjc>ZdbdWW0M?j^ zh<*Mmo#oVE(}+c1h629_Ek;mI-iB^9fU&K;9nl@Y=dOP8v30`SQ9uMv7BE-i|1h$yv2a z+HV^en6>&S>gnmn?u|ISynpqWYsgmv4yO>&O7EIbGx%@SpPrLNf)GLq{w_X<-OBk->@eMI8*@dDsNm zc06%oqSl?=P^veRttN4PMj@v_RM>wgOplCBkGkGhk?WaZ=#erpKYcOzj{EJ__+hPe z+GYZpVTmP&B6ZBP2o{}fpV^roX(^ld4$ScPd6!O?1yR=?<1tD~;{5G$BvT;^H{U3P zTSS*T)ItvKTuZK?Df~gYM_Zo0l?7KzO-Ow~*9K#<$#DZ<>XF2df3O8REv@{uD-5eA z;j{;tnRM_i*Lxk$e?BWf!9&(ORsL2me=NKnh(FFbaCd_4p3L&(ufO5!=EK1lPIO3O z#NFO2SLokNgrgtPvn8jX$U&psWBAhsbi(+m>J0xMF9%V0rKN3s^4Yy7g^)A_q*TI< z`fIQPcC!O4m+}h=C8CUY?Nip_@jJGXZa$ObLW~hySz#aVGp%fJHojT^OvUjS$>CB~ zWUpSA$#|bs*gtnV$|?$`DDQBY+BA;YttLz;_DC=JNMX)RFy?{}du18LaiGp)nok$8 z@w9P*hI43qO1el&+Q@Csdz!4_D%K+$@3O<=(s4@>l9;TaIIO(C0QxE`gJmkpp^_iV zAzaFT3g9-TgCxoe-y9tcgbfVjlJ}q@!dS3AEs_?J%l{Gi0{vXJrWkZmOj(j8uPH!A z2s5I8|2xtzKoz{4pZ@~r+H_Ib@vLRn3|9vtHAMYMv%C2~a;^?W3-A_^l?3WMg`4ku~+T3C0vr+?3jjzHy7! zrKi)*UKNh|o-bersat;KoY_gdUdsj1mVM+hRpogyFn!5PLU{?<+jD__!TubtR;IbE zslRv$q!m~h!lG-K9ihnnzuVP_6#;L_p?riPYE}dg^B)-8N~fQUpegw)#t!niHz`&s zOOtG}h@0lw$EBriE|wFoD<)FWeT5Bs6XH`@8qxv$-O8f+d3=>Z7rUaIh%*ShhFqBQ zXRM6a*aX)BVOO@sHqI9{gozI-?CzepNn&`eGIj} zjR{c6>|HxL;}%0+}c_8d3Vo|*{-02ZGdVa@^cd1d;E0< z`3mwOlmrw7nrp^=7AV81^P9OWLkd8ivdJHzlNx)`7hW%!oizUYhTOwLEV$A|ql&-2 zM%AN_zdxtPomt1Eb$O4R2oNk@HsolNCk!oQj=%>>G?&o1IB&JON@uc4?Lr#vK~jg` zX32)u{OeI%3d?uiRyJkwF;UAfW|2z~H$&{lf&B^6#+fC1Hb&-nI_4Rc99vmA#0PE; z(|vW`K3pp)sJ3e@}e`hdOA%x zurPU5CZPx(aOsIm0$s?#gxJuMS|+CLwVFBur`l*|G6w7?S#bii?U|Da`)G!w>cAiX zf|Za_Wt!*CqI|4;!Y6=-dm0>cg8X$dk7?1vz4N2@cTv#QSWsw=d+5OSg!9f6;GJ<>e@`T|Z;+ckZ^3u{$>TREb4$@$b z?K(A(?udxpzisdatQz!|wyG1O&E=Lm zA^*}lipNSU5ps_0H}Gi*axb??&H9C!XrCh~J68F1!L=248qs*x+0KFqG&IS=HvFla zg{V!eM$ra5)_f}YgT{A|V8C|0MoI|4Vn=e%OJCY%iP*;^a|}VBXl)_2Re&~c54$kQ z&HBclQNy9x85SJvIfNQD!S+FY2_qkhLS~r20#pro*FXy83?TO^jOX`B;oe1Dd23J9ysxtn@Dv zh(`Xccvm!&Zi_0ka(jD=I1X#xrwgrpG)0Z!@Xei`JB`6?Mj((0-i2~RNmHU{JglNy8B9eG^@UeJI&K5}EZrRRo z`##N{N%tw%fFtg@A+8%M`I_;b`$=Gdx*#({i)%gCM0 zRa9ii@FKhgRn<0q{y~w`%ZrTMJws5|+M2eS%1KWbKK&p`yVMCkeRyC)NUMfaI^)J* zZ)rKY?|8e|XrY~rQx6MQ^k}XUI*WgRMX?KJ+5#sYkSrwXETQf~v$9A?HVm3&WCj4G zU!32m8z>IH!|QrgcFj4darZATuFlua2TZlo5gX8fe@7v*c5u-2*lF>ITEZ@rm6eo*SVA*9XRW~1{Ga{@wc>^-Yb7 zck;rj=k*O7ymHqKo=qu3^!vgfpCOZ&*!Hqa;I`6UXecM@KzMJg(0awo4~j_^q7sJI zIGZ)oz-WyyXXNpb=H8d;RXFsi(~6>P-QL&=%*@xW_7%S!@h;8ugyaW=b8pq6)y-cd!rt7B=mXRG1j5s8J&&fhjR1PFFM&LeB_MIllUy z7(lbnTBsIYbzjvwwMGi!qv<84*4}}J>Bkn=PdMvcF`Do@qsLDZ>pXco1S?VSXk5HD zA`GAThMOxtE!NbR6_btMXNHy191?4iIv$eu2q*f|t``albJ`_cWUua=wYu&_9j@)Hc#2f2W}1Nf)*KUaa*ZwN!_x=VZ|T5%l&}>6;#Uu80DP*~X4nTdy7FF13Z|s7gVybTHWUWNb-mq^3i1>Y*cXT*nIc z!K&aeZZ*|p@1Z)^dBqNEAti2Ghe_6Zm*@)i@-T6r$x1bMVyg1&oQHd%NVpX%%YdvJ zo)L4sRN(7G8?3_V24mCXBJmfr%1xH7Jn-#YcwN}>q^Kyh7vc!(n0OVVODl6v(MR;u z3T2d>Eo(#4(-_jum*(DlPfm%LP2YOf(y zro@qmT*$YjeJq^%wV#$+F0`T9t#kPJj0<(@Uc?N1Z?J>5BB?%(`bnrsa(((-dnSX} z^9#_s$6j%Oq4i2pXH}A(E?rwZOtTXd=S^nf*-bsF7AwQSgk%>rXlhj@(?pm)?27E$ zMh|m}ELBg~?PiMIaF^@v{l-I+=+lNw$44|PH&eVT8f?Pi6)g_*ovr0U_KW^}Rl&~H zahErBIX|AM{5}ONTZJCGoHS*rmSCly?BW%UkwnAgoGdmKJjf2{Kc^!rvXIsw-_Lr0 zYWiG|AYQ9in12GU`wxUCLydWC%?Fb&@&5`je+S1CBC1KfzsOjmz%Xj7vsmEVR>=C7sMuy`h0JzS}-`n zr!Q9Pp=yfv{O!sCTVMr8VhbMaK^q~7bgJ?#wY{=*W?1@jBEdW7s1tMhNuB7(LAb&S z0ORBKAQAlwh5;Tgr#5ZX{3r3-3T5xN`L-EVYi~YX(Cw1DEoEVurT+l)e_d)8Me0zg zogMHrbdg$1JZ0Pq;JxQA$K$Ilh=Qr_Y49~X1m%R4x^w{+LgtnD!AcgScy08ft0a1O zmT`IRb+FU&Q=ep7xHiZN2jzshHH^PF*5WFD2h_TvFB5yB%`QjjC-X5W2YlF55^#&F zcZQf2J;9g95Z5aU3lgvEYKrRgE95lm)d%c+H%_lMdl2F*?_d|ib;%1U{3`_cI&W)NHVr85=tSNUrX+^%|J z37_)ajimo>vM2@Nv-1t5Jyp6^Y7350@s>jJ^M6K{j;Z6Nhz126i3Dm_2 zy;f1Jsisv;xQnS$y}&I4nnAKH2M9tsDlPBiX{2$-d%vry_x#FSi{-=lu2O12CFe$J zKls}}02BlUArsh^XPWS@EV<-~bXLl*ebFfTqNrI{uwzfY=%4O+W7W!+I{1Iq4+Ol4 zaXW~_^Wly;ZRJqcYsjw+&B^qLuPDBG_lm1wD_feO01oc`oxM5OPA1p zG3$HJx{UDZW)$#x&HU;49LXH&)amJ8D&G0kT<*gR$=TMxfK0ERZMbr75kie%>|2k{h!g(t*`ikWWUI?|e6~W)Bou}bzZ#sw%NN9>-5WX4AX)tR z#InYZb)tn)94zs4<|1f9mSf5yCmg&@v~E>V(%~UTW(5s#%{H(5oaPr5w2UL_zJ0Q` z6bRbqPIJnT=0agfuIwGA)TXyEY7e?M<1@tpCOZYCeVu%RF?$Za_H@34)74WKd~@Q8*xm`ZDIxik ztUEkP!BruNW=T@V=d)C4n-X4QGV28Mw0Xq^i@!Ny=8y*qb37=L#|u2YO>{(0PFPeo z%Ux-$OH&Qgl|$G&t4iiKosBEx3B6@BuxZIDbeZ)_WeXa+8mSWvDu9y$ECI$^E6qmV z-7+5C9bTi5rw5wTj~t}O%?M~!Rcp}iIe5fcrMobaVQ@R8U-o{0#3|r7N!CI_5OS4r zks+{8F$)z;Ri)?NvosLO=&-?;M=~>yiT>5dp%M-TOWqubD3szScABIR?y$y@l-W+6 z=WgZjw}Pe|;DBgUpy>fiq?-G`H=&`Bd zM?|(`f354y%|8L}yU^X0*5#aozrXL@HfKfeKc?-w1@yRve@Z0nI2GYH&VX8<7;MDM zemt)^TZhc|AO%BWj8gsji{IsP*bk?P)&;fsTUmxWc(;ZjW)ZBx`1#I}l@B5=X5*6ypiZVq2 zmy+g+Pr<4}V%&B}LZen);F{grS06|%8RpF8d7Xy1HD@f`2;xW{+7mddlBq(st!1Qd z%Q+~#_CH4zNR}Hd@wLlBLnmW~H|h@u2BHa_y*PP>yazW-J92DBtJDKnJ>rD;8mc$k z4!A4Yzqwv~sf;O-9Sxvc4PE&x#TNU#zP0d)5HmHeQq8(spUsZO4R6Tj^*)tDK?fy$gK)kX6_gY#l4x41Oh<)_(^>t-U{x@&=?tR72(W|j~8uuUJkZ){i zYBh%vVZdd^t0#IW;TP0Pz0@G0EQ$Qw7 ztHdy4Lnrm6GkCqIp;|Vsyk#>h<07a+tsOPLkuBd#MV!hWQVw&*OINR^Be1HIaI-3q zHrt>oh~obFd0}k$bYqeYTZNPh+wx#9URwa-dFXmF3wc+cX zD;;1=`7n<=#Ra5YNUWVRr4y^hG`21xyx~Pp@0;z&ns8fZ24^bU^kK=wX7hZz?Ns-R zvT)d@FyGQ5_zVIe^nz@CV)ZV?<#0k#1-yQ+&6AAO=e@2)PBS(xR3%JLQbV6mLo82K zP+A&+*Iy**_X^K*IfKVvSA?1ti0cCr;rX|`vhs%(63AKAe-4Mkn<5~DHqA<}PpORlc?ol;Eo==_BoMz zYs?am%9klG==L<*5nLy& zx?z?jzbJiScAfqqq{Am(#fzWZLy)Yz&Z#KkUM_UP*}g)Zf2@Pn{4-c}Q?M)X8d{td zP(D_)INriqd+VnZR8HCGyl4a!Rx1~|vpDU%p#lCvWC^Q);EAxlpNeobrNl~i+$$6} zXYFX@_kx(M9qIdI8KiH`pr}ZDs6zXkU&)`mJ8qkOAk>80@W>w=9Q;AJd?!R4(QDF; zA2w;r9>Z#D`Bj^Tx>Cva@FrY?53GDh4NI#?N`CM4rj891y>%TWp8(JOD7 z)MrqNgx;RM8D|pU5^x~1jI{&w5BFSD3D7%=WVEHU$kAY=TFtotLQAF0g2yF2v;7_G zBbEkyE{_jv!N6}CK)|3r9BMdjNqCWUIn521aM+Y@mNpa+M7iIJM zD;Sulpc#k4wV##!cJaa!bSsQ)Tq(i#P%4;z<6S$J1Yu=(-lQGRfq=4Z<(lh_XteoH z)U~V8$C*Dfv*fu0ugAQXxyF~uK-$x^N~m-uNqaRFx0*bU{A!N-v*ErVcfn9E3N^<4 zm_+TnWt}D=VZ$08wV8;D(fTt2^j@dp!R{9GOajliVRWpE`k9Uup7cwiCV_G69M7y! zlW{akIupYtP*-1_T&ouZWe1w7Y<9*$6fU&_=xAMtOB=xAkze|o4kDS78s$kM7-E0T z>;n4^^c_upKfJ{w`F3{XZ*-~3~&DNR8-c4fGK1Pmt916N>Fe$M|zZvTaj5IARH zBnEs&Vjrg5=|Y;^x^ktP3~t{8xwEW>MOnwQI$f`O^1%(U)ZFlit>k%}rgUY;UVtHA zccui~0Gf0N4`Y+LEINs)y93el1`6umu}Hw;;xO+O!xc=mE%MD z>UJE2C2k8$zSW<-qLN=bxAT-h*5YE%iR!S(z_d(jO{a?UQ@tYfQi^bbr;8MN6J_Yy ztTl)E7k?9@hiul+x!zA-$m?t42`+PJZk#h;Kn{6<08r!y=N#E1o+xGd-$1~S_n0@wMYwfjejGnLIv&tKjKqv3N&(h?sb_zZ$ z4iQ{J6I}Zo!TWq$pL>eGI-P_y=GZUr4ml9*wzrq{5v}i<)y*vHB~oE^2n2o-K1g@l z-8fjMRjK`6U?%ZDi~8G`RY`OO-rfRAB5> z(U-O7UshzFadQ4kph+Q_>lpXbnHdM%zn1I`Ly@*r_>900n@LV&Sx?% zggdscuIxrriD~LhyyQoiYu2<Z@$ntI^9GI?`@K&)XZDH z4ZC5F$a14RG$6@Bj=#ver^r?KCQdQLEL*(RZ$tp5wY+CfZI{WL0KN}*aoh0$JXqv) z2R>K#AkjkXdS>IE(#GpdEQwODpa4nz5I5?I`{OyEQvV@?b;{77yCGSRIu6>XX5Y)6i= z{1RXk@llkk5!&$4ZJ)x{@zk*3;szv!#ll*d3#Y+Jzxk8hGFQA-eu~j5NAtU)+KxzB zJ>HF{KV9U7(lJ}47BmPmsdt(OBP?Fc`08oRlZ|1Zw33YrC?HW+Mr6@o}@Yfisr+?0H56vOd zl$TK2Pd(6~g3q-<`ruLcwv$x3Cv@>e5nNn2j?|DOyM01bPveU7%8|X-uOO*fbI-UO zSzi?&;w??4R54h=z*xBw7CS^x=B?7v<^W382@_YOo0}kgSLIihmyE@HltScDnXs#F zBddpC@M5B+L1}#$*%;;_Z`u21$Z&2=VI2Lmdd!zaZf(n_ZFg3lRekg|x|*~MH_u~_ zoP47MiZZTqpYB+xdEmYp_aKl!x`HX}U~l%Sjzj3yq??@2TrY7P<41$Jourx-X*rZo zUz_YD^@K;s8snCLcad-mhM|KEF?1W;Ef^Li7b!?!A}4+M>jppMX}v@*G~&>^O~xEp zu9&6{O=6kGvq>|80>2#DWev*5uv1&ICz~UF>p*+MvXy%W z$NE7cN#>|=Oeof&UFjr|k~9RVsJudUbb2;C%Z#?7kjN-y<-W4ag1{wd_^TBnnKP&( z`QkEHIpBa#g7s~*Ka4X^j_@gzAVeEqn)>T`&1NKZif{ z9+gbAJ$4G?qQhrL$y2E2C-o)xrZnmr1si8hO?_a>o|1!+M}=f`5m~Z#$}GNZ54E5I zTM~nXcV&=42>84K_Sb}(_#P}1FWJ!QY~OjU>-`B)ZtReLZ1eBZT+^@2mwB07GbbV< zQ)LClcjbEO_&9N?lr*a}mj|-qa;EA}BDcaNE;UaES`H?f;qMj}f@f%k&{vtBG)0YD zS(I~^jBe8UcJ%w+G?C{OZ^hkJ1=C4z4c)pVr4=|Dwy5)_C@*Y!9-r?DG~p33`LfqM zN?6s}w*R!*?RQbdjUQ#Rp5!y_lS+=|-c~#7d0%1sq3=zdlF-DyY~^=}o|ineg&v91 z()iwQ2#Dd5y*&!-;LyWnG;ZtEO_EAAE*TUzkWHKuS4Cv z?0xyuAJl`gvAMl)UkChK-9P+IbdmD_85mHP6peNgzOX^sf!-DGaqy>di5u^oLmf&D z>6MTU5a@F4=}@$kNRMjR6{FjdSt!BxE*cG{O~&k4*)F8`-hiS0JtH)Bp8TwmBXzy5?OqVL z6CJZ7Q(CpW>m9W%xCl8;ApZ4ZY_2&Ax&P*lp({FGLcp~}BI5b6wPQr5B zszW}Y>1*5xZp2-&yV|Sv_UA5rgkyKn(4(pD{kT7WupEF*(E*R$a<t`ledTD`_5RlJ1gvgYE*qDQ(v=jMw<8o1DuS>-d;cD^%)iogui3td^&83KKg*2|q<4{cA-+(*` z7+(>ii>7=F4WY@2pQjq!uTlfk-BPNa{9;|7LZ+a~njcAS$8Y5if2#&jK~Yd2cKKTL z40n4l!Zc5Q+DSIl9ofyy$8ihxt!V6;H&S>fw1uS?Q1SL`)H1(yXZ%JtU@~ z23HN{b)v__z4q?lershR@bfMz_z*0s!H~S?um71dpjVA-PK2r+=BDz+f|Nkh?=GS* zrj${)i$BAmx^LHEXli=W98pwy!w6(VS`R_bCT%sUBKi)3ojVzit5Fc+ZC-yihiV_ z)xs>=h^UG%Xh5)pY>nt33fdCm7YhF%n)^wfg6)1De|a)Gc(W_noI*M_svE)tS0<~h z5P6grOa%3WFQR4Y>8yN=KG3m9s_a!nNr8InJYj%4C`DLGY#~G}@g}4IS6TRSb1fU8 z$dZa>M_D7r7+iOos9sH}LYy~4`8|aAduh^jP&Fdj{xpQA(4F~2-hTh(sALYinsCk!{x;AgOyMLRDM-33x}T}Ezl-sC$|}H_KPE(5z^L0EU@L~ zGKhM36uRB?=n)7d9Ao%|X2G(J#_iNeOoYdAP8HeX$xTOCBS{CUX_wrc@IcKU*HR^{ zg9>f)86#8A5+622eIR|$gA|D&W1S+nP?J!SYPQQ`_M1EtuhU!L8eSj`dWfweKZt@g{xv) z?S#ek?gFFbvjzt4Vx^Y3PqX*AMl?bF(z~^4ePjpv5h7{zD$%$>QXn%|0WRf+0hB(JhfNQ%MPN<(6{Mi-W?3vmQ@%QvCSlb>*N~#wRZ`Nim&l`+FJ` zN=u{=gfNiBZJF;`FLf5tsSmwY;W=bImL^K|pxT=Awtsyba|e78=sKaVN$P^ya{qwG zK=mV`pV6n%?i7QOl`19~3vz!m^SED#KwzFhf-Wx}bJs|eu#Bu^uSM}l58x9WlYb!; z0;j?Hqj-J4nM5OduNGJ_LUlsYPZ~qp%Nq%@==&d?&gQ?xQ@3wjNq@oV|C{L`{MZPw zNRWY@{)uXV;pa)Ux7ZfWS4>R&sbRA^-L~0HxL9?zwuro>t1kUoLGah)UV?u6Vg~|L zhSy4V>U5h6pRy*1YL-ReE1kt1-z6kWL-R+TsQ)n75W4dx0^+bM_}dm!cI#5TLk9(Q zRk3Z!KtFZkmJ(jvJMW+qje2^;fdkqCEZPM#Hee{Z!ywdCm=SJafR%%@(rFNfNGDwo zpB(SLG9_)|F=JaOokV%HeYQwxphYu>J}eX)C(U@qFjby%6cNOc3iwNyI`+!Xsk4gP zU!{JrM$Zx?vz+M>LWqnpM z5>dQo=0}PF$4ZP9d2lmtLgYl10##i7Y~y0me_fPzB_ns2qSDjLZKhLr{90m zc10n9YYVeD5|cn*NNGG6;%5PQa^u`MTgI+XGl`{moH7%c5x2eIp)9XWh{ny$J#%%A zC%$!muJ88zc%01 zQf65aKiuHpH#y%5_-fXH$3$8WGr3|`JW2SVt-dui6+b}%CaSz%-^0!bX_%rg# zCJcoQL#mb3(%F+$MtgXpATL1f9dCa}HjXurm!|HEjx%L>Mu_Acr;IqMFHLWObz3$A zsr|x>$u1#^Vd$C(t?aL~z^#SNdmKZm`hB0>H4ase+g8)?ykIEQ@mp55$5~$$PloYl zo|=aE%;qsz>rkG;-QDk7{HsG+B2)L)wDWhC%3>Tqu7EZEI&4mWVTv>;Vc-szI8GfVclbd=}s(ytoc6Qk5o3}&4C_`sv{s;5U zpH%%UO)5Q{j$hkkLP|SSVW?D2P8k&^)<_){+lRcH=fT*5#Bp{wiCajH%dm*|y3>2I z$pnn#1GWq(BBq_NPwWyM#n@~nevnVXz15RNKI+83)0br?Bh;i%>Ghu41oVNJl1Zu)i@bTg8;NvLx?rEc)W zl0nyjbgzxr#A;p6-)QsREs7BB=z*F4c$k{8YTV{1+dzj+k$5W|+k?CpWn~_*A|anm zs02Q_$J59L9t;`wmxI{-xV!@Xc>6;JUEle!3`n~j<`&$&X)ryU8AAOq~NovAAVxJBoYZNb=&EEi}5 zlrt@y)TzYp`7Kl7s>0Z*1xqYS9U{fJiBMq;c

>I!RKgw~V9_z&LF0l3XH340l+edliXTtg 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

8?QbO&i-K@x&sM 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 X?lq%%6qZ`{r*gWQ1{!s0_AmYe)o&_d literal 0 HcmV?d00001 diff --git a/core/designsystem/src/main/res/drawable-nodpi/character_angry.png b/core/designsystem/src/main/res/drawable-nodpi/character_angry.png new file mode 100644 index 0000000000000000000000000000000000000000..5421871709962b1db6f5be69623b6a06e6157523 GIT binary patch literal 27633 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 Date: Sat, 15 Aug 2026 22:38:27 +0900 Subject: [PATCH 02/12] =?UTF-8?q?fix:=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=EC=B9=B4=EB=93=9C=20=EB=9D=BC=EC=9D=B4=ED=8A=B8=20=ED=85=8C?= =?UTF-8?q?=EB=A7=88=20=EA=B3=A0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/designsystem/card/GamssImageCard.kt | 92 +++++++++---------- 1 file changed, 41 insertions(+), 51 deletions(-) diff --git a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt index bfc30eac..e297fedb 100644 --- a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt +++ b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt @@ -2,7 +2,6 @@ package com.gamss.android.core.designsystem.card import android.content.res.Configuration import androidx.compose.foundation.Image -import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.BoxScope @@ -20,10 +19,10 @@ import androidx.compose.foundation.layout.width import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip -import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.graphics.Shape import androidx.compose.ui.layout.ContentScale @@ -38,17 +37,11 @@ import com.gamss.android.core.designsystem.component.GamssIcons import com.gamss.android.core.designsystem.component.chat.ChatSender import com.gamss.android.core.designsystem.component.chat.GamssReceivedChatBubble import com.gamss.android.core.designsystem.component.chat.GamssSentChatBubble +import com.gamss.android.core.designsystem.modifier.noRippleClickableIfNotNull import com.gamss.android.core.designsystem.theme.GamssTheme +import com.gamss.android.core.designsystem.theme.LightGamssColors +import com.gamss.android.core.designsystem.theme.LocalGamssColors -/** - * 캐릭터 배경 이미지 위에 콘텐츠를 얹는 카드 셸. 배경은 모든 variant가 공유하는 고정 에셋이라 - * 파라미터로 받지 않는다. - * - * 실측이 고정인 건 카드 크기(366x528), 날짜 위치, 우상단 액션 아이콘 위치뿐이다. 그 아래 본문은 - * variant마다(버튼형 요약 카드, 채팅 로그 카드 ...) 구조가 완전히 달라 셸이 알 필요가 없어 - * [content] 슬롯으로 그대로 넘긴다. [topEndAction] 도 슬롯인 이유는 같다 — 아이콘 에셋이 아직 - * 없어 지금은 호출부가 플레이스홀더를 그리고, 나중에 실제 에셋으로 바꿔도 셸은 손댈 일이 없다. - */ @Composable fun GamssImageCard( date: String, @@ -57,44 +50,46 @@ fun GamssImageCard( topEndAction: @Composable BoxScope.() -> Unit = {}, content: @Composable ColumnScope.() -> Unit, ) { - Box( - modifier = modifier - .width(CardWidth) - .height(CardHeight) - .clip(shape), - ) { - Image( - painter = painterResource(R.drawable.bg_card), - contentDescription = null, - contentScale = ContentScale.Crop, - modifier = Modifier.fillMaxSize(), - ) - - Column( - modifier = Modifier - .fillMaxSize() - .padding( - start = GamssTheme.spacing.spacing800, - end = GamssTheme.spacing.spacing800, - top = GamssTheme.spacing.spacing700, - ), + CompositionLocalProvider(LocalGamssColors provides LightGamssColors) { + Box( + modifier = modifier + .width(CardWidth) + .height(CardHeight) + .clip(shape), ) { - Text( - text = date, - modifier = Modifier.fillMaxWidth(), - style = GamssTheme.typography.subtitle3, - color = GamssTheme.colors.gray900, - textAlign = TextAlign.Center, + Image( + painter = painterResource(R.drawable.bg_card), + contentDescription = null, + contentScale = ContentScale.Crop, + modifier = Modifier.fillMaxSize(), ) - content() - } - Box( - modifier = Modifier - .align(Alignment.TopEnd) - .padding(top = GamssTheme.spacing.spacing550, end = GamssTheme.spacing.spacing550), - ) { - topEndAction() + Column( + modifier = Modifier + .fillMaxSize() + .padding( + start = GamssTheme.spacing.spacing800, + end = GamssTheme.spacing.spacing800, + top = GamssTheme.spacing.spacing700, + ), + ) { + Text( + text = date, + modifier = Modifier.fillMaxWidth(), + style = GamssTheme.typography.subtitle3, + color = GamssTheme.colors.gray900, + textAlign = TextAlign.Center, + ) + content() + } + + Box( + modifier = Modifier + .align(Alignment.TopEnd) + .padding(top = GamssTheme.spacing.spacing550, end = GamssTheme.spacing.spacing550), + ) { + topEndAction() + } } } } @@ -285,14 +280,9 @@ private fun ChattingCardPreviewContent() { } } -// 디자인 실측: 카드 366x528. 안쪽 여백(좌우 48/상단 40)과 우상단 액션 아이콘 위치(28,28)는 -// GamssSpacing 값과 정확히 맞아떨어져 spacing800/700/550 토큰을 그대로 쓴다. private val CardWidth = 366.dp private val CardHeight = 528.dp private val DateToCharacterGap = 18.dp private val CharacterImageHeight = 156.dp private val CharacterToTitleGap = 42.dp - -// Figma char_image: #FFA8A8, opacity 30%. -private val CharacterPlaceholderColor = Color(0x4DFFA8A8) From baf30e6d450c35660dcef901eedb32ffaeb07f61 Mon Sep 17 00:00:00 2001 From: soyeonLee <109227292+soyeonLee126@users.noreply.github.com> Date: Sat, 15 Aug 2026 22:41:22 +0900 Subject: [PATCH 03/12] =?UTF-8?q?feat:=20=EA=B0=90=EC=A0=95=C2=B7=EC=B1=84?= =?UTF-8?q?=ED=8C=85=20=EC=B9=B4=EB=93=9C=20=ED=8D=BC=EC=82=AC=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/designsystem/card/GamssImageCard.kt | 119 ++++++++++++++---- 1 file changed, 95 insertions(+), 24 deletions(-) diff --git a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt index e297fedb..d53674c4 100644 --- a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt +++ b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt @@ -121,30 +121,46 @@ private fun GamssImageCardEmotionDarkPreview() { } } -/** Figma `Type=Card` 재현. 캐릭터 이미지 + 요약 제목/설명 + 기록 버리기/대화보기 + 공유하기. */ +/** + * 감정 캐릭터와 대화 요약을 보여 주는 이미지 카드 퍼사드. + * + * 카드의 고정 구조는 이 컴포넌트가 맡고, 캐릭터와 사용자 동작만 호출부가 제공한다. + * 따라서 화면마다 [GamssImageCard]의 간격과 텍스트 스타일을 다시 조합할 필요가 없다. + * [character]는 270×156dp 영역에 배치되며, 의미 있는 이미지라면 호출부가 접근성 설명을 제공한다. + */ @Composable -private fun EmotionCardPreviewContent() { +@Suppress("LongParameterList") +fun GamssEmotionCard( + date: String, + title: String, + description: String, + primaryActionLabel: String, + secondaryActionLabel: String, + shareActionLabel: String, + character: @Composable BoxScope.() -> Unit, + onPrimaryActionClick: () -> Unit, + onSecondaryActionClick: () -> Unit, + onShareClick: () -> Unit, + modifier: Modifier = Modifier, + shape: Shape = RectangleShape, + topEndAction: @Composable BoxScope.() -> Unit = {}, +) { GamssImageCard( - date = "26.08.03", - topEndAction = { CloseIconPlaceholder() }, + date = date, + modifier = modifier, + shape = shape, + topEndAction = topEndAction, ) { Spacer(modifier = Modifier.height(DateToCharacterGap)) Box( modifier = Modifier .fillMaxWidth() - .height(CharacterImageHeight) - .background(CharacterPlaceholderColor), - ) { - Image( - painter = painterResource(R.drawable.character_angry), - contentDescription = null, - contentScale = ContentScale.Fit, - modifier = Modifier.fillMaxSize(), - ) - } + .height(CharacterImageHeight), + content = character, + ) Spacer(modifier = Modifier.height(CharacterToTitleGap)) Text( - text = "오늘 화~나네", + text = title, modifier = Modifier.fillMaxWidth(), style = GamssTheme.typography.title2, color = GamssTheme.colors.gray950, @@ -152,7 +168,7 @@ private fun EmotionCardPreviewContent() { ) Spacer(modifier = Modifier.height(GamssTheme.spacing.spacing200)) Text( - text = "설느닛람햄을 긱에자네에 신손 겅투히오의 흐랸비의 수매해으는 하어이", + text = description, modifier = Modifier.fillMaxWidth(), style = GamssTheme.typography.body4Regular, color = GamssTheme.colors.gray800, @@ -165,18 +181,27 @@ private fun EmotionCardPreviewContent() { modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(GamssTheme.spacing.spacing100), ) { - CardOutlinedButton(text = "기록 버리기", modifier = Modifier.weight(1f)) - CardOutlinedButton(text = "대화보기", modifier = Modifier.weight(1f)) + CardOutlinedButton( + text = primaryActionLabel, + onClick = onPrimaryActionClick, + modifier = Modifier.weight(1f), + ) + CardOutlinedButton( + text = secondaryActionLabel, + onClick = onSecondaryActionClick, + modifier = Modifier.weight(1f), + ) } Spacer(modifier = Modifier.height(GamssTheme.spacing.spacing200)) Row( modifier = Modifier - .fillMaxWidth(), + .fillMaxWidth() + .noRippleClickableIfNotNull(onShareClick), horizontalArrangement = Arrangement.Center, verticalAlignment = Alignment.CenterVertically, ) { Text( - text = "공유하기", + text = shareActionLabel, style = GamssTheme.typography.body5Medium, color = GamssTheme.colors.gray600, ) @@ -191,6 +216,54 @@ private fun EmotionCardPreviewContent() { } } +/** + * 이미지 카드 안에 대화 로그를 배치하는 카드 퍼사드. + * + * 대화 내용 자체는 화면마다 달라 [content] 슬롯으로 남기고, 카드의 상단 여백과 셸만 고정한다. + */ +@Composable +fun GamssChattingCard( + date: String, + modifier: Modifier = Modifier, + shape: Shape = RectangleShape, + topEndAction: @Composable BoxScope.() -> Unit = {}, + content: @Composable ColumnScope.() -> Unit, +) { + GamssImageCard( + date = date, + modifier = modifier, + shape = shape, + topEndAction = topEndAction, + ) { + Spacer(modifier = Modifier.height(GamssTheme.spacing.spacing300)) + content() + } +} + +@Composable +private fun EmotionCardPreviewContent() { + GamssEmotionCard( + date = "26.08.03", + title = "오늘 화~나네", + description = "설느닛람햄을 긱에자네에 신손 겅투히오의 흐랸비의 수매해으는 하어이", + primaryActionLabel = "기록 버리기", + secondaryActionLabel = "대화보기", + shareActionLabel = "공유하기", + character = { + Image( + painter = painterResource(R.drawable.character_angry), + contentDescription = null, + contentScale = ContentScale.Fit, + modifier = Modifier.fillMaxSize(), + ) + }, + onPrimaryActionClick = {}, + onSecondaryActionClick = {}, + onShareClick = {}, + topEndAction = { CloseIconPlaceholder() }, + ) +} + /** Figma의 우상단 20dp 닫기 아이콘과 같은 크기·색의 프리뷰 액션. */ @Composable private fun CloseIconPlaceholder(modifier: Modifier = Modifier) { @@ -206,7 +279,7 @@ private fun CloseIconPlaceholder(modifier: Modifier = Modifier) { @Composable private fun CardOutlinedButton( text: String, - onClick: (() -> Unit)? = null, + onClick: () -> Unit, modifier: Modifier = Modifier, ) { GamssOutlinedCard( @@ -252,14 +325,12 @@ private fun GamssImageCardChattingDarkPreview() { } } -/** Figma `Type=Card_chatting` 재현. 같은 셸에 본문만 대화 로그로 바뀐다. */ @Composable private fun ChattingCardPreviewContent() { - GamssImageCard( + GamssChattingCard( date = "26.08.03", topEndAction = { CloseIconPlaceholder() }, ) { - Spacer(modifier = Modifier.height(GamssTheme.spacing.spacing300)) Column(verticalArrangement = Arrangement.spacedBy(GamssTheme.spacing.spacing150)) { GamssSentChatBubble( message = "안녕하세요ㅁㅇㄹㅁㅇㄹㅁㅇㄹ", From a4d8e7cba0d08668555c3068ae118fea1ad27d2f Mon Sep 17 00:00:00 2001 From: soyeonLee <109227292+soyeonLee126@users.noreply.github.com> Date: Sat, 15 Aug 2026 22:56:09 +0900 Subject: [PATCH 04/12] =?UTF-8?q?feat:=20=EA=B0=90=EC=A0=95=20=EC=B9=B4?= =?UTF-8?q?=EB=93=9C=20=EC=BA=90=EB=A6=AD=ED=84=B0=206=EC=A2=85=20?= =?UTF-8?q?=EC=A7=80=EC=9B=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../card/GamssEmotionCardCharacter.kt | 16 +++++++++++ .../core/designsystem/card/GamssImageCard.kt | 24 ++++++++-------- .../res/drawable-nodpi/character_angry.png | Bin 27633 -> 46671 bytes .../res/drawable-nodpi/character_anxiety.png | Bin 0 -> 43300 bytes .../res/drawable-nodpi/character_cranky.png | Bin 0 -> 41032 bytes .../res/drawable-nodpi/character_happy.png | Bin 0 -> 39544 bytes .../main/res/drawable-nodpi/character_sad.png | Bin 0 -> 44184 bytes .../res/drawable-nodpi/character_wacky.png | Bin 0 -> 39273 bytes .../chat/EmotionCharacterCardMapping.kt | 14 ++++++++++ .../chat/EmotionCharacterCardMappingTest.kt | 26 ++++++++++++++++++ 10 files changed, 67 insertions(+), 13 deletions(-) create mode 100644 core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssEmotionCardCharacter.kt create mode 100644 core/designsystem/src/main/res/drawable-nodpi/character_anxiety.png create mode 100644 core/designsystem/src/main/res/drawable-nodpi/character_cranky.png create mode 100644 core/designsystem/src/main/res/drawable-nodpi/character_happy.png create mode 100644 core/designsystem/src/main/res/drawable-nodpi/character_sad.png create mode 100644 core/designsystem/src/main/res/drawable-nodpi/character_wacky.png create mode 100644 feature/chat/src/main/java/com/gamss/android/feature/chat/EmotionCharacterCardMapping.kt create mode 100644 feature/chat/src/test/java/com/gamss/android/feature/chat/EmotionCharacterCardMappingTest.kt diff --git a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssEmotionCardCharacter.kt b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssEmotionCardCharacter.kt new file mode 100644 index 00000000..42f68725 --- /dev/null +++ b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssEmotionCardCharacter.kt @@ -0,0 +1,16 @@ +package com.gamss.android.core.designsystem.card + +import androidx.annotation.DrawableRes +import com.gamss.android.core.designsystem.R + +/** 감정 카드에 표시할 캐릭터 6종. 도메인 감정 모델은 화면 계층에서 이 타입으로 변환한다. */ +enum class GamssEmotionCardCharacter( + @DrawableRes internal val drawableRes: Int, +) { + JOY(R.drawable.character_happy), + ANGER(R.drawable.character_angry), + ANXIETY(R.drawable.character_anxiety), + SADNESS(R.drawable.character_sad), + QUIRKY(R.drawable.character_wacky), + PRICKLY(R.drawable.character_cranky), +} diff --git a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt index d53674c4..f0ca869a 100644 --- a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt +++ b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt @@ -124,20 +124,19 @@ private fun GamssImageCardEmotionDarkPreview() { /** * 감정 캐릭터와 대화 요약을 보여 주는 이미지 카드 퍼사드. * - * 카드의 고정 구조는 이 컴포넌트가 맡고, 캐릭터와 사용자 동작만 호출부가 제공한다. + * 카드의 고정 구조와 감정별 캐릭터 선택은 이 컴포넌트가 맡고, 문구와 사용자 동작만 호출부가 제공한다. * 따라서 화면마다 [GamssImageCard]의 간격과 텍스트 스타일을 다시 조합할 필요가 없다. - * [character]는 270×156dp 영역에 배치되며, 의미 있는 이미지라면 호출부가 접근성 설명을 제공한다. */ @Composable @Suppress("LongParameterList") fun GamssEmotionCard( date: String, + character: GamssEmotionCardCharacter, title: String, description: String, primaryActionLabel: String, secondaryActionLabel: String, shareActionLabel: String, - character: @Composable BoxScope.() -> Unit, onPrimaryActionClick: () -> Unit, onSecondaryActionClick: () -> Unit, onShareClick: () -> Unit, @@ -156,8 +155,14 @@ fun GamssEmotionCard( modifier = Modifier .fillMaxWidth() .height(CharacterImageHeight), - content = character, - ) + ) { + Image( + painter = painterResource(character.drawableRes), + contentDescription = null, + contentScale = ContentScale.Fit, + modifier = Modifier.fillMaxSize(), + ) + } Spacer(modifier = Modifier.height(CharacterToTitleGap)) Text( text = title, @@ -244,19 +249,12 @@ fun GamssChattingCard( private fun EmotionCardPreviewContent() { GamssEmotionCard( date = "26.08.03", + character = GamssEmotionCardCharacter.ANGER, title = "오늘 화~나네", description = "설느닛람햄을 긱에자네에 신손 겅투히오의 흐랸비의 수매해으는 하어이", primaryActionLabel = "기록 버리기", secondaryActionLabel = "대화보기", shareActionLabel = "공유하기", - character = { - Image( - painter = painterResource(R.drawable.character_angry), - contentDescription = null, - contentScale = ContentScale.Fit, - modifier = Modifier.fillMaxSize(), - ) - }, onPrimaryActionClick = {}, onSecondaryActionClick = {}, onShareClick = {}, diff --git a/core/designsystem/src/main/res/drawable-nodpi/character_angry.png b/core/designsystem/src/main/res/drawable-nodpi/character_angry.png index 5421871709962b1db6f5be69623b6a06e6157523..ba2057124933c950d7ac33a267a1aa1003312563 100644 GIT binary patch literal 46671 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�%Wf6Kehv)jj@4 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͑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 literal 27633 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


F?l#0SpS(XE930=-(p0$vi0#N>xH! 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 SqEry@Q&G@_RX#U+_kRE{-cCyZ literal 0 HcmV?d00001 diff --git a/core/designsystem/src/main/res/drawable-nodpi/character_wacky.png b/core/designsystem/src/main/res/drawable-nodpi/character_wacky.png new file mode 100644 index 0000000000000000000000000000000000000000..56c2ae0552463ff4d5b4650fac7282d76be21230 GIT binary patch literal 39273 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 F{{T?(NcI2# literal 0 HcmV?d00001 diff --git a/feature/chat/src/main/java/com/gamss/android/feature/chat/EmotionCharacterCardMapping.kt b/feature/chat/src/main/java/com/gamss/android/feature/chat/EmotionCharacterCardMapping.kt new file mode 100644 index 00000000..6fe826ec --- /dev/null +++ b/feature/chat/src/main/java/com/gamss/android/feature/chat/EmotionCharacterCardMapping.kt @@ -0,0 +1,14 @@ +package com.gamss.android.feature.chat + +import com.gamss.android.core.designsystem.card.GamssEmotionCardCharacter +import com.gamss.android.domain.emotion.EmotionCharacter + +/** 도메인 캐릭터를 감정 카드에서 사용하는 디자인 시스템 캐릭터로 변환한다. */ +internal fun EmotionCharacter.toGamssEmotionCardCharacter(): GamssEmotionCardCharacter = when (this) { + EmotionCharacter.JOY -> GamssEmotionCardCharacter.JOY + EmotionCharacter.ANGER -> GamssEmotionCardCharacter.ANGER + EmotionCharacter.ANXIETY -> GamssEmotionCardCharacter.ANXIETY + EmotionCharacter.SADNESS -> GamssEmotionCardCharacter.SADNESS + EmotionCharacter.QUIRKY -> GamssEmotionCardCharacter.QUIRKY + EmotionCharacter.PRICKLY -> GamssEmotionCardCharacter.PRICKLY +} diff --git a/feature/chat/src/test/java/com/gamss/android/feature/chat/EmotionCharacterCardMappingTest.kt b/feature/chat/src/test/java/com/gamss/android/feature/chat/EmotionCharacterCardMappingTest.kt new file mode 100644 index 00000000..ff90939c --- /dev/null +++ b/feature/chat/src/test/java/com/gamss/android/feature/chat/EmotionCharacterCardMappingTest.kt @@ -0,0 +1,26 @@ +package com.gamss.android.feature.chat + +import com.gamss.android.core.designsystem.card.GamssEmotionCardCharacter +import com.gamss.android.domain.emotion.EmotionCharacter +import org.junit.Assert.assertEquals +import org.junit.Test + +class EmotionCharacterCardMappingTest { + + @Test + fun `all emotion characters map to their card characters`() { + val expectedCharacters = mapOf( + EmotionCharacter.JOY to GamssEmotionCardCharacter.JOY, + EmotionCharacter.ANGER to GamssEmotionCardCharacter.ANGER, + EmotionCharacter.ANXIETY to GamssEmotionCardCharacter.ANXIETY, + EmotionCharacter.SADNESS to GamssEmotionCardCharacter.SADNESS, + EmotionCharacter.QUIRKY to GamssEmotionCardCharacter.QUIRKY, + EmotionCharacter.PRICKLY to GamssEmotionCardCharacter.PRICKLY, + ) + + assertEquals( + expectedCharacters, + EmotionCharacter.entries.associateWith(EmotionCharacter::toGamssEmotionCardCharacter), + ) + } +} From 0bcbca786c80616bbc94efe785a5b7d12e98075d Mon Sep 17 00:00:00 2001 From: soyeonLee <109227292+soyeonLee126@users.noreply.github.com> Date: Sat, 15 Aug 2026 23:13:46 +0900 Subject: [PATCH 05/12] =?UTF-8?q?feat:=20=EB=82=A0=EC=A7=9C=EB=B3=84=20?= =?UTF-8?q?=EC=B9=B4=EB=93=9C=20=EC=A1=B0=ED=9A=8C=20=EC=97=B0=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../card/GamssEmotionCardCharacter.kt | 22 ++- .../core/designsystem/card/GamssImageCard.kt | 15 +- core/ui/build.gradle.kts | 3 + .../ui/card}/EmotionCharacterCardMapping.kt | 6 +- .../android/data/remote/card/CardService.kt | 5 + .../card/model/response/CardResponse.kt | 20 ++- .../data/repository/CardRepositoryImpl.kt | 11 +- .../data/remote/card/CardResponseTest.kt | 31 ++++ .../com/gamss/android/domain/card/Card.kt | 5 + .../android/domain/card/CardRepository.kt | 4 + .../domain/card/GetCardsByDateUseCase.kt | 15 ++ .../domain/card/CreateCardUseCaseTest.kt | 16 ++- .../conversation/ConversationSessionTest.kt | 16 ++- feature/calendar/build.gradle.kts | 1 + .../feature/calendar/CalendarScreen.kt | 136 ++++++++++++++++-- .../android/feature/calendar/CalendarState.kt | 10 ++ .../feature/calendar/CalendarViewModel.kt | 35 ++++- .../calendar/src/main/res/values/strings.xml | 4 + .../feature/calendar/CalendarViewModelTest.kt | 92 ++++++++++++ feature/chat/build.gradle.kts | 1 + .../android/feature/chat/ChatRoomTestFakes.kt | 16 ++- .../chat/EmotionCharacterCardMappingTest.kt | 1 + .../android/feature/home/HomeTestFakes.kt | 4 + 23 files changed, 433 insertions(+), 36 deletions(-) rename {feature/chat/src/main/java/com/gamss/android/feature/chat => core/ui/src/main/java/com/gamss/android/core/ui/card}/EmotionCharacterCardMapping.kt (67%) create mode 100644 data/src/test/kotlin/com/gamss/android/data/remote/card/CardResponseTest.kt create mode 100644 domain/src/main/kotlin/com/gamss/android/domain/card/GetCardsByDateUseCase.kt create mode 100644 feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt diff --git a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssEmotionCardCharacter.kt b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssEmotionCardCharacter.kt index 42f68725..fe91f6e1 100644 --- a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssEmotionCardCharacter.kt +++ b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssEmotionCardCharacter.kt @@ -1,11 +1,17 @@ package com.gamss.android.core.designsystem.card import androidx.annotation.DrawableRes +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource import com.gamss.android.core.designsystem.R /** 감정 카드에 표시할 캐릭터 6종. 도메인 감정 모델은 화면 계층에서 이 타입으로 변환한다. */ enum class GamssEmotionCardCharacter( - @DrawableRes internal val drawableRes: Int, + @get:DrawableRes internal val drawableRes: Int, ) { JOY(R.drawable.character_happy), ANGER(R.drawable.character_angry), @@ -14,3 +20,17 @@ enum class GamssEmotionCardCharacter( QUIRKY(R.drawable.character_wacky), PRICKLY(R.drawable.character_cranky), } + +/** 감정 카드 캐릭터를 원본 270×156 비율로 표시한다. */ +@Composable +fun GamssEmotionCardCharacterImage( + character: GamssEmotionCardCharacter, + modifier: Modifier = Modifier, +) { + Image( + painter = painterResource(character.drawableRes), + contentDescription = null, + contentScale = ContentScale.Fit, + modifier = modifier.fillMaxSize(), + ) +} diff --git a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt index f0ca869a..12dac18f 100644 --- a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt +++ b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt @@ -10,12 +10,14 @@ import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.widthIn import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -53,8 +55,9 @@ fun GamssImageCard( CompositionLocalProvider(LocalGamssColors provides LightGamssColors) { Box( modifier = modifier - .width(CardWidth) - .height(CardHeight) + .widthIn(max = CardWidth) + .fillMaxWidth() + .aspectRatio(CardAspectRatio) .clip(shape), ) { Image( @@ -156,12 +159,7 @@ fun GamssEmotionCard( .fillMaxWidth() .height(CharacterImageHeight), ) { - Image( - painter = painterResource(character.drawableRes), - contentDescription = null, - contentScale = ContentScale.Fit, - modifier = Modifier.fillMaxSize(), - ) + GamssEmotionCardCharacterImage(character = character) } Spacer(modifier = Modifier.height(CharacterToTitleGap)) Text( @@ -351,6 +349,7 @@ private fun ChattingCardPreviewContent() { private val CardWidth = 366.dp private val CardHeight = 528.dp +private val CardAspectRatio = CardWidth.value / CardHeight.value private val DateToCharacterGap = 18.dp private val CharacterImageHeight = 156.dp diff --git a/core/ui/build.gradle.kts b/core/ui/build.gradle.kts index 4448d9ff..310d765e 100644 --- a/core/ui/build.gradle.kts +++ b/core/ui/build.gradle.kts @@ -8,6 +8,9 @@ android { } dependencies { + implementation(projects.core.designsystem) + implementation(projects.domain) + implementation(libs.androidx.core.ktx) implementation(libs.compose.material.icons.core) diff --git a/feature/chat/src/main/java/com/gamss/android/feature/chat/EmotionCharacterCardMapping.kt b/core/ui/src/main/java/com/gamss/android/core/ui/card/EmotionCharacterCardMapping.kt similarity index 67% rename from feature/chat/src/main/java/com/gamss/android/feature/chat/EmotionCharacterCardMapping.kt rename to core/ui/src/main/java/com/gamss/android/core/ui/card/EmotionCharacterCardMapping.kt index 6fe826ec..44026407 100644 --- a/feature/chat/src/main/java/com/gamss/android/feature/chat/EmotionCharacterCardMapping.kt +++ b/core/ui/src/main/java/com/gamss/android/core/ui/card/EmotionCharacterCardMapping.kt @@ -1,10 +1,10 @@ -package com.gamss.android.feature.chat +package com.gamss.android.core.ui.card import com.gamss.android.core.designsystem.card.GamssEmotionCardCharacter import com.gamss.android.domain.emotion.EmotionCharacter -/** 도메인 캐릭터를 감정 카드에서 사용하는 디자인 시스템 캐릭터로 변환한다. */ -internal fun EmotionCharacter.toGamssEmotionCardCharacter(): GamssEmotionCardCharacter = when (this) { +/** 도메인 캐릭터를 감정 카드의 디자인 시스템 캐릭터로 변환한다. */ +fun EmotionCharacter.toGamssEmotionCardCharacter(): GamssEmotionCardCharacter = when (this) { EmotionCharacter.JOY -> GamssEmotionCardCharacter.JOY EmotionCharacter.ANGER -> GamssEmotionCardCharacter.ANGER EmotionCharacter.ANXIETY -> GamssEmotionCardCharacter.ANXIETY diff --git a/data/src/main/java/com/gamss/android/data/remote/card/CardService.kt b/data/src/main/java/com/gamss/android/data/remote/card/CardService.kt index 0d5ae9fb..6497b611 100644 --- a/data/src/main/java/com/gamss/android/data/remote/card/CardService.kt +++ b/data/src/main/java/com/gamss/android/data/remote/card/CardService.kt @@ -4,10 +4,15 @@ import com.gamss.android.data.remote.card.model.request.CreateCardRequest import com.gamss.android.data.remote.card.model.response.CardResponse import com.gamss.android.data.remote.model.response.ApiResponse import retrofit2.http.Body +import retrofit2.http.GET import retrofit2.http.POST +import retrofit2.http.Query internal interface CardService { + @GET("/api/cards") + suspend fun getCardsByDate(@Query("date") date: String): ApiResponse> + /** 종료된 채팅방에만 만들 수 있다. 대사는 서버가 생성한다. */ @POST("/api/cards") suspend fun createCard(@Body request: CreateCardRequest): ApiResponse diff --git a/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt b/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt index 9ebf3e2d..f340cce8 100644 --- a/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt +++ b/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt @@ -1,21 +1,27 @@ package com.gamss.android.data.remote.card.model.response import com.gamss.android.domain.card.Card -import com.gamss.android.domain.emotion.EmotionCharacter +import com.gamss.android.data.remote.emotion.toEmotionCharacter import kotlinx.serialization.Serializable +import java.time.LocalDate @Serializable internal data class CardResponse( + val id: Long, + val conversationId: Long, + val emotion: String, + val emotionLabel: String, val summary: String, val message: String, + val date: String, ) -/** - * 서버는 우리가 보낸 감정을 그대로 대표 감정으로 쓰므로 응답 문자열을 다시 해석하지 않고 - * 보낸 캐릭터를 그대로 쓴다. 해석 실패로 카드를 잃는 경로를 없앤다. - */ -internal fun CardResponse.toDomain(character: EmotionCharacter): Card = Card( - character = character, +internal fun CardResponse.toDomain(): Card = Card( + id = id, + conversationId = conversationId, + character = requireNotNull(emotion.toEmotionCharacter()) { "Unknown card emotion=$emotion" }, + emotionLabel = emotionLabel, summary = summary, message = message, + date = LocalDate.parse(date), ) diff --git a/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt b/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt index 18cb79ca..5f86d7c4 100644 --- a/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt +++ b/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt @@ -6,10 +6,12 @@ import com.gamss.android.data.remote.card.model.request.CreateCardRequest import com.gamss.android.data.remote.card.model.response.toDomain import com.gamss.android.data.remote.emotion.toServerEmotionType import com.gamss.android.data.remote.runCatchingApiCall +import com.gamss.android.data.remote.throwIfFailed import com.gamss.android.domain.card.Card import com.gamss.android.domain.card.CardNotRetryableException import com.gamss.android.domain.card.CardRepository import com.gamss.android.domain.emotion.EmotionCharacter +import java.time.LocalDate import javax.inject.Inject import javax.inject.Singleton @@ -18,6 +20,12 @@ internal class CardRepositoryImpl @Inject constructor( private val cardService: CardService, ) : CardRepository { + override suspend fun getCardsByDate(date: LocalDate): AppResult> = runCatchingApiCall { + val response = cardService.getCardsByDate(date.toString()) + response.throwIfFailed() + checkNotNull(response.data) { "No available card data" }.map { it.toDomain() } + } + override suspend fun createCard( conversationId: Long, character: EmotionCharacter, @@ -31,7 +39,8 @@ internal class CardRepositoryImpl @Inject constructor( summary = summary, ), ) - checkNotNull(response.data) { "No available card data" }.toDomain(character) + response.throwIfFailed() + checkNotNull(response.data) { "No available card data" }.toDomain() } return when (result) { is AppResult.Success -> result diff --git a/data/src/test/kotlin/com/gamss/android/data/remote/card/CardResponseTest.kt b/data/src/test/kotlin/com/gamss/android/data/remote/card/CardResponseTest.kt new file mode 100644 index 00000000..2cc3941e --- /dev/null +++ b/data/src/test/kotlin/com/gamss/android/data/remote/card/CardResponseTest.kt @@ -0,0 +1,31 @@ +package com.gamss.android.data.remote.card + +import com.gamss.android.data.remote.card.model.response.CardResponse +import com.gamss.android.data.remote.card.model.response.toDomain +import com.gamss.android.domain.emotion.EmotionCharacter +import org.junit.Assert.assertEquals +import org.junit.Test +import java.time.LocalDate + +class CardResponseTest { + + @Test + fun `card response preserves the card fields returned by the server`() { + val card = CardResponse( + id = 10L, + conversationId = 20L, + emotion = "ANGER", + emotionLabel = "분노", + summary = "비 때문에 하루가 꼬였어요", + message = "비 때문에 하루가 꼬였어요", + date = "2026-08-15", + ).toDomain() + + assertEquals(10L, card.id) + assertEquals(20L, card.conversationId) + assertEquals(EmotionCharacter.ANGER, card.character) + assertEquals("분노", card.emotionLabel) + assertEquals("비 때문에 하루가 꼬였어요", card.summary) + assertEquals(LocalDate.of(2026, 8, 15), card.date) + } +} diff --git a/domain/src/main/kotlin/com/gamss/android/domain/card/Card.kt b/domain/src/main/kotlin/com/gamss/android/domain/card/Card.kt index 5649106e..ef9c12eb 100644 --- a/domain/src/main/kotlin/com/gamss/android/domain/card/Card.kt +++ b/domain/src/main/kotlin/com/gamss/android/domain/card/Card.kt @@ -1,6 +1,7 @@ package com.gamss.android.domain.card import com.gamss.android.domain.emotion.EmotionCharacter +import java.time.LocalDate /** * 대화 종료로 만들어진 감정 카드. @@ -8,9 +9,13 @@ import com.gamss.android.domain.emotion.EmotionCharacter * @param summary 클라이언트가 보낸 압축본. 카드 제목으로 그대로 노출된다. */ data class Card( + val id: Long, + val conversationId: Long, val character: EmotionCharacter, + val emotionLabel: String, val summary: String, val message: String, + val date: LocalDate, ) /** 다시 시도해도 결과가 같은 카드 실패. 호출부가 재시도 경로를 접는 기준이다. */ diff --git a/domain/src/main/kotlin/com/gamss/android/domain/card/CardRepository.kt b/domain/src/main/kotlin/com/gamss/android/domain/card/CardRepository.kt index a4ff76ea..6740eaf9 100644 --- a/domain/src/main/kotlin/com/gamss/android/domain/card/CardRepository.kt +++ b/domain/src/main/kotlin/com/gamss/android/domain/card/CardRepository.kt @@ -2,9 +2,13 @@ package com.gamss.android.domain.card import com.gamss.android.core.common.AppResult import com.gamss.android.domain.emotion.EmotionCharacter +import java.time.LocalDate interface CardRepository { + /** 대화 생성일(KST) 기준으로 해당 날짜의 카드를 가져온다. */ + suspend fun getCardsByDate(date: LocalDate): AppResult> + /** 종료된 채팅방에만 만들 수 있고 방당 한 번만 성공한다. */ suspend fun createCard( conversationId: Long, diff --git a/domain/src/main/kotlin/com/gamss/android/domain/card/GetCardsByDateUseCase.kt b/domain/src/main/kotlin/com/gamss/android/domain/card/GetCardsByDateUseCase.kt new file mode 100644 index 00000000..fbf93218 --- /dev/null +++ b/domain/src/main/kotlin/com/gamss/android/domain/card/GetCardsByDateUseCase.kt @@ -0,0 +1,15 @@ +package com.gamss.android.domain.card + +import com.gamss.android.core.common.AppResult +import com.gamss.android.domain.usecase.UseCase +import java.time.LocalDate +import javax.inject.Inject + +/** 선택한 날짜(KST)의 카드 목록을 조회한다. */ +class GetCardsByDateUseCase @Inject constructor( + private val cardRepository: CardRepository, +) : UseCase>> { + + override suspend fun invoke(params: LocalDate): AppResult> = + cardRepository.getCardsByDate(params) +} diff --git a/domain/src/test/kotlin/com/gamss/android/domain/card/CreateCardUseCaseTest.kt b/domain/src/test/kotlin/com/gamss/android/domain/card/CreateCardUseCaseTest.kt index 9abef4b3..f3d73b66 100644 --- a/domain/src/test/kotlin/com/gamss/android/domain/card/CreateCardUseCaseTest.kt +++ b/domain/src/test/kotlin/com/gamss/android/domain/card/CreateCardUseCaseTest.kt @@ -6,6 +6,7 @@ import kotlinx.coroutines.runBlocking import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import org.junit.Test +import java.time.LocalDate class CreateCardUseCaseTest { @@ -19,8 +20,21 @@ class CreateCardUseCaseTest { summary: String, ): AppResult { sentSummary = summary - return AppResult.Success(Card(character = character, summary = summary, message = "대사")) + return AppResult.Success( + Card( + id = 1L, + conversationId = conversationId, + character = character, + emotionLabel = character.displayName, + summary = summary, + message = "대사", + date = LocalDate.of(2026, 8, 15), + ), + ) } + + override suspend fun getCardsByDate(date: LocalDate): AppResult> = + AppResult.Success(emptyList()) } @Test diff --git a/domain/src/test/kotlin/com/gamss/android/domain/conversation/ConversationSessionTest.kt b/domain/src/test/kotlin/com/gamss/android/domain/conversation/ConversationSessionTest.kt index 21502d2c..78d1df03 100644 --- a/domain/src/test/kotlin/com/gamss/android/domain/conversation/ConversationSessionTest.kt +++ b/domain/src/test/kotlin/com/gamss/android/domain/conversation/ConversationSessionTest.kt @@ -21,6 +21,7 @@ import kotlinx.coroutines.runBlocking import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import org.junit.Test +import java.time.LocalDate class ConversationSessionTest { @@ -214,11 +215,24 @@ class ConversationSessionTest { } private object NoOpCardRepository : CardRepository { + override suspend fun getCardsByDate(date: LocalDate): AppResult> = + AppResult.Success(emptyList()) + override suspend fun createCard( conversationId: Long, character: EmotionCharacter, summary: String, - ): AppResult = AppResult.Success(Card(character = character, summary = summary, message = "대사")) + ): AppResult = AppResult.Success( + Card( + id = 1L, + conversationId = conversationId, + character = character, + emotionLabel = character.displayName, + summary = summary, + message = "대사", + date = LocalDate.of(2026, 8, 15), + ), + ) } private class FakeConversationRepository( diff --git a/feature/calendar/build.gradle.kts b/feature/calendar/build.gradle.kts index 3c16e441..ac515dd2 100644 --- a/feature/calendar/build.gradle.kts +++ b/feature/calendar/build.gradle.kts @@ -8,6 +8,7 @@ android { dependencies { implementation(projects.core.ui) + implementation(projects.domain) implementation(libs.calendar.compose) { exclude(group = "androidx.compose.ui", module = "ui-tooling") diff --git a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt index 9ad0eaa8..fd299c9b 100644 --- a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt +++ b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt @@ -1,18 +1,37 @@ package com.gamss.android.feature.calendar +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel +import com.gamss.android.core.designsystem.card.GamssEmotionCardCharacterImage +import com.gamss.android.core.designsystem.card.GamssImageCard +import com.gamss.android.core.designsystem.theme.GamssTheme +import com.gamss.android.core.ui.card.toGamssEmotionCardCharacter +import com.gamss.android.domain.card.Card import com.gamss.android.feature.calendar.component.CalendarDayCell import com.gamss.android.feature.calendar.component.MonthCalendar import com.kizitonwose.calendar.core.DayPosition import org.orbitmvi.orbit.compose.collectAsState +import java.time.format.DateTimeFormatter import java.time.YearMonth private const val PAST_MONTH_COUNT = 60L @@ -30,21 +49,118 @@ fun CalendarScreen( } Scaffold { innerPadding -> - MonthCalendar( - monthRange = monthRange, - initialMonth = anchorMonth, + Column( modifier = Modifier .fillMaxSize() .padding(innerPadding) .padding(horizontal = 16.dp), - ) { day -> - val isInCurrentMonth = day.position == DayPosition.MonthDate - CalendarDayCell( - day = day, - isSelected = isInCurrentMonth && day.date == state.selectedDate, - isToday = isInCurrentMonth && day.date == state.today, - onClick = viewModel::selectDate, + ) { + MonthCalendar( + monthRange = monthRange, + initialMonth = anchorMonth, + ) { day -> + val isInCurrentMonth = day.position == DayPosition.MonthDate + CalendarDayCell( + day = day, + isSelected = isInCurrentMonth && day.date == state.selectedDate, + isToday = isInCurrentMonth && day.date == state.today, + onClick = viewModel::selectDate, + ) + } + CalendarCardResults( + selectedDate = state.selectedDate, + loadState = state.cardLoadState, + onRetryClick = viewModel::retrySelectedDate, + modifier = Modifier.weight(1f), ) } } } + +@Composable +private fun CalendarCardResults( + selectedDate: java.time.LocalDate?, + loadState: CalendarCardLoadState, + onRetryClick: () -> Unit, + modifier: Modifier = Modifier, +) { + if (selectedDate == null) return + + Column(modifier = modifier.padding(top = 24.dp)) { + Text( + text = stringResource(R.string.calendar_card_result_title, selectedDate.monthValue, selectedDate.dayOfMonth), + style = GamssTheme.typography.title3, + color = GamssTheme.colors.gray950, + ) + Spacer(modifier = Modifier.height(12.dp)) + when (loadState) { + CalendarCardLoadState.Idle -> Unit + CalendarCardLoadState.Loading -> CircularProgressIndicator(modifier = Modifier.align(Alignment.CenterHorizontally)) + CalendarCardLoadState.Empty -> Text( + text = stringResource(R.string.calendar_card_empty), + style = GamssTheme.typography.body4Regular, + color = GamssTheme.colors.gray600, + ) + CalendarCardLoadState.Error -> { + Text( + text = stringResource(R.string.calendar_card_load_error), + style = GamssTheme.typography.body4Regular, + color = GamssTheme.colors.gray600, + ) + TextButton(onClick = onRetryClick) { + Text(text = stringResource(R.string.calendar_card_retry)) + } + } + is CalendarCardLoadState.Content -> LazyColumn( + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + items(loadState.cards, key = Card::id) { card -> + CalendarCardItem(card) + } + } + } + } +} + +@Composable +private fun CalendarCardItem(card: Card) { + Box( + modifier = Modifier.fillMaxWidth(), + contentAlignment = Alignment.TopCenter, + ) { + GamssImageCard(date = card.date.format(CardDateFormatter)) { + Spacer(modifier = Modifier.height(18.dp)) + Box( + modifier = Modifier + .fillMaxWidth() + .height(156.dp), + ) { + GamssEmotionCardCharacterImage( + character = card.character.toGamssEmotionCardCharacter(), + ) + } + Spacer(modifier = Modifier.height(42.dp)) + Column( + modifier = Modifier.fillMaxWidth(), + verticalArrangement = Arrangement.spacedBy(4.dp), + ) { + Text( + text = card.emotionLabel, + modifier = Modifier.fillMaxWidth(), + style = GamssTheme.typography.subtitle3, + color = GamssTheme.colors.gray800, + textAlign = androidx.compose.ui.text.style.TextAlign.Center, + ) + Text( + text = card.summary, + modifier = Modifier.fillMaxWidth(), + style = GamssTheme.typography.title3, + color = GamssTheme.colors.gray950, + textAlign = androidx.compose.ui.text.style.TextAlign.Center, + ) + } + } + } +} + +private val CardDateFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("yy.MM.dd") diff --git a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarState.kt b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarState.kt index b266ae0e..28718fcc 100644 --- a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarState.kt +++ b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarState.kt @@ -1,8 +1,18 @@ package com.gamss.android.feature.calendar +import com.gamss.android.domain.card.Card import java.time.LocalDate +sealed interface CalendarCardLoadState { + data object Idle : CalendarCardLoadState + data object Loading : CalendarCardLoadState + data object Empty : CalendarCardLoadState + data class Content(val cards: List) : CalendarCardLoadState + data object Error : CalendarCardLoadState +} + data class CalendarState( val today: LocalDate, val selectedDate: LocalDate? = null, + val cardLoadState: CalendarCardLoadState = CalendarCardLoadState.Idle, ) diff --git a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt index 41027a02..b1d7293a 100644 --- a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt +++ b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt @@ -1,14 +1,20 @@ package com.gamss.android.feature.calendar import androidx.lifecycle.ViewModel +import com.gamss.android.core.common.AppResult +import com.gamss.android.domain.card.Card +import com.gamss.android.domain.card.GetCardsByDateUseCase import dagger.hilt.android.lifecycle.HiltViewModel import org.orbitmvi.orbit.ContainerHost +import org.orbitmvi.orbit.syntax.Syntax import org.orbitmvi.orbit.viewmodel.container import java.time.LocalDate import javax.inject.Inject @HiltViewModel -class CalendarViewModel @Inject constructor() : +class CalendarViewModel @Inject constructor( + private val getCardsByDate: GetCardsByDateUseCase, +) : ViewModel(), ContainerHost { @@ -17,7 +23,30 @@ class CalendarViewModel @Inject constructor() : ) fun selectDate(date: LocalDate) = intent { - val nextSelectedDate = date.takeIf { it != state.selectedDate } - reduce { state.copy(selectedDate = nextSelectedDate) } + if (date == state.selectedDate) { + reduce { state.copy(selectedDate = null, cardLoadState = CalendarCardLoadState.Idle) } + return@intent + } + + loadCards(date) + } + + fun retrySelectedDate() = intent { + state.selectedDate?.let { loadCards(it) } + } + + private suspend fun Syntax.loadCards(date: LocalDate) { + reduce { state.copy(selectedDate = date, cardLoadState = CalendarCardLoadState.Loading) } + when (val result = getCardsByDate(date)) { + is AppResult.Success -> reduce { + state.copy( + cardLoadState = result.data + .takeIf { it.isNotEmpty() } + ?.let(CalendarCardLoadState::Content) + ?: CalendarCardLoadState.Empty, + ) + } + is AppResult.Failure -> reduce { state.copy(cardLoadState = CalendarCardLoadState.Error) } + } } } diff --git a/feature/calendar/src/main/res/values/strings.xml b/feature/calendar/src/main/res/values/strings.xml index af2d6061..0a322858 100644 --- a/feature/calendar/src/main/res/values/strings.xml +++ b/feature/calendar/src/main/res/values/strings.xml @@ -5,4 +5,8 @@ 다음 달 %1$d년 %2$d월 %3$d일 %1$d년 %2$d월 %3$d일, 오늘 + %1$d월 %2$d일의 카드 + 이 날짜에는 카드가 없어요. + 카드를 불러오지 못했어요. + 다시 시도 diff --git a/feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt b/feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt new file mode 100644 index 00000000..e9afaee5 --- /dev/null +++ b/feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt @@ -0,0 +1,92 @@ +package com.gamss.android.feature.calendar + +import com.gamss.android.core.common.AppResult +import com.gamss.android.domain.card.Card +import com.gamss.android.domain.card.CardRepository +import com.gamss.android.domain.card.GetCardsByDateUseCase +import com.gamss.android.domain.emotion.EmotionCharacter +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.test.runCurrent +import kotlinx.coroutines.test.runTest +import org.junit.Assert.assertEquals +import org.junit.Test +import org.orbitmvi.orbit.test.test +import java.time.LocalDate + +@OptIn(ExperimentalCoroutinesApi::class) +class CalendarViewModelTest { + + @Test + fun `selecting a date loads its cards`() = runTest { + val selectedDate = LocalDate.of(2026, 8, 15) + val expectedCard = card(date = selectedDate) + val repository = RecordingCardRepository(expectedCard) + + CalendarViewModel(GetCardsByDateUseCase(repository)).test(this) { + containerHost.selectDate(selectedDate) + runCurrent() + + val state = containerHost.container.stateFlow.value + assertEquals(selectedDate, repository.requestedDate) + assertEquals(selectedDate, state.selectedDate) + assertEquals(CalendarCardLoadState.Content(listOf(expectedCard)), state.cardLoadState) + + cancelAndIgnoreRemainingItems() + } + } + + @Test + fun `a failed request shows an error and can be retried`() = runTest { + val selectedDate = LocalDate.of(2026, 8, 15) + val repository = RecordingCardRepository(card(selectedDate), shouldFail = true) + + CalendarViewModel(GetCardsByDateUseCase(repository)).test(this) { + containerHost.selectDate(selectedDate) + runCurrent() + assertEquals(CalendarCardLoadState.Error, containerHost.container.stateFlow.value.cardLoadState) + + repository.shouldFail = false + containerHost.retrySelectedDate() + runCurrent() + + assertEquals(2, repository.requestCount) + assertEquals( + CalendarCardLoadState.Content(listOf(card(selectedDate))), + containerHost.container.stateFlow.value.cardLoadState, + ) + cancelAndIgnoreRemainingItems() + } + } + + private class RecordingCardRepository( + private val card: Card, + var shouldFail: Boolean = false, + ) : CardRepository { + var requestedDate: LocalDate? = null + private set + var requestCount: Int = 0 + private set + + override suspend fun getCardsByDate(date: LocalDate): AppResult> { + requestedDate = date + requestCount++ + return if (shouldFail) AppResult.Failure(IllegalStateException("Network failure")) else AppResult.Success(listOf(card)) + } + + override suspend fun createCard( + conversationId: Long, + character: EmotionCharacter, + summary: String, + ): AppResult = error("Not used by the calendar") + } + + private fun card(date: LocalDate) = Card( + id = 1L, + conversationId = 2L, + character = EmotionCharacter.ANGER, + emotionLabel = "분노", + summary = "비 때문에 하루가 꼬였어요", + message = "비 때문에 하루가 꼬였어요", + date = date, + ) +} diff --git a/feature/chat/build.gradle.kts b/feature/chat/build.gradle.kts index 5f2e5ddd..bae5997b 100644 --- a/feature/chat/build.gradle.kts +++ b/feature/chat/build.gradle.kts @@ -7,6 +7,7 @@ android { } dependencies { + implementation(projects.core.ui) implementation(projects.domain) implementation(libs.compose.material.icons.core) diff --git a/feature/chat/src/test/java/com/gamss/android/feature/chat/ChatRoomTestFakes.kt b/feature/chat/src/test/java/com/gamss/android/feature/chat/ChatRoomTestFakes.kt index 64323f47..9a4ef670 100644 --- a/feature/chat/src/test/java/com/gamss/android/feature/chat/ChatRoomTestFakes.kt +++ b/feature/chat/src/test/java/com/gamss/android/feature/chat/ChatRoomTestFakes.kt @@ -37,6 +37,7 @@ import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.emptyFlow +import java.time.LocalDate /** * 채팅 ViewModel 조립을 한 곳에 둔다. 테스트마다 따로 조립하면 세션 구성이 갈라진다. @@ -200,6 +201,9 @@ internal class CountingCardRepository( var calls = 0 private set + override suspend fun getCardsByDate(date: LocalDate): AppResult> = + AppResult.Success(emptyList()) + override suspend fun createCard( conversationId: Long, character: EmotionCharacter, @@ -208,7 +212,17 @@ internal class CountingCardRepository( calls++ gate?.await() return failure?.let { AppResult.Failure(it) } - ?: AppResult.Success(Card(character = character, summary = summary, message = "대사")) + ?: AppResult.Success( + Card( + id = 1L, + conversationId = conversationId, + character = character, + emotionLabel = character.displayName, + summary = summary, + message = "대사", + date = LocalDate.of(2026, 8, 15), + ), + ) } } diff --git a/feature/chat/src/test/java/com/gamss/android/feature/chat/EmotionCharacterCardMappingTest.kt b/feature/chat/src/test/java/com/gamss/android/feature/chat/EmotionCharacterCardMappingTest.kt index ff90939c..4b071bc4 100644 --- a/feature/chat/src/test/java/com/gamss/android/feature/chat/EmotionCharacterCardMappingTest.kt +++ b/feature/chat/src/test/java/com/gamss/android/feature/chat/EmotionCharacterCardMappingTest.kt @@ -1,6 +1,7 @@ package com.gamss.android.feature.chat import com.gamss.android.core.designsystem.card.GamssEmotionCardCharacter +import com.gamss.android.core.ui.card.toGamssEmotionCardCharacter import com.gamss.android.domain.emotion.EmotionCharacter import org.junit.Assert.assertEquals import org.junit.Test diff --git a/feature/home/src/test/java/com/gamss/android/feature/home/HomeTestFakes.kt b/feature/home/src/test/java/com/gamss/android/feature/home/HomeTestFakes.kt index ca5c12e6..7cc4504a 100644 --- a/feature/home/src/test/java/com/gamss/android/feature/home/HomeTestFakes.kt +++ b/feature/home/src/test/java/com/gamss/android/feature/home/HomeTestFakes.kt @@ -26,6 +26,7 @@ import com.gamss.android.domain.summary.DiarySummarizer import com.gamss.android.domain.summary.SummarizeDiaryUseCase import com.gamss.android.domain.summary.UtteranceTokenCounter import kotlinx.coroutines.CompletableDeferred +import java.time.LocalDate internal const val NEW_ROOM_ID = 42L @@ -111,6 +112,9 @@ internal class RecordingConversationRepository( } private object NoCardRepository : CardRepository { + override suspend fun getCardsByDate(date: LocalDate): AppResult> = + AppResult.Success(emptyList()) + override suspend fun createCard( conversationId: Long, character: EmotionCharacter, From 917f96415e3f48e9966d7c6972e1f7867dbc30a8 Mon Sep 17 00:00:00 2001 From: soyeonLee <109227292+soyeonLee126@users.noreply.github.com> Date: Sun, 16 Aug 2026 00:54:27 +0900 Subject: [PATCH 06/12] =?UTF-8?q?test:=20=EC=B9=B4=EB=93=9C=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=C2=B7=EC=A1=B0=ED=9A=8C=20=EB=94=94=EB=B2=84=EA=B7=B8?= =?UTF-8?q?=20=ED=99=94=EB=A9=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/app/debug/CardDebugActivity.kt | 107 +++++++++++++++++- 1 file changed, 102 insertions(+), 5 deletions(-) diff --git a/app/src/debug/kotlin/com/gamss/android/app/debug/CardDebugActivity.kt b/app/src/debug/kotlin/com/gamss/android/app/debug/CardDebugActivity.kt index 6b8a0f6a..31cafe46 100644 --- a/app/src/debug/kotlin/com/gamss/android/app/debug/CardDebugActivity.kt +++ b/app/src/debug/kotlin/com/gamss/android/app/debug/CardDebugActivity.kt @@ -11,13 +11,19 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Card +import androidx.compose.material3.Button import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.produceState +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.gamss.android.core.common.AppResult @@ -25,8 +31,11 @@ import com.gamss.android.core.designsystem.theme.GamssTheme import com.gamss.android.data.remote.conversation.model.response.ConversationMessage import com.gamss.android.data.remote.conversation.model.response.userUtterances import com.gamss.android.domain.card.CardInput +import com.gamss.android.domain.card.CreateCardUseCase import com.gamss.android.domain.card.GenerateCardInputUseCase +import com.gamss.android.domain.card.GetCardsByDateUseCase import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.launch import javax.inject.Inject /** @@ -41,11 +50,17 @@ class CardDebugActivity : ComponentActivity() { @Inject lateinit var generateCardInput: GenerateCardInputUseCase + @Inject + lateinit var createCard: CreateCardUseCase + + @Inject + lateinit var getCardsByDate: GetCardsByDateUseCase + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { GamssTheme { - CardDebugScreen(generateCardInput) + CardDebugScreen(generateCardInput, createCard, getCardsByDate) } } } @@ -57,14 +72,28 @@ private data class DebugResult( val card: AppResult, ) +private data class CreateAndQueryResult( + val creation: AppResult, + val queriedCards: AppResult>?, +) + @Composable -private fun CardDebugScreen(useCase: GenerateCardInputUseCase) { +private fun CardDebugScreen( + generateCardInput: GenerateCardInputUseCase, + createCard: CreateCardUseCase, + getCardsByDate: GetCardsByDateUseCase, +) { val results by produceState?>(initialValue = null) { value = SAMPLES.map { (title, messages) -> val utts = messages.userUtterances() - DebugResult(title, utts, useCase(utts)) + DebugResult(title, utts, generateCardInput(utts)) } } + var conversationIdText by remember { mutableStateOf("") } + var creationResult by remember { mutableStateOf(null) } + var isCreating by remember { mutableStateOf(false) } + val scope = rememberCoroutineScope() + val conversationId = conversationIdText.toLongOrNull() Scaffold { padding -> Column( @@ -81,14 +110,51 @@ private fun CardDebugScreen(useCase: GenerateCardInputUseCase) { CircularProgressIndicator() Text("모델 로드 + 감정/요약 추론 중...") } else { - current.forEach { ResultCard(it) } + OutlinedTextField( + value = conversationIdText, + onValueChange = { conversationIdText = it }, + modifier = Modifier.fillMaxWidth(), + label = { Text("종료된 대화방 ID") }, + singleLine = true, + ) + Text("같은 대화방에는 카드가 한 장만 생성됩니다.", style = MaterialTheme.typography.bodySmall) + current.forEach { result -> + ResultCard( + result = result, + canCreate = conversationId != null && !isCreating, + onCreateClick = { cardInput -> + conversationId?.let { id -> + scope.launch { + isCreating = true + val creation = createCard( + CreateCardUseCase.Params( + conversationId = id, + character = cardInput.character, + summary = requireNotNull(cardInput.summary), + ), + ) + val queriedCards = (creation as? AppResult.Success) + ?.data + ?.let { card -> getCardsByDate(card.date) } + creationResult = CreateAndQueryResult(creation, queriedCards) + isCreating = false + } + } + }, + ) + } + creationResult?.let { result -> CreateAndQueryResultCard(result) } } } } } @Composable -private fun ResultCard(result: DebugResult) { +private fun ResultCard( + result: DebugResult, + canCreate: Boolean, + onCreateClick: (CardInput) -> Unit, +) { Card(modifier = Modifier.fillMaxWidth()) { Column( modifier = Modifier.padding(12.dp), @@ -106,6 +172,37 @@ private fun ResultCard(result: DebugResult) { } else { Text("감정: ${input.emotion.koLabel} → 캐릭터: ${input.character.displayName}") Text("요약: ${input.summary ?: "(없음)"}") + Button( + onClick = { onCreateClick(input) }, + enabled = canCreate && !input.summary.isNullOrBlank(), + ) { + Text("테스트 카드 생성") + } + } + } + } + } + } +} + +@Composable +private fun CreateAndQueryResultCard(result: CreateAndQueryResult) { + Card(modifier = Modifier.fillMaxWidth()) { + Column( + modifier = Modifier.padding(12.dp), + verticalArrangement = Arrangement.spacedBy(6.dp), + ) { + when (val creation = result.creation) { + is AppResult.Failure -> Text("카드 생성 실패: ${creation.throwable.message}") + is AppResult.Success -> { + Text("카드 생성 성공: #${creation.data.id}") + when (val queried = result.queriedCards) { + null -> Unit + is AppResult.Failure -> Text("날짜별 조회 실패: ${queried.throwable.message}") + is AppResult.Success -> Text( + "날짜별 조회 성공: ${queried.data.size}장 " + + "(생성 카드 포함: ${queried.data.any { it.id == creation.data.id }})", + ) } } } From dada260cccc2806f9ee0c95ba0c9549e158ce005 Mon Sep 17 00:00:00 2001 From: soyeonLee <109227292+soyeonLee126@users.noreply.github.com> Date: Sun, 16 Aug 2026 01:27:04 +0900 Subject: [PATCH 07/12] =?UTF-8?q?style:=20detekt=20=EA=B7=9C=EC=B9=99=20?= =?UTF-8?q?=EC=A4=80=EC=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../remote/card/model/response/CardResponse.kt | 2 +- .../android/feature/calendar/CalendarScreen.kt | 17 ++++++++++++----- .../feature/calendar/CalendarViewModel.kt | 1 - .../feature/calendar/CalendarViewModelTest.kt | 6 +++++- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt b/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt index f340cce8..33288d1f 100644 --- a/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt +++ b/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt @@ -1,7 +1,7 @@ package com.gamss.android.data.remote.card.model.response -import com.gamss.android.domain.card.Card import com.gamss.android.data.remote.emotion.toEmotionCharacter +import com.gamss.android.domain.card.Card import kotlinx.serialization.Serializable import java.time.LocalDate diff --git a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt index fd299c9b..17fbd27a 100644 --- a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt +++ b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt @@ -4,9 +4,9 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items @@ -31,8 +31,9 @@ import com.gamss.android.feature.calendar.component.CalendarDayCell import com.gamss.android.feature.calendar.component.MonthCalendar import com.kizitonwose.calendar.core.DayPosition import org.orbitmvi.orbit.compose.collectAsState -import java.time.format.DateTimeFormatter +import java.time.LocalDate import java.time.YearMonth +import java.time.format.DateTimeFormatter private const val PAST_MONTH_COUNT = 60L private const val FUTURE_MONTH_COUNT = 12L @@ -79,7 +80,7 @@ fun CalendarScreen( @Composable private fun CalendarCardResults( - selectedDate: java.time.LocalDate?, + selectedDate: LocalDate?, loadState: CalendarCardLoadState, onRetryClick: () -> Unit, modifier: Modifier = Modifier, @@ -88,14 +89,20 @@ private fun CalendarCardResults( Column(modifier = modifier.padding(top = 24.dp)) { Text( - text = stringResource(R.string.calendar_card_result_title, selectedDate.monthValue, selectedDate.dayOfMonth), + text = stringResource( + R.string.calendar_card_result_title, + selectedDate.monthValue, + selectedDate.dayOfMonth, + ), style = GamssTheme.typography.title3, color = GamssTheme.colors.gray950, ) Spacer(modifier = Modifier.height(12.dp)) when (loadState) { CalendarCardLoadState.Idle -> Unit - CalendarCardLoadState.Loading -> CircularProgressIndicator(modifier = Modifier.align(Alignment.CenterHorizontally)) + CalendarCardLoadState.Loading -> CircularProgressIndicator( + modifier = Modifier.align(Alignment.CenterHorizontally), + ) CalendarCardLoadState.Empty -> Text( text = stringResource(R.string.calendar_card_empty), style = GamssTheme.typography.body4Regular, diff --git a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt index b1d7293a..e20274e1 100644 --- a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt +++ b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt @@ -2,7 +2,6 @@ package com.gamss.android.feature.calendar import androidx.lifecycle.ViewModel import com.gamss.android.core.common.AppResult -import com.gamss.android.domain.card.Card import com.gamss.android.domain.card.GetCardsByDateUseCase import dagger.hilt.android.lifecycle.HiltViewModel import org.orbitmvi.orbit.ContainerHost diff --git a/feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt b/feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt index e9afaee5..5089ca22 100644 --- a/feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt +++ b/feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt @@ -70,7 +70,11 @@ class CalendarViewModelTest { override suspend fun getCardsByDate(date: LocalDate): AppResult> { requestedDate = date requestCount++ - return if (shouldFail) AppResult.Failure(IllegalStateException("Network failure")) else AppResult.Success(listOf(card)) + return if (shouldFail) { + AppResult.Failure(IllegalStateException("Network failure")) + } else { + AppResult.Success(listOf(card)) + } } override suspend fun createCard( From 8d20576203ec2269fd22d004c9b56b83e6345e91 Mon Sep 17 00:00:00 2001 From: soyeonLee <109227292+soyeonLee126@users.noreply.github.com> Date: Sun, 16 Aug 2026 02:32:42 +0900 Subject: [PATCH 08/12] =?UTF-8?q?fix:=20=EC=B9=B4=EB=93=9C=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EC=95=88=EC=A0=95=EC=84=B1=20=EB=B3=B4=EC=99=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/designsystem/card/GamssImageCard.kt | 129 ++++++++++-------- .../card/model/response/CardResponse.kt | 22 +++ .../data/repository/CardRepositoryImpl.kt | 3 +- .../data/remote/card/CardResponseTest.kt | 36 +++++ .../feature/calendar/CalendarScreen.kt | 52 ++++--- .../feature/calendar/CalendarViewModel.kt | 35 +++-- .../feature/calendar/CalendarViewModelTest.kt | 58 ++++++++ 7 files changed, 237 insertions(+), 98 deletions(-) diff --git a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt index 12dac18f..98060254 100644 --- a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt +++ b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt @@ -153,72 +153,83 @@ fun GamssEmotionCard( shape = shape, topEndAction = topEndAction, ) { - Spacer(modifier = Modifier.height(DateToCharacterGap)) - Box( - modifier = Modifier - .fillMaxWidth() - .height(CharacterImageHeight), - ) { - GamssEmotionCardCharacterImage(character = character) - } - Spacer(modifier = Modifier.height(CharacterToTitleGap)) - Text( - text = title, - modifier = Modifier.fillMaxWidth(), - style = GamssTheme.typography.title2, - color = GamssTheme.colors.gray950, - textAlign = TextAlign.Center, - ) - Spacer(modifier = Modifier.height(GamssTheme.spacing.spacing200)) - Text( - text = description, - modifier = Modifier.fillMaxWidth(), - style = GamssTheme.typography.body4Regular, - color = GamssTheme.colors.gray800, - textAlign = TextAlign.Center, - maxLines = 2, - overflow = TextOverflow.Ellipsis, - ) - Spacer(modifier = Modifier.height(GamssTheme.spacing.spacing800)) - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.spacedBy(GamssTheme.spacing.spacing100), - ) { - CardOutlinedButton( - text = primaryActionLabel, - onClick = onPrimaryActionClick, - modifier = Modifier.weight(1f), - ) - CardOutlinedButton( - text = secondaryActionLabel, - onClick = onSecondaryActionClick, - modifier = Modifier.weight(1f), - ) - } - Spacer(modifier = Modifier.height(GamssTheme.spacing.spacing200)) - Row( - modifier = Modifier - .fillMaxWidth() - .noRippleClickableIfNotNull(onShareClick), - horizontalArrangement = Arrangement.Center, - verticalAlignment = Alignment.CenterVertically, - ) { + GamssEmotionCardContent(character = character) { Text( - text = shareActionLabel, - style = GamssTheme.typography.body5Medium, - color = GamssTheme.colors.gray600, + text = title, + modifier = Modifier.fillMaxWidth(), + style = GamssTheme.typography.title2, + color = GamssTheme.colors.gray950, + textAlign = TextAlign.Center, ) - Spacer(modifier = Modifier.width(GamssTheme.spacing.spacing025)) - Icon( - painter = painterResource(GamssIcons.RightChevron), - contentDescription = null, - tint = GamssTheme.colors.gray600, - modifier = Modifier.size(GamssTheme.spacing.spacing300), + Spacer(modifier = Modifier.height(GamssTheme.spacing.spacing200)) + Text( + text = description, + modifier = Modifier.fillMaxWidth(), + style = GamssTheme.typography.body4Regular, + color = GamssTheme.colors.gray800, + textAlign = TextAlign.Center, + maxLines = 2, + overflow = TextOverflow.Ellipsis, ) + Spacer(modifier = Modifier.height(GamssTheme.spacing.spacing800)) + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(GamssTheme.spacing.spacing100), + ) { + CardOutlinedButton( + text = primaryActionLabel, + onClick = onPrimaryActionClick, + modifier = Modifier.weight(1f), + ) + CardOutlinedButton( + text = secondaryActionLabel, + onClick = onSecondaryActionClick, + modifier = Modifier.weight(1f), + ) + } + Spacer(modifier = Modifier.height(GamssTheme.spacing.spacing200)) + Row( + modifier = Modifier + .fillMaxWidth() + .noRippleClickableIfNotNull(onShareClick), + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = shareActionLabel, + style = GamssTheme.typography.body5Medium, + color = GamssTheme.colors.gray600, + ) + Spacer(modifier = Modifier.width(GamssTheme.spacing.spacing025)) + Icon( + painter = painterResource(GamssIcons.RightChevron), + contentDescription = null, + tint = GamssTheme.colors.gray600, + modifier = Modifier.size(GamssTheme.spacing.spacing300), + ) + } } } } +/** 감정 카드의 캐릭터 영역과 그 아래 콘텐츠 간격을 재사용한다. */ +@Composable +fun ColumnScope.GamssEmotionCardContent( + character: GamssEmotionCardCharacter, + content: @Composable ColumnScope.() -> Unit, +) { + Spacer(modifier = Modifier.height(DateToCharacterGap)) + Box( + modifier = Modifier + .fillMaxWidth() + .height(CharacterImageHeight), + ) { + GamssEmotionCardCharacterImage(character = character) + } + Spacer(modifier = Modifier.height(CharacterToTitleGap)) + content() +} + /** * 이미지 카드 안에 대화 로그를 배치하는 카드 퍼사드. * diff --git a/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt b/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt index 33288d1f..f24aa40b 100644 --- a/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt +++ b/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt @@ -4,6 +4,7 @@ import com.gamss.android.data.remote.emotion.toEmotionCharacter import com.gamss.android.domain.card.Card import kotlinx.serialization.Serializable import java.time.LocalDate +import java.time.format.DateTimeParseException @Serializable internal data class CardResponse( @@ -25,3 +26,24 @@ internal fun CardResponse.toDomain(): Card = Card( message = message, date = LocalDate.parse(date), ) + +/** 목록 응답의 예상 가능한 서버 데이터 오류가 정상 카드까지 가리지 않도록 안전하게 변환한다. */ +internal fun CardResponse.toDomainOrNull(): Card? = emotion.toEmotionCharacter()?.let { character -> + date.toLocalDateOrNull()?.let { parsedDate -> + Card( + id = id, + conversationId = conversationId, + character = character, + emotionLabel = emotionLabel, + summary = summary, + message = message, + date = parsedDate, + ) + } +} + +private fun String.toLocalDateOrNull(): LocalDate? = try { + LocalDate.parse(this) +} catch (_: DateTimeParseException) { + null +} diff --git a/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt b/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt index 5f86d7c4..c14d9fcb 100644 --- a/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt +++ b/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt @@ -4,6 +4,7 @@ import com.gamss.android.core.common.AppResult import com.gamss.android.data.remote.card.CardService import com.gamss.android.data.remote.card.model.request.CreateCardRequest import com.gamss.android.data.remote.card.model.response.toDomain +import com.gamss.android.data.remote.card.model.response.toDomainOrNull import com.gamss.android.data.remote.emotion.toServerEmotionType import com.gamss.android.data.remote.runCatchingApiCall import com.gamss.android.data.remote.throwIfFailed @@ -23,7 +24,7 @@ internal class CardRepositoryImpl @Inject constructor( override suspend fun getCardsByDate(date: LocalDate): AppResult> = runCatchingApiCall { val response = cardService.getCardsByDate(date.toString()) response.throwIfFailed() - checkNotNull(response.data) { "No available card data" }.map { it.toDomain() } + checkNotNull(response.data) { "No available card data" }.mapNotNull { it.toDomainOrNull() } } override suspend fun createCard( diff --git a/data/src/test/kotlin/com/gamss/android/data/remote/card/CardResponseTest.kt b/data/src/test/kotlin/com/gamss/android/data/remote/card/CardResponseTest.kt index 2cc3941e..96854054 100644 --- a/data/src/test/kotlin/com/gamss/android/data/remote/card/CardResponseTest.kt +++ b/data/src/test/kotlin/com/gamss/android/data/remote/card/CardResponseTest.kt @@ -2,6 +2,7 @@ package com.gamss.android.data.remote.card import com.gamss.android.data.remote.card.model.response.CardResponse import com.gamss.android.data.remote.card.model.response.toDomain +import com.gamss.android.data.remote.card.model.response.toDomainOrNull import com.gamss.android.domain.emotion.EmotionCharacter import org.junit.Assert.assertEquals import org.junit.Test @@ -28,4 +29,39 @@ class CardResponseTest { assertEquals("비 때문에 하루가 꼬였어요", card.summary) assertEquals(LocalDate.of(2026, 8, 15), card.date) } + + @Test + fun `invalid card responses do not hide valid cards in a list`() { + val cards = listOf( + CardResponse( + id = 10L, + conversationId = 20L, + emotion = "ANGER", + emotionLabel = "분노", + summary = "요약", + message = "메시지", + date = "2026-08-15", + ), + CardResponse( + id = 11L, + conversationId = 20L, + emotion = "FUTURE_EMOTION", + emotionLabel = "미래 감정", + summary = "요약", + message = "메시지", + date = "2026-08-15", + ), + CardResponse( + id = 12L, + conversationId = 20L, + emotion = "ANGER", + emotionLabel = "분노", + summary = "요약", + message = "메시지", + date = "invalid-date", + ), + ).mapNotNull { it.toDomainOrNull() } + + assertEquals(listOf(10L), cards.map { it.id }) + } } diff --git a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt index 17fbd27a..bf8d46b6 100644 --- a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt +++ b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt @@ -20,9 +20,10 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel -import com.gamss.android.core.designsystem.card.GamssEmotionCardCharacterImage +import com.gamss.android.core.designsystem.card.GamssEmotionCardContent import com.gamss.android.core.designsystem.card.GamssImageCard import com.gamss.android.core.designsystem.theme.GamssTheme import com.gamss.android.core.ui.card.toGamssEmotionCardCharacter @@ -136,35 +137,30 @@ private fun CalendarCardItem(card: Card) { contentAlignment = Alignment.TopCenter, ) { GamssImageCard(date = card.date.format(CardDateFormatter)) { - Spacer(modifier = Modifier.height(18.dp)) - Box( - modifier = Modifier - .fillMaxWidth() - .height(156.dp), + GamssEmotionCardContent( + character = card.character.toGamssEmotionCardCharacter(), ) { - GamssEmotionCardCharacterImage( - character = card.character.toGamssEmotionCardCharacter(), - ) - } - Spacer(modifier = Modifier.height(42.dp)) - Column( - modifier = Modifier.fillMaxWidth(), - verticalArrangement = Arrangement.spacedBy(4.dp), - ) { - Text( - text = card.emotionLabel, + Column( modifier = Modifier.fillMaxWidth(), - style = GamssTheme.typography.subtitle3, - color = GamssTheme.colors.gray800, - textAlign = androidx.compose.ui.text.style.TextAlign.Center, - ) - Text( - text = card.summary, - modifier = Modifier.fillMaxWidth(), - style = GamssTheme.typography.title3, - color = GamssTheme.colors.gray950, - textAlign = androidx.compose.ui.text.style.TextAlign.Center, - ) + verticalArrangement = Arrangement.spacedBy(4.dp), + ) { + Text( + text = card.emotionLabel, + modifier = Modifier.fillMaxWidth(), + style = GamssTheme.typography.subtitle3, + color = GamssTheme.colors.gray800, + textAlign = androidx.compose.ui.text.style.TextAlign.Center, + ) + Text( + text = card.summary, + modifier = Modifier.fillMaxWidth(), + style = GamssTheme.typography.title3, + color = GamssTheme.colors.gray950, + textAlign = androidx.compose.ui.text.style.TextAlign.Center, + maxLines = 2, + overflow = TextOverflow.Ellipsis, + ) + } } } } diff --git a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt index e20274e1..70cf8e9f 100644 --- a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt +++ b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt @@ -4,6 +4,10 @@ import androidx.lifecycle.ViewModel import com.gamss.android.core.common.AppResult import com.gamss.android.domain.card.GetCardsByDateUseCase import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.CoroutineStart +import kotlinx.coroutines.Job +import kotlinx.coroutines.cancelAndJoin +import kotlinx.coroutines.launch import org.orbitmvi.orbit.ContainerHost import org.orbitmvi.orbit.syntax.Syntax import org.orbitmvi.orbit.viewmodel.container @@ -21,31 +25,42 @@ class CalendarViewModel @Inject constructor( CalendarState(today = LocalDate.now()), ) + private var cardLoadJob: Job? = null + fun selectDate(date: LocalDate) = intent { if (date == state.selectedDate) { + cardLoadJob?.cancel() reduce { state.copy(selectedDate = null, cardLoadState = CalendarCardLoadState.Idle) } return@intent } - loadCards(date) + startCardLoad(date) } fun retrySelectedDate() = intent { - state.selectedDate?.let { loadCards(it) } + state.selectedDate?.let { startCardLoad(it) } } - private suspend fun Syntax.loadCards(date: LocalDate) { + private suspend fun Syntax.startCardLoad(date: LocalDate) { + cardLoadJob?.cancelAndJoin() reduce { state.copy(selectedDate = date, cardLoadState = CalendarCardLoadState.Loading) } - when (val result = getCardsByDate(date)) { - is AppResult.Success -> reduce { - state.copy( - cardLoadState = result.data + + cardLoadJob = container.scope.launch(start = CoroutineStart.UNDISPATCHED) { + val loadState = when (val result = getCardsByDate(date)) { + is AppResult.Success -> + result.data .takeIf { it.isNotEmpty() } ?.let(CalendarCardLoadState::Content) - ?: CalendarCardLoadState.Empty, - ) + ?: CalendarCardLoadState.Empty + is AppResult.Failure -> + CalendarCardLoadState.Error + } + + intent { + if (state.selectedDate == date) { + reduce { state.copy(cardLoadState = loadState) } + } } - is AppResult.Failure -> reduce { state.copy(cardLoadState = CalendarCardLoadState.Error) } } } } diff --git a/feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt b/feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt index 5089ca22..fa4c7369 100644 --- a/feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt +++ b/feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt @@ -5,7 +5,9 @@ import com.gamss.android.domain.card.Card import com.gamss.android.domain.card.CardRepository import com.gamss.android.domain.card.GetCardsByDateUseCase import com.gamss.android.domain.emotion.EmotionCharacter +import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.awaitCancellation import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Assert.assertEquals @@ -25,6 +27,7 @@ class CalendarViewModelTest { CalendarViewModel(GetCardsByDateUseCase(repository)).test(this) { containerHost.selectDate(selectedDate) runCurrent() + runCurrent() val state = containerHost.container.stateFlow.value assertEquals(selectedDate, repository.requestedDate) @@ -43,11 +46,13 @@ class CalendarViewModelTest { CalendarViewModel(GetCardsByDateUseCase(repository)).test(this) { containerHost.selectDate(selectedDate) runCurrent() + runCurrent() assertEquals(CalendarCardLoadState.Error, containerHost.container.stateFlow.value.cardLoadState) repository.shouldFail = false containerHost.retrySelectedDate() runCurrent() + runCurrent() assertEquals(2, repository.requestCount) assertEquals( @@ -58,6 +63,29 @@ class CalendarViewModelTest { } } + @Test + fun `selecting a new date cancels the previous card request`() = runTest { + val firstDate = LocalDate.of(2026, 8, 15) + val secondDate = LocalDate.of(2026, 8, 16) + val repository = DelayingCardRepository() + + CalendarViewModel(GetCardsByDateUseCase(repository)).test(this) { + containerHost.selectDate(firstDate) + repository.awaitFirstRequest() + containerHost.selectDate(secondDate) + repository.awaitSecondRequest() + + assertEquals(listOf(firstDate, secondDate), repository.requestedDates) + assertEquals(listOf(firstDate), repository.cancelledDates) + assertEquals(secondDate, containerHost.container.stateFlow.value.selectedDate) + assertEquals(CalendarCardLoadState.Loading, containerHost.container.stateFlow.value.cardLoadState) + + containerHost.selectDate(secondDate) + runCurrent() + cancelAndIgnoreRemainingItems() + } + } + private class RecordingCardRepository( private val card: Card, var shouldFail: Boolean = false, @@ -84,6 +112,36 @@ class CalendarViewModelTest { ): AppResult = error("Not used by the calendar") } + private class DelayingCardRepository : CardRepository { + val requestedDates = mutableListOf() + val cancelledDates = mutableListOf() + private val firstRequestStarted = CompletableDeferred() + private val secondRequestStarted = CompletableDeferred() + + override suspend fun getCardsByDate(date: LocalDate): AppResult> { + requestedDates += date + when (requestedDates.size) { + 1 -> firstRequestStarted.complete(Unit) + 2 -> secondRequestStarted.complete(Unit) + } + try { + awaitCancellation() + } finally { + cancelledDates += date + } + } + + suspend fun awaitFirstRequest() = firstRequestStarted.await() + + suspend fun awaitSecondRequest() = secondRequestStarted.await() + + override suspend fun createCard( + conversationId: Long, + character: EmotionCharacter, + summary: String, + ): AppResult = error("Not used by the calendar") + } + private fun card(date: LocalDate) = Card( id = 1L, conversationId = 2L, From 5f7cd48bd6221bfd5b664692d8a4634e0947d636 Mon Sep 17 00:00:00 2001 From: soyeonLee <109227292+soyeonLee126@users.noreply.github.com> Date: Mon, 17 Aug 2026 14:13:58 +0900 Subject: [PATCH 09/12] =?UTF-8?q?feat:=20=EC=BA=98=EB=A6=B0=EB=8D=94=20?= =?UTF-8?q?=EC=B9=B4=EB=93=9C=20=EC=83=81=EC=84=B8=20=ED=8C=9D=EC=97=85?= =?UTF-8?q?=EA=B3=BC=20=EB=8B=A8=EA=B1=B4=20=EC=82=AD=EC=A0=9C=20=EC=97=B0?= =?UTF-8?q?=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 캘린더에서 카드를 탭하면 Figma의 Dim+Card 팝업으로 상세를 보여주고, 대화보기(채팅방 이동)·공유하기(공유 시트)·기록 버리기(실삭제 API 연동) 를 처리한다. --- .../com/gamss/android/app/main/MainScreen.kt | 6 +- .../android/data/remote/card/CardService.kt | 6 + .../android/data/repository/ApiErrorCodes.kt | 1 + .../data/repository/CardRepositoryImpl.kt | 16 +++ .../data/repository/CardRepositoryImplTest.kt | 50 ++++++++ .../android/domain/card/CardRepository.kt | 3 + .../android/domain/card/DeleteCardUseCase.kt | 13 ++ .../domain/card/CreateCardUseCaseTest.kt | 2 + .../domain/card/DeleteCardUseCaseTest.kt | 39 ++++++ .../conversation/ConversationSessionTest.kt | 2 + .../feature/calendar/CalendarScreen.kt | 49 ++++++- .../feature/calendar/CalendarSideEffect.kt | 5 +- .../android/feature/calendar/CalendarState.kt | 8 ++ .../feature/calendar/CalendarViewModel.kt | 27 ++++ .../calendar/component/CardDetailDialog.kt | 120 ++++++++++++++++++ .../calendar/src/main/res/values/strings.xml | 7 + .../feature/calendar/CalendarViewModelTest.kt | 71 ++++++++++- .../android/feature/chat/ChatRoomTestFakes.kt | 2 + .../android/feature/home/HomeTestFakes.kt | 2 + 19 files changed, 421 insertions(+), 8 deletions(-) create mode 100644 data/src/test/java/com/gamss/android/data/repository/CardRepositoryImplTest.kt create mode 100644 domain/src/main/kotlin/com/gamss/android/domain/card/DeleteCardUseCase.kt create mode 100644 domain/src/test/kotlin/com/gamss/android/domain/card/DeleteCardUseCaseTest.kt create mode 100644 feature/calendar/src/main/java/com/gamss/android/feature/calendar/component/CardDetailDialog.kt diff --git a/app/src/main/kotlin/com/gamss/android/app/main/MainScreen.kt b/app/src/main/kotlin/com/gamss/android/app/main/MainScreen.kt index 90dc8f2d..6251f3a2 100644 --- a/app/src/main/kotlin/com/gamss/android/app/main/MainScreen.kt +++ b/app/src/main/kotlin/com/gamss/android/app/main/MainScreen.kt @@ -99,7 +99,11 @@ private fun mainEntryProvider(navigator: Navigator) = entryProvider { onOpenConversation = { conversationId -> navigator.navigate(ChatRoomKey(conversationId)) }, ) } - entry { CalendarScreen() } + entry { + CalendarScreen( + onOpenConversation = { conversationId -> navigator.navigate(ChatRoomKey(conversationId)) }, + ) + } entry { SettingScreen( onBackClick = navigator::goBack, diff --git a/data/src/main/java/com/gamss/android/data/remote/card/CardService.kt b/data/src/main/java/com/gamss/android/data/remote/card/CardService.kt index 6497b611..6ea5c4cc 100644 --- a/data/src/main/java/com/gamss/android/data/remote/card/CardService.kt +++ b/data/src/main/java/com/gamss/android/data/remote/card/CardService.kt @@ -4,8 +4,10 @@ import com.gamss.android.data.remote.card.model.request.CreateCardRequest import com.gamss.android.data.remote.card.model.response.CardResponse import com.gamss.android.data.remote.model.response.ApiResponse import retrofit2.http.Body +import retrofit2.http.DELETE import retrofit2.http.GET import retrofit2.http.POST +import retrofit2.http.Path import retrofit2.http.Query internal interface CardService { @@ -16,4 +18,8 @@ internal interface CardService { /** 종료된 채팅방에만 만들 수 있다. 대사는 서버가 생성한다. */ @POST("/api/cards") suspend fun createCard(@Body request: CreateCardRequest): ApiResponse + + /** 카드 한 장과 카드가 나온 채팅방을 함께 삭제한다. envelope 의 success 만 보고 data 는 쓰지 않는다. */ + @DELETE("/api/cards/{cardId}") + suspend fun deleteCard(@Path("cardId") cardId: Long): ApiResponse } diff --git a/data/src/main/java/com/gamss/android/data/repository/ApiErrorCodes.kt b/data/src/main/java/com/gamss/android/data/repository/ApiErrorCodes.kt index 0cb4c28e..9d76a739 100644 --- a/data/src/main/java/com/gamss/android/data/repository/ApiErrorCodes.kt +++ b/data/src/main/java/com/gamss/android/data/repository/ApiErrorCodes.kt @@ -12,3 +12,4 @@ internal fun Throwable.hasErrorCode(code: String): Boolean = internal const val CONVERSATION_ALREADY_ENDED = "CONVERSATION_ALREADY_ENDED" internal const val CONVERSATION_ALREADY_DELETED = "CONVERSATION_ALREADY_DELETED" internal const val CARD_ALREADY_EXISTS = "CARD_ALREADY_EXISTS" +internal const val CARD_ALREADY_DELETED = "CARD_ALREADY_DELETED" diff --git a/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt b/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt index c14d9fcb..20f34879 100644 --- a/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt +++ b/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt @@ -54,4 +54,20 @@ internal class CardRepositoryImpl @Inject constructor( } } } + + override suspend fun deleteCard(cardId: Long): AppResult { + val result = runCatchingApiCall { + cardService.deleteCard(cardId).throwIfFailed() + } + return when (result) { + is AppResult.Success -> AppResult.Success(Unit) + // 이미 지워진 카드면 목표는 달성된 상태다. 실패로 흘리면 재시도가 영원히 같은 오류를 받는다. + is AppResult.Failure -> + if (result.throwable.hasErrorCode(CARD_ALREADY_DELETED)) { + AppResult.Success(Unit) + } else { + result + } + } + } } diff --git a/data/src/test/java/com/gamss/android/data/repository/CardRepositoryImplTest.kt b/data/src/test/java/com/gamss/android/data/repository/CardRepositoryImplTest.kt new file mode 100644 index 00000000..ac951fbd --- /dev/null +++ b/data/src/test/java/com/gamss/android/data/repository/CardRepositoryImplTest.kt @@ -0,0 +1,50 @@ +package com.gamss.android.data.repository + +import com.gamss.android.core.common.AppResult +import com.gamss.android.core.common.network.ApiException +import com.gamss.android.data.remote.card.CardService +import com.gamss.android.data.remote.model.response.ApiError +import com.gamss.android.data.remote.model.response.ApiResponse +import io.mockk.coEvery +import io.mockk.mockk +import kotlinx.coroutines.test.runTest +import org.junit.Assert.assertEquals +import org.junit.Test + +class CardRepositoryImplTest { + + private val cardService: CardService = mockk() + private val repository = CardRepositoryImpl(cardService) + + @Test + fun `카드 삭제 요청을 전달한다`() = runTest { + coEvery { cardService.deleteCard(1L) } returns ApiResponse(success = true, data = Unit) + + assertEquals(AppResult.Success(Unit), repository.deleteCard(1L)) + } + + @Test + fun `이미 삭제된 카드는 성공으로 전달한다`() = runTest { + coEvery { cardService.deleteCard(1L) } returns ApiResponse( + success = false, + error = ApiError(code = "CARD_ALREADY_DELETED", message = "이미 삭제됨"), + ) + + assertEquals(AppResult.Success(Unit), repository.deleteCard(1L)) + } + + @Test + fun `카드 삭제 실패 envelope는 실패로 전달한다`() = runTest { + coEvery { cardService.deleteCard(1L) } returns ApiResponse( + success = false, + error = ApiError(code = "CARD_NOT_FOUND", message = "존재하지 않음"), + ) + + val result = repository.deleteCard(1L) + + assertEquals( + "CARD_NOT_FOUND", + ((result as AppResult.Failure).throwable as ApiException).code, + ) + } +} diff --git a/domain/src/main/kotlin/com/gamss/android/domain/card/CardRepository.kt b/domain/src/main/kotlin/com/gamss/android/domain/card/CardRepository.kt index 6740eaf9..494f0f7b 100644 --- a/domain/src/main/kotlin/com/gamss/android/domain/card/CardRepository.kt +++ b/domain/src/main/kotlin/com/gamss/android/domain/card/CardRepository.kt @@ -15,4 +15,7 @@ interface CardRepository { character: EmotionCharacter, summary: String, ): AppResult + + /** 카드 한 장과 카드가 나온 채팅방을 함께 삭제한다. 되돌릴 수 없다. */ + suspend fun deleteCard(cardId: Long): AppResult } diff --git a/domain/src/main/kotlin/com/gamss/android/domain/card/DeleteCardUseCase.kt b/domain/src/main/kotlin/com/gamss/android/domain/card/DeleteCardUseCase.kt new file mode 100644 index 00000000..287ea140 --- /dev/null +++ b/domain/src/main/kotlin/com/gamss/android/domain/card/DeleteCardUseCase.kt @@ -0,0 +1,13 @@ +package com.gamss.android.domain.card + +import com.gamss.android.core.common.AppResult +import com.gamss.android.domain.usecase.UseCase +import javax.inject.Inject + +/** 카드 한 장을 삭제한다. */ +class DeleteCardUseCase @Inject constructor( + private val cardRepository: CardRepository, +) : UseCase> { + + override suspend fun invoke(params: Long): AppResult = cardRepository.deleteCard(params) +} diff --git a/domain/src/test/kotlin/com/gamss/android/domain/card/CreateCardUseCaseTest.kt b/domain/src/test/kotlin/com/gamss/android/domain/card/CreateCardUseCaseTest.kt index f3d73b66..55f55eda 100644 --- a/domain/src/test/kotlin/com/gamss/android/domain/card/CreateCardUseCaseTest.kt +++ b/domain/src/test/kotlin/com/gamss/android/domain/card/CreateCardUseCaseTest.kt @@ -35,6 +35,8 @@ class CreateCardUseCaseTest { override suspend fun getCardsByDate(date: LocalDate): AppResult> = AppResult.Success(emptyList()) + + override suspend fun deleteCard(cardId: Long): AppResult = error("사용하지 않음") } @Test diff --git a/domain/src/test/kotlin/com/gamss/android/domain/card/DeleteCardUseCaseTest.kt b/domain/src/test/kotlin/com/gamss/android/domain/card/DeleteCardUseCaseTest.kt new file mode 100644 index 00000000..285749cb --- /dev/null +++ b/domain/src/test/kotlin/com/gamss/android/domain/card/DeleteCardUseCaseTest.kt @@ -0,0 +1,39 @@ +package com.gamss.android.domain.card + +import com.gamss.android.core.common.AppResult +import com.gamss.android.domain.emotion.EmotionCharacter +import kotlinx.coroutines.runBlocking +import org.junit.Assert.assertEquals +import org.junit.Test +import java.time.LocalDate + +class DeleteCardUseCaseTest { + + private class RecordingRepository : CardRepository { + var deletedCardId: Long? = null + private set + + override suspend fun getCardsByDate(date: LocalDate): AppResult> = error("사용하지 않음") + + override suspend fun createCard( + conversationId: Long, + character: EmotionCharacter, + summary: String, + ): AppResult = error("사용하지 않음") + + override suspend fun deleteCard(cardId: Long): AppResult { + deletedCardId = cardId + return AppResult.Success(Unit) + } + } + + @Test + fun `카드 삭제를 리포지토리에 위임한다`() = runBlocking { + val repository = RecordingRepository() + + val result = DeleteCardUseCase(repository)(1L) + + assertEquals(1L, repository.deletedCardId) + assertEquals(AppResult.Success(Unit), result) + } +} diff --git a/domain/src/test/kotlin/com/gamss/android/domain/conversation/ConversationSessionTest.kt b/domain/src/test/kotlin/com/gamss/android/domain/conversation/ConversationSessionTest.kt index 78d1df03..384a3f02 100644 --- a/domain/src/test/kotlin/com/gamss/android/domain/conversation/ConversationSessionTest.kt +++ b/domain/src/test/kotlin/com/gamss/android/domain/conversation/ConversationSessionTest.kt @@ -233,6 +233,8 @@ class ConversationSessionTest { date = LocalDate.of(2026, 8, 15), ), ) + + override suspend fun deleteCard(cardId: Long): AppResult = error("사용하지 않음") } private class FakeConversationRepository( diff --git a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt index bf8d46b6..c54664bc 100644 --- a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt +++ b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarScreen.kt @@ -1,5 +1,9 @@ package com.gamss.android.feature.calendar +import android.content.Context +import android.content.Intent +import android.widget.Toast +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -19,6 +23,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp @@ -29,9 +34,11 @@ import com.gamss.android.core.designsystem.theme.GamssTheme import com.gamss.android.core.ui.card.toGamssEmotionCardCharacter import com.gamss.android.domain.card.Card import com.gamss.android.feature.calendar.component.CalendarDayCell +import com.gamss.android.feature.calendar.component.CardDetailDialog import com.gamss.android.feature.calendar.component.MonthCalendar import com.kizitonwose.calendar.core.DayPosition import org.orbitmvi.orbit.compose.collectAsState +import org.orbitmvi.orbit.compose.collectSideEffect import java.time.LocalDate import java.time.YearMonth import java.time.format.DateTimeFormatter @@ -41,9 +48,21 @@ private const val FUTURE_MONTH_COUNT = 12L @Composable fun CalendarScreen( + onOpenConversation: (Long) -> Unit, viewModel: CalendarViewModel = hiltViewModel(), ) { val state by viewModel.collectAsState() + val context = LocalContext.current + val shareChooserTitle = stringResource(R.string.calendar_card_share_chooser_title) + val discardFailureMessage = stringResource(R.string.calendar_card_discard_failure) + + viewModel.collectSideEffect { sideEffect -> + when (sideEffect) { + is CalendarSideEffect.OpenChatRoom -> onOpenConversation(sideEffect.conversationId) + CalendarSideEffect.CardDiscardFailed -> + Toast.makeText(context, discardFailureMessage, Toast.LENGTH_SHORT).show() + } + } val anchorMonth = remember(state.today) { YearMonth.from(state.today) } val monthRange = remember(anchorMonth) { @@ -73,10 +92,30 @@ fun CalendarScreen( selectedDate = state.selectedDate, loadState = state.cardLoadState, onRetryClick = viewModel::retrySelectedDate, + onCardClick = viewModel::selectCard, modifier = Modifier.weight(1f), ) } } + + state.selectedCard?.let { card -> + CardDetailDialog( + card = card, + onDismiss = viewModel::dismissCardDetail, + onDiscardClick = viewModel::discardSelectedCard, + onViewConversationClick = viewModel::viewSelectedConversation, + onShareClick = { shareCard(context, card, shareChooserTitle) }, + ) + } +} + +private fun shareCard(context: Context, card: Card, chooserTitle: String) { + val shareText = "${card.summary}\n\n${card.message}" + val sendIntent = Intent(Intent.ACTION_SEND).apply { + type = "text/plain" + putExtra(Intent.EXTRA_TEXT, shareText) + } + context.startActivity(Intent.createChooser(sendIntent, chooserTitle)) } @Composable @@ -84,6 +123,7 @@ private fun CalendarCardResults( selectedDate: LocalDate?, loadState: CalendarCardLoadState, onRetryClick: () -> Unit, + onCardClick: (Card) -> Unit, modifier: Modifier = Modifier, ) { if (selectedDate == null) return @@ -123,7 +163,7 @@ private fun CalendarCardResults( verticalArrangement = Arrangement.spacedBy(12.dp), ) { items(loadState.cards, key = Card::id) { card -> - CalendarCardItem(card) + CalendarCardItem(card, onClick = { onCardClick(card) }) } } } @@ -131,9 +171,12 @@ private fun CalendarCardResults( } @Composable -private fun CalendarCardItem(card: Card) { +private fun CalendarCardItem(card: Card, onClick: () -> Unit) { + val detailDescription = stringResource(R.string.calendar_card_detail_description) Box( - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .fillMaxWidth() + .clickable(onClickLabel = detailDescription, onClick = onClick), contentAlignment = Alignment.TopCenter, ) { GamssImageCard(date = card.date.format(CardDateFormatter)) { diff --git a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarSideEffect.kt b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarSideEffect.kt index 104161b1..742ba057 100644 --- a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarSideEffect.kt +++ b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarSideEffect.kt @@ -1,3 +1,6 @@ package com.gamss.android.feature.calendar -sealed interface CalendarSideEffect +sealed interface CalendarSideEffect { + data class OpenChatRoom(val conversationId: Long) : CalendarSideEffect + data object CardDiscardFailed : CalendarSideEffect +} diff --git a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarState.kt b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarState.kt index 28718fcc..5b98ef45 100644 --- a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarState.kt +++ b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarState.kt @@ -11,8 +11,16 @@ sealed interface CalendarCardLoadState { data object Error : CalendarCardLoadState } +/** 카드가 삭제된 뒤의 목록 상태를 계산한다. [Content] 가 아니면 그대로 둔다. */ +fun CalendarCardLoadState.withoutCard(cardId: Long): CalendarCardLoadState { + if (this !is CalendarCardLoadState.Content) return this + val remaining = cards.filterNot { it.id == cardId } + return if (remaining.isEmpty()) CalendarCardLoadState.Empty else CalendarCardLoadState.Content(remaining) +} + data class CalendarState( val today: LocalDate, val selectedDate: LocalDate? = null, val cardLoadState: CalendarCardLoadState = CalendarCardLoadState.Idle, + val selectedCard: Card? = null, ) diff --git a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt index 70cf8e9f..29cff938 100644 --- a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt +++ b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/CalendarViewModel.kt @@ -2,6 +2,8 @@ package com.gamss.android.feature.calendar import androidx.lifecycle.ViewModel import com.gamss.android.core.common.AppResult +import com.gamss.android.domain.card.Card +import com.gamss.android.domain.card.DeleteCardUseCase import com.gamss.android.domain.card.GetCardsByDateUseCase import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.CoroutineStart @@ -17,6 +19,7 @@ import javax.inject.Inject @HiltViewModel class CalendarViewModel @Inject constructor( private val getCardsByDate: GetCardsByDateUseCase, + private val deleteCard: DeleteCardUseCase, ) : ViewModel(), ContainerHost { @@ -41,6 +44,30 @@ class CalendarViewModel @Inject constructor( state.selectedDate?.let { startCardLoad(it) } } + fun selectCard(card: Card) = intent { + reduce { state.copy(selectedCard = card) } + } + + fun dismissCardDetail() = intent { + reduce { state.copy(selectedCard = null) } + } + + fun discardSelectedCard() = intent { + val card = state.selectedCard ?: return@intent + reduce { state.copy(selectedCard = null) } + + when (deleteCard(card.id)) { + is AppResult.Success -> reduce { state.copy(cardLoadState = state.cardLoadState.withoutCard(card.id)) } + is AppResult.Failure -> postSideEffect(CalendarSideEffect.CardDiscardFailed) + } + } + + fun viewSelectedConversation() = intent { + val conversationId = state.selectedCard?.conversationId ?: return@intent + reduce { state.copy(selectedCard = null) } + postSideEffect(CalendarSideEffect.OpenChatRoom(conversationId)) + } + private suspend fun Syntax.startCardLoad(date: LocalDate) { cardLoadJob?.cancelAndJoin() reduce { state.copy(selectedDate = date, cardLoadState = CalendarCardLoadState.Loading) } diff --git a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/component/CardDetailDialog.kt b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/component/CardDetailDialog.kt new file mode 100644 index 00000000..f72bd7d2 --- /dev/null +++ b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/component/CardDetailDialog.kt @@ -0,0 +1,120 @@ +package com.gamss.android.feature.calendar.component + +import android.content.res.Configuration +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Close +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.window.Dialog +import androidx.compose.ui.window.DialogProperties +import com.gamss.android.core.designsystem.card.GamssEmotionCard +import com.gamss.android.core.designsystem.card.GamssEmotionCardCharacter +import com.gamss.android.core.designsystem.theme.GamssTheme +import com.gamss.android.core.ui.card.toGamssEmotionCardCharacter +import com.gamss.android.domain.card.Card +import com.gamss.android.feature.calendar.R +import java.time.format.DateTimeFormatter + +/** + * 캘린더에서 카드를 탭했을 때 뜨는 상세 팝업. + * + * Figma의 Dim + Card 오버레이 구조를 그대로 옮긴다. 배경 dim 은 [Dialog] 창이 기본으로 + * 그려 주므로 여기서 따로 그리지 않는다. + */ +@Composable +internal fun CardDetailDialog( + card: Card, + onDismiss: () -> Unit, + onDiscardClick: () -> Unit, + onViewConversationClick: () -> Unit, + onShareClick: () -> Unit, +) { + Dialog( + onDismissRequest = onDismiss, + properties = DialogProperties(usePlatformDefaultWidth = false), + ) { + Box( + modifier = Modifier + .fillMaxSize() + .padding(horizontal = GamssTheme.spacing.spacing300), + contentAlignment = Alignment.Center, + ) { + GamssEmotionCard( + date = card.date.format(CardDetailDateFormatter), + character = card.character.toGamssEmotionCardCharacter(), + title = card.summary, + description = card.message, + primaryActionLabel = stringResource(R.string.calendar_card_discard), + secondaryActionLabel = stringResource(R.string.calendar_card_view_conversation), + shareActionLabel = stringResource(R.string.calendar_card_share), + onPrimaryActionClick = onDiscardClick, + onSecondaryActionClick = onViewConversationClick, + onShareClick = onShareClick, + topEndAction = { CardCloseButton(onClick = onDismiss) }, + ) + } + } +} + +@Composable +private fun CardCloseButton(onClick: () -> Unit) { + IconButton(onClick = onClick) { + Icon( + imageVector = Icons.Default.Close, + contentDescription = stringResource(R.string.calendar_card_close_description), + tint = GamssTheme.colors.gray300, + modifier = Modifier.size(GamssTheme.spacing.spacing400), + ) + } +} + +private val CardDetailDateFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("yy.MM.dd") + +@Preview(name = "Light", showBackground = true) +@Suppress("UnusedPrivateMember") +@Composable +private fun CardDetailDialogLightPreview() { + GamssTheme(darkTheme = false) { + CardDetailDialogPreviewContent() + } +} + +@Preview( + name = "Dark", + showBackground = true, + backgroundColor = 0xFF000000, + uiMode = Configuration.UI_MODE_NIGHT_YES, +) +@Suppress("UnusedPrivateMember") +@Composable +private fun CardDetailDialogDarkPreview() { + GamssTheme(darkTheme = true) { + CardDetailDialogPreviewContent() + } +} + +@Composable +private fun CardDetailDialogPreviewContent() { + GamssEmotionCard( + date = "26.08.03", + character = GamssEmotionCardCharacter.ANGER, + title = "오늘 화~나네", + description = "설느닛람햄을 긱에자네에 신손 겅투히오의 흐랸비의 수매해으는 하어이", + primaryActionLabel = stringResource(R.string.calendar_card_discard), + secondaryActionLabel = stringResource(R.string.calendar_card_view_conversation), + shareActionLabel = stringResource(R.string.calendar_card_share), + onPrimaryActionClick = {}, + onSecondaryActionClick = {}, + onShareClick = {}, + topEndAction = { CardCloseButton(onClick = {}) }, + ) +} diff --git a/feature/calendar/src/main/res/values/strings.xml b/feature/calendar/src/main/res/values/strings.xml index 0a322858..3d5e5d5d 100644 --- a/feature/calendar/src/main/res/values/strings.xml +++ b/feature/calendar/src/main/res/values/strings.xml @@ -9,4 +9,11 @@ 이 날짜에는 카드가 없어요. 카드를 불러오지 못했어요. 다시 시도 + 카드 상세 보기 + 카드 닫기 + 기록 버리기 + 대화보기 + 공유하기 + 카드 공유하기 + 기록을 버리지 못했어요. 다시 시도해주세요 diff --git a/feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt b/feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt index fa4c7369..cf5e4dd1 100644 --- a/feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt +++ b/feature/calendar/src/test/java/com/gamss/android/feature/calendar/CalendarViewModelTest.kt @@ -3,6 +3,7 @@ package com.gamss.android.feature.calendar import com.gamss.android.core.common.AppResult import com.gamss.android.domain.card.Card import com.gamss.android.domain.card.CardRepository +import com.gamss.android.domain.card.DeleteCardUseCase import com.gamss.android.domain.card.GetCardsByDateUseCase import com.gamss.android.domain.emotion.EmotionCharacter import kotlinx.coroutines.CompletableDeferred @@ -24,7 +25,7 @@ class CalendarViewModelTest { val expectedCard = card(date = selectedDate) val repository = RecordingCardRepository(expectedCard) - CalendarViewModel(GetCardsByDateUseCase(repository)).test(this) { + CalendarViewModel(GetCardsByDateUseCase(repository), DeleteCardUseCase(repository)).test(this) { containerHost.selectDate(selectedDate) runCurrent() runCurrent() @@ -43,7 +44,7 @@ class CalendarViewModelTest { val selectedDate = LocalDate.of(2026, 8, 15) val repository = RecordingCardRepository(card(selectedDate), shouldFail = true) - CalendarViewModel(GetCardsByDateUseCase(repository)).test(this) { + CalendarViewModel(GetCardsByDateUseCase(repository), DeleteCardUseCase(repository)).test(this) { containerHost.selectDate(selectedDate) runCurrent() runCurrent() @@ -69,7 +70,7 @@ class CalendarViewModelTest { val secondDate = LocalDate.of(2026, 8, 16) val repository = DelayingCardRepository() - CalendarViewModel(GetCardsByDateUseCase(repository)).test(this) { + CalendarViewModel(GetCardsByDateUseCase(repository), DeleteCardUseCase(repository)).test(this) { containerHost.selectDate(firstDate) repository.awaitFirstRequest() containerHost.selectDate(secondDate) @@ -86,14 +87,67 @@ class CalendarViewModelTest { } } + @Test + fun `discarding a card deletes it and removes it from the list`() = runTest { + val selectedDate = LocalDate.of(2026, 8, 15) + val expectedCard = card(date = selectedDate) + val repository = RecordingCardRepository(expectedCard) + + CalendarViewModel(GetCardsByDateUseCase(repository), DeleteCardUseCase(repository)).test(this) { + containerHost.selectDate(selectedDate) + runCurrent() + runCurrent() + containerHost.selectCard(expectedCard) + runCurrent() + + containerHost.discardSelectedCard() + runCurrent() + + val state = containerHost.container.stateFlow.value + assertEquals(expectedCard.id, repository.deletedCardId) + assertEquals(null, state.selectedCard) + assertEquals(CalendarCardLoadState.Empty, state.cardLoadState) + + cancelAndIgnoreRemainingItems() + } + } + + @Test + fun `a failed discard posts a side effect and keeps the card in the list`() = runTest { + val selectedDate = LocalDate.of(2026, 8, 15) + val expectedCard = card(date = selectedDate) + val repository = RecordingCardRepository(expectedCard, deleteShouldFail = true) + + CalendarViewModel(GetCardsByDateUseCase(repository), DeleteCardUseCase(repository)).test(this) { + containerHost.selectDate(selectedDate) + runCurrent() + runCurrent() + containerHost.selectCard(expectedCard) + runCurrent() + + containerHost.discardSelectedCard() + runCurrent() + skipItems(4) + expectSideEffect(CalendarSideEffect.CardDiscardFailed) + + val state = containerHost.container.stateFlow.value + assertEquals(CalendarCardLoadState.Content(listOf(expectedCard)), state.cardLoadState) + + cancelAndIgnoreRemainingItems() + } + } + private class RecordingCardRepository( private val card: Card, var shouldFail: Boolean = false, + var deleteShouldFail: Boolean = false, ) : CardRepository { var requestedDate: LocalDate? = null private set var requestCount: Int = 0 private set + var deletedCardId: Long? = null + private set override suspend fun getCardsByDate(date: LocalDate): AppResult> { requestedDate = date @@ -110,6 +164,15 @@ class CalendarViewModelTest { character: EmotionCharacter, summary: String, ): AppResult = error("Not used by the calendar") + + override suspend fun deleteCard(cardId: Long): AppResult { + deletedCardId = cardId + return if (deleteShouldFail) { + AppResult.Failure(IllegalStateException("Delete failure")) + } else { + AppResult.Success(Unit) + } + } } private class DelayingCardRepository : CardRepository { @@ -140,6 +203,8 @@ class CalendarViewModelTest { character: EmotionCharacter, summary: String, ): AppResult = error("Not used by the calendar") + + override suspend fun deleteCard(cardId: Long): AppResult = error("Not used by the calendar") } private fun card(date: LocalDate) = Card( diff --git a/feature/chat/src/test/java/com/gamss/android/feature/chat/ChatRoomTestFakes.kt b/feature/chat/src/test/java/com/gamss/android/feature/chat/ChatRoomTestFakes.kt index 9a4ef670..31781201 100644 --- a/feature/chat/src/test/java/com/gamss/android/feature/chat/ChatRoomTestFakes.kt +++ b/feature/chat/src/test/java/com/gamss/android/feature/chat/ChatRoomTestFakes.kt @@ -224,6 +224,8 @@ internal class CountingCardRepository( ), ) } + + override suspend fun deleteCard(cardId: Long): AppResult = error("채팅방 테스트에서 쓰지 않는다") } internal fun message(id: Long, conversationId: Long, sender: MessageSender, content: String) = Message( diff --git a/feature/home/src/test/java/com/gamss/android/feature/home/HomeTestFakes.kt b/feature/home/src/test/java/com/gamss/android/feature/home/HomeTestFakes.kt index 7cc4504a..09ca9fbc 100644 --- a/feature/home/src/test/java/com/gamss/android/feature/home/HomeTestFakes.kt +++ b/feature/home/src/test/java/com/gamss/android/feature/home/HomeTestFakes.kt @@ -120,6 +120,8 @@ private object NoCardRepository : CardRepository { character: EmotionCharacter, summary: String, ): AppResult = error("홈 테스트에서 쓰지 않는다") + + override suspend fun deleteCard(cardId: Long): AppResult = error("홈 테스트에서 쓰지 않는다") } private object PassThroughSummarizer : DiarySummarizer { From 4e857b69c066103ba433e5f55068ccce9a483e53 Mon Sep 17 00:00:00 2001 From: soyeonLee <109227292+soyeonLee126@users.noreply.github.com> Date: Mon, 17 Aug 2026 16:11:24 +0900 Subject: [PATCH 10/12] =?UTF-8?q?fix:=20=EC=B9=B4=EB=93=9C=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20=EC=9D=91=EB=8B=B5=20=EB=A7=A4=ED=95=91=20=EC=8B=A4?= =?UTF-8?q?=ED=8C=A8=EA=B0=80=20=EC=83=9D=EC=84=B1=20=EC=8B=A4=ED=8C=A8?= =?UTF-8?q?=EB=A1=9C=20=EB=92=A4=EC=A7=91=ED=9E=88=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EB=B3=B4=EC=99=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit POST 성공 뒤 감정·날짜 매핑만 실패하면 서버엔 카드가 있는데 클라만 실패로 보고, 재시도는 CARD_ALREADY_EXISTS 로 막혀 그 카드에 닿지 못했다. 매핑 못 한 값은 요청에 쓴 감정과 오늘 날짜로 메운다. --- .../card/model/response/CardResponse.kt | 15 ++++++++++--- .../data/repository/CardRepositoryImpl.kt | 3 ++- .../data/remote/card/CardResponseTest.kt | 21 ++++++++++++++++++- 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt b/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt index f24aa40b..f2e8e00f 100644 --- a/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt +++ b/data/src/main/java/com/gamss/android/data/remote/card/model/response/CardResponse.kt @@ -2,6 +2,7 @@ package com.gamss.android.data.remote.card.model.response import com.gamss.android.data.remote.emotion.toEmotionCharacter import com.gamss.android.domain.card.Card +import com.gamss.android.domain.emotion.EmotionCharacter import kotlinx.serialization.Serializable import java.time.LocalDate import java.time.format.DateTimeParseException @@ -17,14 +18,22 @@ internal data class CardResponse( val date: String, ) -internal fun CardResponse.toDomain(): Card = Card( +/** + * 생성 응답을 변환한다. POST 는 이미 성공한 뒤라 여기서 실패로 돌리면 서버엔 카드가 있는데 + * 클라만 실패로 보고, 재시도는 CARD_ALREADY_EXISTS 로 막혀 그 카드에 영영 닿지 못한다. + * 그래서 매핑하지 못한 값은 요청에 쓴 값으로 메운다. + */ +internal fun CardResponse.toDomain( + requestedCharacter: EmotionCharacter, + fallbackDate: LocalDate, +): Card = Card( id = id, conversationId = conversationId, - character = requireNotNull(emotion.toEmotionCharacter()) { "Unknown card emotion=$emotion" }, + character = emotion.toEmotionCharacter() ?: requestedCharacter, emotionLabel = emotionLabel, summary = summary, message = message, - date = LocalDate.parse(date), + date = date.toLocalDateOrNull() ?: fallbackDate, ) /** 목록 응답의 예상 가능한 서버 데이터 오류가 정상 카드까지 가리지 않도록 안전하게 변환한다. */ diff --git a/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt b/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt index 20f34879..b2f19652 100644 --- a/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt +++ b/data/src/main/java/com/gamss/android/data/repository/CardRepositoryImpl.kt @@ -41,7 +41,8 @@ internal class CardRepositoryImpl @Inject constructor( ), ) response.throwIfFailed() - checkNotNull(response.data) { "No available card data" }.toDomain() + checkNotNull(response.data) { "No available card data" } + .toDomain(requestedCharacter = character, fallbackDate = LocalDate.now()) } return when (result) { is AppResult.Success -> result diff --git a/data/src/test/kotlin/com/gamss/android/data/remote/card/CardResponseTest.kt b/data/src/test/kotlin/com/gamss/android/data/remote/card/CardResponseTest.kt index 96854054..f82befa9 100644 --- a/data/src/test/kotlin/com/gamss/android/data/remote/card/CardResponseTest.kt +++ b/data/src/test/kotlin/com/gamss/android/data/remote/card/CardResponseTest.kt @@ -20,7 +20,7 @@ class CardResponseTest { summary = "비 때문에 하루가 꼬였어요", message = "비 때문에 하루가 꼬였어요", date = "2026-08-15", - ).toDomain() + ).toDomain(requestedCharacter = EmotionCharacter.ANGER, fallbackDate = LocalDate.of(2026, 1, 1)) assertEquals(10L, card.id) assertEquals(20L, card.conversationId) @@ -30,6 +30,25 @@ class CardResponseTest { assertEquals(LocalDate.of(2026, 8, 15), card.date) } + @Test + fun `card creation falls back to the requested values when the response cannot be mapped`() { + val fallbackDate = LocalDate.of(2026, 8, 17) + + val card = CardResponse( + id = 10L, + conversationId = 20L, + emotion = "FUTURE_EMOTION", + emotionLabel = "미래 감정", + summary = "요약", + message = "메시지", + date = "invalid-date", + ).toDomain(requestedCharacter = EmotionCharacter.ANGER, fallbackDate = fallbackDate) + + assertEquals(10L, card.id) + assertEquals(EmotionCharacter.ANGER, card.character) + assertEquals(fallbackDate, card.date) + } + @Test fun `invalid card responses do not hide valid cards in a list`() { val cards = listOf( From 9934f28223c8cfd85761b183e30b4b1bcf057509 Mon Sep 17 00:00:00 2001 From: soyeonLee <109227292+soyeonLee126@users.noreply.github.com> Date: Mon, 17 Aug 2026 21:14:59 +0900 Subject: [PATCH 11/12] =?UTF-8?q?fix:=20=EA=B0=90=EC=A0=95=20=EC=B9=B4?= =?UTF-8?q?=EB=93=9C=EB=A5=BC=20=EC=8B=9C=EC=95=88=EC=97=90=20=EB=A7=9E?= =?UTF-8?q?=EA=B2=8C=20=EB=B3=B4=EC=99=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 카드 제목을 캐릭터별 고정 문구로 바꾸고 요약은 그 아래 작은 텍스트로 내린다. 제목에 요약을 넣고 있어 대사 자리와 문구 성격이 어긋났다. - 캐릭터·제목 사이와 본문·버튼 사이에 빠져 있던 점선을 넣는다. - 요약을 3줄까지 담는다. 시안 Description 높이가 3줄이다. - 닫기 아이콘을 우상단 28dp 에 맞춘다. 터치 영역이 아이콘보다 커서 그만큼 안쪽으로 밀려 있었다. --- .../core/designsystem/card/GamssImageCard.kt | 59 +++++++++++++++++-- .../ui/card/EmotionCharacterCardMapping.kt | 18 ++++++ core/ui/src/main/res/values/strings.xml | 10 ++++ .../calendar/component/CardDetailDialog.kt | 35 +++++++++-- 4 files changed, 112 insertions(+), 10 deletions(-) create mode 100644 core/ui/src/main/res/values/strings.xml diff --git a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt index 98060254..8d8a49de 100644 --- a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt +++ b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt @@ -1,6 +1,7 @@ package com.gamss.android.core.designsystem.card import android.content.res.Configuration +import androidx.compose.foundation.Canvas import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -25,6 +26,8 @@ import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.PathEffect import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.graphics.Shape import androidx.compose.ui.layout.ContentScale @@ -153,7 +156,7 @@ fun GamssEmotionCard( shape = shape, topEndAction = topEndAction, ) { - GamssEmotionCardContent(character = character) { + GamssEmotionCardContent(character = character, showDivider = true) { Text( text = title, modifier = Modifier.fillMaxWidth(), @@ -168,10 +171,13 @@ fun GamssEmotionCard( style = GamssTheme.typography.body4Regular, color = GamssTheme.colors.gray800, textAlign = TextAlign.Center, - maxLines = 2, + // Figma Description 은 높이 60 / lineHeight 20 으로 3줄까지 담는다. + maxLines = DESCRIPTION_MAX_LINES, overflow = TextOverflow.Ellipsis, ) - Spacer(modifier = Modifier.height(GamssTheme.spacing.spacing800)) + Spacer(modifier = Modifier.height(DividerToContentGap)) + GamssCardDashedDivider() + Spacer(modifier = Modifier.height(DividerToContentGap)) Row( modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(GamssTheme.spacing.spacing100), @@ -212,10 +218,16 @@ fun GamssEmotionCard( } } -/** 감정 카드의 캐릭터 영역과 그 아래 콘텐츠 간격을 재사용한다. */ +/** + * 감정 카드의 캐릭터 영역과 그 아래 콘텐츠 간격을 재사용한다. + * + * [showDivider] 를 켜면 캐릭터와 콘텐츠 사이에 점선을 넣는다. 카드 목록처럼 점선이 없는 + * 시안도 같은 캐릭터 영역을 쓰므로 기본값은 꺼짐이다. + */ @Composable fun ColumnScope.GamssEmotionCardContent( character: GamssEmotionCardCharacter, + showDivider: Boolean = false, content: @Composable ColumnScope.() -> Unit, ) { Spacer(modifier = Modifier.height(DateToCharacterGap)) @@ -226,10 +238,38 @@ fun ColumnScope.GamssEmotionCardContent( ) { GamssEmotionCardCharacterImage(character = character) } - Spacer(modifier = Modifier.height(CharacterToTitleGap)) + if (showDivider) { + Spacer(modifier = Modifier.height(CharacterToDividerGap)) + GamssCardDashedDivider() + Spacer(modifier = Modifier.height(DividerToContentGap)) + } else { + Spacer(modifier = Modifier.height(CharacterToTitleGap)) + } content() } +/** 카드 안을 가로로 끊어 주는 점선. 콘텐츠 열 전체 폭을 쓴다. */ +@Composable +private fun GamssCardDashedDivider(modifier: Modifier = Modifier) { + val color = GamssTheme.colors.gray600 + Canvas( + modifier = modifier + .fillMaxWidth() + .height(CardDividerThickness), + ) { + val y = size.height / 2f + drawLine( + color = color, + start = Offset(0f, y), + end = Offset(size.width, y), + strokeWidth = size.height, + pathEffect = PathEffect.dashPathEffect( + floatArrayOf(CardDividerDashLength.toPx(), CardDividerDashGap.toPx()), + ), + ) + } +} + /** * 이미지 카드 안에 대화 로그를 배치하는 카드 퍼사드. * @@ -365,3 +405,12 @@ private val CardAspectRatio = CardWidth.value / CardHeight.value private val DateToCharacterGap = 18.dp private val CharacterImageHeight = 156.dp private val CharacterToTitleGap = 42.dp + +// 점선 관련 값은 Figma Card(3557:5286)의 Divider 기준이다. 점선은 콘텐츠 열 전체 폭(270)을 +// 쓰고 위아래 22 씩 띄우며, 캐릭터 이미지와는 16 만 띄운다. +private val CharacterToDividerGap = 16.dp +private val DividerToContentGap = 22.dp +private val CardDividerThickness = 1.dp +private val CardDividerDashLength = 6.dp +private val CardDividerDashGap = 4.dp +private const val DESCRIPTION_MAX_LINES = 3 diff --git a/core/ui/src/main/java/com/gamss/android/core/ui/card/EmotionCharacterCardMapping.kt b/core/ui/src/main/java/com/gamss/android/core/ui/card/EmotionCharacterCardMapping.kt index 44026407..d20b1e2b 100644 --- a/core/ui/src/main/java/com/gamss/android/core/ui/card/EmotionCharacterCardMapping.kt +++ b/core/ui/src/main/java/com/gamss/android/core/ui/card/EmotionCharacterCardMapping.kt @@ -1,6 +1,8 @@ package com.gamss.android.core.ui.card +import androidx.annotation.StringRes import com.gamss.android.core.designsystem.card.GamssEmotionCardCharacter +import com.gamss.android.core.ui.R import com.gamss.android.domain.emotion.EmotionCharacter /** 도메인 캐릭터를 감정 카드의 디자인 시스템 캐릭터로 변환한다. */ @@ -12,3 +14,19 @@ fun EmotionCharacter.toGamssEmotionCardCharacter(): GamssEmotionCardCharacter = EmotionCharacter.QUIRKY -> GamssEmotionCardCharacter.QUIRKY EmotionCharacter.PRICKLY -> GamssEmotionCardCharacter.PRICKLY } + +/** + * 감정 카드 제목. + * + * 제목은 서버가 준 요약·대사가 아니라 카드 캐릭터로 정해지는 고정 문구다. 요약은 제목 아래 + * 작은 텍스트로 따로 들어간다. + */ +@StringRes +fun EmotionCharacter.cardTitleRes(): Int = when (this) { + EmotionCharacter.JOY -> R.string.emotion_card_title_joy + EmotionCharacter.ANGER -> R.string.emotion_card_title_anger + EmotionCharacter.ANXIETY -> R.string.emotion_card_title_anxiety + EmotionCharacter.SADNESS -> R.string.emotion_card_title_sadness + EmotionCharacter.QUIRKY -> R.string.emotion_card_title_quirky + EmotionCharacter.PRICKLY -> R.string.emotion_card_title_prickly +} diff --git a/core/ui/src/main/res/values/strings.xml b/core/ui/src/main/res/values/strings.xml new file mode 100644 index 00000000..268ecb83 --- /dev/null +++ b/core/ui/src/main/res/values/strings.xml @@ -0,0 +1,10 @@ + + + + 오늘 기~쁘네 + 오늘 화~나네 + 오늘 불~안하네 + 오늘 슬~프네 + 오늘 엉~뚱하네 + 오늘 까~칠하네 + diff --git a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/component/CardDetailDialog.kt b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/component/CardDetailDialog.kt index f72bd7d2..0f09b516 100644 --- a/feature/calendar/src/main/java/com/gamss/android/feature/calendar/component/CardDetailDialog.kt +++ b/feature/calendar/src/main/java/com/gamss/android/feature/calendar/component/CardDetailDialog.kt @@ -1,24 +1,28 @@ package com.gamss.android.feature.calendar.component import android.content.res.Configuration +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Close import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.Role import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import com.gamss.android.core.designsystem.card.GamssEmotionCard import com.gamss.android.core.designsystem.card.GamssEmotionCardCharacter import com.gamss.android.core.designsystem.theme.GamssTheme +import com.gamss.android.core.ui.card.cardTitleRes import com.gamss.android.core.ui.card.toGamssEmotionCardCharacter import com.gamss.android.domain.card.Card import com.gamss.android.feature.calendar.R @@ -51,8 +55,8 @@ internal fun CardDetailDialog( GamssEmotionCard( date = card.date.format(CardDetailDateFormatter), character = card.character.toGamssEmotionCardCharacter(), - title = card.summary, - description = card.message, + title = stringResource(card.character.cardTitleRes()), + description = card.summary, primaryActionLabel = stringResource(R.string.calendar_card_discard), secondaryActionLabel = stringResource(R.string.calendar_card_view_conversation), shareActionLabel = stringResource(R.string.calendar_card_share), @@ -65,18 +69,39 @@ internal fun CardDetailDialog( } } +/** + * 카드 우상단 닫기 버튼. + * + * 카드가 액션 슬롯을 Figma 값(우상단 28dp)에 맞춰 두므로 아이콘은 슬롯 좌상단에 딱 붙어야 한다. + * 그런데 터치 영역을 아이콘보다 크게 잡으면 그 차이만큼 아이콘이 안쪽으로 밀리므로, + * [CloseButtonCenteringInset] 만큼 되돌려 아이콘을 시안 위치로 보낸다. + * + * 터치 영역 크기를 [Box] 로 직접 정한다. `IconButton` 은 기본 크기와 최소 터치 크기 적용이 + * 버전마다 달라 되돌릴 양을 코드에서 확정할 수 없다. + */ @Composable private fun CardCloseButton(onClick: () -> Unit) { - IconButton(onClick = onClick) { + Box( + modifier = Modifier + .offset(x = CloseButtonCenteringInset, y = -CloseButtonCenteringInset) + .size(CloseButtonTouchSize) + .clickable(role = Role.Button, onClick = onClick), + contentAlignment = Alignment.Center, + ) { Icon( imageVector = Icons.Default.Close, contentDescription = stringResource(R.string.calendar_card_close_description), tint = GamssTheme.colors.gray300, - modifier = Modifier.size(GamssTheme.spacing.spacing400), + modifier = Modifier.size(CloseIconSize), ) } } +/** Figma 우상단 닫기 아이콘 크기. */ +private val CloseIconSize = 20.dp +private val CloseButtonTouchSize = 48.dp +private val CloseButtonCenteringInset = (CloseButtonTouchSize - CloseIconSize) / 2 + private val CardDetailDateFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("yy.MM.dd") @Preview(name = "Light", showBackground = true) From 920e79aec36cf9dc7903a30e6f262ade59c44cf8 Mon Sep 17 00:00:00 2001 From: soyeonLee <109227292+soyeonLee126@users.noreply.github.com> Date: Mon, 17 Aug 2026 21:39:21 +0900 Subject: [PATCH 12/12] =?UTF-8?q?fix:=20=EC=B9=B4=EB=93=9C=20=EC=A0=90?= =?UTF-8?q?=EC=84=A0=20=EC=83=89=C2=B7=EB=91=90=EA=BB=98=EB=A5=BC=20?= =?UTF-8?q?=EC=8B=9C=EC=95=88=EA=B0=92=EC=9C=BC=EB=A1=9C=20=EB=A7=9E?= =?UTF-8?q?=EC=B6=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 점선을 Figma 값(gray950, 1.3dp)으로 바꾼다. 카드 전체 export 에서는 얇은 선이 안티에일리어싱되며 중간 회색으로 보여 실제보다 옅게 잡았다. --- .../gamss/android/core/designsystem/card/GamssImageCard.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt index 8d8a49de..bcb25bd0 100644 --- a/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt +++ b/core/designsystem/src/main/java/com/gamss/android/core/designsystem/card/GamssImageCard.kt @@ -251,7 +251,7 @@ fun ColumnScope.GamssEmotionCardContent( /** 카드 안을 가로로 끊어 주는 점선. 콘텐츠 열 전체 폭을 쓴다. */ @Composable private fun GamssCardDashedDivider(modifier: Modifier = Modifier) { - val color = GamssTheme.colors.gray600 + val color = GamssTheme.colors.gray950 Canvas( modifier = modifier .fillMaxWidth() @@ -410,7 +410,7 @@ private val CharacterToTitleGap = 42.dp // 쓰고 위아래 22 씩 띄우며, 캐릭터 이미지와는 16 만 띄운다. private val CharacterToDividerGap = 16.dp private val DividerToContentGap = 22.dp -private val CardDividerThickness = 1.dp +private val CardDividerThickness = 1.3.dp private val CardDividerDashLength = 6.dp private val CardDividerDashGap = 4.dp private const val DESCRIPTION_MAX_LINES = 3