From a7397ea9e63c3b5bbb4c8fa3a1b7a81bd10f46fd Mon Sep 17 00:00:00 2001 From: Gyubin Date: Tue, 24 Jun 2025 16:52:17 +0900 Subject: [PATCH 0001/1075] =?UTF-8?q?[UI]=20=ED=8C=8C=EC=9D=BC=EB=AA=85=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EB=B0=8F=20CardItemRoom=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20(#25)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thip/ui/common/cards/CardItemRoom.kt | 145 ++++++++++++++++++ .../thip/ui/common/cards/CardRoomBook.kt | 6 +- .../ui/common/forms/FormTextFieldDefault.kt | 6 +- 3 files changed, 151 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/com/texthip/thip/ui/common/cards/CardItemRoom.kt diff --git a/app/src/main/java/com/texthip/thip/ui/common/cards/CardItemRoom.kt b/app/src/main/java/com/texthip/thip/ui/common/cards/CardItemRoom.kt new file mode 100644 index 00000000..6422efe0 --- /dev/null +++ b/app/src/main/java/com/texthip/thip/ui/common/cards/CardItemRoom.kt @@ -0,0 +1,145 @@ +package com.texthip.thip.ui.common.cards + +import androidx.compose.foundation.Image +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +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.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults +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.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.texthip.thip.R +import com.texthip.thip.ui.theme.ThipTheme.colors +import com.texthip.thip.ui.theme.ThipTheme.typography + +@Composable +fun CardItemRoom( + modifier: Modifier = Modifier, + title: String, + participants: Int, + maxParticipants: Int, + isRecruiting: Boolean, + endDate: Int, // 남은 일 수 (예: 3) + imageRes: Int? = R.drawable.bookcover_sample, + onClick: () -> Unit = {} +) { + Card( + modifier = modifier + .fillMaxWidth() + .clickable { onClick() }, + colors = CardDefaults.cardColors( + containerColor = colors.DarkGrey50 + ), + elevation = CardDefaults.cardElevation(defaultElevation = 4.dp), + shape = RoundedCornerShape(12.dp) + ) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(12.dp) + ) { + Row( + modifier = Modifier.fillMaxWidth() + ) { + // 이미지 + Box( + modifier = Modifier + .size(width = 80.dp, height = 107.dp) + ) { + imageRes?.let { + Image( + painter = painterResource(id = it), + contentDescription = null, + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop + ) + } + } + + Spacer(modifier = Modifier.width(16.dp)) + + Column( + modifier = Modifier.weight(1f) + ) { + Spacer(modifier = Modifier.height(16.dp)) + Text( + text = title, + color = colors.White, + style = typography.smalltitle_sb600_s18_h24, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + Spacer(modifier = Modifier.height(8.dp)) + Row(verticalAlignment = Alignment.CenterVertically) { + Icon( + modifier = Modifier.size(20.dp), + painter = painterResource(id = R.drawable.ic_group), + contentDescription = "그룹 아이콘", + tint = Color.White + ) + Spacer(modifier = Modifier.width(4.dp)) + Text( + text = if (isRecruiting) { + "$participants / ${maxParticipants}명" + } else { + "${participants}명 참여" + }, + color = colors.White, + style = typography.info_m500_s12, + ) + } + Spacer(modifier = Modifier.height(5.dp)) + Text( + text = "${endDate}일 뒤 " + if (isRecruiting) "모집 마감" else "종료", + color = if (isRecruiting) colors.Red else colors.Grey01, + style = typography.menu_sb600_s12_h20, + maxLines = 1 + ) + } + } + } + } +} + + +@Preview(showBackground = true, backgroundColor = 0xFF000000, widthDp = 360) +@Composable +fun CardItemRoomPreview() { + Column(verticalArrangement = Arrangement.spacedBy(16.dp)) { + CardItemRoom( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = true, + endDate = 3, + imageRes = R.drawable.bookcover_sample + ) + CardItemRoom( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = false, + endDate = 3, + imageRes = R.drawable.bookcover_sample + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/texthip/thip/ui/common/cards/CardRoomBook.kt b/app/src/main/java/com/texthip/thip/ui/common/cards/CardRoomBook.kt index 068a4ce5..109a37c4 100644 --- a/app/src/main/java/com/texthip/thip/ui/common/cards/CardRoomBook.kt +++ b/app/src/main/java/com/texthip/thip/ui/common/cards/CardRoomBook.kt @@ -34,7 +34,7 @@ import com.texthip.thip.ui.theme.ThipTheme.colors import com.texthip.thip.ui.theme.ThipTheme.typography @Composable -fun DetailedDarkCard( +fun CardRoomBook( modifier: Modifier = Modifier, title: String, author: String, @@ -141,13 +141,13 @@ fun DetailedDarkCard( @Preview @Composable -fun PreviewDetailedDarkCard() { +fun PreviewCardRoomBook() { Column( modifier = Modifier.padding(16.dp), verticalArrangement = Arrangement.spacedBy(8.dp) ) { - DetailedDarkCard( + CardRoomBook( title = "도서명을 입력, 예시까지 최대 입력 후...", author = "저자명", publisher = "출판사", diff --git a/app/src/main/java/com/texthip/thip/ui/common/forms/FormTextFieldDefault.kt b/app/src/main/java/com/texthip/thip/ui/common/forms/FormTextFieldDefault.kt index cc8f2285..286bb8c8 100644 --- a/app/src/main/java/com/texthip/thip/ui/common/forms/FormTextFieldDefault.kt +++ b/app/src/main/java/com/texthip/thip/ui/common/forms/FormTextFieldDefault.kt @@ -25,7 +25,7 @@ import com.texthip.thip.ui.theme.ThipTheme.colors import com.texthip.thip.ui.theme.ThipTheme.typography @Composable -fun BaseInputTextField( +fun FormTextFieldDefault( modifier: Modifier = Modifier, hint: String ) { @@ -74,12 +74,12 @@ fun BaseInputTextField( @Composable @Preview(showBackground = true, backgroundColor = 0xFF000000, widthDp = 360, heightDp = 200) -fun InputTextFieldPreviewEmpty() { +fun FormTextFieldDefaultPreview() { Box( modifier = Modifier.size(width = 360.dp, height = 200.dp), contentAlignment = Alignment.Center ) { - BaseInputTextField( + FormTextFieldDefault( hint = "이곳에 텍스트를 입력하세요" ) } From 7667ca7006b0df30f6fdca6e66bf31a79a6a5083 Mon Sep 17 00:00:00 2001 From: Gyubin Date: Thu, 26 Jun 2025 21:16:34 +0900 Subject: [PATCH 0002/1075] =?UTF-8?q?[UI]=20=EA=B8=B0=EC=A1=B4=20OptionChi?= =?UTF-8?q?pButton=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20CardItemRoomData=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20(#25)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/deploymentTargetSelector.xml | 14 -- .../ui/common/buttons/OptionChipButton.kt | 16 +- .../thip/ui/common/cards/CardItemRoom.kt | 6 +- .../ui/myPage/myGroup/CardItemRoomData.kt | 13 ++ .../thip/ui/myPage/myGroup/FilterRow.kt | 32 +++ .../myPage/myGroup/MyGroupListFilterScreen.kt | 190 ++++++++++++++++++ .../thip/ui/myPage/myGroup/MyGroupScreen.kt | 108 ++++++++++ app/src/main/res/values/strings.xml | 5 + 8 files changed, 357 insertions(+), 27 deletions(-) create mode 100644 app/src/main/java/com/texthip/thip/ui/myPage/myGroup/CardItemRoomData.kt create mode 100644 app/src/main/java/com/texthip/thip/ui/myPage/myGroup/FilterRow.kt create mode 100644 app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupListFilterScreen.kt create mode 100644 app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupScreen.kt diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index 75b3c473..a5f374e9 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -13,20 +13,6 @@ - - - - \ No newline at end of file diff --git a/app/src/main/java/com/texthip/thip/ui/common/buttons/OptionChipButton.kt b/app/src/main/java/com/texthip/thip/ui/common/buttons/OptionChipButton.kt index 22069b2e..5b6f4d6e 100644 --- a/app/src/main/java/com/texthip/thip/ui/common/buttons/OptionChipButton.kt +++ b/app/src/main/java/com/texthip/thip/ui/common/buttons/OptionChipButton.kt @@ -30,22 +30,21 @@ fun OptionChipButton( modifier: Modifier = Modifier, text: String, isFilled: Boolean = false, + isSelected: Boolean = false, onClick: () -> Unit, ) { - var isClicked by remember { mutableStateOf(false) } - val textColor = when { - isFilled -> colors.White - isClicked -> colors.Purple + isFilled && isSelected -> colors.White + isFilled -> colors.Grey01 else -> colors.Grey01 } val backgroundColor = when { - isFilled && isClicked -> colors.Purple + isFilled && isSelected -> colors.Purple isFilled -> colors.DarkGrey else -> Color.Transparent } val borderColor = when { - !isFilled && isClicked -> colors.Purple + !isFilled && isSelected -> colors.Purple !isFilled -> colors.Grey02 else -> Color.Transparent } @@ -61,10 +60,7 @@ fun OptionChipButton( color = borderColor, shape = RoundedCornerShape(20.dp) ) - .clickable { - isClicked = !isClicked - onClick() - } + .clickable { onClick() } .padding(vertical = 8.dp, horizontal = 12.dp), contentAlignment = Alignment.Center, ) { diff --git a/app/src/main/java/com/texthip/thip/ui/common/cards/CardItemRoom.kt b/app/src/main/java/com/texthip/thip/ui/common/cards/CardItemRoom.kt index 6422efe0..a550bf65 100644 --- a/app/src/main/java/com/texthip/thip/ui/common/cards/CardItemRoom.kt +++ b/app/src/main/java/com/texthip/thip/ui/common/cards/CardItemRoom.kt @@ -78,7 +78,7 @@ fun CardItemRoom( Spacer(modifier = Modifier.width(16.dp)) Column( - modifier = Modifier.weight(1f) + modifier = Modifier.fillMaxWidth() ) { Spacer(modifier = Modifier.height(16.dp)) Text( @@ -126,7 +126,7 @@ fun CardItemRoom( fun CardItemRoomPreview() { Column(verticalArrangement = Arrangement.spacedBy(16.dp)) { CardItemRoom( - title = "모임방 이름입니다. 모임방...", + title = "모임방 이름입니다. 모임방 이름입니다.", participants = 22, maxParticipants = 30, isRecruiting = true, @@ -134,7 +134,7 @@ fun CardItemRoomPreview() { imageRes = R.drawable.bookcover_sample ) CardItemRoom( - title = "모임방 이름입니다. 모임방...", + title = "모임방 이름입니다. 모임방 이름입니다.", participants = 22, maxParticipants = 30, isRecruiting = false, diff --git a/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/CardItemRoomData.kt b/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/CardItemRoomData.kt new file mode 100644 index 00000000..ee0bdc2d --- /dev/null +++ b/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/CardItemRoomData.kt @@ -0,0 +1,13 @@ +package com.texthip.thip.ui.myPage.myGroup + +import com.texthip.thip.R + +data class CardItemRoomData( + val title: String, + val participants: Int, + val maxParticipants: Int, + val isRecruiting: Boolean, + val endDate: Int, // 남은 일 수 + val imageRes: Int? = R.drawable.bookcover_sample +) + diff --git a/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/FilterRow.kt b/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/FilterRow.kt new file mode 100644 index 00000000..99ecec88 --- /dev/null +++ b/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/FilterRow.kt @@ -0,0 +1,32 @@ +package com.texthip.thip.ui.myPage.myGroup + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.runtime.Composable +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import com.texthip.thip.R +import com.texthip.thip.ui.common.buttons.OptionChipButton + +@Composable +fun FilterRow( + selectedIndex: Int, + onSelect: (Int) -> Unit +) { + Row( + horizontalArrangement = Arrangement.spacedBy(12.dp) + ) { + OptionChipButton( + text = stringResource(R.string.onGoing), + isFilled = true, + isSelected = selectedIndex == 0, + onClick = { onSelect(0) } + ) + OptionChipButton( + text = stringResource(R.string.recruiting), + isFilled = true, + isSelected = selectedIndex == 1, + onClick = { onSelect(1) } + ) + } +} diff --git a/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupListFilterScreen.kt b/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupListFilterScreen.kt new file mode 100644 index 00000000..61c36caf --- /dev/null +++ b/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupListFilterScreen.kt @@ -0,0 +1,190 @@ +package com.texthip.thip.ui.myPage.myGroup + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.texthip.thip.ui.common.cards.CardItemRoom +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Row +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.width +import androidx.compose.material3.Icon +import androidx.compose.material3.Text +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import com.texthip.thip.R +import com.texthip.thip.ui.theme.ThipTheme.colors +import com.texthip.thip.ui.theme.ThipTheme.typography +import androidx.compose.foundation.lazy.items + +@Composable +fun MyGroupListFilterScreen( + allDataList: List, + onCardClick: (CardItemRoomData) -> Unit = {} +) { + var selectedIndex by remember { mutableStateOf(0) } + + // 필터링 + val filteredList = remember(selectedIndex, allDataList) { + if (selectedIndex == 0) { + allDataList.filter { !it.isRecruiting } + } else { + allDataList.filter { it.isRecruiting } + } + } + + Column( + Modifier + .background(colors.Black) + .fillMaxSize() + .padding(horizontal = 20.dp) + ) { + Spacer(modifier = Modifier.height(16.dp)) + // 상단 타이틀 + Row( + Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically + ) { + Icon( + painter = painterResource(id = R.drawable.ic_arrow_back), + contentDescription = null, + tint = colors.White + ) + Spacer(modifier = Modifier.width(95.dp)) + Text( + text = stringResource(R.string.myGroupRoom), + color = colors.White, + style = typography.bigtitle_b700_s22_h24 + ) + } + Spacer(modifier = Modifier.height(20.dp)) + + FilterRow(selectedIndex = selectedIndex, onSelect = { selectedIndex = it }) + + Spacer(modifier = Modifier.height(20.dp)) + + // 리스트 + LazyColumn( + verticalArrangement = Arrangement.spacedBy(20.dp), + modifier = Modifier.fillMaxSize() + ) { + items(filteredList) { item -> + CardItemRoom( + title = item.title, + participants = item.participants, + maxParticipants = item.maxParticipants, + isRecruiting = item.isRecruiting, + endDate = item.endDate, + imageRes = item.imageRes, + onClick = { onCardClick(item) } + ) + } + } + } +} + + +@Preview(showBackground = true, backgroundColor = 0xFF000000, widthDp = 360, heightDp = 800) +@Composable +fun MyGroupListFilterScreenPreview() { + val dataList = listOf( + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = true, + endDate = 3 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = false, + endDate = 30 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = true, + endDate = 1 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = false, + endDate = 3 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = true, + endDate = 3 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = false, + endDate = 30 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = true, + endDate = 1 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = false, + endDate = 3 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = true, + endDate = 3 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = false, + endDate = 30 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = true, + endDate = 1 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = false, + endDate = 3 + ) + ) + MyGroupListFilterScreen(allDataList = dataList) +} diff --git a/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupScreen.kt b/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupScreen.kt new file mode 100644 index 00000000..1a13a21c --- /dev/null +++ b/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupScreen.kt @@ -0,0 +1,108 @@ +package com.texthip.thip.ui.myPage.myGroup + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +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.width +import androidx.compose.foundation.lazy.LazyColumn +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.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.texthip.thip.R +import com.texthip.thip.ui.common.cards.CardItemRoom +import com.texthip.thip.ui.theme.ThipTheme.colors +import com.texthip.thip.ui.theme.ThipTheme.typography +import androidx.compose.foundation.lazy.items + +@Composable +fun MyGroupListScreen( + dataList: List, + onCardClick: (CardItemRoomData) -> Unit = {} +) { + Column( + Modifier + .background(colors.Black) + .fillMaxSize() + .padding(horizontal = 20.dp) + ) { + Spacer(modifier = Modifier.height(16.dp)) + + // 상단 타이틀 (필요 시 아이콘 등 추가) + Row( + Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically + ) { + Icon( + painter = painterResource(id = R.drawable.ic_arrow_back), + contentDescription = null, + tint = colors.White + ) + Spacer(modifier = Modifier.width(95.dp)) + Text( + text = stringResource(R.string.myGroupRoom), + color = colors.White, + style = typography.bigtitle_b700_s22_h24 + ) + } + Spacer(modifier = Modifier.height(20.dp)) + + // 리스트 + LazyColumn( + verticalArrangement = Arrangement.spacedBy(20.dp), + modifier = Modifier.fillMaxSize() + ) { + items(dataList) { item -> + CardItemRoom( + title = item.title, + participants = item.participants, + maxParticipants = item.maxParticipants, + isRecruiting = item.isRecruiting, + endDate = item.endDate, + imageRes = item.imageRes, + onClick = { onCardClick(item) } + ) + } + } + } +} + +@Preview(showBackground = true, backgroundColor = 0xFF000000, widthDp = 360, heightDp = 800) +@Composable +fun MyGroupListScreenPreview() { + val dataList = mutableListOf( + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = true, + endDate = 3 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = false, + endDate = 3 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = true, + endDate = 1 + ) + ) + MyGroupListScreen(dataList) +} \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a85018cb..df679a83 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -44,4 +44,9 @@ 해당 도서는 %1$dp까지만 있습니다. + + 진행중 + 모집중 + 내 모임방 + \ No newline at end of file From b9478bed327996a7c1c273587aeed6e7e5aedeba Mon Sep 17 00:00:00 2001 From: Gyubin Date: Sat, 28 Jun 2025 01:28:53 +0900 Subject: [PATCH 0003/1075] =?UTF-8?q?[UI]=20CardItemRoomSmall=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20(#25)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 1 + .../thip/ui/common/cards/CardItemRoomSmall.kt | 133 ++++++++++++ .../myPage/myGroup/MyGroupListFilterScreen.kt | 190 ------------------ .../thip/ui/myPage/myGroup/MyGroupScreen.kt | 118 +++++++++-- .../java/com/texthip/thip/ui/theme/Color.kt | 3 + .../res/drawable/bookcover_sample_small.png | Bin 0 -> 456 bytes app/src/main/res/values/strings.xml | 6 + gradle/libs.versions.toml | 2 + 8 files changed, 245 insertions(+), 208 deletions(-) create mode 100644 app/src/main/java/com/texthip/thip/ui/common/cards/CardItemRoomSmall.kt delete mode 100644 app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupListFilterScreen.kt create mode 100644 app/src/main/res/drawable/bookcover_sample_small.png diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a776656f..82c1f330 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -50,6 +50,7 @@ dependencies { implementation(libs.androidx.ui.tooling.preview) implementation(libs.androidx.material3) implementation(libs.androidx.navigation.compose) + implementation(libs.androidx.navigation.runtime.android) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) diff --git a/app/src/main/java/com/texthip/thip/ui/common/cards/CardItemRoomSmall.kt b/app/src/main/java/com/texthip/thip/ui/common/cards/CardItemRoomSmall.kt new file mode 100644 index 00000000..eb444d6a --- /dev/null +++ b/app/src/main/java/com/texthip/thip/ui/common/cards/CardItemRoomSmall.kt @@ -0,0 +1,133 @@ +package com.texthip.thip.ui.common.cards + +import androidx.compose.foundation.Image +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +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.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults +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.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.texthip.thip.R +import com.texthip.thip.ui.theme.ThipTheme.colors +import com.texthip.thip.ui.theme.ThipTheme.typography + +@Composable +fun CardItemRoomSmall( + modifier: Modifier = Modifier, + title: String, + participants: Int, + maxParticipants: Int, + endDate: Int, // 남은 일 수 (예: 3) + imageRes: Int? = R.drawable.bookcover_sample_small, + onClick: () -> Unit = {} +) { + Card( + modifier = modifier + .size(width = 232.dp, height = 104.dp) + .clickable { onClick() }, + colors = CardDefaults.cardColors( + containerColor = colors.DarkGrey50 + ), + elevation = CardDefaults.cardElevation(defaultElevation = 4.dp), + shape = RoundedCornerShape(12.dp) + ) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(12.dp) + ) { + Row( + modifier = Modifier.fillMaxWidth() + ) { + // 이미지 + Box( + modifier = Modifier + .size(width = 60.dp, height = 80.dp) + ) { + imageRes?.let { + Image( + painter = painterResource(id = it), + contentDescription = null, + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop + ) + } + } + + Spacer(modifier = Modifier.width(8.dp)) + + Column( + modifier = Modifier.fillMaxWidth() + ) { + Spacer(modifier = Modifier.height(4.dp)) + Text( + text = title, + color = colors.White, + style = typography.menu_sb600_s14_h24, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + Spacer(modifier = Modifier.height(4.dp)) + + Row(verticalAlignment = Alignment.CenterVertically) { + Icon( + modifier = Modifier.size(20.dp), + painter = painterResource(id = R.drawable.ic_group), + contentDescription = "그룹 아이콘", + tint = Color.White + ) + Spacer(modifier = Modifier.width(4.dp)) + + Text ( + text = "$participants / ${maxParticipants}명", + color = colors.White, + style = typography.info_m500_s12 + ) + } + Spacer(modifier = Modifier.height(4.dp)) + Text( + text = "${endDate}일 뒤 모집 마감", + color = colors.Red, + style = typography.menu_sb600_s12_h20 + ) + } + } + } + } +} + + +@Preview(showBackground = true, backgroundColor = 0xFF000000, widthDp = 360) +@Composable +fun CardItemRoomSmallPreview() { + Column(verticalArrangement = Arrangement.spacedBy(16.dp)) { + CardItemRoomSmall( + title = "방 제목입니다 방 제목입니다", + participants = 22, + maxParticipants = 30, + endDate = 3, + imageRes = R.drawable.bookcover_sample + ) + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupListFilterScreen.kt b/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupListFilterScreen.kt deleted file mode 100644 index 61c36caf..00000000 --- a/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupListFilterScreen.kt +++ /dev/null @@ -1,190 +0,0 @@ -package com.texthip.thip.ui.myPage.myGroup - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import com.texthip.thip.ui.common.cards.CardItemRoom -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Row -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.width -import androidx.compose.material3.Icon -import androidx.compose.material3.Text -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import com.texthip.thip.R -import com.texthip.thip.ui.theme.ThipTheme.colors -import com.texthip.thip.ui.theme.ThipTheme.typography -import androidx.compose.foundation.lazy.items - -@Composable -fun MyGroupListFilterScreen( - allDataList: List, - onCardClick: (CardItemRoomData) -> Unit = {} -) { - var selectedIndex by remember { mutableStateOf(0) } - - // 필터링 - val filteredList = remember(selectedIndex, allDataList) { - if (selectedIndex == 0) { - allDataList.filter { !it.isRecruiting } - } else { - allDataList.filter { it.isRecruiting } - } - } - - Column( - Modifier - .background(colors.Black) - .fillMaxSize() - .padding(horizontal = 20.dp) - ) { - Spacer(modifier = Modifier.height(16.dp)) - // 상단 타이틀 - Row( - Modifier.fillMaxWidth(), - verticalAlignment = Alignment.CenterVertically - ) { - Icon( - painter = painterResource(id = R.drawable.ic_arrow_back), - contentDescription = null, - tint = colors.White - ) - Spacer(modifier = Modifier.width(95.dp)) - Text( - text = stringResource(R.string.myGroupRoom), - color = colors.White, - style = typography.bigtitle_b700_s22_h24 - ) - } - Spacer(modifier = Modifier.height(20.dp)) - - FilterRow(selectedIndex = selectedIndex, onSelect = { selectedIndex = it }) - - Spacer(modifier = Modifier.height(20.dp)) - - // 리스트 - LazyColumn( - verticalArrangement = Arrangement.spacedBy(20.dp), - modifier = Modifier.fillMaxSize() - ) { - items(filteredList) { item -> - CardItemRoom( - title = item.title, - participants = item.participants, - maxParticipants = item.maxParticipants, - isRecruiting = item.isRecruiting, - endDate = item.endDate, - imageRes = item.imageRes, - onClick = { onCardClick(item) } - ) - } - } - } -} - - -@Preview(showBackground = true, backgroundColor = 0xFF000000, widthDp = 360, heightDp = 800) -@Composable -fun MyGroupListFilterScreenPreview() { - val dataList = listOf( - CardItemRoomData( - title = "모임방 이름입니다. 모임방...", - participants = 22, - maxParticipants = 30, - isRecruiting = true, - endDate = 3 - ), - CardItemRoomData( - title = "모임방 이름입니다. 모임방...", - participants = 22, - maxParticipants = 30, - isRecruiting = false, - endDate = 30 - ), - CardItemRoomData( - title = "모임방 이름입니다. 모임방...", - participants = 22, - maxParticipants = 30, - isRecruiting = true, - endDate = 1 - ), - CardItemRoomData( - title = "모임방 이름입니다. 모임방...", - participants = 22, - maxParticipants = 30, - isRecruiting = false, - endDate = 3 - ), - CardItemRoomData( - title = "모임방 이름입니다. 모임방...", - participants = 22, - maxParticipants = 30, - isRecruiting = true, - endDate = 3 - ), - CardItemRoomData( - title = "모임방 이름입니다. 모임방...", - participants = 22, - maxParticipants = 30, - isRecruiting = false, - endDate = 30 - ), - CardItemRoomData( - title = "모임방 이름입니다. 모임방...", - participants = 22, - maxParticipants = 30, - isRecruiting = true, - endDate = 1 - ), - CardItemRoomData( - title = "모임방 이름입니다. 모임방...", - participants = 22, - maxParticipants = 30, - isRecruiting = false, - endDate = 3 - ), - CardItemRoomData( - title = "모임방 이름입니다. 모임방...", - participants = 22, - maxParticipants = 30, - isRecruiting = true, - endDate = 3 - ), - CardItemRoomData( - title = "모임방 이름입니다. 모임방...", - participants = 22, - maxParticipants = 30, - isRecruiting = false, - endDate = 30 - ), - CardItemRoomData( - title = "모임방 이름입니다. 모임방...", - participants = 22, - maxParticipants = 30, - isRecruiting = true, - endDate = 1 - ), - CardItemRoomData( - title = "모임방 이름입니다. 모임방...", - participants = 22, - maxParticipants = 30, - isRecruiting = false, - endDate = 3 - ) - ) - MyGroupListFilterScreen(allDataList = dataList) -} diff --git a/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupScreen.kt b/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupScreen.kt index 1a13a21c..30457b17 100644 --- a/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupScreen.kt +++ b/app/src/main/java/com/texthip/thip/ui/myPage/myGroup/MyGroupScreen.kt @@ -1,36 +1,51 @@ package com.texthip.thip.ui.myPage.myGroup -import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.texthip.thip.ui.common.cards.CardItemRoom +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Row 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.width -import androidx.compose.foundation.lazy.LazyColumn 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.res.painterResource -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp import com.texthip.thip.R -import com.texthip.thip.ui.common.cards.CardItemRoom import com.texthip.thip.ui.theme.ThipTheme.colors import com.texthip.thip.ui.theme.ThipTheme.typography import androidx.compose.foundation.lazy.items @Composable -fun MyGroupListScreen( - dataList: List, +fun MyGroupScreen( + allDataList: List, onCardClick: (CardItemRoomData) -> Unit = {} ) { + var selectedIndex by remember { mutableStateOf(0) } + + // 필터링 + val filteredList = remember(selectedIndex, allDataList) { + if (selectedIndex == 0) { + allDataList.filter { !it.isRecruiting } + } else { + allDataList.filter { it.isRecruiting } + } + } + Column( Modifier .background(colors.Black) @@ -38,8 +53,7 @@ fun MyGroupListScreen( .padding(horizontal = 20.dp) ) { Spacer(modifier = Modifier.height(16.dp)) - - // 상단 타이틀 (필요 시 아이콘 등 추가) + // 상단 타이틀 Row( Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically @@ -58,12 +72,16 @@ fun MyGroupListScreen( } Spacer(modifier = Modifier.height(20.dp)) + FilterRow(selectedIndex = selectedIndex, onSelect = { selectedIndex = it }) + + Spacer(modifier = Modifier.height(20.dp)) + // 리스트 LazyColumn( verticalArrangement = Arrangement.spacedBy(20.dp), modifier = Modifier.fillMaxSize() ) { - items(dataList) { item -> + items(filteredList) { item -> CardItemRoom( title = item.title, participants = item.participants, @@ -78,10 +96,39 @@ fun MyGroupListScreen( } } + @Preview(showBackground = true, backgroundColor = 0xFF000000, widthDp = 360, heightDp = 800) @Composable -fun MyGroupListScreenPreview() { - val dataList = mutableListOf( +fun MyGroupListFilterScreenPreview() { + val dataList = listOf( + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = true, + endDate = 3 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = false, + endDate = 30 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = true, + endDate = 1 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = false, + endDate = 3 + ), CardItemRoomData( title = "모임방 이름입니다. 모임방...", participants = 22, @@ -89,6 +136,20 @@ fun MyGroupListScreenPreview() { isRecruiting = true, endDate = 3 ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = false, + endDate = 30 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = true, + endDate = 1 + ), CardItemRoomData( title = "모임방 이름입니다. 모임방...", participants = 22, @@ -96,13 +157,34 @@ fun MyGroupListScreenPreview() { isRecruiting = false, endDate = 3 ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = true, + endDate = 3 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = false, + endDate = 30 + ), CardItemRoomData( title = "모임방 이름입니다. 모임방...", participants = 22, maxParticipants = 30, isRecruiting = true, endDate = 1 + ), + CardItemRoomData( + title = "모임방 이름입니다. 모임방...", + participants = 22, + maxParticipants = 30, + isRecruiting = false, + endDate = 3 ) ) - MyGroupListScreen(dataList) -} \ No newline at end of file + MyGroupScreen(allDataList = dataList) +} diff --git a/app/src/main/java/com/texthip/thip/ui/theme/Color.kt b/app/src/main/java/com/texthip/thip/ui/theme/Color.kt index 3bbcdba8..10c70c2f 100644 --- a/app/src/main/java/com/texthip/thip/ui/theme/Color.kt +++ b/app/src/main/java/com/texthip/thip/ui/theme/Color.kt @@ -17,6 +17,7 @@ val Mint = Color(0xFFA0F8E8) val MintSub = Color(0xFF4FD9C0) val Orange = Color(0xFFFDB770) val OrangeSub = Color(0xFFFF8B17) +val genreColor = Color(0xFFB5B35D) val Skyblue = Color(0xFFA1D5FF) val SkyblueSub = Color(0xFF6DB5EE) val Lavendar = Color(0xFFC8A5FF) @@ -52,6 +53,7 @@ data class ThipColors( val MintSub: Color, val Orange: Color, val OrangeSub: Color, + val genreColor: Color, val Skyblue: Color, val SkyblueSub: Color, val Lavendar: Color, @@ -84,6 +86,7 @@ val defaultThipColors = ThipColors( MintSub = MintSub, Orange = Orange, OrangeSub = OrangeSub, + genreColor = genreColor, Skyblue = Skyblue, SkyblueSub = SkyblueSub, Lavendar = Lavendar, diff --git a/app/src/main/res/drawable/bookcover_sample_small.png b/app/src/main/res/drawable/bookcover_sample_small.png new file mode 100644 index 0000000000000000000000000000000000000000..a59438f89af63acdce25f89739e57f612a903e04 GIT binary patch literal 456 zcmeAS@N?(olHy`uVBq!ia0vp^Hb5M}!3HE z9OUlAu&hekDZYu|i}@nSw{Uv`UreR*=~BlsrR9vGk8`e<{#&Xm zUMvw{c#ikQdA|Jxea&a)y3ckho z`Oub2{L5N1Sz|AsNsLlu0rFh}eYh`s+0PJLCR*Za+@3jA0LT||HPrRd{+kdrBkY3d zS(#;_P6oO@-Xcf07_9w5f}v%%&Hjrj&6KfI6@7fI)YM+p{$8}g*~!2tVPNod^>bP0 Hl+XkKmiM}F literal 0 HcmV?d00001 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index df679a83..1c49d888 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -48,5 +48,11 @@ 진행중 모집중 내 모임방 + 소개글 + 모임 활동 기간 + 참여 중인 독서 메이트 + 이런 모임방은 어때요? + "모집 " + "장르 " \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 261b2b00..1f20de5c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,6 +9,7 @@ lifecycleRuntimeKtx = "2.8.7" activityCompose = "1.10.1" composeBom = "2024.09.00" navigationCompose = "2.9.0" +navigationRuntimeAndroid = "2.9.0" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } @@ -26,6 +27,7 @@ androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-man androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } androidx-material3 = { group = "androidx.compose.material3", name = "material3" } androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigationCompose" } +androidx-navigation-runtime-android = { group = "androidx.navigation", name = "navigation-runtime-android", version.ref = "navigationRuntimeAndroid" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" } From f85d22050a51b1b4e6b0ca0853266ecf8fa97c8d Mon Sep 17 00:00:00 2001 From: Gyubin Date: Sat, 28 Jun 2025 01:30:19 +0900 Subject: [PATCH 0004/1075] =?UTF-8?q?[UI]=20GroupRoomScreen(=EB=AA=A8?= =?UTF-8?q?=EC=9E=84=EB=B0=A9=20=EB=82=B4=EB=B6=80=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80)=20=EC=B6=94=EA=B0=80=20(#25)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thip/ui/myPage/groupRoom/BookData.kt | 11 + .../thip/ui/myPage/groupRoom/GroupRoomData.kt | 18 + .../ui/myPage/groupRoom/GroupRoomScreen.kt | 371 ++++++++++++++++++ 3 files changed, 400 insertions(+) create mode 100644 app/src/main/java/com/texthip/thip/ui/myPage/groupRoom/BookData.kt create mode 100644 app/src/main/java/com/texthip/thip/ui/myPage/groupRoom/GroupRoomData.kt create mode 100644 app/src/main/java/com/texthip/thip/ui/myPage/groupRoom/GroupRoomScreen.kt diff --git a/app/src/main/java/com/texthip/thip/ui/myPage/groupRoom/BookData.kt b/app/src/main/java/com/texthip/thip/ui/myPage/groupRoom/BookData.kt new file mode 100644 index 00000000..01a7ba0d --- /dev/null +++ b/app/src/main/java/com/texthip/thip/ui/myPage/groupRoom/BookData.kt @@ -0,0 +1,11 @@ +package com.texthip.thip.ui.myPage.groupRoom + +import com.texthip.thip.R + +data class BookData( + val title: String, + val author: String, + val publisher: String, + val description: String, + val imageRes: Int = R.drawable.bookcover_sample +) diff --git a/app/src/main/java/com/texthip/thip/ui/myPage/groupRoom/GroupRoomData.kt b/app/src/main/java/com/texthip/thip/ui/myPage/groupRoom/GroupRoomData.kt new file mode 100644 index 00000000..85540ca0 --- /dev/null +++ b/app/src/main/java/com/texthip/thip/ui/myPage/groupRoom/GroupRoomData.kt @@ -0,0 +1,18 @@ +package com.texthip.thip.ui.myPage.groupRoom + +import com.texthip.thip.ui.myPage.myGroup.CardItemRoomData + +data class GroupRoomData( + val title: String, + val isSecret: Boolean, + val description: String, + val period: String, + val members: Int, + val maxMembers: Int, + val daysLeft: Int, + val genre: String, + val bookData: BookData, + val recommendations: List +) + +enum class BottomButtonType { JOIN, CANCEL, CLOSE } diff --git a/app/src/main/java/com/texthip/thip/ui/myPage/groupRoom/GroupRoomScreen.kt b/app/src/main/java/com/texthip/thip/ui/myPage/groupRoom/GroupRoomScreen.kt new file mode 100644 index 00000000..d9d9fe9f --- /dev/null +++ b/app/src/main/java/com/texthip/thip/ui/myPage/groupRoom/GroupRoomScreen.kt @@ -0,0 +1,371 @@ +package com.texthip.thip.ui.myPage.groupRoom + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +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.width +import androidx.compose.foundation.lazy.LazyRow +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +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.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.texthip.thip.R +import com.texthip.thip.ui.common.cards.CardItemRoomSmall +import com.texthip.thip.ui.common.cards.CardRoomBook +import com.texthip.thip.ui.myPage.myGroup.CardItemRoomData +import com.texthip.thip.ui.theme.ThipTheme.colors +import com.texthip.thip.ui.theme.ThipTheme.typography + +@Composable +fun GroupRoomScreen( + detail: GroupRoomData, + buttonType: BottomButtonType, + onBottomButtonClick: () -> Unit = {}, + onRecommendationClick: (CardItemRoomData) -> Unit = {} +) { + Box(Modifier.fillMaxSize()) { + Column( + Modifier + .background(colors.Black) + .fillMaxSize() + .padding(start = 20.dp, end = 20.dp, top = 16.dp) + ) { + // TODO: 배경 이미지 추가 + + Icon( + painter = painterResource(id = R.drawable.ic_arrow_back), + contentDescription = "뒤로가기", + tint = colors.White, + modifier = Modifier + .clickable { + // 뒤로가기 동작 구현 + } + ) + Spacer(modifier = Modifier.height(36.dp)) + + //타이틀 + Row( + verticalAlignment = Alignment.CenterVertically + ) { + Text( + text = detail.title, + style = typography.bigtitle_b700_s22_h24, + color = colors.White + ) + if (detail.isSecret) { + Spacer(Modifier.width(2.dp)) + Icon( + painter = painterResource(id = R.drawable.ic_lock), + contentDescription = "비밀방", + tint = colors.White + ) + } else { + Spacer(Modifier.width(2.dp)) + Icon( + painter = painterResource(id = R.drawable.ic_unlock), + contentDescription = "오픈방", + tint = colors.White + ) + } + } + Spacer(modifier = Modifier.height(32.dp)) + + //소개글 + Text( + text = stringResource(R.string.groupRoomDesc), + style = typography.menu_sb600_s14_h24, + color = colors.White, + ) + + Text( + text = detail.description, + style = typography.copy_r400_s12_h20, + color = colors.Grey, + modifier = Modifier + .padding(top = 4.dp, bottom = 18.dp) + ) + + + Row( + Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween + ) { + //모집 기간 + Column { + Row( + verticalAlignment = Alignment.CenterVertically + ) { + Icon( + painter = painterResource(id = R.drawable.ic_calendar), + contentDescription = "모임 활동기간", + tint = colors.White + ) + Text( + text = stringResource(R.string.groupPeroid), + style = typography.view_m500_s12_h20, + color = colors.White + ) + } + Spacer(Modifier.height(12.dp)) + Text( + text = detail.period, + style = typography.info_r400_s12, + color = colors.Grey + ) + } + + //참여 인원 + Column { + Row( + verticalAlignment = Alignment.CenterVertically + ) { + Icon( + painter = painterResource(id = R.drawable.ic_group), + contentDescription = "참여 중인 독서 메이트", + tint = colors.White + ) + Text( + text = stringResource(R.string.groupMate), + style = typography.view_m500_s12_h20, + color = colors.White + ) + } + Spacer(Modifier.height(12.dp)) + Text( + text = "${detail.members} / ${detail.maxMembers}", + style = typography.info_r400_s12, + color = colors.White + ) + } + } + + Spacer(Modifier.height(16.dp)) + Row( + verticalAlignment = Alignment.CenterVertically + ) { + // 모집 마감/장르 + Box( + Modifier + .background(colors.Grey03, shape = RoundedCornerShape(14.dp)) + .padding(horizontal = 12.dp, vertical = 8.dp) + ) { + Row { + Text( + text = stringResource(R.string.groupRecruiting), + style = typography.info_m500_s12, + color = colors.White + ) + Text( + text = "${detail.daysLeft}일 남음", + style = typography.info_m500_s12, + color = colors.NeonGreen + ) + } + + } + Spacer(Modifier.width(12.dp)) + Box( + Modifier + .background(colors.Grey03, shape = RoundedCornerShape(14.dp)) + .padding(horizontal = 12.dp, vertical = 8.dp) + ) { + Row { + Text( + text = stringResource(R.string.groupGenre), + style = typography.info_m500_s12, + color = colors.White + ) + Text( + text = detail.genre, + style = typography.info_m500_s12, + color = colors.genreColor + ) + } + + } + } + + Spacer(Modifier.height(62.dp)) + + //읽을 책 정보 + CardRoomBook( + title = detail.bookData.title, + author = detail.bookData.author, + publisher = detail.bookData.publisher, + description = detail.bookData.description, + imageRes = detail.bookData.imageRes + ) + + Spacer(Modifier.height(40.dp)) + Text( + text = stringResource(R.string.groupRecommend), + style = typography.smalltitle_sb600_s18_h24, + color = colors.White + ) + Spacer(Modifier.height(24.dp)) + + //추천 모임방 + LazyRow( + horizontalArrangement = Arrangement.spacedBy(20.dp) + ) { + items(detail.recommendations) { rec -> + CardItemRoomSmall( + title = rec.title, + participants = rec.participants, + maxParticipants = rec.maxParticipants, + endDate = rec.endDate, + imageRes = rec.imageRes, + onClick = { onRecommendationClick(rec) } + ) + } + } + + Spacer(Modifier.weight(1f)) + } + + // 하단 버튼 + val buttonText = when (buttonType) { + BottomButtonType.JOIN -> "참여하기" + BottomButtonType.CANCEL -> "참여 취소하기" + BottomButtonType.CLOSE -> "모집 마감하기" + } + val buttonColor = when (buttonType) { + BottomButtonType.JOIN -> colors.Purple + BottomButtonType.CANCEL -> colors.Red + BottomButtonType.CLOSE -> colors.Grey02 + } + + Button( + onClick = onBottomButtonClick, + colors = ButtonDefaults.buttonColors( + containerColor = buttonColor + ), + modifier = Modifier + .align(Alignment.BottomCenter) + .fillMaxWidth() + .height(50.dp), + shape = RoundedCornerShape(0.dp) + ) { + Text( + text = buttonText, + style = typography.smalltitle_sb600_s18_h24, + color = colors.White + ) + } + } +} + +@Preview(showBackground = true, backgroundColor = 0xFF000000, widthDp = 360, heightDp = 900) +@Composable +fun GroupRoomDetailScreenPreview_AllCases() { + val recommendations = listOf( + CardItemRoomData( + title = "일본 소설 좋아하는 사람들 일본 소설 좋아하는 사람들", + participants = 19, + maxParticipants = 25, + isRecruiting = true, + endDate = 2 + ), + CardItemRoomData( + title = "일본 소설 좋아하는 사람들 일본 소설 좋아하는 사람들", + participants = 12, + maxParticipants = 16, + isRecruiting = true, + endDate = 6 + ), + CardItemRoomData( + title = "일본 소설 좋아하는 사람들 일본 소설 좋아하는 사람들", + participants = 30, + maxParticipants = 30, + isRecruiting = false, + endDate = 0 + ), + CardItemRoomData( + title = "일본 소설 좋아하는 사람들 일본 소설 좋아하는 사람들", + participants = 10, + maxParticipants = 12, + isRecruiting = true, + endDate = 8 + ), + CardItemRoomData( + title = "에세이 나눔방", + participants = 14, + maxParticipants = 20, + isRecruiting = true, + endDate = 4 + ) + ) + + val bookData = BookData( + title = "심장보다 단단한 토마토 한 알", + author = "고선지", + publisher = "푸른출판사", + description = "‘시집만 읽는 사람들’ 3월 모임에서 읽는 시집. 상처받고 단단해진 마음을 담은 감동적인 시와 해설이 어우러진 책으로, 읽는 이로 하여금 자신의 이야기를 투영하게 하는 힘이 있다.", + imageRes = R.drawable.bookcover_sample + ) + + val detailJoin = GroupRoomData( + title = "시집만 읽는 사람들 3월", + isSecret = true, + description = "‘시집만 읽는 사람들’ 3월 모임입니다. 이번 달 모임에서는 심장보다 단단한 토마토 한 알을 함께 읽어요.", + period = "2025.01.12 ~ 2025.02.12", + members = 22, + maxMembers = 30, + daysLeft = 4, + genre = "고전 문학", + bookData = bookData, + recommendations = recommendations + ) + val detailCancel = detailJoin.copy( + title = "참여 중인 독서모임", + isSecret = false, + members = 17 + ) + val detailHost = detailJoin.copy( + title = "내가 호스트인 독서모임", + isSecret = false, + members = 30, + maxMembers = 30 + ) + + Column(verticalArrangement = Arrangement.spacedBy(32.dp)) { + // 1. 참여 가능한 경우(참여하기) + GroupRoomScreen( + detail = detailJoin, + buttonType = BottomButtonType.JOIN, + onBottomButtonClick = {} + ) + // 2. 참여 중인 경우(참여 취소하기) + GroupRoomScreen( + detail = detailCancel, + buttonType = BottomButtonType.CANCEL, + onBottomButtonClick = {} + ) + // 3. 내가 호스트인 경우(모집 마감하기) + GroupRoomScreen( + detail = detailHost, + buttonType = BottomButtonType.CLOSE, + onBottomButtonClick = {} + ) + } +} + + From b4ed51a9bc7e357bb2d423cfea643d302f25e38f Mon Sep 17 00:00:00 2001 From: Gyubin Date: Sat, 28 Jun 2025 06:56:55 +0900 Subject: [PATCH 0005/1075] =?UTF-8?q?[UI]=20GroupRoomScreen(=EB=AA=A8?= =?UTF-8?q?=EC=9E=84=EB=B0=A9=20=ED=8E=98=EC=9D=B4=EC=A7=80)=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=20-=201=20(#25)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/myPage/groupPage/DeadlineRoomData.kt | 8 +++ .../GroupPageScreen.kt} | 9 ++- .../ui/myPage/groupPage/MyGroupCardData.kt | 11 ++++ .../ui/myPage/viewModel/MyPageViewModel.kt | 57 +++++++++++++++++++ .../texthip/thip/ui/navigator/MainNavHost.kt | 4 +- 5 files changed, 85 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/com/texthip/thip/ui/myPage/groupPage/DeadlineRoomData.kt rename app/src/main/java/com/texthip/thip/ui/myPage/{screen/MyPageScreen.kt => groupPage/GroupPageScreen.kt} (63%) create mode 100644 app/src/main/java/com/texthip/thip/ui/myPage/groupPage/MyGroupCardData.kt create mode 100644 app/src/main/java/com/texthip/thip/ui/myPage/viewModel/MyPageViewModel.kt diff --git a/app/src/main/java/com/texthip/thip/ui/myPage/groupPage/DeadlineRoomData.kt b/app/src/main/java/com/texthip/thip/ui/myPage/groupPage/DeadlineRoomData.kt new file mode 100644 index 00000000..fef33b3d --- /dev/null +++ b/app/src/main/java/com/texthip/thip/ui/myPage/groupPage/DeadlineRoomData.kt @@ -0,0 +1,8 @@ +package com.texthip.thip.ui.myPage.groupPage + +import com.texthip.thip.ui.myPage.myGroup.CardItemRoomData + +data class DeadlineRoomData( + val genre: String, + val rooms: List +) diff --git a/app/src/main/java/com/texthip/thip/ui/myPage/screen/MyPageScreen.kt b/app/src/main/java/com/texthip/thip/ui/myPage/groupPage/GroupPageScreen.kt similarity index 63% rename from app/src/main/java/com/texthip/thip/ui/myPage/screen/MyPageScreen.kt rename to app/src/main/java/com/texthip/thip/ui/myPage/groupPage/GroupPageScreen.kt index 9195747e..8407ba6a 100644 --- a/app/src/main/java/com/texthip/thip/ui/myPage/screen/MyPageScreen.kt +++ b/app/src/main/java/com/texthip/thip/ui/myPage/groupPage/GroupPageScreen.kt @@ -1,4 +1,4 @@ -package com.texthip.thip.ui.myPage.screen +package com.texthip.thip.ui.myPage.groupPage import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize @@ -6,10 +6,15 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.lifecycle.viewmodel.compose.viewModel import androidx.navigation.NavController +import com.texthip.thip.ui.myPage.viewModel.MyPageViewModel @Composable -fun MyPageScreen(navController: NavController) { +fun GroupPageScreen( + navController: NavController, + viewModel: MyPageViewModel = viewModel() +) { Box( modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center diff --git a/app/src/main/java/com/texthip/thip/ui/myPage/groupPage/MyGroupCardData.kt b/app/src/main/java/com/texthip/thip/ui/myPage/groupPage/MyGroupCardData.kt new file mode 100644 index 00000000..98e37e0e --- /dev/null +++ b/app/src/main/java/com/texthip/thip/ui/myPage/groupPage/MyGroupCardData.kt @@ -0,0 +1,11 @@ +package com.texthip.thip.ui.myPage.groupPage + +import com.texthip.thip.R + +data class MyGroupCardData( + val title: String, + val members: Int, + val imageRes: Int = R.drawable.bookcover_sample, + val progress: Int, // 진행률 (0~100) + val nickname: String +) \ No newline at end of file diff --git a/app/src/main/java/com/texthip/thip/ui/myPage/viewModel/MyPageViewModel.kt b/app/src/main/java/com/texthip/thip/ui/myPage/viewModel/MyPageViewModel.kt new file mode 100644 index 00000000..026e144a --- /dev/null +++ b/app/src/main/java/com/texthip/thip/ui/myPage/viewModel/MyPageViewModel.kt @@ -0,0 +1,57 @@ +package com.texthip.thip.ui.myPage.viewModel + +import androidx.lifecycle.ViewModel +import com.texthip.thip.ui.myPage.groupPage.MyGroupCardData +import com.texthip.thip.ui.myPage.myGroup.CardItemRoomData +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import com.texthip.thip.R + +class MyPageViewModel : ViewModel() { + + private val _myGroups = MutableStateFlow>(emptyList()) + val myGroups: StateFlow> = _myGroups + + private val _deadlineRooms = MutableStateFlow>(emptyList()) + val deadlineRooms: StateFlow> = _deadlineRooms + + private val _genres = listOf("문학", "과학·IT", "사회과학", "인문학", "예술") + val genres: List get() = _genres + + private val _selectedGenreIndex = MutableStateFlow(0) + val selectedGenreIndex: StateFlow = _selectedGenreIndex + + // 초기 데이터 세팅 (실제에선 repository/remote에서 받아옴) + init { + _myGroups.value = listOf( + MyGroupCardData("호르몬 체인지 완독하는 방", 22, R.drawable.bookcover_sample, 40, "uibowl1") + ) + _deadlineRooms.value = listOf( + CardItemRoomData("시집만 읽는 사람들 3월", 22, 30, true, 3, R.drawable.bookcover_sample), + CardItemRoomData("일본 소설 좋아하는 사람들", 22, 30, true, 3, R.drawable.bookcover_sample), + CardItemRoomData("명작 같이 읽기방", 22, 30, true, 3, R.drawable.bookcover_sample) + ) + } + + // 선택 장르 변경 + fun selectGenre(index: Int) { + _selectedGenreIndex.value = index + // 필요하면 장르에 따라 _deadlineRooms 필터링도 여기서 처리 + } + + fun onMyGroupHeaderClick() { + // 내 모임방 리스트로 이동 (Nav 이벤트 트리거 등) + } + + fun onMyGroupCardClick(data: MyGroupCardData) { + // 내 모임방 카드 클릭 (상세 진입) + } + + fun onRoomCardClick(data: CardItemRoomData) { + // 마감임박 카드 클릭 (상세 진입) + } + + fun onFabClick() { + // FAB 클릭(모임방 생성 등) + } +} diff --git a/app/src/main/java/com/texthip/thip/ui/navigator/MainNavHost.kt b/app/src/main/java/com/texthip/thip/ui/navigator/MainNavHost.kt index 16787c3f..cc690add 100644 --- a/app/src/main/java/com/texthip/thip/ui/navigator/MainNavHost.kt +++ b/app/src/main/java/com/texthip/thip/ui/navigator/MainNavHost.kt @@ -7,7 +7,7 @@ import androidx.navigation.NavHostController import com.texthip.thip.ui.bookSearch.screen.BookSearchScreen import com.texthip.thip.ui.feed.screen.FeedScreen import com.texthip.thip.ui.group.screen.GroupScreen -import com.texthip.thip.ui.myPage.screen.MyPageScreen +import com.texthip.thip.ui.myPage.groupPage.GroupPageScreen @Composable fun MainNavHost(navController: NavHostController) { @@ -15,6 +15,6 @@ fun MainNavHost(navController: NavHostController) { composable(Routes.Feed.route) { FeedScreen(navController) } composable(Routes.Group.route) { GroupScreen(navController) } composable(Routes.BookSearch.route) { BookSearchScreen(navController) } - composable(Routes.MyPage.route) { MyPageScreen(navController) } + composable(Routes.MyPage.route) { GroupPageScreen(navController) } } } \ No newline at end of file From 8379d3854af962aaff46c1a167015f7347e113bf Mon Sep 17 00:00:00 2001 From: Naeun Kim <102296721+Nico1eKim@users.noreply.github.com> Date: Sat, 28 Jun 2025 20:02:15 +0900 Subject: [PATCH 0006/1075] =?UTF-8?q?[UI]:=20=EB=AA=A8=EC=9E=84=EB=B0=A9?= =?UTF-8?q?=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=ED=97=A4=EB=8D=94=EB=B6=80?= =?UTF-8?q?=EB=B6=84=20=EC=A0=9C=EC=9E=91=20(#23)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../screen/room/component/GroupRoomHeader.kt | 181 ++++++++++++++++++ .../screen/room/mock/GroupRoomHeaderData.kt | 10 + .../screen/room/screen/GroupRoomScreen.kt | 70 +++++++ app/src/main/res/drawable/img_group_room.png | Bin 0 -> 246569 bytes app/src/main/res/values/strings.xml | 7 + 5 files changed, 268 insertions(+) create mode 100644 app/src/main/java/com/texthip/thip/ui/group/screen/room/component/GroupRoomHeader.kt create mode 100644 app/src/main/java/com/texthip/thip/ui/group/screen/room/mock/GroupRoomHeaderData.kt create mode 100644 app/src/main/java/com/texthip/thip/ui/group/screen/room/screen/GroupRoomScreen.kt create mode 100644 app/src/main/res/drawable/img_group_room.png diff --git a/app/src/main/java/com/texthip/thip/ui/group/screen/room/component/GroupRoomHeader.kt b/app/src/main/java/com/texthip/thip/ui/group/screen/room/component/GroupRoomHeader.kt new file mode 100644 index 00000000..2d3cb20f --- /dev/null +++ b/app/src/main/java/com/texthip/thip/ui/group/screen/room/component/GroupRoomHeader.kt @@ -0,0 +1,181 @@ +package com.texthip.thip.ui.group.screen.room.component + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +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.shape.RoundedCornerShape +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.texthip.thip.R +import com.texthip.thip.ui.group.screen.room.mock.GroupRoomHeaderData +import com.texthip.thip.ui.theme.ThipTheme.colors +import com.texthip.thip.ui.theme.ThipTheme.typography + +@Composable +fun GroupRoomHeader( + data: GroupRoomHeaderData +) { + Column( + modifier = Modifier.padding(20.dp) + ) { + Row( + horizontalArrangement = Arrangement.spacedBy(2.dp, Alignment.Start), + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = data.groupRoomName, + style = typography.bigtitle_b700_s22_h24, + color = colors.White + ) + + if (data.isPrivate) { + Icon( + painter = painterResource(R.drawable.ic_lock), + contentDescription = "Lock Icon", + tint = Color.Unspecified + ) + } + } + + Spacer(Modifier.height(32.dp)) + + Column { + Text( + text = stringResource(R.string.introduction_content), + style = typography.menu_sb600_s14_h24, + color = colors.White + ) + + Spacer(Modifier.height(4.dp)) + + Text( + text = data.introductionContent, + style = typography.copy_r400_s12_h20, + color = colors.White + ) + } + + Spacer(Modifier.height(16.dp)) + + Row( + horizontalArrangement = Arrangement.spacedBy(40.dp, Alignment.Start), + verticalAlignment = Alignment.CenterVertically, + ) { + Column { + Row { + Icon( + painter = painterResource(R.drawable.ic_calendar), + contentDescription = "Calendar Icon", + tint = Color.Unspecified, + modifier = Modifier.size(20.dp) + ) + Spacer(Modifier.width(2.dp)) + Text( + text = stringResource(R.string.group_active_period), + style = typography.view_m500_s12_h20, + color = colors.White + ) + } + Spacer(Modifier.height(12.dp)) + Text( + text = data.period, + style = typography.timedate_r400_s11, + color = colors.White + ) + } + + Column { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + Row { + Icon( + painter = painterResource(R.drawable.ic_group), + contentDescription = "Group Icon", + tint = colors.White, + modifier = Modifier.size(20.dp) + ) + Spacer(Modifier.width(2.dp)) + Text( + text = stringResource(R.string.book_mate), + style = typography.view_m500_s12_h20, + color = colors.White + ) + } + + IconButton( + onClick = { /* TODO: Navigate to participant list */ }, + modifier = Modifier.size(24.dp) + ) { + Icon( + painter = painterResource(R.drawable.ic_chevron), + contentDescription = "Participant Icon", + tint = colors.White + ) + } + } + Spacer(Modifier.height(12.dp)) + Text( + text = stringResource(R.string.participate_num, data.participantCount), + style = typography.menu_sb600_s12, + color = colors.White + ) + } + } + + Spacer(Modifier.height(16.dp)) + + Row( + modifier = Modifier + .background(color = colors.Grey03, shape = RoundedCornerShape(40.dp)) + .padding(vertical = 8.dp, horizontal = 12.dp) + ) { + Row { + Text( + text = stringResource(R.string.genre), + style = typography.info_m500_s12, + color = colors.White, + modifier = Modifier.padding(end = 4.dp) + ) + Text( + text = data.genre, + style = typography.info_m500_s12, + color = colors.Orange // TODO: 장르에 맞는 색으로 변경 + ) + } + } + } +} + +@Preview +@Composable +private fun GroupRoomHeaderPreview() { + GroupRoomHeader( + data = GroupRoomHeaderData( + groupRoomName = "호르몬 체인지 완독하는 방", + introductionContent = "‘시집만 읽는 사람들’ 3월 모임입니다. 이번 달 모임방은 심장보다 단단한 토마토 한 알 완독합니다.", + isPrivate = true, + period = "2023.10.01 ~ 2023.10.31", + participantCount = 22, + genre = "문학" + ) + ) +} \ No newline at end of file diff --git a/app/src/main/java/com/texthip/thip/ui/group/screen/room/mock/GroupRoomHeaderData.kt b/app/src/main/java/com/texthip/thip/ui/group/screen/room/mock/GroupRoomHeaderData.kt new file mode 100644 index 00000000..51b70424 --- /dev/null +++ b/app/src/main/java/com/texthip/thip/ui/group/screen/room/mock/GroupRoomHeaderData.kt @@ -0,0 +1,10 @@ +package com.texthip.thip.ui.group.screen.room.mock + +data class GroupRoomHeaderData( + val groupRoomName: String, + val isPrivate: Boolean, + val introductionContent: String, + val period: String, + val participantCount: Int, + val genre: String +) diff --git a/app/src/main/java/com/texthip/thip/ui/group/screen/room/screen/GroupRoomScreen.kt b/app/src/main/java/com/texthip/thip/ui/group/screen/room/screen/GroupRoomScreen.kt new file mode 100644 index 00000000..90223450 --- /dev/null +++ b/app/src/main/java/com/texthip/thip/ui/group/screen/room/screen/GroupRoomScreen.kt @@ -0,0 +1,70 @@ +package com.texthip.thip.ui.group.screen.room.screen + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Scaffold +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.texthip.thip.R +import com.texthip.thip.ui.common.topappbar.DefaultTopAppBar +import com.texthip.thip.ui.group.screen.room.component.GroupRoomHeader +import com.texthip.thip.ui.group.screen.room.mock.GroupRoomHeaderData +import com.texthip.thip.ui.theme.ThipTheme.colors + +@Composable +fun GroupRoomScreen() { + Scaffold( + containerColor = colors.Black, + topBar = { + DefaultTopAppBar( + isRightIconVisible = true, + isTitleVisible = false, + onLeftClick = {}, + onRightClick = {}, + ) + }, + content = { innerPadding -> + Box { + Image( + painter = painterResource(R.drawable.img_group_room), // ✅ 배경 이미지 + contentDescription = null, + contentScale = ContentScale.Crop, + modifier = Modifier + .fillMaxWidth() + .height(344.dp) + ) + + Column( + modifier = Modifier + .fillMaxWidth() + .padding(innerPadding) + ) { + GroupRoomHeader( + data = GroupRoomHeaderData( + groupRoomName = "호르몬 체인지 완독하는 방", + introductionContent = "‘시집만 읽는 사람들’ 3월 모임입니다. 이번 달 모임방은 심장보다 단단한 토마토 한 알 완독합니다.", + isPrivate = true, + period = "2023.10.01 ~ 2023.10.31", + participantCount = 22, + genre = "문학" + ) + ) + } + } + } + ) +} + +@Preview +@Composable +private fun GroupRoomScreenPreview() { + GroupRoomScreen() +} \ No newline at end of file diff --git a/app/src/main/res/drawable/img_group_room.png b/app/src/main/res/drawable/img_group_room.png new file mode 100644 index 0000000000000000000000000000000000000000..c83fd486f5d26c8193f8211cdd22055a2c1a46ac GIT binary patch literal 246569 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 z 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

we9x+#-Cm z9*kK2vgBAe>L^*-v!feDgGcSp%l3;C8`2vzsr6;y@TOrBcu?_GMxD|0z*8nULdt|FtDk>RB*eys{n}bRR4pG+< z6rB*I4x~}7)fbFVE?Yhg{+&V8pMRHnob0?P^vok4#gl*UKgX$0ej0C14(!H}l&xwD zU1PP4Qhpx&ujaowkQ}R?&S~lSIO@5%qiF%fky*BxlH!zhz}S0IK=j6XJwQrju(aBv16{`lvxd-hxjv~7?zTU%MP zGRzAsM?CPrBe*>m7-K!v+=qgpS~n9Kr)nvJU&UHBZE9$q9y}_w zjtyTy!3>(y0kuw!;nA-N2&TX3W4I_io7A2PvT;`^k zViQfFcQTSPSGMtfS$nB(jq_$i1ytIfZ<1q_c!-t_L>A7a{bGuz6o@qm+o45lFN9zX zTq3-xG`4h6*#>m{(mws}qj9i9Q zZTYSz9>#F~TyYQsj}RYl-H5>~0*-PT~#4jWaYka4B z*`ZkL-l&_Yl6tkdd9#1J*7#r3%!2nl^ie$c#0PM5&YsLH8!Nx9y*b^#9(Kwz{Igz- zu8ehFzXSknum9aC18{tB8{huQ7x2!jPt7Ye94kxE(FO$79yDuyi~C%^Tc0HZPRH$V zgno^1Cm5z_1F?!fvFQ^G|CQwIH3kp;mxw4@A@Twec4nUwM08RF4HUSKmc>x&r`s(# zS{-e}Hp%yx?Yb)v@Dw!HyP!Pu$sW!)etlaSv0%+`_5@W{(S`FNWTK|aKjifE7*$K8pz;=CfMd4`NPsVB>C*DK5 zKNNl(Hy96Y;^2*!aB6K%%j#NVf11L*etlEtcqd~xci|i^Jn=}>=ft(}#rXucLCI+% zmw`bsQUJJ2xAnoLcHo|OBLfLA(vh--nITfiUL%v#O*L1GY zIWNu1dh` zI-CJ#w@we*;@H(t=B3g8<|hGW$1m;A_LG`*XI?!rKVFK>aZ7PqKWqCjCmW+SR(tC& zPY4=+7TD#0fTR-fvjFtyV519X_YM$NvI zSsy^}!Uhqoj=l3yz(=>Q5?g6W2pajWu-FL9q7tD^S{oecq`k0isa zFs(v$95Md`(g@R0lNo1R`bN`qq_&J|(z)!@eNeAPN5!&~REbeWfFZApwZ5n_Gn8iJ zvb5DBb%F0Eo{A_D+Ve{NogEbamR}h(J-UPI_x_s#t}>eCwC-}j04!x6;=LdMKO0XZu7 zo(M&5R0$zp9{tf&fHxBgCk?P-5i7i3Aic;zLM7B}!5uLJ37FO4dbIOQ1V_$}ZH6n} zi|CKxTKPUEE}@_AWZnc>)jqiGM4)6Ksv}d&eyJ}?v+29J$#HVmcYf^W@z@jqynEs9 zGWy@l>p#r#4^4-s_qK0M{oWo0oKydn0f5?OSgnN{H=)NHC>Du#h=UW{X_)o1T~ryE zog+l*T@QQpAL26NM#GrkrGaoirR0ti@a$SRA-f+W=gK3IGx*@geg3NM5t?O$jduAD}&s ztWwV6NR{wX4m6_cp0XH(l&aU9>s4q6i{ zoS7oswJ77xul+Y-d1Ab?rKPT-u3%o)Lp^~uYz+>~_(xR&T8h|nYX}D-;b59zyoVaV z$!(-SLM`~|jGSJh10rB^d`1Q@5K*a|QGZInDw-Ym5q|o!pT&RuU;kHl;KBQ+ACFU~ zA`QKbN8z}%DIm`;b3OGebOTo7Lm15*6dYZ82YTu4GT&H7JVPCw$|+oW^9V;r)oC0} z_uc==CxB^w(-6(F8_6idIN+qh&O?VVucL=SyZB?44Ej-LWFc(sl{Lh4Aq7*W01|ER zE7GC_2E;^{+90G~0Vn(kL%$!B4Fn-VKdV4q*ZGQ8Y=5`lSxPN@j_FeK0>R^#TI83_r$t| zY@l3*cW+Z;l=<_d#NKM^gP4I9y4T@+JWy!9z)e7MdrpJU-%_x=sL_DIl-&u^03_ZA zp{DQF`1VuJ;Ga%uzBk`^9W|$lYH%Vn=Ps=;J+BbP!(ptDi_%cA(H>!Gj=E$<49AWS zvH$u@*uC#z9D#NZobtWLR|Pk(kGOc}lqjA&!RdM9pbtNe>)-r-;n-Zod_<|DEp+lx zY&_;8&R6P!@JJ61oVqTIh$Jn8$pD`dl?GNx?sYp@m*32)F{1Z|iF8Nk ztYEpw(7>sxK$cPYNl1%Yb6vcHEbX%ZJv4hZ@rq2u$@x$ zyLaJ{&;J^ZA9(_=-8#U$9%N^=E_>S7g|V&PlIE{#0OnCY=0$2{^e=8IMQ%gW@ir|m zOuBUI^>k1SJU3$EA{N-fL$3%wKKh9rh@=Fx>@Y-8RE(sj<# zn0ESp8SRn0-QD-$gCGC&6d1`o1JdlR;zC{5udWByhT*g=;vFWwo|>@Xt=C?~v)}yp zlZn2A^&q~(UU_I!JN(m}3Dm_1IXGB%QRP0aS5tX}6SxeQ1)N1j&7k*4LW?TPbz$6Uouq-O?^J0~{PMTkc$^yp_8Q%0#rP&qr zdpJwy=X4;!IF^HBHfV4rpzk+#J{)~iq5wkR(T;ZYNI9^?7!>!ygM@yhpJ~=D?@X^O zXi8FnF6cG^);7aBb3hT%n~(TYb7`zZ)HNj(;t`eb0Avfl*s+;&5p(2fH}hYed%JP# zD!%ZAKb(MxB(O_}c{z4x~hDt!^xUv;X#M*g2?E0`qBRs}_@t z)0Duaw{D~A1IkkZ4}9hWVY~&@M+an{&(4dmssj=W6j+X(TG$Apj47IfvM}78+H7<^cd|^?0DjBRaV7lY3%x^EI%*Hd{F8W zuySLX1w ztp$*pwk}WnX*?oW)PM9%ipr&<4K~-Wk(k;3)Gs+gXy~+~g4FmlK}&mjXJ_Kw>76y+ zc;y9r=WBn0%@hEv3g+6$siQBTl(fDf@Wt@V9h8VK$^$~j>s_+wW52e_*e)FpteOZA zI$HtRe`_~Q>DfJgn@yD|%(Qa=XMv9CwY8O~2T#jcyU0C4kkNRihEG<=Fs(gNMc2x8 z!cwCN5)vps4dS-!cxC~l>3A2^(A`MHH%3?WZd0~O#sZ={93fX36H?MeBH#w;Rnni$ zS~NM8U|O`v%pPv#qQ^Cj>t(iaO#LY>~8zY6|V<*7x&FP|_ zJdHlEuGw?oo}z6>wKfw6>@-ZTsf7mVns&iawAurSD-|-ZkQ;W*F}Z02>mv3pbsD2K z1|?0Fm;>#u6?L}~z(XKm!9?`5(zF`t35Tn558#ns{vBMp^B%l=G?pW3hZe}rss1vJ zRVSeRvA?PV>H$H~vy}vIXn4{#n*?r8q2slyUvCRR$hXIkKl|uLS7%M?Y+|kxpT)gu!JobT)V*j|F+GjfJo3|}+2`;ypC#P15 zGwT5_Kld!Y`}KbZ-CQc$Fqq@mgrOmDo(C*Siv*D#2%)Za*p!`8bc%^pY;&AgR8P2= zV3|h#%(w2n+P{W_Z2y)~`q;_XN91;A_nUVk29V2)IFP0sJg^8iEX^kT0{9~lD(LRC z>k`m!_75a{v`^{fN{{B&mOakU*b&&M(%B`d4?( zWrhV~n)Lko!l98~#aE$Ge_YpeQ|13=ngZCl^I<&xE5C)Sr_SQm!ThZGoc?cf|Bb$R zp1)=U#`=WF{M$V0FMl;4(6&P$+FUifr8Z)nuiv-?aJx`KJc;6Ow%jVG|PrL&-n(W zdEvVFPs?%8o044Fon-L*_r8VifAE5s@fjE!V;no5PIzg_We< z-0+VyYRiBs^H3e@qGjX&qk1mKGU;hUWZwvt;gTT?tb@`R07gckzuzuP)JCIy>s$WZ z=+@8yf*0hGAS!Md;l1xcHdCg@29F|vkij=)w$SI11|0Eozbd7B#YjrG7(o^VK^JL; zDSiBwzuUC{WNXiaowO`eQ}|wN2`Cy(VW-}w+v}f?}^M5GIc!2vuNi#?6$QCV#F*4{ZD@Ki&^`Pz8bWT;)vPDn znWxjLf#}%leFSSr!R?sj?p4XM9We)QZIr|NIT*151Co_P|QFKqt^M>#qeM;(5Da^`4u zm1W{O-`3Yee4viawGX4U?7!O-M5RysHy;{MUwqN2`5k^lk=%&dAjv*Et~LBe_$eXY znc{@M;_`v(c|cnGpIoLSv}s+9H7QchRf!a=OQ9nJpGxqx^ zKE|oa^=aRETB=0#N&^B@1em?GU?bW?J|NJeb?xeQO?NVql9923_(Yx0M!fJ6LLewX ziyQ4k=Iv|Py!(22N?_9{m^UyRCV;#8+LY3rHzX?y%XV?^laFDza2E4{v70F<7*F6; z)+v$+kRoSxr#{$ngHWeCkuLep{uP`~F2&_zG-%RgY^}{eqL0WeXt8ceuj8r|^aU8o zAZ`~*^#EosxsK4g_OC8&X)r(o1-gNXrJCXFeR$$me;YT?oG&TsI>BET`<3;4_MCqq zw<@nc_SZ)Lu_ge1IFJJ^aeDrDnECtel_{V+LO(DtUgr#eyB;9fNH~-_YON(Z$fA<< zlj&cNRVraGx&`x;b=lq}hwk-2v3mFEy$A5*hd+U%&2c#)(1J@F^E)oO&6-w@*xQ-P zA06V`-~11F<%O?7%JN*)#e`ZPvJ6Kft`0GprR*+YMal*jg6+|79zgZ_3gUjNM+v=^ zoNBs9>93Qp-DC8_@G@gyWPFx&G8xqd2z4BN((+XAA8Kv=A(pu zG#^Md3PB2n5V~y`>^4u@DAYL~%rFm%ZDH|}1geofR=U0fj=07!Nxuppi`$y;B+6tk zkMEvpF}3PPMNp~(F1Qr6r*^Q&BBbcgjer<06(G$)Lqb4`Ua+HocF=~Msovg;29Nc- zRHIU5Wd;cqiS0~tZB>gy&@B$sI%bOu&0%@)0qtnl1;+M#<#gU=%F&nONXyOB4CXWv z*?;W?oM}4{)~f1C`s15xT)T8wS2rIkcF&x_*(V=@mfZsf*y60vAn`7^Zfcc-P5LAN z(g@0U$HyL|s>9y+cB%$B+%~^+U}Un>q`TyP-^)&1RkK{R(_sf{(toE-iCPC4O|8k6 zwv&@u^wLQQu&W5$PT*+zJUf)#i+JR3{}!&?aVKufBh}TaJ>FMGV`JlcdADqUZ~jxS z*@}PlQFbg=bH}EZYnf=6hQymISAyDw{l_RrsE=m7eFkhX2i}|^gVfj*&*YqSO)L&~ znt81aaFPb7v)rAb5sp2)|HGfg?zuBKIH&g%jKkohHB@Q&{d$HDXBA^Gyzp1-H< zK&czlt{~>HIa@*Iukp_9S{>EVhZw9s?BK+;vHs0zv9jNQzy+BoFe47NyLdZeZLgI*u&$$_-i=0^DbPyHBIfT zcI#dj^Hf0D{ugy2d->DyyuX^`mu5Tj->PkIZ+|T#VCmNgk}F8=94QXpy4*qn0jG%F zLD5tZU_c#?t{)V5rbt=GLw?3D+jY)t1q8l{L(aYkPU|g{on(WGQAeTk{`)?FN1l8b zhexwsuPLAk4U?8tvG8!VgE<3maQ!;I@s&Tp^-DjRIJ7DFvhwH0LxS2I{&HZ~800wM zniAUK{iC&E68c!}$$JUeYFC|+(evz}{e`@AszZ?s)|Ck<2nX9q-=4%<-Ikn`qHhzR z!A`v^vY+ug2STP-R#DhE+-WZcEzZGem-X=`==h3y zP14hD8mavlI^3QyM`U3_bF}S&kIrZV=mMPD*uXJGdX)hraMm8>99xfe)_d4p@07=B zkB+A)lalss29Lqzp|1a=7T`XiacV&3gv1RgfEAbX;PzKIT;GLKofD7m|Los_KJp|k z-@Xl5@4_-lBO;p=tv3GJ8i2Mz(3qA>)cJkaQ=`Ug3++_l{aes$*HE9_sJ0&V&%B9# zu{`?$h1oyTT56CEM9DVN^$@=6SpOSm5-aPwF;@k?vTw%Bfpd3U#Af2p1P>VZ=lwJW zX!kT0EI2AvY|0)0H!r<|r@!{+IN1LQR`Zz)I+U%vEd;1-*J-4aBA;VahNx6+{AO=e;&^~_soij*tEnUYYb$rVIe=aZPDe+DN`E3=~t}wkeRb^#D@- zr0oz`o*qE5cz6!0$!6yB@s%4mx^cY*3mU1=khRGV5on>ug|Qn<5DFO%I1SQO#9jvE z|1(y&n7uOPR=St8wZU^>a~eN<{`+|Or8jZkLyzN$54;~|&YqtF!V$+C%Os3-bl>!T zJ_zW|*I&hRPyYuTAH3DJRv3ee+IU<)q`^(dUby>dW3JF0N!<&_L-uKX9Rx^&3eqo) za?*LFCB|yhZ}$|t3tUhF-83L1F%4dBAf*-$bXb`ElnC#s!D=IE0BGG%@4idd+lX>T z3e)RMLZ>NSe`G9`@QHiC_iDOdU4_S{i!oTNyex>jTAlrGrnfs%`?CBj-3U==<#}ID z1er-92xbpmommJBqIm??3u_5_?{!~%7V2BjF0$-5x24MUO8UL>0~DRkbd1xee+R$$ z8$XNxs3v?}KMBPle383?CgH?`@p=upC~IVcH(e*JA|I^@BN zY62kXN#|~(3pColQLgEFZ7K5>q)8&)HmCf70KCfg7LrV9^-q4}Gx)vV`MdbYN1m86 zMCWk!>}i}ma~gNtc@ZD_;QR5=1CQe67hlD#!y8Ssm4|coX7Gi&;`U~S&Dx%LHwK8!~{{~P$p)W4%)KFX(_J3qE30g67XDzk;s{MwwpF9x&) zfwp&uJuOgP*{PVm?yaYPfAC`*e&@N;Zq1Y-A#;s)vt1`%G+D-!f%P}^hL{EE0YQXK z#6j7nloTWb%{amuxJUyRW=+BH6!eQsnV{n%T)X@_e)7^QINZOD3sZLB)ZR`x{@0xI z90<(M{J;9r5Af{Me~$6!av9B$Xkj+wxg*91r#0v@htKvPpzMlB2j4uH^cIpI2xslVOMCZwLHO4ZCrNIB_1RBl`gkzdUkjRv-@wAZFb>C0 zEmB|&cKctxTuryyzj((72SXuw4mAi^uje2@?#PVKD)rtk&5Z(`)1(yB79-(+ff?_0 zQ9Huv>vTOU47{$&IAef7$l+&N!$4R`NVz)$<_rn{G!!SgDN`Ij|Fa*%-}~KPnH>J! zWZ<`_QScGw=YDib_v&VX*UfQ#pPc?`8eKi|$b)$KwO8@Ro9|Bb>@@I+03#eqI54rk z`okWzgSHzOE13aajC9~&7JTFcn!xv;Hr}MbLMX$6_DG(T$Cu_nMt09)b>Aa6K5kC3 zoDDyXf{&&E;eEptB+ZfNG^#nfgV(?DW5~e~!Lwuy)LsTnPwBePr<1q09@*z`0Tj(s zrfcco;Q>V^hq6o{o|N~kA-^a74H`?QXMEZ%zp*Yyzlw*L)@3SLsPTUWevV9ArP9-4C`=dSuP<97wdP!3QJYeGp?$mVc_*>6l^YW`x zlWS~SXjU^2CeyGH>yv*s+d%Nq14sMTISmqRdJnyDrupxNaU5_<0$`zT6boqY)87hXLgtJr&COby4&RRXl#^}yCbUf>}wHf{= znyVekncPeYV_eRNBh|;{g9bQu@=KYA0EGBuL3w=|sQsRoHhFbhgExZ*wq>dIK6od? z&W2zHFA`}CcgFxM1A_TGo#!pUa@0I@?@G=VApb<^67>{Fw4@|+C1xAFq&WU#rc^x* zKKd2=i!@=Us9l|Xx+yu42C~7X4IX&kUHJUxe;TW4?sPobpB(+BoUB)$nXh?J(S~~S zBSF*1d1vnoKK-eW)@Oj{y~2c*s2^prJ2Qod?rR$Ls58UnzeAZ~UP>E3wA&@m7+UwC zHy}+vIgMrhaq8<@Hn=tK88FS~&U3-@uLWf0l-}VfTzPB1_{4b!uk#o0z}Y7soVd1u zA8(8xTbf65?PMJhw6g;0uQQ4B&Vm+@7!dI@w86^&h^R6NvVLsNtu73WdwJyF^BEnS zR=&!l7mwl>fAMEak$Dw(g@87?H>Wgx-`_vP6OTQBkAL)&jjzF!di?3Qq|=zw&`g+3 zZO6FyK4j^tIn=fp&vbDDOpg5x4?dLYk3Nji z2CW8{4$DT-c3OqiF=sb++V@HK$GVt!jsFX6jSeF@Kf`zh@0Oo8I<8~E-wzl@iE z@YN}vx?OFp{B8V@G~=x#N=--M{AS-I9gbM4-KRASOWOQbVzXqPYJ1uy_1}Mv>_X*j z(^c{_^=qA)&Nf7-&0s71E4qPMWM$(?A%sse0ZSLlbPIa64FH#)B~h9EhPs~AtX%DT z>RIiW(^O^9{-CiS9juGl(MfB^13brR%h=L@txegr9RqbyIY(0gxQYyr>i6c=k-4rI zfpi9naQf0ImIW0YTv(gT)TB5Bh#XWHv&40An}9jkkrQZ=L?3@ni|gjOy9r=F@}b9Y z{{s&~ClD)+t+CE&gLIE+AD0Zl0}tLeWe#@BdIINt0~oQs%>QY7OwIxq06AbvrQxWi zSQrj(T;!4Z*hTO_Cqi*^R&QV2(95~5RC#p9Xf#Lwnd6PXbuFwx+1vQ89;ld3YvN>#mhE8rc51n2n}Svj3{@W9wg|o19{^ ziuUw}!X9q5C4WOp{np1N=Sg=Y{w9-So`r~KutuKBF&wl+s;>}l{#_syK?y)on z3vI80vK4G=D|MAR!w$i9lQ5~s!EAUO9XV_ZaO=2wZJkninU0SdxDCVVrVAjwU@8gl z>ea@lQaw!}c|ZfW1I@i&SXd)d8eOCFt*0RdrO~xmM93L|yrv<_6MhcnXT$MkfTIL7J=X1^5nt|!Z;~RpT^MmHIvzxx(`+X4LS&!2Ucv-0>{8%R0z>;NZG0%sG4d0v>zx!O6Lg>CrI@nv@Bf@0o!3;)U}# zH{Cb-lP7H0%$VqBl}#A-R{KH5YtKTIOwM$9ID`AAX^Sgo_HfWpca*l;-*y1hwhz7I z0pK&yQp?Tx>yi;@PtDehLF~y{`2<6*2FUf7)f|jmzKWx3*Gqw85KIfnN&?hLB29MO z_=)j;;oX?Jt{gX?Q_uy7H)AI9-`3md%+--Ji~rl$ED?5q#)=3CF= z%9S5a0d?C(P;BppCE3AGge-i!b0aC_=5{0GT$-%l`cI(^VZ#ZWG4{ElSNkTqxkY~SOz1Sa9kkhAW&{fxQ9 zbFo1dOBO64@Esq4Og-}LQPHkmKr|5$v-WmlB zfDYez9dh$3uu~mDEjd3Zeg^Nnept%R4(`mk(>VWu2TKqjp!2e!TjkbKfS`bQ(*LGb zp9VnMuiJ*$tqC9Xcoc8EV%XQ@Y*l-jrXb+V*|IS7cwP$EtR8s?*N*0l)C%!9)fkgP6> z)ke5HH6fnp@js~BtFfc5hM&~rjd$j}IHVmlZ3B-=J8OD;7ce*zzk++24?qHY0Ph87 z)EsL-A8-(uH}7IOve@qS27do{e;uFyg`b+R;wGeQur&w9bHF#RkC`8$oe$pHFW={p z|E8=dYMWdsu@Izdq^>3JpcMx=tLM&u)hb~vVQBQES3@u7KRRL{^jlrbRKD@e_lGg* zQjfMkU8P*2&aTkbZ-tCzP_)-W1QyaZVoE)wKGk>Wue;L--R-9ia!}AXFM@42?)_<5 z-bn4&YwRO^+5??#vkax{iy#LqNNWOmQtDqgMp-ywXC8x{RyPp)@Mon6T62VA3SgsY zzBdO6#AKm%5%Y_D20-dp1F0PS$H=%cr_*i|OGiWMw;C_dqPh9m|08_qYv0DVzxkaB zDCZOYYDPfk`PQKwt!n)=zBK^*;SXNG@$n`iXR&m3H?db8QMJdI91r^5cien23n)Nce28=tC7gWpBZcF*GCCq9iU)5Nq) z0l>->t1RlX_Gu)K2xepCsEIBynupdpPvL-4+3pNR%nt?}z4BW5b)zxQNpAo-5RWtz z^aMq1!yZ&f9*27kOvsic8FrBv3h`}IcTaP_Mq+AkKiU_F6>{)u8D3km|%6^ zM=EE!RJTPAzJY8p&65iaDpSLX{uT8^md|Ki``nWw%rr9{s{c23oWfEbcaG#3L|pT_04-oiJ&@jZZ$J=_SJ z^XOL$_w0^P(ojZA5e>tT>IORXkRG(Ubskh+6SovwZ~!&ZoW?S5zKETJ{W^cCEtnbh z>NdhxYwqB1T;t9s9>J6|howt-ft3Ta$O$qG2`Di*xaLIV2pa_8%Jm2trGySg0bq+g zSOo4PXR7bU?Q7*=m{s?<9y>3qr|@(tclGL3T)lqD!BN|D`>>!vm4v|(iq?~DNw$O0 zHrZ-AGL64+{_zjv=&rkQ`)J<&cklfX;aHoHv@6ruf3^jHaVlOjQ8o>5 zP!@>(@~{3JZePERzxd*pOCPKApB?|fRA@eAV-vNe(@WL$IHYY;idg8XG=L4<&HWAG zAUVrwr!fLmx?|D3bQgW2NF?KaP-vL|C5KpP>E#oB>6>!26r_N9VgCS)+Wo=;Q&QGc zIv>W)JJp0|Go^w)&({#+ z(|hiOcvMPv(Wt3saGs}*>l{s)5c&;+7EC63BFI3Zm&b(5DFJM|$Pm?B1o=F|x&1u1}HM{b|l0cKx7X2C0sv?BiT z)pwz9zmA<%JIG|dXWkd}=oH?4;}&LBoJYI6=g;B%6AvTyswbHn0P4x`lclXxUX#P+ z&?=lrI2ELkB^;Evk?^TxrOKeELG#?hDV@E)e+@6a{0eq|_sXfY8MWVjpQa!)E?GG`P*_qqAb`8gu>UO~(5H_8RMR0#P*!0&5=%b8#1s>fyxYX#;TSz9DLlz5~fe)bEn+&LeM-e4}Oyz#N*K=54ge zBHO?WWV{aT%=Gm%@^5Hfy z-v9g0{}`{nID!9q!09u4W&7MYTAKmzaQ_gmyznCa#UK1Jp8fud)19YKcXS?LJKY5^ zncJ!-68Or_uLaW1Tv-6%21J0ct@YFYdfG_;jpVW?NhHCrOv{G3ek$&_(%WXAK<6wBa*-yWQ(MV2?IS1?t>)_GqpYmg@k@@3;>w}NoGB#PqL*B&$(Tztdf^n z0-5>pUZ+>QX*gCl`&Ui&7g!K_5ZJk`et3O&j}k(CS^5{oOLce@Z0k+^*W{+#+Gla{ zZ_1t1GU^|OHEf-ixXs&Vu^2VAwdUITPO(!pXY0h$cLw8dKON)A6AQQyao zU$wmTU6TTXjmDHsvoSZ0IFG8rhmOo;=h5B4TQB3(jdvmE?w$rZ>pERDpDZ{HIj_EZ zjQ8EWi(@^;-A_COIdcZMwclhj1U-U9z{p&P_SL%`>llEPp+M+Q2)73{cA(LogU#I2 zmhEV7&acI2qDk`IE3e}Z|EGV6|MWlmZJa&3hr@$5;%O}2T?>wh5!@O z4R^q~|LCP*_1eg?(c1|dVPS?#3JV6(h_7K)>4MN5^QFm_XB^nzI)46he+!Sl|6#oI z)@A(bfAdFE#_(d{f6WZp-1yKAEV8yjhaFzjXcN+BqL>|r+q#ije>7e2G_#@$D3EYC z>>p9FEPX}27Ed*ywUY*I&fb~Y0V#xUfs;0yb!-wKPw5&)MLDE;1)hb{kfi;~{v(`` zcaH2lQQY~w-lu6m2HExU6$s978nm@5vR#*J+wG|xRGpdq*{o-UZo@Ou-qEM$qyK(( zK0_EDP>V)St0%JMYLviWKt@6jhnJZomdlZxmEqG|WF6?43nqRgKe_P;U z6lkW+9@7-#qwxUYypx+DQ1$dz20v*iV9v){tw$TrZL~#Ahx<5s<7MoA_--5>ZkqgN zpxDFPZyn&iyLP83f)S_BpTe0(--nyudjT~C-jL4#wxTQ+`T`B*ZX94xQQ`wU7HDM{ z@dBOVU2Cmwth8|ty#Mr@@clvetkZLT<3}%j5C83ddkH`Pb3c!VAAV>``|p-w2M0%Z z?bV;)>)-eW-gx&#h#U8aWx6v-cZu2z%ton5l9|yh!>UZjoWB1_$UXPsU{m|GY0g~? zNax#{gSQ>}>Zm_>GZIO8PL}|V99ZB)1MGIo-oXa9UVZ~}1N9kr3VfR2Lp&e2us;PB*8&;{CSwT;8*ft z{mX(WvRSJy$v5mF2QZTSf!TOzdbAyKwe#H}YqPgm?@JKifwV}95bA48K><7C8~|{~ zlDyFCqpd8Az3t*mP2(77!^&Op@HK+3l*L%^drrn&zf^o?B`+4)$V&KDYey8>$6 zG~HL^s?gyUwViRSMq$7*QZq(wI@AIIbP)&yJ;RWdzYlbIp^It+BObo;OT>W?V1qG> zi}IsI@vydQ+4VH?-+%4LxcK}bMhYRj&_%i_p4X8xG-26L8K!$eutIzrrAHrcrB>dkeYcM1lt{sjN# zPyS%)|86-&a9*G{KT^6Gk4s$xR$iA%@ElBshI4kpI*`+@U%Y6{>}?*Y&TCZedjCgp zV?A$MOBy_%{8tKVYJFFCSfJTx^iY=YxzabfqO&ao-nKpr795%VXz-c!fPyKO zQ+^4;V`hA;RmL6R$UudcwrL7dPBKMQ?}g@{+gLHli)6-uq2ZS%32ET08vwTSPO@@t zeF>o%OFsrp{UKG%qtK`PnFAYX-xL2u7IYEf_~*eEoU>7>MhQ1s&L<=G2?(((y_1l| zI%##2!pKr(?4E3d?K-4$;89NqOOR=6EO)0aUHQfkHRaZHt*6WSmtWe^WADRzMAo@1 zx2+l*qWHkEjOywh;iEsJKmC=rY)LzhIvXbSW#(bbDMTkk^(*Y9Q z^aWAKyvp2b>eg1TyN_y7X@SC9mvHpfOW0Yh3@ys)^UeMmmoFc+qm2jL^Voxs-L)I1 z@@N3`NFPZ51gX#NK;7vX4>alALPZtCOq*jggix~9d|R~PU&3W5Whb=i)T%80+$j!t zUKerPwwA85-*qZ!w0pI_d$1|t1WkrPP=Gr+UG_dpy=WU1m&frg+>M?4AH>bgIPVHn zHE~sCH?(HlO_>c24H_GZikw74+n8SCXXCFVl~k{HURbz0%u@lcLl5WUwFj4`)#d$z z@{$AMQ64-bNr@~$w9!8}J2w+82UC9!r@!NJ=EYc6>TgnwZXyXj6=n^VmRG%r-}v?4 zz}@%WgJ-_^9X$P=uTAnlS24g4O6?{<18t`)UN^rRRc!O_3z{BP zT9oLB`&3D{JEcp3)q?l3@J;PkDlG5?s6diGl?I_N**_A7+goj0y$ydv@V!#w>}Y)+ zbP+g&@%4lnFh@N@a_+VLIEP@n0r&L*+cF1ve#U49NOQZFbb&_xEq{)`J|$=E)T+$! zcYC`xBdwIw71hy-rhZu}$Dcev0GBHe)E%u|=l53I*3X2^$(EIssTorkG>tsWSUY(K zuMLE1ePxt8{mnZF?!WXrPEFvdtGbu|YR(8uSKfO2aDvgeEI7YUA7O@Yy^AHD27h@CE?GZt8l>JaIA$|-20 zw|^P1HJ)oZ)1%24*(pn?n)6WQ79M-#gZSB>{|v5O zzKTEkm;dt=09Z7ik%OT0&xHlytlH(YH&~mq4wWR%jFg=z&@4sP z$XNcSTd&(3pHZ@nSLJ~nsV?6feN~d7js{cx(SPk|!{VwLmdSB&AQqcqus*3K!|Pco z2JB=!wFT0d=KhQ0EXR%3g^u$o@1rYk0dK#CvkyIqo3{?@{Nt1vxOw>)H}?g*JJa9Z z-ZVdbH*UUtEdUVx%ZRFriYQj~kq~(>#2lj)Q?F*G)y`4}%a)^Rt3E{<6~sncYe9xx z>TGkKc`AuUHRQk}z_zNDxY?X0)nj-qk^_biKW#S+Wce8>&6&@eS)FR>>uFpwbv(okq$r`O-X{9 zoTO5g!Af!F(!}a~Xtj^y0oH59um0_y#b-bF>9S5^4n1z)zKv(U^CSGl7rrs+>rqpw zu>%mHy4#dsDR?yL^BVu_|KfMBIUe!<{D1wkNmte_;{^x%UM8SHnP+@7;}*Nlt%$=o zATjDLGV(w(oLI2A*ZpjPmAsht$`g^)5BD8eF4pe|R&_xunI`?#s1)uZWiA_T2^Gy4 zX;{bh+kVmJU_FaOeU^+p{Ml@~oU0w<+cOnvL`Lqvnp(=Y!& z(scs0C$dHtyz#lBhN3a<9P7$px~Dwn+3^q7H?a)E@;Cq8K)OwBm|k#30n3^jeNkJt z%ZvXi!V1Wv7zIQfI5#?{yN_}8xu5KhJ^Z-W~T~xaTe$Y?^Z$TEHQw&;AQ*XHNB&>k@q- zP6q^Q4n#69?5=uwcSg=P-^O_D>O{tnCIgiIO@i^Nm`_R2)T{srb^C`~T_hNzs031Z)05+0M{wOOgw#VePBShz{Z0oD{3*@cJmJ}-#&&Clc`81M7%JdR2C@! zvC1U$-uN#__j=75i__9C{&+0utkbQq(Y`GFheTFD=-n66RvY%L$q6sxi)$_0mu0M= zTM-tTGo@(dQ*aJl@WPwY?bqvFcBfJ;ZRD@W&L7(HWn&xcF;G~~B5 zJ#nRv)VK>)nmOoF!B}ZH*0YpgXSr25%ve$%S+=GFCRlGE6U_3qw$t^_5reOj;%i-D zRwHGp$5&3*HrL<8rEh-;7mkmxUd`L19+!Ks-#99V49&Hizxxho8r}yPLAyAO;h1zG zi1=MQwh8+KADz^`4U7KPk9{3Pj#^v9A9F-bw=RrdJNCNC66jj$7Y!`=x}*cgJ3HxX zW!i_ThiC79s4Uhjn*&L6>O)KSt7Yso?5F*WzJ+itAA08|m)lczVoCtlcrvxIHw-xV z;Y;O2&3gVYqCsM`>ooXfOr&FyQxJ^opb9_dpnD&m`SgeJ@sG`W_+OvCAC|y-oM@Oc z1jn0excA-%@w-!yAj5HVMgm9pXy;+##YV5;GoSh#KJd}U@r|!Ojc1I%HF!zEKuJ zPlZV3Y3it&ru>*l!*<6xUdPpEob!Dk3i2GjggrOTC{BKPyeWi>(zitA{huw@ora(# zuiFrI>*ae4y<)TYxMqGq!xy&tQxLFiv>(iCimqdF%5l0NS=XWy3_`pp%S(Y3G|FPD z@C@+Wxw-{qry1Lf&awU}oIQ2t1SzM>Ug*Aj+0?#kV_P5lV1!?TZL69zb9;ahZN!5~ z*3oL;cFInyolvhY=BWhBdGRnhfO*Qi5(gf2g-xRY0%-0BdnyA9``oY3Nc%b%8LDmX zgL#B?i2XO7$F--wjPu6_ICVzKz5zF{O(|L3#n~wraBf|n9^h#P2)9MLL61CDaJL-? zY5y!c_@!OZxEb83R!Gdb+ql{91G?>Q3An*FIwqRk zp(W4^5Q~=u4eShdar(XourKBKn#r*Tbole*QaNU4G0Xr{moR8-7)0dq*ri@p;(L2< z^orUpi50+hk2g4a8T7azp${oZfk-uo`%3xEDqeDkTNaWvk7`buB*dQ$qf@ue!$ zn1EA66YYJ!bAYm~jpe;|UnEqOJj#-bsjitGd&F4bTW`byLjlXj+tQP?6wYt$z*o~h zp;S4OB+dggnW)q)O3OLrg?|UQH3b3(H*etVhdzvZ-uD1-?HbP9m;!|BZ{d|MKQ)!v zfsYj1WOE;^N+OIIKz(CP3TfR#Mk`eK6f+ z%(DJ6xCKo+yE`~@=4`z-KVn$JA=HD(Do)hVWnD1%;>)k+;HyzIl!3>*MeA++{lEW@ z%0XcNBE z;qiaA2uCOFXiDET0fysR>Dw_bUO0y5OKdxD=PuV9iE9|F=C7OZ{>F_Pt zJoU)Z;uTehH?rt11vJb;lNn7Nc4a_x3RmfE7_YGfyP`e|Ml53-AQb}{bLwzEG?48& z5;@J*hxr!YF_5>X4F{)PkBk9v!d+Arh823Mi%vn8CY30V}Xw+cL0dXL!*^IGEcA6G970HTV%}N%8XPPP_&H z5m-zq-y5&u+Be_C`pktXqkM#~|L8n^?eG3gy#D+Tv9oh0HpijF&PyfdN0)b=T?)N-dfKisyq>{F zJ%5NQ?P}AXzxSKRE^TRht@`03247r<|y&1+3P&& zp6fZi8gTf+%Q(J$3-ivILqHY*eg9(n4@?R^!g-PhGm02-O;b{K5^3Sx82m?lilyl8 zYQ(9%wF|4TXW%I%!LeS)ul>qz;NJW1#(($!_~+&Pke%Uddn6dB(+_ML(Y^4S2JqU! zM{oP;gOVOYlfCjq(pzz=nOpWROEm^L9zaSg?sSsK{$W9@W7jy@Gw{Fp-~Q)#@PP;M z{P(|)Km5agGi6B5n1B$|THVOE!!EaOX>=;K`Vi-7!eeZ&D_@4KBalUqpbPG4FBjVM zN(_G%n(KyBO}zK=vtZwp+7VVUQho3f!r%G8qbYD#xZ;h^k#5Rs5L z{>t&O^|PejoWPv&8WweOu#q~oH4y* z+zD-`&+LqWoQ|!#!4XZ2 zYqj(6v=_wp-REfCSmJyZdS7@;b(+JCXXCPwYMO^P;}qtpY}J z153+*892}lSTt8^A941cdvGwU+VQlNZfPU@x;T*L`sa6=L{!3zNbk36>KA=SL7&^~ zoWx=jWfy@^L3`T+jsFMbYx@$df%FTVOitfv5AV|p}d3fMWzX5tjq zLEB4YY<*XxfRgnp|DLg$fCnr+Qu2<63vJKNNjt|VpnjMwA-(3T!`_r}dEb5SD>pp) z_~T{cq>a`TCI@gibzlGGxZUx)>19(XX!2idR+8|F*)jC~%&u^ z($}Y;-~cCW>BxQIel`j_`g1?G^>0a87<$U6U|X*=%2QJYPR!Ez`(S5x`;LV0=$(T% z{_Fd`98oY05>B@nd>^E4t1n4U%v@Tal@5iex;5@!$LD_TZ{XWcKQn#bttG2hYVE=! zY{xu_y4m9Lydl$pCE-@4Q@7fbU@1}|6^N0h^txwU~ny6t3l6aHl44iCl{dd#lde?l|^%0H_Z{Z^!{RHL{{L~&x zR+GJ!ogI&+0mYyE@fWavFqWMztNbl3JYw(E4*v0f_4o1mt8e3f{@4F<>cc$BwS%zW zx?8a>`Vk}Tc17XAw>#EGcXVmX)T`MjG@n{0T;4P>p&2Xyj_cww0%1L~S}ZbPnUk}P z`fCuif4Gku*RNu=yTTX$@=JK@t#>e=n3_l10-n+ZSq^7dJ%m%>r0J7dUCnZH7AV_s z){zvLfihc&^ndUri6iJReC+k_y;QX6Mjy{^^CQ{%gF-B&8uWJ6STi-RwYygy&l=m= z)iK}0kzk?`ri05Q#!QGPOJ@0ZIJO9z$Jd70&W}S&dzDx zN$*?FJcr-ut~bw}*~9j37Y9)?nLN)2@yZ^O?hX z7dv;{fx|KyTeXyb>w`bG)f{*m4cFhA(`aoH%N!~IWf zt8d`=>Xj+(ST%s?t!GQeTV2HJEq8Q4&nhGHXlM`5eD{ZV^s&FfPydZym`d+YvOc8h z=SK#2@x{ORGhDuUdD8g{4FZe8qpY8prb*AAz6)=^c?tjYpZ-tN_1!vUqOoc+oVKO_ z-Q?%ga^Ol(PX(GSw%=W+iCcW&K&!z61Pd@gSOSo(h|_4-2a#ku6dR;_xFfFK#eSzy zXtj%PKl8om?^(=8*UXPgj$`1eWzZlo&1Gg%6MBR#V)o1Fcq2i4t8K@Gj%=XAQH1?S z!%?*TEiAI_NBTw6C4x9lv$wL+x2ou(RKxV}!yefRjFNG2_K0IiW6oF$43x_IsR3HkMDvn*&_E z{`O=S$Ke)|)h(fh>4nt4TQ&tUn^*);&0%msQ?w|TLC4#4K&<6Ao7;H&u?KPf>{-0{@=I6^J3f!f zZAQA&NaVgs7(nt6f*i0*&UTowQXfy9K7;?`|KT5FXZOrR&yRp|v@OYjgNJrsihbCy z`!dATZ2uuoBYn|dr<1H%FtM_{q=U%4$BOXH{;}GP2j$_-ByV9B61XbfbSH zeljhUkioBON;IJLb2Cg1bS*gg>N7a}$!qQ0gu%PfcPQB+2UEJV>t~2 z((+$qC@ILI24W3}GtcoO8F&VakRaJodPyf6uQR^X9Rnwz)d>V}I9;6P#xS38zOgyD z(G^&USOZILV4EVu>m)?V*UBh!)Xr%#<@Q;()Ei}Dp+y@xmWXKOJut;fff>=7=hERL zY%Wvj<$3;4rbr$0{am;5#l>jKqgl<_23`zS>xzXzwSXjAthdF%%yX~GKomUA^woFH zDsZ2{bebB9jRQjKl=>>%G4y&u4ivUy{`dbFe=(&E>nnCU4Bn5;K&?IF zk!{7Ax(VC;GO{qnpZX7f4?rBsqSEODPndll4I40tacS_ea?3wdI*-p%UV7>?`QCFPNZgJ#a z{NmI2#@C<4`|iIR7cX9%9Q!_Af9*}&n5HUZO7F{5E+K!*@>t*IGXZK_gjLDD2G8s{ zXg7ODl4U1vvoOYwE%!7lY<*Ppup69|EVIO4{}^`NzX;zLqoM_^Q%mF6wOt1%qxOT7 zz_>wT>cZB;)OIAOclk;hNccbll}A|zc@zx9C_9sG0eZp@ws`WYl1Ap4e%A>7 zH2o0THBdVSOCmG$UTm<^$(IA-rguHmI@UEllptWZa0kZq6qVhaOAPZWncCe=dpJi& zBCAsdT7{jRp3-+#4tAcppnd)uhR(Q7+)&K2{y@D`L8wgR#+G6ry!41x3 z=dU7xduNFNdaID_MESd7_w2dJ_SfaH?aV{?{`KWz%MR2h2Lf1)2NhtcdJBe0XUQB1 zmh1Gy-Y{kBUi=9TFI}3lKI^IvT@S1Mhit1lQ*YfUn@pHth#)0p$>|WU`rlBddkzne z@X||fPIbP~h~As7pGTcus*5JAo;LXb!|?K0B;T1zt1=!<;k>%$ftvA}`^7f(is zcTosC%5T2yE!8GS{P8JI5P760WdWx~3HoKBPTr7&a_nvqDElO2TTGW$M7 z-)zL~2JfB&$$((sqMF4QVXiB!mJL#bULk#o>N$dmiTF3jx1m>7U`NhvYR?Pvjnq5Th*B6b6ZRHY`g*(btthdDl-{qmnrhA#%ns$+na5ta~+pO%M!rkZ}7QhE&<28k57K72}Z?CWn~x z8(FD9L}|S9z{LKu8_hW{e|Hh|jg;?hKlWXk?XwK&=x(Pv!tZFbhu8_Up!}&j@4)UI7qD~T zB39?mVs-j-SuD7kAL<g1wwOF<7`GC+=rlQ7^EX!lQXsYVkED*6P-eE zl$|@hY@1&`IwS@g&~Qe9pTRW{?P{X3vS`=(*0&XXKyvcYPTvN<*VotHj=q&@pAF|>RC~YG`@$dnF+sE`E9?Ite)O-EEgJ;w z-@@T5Q?|$OWF9eV^m`lF)zQq5<&NOLI&Ze3Dr_nZ3otvEhxjV5we@Fd10mJ&#=_yS(MZc@{G+j2O zUfYPXhq`3>3rDz3Yib1VshoCABr`G=g&O}@-HawT7m92Zx9vtlB)mL7|Pkrj+n2&f3UTQo7)fb{wrb*kKe__+X_V$^u#PctB8s({$(xACLNL9Mx_K0EUs1=Cc((bab|x11+z z|3;%az$TDvbw)Ob?x*6$ju?<=dY4wW`iLJ`z#2U*u}wz&Io}%kp6#DTy=s~xWqKh? zJ@CL|7bMQ7SKvsdD(NKzkY0-j&y}Bs;#xE{9(LXT&Wu+YLFX1d3k3e%=&YS_s)x*5 zzo%h;$V8kr?Rpo1T=2*;0;VseoD9gTHD9|>Zx`^TI6a?IHABH>bhLk|yJl5yVU^sPZ$_nhZBR)-W(YNT1 zaXBZ?uWTISsOg$6Mm^#5cnX1qT-(H!I^w3hTOL{BZzk<%Ma=^a~i6sSCYT5*CD6_Jyn~ zLiNx8?cy)K@E`FDpZ`UGw|Q3Nk+E)TTspApN=Wy+*gYI?i#Hkf3OHL7&dNw>kDoUA zWWBEMHJv;LEgFFbw_I2^vOR^tCr(Np32Wkj0ZH67wmOF?+gEn{qt*U4EtThrVcx_8 zA|q6EDRM?JFx3j@bt4`sn?+tQ+J zo-sE*-Mb#=tuyv35RC_|1IMrxu3>krRk67{B3kmCazEEyGXsi#5k~|%y$PH&f?g_d z&{BVQI*YLK-tB!Ftf#f_LrFz41+oPE+D zSq!#P6?N=g>aQQdc-=VE`Ba~NSpUQh{w>~*U2-VrOW;D3_ce&cUZh$3I?%4sWPsr!A5>dZvoAaB4F_Sk^ zOQD|z=2p)7I1Hw@tS=fBgPg})W*D%{07$69d_dJyW+>maE($Z*8n`>Km|r*UDfJyd z8m)S#d~{tqJ_isq9-9x6nsjY_^*XNq@Fj?>{GPCx5t&m;^@cnQd~0AAK}4F`(zaZ$ zRijib+drp>1L!+}X$(Sw26&*rjsaw|AwSn#uPcJ{_>J9vkEX!xWN_3b_Mg>-yUu2=$`o2YXw-XiD83V-}p$l4;)iCGmCWY&T z^fu3oc3ueIK);0#tZWtj33(71zlRScJ~z2Ud&t3BbNK3xUxFuO6TCRpO{=|1{B}I= z$hO*rtWRUTH)R0M--*?{KH%JW4CgNZr>Bg--u!oZDzlypcMVQ^RGx)$n1>V5!R(ottAMqErWuzANsl+jA|_ z;gbCcw&={Ve!H0i;P)oV20xnGi>~C>Or}CumZr^GA5suUeQ)ZVe%kt4l37RoYH4|0 zlog8j%~#lUju~LV2hnCcwjKwDikp%1snd-T1jy~_pW`VTFr1zy=*~`|`B|*a+<~3* zcR;2fV3>k|IS`PYQ&Rx26D`9CW`)X1);r#M8eaxevrS1LEFPUQvsl2Oz=PjwU9pi7 zQGfvdc878XB7ne*3_wJgYH1!$YesNjH0LRYZN|Or#Yj;<4=(v_eKGpQ`;h^YxWi&; z40Iss@U46uGF4$F&EOY77);#AbK?P9R2f4LPI~#MtUSNHhcA8k>-ee9el`Orm4%N4 z$f-9Y=lN^CTN19*D7<#gtR}VQJVH1ecE?JiFQG;{cf>WKmu-YdlDg{iw!%CV2Tdn= z$s&5SyVSa<@Y8K=L7=^t?7&=p^vsJ|5bUz%KO{J1Dcib&SW`b|AQih)z`6h3A61*` zz#?QFj>@hW&=p-a-E+Ze3KX>OzZe*@{f8b%sviqFjQ^I>7h%01{ovb_Q{q6#x6S!W zuNU<-vfiqVO(i+)lkVmFG849BHqiPh%kMPaNw~=UF+B9qv!>3&uw$v1W*O8745qS2 z$>r!;!rP`Fp#bo`_Q7@=7{Qrmar6K67QCao7&EeiSu`UubTzk9?BzO$Gg*|)s%`|Pk(#!NMcnUBiotYkIM!^ZF|?v z5r*+N3}IIAf(pF5oCZ@8`9QA-y)uVk3e3oSl&Z`7mudSxRc`IT0}GNBl#XvTgO9R7 zdpQ3*vZtQ3_dLxIu$5`(Uz}Y?qdKdhyM;$Wc`BvRB0he#V}(#sz=95tGWDih)&{Rb zXxwS^B01FPrNB?(TNphVxMb6}^i>7l*vw}RJTF~(8@F%W#KR9hgjZgB8}q7dfJf)8 z1_{0>`jo9R>V3i_t5N{G4uG_G9^?v??Ov4{=E1C+qFDy4;pj{cUi9Bz|(=l!3*o zi0(KLoA_fN0}d+GGXQm@YK>FfK+3q9gJ(|H9d-F!a}9l*tDfrHxpWz~UU_ALow~(t z1>^R_i`!aE;e>26Esp7eD2p-auFJ&qQX@kV0b#HABnN~}2?cvFTo9tn9J|Iei}3GI z-zz3*05w_rJA(DsDG{WB48N@Z)}Mt9GA=PbGI`c_212p+?5p?$I6aAbn8oW(zXv!oUN?=3p#42I}#g>OX~Xbq>0orUXvkJ!J(h zPRW6b7|xuV24$zp)PR(8$Ln*mMKNhkuqvwkXH9By&itKInK|Wd-H|O0a9Qv2_i%Qs z%SwXgpdj(m>(lOiSh5UH)Oa_alI%{@d9D(L%yFKTX>jqa?_qOv zya|>vv5FT~#H` z5hS})=UXoj!)_|OMIQF5vHkHB1RPF()3kt2f8)_~d0bEPb*C}xo}Zlld92RfF--}~ zLBKR!uro~?tWQmM@0MUd{Q#Lb{X08#w9iI}l4DXAo)WQ4sHM6!MSR&<)sYRbXNSd) z<^^JeOiJvV5@Abwiay0|Wwir4b>kobE0S=v4P*?Po!8$7mlv}0r&u?rJicU=y(C3*>G znP*P2YUXMC)6~^^v1S71!?KPiBIcb?52s7}Q@QyZfz2B8&RMJVdC2aZ6}WTC23%~x zz?rg`upG}*=0%1^1UVpAsCah>E0{VM30<(jnE}xC!LOO3dHHso4cMKQ>cZ(-9h_1J zGILy!yH}lIlA^Jlx-XAHYM9LQU*FoP9kNm)PjP_fN`24*qI}bAH0ms z)pt;jFj>JHDD@9r^52zD zbA5yr9w(M}iK2>l;*0vPO;#5lc zabB}+@+iAg|JLtzpN8Ea;VsgulDO1OM$e|fb@xpuc<@Gw3bvVTXu{`rduI)17kwFl7bxXnH@G3hhruxxbo% zgUN{;&4IukhIz5z-o+^xxPal*xw1&GWC~V$H5;HSZGrid=fd_OpZFWIbL4)rlvrvkTI5Yiw z^Oq)msB90&*U+dvwDN4^h)eQ$l17)e@CmTo@j zMS7VyoGz$?yU8^{3@L65h%yeT8V1lUtuDt?9eZ={Nd;(=Jn%<$dZ_{l9+hjF`V`<1 zc$Dpi`~-6L&#|+kGT34I5pqq~Mt$W#DI>+e8?1t=g-^Ci#_BZP;BtTu44i6(`_D80 z(%c*C_ZAK>^u~A?0{{*t%swp$nE&Q|SdLLL0^`wGrUxtt*tB&5GMvNe)P>3UpT&CT z+!PqhK|p+#u)?H!}&L zUh{p4g@ROb0+(cw>gD<@j|ktB5D_*KCSffMU4=k#{(sCtF3ZTMWCtH0Q%fA(x`DO9 z!XPd;$82HPsE!=Xac2Ig_s>oXjLlFgt;W8cc^A^3ypCHhzdVI?JK^{fs7D{z;n7bW za|Awu=Ao`?21fp^XR@hX&o_hvvpzyVTGJ&mE>?(6rd-ANIMLeO~EAT#3 zErNwZSCXAGpzukt9K^IcTJ*sgHML5NKE6XUrbZ0hIfCXl6k9R{UQE2N9Ox~&F5AD9 z^)AFjO*&0DUI|Qf^y}9a(1-+S$l1)?pVT)RomULZ^|A;9yNG5i#2)m3Nnq@%zpjmH z56a4>Ktp{-c+|3KkW5A^zOVS1nh`kCa@_Eok{iq8FSpCufVv8Ojwa?&+GgqS8{N`` zZJj%5WShTBa?;)nMH=}sAlXJlc7N2%tm%QA6ibzYn4Zm&XtlC&pKZhwZ5XXUAE*Es z#Npsr>Kb^ilG})g*1j8$`hEtObnRdukOw&e!LrAZvbBi3{m^uXqD)ELggFBSXBKfx z9f+e!IOchDJm6^3yZ`>b`|qbKr~LR$qnF!t9(c=Lu+hFs;)Aq$B&Gd>zFKE*a^((X zPttuR4<3>nr9rJer6hA%zHkZg>4+_oa0eCOGkQ} z4Y~N~lnc2r?|DswINy|=DAn(n()7e+!_u`+raRRZhrkV$2JqTBsOSSHCl>T8*)cZuZr0ie;@5gr~q?mh?IOZ2t(p!tuWGz^37xx1l?{ zA4p6|k$-4+blMlhi5(?uXVA|LmM2oi3NWQmJ2`9K%xg1OK0g^Sjlg!MGCR}vd2#U+ z43xBINg=I>s2LXMEa}FrG(W-yfPNI;I^gw%lOtS>l6H|th3t*MKN};>5IGeYX1<&* z$jZTyEj#sE*GPdtz1O2mW#vvLOW#M>?sz&zzxqXy)~~*wTt;9i${{Inb9u;X+$Fqe zwQK?aU6R?5C7ZQFBP_jD-u<+*&;jXzLwl9w6yVIyvn5qMHY<@5B19^po5kMR`bgrYO@vIYL=!2XZJ2&!}aH1 zoIdaR&3+nPrF9f$^cXnBpE+_Y;)Q$&tKqpOr z?g>Ywot&*sfOk{{<6qNZ_NU1#;mnCP%`K2F3*DQtilm>y&Wq7P(_7RBh7hH88_g|b z6c2VO6RAjO)Z=^_d^9?h`G_HR-~EMx2LR@eKu6Ony0ZMap;#}cUTp+nYvFK|e2>OY zon{#0R5Kn&wh~BssiwcIr;X>ef)o(8aSR;5Z7seah&J= z=W_(kPQHF#7jSU`j|kZlf@f8&&= zI1^-n3JO1lwk=cc=f)G!U6tsd(E24VH0|oBtAL{`om28_+wQHutEL zaFpWU=LoJoxI0i8=cVKjz!8Bi8Hk4(hLcl-O$bs0Sj=xFQnef{YvppY>R4@xYjn;$ z9ml4^68Z!nMZ>AF1`^qUCa$H=ImI6KyzEG<5picjy0~rXizE3YSLw*$cKcfxeOuqy zP&obSnntup30_t>KD-6JbsKSZm$p3uTHjh(MtuwEysr(63i;Z~BOG;s{OQ_e`tj6C zaQy6ZQ=2!iDo++w7^)Z>vSgbn^|1X9&Uw7&OSWAjz7d}ySZ@FDd^PDoe#P8$wn5fA zje64uCD3l04%zQY!4vVpSnX+g#~ekhHjn)TrWu;e(Q-pi1m>eR>rQXJ^;jb+-2T`Wo`eC3>rS86=H3P1hA`FZ zLE>JHzX`OGGj6Q!44u~p=m}WE3s$lMYkKDZCMjJi>l7s?B?}-E`m;W4H&h)hJ*n8+ zSuu1Y(&zvPBdXCz^T>+k%<1J43>l*N6OT>w$+&Zb4H8YW+!GzMy_60 zfHR0UVK*kpBIzk5uQ#t_N7Qko24~>~zqIj#RY*5h#ZQtM0Xfpj;Mg`ytDu zJ`#F`H1dW!VxNW}e!3djE_D)hxt$r5Hom6$>!fPUen2?a(ctXlK6sGeTIKC=S;G{r zOA>dQ{Ua8yrGSN4quqBS!FV2sq(pO!c*FeE?Y|=vY+Qyt&I^#Ndgp6)!g6m7j>%V5 zf>T|xOw-%oY5@UsonR((lz1%M4%eWh)PAj5mJU}L zFqY0f>d#kP*MTKSbPib4qe^|x^XxisdD?4}&+}uNQUj*;~C0RO<4lQb^XpSE} zKmySZMRo>^x&FBW95dcF^-^t~!MLBFBp^(DLNj;*-^L$Sw9s=b`$8g@gu?Ms`%T!9 zf&!y_gG~c?N^^Ezy20_K%hNo4o4O;>ihWRikGAO?JOoHZFfot*?HT&bFqSs-d(Y$W z>gBSSSdvWwyv~IfZr4d`o&K&$_eha zXjfobTGZyo>pyHo^>u@m*~5 z5+EyRq@qN&G$o{fq0!zzZ6get0hnMas%r~kM3v}iW^MomHgs18!^(ym8lQpOW@}Q= z@w4ExD$}Xdws_qOJ7aA2gV=IBT z-+UWq=X!^_E%9i0rk&=|!q@~St(^LLpXJDCX6d>8LtOplcQ6ko<^{(zbL+TZ{R?Lh zJWfHU>!tK6ls>aV<@hpVqbwauUuXBqYlwmbO}~LeG&tSl4qd0sGpS~Mb_Z>Bw-5am z34u9e+|3E7oj!@C4~Xe2Asgci1SHd9eCqoP2y%uADcJCywxB~BO`w{TbO-|n-ytZk zV++=?pEcX+vCN_quhN~iRT5Rpz+bo}U49heo8b}pBj%R%VI)}v>C1k_okqKYZP)S$ zvM390AJR`%MOn1+YbU`LEHP2mDbqaE(ZZ%23A$4>QP&Jwr&BB437Of0fHNw2Ezf!mZ)Nx zE(=;E9k_1vDwbk`-@^v)Sq}((-*PMQ&gkez-1D@HOsM{c|MHJ8i+f&-rKC)znA(uV zzpLgxIhv_A>rR&(jOk4{Dl&LQ1O(_*i@N0Mk#Hbnu1Y3AtMZeRPULGibd5zdzSJg= zfn-&C?QQ!A3yI%WyWxrwm}(MF2Gfu)kTM914#d|0erq@~IDvP@|8UHiAKZ3bqqG0k zn>crLG|kbsZNQaUc3|5=qFoe{Bb60jD7eAyFs1*$|3mCweg~_0L7l-x6&unS(_d93Xw(!s!kqxhcW+ZYMmE9(*~xk*zjCDsDu8r}eT9YHBO!k|c93 zt4)XzP@B#(PjX*t#bie!p@r06>qkt5hEB!wLQv`bBybk`n(e=v3T9vJ0bKx4G&Q=; z1TMwBY?oL>fjtfFO~QQn=YD!rVfZbny0M)})BBI|B#S)~BS^JNYK`$z{pqWY%q8hA zG)+H-&NZxW*fZFzBDrc8(kQO2^_RBGUzrw|=b0zRvN}CY37o-d=UiDEFwF1kX<9($ z#|P%8klVsE$X17%&7pNVDN=r=1u09DP5}VFbA7tavU4k5H%Hi+Pr3b^`r&f2s58Fj zdwHXy`n?%~O`(W6s?qDWdm{2}5aF0IE8{GWwb!X#G|n$2>ukQytL50BQ<L;(h1s7Cr4$h5-g)lIfJW`jbT4R+y2@X|K+AHR;6h^{db;SA!0%VU2Co^Ior} znlPU8T(k3HGX1mr2e|gNZ=pWzA_%U99mfnQuLnAz(UUIdcDqmfV+XUfzEmCh`PP$O zybhzj_hU8qca}SvzEx)ujym_FrR}X29w95&)ylJ8A{=?NgRYlEx5oRn-o`w>#NAGu zWV3C?A|RdAlk`f!BYLat-tNi5Xd z4sHQHL8p+Dj#hKZG6xyfHsyIp_PVuM3B*g+V)UJ9_W5ECZp8n|1(KtCdGCu>ORuI3d7YuM{Iut?BSTcBW%^)sN>?xi)Zu7B?kYIfGb_KdePvrBj4?cR9TOzeH@zUBH+{7(vqKjD zuj#5t*wZ$45CCwnZ=@Oa8o%6eH=PQ)6(_xfSS4=zl5l~i;cA!7{yRM-%Dqhm*?%+` zPmfJW?Q!0k{0R5lbpaR7otjMJ0BTQ_b=7VgX!hk8yNC%e{_!2G=d!4?)BY`b-oJcW zUpu^#HXTsbL2yN>X%n!v^hje;J9vDqY#i4u5I8kOI)@m_w7}tX{h%xWDkqhhnwVcT zl_cPso9(AXnq};X}o9jpx>7u@Vo-o%B`fZDPYIXKK z-Su6%zNqu3s|Cv!uchcwTf;eo8Iy4-XYiJ7@kZK-hc>MMN=0TFiL*vBtB}8%%qyTY znx&=MAWrrmu|S7#AllB2a>vd4j$pNVKFB>TJy=Sa4WCXCfEf77H zj(g;58!qeSP4%PmV5Fvhc*=DQv$7M(^8zd zafGX1d!`N;=K0pqs>^`NJQZLOtS4OZ_D*;i+=v7Z{5N6zjjl;<(*_adK!cD>n9F^% zRqosEd#g`vT}ta|Bw1sYY3sL0q~)W#njK^NCG2tx>l5m<*A=pnLYz0{Av!qf2YOL+KQnP`! zS(b<+N5d3je}Gc5Ep02f|onC?WXBd^6n$`(FekW?O8tJ+|lG z1}35UjLD_p@BH0g#2t6uHD$A=3GL~^XFvBh@X-%HUNQnFR~WLY^vBd6_0wkeYoKm2fVCm{totASs8r< zV|{CUw>{N~2rNcB=s>d3Z~ch&Lyi{h$7nv)=AZ^daOsA*(4*v!;fR#z4dC+nQojO( zJ&?w7G$?&v+f~bKsG1`~I7)l>z5Wq)soJqkQezxgl@SCAj$m{B3Xb2MrUce?oM-;G z{&jloK(7?+#I@4)Fxl;D#JOuXaP6t@OjmZi#N4T|F*E_Av$PMWJMVxHM{lL&8{5|W z&md&);=GjT;L-sjMDJ8-&=>w@i$Kxwn`n_m#gq!}6xZnWY=$dj4iqxxEbq_$M6;=b z7q&(J0y6SIz{)XNB^gklB21zrqP&cnUT-suP>5W2`8Xo%U)&DWaVpEkW03@%=AffD zRr^QWd-vTqbM7oQdTTP2X}WAaSr3Q!*e5;&n?x1lK8d7`I$u1);Cykf>GUrUV2G(& z*C9#Gfiu?uNt()FE4bBv3?G_T9@Fp1DUr4b*b%5n!}&Uzw1-u3Ms@qvSQJn?^qzM-n4Met}RDfOW*nrxel)d^H~$Uj0t-$2>g~`+zScKQINs5ce=t6{y?Y&+R9_Lg0cTz4yW4~S+ZJ#w zzniVuC^K(fVD&?C_KwlS;52@*k3u#OeH3gd%XQ@nA>5h-2kkm*i}B0aGi|n*!s`+w zTz6;b5TV(poM`_-_M_nkh<2N*Ewr&eNO&b#pB&D`16W050_^?p=&&?Dw4>lf>on)_ z!4Z@=kSt1bBPmxU925i(kxJ4l*_cGY)NsprxoE!yG7B)0Exw@&b4U%c!6#x^A;yTd z%xL|{-}%~R`hPx`xLzx}CLx3s#M5d64=f0%Xpi=Yf*UO)(;loV9g-NpqvKjvH$4GF zq=;pGoJrvC%Q<#*_i}yNfwFK}ND(mxK=O3P_TZ<|z^t%2DI~FPqc85~pu!{(euS0| znL=wgH@g<8$}Y%qXC~BEqp<@gZ_Ofn?w^KHc^`!7h8LpPBs}`Ms?{&yFWLE9DoIwL`#?Jmx z9mN|Dg_v%ZEC!fdQv_6V0I-_qIrWoExcbbqn3o=nIs{+G+-n}aG5Phg#KAJOHpcXa zZLnV$<}ZnqY&dqI)#r{x$g&X9aehb8ZGG}j#BIX0CJb^PWWy~|73qdW+!epqY{EvZ zaQlhTsRo`&rYm@YjGfB%5W431lgFZuoxH55AYp@YS(bqqR%w)j zxE~1h(hxxBKF4p+gGtU7nFo5T?qAQj6n)(qx zQurW(B=73yscvmG9RuIF1=nyIkgt0Ui*l3$LbqX~21H8apLr~OtB zj?wNnbfX0A+6p>V`?kgD-WD`ObeElYALVhX+xlboiIBs!_LJ9PJ_uquLA$^ML8lpn znlqv5nuUg;tJ@cpfkA^760IT(Jo*s4=y_u-OPZlUFL4t*N)1rmE>BvXM7Q)r&5o6YyutYiTCRQNo6w_qhsw4)papdq8QbP8acRD42w`;R z&gQ8n`%Mux871S31-IIQ3KP3KcZ6+t--H*|<-UiPI?2Y>`)tBUJt14(hITP%h=AOx z3KmKVYHfYVHuE>fGt)Te;IdP6h6m!g?J3gPg!g|D^k#k*iUdgEjq_YHo54ftfJSsA7xvBc5DDC=4gGnd_EJ`vZwrbWfufOYJ`kqDF*q!g6X;>R`=8Lmy9E2OT ziZlReF4Iz5Wkj{SZy$6$8Hx^FNPgP6zND4f1a+0sv~C#V1YmvG~SA7DM~mZQcaE7i${ zYc?GRe6cvI59?P$>&BC?DZ5+-GYH#>z!%=GaDUo;9FTZ9=|=kOzbvo;I(-k^5M+6U z?^D3#Eem8a-D2^vzJ$|^Y0_joK_uW)uo4|<7_-n(kj^co6!=<>pbl9Gxx>i+=9f2{ z_ya7aL`*+ZV2}y%BX*G(v_y9gR@gRzw<^fkr}M6%>(Yboe&_pmcKS1XtlQz&M_U~~ zb=l~`515V_Np_m5iOB&@T5uAJzg<_X&&KljCHx>W5gq?hKpWTn0HJxC-(jdsogeER zgbCAj5D1{{@Q}&#mwm_QM*(N&FY{?+M^~T+S1}&mn4JF<0E`D^JK=eqaD9!ixiMvq zcr!}_>Y17pQu!o6VwY~K^Q5){ka@Jd3>^GUcU<{z+dPcDOLxuMWqPb`q2Gk+=e7gX zdM9Y32Tw)1!Ko{f-5;1G=gTF^W7~iT4ruj*l?jdukbzVUGb@mfaHa+=R@!+Tsp){y08Qo-=w4Q}ux{$R z{pY^KfSxeLTNV1&i77R_{Md;U+W#w&7A|cJY^w?joWlO+sg+IH!I6AGAe3f3%)Ak* zS}Ev3FwV8L%P@BRaEi>n`On%mXH3DYcss%*BC)qF^n>E7(@2RSu; zI5qt|AB@*d$@RMEgPLYx@w;oCge084rmKcug!Bo+jNYIv`Y6)%rM(v!2(7+pGBVvY ziVOO#$jHh({y3KBupMMv4lS)e@1C^TU^Auq#-nM(e{^&DyN>bT`t;My$`WK>(51s1<+YLojA zFYVsBd|$UFhfx(I_+tuV{p|xDT^LC?n%>E2N3Xa))03UAQa=$+&IMgs71+Y_Xo~e>%!aMYcdjY{3`m0B{^;MMeAYYG zQZz&5x?Jw%{vjEC4wSX-P-eiau3gkt1Buqoys&q?eFKLtzk*XzM&JFlZ2Ew}s9@)iOf=))Gp0qJ~cthomb9c38Mt~TSCruA4FH!b=!r~eP| z$U~3fXMXypvECU%wSMF01xN@rLZHgD$2@4Xll=$D4k6BZuK{JG z+Bh=rfsOkPqKNf-+bhYml`rip!zzJuqJry55S039`pVR_24TQAXZz+v=k*`{5O;m@ zL%3d^_g}Szd9B?=AW-Epum0ItPqU@(T*jrRzBM_Mb#ae#Io|++Kz+a1DL3jeVNQ)2 zpG`l798)x_S^QL1)9;#~&yB!!qz0~823$91aun!;59w3Z3TSE(OnlgnA|O86Hm7EC zu|9z45#qf8wXxB8VGgOueID3-^h2M(FaP?_lsfLa|1SKS|K-o?5%F#(VOI_X#1A8o zwJfqrxt~lgI^1F#HV3}Y$pGrOM4x;1@+FoPi`y}H5kR7Cre(6Jp9jZY3n)0VDp+QU zx8Olx=9tl|<564;SzAC6xY&L-Ib(@G5YNLbP)Dimo|{8d5~~^mr|YfNpyqVnv8VsX z$?@yqHDGf7+^a5-EW&J&=i0@+u6t%hV0~dgtP>-PU7}!)|J2Z z)jM8p*D@g{=+=8Lz~zlKW~>fm!lQ0(H@~-Usr`jkv*{U4N}~m60>CIITiOcaFp}9J zCL6^UTuyO<4^rCAjAX=|7r2p@C2P9aK)>y2t^5j}Fq#iWzVXWGf8>vkQ6X z;&Y@j0ZZ9QyIwZ6Y9Ow`D*ro44`ZZ;zxI_PcQuDX_5o5iBf;dKDRTlfeG^0;0O>b_ z`C(Y$;H|f?dHoIStSW*E?e@6*uQ{113^+Hv-}bBxR07Iy~_8B8eO5t~ZC=bkIv`IIqA0^@WM1 zy*?mAR@t!gI1`@SQ@eG$uG@u&AHBb{H3wP`Kl&hcch>L)vG%V7J^YtzV!ArrP&Zj4 zIM)v(M;D{rxIaZ1U^{K7*JKj3X`;dT&v&!UV4M9j#?<@9wt(D&2OtN8$T(^A8Ewik zLALGfulz$E$*U`~+d{%=jWR;h1Y1#o*dcUwfRKQ)nQ1!{{J4(tr}RH2M~}m+)8DnS z4gg12r>wwqea--kw@UyZZ5jZc1sKWM4Iw-dbPs}~YUfNUrO^QsUUrPB!^v4N3uFs0 z^Zaa#4z>xB0~Jo4^IuN`I_Txo#@Hd}U<9enem6h2`*d&rOmdVDg&DykWS|4M-bjR^ zVT3_6or9<299RXMqVu*@9ds9RYa=-`AU_`0sFF5Plo;)?Y%H}(HcBoJ&V!I`7<8`- ztylo^AYp_ISm_=q&lL~lV6DhH7$1^)r<*197x8PS}NBybUEcdS~T6IQ|HbHWSm5S3k0@G(K?cd6BVN1!|I}E=h?7m*HX;ujm zmDYABwqR4UQ(f|o;l)_q^L4KKFaPpOc=PQ`(@gG&uYCC%*gv?{erq?W72g(6QvI@B z&sYPi-G}XQ=$Xfut0ugU&{fhl`vJmfxjLL$6_>#C=s1~F^%izUU< zWEGT{+126fR9LD#kD{GADu)H#;Y=je84gC=8Rj4&0L+|(m8;kDeOy1+6OJ~1V;-=M zTb=e|I}lPj-i~-V=NbTDY#xYq*84u~?!Y9=etBSEb+@)W{VuFMtjN?6#8{#_N{t|a z`R70v@@82DUsI3iK0(?~J?%8c+HLh4l*h?VR=85| zXa}S>Dh3)_76_hy`!e?Kx`?AfzC8_+Yn?58&KR7#ejAs+@^#c_Y}Yl-Y`p9ElD-OE zb|CBQvB^e~Y15BnFWJJWDe7~wIaM#nD(~FX$aW=~on+~{C2(J^wx>Is7w+g=T`qTt z`n-JNPw2esA981_GaC>z&xq-KS6HuxuT_!szZ*f8g zV`|_9%)2kFP`XcSt1RL^c*yoI3;TECq|2yte_Jd5i)}Xy8^m~?PDy?0B0iB#eb=M% zm|vL!*q@yL6abX8|KXhezgmKUaWkd=rwl;d6JS0pXg*h9{xik}mqfI;HtLU(gRl|x z=#0xw+#>e2IEoDgJu|}r#diT8$7}7SW7H5%+WwgLMne{!f=56OUQSC7Ptqw|^mE~e z8{N_=>9(>)TePvHU!7;!L2Y$Lkj#Dr%X?E#(K^hiCAXEt8Nir(u|$@{t4=H6R~tXX z>S%u&{ELP{CqjiX@Fc1l*jm5*VxrNyWFz|l7JUy1Fc+L7nrz-!qD=`{_EHo)LO_9y zrXbsq7yUrp0|w{ZLW-^aPtl-ZbUc?H9W`dDz89xUIdX@DsRxb?NK z;`qutQ`y}zeIUqZl6dc=zeuQQKuq-4;DqI@ovlzkRK0GKM`wpA81gE*k*Wv{B%&jW zOc{G@)veCB3NmED>hGA*>S}7(-q}9HbwPO)n_8sNJ^gOksav;imD3!@(E@+*_ozxt z!3bZSd&Cd^Eu7rq)nrOtN#&%gfq$2-8tq&g7WSBJI@BvNjaJ(Kgr=gvSv)Me!Zt^G z>P?qFl1IB{!H)G!x6m9E3k9lCB5lQ@u>HD=~6+yI4_%+RQn!}KYyW2pvwZeADHWg$We>96*5d7#^?KWUC6NG+~ z{U`rvpwIQ=gzT3gwcV?njf%2d-?kB;^FeF>>|{>I2!%hRpMt`rn?S}`ltr8H{tB^; z6bwtAS~cF!?iGP^@6a;+uy+ewwZns=w%O7MvAZ_=_PKSlaPtcpEA>5UiVSI7b$!&{ z{yX`T&*?Eb?&@BRA6_4lOS7GmE6b8-Oi^Xom)6I^OP@;7a=y>`^QUnC{rBLZhwh_? z9?SFpwuo;m&-bJ30C*e2@eN4Z1ZZK~Ph_`5O1tuIGVMTisu_fkrq54K4GUBu<{|2!N}r^st!0nuD#N zE0^c{w*8`v%*`Srm6)AzYc={UMn?wC&Fpo3hzxXeIA6MSJ zia-97Kfy}&5YF0U7>nmP5GdDJN4C%;TeAzAs00FxvZN?AtF1R}6Bxa99XFr<0d_w7 zQ`jHIW|{T=*>Z>VfHOC5;_?^2QXycNAEDYLD%=SmvKr}Sq)EOMaw9pbZn5XkRZH*l z@3}lY*vX@4mM@mxzGRFk-NFvfNihrx3lF*sGipX=4C0Pi+b2M*}aCnnpj76>h}vMc0x0W zExKTR9FzZ%DPwo$>>1p9&z*SWk$dsL{rBR`>C-g`kmd+V05ESRQMUX&EUWx=a{6=H zzdQ|aRGq($`{nntVbCz&YXN}0Yc_pjm}&yA>No)35>=w3&S<)0;N85MQc+cj!7!01 zJATmUq7uapG<3Fe&S4$3TmzC?zdD_99S%I~(5<{Vqi_HmJOsVmo>P(-hy@@f0B|0F z=)j_WG4P>vr9%MGBl2Dv*^UmqM{V#q4o6DE59!}NO)G7DgSQe!l#HILTbU4lKn*Ar7UDtvWLX0gcDc{2>keByT%-h5ddN&sYs(e z;SsN<5u&o4N%Yx)+b{!y?52W`{_M0g2T9e9~gN-&6{jt^C zf-36V;#IfJg&V8*z=Q0_X`m@AAyg33jeLs-#{7G-1PRQlSvY`04ZkNu?!2ok$hhOY zSIHQXWE%8=?gh~t!Jd#FhObKODYp(>S;%2PTkkOidsA?}duk8&+;d?X`QM9&9=Hz| zE}WYJqE(@FT?Nvd_sooW{{Lvd1_1Mu07uu#R>0$&0hm&nI%fe&YO{|1D@c*^r{{C( zbC&IkAV1%VaGDBmpk0~h%03e7$dNV2!5&Z{yL7Z-aeuDA3lbVVSODyZ7$qlYEZ=-dp?HtlZ#ihlyolfY z`EY834KF|_J87F9Q0=-_3xgdA1F8X{27}5EgBv0nT|zbpL96w(8>hiW1oiqF|KmUV zqXu?60C_#rN$thc0wfQP9Mt~5l>PUUWJ!)chygEBXO`BotE*bfOpn~1-Tl&x_XBA( z9{=JqsMtZpI_h$o!yZWxf}4Lr8plW_1c2Pc9rYg^05rxF z%SU|(ylTG}D6g|XvLbfM5Nt3_;mYpbRSWUsZ2oiC`*5o5&qd5mcO zgJa1Qp7t-rf4IC+;A4-40ha@QRbKXWYMU&|=Sj)=S|9cfJ@UR7NOn1}TENhbrdE4Q zj13s$QaCRH<&MzjrZ62$ZVv?#yZ%6xt6~4**W{Cblb#+qdYI0fIYJlDpQa;+ z57O$&s@0bV@O3(1v0slz+J9G00OaNXNZty#*VX~#!+&x*dPjNjUk>w^H3YWWkm_&Z zPR1n|ZUk`#;2;C71>^w{#2ty zqqcZ^tRiSx=UGdD$tHp-Btc`e7mI?p(z&4_z^&fl@cjNA+hTyLc-{J-n7P{J?QRZm z8On%aAm+|p0-@4oc)hAH?YW5U)QI5Xv?(6D?Pwq=eT%A-psKtwtkBCZzNV8OU!mQD z2`=95)3C8d8+RYm)BpVMb?%?Jv@bhQ<(3dZFs@+8tg0HLfdYsY!}I{Sz!p-BVCWf+ z)e$-*&GB(iW)lZA_Ra+XW{(|kMPUhTaw!)B0LKD1RG|N$W-52VxF~-JV?|^YO2;1@ z`9?$OM=>)OXoQdJsrG?D8G6SI zS^Eo}16$vO8b#}igEV*IBJYFDwXb~?q8|tW<)k+Snmo4WK}(q98;%Z6p>3dYAe7p` z+3G57?`+Y@lZWWihiByNQsKtzMv)QDL}27pq4GaN1q?x_LA!$O5+e`gFR)nh`DG5B zMBr&b?*zjd?dqJiUcaVi|Ihz74ZA5~IIOl41>*p~NLT%8Lv1q@ z#NHlJ^XsxCMh{sSUHLO|46LoFXVz;iKS!e+GKyUU8Zq6_Cv(Z<$3YqSGs=V7X9?Ywdw>c zcHhwA-P^k2zeE9EB;%i*fqDs0dXVbN6N1^R!f5~%bO#Q^DIf7@OPYwX*sX%x zjnoXrvC7miegdOrTqPX&XF2oZP8(Mn=#KleF_u+ee7}6?yPzW+gg`opK}R4ci8%>8 za%70yD7vv#M_^%P1mSDaht9$>Wx;6@1QniQ%7{n7L;}UFoP`=~ILrvrB4gYsYsQFt zbi{4>nfAXznl9)eVv`z%TD-O3Ap?!*q;N+S18rvHCAQri76e=h#tP?uNhC4|>V}M@ z0AbM$upOF&)reX-{`$yEb_O+Uu%D2}42iX= zai2T>lIwo}WS<`ZI$F66OKe1syd@;a+wSGCA-$L#fHcY$bAap3rZs#`LH5gUn1k-a z)dbk6qd%OQuxHjlj<5&cHNrL#g6(Gh&9uc2i%0})S0g!m>H>KNMcL5nU{bvg5qR3b6@xrbp z-`v_xq5lJP_H14CfB3)-mF>P7olDtv-@T*jHm)#a}&^J#$~LGfp3TiT(6O3Xj81->lO)+<>2I$ zMk6?MhPM%h&?=UT8<^7wC?TN%ECLo%2}ub@UlI^48oOE?lcJoB<^)^S(lup>Tx_x| zAiqYV07ckFG#(y(S(wp4byR57Q6>i<*Y-*KJ18inv_lFVzWRUtclvc>M)K?#&A9F} zx9NOh8yIlwZ*#Z+#Ml_ypv-W?8UeCF!O&u#xNr)MqEm#r20R1(58Vbjh*5-KAe==M zaET}yzK)bYf8%99_WXa?&lm?cE~gp-reIw`9tSIqqWW9IoP6zzk%e~669HaRlf%ej z%tY?UM<>ID(CZE}P=-T+H2bbPvFP-ln@)gck`51Ov=gb<+lHO3AMjXghb921-zfFVZ! zXyFQObACeo=-1~ffYSTdcM+FLQe|{MjAf|ATBfxh+~I=f@f%Ngrb+-h{pWfYa#XTd?craK7SSq z3YEMfwv#@?SUx$!gkM0$GacPKehi@YbYBVi4~>`#m` z1yE39-1su6!3+E+iryEwyvkHtx^^Ma1mH)pZ=x|WYKg!(wYmu$hjyrpJ&(Ct8+CLC zO(HKcbg8w`r`v$~07@#~^}9M}>EGAC61}OB0pAJWGzlRwUYN5^o#jEJ$d#s{qRFF{FRN>t^ybYQ`u4j!^v#Xu^lCSkzDA_s42K325MABRC}#?`S|3QP zz7I+&{Yb)vEII(#L4*!==XG{cV`XZ6i;?3YKzmR|G;obBH_rVhikKUAF}fCu=v?&q zst^wbpq973tZ5c5)Ewd2zS`nIsWPLDoN}JLWfbV(iMK*D*>nq+HyO--^eXBB_anCg z46m^sae&qBN<1O~3{{U~06b(PA*iQ!&ICii&?v@8RI3d5Y@BZY_$q&iAWKb0gS-lj zx{TQt+ZzT#U3ITfO}rR}QeO!_7M3@Z5(FvdRgmev+Y1h~_L8^}Z1fAH15&+tOk|@^ zXwL$jI*#HJrYlMNru$9sUF*P7m||v-xgv=?ngmtNZL~LB?AuITbiw3pF=~gC0u+zh zA;#a*$3zx3whB~`TYlp+K?GBf9y{5E9B>IMH5tP17Vb8E!3F^~5>8LybArR4B=FUV zXOk(k1JSXn@|un4kwZK5umAEHy?phG{{H!Q^lmpFci&E*HMV#oIu-32>JGEDgIzXz zn`4cl2qKJ%Vls~CS0nMmY@nTkJ9PZmAv$yR7@aFO}cvZ zI=y-Qw&qO{f>WoC)5pp9UpRMxX0usy0?O+D8u~90fO6#TK8ZO2GBSQ;USA^N{%%ph zz6r7#B-U_oD)+z^(|`N(N&3xiFHpX7JkM_&IkHZN4z8up#dq}e_1CnYFE$m0qdxqu z;c;X*N3a#g&_yuzE=KOH4dI;|Q3^(WJReV;b5Rv2%xOZ;qY>9~-Kb#uK*0k%O@Ex$ zMJqGr!TIdS2cD$g`z+S4^$g6^M}n*@_+I-V?)cEOZfw}gZXT?HqIO{P`WvXWw9=uZ z@lpVQ)nI9wj&g0Kjea_StbghPzPi?gokjv+Kv2e7+Sd@tYCw%TrOzvm;Z#iOoK@>S zfJCrrT4t12H$-R<`v_JvP74P(X-k0%?lJlC(5+7GQ}&Kv8q2n|fgSjfT{yZ|9CrEz zWD=fZyTNklC~#q?T!M}h>K?v9gDe!A1USS!?qPeqJp3CBwdz0i3Fw(Xlt7HfT?@E5 zf{m61L`6{^48wyGdfTu}(RBtBhKoU0rH3SL@7wdC$-A)gdkka1bpwwmr_ftXHd{`C zeksRUx2Tn%Opwz{br73uDE<3?`%@Y{pD(}PynRETfAIq`F<`Ps^rRzP1bPMRjyrf{ z?NDru`VTEK;o!zV23b-WSTwo^+SuBn<0lT&=`+XZ#L2^S=)eJ5nYr=LrM`Umg09`T zMc011PQU*8!stGF>_{5Z*K{0kA{m3(c-^*!3 zgBgv#1bVbjmeJm~3#T+<+bb}M5*-|Y{Jk9*%Mc#dWuRt+oB?5^1uQCumo$VF1TyNw z?c(2&;syYEKDq%0bC}2PM{TB<9a`mdx)q8+>2+&f034d&rAz<-jX}1jN4w7!MjE?2 zdF&9`47{GesfGzgCu*sdMI?;l;2f58<>w;soPz#SR}Q`hJqCP;0aG@EQU`cqbh<%o z3}ZJ~()C#Y)aK+1w4FT}mPq}v*rtu0{tLb%a8jEgEq|Finkg84tCM5jTg*qu=aDrZ zEP=9VvsRvNxkCaqjpHJLcz4*K3*Zd1OW_T^8RQHMTm&!EGu_Gw!Z_iaj%7ym-1XmS zk5eHK33AKiv=G~Lpeoj}Zpa!J`O8)oJ#zu{Ta} zc8;Dz?D2mU!z<0}DfEB%@PTCbkI)Af&(NVm+4$G%x+_hKB^PM$=+V3g9i^(niu7IO{#x3m8R&;MUon^lLoon?*NZpc=T%1FT6 zIOHq~T3Zo1fBGP;tZkJ=iNm68Hyn~9us5S)M|M)AV3wQ!zwIb2{^Oo;XzILPwXx=i zG0LlthSV6>XZ>`6zwh(LG#rJ%s6r~u61i8df6W<~0MgM%Mo-4slq0|uiLfy|b)oXy%nh0z%zQ`Dk zoF`(&Ip|yOm`acqLQa~oU?Ml{0J0M@!ytC!=_s1)OQ%`+5CJ(165tsH-S*KaMzP20 z#-J-T1!^1qEvbgsUpy*Rpk3bA-pxn}ldgfHZm@*sD#=Jb8by(~NU@%+U}bw-k@o0R zQlJCVdl4LJLVZI=nZR-OP`&E^!u7awXq5xQ;DV|)Yj1y#{{R2K&*@+PZ9#9}?I)vo zvl;UNWK#8={iH{rMIEEiUm&9c4p4;c04Z{A*8E&I*P4EcI>UA1WtO~^1IcioIB|&1 zo;^t?PaLC-^>sqqGN13!gNKjk>#x71$B&;TdtM_4t81%i)PKH={*NC&(dtjee_jvw zt5_m>Z18Sl=z;`q(bK)M26(Q3K?F)7SW(X^Jf23kj^)3z6;9!Zjg(~t*pbuEYouT{ zE6-6llzrw2D~TY$Y@JQyrl7vi70X7Ec1RF>sKY?By_IoTwJ)pxm|hr&f#NeLjWG40 zT5UMehvm7)kNoQ)s{c#jcLbCkva!6W-(6YMz;m%^=YlseYcfNsP^2Ss@sWioHjUcR zI~b$UbLn26TA)x0jLky-*E)Sm9R(oq4C8*qBxG_nJu1=kF#`uMwfuzr-__r&6a%=E zI_L63BmIrz7KWdc7c!7LF zS%PGcHA;^~AXtDNH)y@Chrt2`*M)4PNMJyahz5tDrv%yrTp8JA9`~Eq2>=e>KvXD# zPD)Hqp2(}$Zxd4G)S1Ayv}hLv4Xd*h*4Rt`%}IS=oU`O06jW|IWLWO3p(8zD!(4%8 zOeh%JUReCR0Dn$l1cA@~(WiGLf;I||(!~fvuN7brZ3M%?p5UUp@wCC1U>_JPF?OMB z=~Il~+32c+BXx3G-=J}_up_itJ$}163sBL1lLLs-V57lI14eY&Edxd>Y&6RN9>(q= zfTNB)!XZ+OJZ#qlYfBJ(0N9LR;1_bg8z4rb%U&r%<&MX-qRKaMpa)%0XH7>bHX8QM z4EpAyA~BNDfS?Ho64JHNKhm0@_2}L7)uHhbeUt^$S9Vk2ZR2L-soh>aqQ=^0;rWsn z92J#aqdg9Gf-dPIG&96#qR6FFr%MC=;kP(RfV-Tc_V-Z*4!CT6FECMJ{X{P0$P+Qr zBY}_)dcb-mIxoP>)|wbH$9kMsU_ryDbxFuef-=C}V2+7K`b8!$N}pC=jbHx0LT>yQ z&930Zb&jzr>#Ux#xGXGimkZOV&E~+hvh{ExYnnOyM7roc=UHFhq~mG+{>14+bS{nl z52Y#cS#k=bl)Fgdto=0a|B8OPdW~*eze%sNEhQ?>*Wn|F>GI`E^x+2|(8lH#)p`Hj z);r?;Ru+H{sVqGfwt6Md<+SKXh{nJLd@*n!ghIAI zYM2I~X(rQqRW^BAb`M~bb9{Xb(;>Sk10kIi;<6&TclcG1cLBD7Q zFN14@!&FIp8o-a&Wg?)|dg|Ci^#8lBra2k6qJi*)IOi*)$#;adA*k8E+N$$4&b zU2y;M#Y?(z`~8zW{9s(2`nB07Q5G9Ul|Fx_dwqLG6V#xeuv z3WY|`7!%bfI1zR+$`X)><#bQF{moISBV8z9jyEQ1qdN3`UV;%85K&)tgC+rk)A+hT zaMak40F4m$G@dA3U<(W+nZusuKJ*vJk_g0Ik2dV^_QwT)O(~Tw9r@{zy+{Men9VJX z@fqo5I6bcG^YF+FL(?Zj1x*i5Yk?}9I>EHqbS6Sa*&L|yOhDe<0_cJ}L7?SmlyaST z5*!l%wIi{Sr8L@Uok1^=-hkFL;+M9A8gwd9mj_~UY&KK-r>BjHd``X7HIBS1^y}qI zoD`yWlwfORNMXm|G=-M({=u3x)J4<9}@ zoLgVtpoeUqIi_3o+CRRfFOSg%-lJm&i9Y+}NSg0BT)^(pqZjnWcaP}7FL{T;D&-{$ z%5rHE&InTzbt4TlNr&Q49NqUR`{{>RYX2Fb9N|cM`I-R?+4o!nCGUQhX_F#&nAg)q zrwQIH!6kE)XquK~0E)ap8`X0Iv*9ztVKcJh(a~s*kHnPN@`?k^q%jDzPxOTVj9E5u za0P%sfNof%MYR05KEa5N2^%nAc%J&FeTkP%}>^TBALW7ktru0@~U2D8sN4;=Urr;PAP=8a91nH0TaPMMdEWTK#(g$ zVU&!{e(&HC#q?OD_%0o6RF5fBALUK24FZmgMPos~g@{ILwmKaP(+}k}Qy7I{%i1MB zxo@_%Hq5(8+b}#fTU&k>gh~t|uWxz@^PgDW=Qx;atLOW~T#e3yZOT!WJ zG>LufmC{Nh8}t8JfR7l_jVLGN2=z)M0ToZAGe8zIndp1xwND!ug3wt1U8ef7M#d>P z6b#R>#YATG5pg?V?OJZ-;c28~ZASS8Su@%r<+;A0!yv3fM*83B7U~;5f^C-Lo?k9I z_{^M*3H4Xo5ulIy2g+CP8UQgdH(WvQ0dV9{XE6j6evfHr&Gpzti zM^;w;R__m}hYRVP%TQeeyIGAR{-LNuBFO=Ek^t)@o9Cn+PSuMV+))@wu=6-71dY-$ zC?^mZfhUyH*GUr&fI!~9ol_s7F-=Ze9aSg|OtJG6ka5(~PSuhw%-rh2^#@jcOQ#Ci z8--p;(V&-J5$RJSd02t{8B4F0*~w2=M9^*qM@M`CmN@n<8^A~U5L0PNnlN3M2`57; zXtb~Ih|>fbzPDzmaU!0mN_rBh^0qTJFw*K>4kb(bXsI{``umR?uBv$qS)3Lk?>~_x z2Kjx}Xd3GabW*TSR1ZN%o6MrFVuZkRjjbAnxBEF`nt&D+Po+hjlitB5>iZ7L7*m2T zJLd;S*3^~AK?jRn0iMO=j%_0!!bEf|iz9~%8fa@0bkdz^qLUf^^?IfxfjJgq&RChh z8C<8J8tZexHAj{5evoMIw7uL~Sjw!zk{9^pJ^sf}9HfgEPNyk=L&+eoS{d{CKD~UE z=jv~!>GE6j>eZXN_&w3Lb6_Wp{L{Su#Shwk|6Kf>Mv)79%Kig3Sd zjm)1DCy$kFgJ;g1EoTj^j2K0|*NaLoQ34qk+6-o4rr)6qkMc+; z+ScRLAHlo{I5b9^XKeYrHE8g0jZFDhd>STbH8VDX%vg8y_j*)Aqi$@_0SfDoxJ9kH z;y75FDDjMK1iDGvhtL6r-HdNAc~wtpS{{p$h#fObfd(FZkGdj&xnPV{hnYqg!T3dV z4Mvxsx4_y)*p5tq*P&p6LW&qOd6ZO%BC@UEioMFI3D4N{n1D9sMo)X}#>03MoiA@w zoTd>J0SafzbmCU~iOKM$ehW@k{^%@@) zs6GXsIFc<&gg+IBKtT=kQO804j8`hd-mzmq0E6HmRHuyy_{l-ct@i@1Rc-*E#Q6c4 z@B}zg@b72}iUa*>bCzzs9FtqU$Xf+pG4La3CkNWC-KN8N@AN7iJ#>`TR#)ip&rfKt z94uzmsiq4+@0?%+bpgH*bOw+0%77mDsm9WuX`RkLdzY)k(R1HtM4`+8C@rN?1^PeI zLmulMh5mQ?T^C||xx=L39B_>K#8$Xyptx83bEMNhtU{tR3I$r!L1;=wA@T)6=8ika zVb~f1ZJp46r=Ek1TKXOU1d5Pm;6)5_4O>x z`=2^}nl69%0i8L0l2%t!#30+q`M%p%YC9Zqd8rM*{`#DL`0+=&b?Z(lx1Jl2&*Zs$ z<-=6YhshB*)JWg2m|#wTHVFWrwz*SKae?+eV>_3>7e-x$8j4~U;41VBS77bGp#}vP z9S&Achk~A2Uuc&g2pTMC4St|e>EK}qdHZj*oVcB9f*nLbC~!nUp*{xCKCt)?dchORzqkJiy1 z8jXyJY4YRg#HuAUU|nAsDIAFr@wR!RyANXyB69$^Pd0uY9Hv%20wCG9Ca+iz#~2QQ z;ndzhXQyJ@Dt-2w&*-oJ_G!80^ZK<1^uPQs|Ct1Svj zcMY-viNfwBJ*UI_V}Z^JQ=rNvp+%U>>ng({m@3A06f5J@jt-jUt@c_#Ug3W@h5k<^ zm#<&YwQD!&#`PO%3gLCBVI?^Y7gO}$N^$^>9X-+L+%E^Zsa?!%2u^^{ zm8(~Zu*eNu0UOCZ#>PWnvOaHsKtyq5=zhJWgJIQz9DfnVgM^{X7>lR3QSSuLxZc&u?!nTii2r=KIL2p)FUH$)KN3=5gIup z(V)wyd=va&`MUZ#y4>sVI(o;W05Hfj0ECu5lj5kJSw4L5}Bt#g&LCr8(B>|qY8#Oc{PGB>}(&}S3;EflPQAt6D zYF*F*X6tydlT*oXJSfWqez-1D;0O1KDc<14(x1K{FFUtx3+62w(a$sS9I(4 z-Ll>9#jkY=ArEfPBu7{xlx2*6gSe~rM(Oz3=K9s;?o;GoJqP-i1Tp}q0#d!yxw z2GX&u1F1fnms@d2+Y3=4>Ug6>XeRFUuqU*AF=xaLkB{nkLZ8V1jDWVj{p;(iX*7}a zb?!@MS61t#B|burH`hgXh27|hhi=PUrh+s%sH@As6TM)wwSy&>oz&j`8LkNG}&&kb%8S&_WZ;xUE1wMwb=Hd=?3l``*t^vD4^cm4#O%2)hu<}H6S>)SVPUMJ&!HI3MB*AaVb zQ=a#~nCAU2r_ul6!$+HZ>^EI$GMuNl8b5Z^6vB-gx9P^sTlDPb=jOm1J$9^I6m