From 43a8547990640d14075776a44df764a50ba8b7ab Mon Sep 17 00:00:00 2001 From: Crois0509 Date: Fri, 6 Dec 2024 18:14:18 +0900 Subject: [PATCH 01/16] Update README.md --- README.md | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/README.md b/README.md index 9830bf8..95ae3a0 100644 --- a/README.md +++ b/README.md @@ -1 +1,112 @@ # PokemonPhoneBook + +**목표**: Xcode에서 UIKit 프레임워크를 이용해서 스토리보드 혹은 코드베이스로 포켓몬 전화번호부를 만듭니다. + +## 📝 협업 규칙 + +### Pull Request 작성 규칙 +1. **형식**: `[레벨] 작업 내용 - 팀원 이름` + - 예: `[Lv 1] 필수기능 구현 - sonny` + +2. **작업 세부 사항**: 구현한 주요 기능과 로직에 대한 요약을 작성합니다. + +3. **Github 커밋 컨벤션 가이드 (이모지 버전)** + + - 기본 커밋 타입 + - ✨ `feat` : 새로운 기능 추가 + - 🐝 `fix` : 버그 수정 + - 📝 `docs` : 문서 수정 + - 💄 `style` : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우 + - ♻️ `refactor` : 코드 리팩토링 + - ✅ `test` : 테스트 코드, 리팩토링 테스트 코드 추가 + - 🎨 `chore` : 빌드 업무 수정, 패키지 매니저 수정 + + - 자주 사용되는 추가 타입 + - 🚀 `deploy` : 배포 + - ⚡️ `perf` : 성능 개선 + - 🔧 `config` : 설정 파일 수정 + - 📦 `build` : 빌드 관련 수정 + - 🔀 `merge` : 합병 + - ⏪️ `revert` : 되돌리기 + +### 레포지토리 설정 및 브랜치 관리 +1. **Fork로 가져오기**: 각 팀원은 레포지토리를 Fork하여 자신의 개인 레포지토리로 가져옵니다. +2. **브랜치 생성**: Fork한 개인 레포지토리에서 각자의 이름을 딴 브랜치를 생성합니다. +3. **Pull Request**: 각자의 브랜치에서 Pull Request를 생성해 코드 리뷰를 요청합니다. 모든 팀원이 Pull Request에 코멘트를 추가하여 피드백을 제공합니다. +4. **수정 및 Merge**: 피드백을 반영하여 수정한 후, 팀원들의 동의를 얻어 merge를 진행합니다. + +-> 풀 리퀘스트를 한 후 Merge하지 않은채 커밋-푸시를 하면 기존 풀 리퀘스트에 들어가기 때문에 그럴 경우 새로운 브랜치를 만듭니다. + +## 🌟 필수 구현 기능 (Levels 1-5) + +- **Level 1**: `UILabel`, `UITableView`, `UIButton` 등을 이용해 테이블 뷰 만들기 +- **Level 2**: `UIViewController`를 새로 추가하여 연락처 추가 화면을 구현하기(파일 이름: PhoneBookViewController.swift) +- **Level 3**: 상단 네비게이션 바 영역을 구현하기 (제목, 적용 버튼 등) +- **Level 4**: API를 연결하여 버튼을 눌렀을 때 랜덤한 이미지가 생성되도록 구현하기 +- **Level 5**: 적용 버튼을 누르면 연락처 데이터(이름/전화번호/프로필 이미지)를 디스크에 실제 저장하도록 구현하기 + +## 💪 도전 구현 기능 (Levels 6-8) + +- **Level 6**: 연락처를 추가한 후 메인화면의 연락처가 항상 이름 순으로 정렬되도록 구현하기 +- **Level 7**: 테이블뷰의 셀을 클릭했을 때 `PhoneBookViewController` 페이지로 이동되도록 구현하기 +- **Level 8**: 테이블뷰의 셀을 클릭해서 화면을 이동했을 때, 연락처 편집 페이지에서 실제로 기기 디스크 데이터에 Update가 일어나도록 구현하기 + +## 🔥 Challenge - 디테일 키우기 + +Level 1 ~ 8 까지 구현하고도 여유가 되시는 분들은 심화과정을 고민해보기 + +- 포켓몬의 덩치가 클 때, 이미지 영역을 벗어나는 경우가 있습니다. 이 때, 원 밖을 벗어나지 않도록 구현해 봅시다!! +- 연락처를 매우 많이 추가했을 경우(예: 20개 이상) 테이블 뷰 스크롤을 빠르게 내리면 이미지가 겹쳐 보이거나 텍스트가 제대로 노출되지 않는 문제가 있을 수 있습니다. + - 이 문제는 `prepareForReuse`의 개념을 사용하면 해결할 수 있습니다 + - 구현은 못하더라도 개념 공부를 추천드립니다. +- 어떻게 구현하냐에 따라 메인화면의 우상단의 `추가` 버튼이 잘 클릭되지 않는 함정에 빠질 수 있습니다. 이걸 해결해 주세요! +- 연락처 앱에는 또 어떤 예외 사항이 있을지 스스로 고민해보며 자신만의 챌린지를 만들어 주세요!! + +## 📜 구현 가이드 + +- 개발 프로세스 가이드 + - **`UIKit` 화면 구성 및 화면 전환** + - 화면구성: `UITableView`, `UILabel`, `UITextView`, `UIButton` 활용 + - 화면전환: `친구 목록 페이지` → `연락처 추가 페이지`로 이동 + + - **`URLSession` / `Alamofire` 복습** + - 네트워크 통신을 이용해서 서버에서 랜덤 포켓몬 이미지를 불러옵니다. + - 두 가지 방법으로 모두 개발해보면 좋은 연습이 됩니다. + - 포켓몬 API: [포켓몬 API 링크](https://pokeapi.co/) + + - **`ViewController 생명주기` 개념** + - 친구 목록 페이지에 진입할때마다 목록이 `이름순으로 정렬`되도록 합니다. + + - **`CoreData` / `UserDefaults` 활용** + - 연락처 데이터를 `기기 디스크에 저장`합니다. + - 두 가지 방법으로 모두 개발해보면 좋은 연습이 됩니다. + +- **포켓몬 JSON Response 형태** +```swift + // JSON Response 형태 + { + "id": 25, + "name": "pikachu", + "height": 4, + "weight": 60, + "sprites": { + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/25.png" + } + } +``` + +--- + +## 🎯 목표 + +- **기한**: 12월 12일 (목) 낮 12시까지 제출 +- **제출물**: + - 개인과제 결과물 제출 (GitHub 링크) + - 트러블슈팅 TIL + - 과제를 소개하는 README + +## 🔗 과제 링크 + +- [Ch 3. 앱개발 숙련 주차 과제]([https://developer.apple.com/swift/](https://teamsparta.notion.site/Ch-3-1522dc3ef5148059b6c7f310f7b15966)) + +--- From 028f17795f9c46a8160261b789774223a0b4f24f Mon Sep 17 00:00:00 2001 From: HwangSeokBeom Date: Fri, 6 Dec 2024 19:51:36 +0900 Subject: [PATCH 02/16] =?UTF-8?q?=E2=9C=A8=20feat=20:=20=EC=B4=88=EA=B8=B0?= =?UTF-8?q?=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PokemonPhoneBook.xcodeproj/project.pbxproj | 572 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 30985 bytes .../xcschemes/xcschememanagement.plist | 14 + PokemonPhoneBook/AppDelegate.swift | 81 +++ .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 35 ++ .../Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 + PokemonPhoneBook/Info.plist | 23 + .../.xccurrentversion | 8 + .../PokemonPhoneBook.xcdatamodel/contents | 4 + PokemonPhoneBook/SceneDelegate.swift | 56 ++ PokemonPhoneBook/ViewController.swift | 19 + .../PokemonPhoneBookTests.swift | 36 ++ .../PokemonPhoneBookUITests.swift | 43 ++ .../PokemonPhoneBookUITestsLaunchTests.swift | 33 + 17 files changed, 973 insertions(+) create mode 100644 PokemonPhoneBook.xcodeproj/project.pbxproj create mode 100644 PokemonPhoneBook.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 PokemonPhoneBook.xcodeproj/project.xcworkspace/xcuserdata/naeilbaeumkaempeu.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 PokemonPhoneBook.xcodeproj/xcuserdata/naeilbaeumkaempeu.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 PokemonPhoneBook/AppDelegate.swift create mode 100644 PokemonPhoneBook/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 PokemonPhoneBook/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 PokemonPhoneBook/Assets.xcassets/Contents.json create mode 100644 PokemonPhoneBook/Base.lproj/LaunchScreen.storyboard create mode 100644 PokemonPhoneBook/Info.plist create mode 100644 PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/.xccurrentversion create mode 100644 PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents create mode 100644 PokemonPhoneBook/SceneDelegate.swift create mode 100644 PokemonPhoneBook/ViewController.swift create mode 100644 PokemonPhoneBookTests/PokemonPhoneBookTests.swift create mode 100644 PokemonPhoneBookUITests/PokemonPhoneBookUITests.swift create mode 100644 PokemonPhoneBookUITests/PokemonPhoneBookUITestsLaunchTests.swift diff --git a/PokemonPhoneBook.xcodeproj/project.pbxproj b/PokemonPhoneBook.xcodeproj/project.pbxproj new file mode 100644 index 0000000..875e899 --- /dev/null +++ b/PokemonPhoneBook.xcodeproj/project.pbxproj @@ -0,0 +1,572 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXContainerItemProxy section */ + 99F6F1E32D030AD7002E7842 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 99F6F1C12D030AD6002E7842 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 99F6F1C82D030AD6002E7842; + remoteInfo = PokemonPhoneBook; + }; + 99F6F1ED2D030AD7002E7842 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 99F6F1C12D030AD6002E7842 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 99F6F1C82D030AD6002E7842; + remoteInfo = PokemonPhoneBook; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 99F6F1C92D030AD6002E7842 /* PokemonPhoneBook.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PokemonPhoneBook.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 99F6F1E22D030AD7002E7842 /* PokemonPhoneBookTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PokemonPhoneBookTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 99F6F1EC2D030AD7002E7842 /* PokemonPhoneBookUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PokemonPhoneBookUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ + 99F6F1F42D030AD7002E7842 /* Exceptions for "PokemonPhoneBook" folder in "PokemonPhoneBook" target */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Info.plist, + ); + target = 99F6F1C82D030AD6002E7842 /* PokemonPhoneBook */; + }; +/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ + +/* Begin PBXFileSystemSynchronizedRootGroup section */ + 99F6F1CB2D030AD6002E7842 /* PokemonPhoneBook */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + 99F6F1F42D030AD7002E7842 /* Exceptions for "PokemonPhoneBook" folder in "PokemonPhoneBook" target */, + ); + path = PokemonPhoneBook; + sourceTree = ""; + }; + 99F6F1E52D030AD7002E7842 /* PokemonPhoneBookTests */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = PokemonPhoneBookTests; + sourceTree = ""; + }; + 99F6F1EF2D030AD7002E7842 /* PokemonPhoneBookUITests */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = PokemonPhoneBookUITests; + sourceTree = ""; + }; +/* End PBXFileSystemSynchronizedRootGroup section */ + +/* Begin PBXFrameworksBuildPhase section */ + 99F6F1C62D030AD6002E7842 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 99F6F1DF2D030AD7002E7842 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 99F6F1E92D030AD7002E7842 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 99F6F1C02D030AD6002E7842 = { + isa = PBXGroup; + children = ( + 99F6F1CB2D030AD6002E7842 /* PokemonPhoneBook */, + 99F6F1E52D030AD7002E7842 /* PokemonPhoneBookTests */, + 99F6F1EF2D030AD7002E7842 /* PokemonPhoneBookUITests */, + 99F6F1CA2D030AD6002E7842 /* Products */, + ); + sourceTree = ""; + }; + 99F6F1CA2D030AD6002E7842 /* Products */ = { + isa = PBXGroup; + children = ( + 99F6F1C92D030AD6002E7842 /* PokemonPhoneBook.app */, + 99F6F1E22D030AD7002E7842 /* PokemonPhoneBookTests.xctest */, + 99F6F1EC2D030AD7002E7842 /* PokemonPhoneBookUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 99F6F1C82D030AD6002E7842 /* PokemonPhoneBook */ = { + isa = PBXNativeTarget; + buildConfigurationList = 99F6F1F52D030AD7002E7842 /* Build configuration list for PBXNativeTarget "PokemonPhoneBook" */; + buildPhases = ( + 99F6F1C52D030AD6002E7842 /* Sources */, + 99F6F1C62D030AD6002E7842 /* Frameworks */, + 99F6F1C72D030AD6002E7842 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + 99F6F1CB2D030AD6002E7842 /* PokemonPhoneBook */, + ); + name = PokemonPhoneBook; + packageProductDependencies = ( + ); + productName = PokemonPhoneBook; + productReference = 99F6F1C92D030AD6002E7842 /* PokemonPhoneBook.app */; + productType = "com.apple.product-type.application"; + }; + 99F6F1E12D030AD7002E7842 /* PokemonPhoneBookTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 99F6F1FA2D030AD7002E7842 /* Build configuration list for PBXNativeTarget "PokemonPhoneBookTests" */; + buildPhases = ( + 99F6F1DE2D030AD7002E7842 /* Sources */, + 99F6F1DF2D030AD7002E7842 /* Frameworks */, + 99F6F1E02D030AD7002E7842 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 99F6F1E42D030AD7002E7842 /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + 99F6F1E52D030AD7002E7842 /* PokemonPhoneBookTests */, + ); + name = PokemonPhoneBookTests; + packageProductDependencies = ( + ); + productName = PokemonPhoneBookTests; + productReference = 99F6F1E22D030AD7002E7842 /* PokemonPhoneBookTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 99F6F1EB2D030AD7002E7842 /* PokemonPhoneBookUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 99F6F1FD2D030AD7002E7842 /* Build configuration list for PBXNativeTarget "PokemonPhoneBookUITests" */; + buildPhases = ( + 99F6F1E82D030AD7002E7842 /* Sources */, + 99F6F1E92D030AD7002E7842 /* Frameworks */, + 99F6F1EA2D030AD7002E7842 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 99F6F1EE2D030AD7002E7842 /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + 99F6F1EF2D030AD7002E7842 /* PokemonPhoneBookUITests */, + ); + name = PokemonPhoneBookUITests; + packageProductDependencies = ( + ); + productName = PokemonPhoneBookUITests; + productReference = 99F6F1EC2D030AD7002E7842 /* PokemonPhoneBookUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 99F6F1C12D030AD6002E7842 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1610; + LastUpgradeCheck = 1610; + TargetAttributes = { + 99F6F1C82D030AD6002E7842 = { + CreatedOnToolsVersion = 16.1; + }; + 99F6F1E12D030AD7002E7842 = { + CreatedOnToolsVersion = 16.1; + TestTargetID = 99F6F1C82D030AD6002E7842; + }; + 99F6F1EB2D030AD7002E7842 = { + CreatedOnToolsVersion = 16.1; + TestTargetID = 99F6F1C82D030AD6002E7842; + }; + }; + }; + buildConfigurationList = 99F6F1C42D030AD6002E7842 /* Build configuration list for PBXProject "PokemonPhoneBook" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 99F6F1C02D030AD6002E7842; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = 99F6F1CA2D030AD6002E7842 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 99F6F1C82D030AD6002E7842 /* PokemonPhoneBook */, + 99F6F1E12D030AD7002E7842 /* PokemonPhoneBookTests */, + 99F6F1EB2D030AD7002E7842 /* PokemonPhoneBookUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 99F6F1C72D030AD6002E7842 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 99F6F1E02D030AD7002E7842 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 99F6F1EA2D030AD7002E7842 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 99F6F1C52D030AD6002E7842 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 99F6F1DE2D030AD7002E7842 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 99F6F1E82D030AD7002E7842 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 99F6F1E42D030AD7002E7842 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 99F6F1C82D030AD6002E7842 /* PokemonPhoneBook */; + targetProxy = 99F6F1E32D030AD7002E7842 /* PBXContainerItemProxy */; + }; + 99F6F1EE2D030AD7002E7842 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 99F6F1C82D030AD6002E7842 /* PokemonPhoneBook */; + targetProxy = 99F6F1ED2D030AD7002E7842 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 99F6F1F62D030AD7002E7842 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 63SB2B8YJ5; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = PokemonPhoneBook/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = HwangSeokBeom.PokemonPhoneBook; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 99F6F1F72D030AD7002E7842 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 63SB2B8YJ5; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = PokemonPhoneBook/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = HwangSeokBeom.PokemonPhoneBook; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 99F6F1F82D030AD7002E7842 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.1; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 99F6F1F92D030AD7002E7842 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.1; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 99F6F1FB2D030AD7002E7842 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 63SB2B8YJ5; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.1; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = HwangSeokBeom.PokemonPhoneBookTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PokemonPhoneBook.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/PokemonPhoneBook"; + }; + name = Debug; + }; + 99F6F1FC2D030AD7002E7842 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 63SB2B8YJ5; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 18.1; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = HwangSeokBeom.PokemonPhoneBookTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PokemonPhoneBook.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/PokemonPhoneBook"; + }; + name = Release; + }; + 99F6F1FE2D030AD7002E7842 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 63SB2B8YJ5; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = HwangSeokBeom.PokemonPhoneBookUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = PokemonPhoneBook; + }; + name = Debug; + }; + 99F6F1FF2D030AD7002E7842 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 63SB2B8YJ5; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = HwangSeokBeom.PokemonPhoneBookUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = PokemonPhoneBook; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 99F6F1C42D030AD6002E7842 /* Build configuration list for PBXProject "PokemonPhoneBook" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 99F6F1F82D030AD7002E7842 /* Debug */, + 99F6F1F92D030AD7002E7842 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 99F6F1F52D030AD7002E7842 /* Build configuration list for PBXNativeTarget "PokemonPhoneBook" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 99F6F1F62D030AD7002E7842 /* Debug */, + 99F6F1F72D030AD7002E7842 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 99F6F1FA2D030AD7002E7842 /* Build configuration list for PBXNativeTarget "PokemonPhoneBookTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 99F6F1FB2D030AD7002E7842 /* Debug */, + 99F6F1FC2D030AD7002E7842 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 99F6F1FD2D030AD7002E7842 /* Build configuration list for PBXNativeTarget "PokemonPhoneBookUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 99F6F1FE2D030AD7002E7842 /* Debug */, + 99F6F1FF2D030AD7002E7842 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 99F6F1C12D030AD6002E7842 /* Project object */; +} diff --git a/PokemonPhoneBook.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/PokemonPhoneBook.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/PokemonPhoneBook.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/PokemonPhoneBook.xcodeproj/project.xcworkspace/xcuserdata/naeilbaeumkaempeu.xcuserdatad/UserInterfaceState.xcuserstate b/PokemonPhoneBook.xcodeproj/project.xcworkspace/xcuserdata/naeilbaeumkaempeu.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..b77e6e0461102d37df45ec8c29e8453ba320c92f GIT binary patch literal 30985 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 + + + + SchemeUserState + + PokemonPhoneBook.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/PokemonPhoneBook/AppDelegate.swift b/PokemonPhoneBook/AppDelegate.swift new file mode 100644 index 0000000..7b199a2 --- /dev/null +++ b/PokemonPhoneBook/AppDelegate.swift @@ -0,0 +1,81 @@ +// +// AppDelegate.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/6/24. +// + +import UIKit +import CoreData + +@main +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + // MARK: - Core Data stack + + lazy var persistentContainer: NSPersistentContainer = { + /* + The persistent container for the application. This implementation + creates and returns a container, having loaded the store for the + application to it. This property is optional since there are legitimate + error conditions that could cause the creation of the store to fail. + */ + let container = NSPersistentContainer(name: "PokemonPhoneBook") + container.loadPersistentStores(completionHandler: { (storeDescription, error) in + if let error = error as NSError? { + // Replace this implementation with code to handle the error appropriately. + // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. + + /* + Typical reasons for an error here include: + * The parent directory does not exist, cannot be created, or disallows writing. + * The persistent store is not accessible, due to permissions or data protection when the device is locked. + * The device is out of space. + * The store could not be migrated to the current model version. + Check the error message to determine what the actual problem was. + */ + fatalError("Unresolved error \(error), \(error.userInfo)") + } + }) + return container + }() + + // MARK: - Core Data Saving support + + func saveContext () { + let context = persistentContainer.viewContext + if context.hasChanges { + do { + try context.save() + } catch { + // Replace this implementation with code to handle the error appropriately. + // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. + let nserror = error as NSError + fatalError("Unresolved error \(nserror), \(nserror.userInfo)") + } + } + } + +} + diff --git a/PokemonPhoneBook/Assets.xcassets/AccentColor.colorset/Contents.json b/PokemonPhoneBook/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/PokemonPhoneBook/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/PokemonPhoneBook/Assets.xcassets/AppIcon.appiconset/Contents.json b/PokemonPhoneBook/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..2305880 --- /dev/null +++ b/PokemonPhoneBook/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,35 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "tinted" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/PokemonPhoneBook/Assets.xcassets/Contents.json b/PokemonPhoneBook/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/PokemonPhoneBook/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/PokemonPhoneBook/Base.lproj/LaunchScreen.storyboard b/PokemonPhoneBook/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/PokemonPhoneBook/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PokemonPhoneBook/Info.plist b/PokemonPhoneBook/Info.plist new file mode 100644 index 0000000..0eb786d --- /dev/null +++ b/PokemonPhoneBook/Info.plist @@ -0,0 +1,23 @@ + + + + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + + + + + + diff --git a/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/.xccurrentversion b/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/.xccurrentversion new file mode 100644 index 0000000..e1b76cc --- /dev/null +++ b/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/.xccurrentversion @@ -0,0 +1,8 @@ + + + + + _XCCurrentVersionName + PokemonPhoneBook.xcdatamodel + + diff --git a/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents b/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents new file mode 100644 index 0000000..50d2514 --- /dev/null +++ b/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/PokemonPhoneBook/SceneDelegate.swift b/PokemonPhoneBook/SceneDelegate.swift new file mode 100644 index 0000000..4838718 --- /dev/null +++ b/PokemonPhoneBook/SceneDelegate.swift @@ -0,0 +1,56 @@ +// +// SceneDelegate.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/6/24. +// + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + guard let windowScene = (scene as? UIWindowScene) else { return } + let window = UIWindow(windowScene: windowScene) + window.rootViewController = ViewController() + window.makeKeyAndVisible() + self.window = window + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + + // Save changes in the application's managed object context when the application transitions to the background. + (UIApplication.shared.delegate as? AppDelegate)?.saveContext() + } + + +} + diff --git a/PokemonPhoneBook/ViewController.swift b/PokemonPhoneBook/ViewController.swift new file mode 100644 index 0000000..7859870 --- /dev/null +++ b/PokemonPhoneBook/ViewController.swift @@ -0,0 +1,19 @@ +// +// ViewController.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/6/24. +// + +import UIKit + +class ViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + // Do any additional setup after loading the view. + } + + +} + diff --git a/PokemonPhoneBookTests/PokemonPhoneBookTests.swift b/PokemonPhoneBookTests/PokemonPhoneBookTests.swift new file mode 100644 index 0000000..119e7bc --- /dev/null +++ b/PokemonPhoneBookTests/PokemonPhoneBookTests.swift @@ -0,0 +1,36 @@ +// +// PokemonPhoneBookTests.swift +// PokemonPhoneBookTests +// +// Created by 내일배움캠프 on 12/6/24. +// + +import XCTest +@testable import PokemonPhoneBook + +final class PokemonPhoneBookTests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + // Any test you write for XCTest can be annotated as throws and async. + // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. + // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. + } + + func testPerformanceExample() throws { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/PokemonPhoneBookUITests/PokemonPhoneBookUITests.swift b/PokemonPhoneBookUITests/PokemonPhoneBookUITests.swift new file mode 100644 index 0000000..de874bb --- /dev/null +++ b/PokemonPhoneBookUITests/PokemonPhoneBookUITests.swift @@ -0,0 +1,43 @@ +// +// PokemonPhoneBookUITests.swift +// PokemonPhoneBookUITests +// +// Created by 내일배움캠프 on 12/6/24. +// + +import XCTest + +final class PokemonPhoneBookUITests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + @MainActor + func testExample() throws { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + @MainActor + func testLaunchPerformance() throws { + if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) { + // This measures how long it takes to launch your application. + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } + } +} diff --git a/PokemonPhoneBookUITests/PokemonPhoneBookUITestsLaunchTests.swift b/PokemonPhoneBookUITests/PokemonPhoneBookUITestsLaunchTests.swift new file mode 100644 index 0000000..0d95447 --- /dev/null +++ b/PokemonPhoneBookUITests/PokemonPhoneBookUITestsLaunchTests.swift @@ -0,0 +1,33 @@ +// +// PokemonPhoneBookUITestsLaunchTests.swift +// PokemonPhoneBookUITests +// +// Created by 내일배움캠프 on 12/6/24. +// + +import XCTest + +final class PokemonPhoneBookUITestsLaunchTests: XCTestCase { + + override class var runsForEachTargetApplicationUIConfiguration: Bool { + true + } + + override func setUpWithError() throws { + continueAfterFailure = false + } + + @MainActor + func testLaunch() throws { + let app = XCUIApplication() + app.launch() + + // Insert steps here to perform after app launch but before taking a screenshot, + // such as logging into a test account or navigating somewhere in the app + + let attachment = XCTAttachment(screenshot: app.screenshot()) + attachment.name = "Launch Screen" + attachment.lifetime = .keepAlways + add(attachment) + } +} From ab80d0671885999a06a65b81059da15ce2bb1f67 Mon Sep 17 00:00:00 2001 From: HwangSeokBeom Date: Fri, 6 Dec 2024 20:12:30 +0900 Subject: [PATCH 03/16] =?UTF-8?q?=E2=9C=A8=20feat=20:=20commit=20test...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 30985 -> 34288 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/PokemonPhoneBook.xcodeproj/project.xcworkspace/xcuserdata/naeilbaeumkaempeu.xcuserdatad/UserInterfaceState.xcuserstate b/PokemonPhoneBook.xcodeproj/project.xcworkspace/xcuserdata/naeilbaeumkaempeu.xcuserdatad/UserInterfaceState.xcuserstate index b77e6e0461102d37df45ec8c29e8453ba320c92f..2f0677a9be60bf0c4f8a517499053d3c2341da11 100644 GIT binary patch literal 34288 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
mqah!LoC!G_@=0iP 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 delta 16817 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 JeDoao{{VDL*&F}> From 72b0a68f35764e0319aecf949fcd8afed0d5eec2 Mon Sep 17 00:00:00 2001 From: HwangSeokBeom Date: Mon, 9 Dec 2024 14:15:31 +0900 Subject: [PATCH 04/16] =?UTF-8?q?=E2=9C=A8=20feat=20:=20[Lv=201]=20?= =?UTF-8?q?=EB=A9=94=EC=9D=B8=20=EB=B7=B0=20UI=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PokemonPhoneBook/PhoneBook.swift | 0 PokemonPhoneBook/PhoneBookTableViewCell.swift | 57 ++++++++++++++++ .../PhoneBookViewController.swift | 66 +++++++++++++++++++ PokemonPhoneBook/ViewController.swift | 19 ------ 4 files changed, 123 insertions(+), 19 deletions(-) create mode 100644 PokemonPhoneBook/PhoneBook.swift create mode 100644 PokemonPhoneBook/PhoneBookTableViewCell.swift create mode 100644 PokemonPhoneBook/PhoneBookViewController.swift diff --git a/PokemonPhoneBook/PhoneBook.swift b/PokemonPhoneBook/PhoneBook.swift new file mode 100644 index 0000000..e69de29 diff --git a/PokemonPhoneBook/PhoneBookTableViewCell.swift b/PokemonPhoneBook/PhoneBookTableViewCell.swift new file mode 100644 index 0000000..c24ceda --- /dev/null +++ b/PokemonPhoneBook/PhoneBookTableViewCell.swift @@ -0,0 +1,57 @@ +// +// Untitled.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/6/24. +// +import UIKit +import SnapKit + + +class PhoneBookTableViewCell: UITableViewCell { + static let identifier = "PhoneBookTableViewCell" + + private let nameLabel: UILabel = { + let label = UILabel() + label.font = UIFont.systemFont(ofSize: 18, weight: .medium) + return label + }() + + private let phoneNumberLabel: UILabel = { + let label = UILabel() + label.font = UIFont.systemFont(ofSize: 16, weight: .light) + label.textColor = .gray + return label + }() + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + contentView.addSubview(nameLabel) + contentView.addSubview(phoneNumberLabel) + setupLayout() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + private func setupLayout() { + nameLabel.snp.makeConstraints { make in + make.top.equalToSuperview().offset(10) + make.leading.equalToSuperview().offset(15) + make.trailing.equalToSuperview().offset(-15) + } + + phoneNumberLabel.snp.makeConstraints { make in + make.top.equalTo(nameLabel.snp.bottom).offset(5) + make.leading.equalToSuperview().offset(15) + make.trailing.equalToSuperview().offset(-15) + make.bottom.equalToSuperview().offset(-10) + } + } + + func configure(with contact: Contact) { + nameLabel.text = contact.name + phoneNumberLabel.text = contact.phoneNumber + } +} diff --git a/PokemonPhoneBook/PhoneBookViewController.swift b/PokemonPhoneBook/PhoneBookViewController.swift new file mode 100644 index 0000000..b8508b5 --- /dev/null +++ b/PokemonPhoneBook/PhoneBookViewController.swift @@ -0,0 +1,66 @@ +// +// ViewController.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/6/24. +// + +import UIKit +import SnapKit + +class PhoneBookViewController: UIViewController { + + private let tableView = UITableView() + private var contacts: [Contact] = [] + private let contactManager = ContactManager() + + override func viewDidLoad() { + super.viewDidLoad() + + setupTableView() + setupLayout() + loadContacts() + } + + private func setupTableView() { + tableView.delegate = self + tableView.dataSource = self + tableView.register(PhoneBookTableViewCell.self, forCellReuseIdentifier: PhoneBookTableViewCell.identifier) + view.addSubview(tableView) + } + + private func setupLayout() { + tableView.snp.makeConstraints { make in + make.edges.equalToSuperview() + } + } + + private func loadContacts() { + contacts = contactManager.fetchContacts() + tableView.reloadData() + } +} + +extension PhoneBookViewController: UITableViewDelegate, UITableViewDataSource { + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return contacts.count + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + guard let cell = tableView.dequeueReusableCell(withIdentifier: PhoneBookTableViewCell.identifier, for: indexPath) as? PhoneBookTableViewCell else { + return UITableViewCell() + } + let contact = contacts[indexPath.row] + cell.configure(with: contact) + return cell + } + + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + tableView.deselectRow(at: indexPath, animated: true) + let contact = contacts[indexPath.row] + print("Selected contact: \(contact.name), Phone: \(contact.phoneNumber)") + } +} + + + diff --git a/PokemonPhoneBook/ViewController.swift b/PokemonPhoneBook/ViewController.swift index 7859870..e69de29 100644 --- a/PokemonPhoneBook/ViewController.swift +++ b/PokemonPhoneBook/ViewController.swift @@ -1,19 +0,0 @@ -// -// ViewController.swift -// PokemonPhoneBook -// -// Created by 내일배움캠프 on 12/6/24. -// - -import UIKit - -class ViewController: UIViewController { - - override func viewDidLoad() { - super.viewDidLoad() - // Do any additional setup after loading the view. - } - - -} - From 48164fb83bd20fa76e12afb4c8122b719f12af35 Mon Sep 17 00:00:00 2001 From: HwangSeokBeom Date: Mon, 9 Dec 2024 20:09:51 +0900 Subject: [PATCH 05/16] =?UTF-8?q?=E2=9C=A8=20feat=20:=20[Lv2~Lv3]=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84(=20=EC=97=B0=EB=9D=BD=EC=B2=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=ED=99=94=EB=A9=B4=20+=20=EC=83=81=EB=8B=A8=20?= =?UTF-8?q?=EB=84=A4=EB=B9=84=EA=B2=8C=EC=9D=B4=EC=85=98=20=EB=B0=94=20)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PokemonPhoneBook/AddViewController.swift | 0 PokemonPhoneBook/PokeImageView.swift | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 PokemonPhoneBook/AddViewController.swift create mode 100644 PokemonPhoneBook/PokeImageView.swift diff --git a/PokemonPhoneBook/AddViewController.swift b/PokemonPhoneBook/AddViewController.swift new file mode 100644 index 0000000..e69de29 diff --git a/PokemonPhoneBook/PokeImageView.swift b/PokemonPhoneBook/PokeImageView.swift new file mode 100644 index 0000000..e69de29 From cd6aadeff29c853f2c572e1e24144916694dae89 Mon Sep 17 00:00:00 2001 From: HwangSeokBeom Date: Tue, 10 Dec 2024 14:01:44 +0900 Subject: [PATCH 06/16] =?UTF-8?q?=E2=9C=A8=20feat=20:=20[Lv4]=20API=20?= =?UTF-8?q?=EC=97=B0=EA=B2=B0=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PokemonPhoneBook/PokeImageView.swift | 0 PokemonPhoneBook/PokeModel.swift | 27 +++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) delete mode 100644 PokemonPhoneBook/PokeImageView.swift create mode 100644 PokemonPhoneBook/PokeModel.swift diff --git a/PokemonPhoneBook/PokeImageView.swift b/PokemonPhoneBook/PokeImageView.swift deleted file mode 100644 index e69de29..0000000 diff --git a/PokemonPhoneBook/PokeModel.swift b/PokemonPhoneBook/PokeModel.swift new file mode 100644 index 0000000..9bc63d0 --- /dev/null +++ b/PokemonPhoneBook/PokeModel.swift @@ -0,0 +1,27 @@ +// +// PokeImage.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/10/24. +// + +import Foundation + +struct PokemonModel: Decodable { + let id: Int + let name: String + let height: Int + let weight: Int + let sprites: PokemonSprites +} + +struct PokemonSprites: Decodable { + let frontDefault: String + let frontShiny: String + + enum CodingKeys: String, CodingKey { + case frontDefault = "front_default" + case frontShiny = "front_shiny" + } +} + From 01114978ffc3e2c167a28a610de2d8abad5b36c0 Mon Sep 17 00:00:00 2001 From: HwangSeokBeom Date: Tue, 10 Dec 2024 17:51:54 +0900 Subject: [PATCH 07/16] =?UTF-8?q?=E2=9C=A8=20feat=20:=20[Lv=205]=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PokemonPhoneBook+CoreDataClass.swift | 15 +++++++++++++ PokemonPhoneBook+CoreDataProperties.swift | 27 +++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 PokemonPhoneBook+CoreDataClass.swift create mode 100644 PokemonPhoneBook+CoreDataProperties.swift diff --git a/PokemonPhoneBook+CoreDataClass.swift b/PokemonPhoneBook+CoreDataClass.swift new file mode 100644 index 0000000..b99822b --- /dev/null +++ b/PokemonPhoneBook+CoreDataClass.swift @@ -0,0 +1,15 @@ +// +// PokemonPhoneBook+CoreDataClass.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/10/24. +// +// + +import Foundation +import CoreData + +@objc(PokemonPhoneBook) +public class PokemonPhoneBook: NSManagedObject { + +} diff --git a/PokemonPhoneBook+CoreDataProperties.swift b/PokemonPhoneBook+CoreDataProperties.swift new file mode 100644 index 0000000..efe498b --- /dev/null +++ b/PokemonPhoneBook+CoreDataProperties.swift @@ -0,0 +1,27 @@ +// +// PokemonPhoneBook+CoreDataProperties.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/10/24. +// +// + +import Foundation +import CoreData + + +extension PokemonPhoneBook { + + @nonobjc public class func fetchRequest() -> NSFetchRequest { + return NSFetchRequest(entityName: "PokemonPhoneBook") + } + + @NSManaged public var name: String? + @NSManaged public var phoneNumber: String? + @NSManaged public var image: Data? + +} + +extension PokemonPhoneBook : Identifiable { + +} From 0ee8f26f4c3740c48c2b9df403c240ea997d3196 Mon Sep 17 00:00:00 2001 From: HwangSeokBeom Date: Tue, 10 Dec 2024 19:19:25 +0900 Subject: [PATCH 08/16] =?UTF-8?q?=E2=9C=A8=20feat=20:=20[Lv6]=20=EB=8F=84?= =?UTF-8?q?=EC=A0=84=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84=20(=20?= =?UTF-8?q?=EC=97=B0=EB=9D=BD=EC=B2=98=20=EC=B6=94=EA=B0=80=EB=A5=BC=20?= =?UTF-8?q?=EB=A7=88=EC=B9=98=EA=B3=A0=20=EB=A9=94=EC=9D=B8=ED=99=94?= =?UTF-8?q?=EB=A9=B4=EC=9C=BC=EB=A1=9C=20=EB=8F=8C=EC=95=84=EC=99=94?= =?UTF-8?q?=EC=9D=84=20=EB=95=8C=20=ED=95=AD=EC=83=81=20=EC=9D=B4=EB=A6=84?= =?UTF-8?q?=20=EC=88=9C=EC=9C=BC=EB=A1=9C=20=EC=A0=95=EB=A0=AC=EB=90=98?= =?UTF-8?q?=EA=B2=8C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PokemonPhoneBook+CoreDataClass.swift | 7 +- PokemonPhoneBook.xcodeproj/project.pbxproj | 53 ++++++ .../xcshareddata/swiftpm/Package.resolved | 24 +++ .../UserInterfaceState.xcuserstate | Bin 34288 -> 129042 bytes PokemonPhoneBook/AddViewController.swift | 176 ++++++++++++++++++ PokemonPhoneBook/PhoneBook.swift | 16 ++ PokemonPhoneBook/PhoneBookTableViewCell.swift | 54 ++++-- .../PhoneBookViewController.swift | 130 ++++++++++--- PokemonPhoneBook/PokeModel.swift | 6 +- .../PokemonPhoneBook.xcdatamodel/contents | 8 +- PokemonPhoneBook/SceneDelegate.swift | 3 +- PokemonPhoneBook/ViewController.swift | 17 ++ 12 files changed, 452 insertions(+), 42 deletions(-) create mode 100644 PokemonPhoneBook.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved diff --git a/PokemonPhoneBook+CoreDataClass.swift b/PokemonPhoneBook+CoreDataClass.swift index b99822b..25f76b8 100644 --- a/PokemonPhoneBook+CoreDataClass.swift +++ b/PokemonPhoneBook+CoreDataClass.swift @@ -11,5 +11,10 @@ import CoreData @objc(PokemonPhoneBook) public class PokemonPhoneBook: NSManagedObject { - + public static let className = "PokemonPhoneBook" + public enum Key { + static let name = "name" + static let phoneNumber = "phoneNumber" + static let image = "image" + } } diff --git a/PokemonPhoneBook.xcodeproj/project.pbxproj b/PokemonPhoneBook.xcodeproj/project.pbxproj index 875e899..85155ae 100644 --- a/PokemonPhoneBook.xcodeproj/project.pbxproj +++ b/PokemonPhoneBook.xcodeproj/project.pbxproj @@ -6,6 +6,13 @@ objectVersion = 77; objects = { +/* Begin PBXBuildFile section */ + 99F6F24D2D03148C002E7842 /* SnapKit in Frameworks */ = {isa = PBXBuildFile; productRef = 99F6F24C2D03148C002E7842 /* SnapKit */; }; + 99F6F2502D03149D002E7842 /* Alamofire in Frameworks */ = {isa = PBXBuildFile; productRef = 99F6F24F2D03149D002E7842 /* Alamofire */; }; + 99F6F2EC2D081541002E7842 /* PokemonPhoneBook+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F6F2EA2D081541002E7842 /* PokemonPhoneBook+CoreDataClass.swift */; }; + 99F6F2ED2D081541002E7842 /* PokemonPhoneBook+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F6F2EB2D081541002E7842 /* PokemonPhoneBook+CoreDataProperties.swift */; }; +/* End PBXBuildFile section */ + /* Begin PBXContainerItemProxy section */ 99F6F1E32D030AD7002E7842 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -27,6 +34,8 @@ 99F6F1C92D030AD6002E7842 /* PokemonPhoneBook.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PokemonPhoneBook.app; sourceTree = BUILT_PRODUCTS_DIR; }; 99F6F1E22D030AD7002E7842 /* PokemonPhoneBookTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PokemonPhoneBookTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 99F6F1EC2D030AD7002E7842 /* PokemonPhoneBookUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PokemonPhoneBookUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 99F6F2EA2D081541002E7842 /* PokemonPhoneBook+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PokemonPhoneBook+CoreDataClass.swift"; sourceTree = ""; }; + 99F6F2EB2D081541002E7842 /* PokemonPhoneBook+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PokemonPhoneBook+CoreDataProperties.swift"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ @@ -65,6 +74,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 99F6F24D2D03148C002E7842 /* SnapKit in Frameworks */, + 99F6F2502D03149D002E7842 /* Alamofire in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -88,6 +99,8 @@ 99F6F1C02D030AD6002E7842 = { isa = PBXGroup; children = ( + 99F6F2EA2D081541002E7842 /* PokemonPhoneBook+CoreDataClass.swift */, + 99F6F2EB2D081541002E7842 /* PokemonPhoneBook+CoreDataProperties.swift */, 99F6F1CB2D030AD6002E7842 /* PokemonPhoneBook */, 99F6F1E52D030AD7002E7842 /* PokemonPhoneBookTests */, 99F6F1EF2D030AD7002E7842 /* PokemonPhoneBookUITests */, @@ -125,6 +138,8 @@ ); name = PokemonPhoneBook; packageProductDependencies = ( + 99F6F24C2D03148C002E7842 /* SnapKit */, + 99F6F24F2D03149D002E7842 /* Alamofire */, ); productName = PokemonPhoneBook; productReference = 99F6F1C92D030AD6002E7842 /* PokemonPhoneBook.app */; @@ -208,6 +223,10 @@ ); mainGroup = 99F6F1C02D030AD6002E7842; minimizedProjectReferenceProxies = 1; + packageReferences = ( + 99F6F24B2D03148C002E7842 /* XCRemoteSwiftPackageReference "SnapKit" */, + 99F6F24E2D03149D002E7842 /* XCRemoteSwiftPackageReference "Alamofire" */, + ); preferredProjectObjectVersion = 77; productRefGroup = 99F6F1CA2D030AD6002E7842 /* Products */; projectDirPath = ""; @@ -249,6 +268,8 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 99F6F2EC2D081541002E7842 /* PokemonPhoneBook+CoreDataClass.swift in Sources */, + 99F6F2ED2D081541002E7842 /* PokemonPhoneBook+CoreDataProperties.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -567,6 +588,38 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + 99F6F24B2D03148C002E7842 /* XCRemoteSwiftPackageReference "SnapKit" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/SnapKit/SnapKit.git"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 5.7.1; + }; + }; + 99F6F24E2D03149D002E7842 /* XCRemoteSwiftPackageReference "Alamofire" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/Alamofire/Alamofire.git"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 5.10.2; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 99F6F24C2D03148C002E7842 /* SnapKit */ = { + isa = XCSwiftPackageProductDependency; + package = 99F6F24B2D03148C002E7842 /* XCRemoteSwiftPackageReference "SnapKit" */; + productName = SnapKit; + }; + 99F6F24F2D03149D002E7842 /* Alamofire */ = { + isa = XCSwiftPackageProductDependency; + package = 99F6F24E2D03149D002E7842 /* XCRemoteSwiftPackageReference "Alamofire" */; + productName = Alamofire; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 99F6F1C12D030AD6002E7842 /* Project object */; } diff --git a/PokemonPhoneBook.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/PokemonPhoneBook.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..b9dab7e --- /dev/null +++ b/PokemonPhoneBook.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,24 @@ +{ + "originHash" : "4d1117f641c000c6545947e4d48e126cc17473ec53f643df82900a33ad4936b2", + "pins" : [ + { + "identity" : "alamofire", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Alamofire/Alamofire.git", + "state" : { + "revision" : "513364f870f6bfc468f9d2ff0a95caccc10044c5", + "version" : "5.10.2" + } + }, + { + "identity" : "snapkit", + "kind" : "remoteSourceControl", + "location" : "https://github.com/SnapKit/SnapKit.git", + "state" : { + "revision" : "2842e6e84e82eb9a8dac0100ca90d9444b0307f4", + "version" : "5.7.1" + } + } + ], + "version" : 3 +} diff --git a/PokemonPhoneBook.xcodeproj/project.xcworkspace/xcuserdata/naeilbaeumkaempeu.xcuserdatad/UserInterfaceState.xcuserstate b/PokemonPhoneBook.xcodeproj/project.xcworkspace/xcuserdata/naeilbaeumkaempeu.xcuserdatad/UserInterfaceState.xcuserstate index 2f0677a9be60bf0c4f8a517499053d3c2341da11..a702620323cf6d3fcf5c0076e93aa32c2c9b1873 100644 GIT binary patch literal 129042 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 z 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 in + guard let self else { return } + switch result { + case .success(let result): + print("\(result)") + guard let imageUrl = URL(string: result.sprites.frontDefault)else { return } + + AF.request(imageUrl).responseData{ response in + if let data = response.data , let image = UIImage(data: data){ + DispatchQueue.main.async{ + self.pokeImageView.image = image + } + } + } + case .failure(let error): + print("데이터 로드가 실패했다.") + print(error) + } + } + } + + @objc private func addButtonTapped() { + print("추가 버튼 탭됨") + // 연락처 저장 로직 추가 예정 + guard let name = nameTextField.text, !name.isEmpty, + let phoneNumber = phoneTextField.text, !phoneNumber.isEmpty, + let image = pokeImageView.image else { + showAlert(message: "이름과 전화번호를 모두 입력하세요.") + return + } + createData(name: name, phoneNumber: phoneNumber, image: image) + print("저장 버튼 탭됨") + navigationController?.popViewController(animated: true) + } + + private func showAlert(message: String) { + let alert = UIAlertController(title: "알림", message: message, preferredStyle: .alert) + alert.addAction(UIAlertAction(title: "확인", style: .default, handler: nil)) + present(alert, animated: true, completion: nil) + } + + // Alamofire 를 사용해서 서버 데이터를 불러오는 메서드 + private func fetchData(url: URL, completion: @escaping (Result) -> Void){ + AF.request(url).responseDecodable(of: T.self) { response in + completion(response.result) + } + } + + func createData(name: String, phoneNumber: String, image: UIImage){ + guard let entity = NSEntityDescription.entity(forEntityName: PokemonPhoneBook.className, in: self.container.viewContext) else{return} + let newPhoneBook = NSManagedObject(entity: entity, insertInto: self.container.viewContext) + newPhoneBook.setValue(name, forKey: PokemonPhoneBook.Key.name) + newPhoneBook.setValue(phoneNumber, forKey: PokemonPhoneBook.Key.phoneNumber) + // UIImage -> Data로 변환하여 저장 + if let imageData = image.pngData() { + newPhoneBook.setValue(imageData, forKey: PokemonPhoneBook.Key.image) + } + + do{ + try self.container.viewContext.save() + print("문맥 저장 성공") + } catch{ + print("문맥 저장 실패") + } + } +} diff --git a/PokemonPhoneBook/PhoneBook.swift b/PokemonPhoneBook/PhoneBook.swift index e69de29..aee7604 100644 --- a/PokemonPhoneBook/PhoneBook.swift +++ b/PokemonPhoneBook/PhoneBook.swift @@ -0,0 +1,16 @@ +// +// PhoneBook.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/6/24. +// + +import UIKit + +struct PhoneBook { + let name: String + let phoneNumber: String + let image: UIImage? +} + + diff --git a/PokemonPhoneBook/PhoneBookTableViewCell.swift b/PokemonPhoneBook/PhoneBookTableViewCell.swift index c24ceda..661da48 100644 --- a/PokemonPhoneBook/PhoneBookTableViewCell.swift +++ b/PokemonPhoneBook/PhoneBookTableViewCell.swift @@ -11,23 +11,42 @@ import SnapKit class PhoneBookTableViewCell: UITableViewCell { static let identifier = "PhoneBookTableViewCell" + private let pokeImageView: UIImageView = { + let imageView = UIImageView() + imageView.clipsToBounds = true + imageView.contentMode = .scaleAspectFill + imageView.layer.borderColor = UIColor.gray.cgColor + imageView.layer.borderWidth = 2 + imageView.layer.cornerRadius = 25 + return imageView + }() + private let nameLabel: UILabel = { let label = UILabel() label.font = UIFont.systemFont(ofSize: 18, weight: .medium) + label.textColor = .black return label }() private let phoneNumberLabel: UILabel = { let label = UILabel() - label.font = UIFont.systemFont(ofSize: 16, weight: .light) - label.textColor = .gray + label.font = UIFont.systemFont(ofSize: 18, weight: .medium) + label.textColor = .black return label }() + private lazy var labelsStackView: UIStackView = { + let stackView = UIStackView(arrangedSubviews: [nameLabel, phoneNumberLabel]) + stackView.axis = .horizontal + stackView.distribution = .fillEqually + stackView.spacing = 10 + stackView.alignment = .center + return stackView + }() + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) - contentView.addSubview(nameLabel) - contentView.addSubview(phoneNumberLabel) + setupViews() setupLayout() } @@ -35,23 +54,30 @@ class PhoneBookTableViewCell: UITableViewCell { fatalError("init(coder:) has not been implemented") } + private func setupViews() { + contentView.addSubview(pokeImageView) + contentView.addSubview(labelsStackView) + } + private func setupLayout() { - nameLabel.snp.makeConstraints { make in - make.top.equalToSuperview().offset(10) + pokeImageView.snp.makeConstraints { make in + make.width.height.equalTo(50) make.leading.equalToSuperview().offset(15) - make.trailing.equalToSuperview().offset(-15) + make.centerY.equalToSuperview() } - phoneNumberLabel.snp.makeConstraints { make in - make.top.equalTo(nameLabel.snp.bottom).offset(5) - make.leading.equalToSuperview().offset(15) + labelsStackView.snp.makeConstraints { make in + make.leading.equalTo(pokeImageView.snp.trailing).offset(20) make.trailing.equalToSuperview().offset(-15) - make.bottom.equalToSuperview().offset(-10) + make.centerY.equalToSuperview() } } - func configure(with contact: Contact) { - nameLabel.text = contact.name - phoneNumberLabel.text = contact.phoneNumber + func configure(with phoneBook: PhoneBook) { + nameLabel.text = phoneBook.name + phoneNumberLabel.text = phoneBook.phoneNumber + if let image = phoneBook.image { + pokeImageView.image = image + } } } diff --git a/PokemonPhoneBook/PhoneBookViewController.swift b/PokemonPhoneBook/PhoneBookViewController.swift index b8508b5..c6681a6 100644 --- a/PokemonPhoneBook/PhoneBookViewController.swift +++ b/PokemonPhoneBook/PhoneBookViewController.swift @@ -7,58 +7,146 @@ import UIKit import SnapKit +import CoreData class PhoneBookViewController: UIViewController { - private let tableView = UITableView() - private var contacts: [Contact] = [] - private let contactManager = ContactManager() + private var container: NSPersistentContainer! + private var phoneBook: [PhoneBook] = [] + private var phoneBookList: [NSManagedObject] = [] - override func viewDidLoad() { - super.viewDidLoad() - - setupTableView() - setupLayout() - loadContacts() - } + private let titleLabel: UILabel = { + let label = UILabel() + label.text = "친구 목록" + label.textColor = .black + label.font = .boldSystemFont(ofSize: 30) + label.textAlignment = .center + return label + }() + + private let addButton: UIButton = { + let button = UIButton() + button.setTitle("추가", for: .normal) + button.setTitleColor(.lightGray, for: .normal) + button.titleLabel?.font = .boldSystemFont(ofSize: 20) + button.backgroundColor = .clear + button.addTarget(self, action: #selector(addButtonTapped), for: .touchUpInside) + return button + }() + + private let stackView: UIStackView = { + let stackView = UIStackView() + stackView.axis = .horizontal + stackView.alignment = .center + stackView.distribution = .fillEqually + stackView.spacing = 30 + return stackView + }() - private func setupTableView() { + private lazy var tableView: UITableView = { + let tableView = UITableView() + tableView.backgroundColor = .white tableView.delegate = self tableView.dataSource = self tableView.register(PhoneBookTableViewCell.self, forCellReuseIdentifier: PhoneBookTableViewCell.identifier) - view.addSubview(tableView) + return tableView + }() + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + self.navigationController?.setNavigationBarHidden(true, animated: animated) + fetchData() + } + + override func viewDidLoad() { + super.viewDidLoad() + let appDelegate = UIApplication.shared.delegate as! AppDelegate + self.container = appDelegate.persistentContainer + configureUI() + loadPhoneBook() + } + + override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + self.navigationController?.setNavigationBarHidden(false, animated: animated) } - private func setupLayout() { + private func configureUI() { + view.backgroundColor = .white + [ + stackView, + tableView + ].forEach { view.addSubview($0) } + + stackView.addArrangedSubview(UIView()) + stackView.addArrangedSubview(titleLabel) + stackView.addArrangedSubview(addButton) + + stackView.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.leading.equalTo(5) + make.trailing.equalTo(-5) + make.top.equalTo(view.safeAreaLayoutGuide.snp.top).offset(20) + } tableView.snp.makeConstraints { make in - make.edges.equalToSuperview() + make.top.equalTo(stackView.snp.bottom).offset(60) + make.left.right.equalToSuperview() + make.bottom.equalToSuperview() } } - private func loadContacts() { - contacts = contactManager.fetchContacts() + private func loadPhoneBook() { tableView.reloadData() } + + @objc private func addButtonTapped() { + let addVC = AddViewController() // 연락처 추가 페이지 인스턴스 생성 + self.tableView.reloadData() + navigationController?.pushViewController(addVC, animated: true) + } + + private func fetchData() { + let fetchRequest = NSFetchRequest(entityName: PokemonPhoneBook.className) + // 이름 순으로 정렬되게 정렬 조건 추가 + let sortDescriptor = NSSortDescriptor(key: PokemonPhoneBook.Key.name, ascending: true) + fetchRequest.sortDescriptors = [sortDescriptor] + do { + phoneBookList = try self.container.viewContext.fetch(fetchRequest) + tableView.reloadData() // 데이터를 가져온 후 테이블 뷰 갱신 + } catch { + print("데이터 불러오기 실패: \(error.localizedDescription)") + } + } } extension PhoneBookViewController: UITableViewDelegate, UITableViewDataSource { + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + return 80 // 셀 높이를 80으로 설정 + } + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return contacts.count + return phoneBookList.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { guard let cell = tableView.dequeueReusableCell(withIdentifier: PhoneBookTableViewCell.identifier, for: indexPath) as? PhoneBookTableViewCell else { return UITableViewCell() } - let contact = contacts[indexPath.row] - cell.configure(with: contact) + let managedObject = phoneBookList[indexPath.row] + if let name = managedObject.value(forKey: PokemonPhoneBook.Key.name) as? String, + let phoneNumber = managedObject.value(forKey: PokemonPhoneBook.Key.phoneNumber) as? String, + let imageData = managedObject.value(forKey: PokemonPhoneBook.Key.image) as? Data, + let image = UIImage(data: imageData) { + let phoneBook = PhoneBook(name: name, phoneNumber: phoneNumber, image: image) + cell.configure(with: phoneBook) + } return cell } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { tableView.deselectRow(at: indexPath, animated: true) - let contact = contacts[indexPath.row] - print("Selected contact: \(contact.name), Phone: \(contact.phoneNumber)") + let phoneBook = phoneBook[indexPath.row] + print("Selected phoneBook: \(phoneBook.name), Phone: \(phoneBook.phoneNumber)") } } diff --git a/PokemonPhoneBook/PokeModel.swift b/PokemonPhoneBook/PokeModel.swift index 9bc63d0..ff6bf24 100644 --- a/PokemonPhoneBook/PokeModel.swift +++ b/PokemonPhoneBook/PokeModel.swift @@ -7,15 +7,15 @@ import Foundation -struct PokemonModel: Decodable { +struct PokeModel: Decodable { let id: Int let name: String let height: Int let weight: Int - let sprites: PokemonSprites + let sprites: PokeSprites } -struct PokemonSprites: Decodable { +struct PokeSprites: Decodable { let frontDefault: String let frontShiny: String diff --git a/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents b/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents index 50d2514..0960308 100644 --- a/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents +++ b/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents @@ -1,4 +1,8 @@ - - + + + + + + \ No newline at end of file diff --git a/PokemonPhoneBook/SceneDelegate.swift b/PokemonPhoneBook/SceneDelegate.swift index 4838718..46d7dff 100644 --- a/PokemonPhoneBook/SceneDelegate.swift +++ b/PokemonPhoneBook/SceneDelegate.swift @@ -15,7 +15,8 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = (scene as? UIWindowScene) else { return } let window = UIWindow(windowScene: windowScene) - window.rootViewController = ViewController() + let navigationController = UINavigationController(rootViewController: PhoneBookViewController()) + window.rootViewController = navigationController window.makeKeyAndVisible() self.window = window } diff --git a/PokemonPhoneBook/ViewController.swift b/PokemonPhoneBook/ViewController.swift index e69de29..0705c3e 100644 --- a/PokemonPhoneBook/ViewController.swift +++ b/PokemonPhoneBook/ViewController.swift @@ -0,0 +1,17 @@ +// +// ViewController.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/6/24. +// + +import UIKit +import SnapKit + +class ViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + } + +} From 2ce6fc038a2f972facb1d567437166c1ba2aed84 Mon Sep 17 00:00:00 2001 From: HwangSeokBeom Date: Tue, 10 Dec 2024 20:08:46 +0900 Subject: [PATCH 09/16] =?UTF-8?q?=E2=9C=A8=20feat=20:=20[Lv7]=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 129042 -> 137847 bytes PokemonPhoneBook/AddViewController.swift | 19 ++++++++++++++++-- .../PhoneBookViewController.swift | 9 +++++++-- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/PokemonPhoneBook.xcodeproj/project.xcworkspace/xcuserdata/naeilbaeumkaempeu.xcuserdatad/UserInterfaceState.xcuserstate b/PokemonPhoneBook.xcodeproj/project.xcworkspace/xcuserdata/naeilbaeumkaempeu.xcuserdatad/UserInterfaceState.xcuserstate index a702620323cf6d3fcf5c0076e93aa32c2c9b1873..3cc3770cdd6da9b296152138aef1cab571e8b99c 100644 GIT binary patch literal 137847 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

5rbBkCfoy#R;^I2RIO4y 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 Date: Tue, 10 Dec 2024 20:57:57 +0900 Subject: [PATCH 10/16] =?UTF-8?q?=E2=9C=A8=20feat=20:=20[Lv8]=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 137847 -> 143971 bytes PokemonPhoneBook/AddViewController.swift | 30 ++++++++++++++++-- .../PhoneBookViewController.swift | 2 +- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/PokemonPhoneBook.xcodeproj/project.xcworkspace/xcuserdata/naeilbaeumkaempeu.xcuserdatad/UserInterfaceState.xcuserstate b/PokemonPhoneBook.xcodeproj/project.xcworkspace/xcuserdata/naeilbaeumkaempeu.xcuserdatad/UserInterfaceState.xcuserstate index 3cc3770cdd6da9b296152138aef1cab571e8b99c..03d69b7a82a302028e653b9b301b4220f2921ed1 100644 GIT binary patch literal 143971 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 literal 137847 zcmeFa2VfM{_CG%N&g{(Yl-&_VgVru zMFB;nk3F;Bt~W&jFWLODNHKUoN2+dWLhz; znKn#YrXACs>A>`71~3DeLCjz#gBijMWri`snLK7PGlj`#rZNRgAydT6VXk4WW#%#} zGoM+^EMabDZeea`Rx+!YHO&3Y1I$+DL1r8C5c34Hoq3ko$-KzC#JtSxV_snnGH)^O zGoLcYn6H`R%rDG2=2zx7=6A#(87at!OvsFqkOMi97x_?g)B?3ctx#*!2DL@qP*$!++wiA09+nMdc_G0_8{n$b5aCRJ<%NDSu>u@A8ivyZTkvfJ66>@IdU`!c(aeT6;D z9%0{LKV&~*KW0B+KWD#YzhS>;&#*tRzjHh%a1v+Y%v=&@;q07)^Kf3y$JOT=a1FT> zE|t5SyMpV=b>q5oJ-D7+I@gcu&kf^-b0fIP+!QXKo5~e%gb?oO_ptKcfRb=(&2e(nKoC%22+&F$fy#ggf>#IxC zU8%cDm#*ul>#rN2%g~L|jn<9P<>;ciiMj$^p{__bOE+6LM|X{m=oaX%*WI97uDeNh zv+gckxo(4QlWwzatL{PFBf3X*+jURs4(bl+4(pES-q5|NdrSAW?j7B`y7zP+>OR+f zp*x{FsXL`RtNVr5@jNf^dS2$uypwnFZa%^{;al=;`F4CK{xZHZ-<9vl_u|v|EBXHX z0Dd4ph|l9E^HcbIekxzU7xG2?)qF8u!cXVt@+wdG>-g*W#r#eD&HOF=?fhN*I(|LB zf#1mA%iqV}&p*sR&hOx#<)7#G@(1}t{9*nG{|5g){{jCY{|Wy&e}?~o|B?TR|Cv9_ z|0ZC86$C*qD1uQi3CV&@unT^nnUEr+3eAPqLVMvdp|j9k=ppnJdI?tv=|VrDzc4@; zE<}ZiLas1L$QO!)QlU(kCCnD)2t>F}m?z8^mI}8DcM10hYlOAJI^ka7KH+}h0pTIx zVPT)}im+ceAiOHPCcG{j6b=c8g(Je-!iT~~!pFi_!q>t#!uP@%;RijVM|!Mh^@3i~ z%lc%!O>fr+^bPdQ^eyx)^{w>n^qusV>95dt)%Vo*(vQ`T(`V|(>$CI|^x66xeN;bD zpR1puFV>gnXY1$auhHM2U#MTCU#wrIzeRtS{%-v${W|@6{RaJ3{bTy4^gH#t^v~;G z(!Z=fpnp|=NPk%Wjs9ExclzV{6Z(_-Q~J~T@AYT&Kj_aIkilRO4U)lTup1l(r@?Co z8X6fI8=4qe8Cn}U8+sVh4E+rK4TBBC48skh4Py-B4OxbnhFON$hB=074A&aw8dL)@ zTxXbPxWTZ@u-vfHaEIYeL#1JzVZC94VUytj!()cW4Nn+$8g?0W8}=Cv8s0LzXEuMJRzPG z&xk)uNWu~;=_P|CN|I!f%#uU$NC7D*g{1mYOR1IAT52P;mAXmYr5;jGsh4z>lr9aD zMoVL)u~M!yNy?M1k*<~IN~%Pp>!f+od})Dny|h?bCfy=EBt0xWB0VZSCOs}aA#InQ zly*o@Nl#19NY6?;rTx1XMz^ow*(`c?W(=4DZq0{HuAER#DyNjw%J<4o$~om%BQj#6VALBGqtR$GI*j#=4U7$qjf~BVEsSl9 zZH<>1I~%(gFE{oy_A>T1_A&M~4m6H4W*WyEvy4$=o^h(Nz*u4|HI^A?8D|^k7_T=j zHZCzPH{N8t)p(n6vvG^@e&Ykit;Pq9+l&txA2vQ>+-`iv_^ffa@pU1I&2*({plOI{s43Gl-jrpUV9GO1Hcc_* zo2Ht|OfyW^n26~H(=yY&rY)xXP1{TlnI1DeZrWjb%Cyt8%k;cyujyseKGUnF*Gz{^ zM@(;<-Z8yz`oQ$1=_}LMrf*EAO=nHNn9iAgHT`DRnR&Bd)|(AxvpLCZFy>KkDH${KWpA=e!+aee8haz{J!~^`5W`M=I_mC%;%EWBq>QwvL?BcJW1iC zNK%uemPs9xIwf^W>YJ37G%#sU(ukzYq}-%QNrg$%lBOqJn>07+`lO{vwD{D{lfFzko^(3tdy8yQEJlmTVzwk%EEcOJ z*9<*$;JZgE&a=`McaaSkEvzlAt*ouB zZLDpr?X2ys9jqO#ovfEzds+Kg`&$QCM_NZ&M_b2O$6Ir(`PQk{GV3(!GV5~dP1c*O zw^&zLZ?)cLz1_OfdWUtDwbHuTy2X0G^>OPH*6r3OteN|uw8lWoa?E zmwenN*z`7oO|(fi*{0ZxHj~Y4OS0K)URym|eOm)ts;#-Lg{_nAGFxX`7h5-5FIzub zf7?V`u5FSn&o_KEFN+c&mvZ9m$6vi)p3Yx~WP z?V??>N9^_N_3aJp4egEWjqOeBP3_I>DfX834)(70Zuai>bbCL0fBOJ?hJCm_(>~sw zWzVxuwqIwTXP<9hV87megMFcWk$tg!iTy_VP4<=cHTJdka{Ffc7W@772kZ~oAG1GW zf7bqj{YCqS_K)lz+dr{?YCmTG%>KFk3;UP$uk7F1&)9#k|7QQ)!8r5|gTv}bcGw(t zhuh(I1ROy}BS&LLH%E6z4@XZ&FGp`jA4gwDn&V2xRgM9UVUFRBOviXfmLtzG*)hdY z=9uP~?wH}2<4_&MvBPH<*BbDUAzwOUoeQ0d zoQs{eI&X8{?p*1-+quTM(Rr_Pr*oHcw{ws4Ip_1vz0Mb$FFIdxzU(~UJmNg+eBb$j z^K<7H&Qs3Q&hMRPoIg8%b?IEZ%kK)fg07G&?25SRx$3(bxEi_|xth6JyV|(gy1KY7 zcU|G?nTIRaV zwc2%$YmIB8>t5GGu7_QZxE^(FcRlTT-nG~DitDiJi0cj4d#pHX54zW!7aKax6kc&2i!q-$Q^b^-1Xdz+|AwX-5uPQyRUGkxvz9zR{+eVhAs_e%F2?mOLgx$kzb za<6vZ@80Hq$o-i6arX}QQ|_JaUGC@Id)+U)_qktpzv+I<{e}BW_gC((-QT#sb${nR zFnv^>E`L>>F4S1 z8Q{tAjPzuB#(Ro9S9^**C7x1GnP-}3mS?tSu4jQ~iRVVoD$i=qJ)Sk5wVrZMg=d3j zqi3t9>L_YU@s z@{aaqdZXSc-hA&I?={|Qy>q>)mw2!9UhloZyV`q?ca3+gx7=Idt@N(*uJ>;6KH%Nz zebBqxyT|*S_j&JL?+e}+y)SuR^}gnP$NR4LJ?~NPN8V%JZ@u4nk9&Xg{^b4HC;4Qb z;xqb8KC>^$XYsjx9$&~8_BHdR_)>k%eXV`%eI0yVecgQBeM5XheZzdieItA$eWQG% zeObNJ^VfW{rv;{1O0>iL;WNDS^f$BY=4=5 znt!@~hJU7imVdT?j(@&?fq#krM*r>pmHs>YcluZR%l-HHH~BaFpY}iFf7ZX#zstYd zzsLWa{}um!{~`Zj|NH(A{2%&1@*nem=|AZ|<=6Wyc+l@@NwXiz^8#@fzJY;2fhfL2%HR@3Y-o664V9xpb*pt<)As}47!4$U^o~F zwhgumwhwj)b_{k3UKZ>e>>2D8>=*1G91t8C92FcL91|QL%n9ZPrv}S{(}L53i-L=T zOM*8Bmj;&wmj`bO-X2^TEDu%$D}(ET_Xf8F9|=Ah+#Y;3_LAYVKQMhrqNw{e^HQX}X zF5EfXCEO?6H=Gu}GTc9$5grmA8Xg-S7tRci4`+p=;i=)P!^Pq2!#9K%h8KkwhnIwJ z3@;5Y3*Q{RHGEt6_V8Wdwc+ycy6}eZ#_;Cwv*DfLUE$r~J>loV&xiMhUkJY(-XA^? zJ{W#0{C4=A@cZFU!^gs(g}(})2!9{`E&O|giJ*uO(MRNnDPoJ*BkqVlQZG_J(kRk3 z(k;?G(j(F{(ks$C(kIe4k`}o#a#bWf(l63KG9WTAGAJ@6GCq!cZBjb6@7*n>TdUsPTD5K8u6K)Wy)(_pX+3)lFD#x?Qk0b)?OB*zHZ@vM znyA^$M3`pxG9Jdu_!vJEV1i7D39CAlR|QqC8dOo0RQX<}9#fxb0G~moG5uFnRHJHw zPf<0;{%xLVw$Xa>3UUgkrej|uOtr=4bLl` zl#y4En;(TYndSf_?3P^$8tJOu!t)-51*OG>`T5b}O!MWmsKiLreAl)^hu-blwr!iz z5{53NP22WuQ@XY8)+41us}3!C_2|~2UGH9PGtI8*wiFiTPsl1xOSC1^?5utlYiHFf zeWuydBG|rluw|R}ErK1|vjy6= z+sKS$MlqwAG0a$I9FwVfRIln&{c1oBs-cZc7Bc}7W10 zHW`s!m=jH(= zXiimWaLUoAxUj59djV%6kSbDDZvVp4yzFSnRe7bU+Sl{)d8<;zUMHp}H8yOS=HMT^ zu3Ef_QM;O%#xz^U6f-4EDO09K)Ou=twZS@OIx~Zr$xK%ps*Tkq@Cl=n+&eG7G+G>^ ztnM@W!AQaR4D>2JtE9B5W%O~T**>&jVx5VdS{c!tp=mYCNwkMB*D?0BYt=>vnFY-C z%ni)KQ5u950PT;^zD7&N^v~#-2b5Y^kX1ah0#Yp+(LZBA?D$BdqZ;kWD1?;>2@`eP z$Sh;*<;+sGX*si8ZAOuh(q5f;4g$EYU~Xk@%QU-TaZqR(NDsDPW{aaGfP-1I6>6%Q zGQj-Mgv6N_!Yrrb1>?xP(&*G!M}Z&!h)cU=!-SSZa{!s5<4UqAt_-9r1j-m&5?>u@ zkf&sA>u!7JHyiPB;Pnc3aPgv2SbjNuJa$SEUaf zF*;{z(ah_#*9d9L>kU6BZPmf_O+w~kaq`D4RwyoM#|2(hCAv24jCGF$YWe&^8Y~8XtU2HHj zV7V9Mrscr!=S|E5J?JStfp%uG5>3s4NSB3OgU4*R5I(B z^=eDCmD*ZuqqbeoY-H|b?qfDFo7Hw|7xi-W3bki!?Ni8^QIu7X6U~Xu&k$fulrzOS z$zY&sZ56=+kM@VPIxwpgh@~K-v>2KSbWTAfKEX6^rn%YqORh%Q-J=r=i=!H)KxUde z(e#IzN9odiL~UQrJf?P_OP7|c@xX2+=O=xVd5URP&g@V-mNQSQonmM{uy6_>Y{9@u zg$2>>g@scR#qMIBW13YkyO}-eWol>oWjB1eOl>}JMEByXg6v5YzU;GSw`dkjY1!hM zX2IF5+P7*JY~QN&HP;MG6tbUrwW@8esa@4Zi5G{MBULSVL+z$EPrP`Wd6&M}qjoN5 z-c!3*zxaUph`#tx?NJ_UN%J97v+@cO**;^wsH*5owO4gT-!R`Y%>X>ADmcNMq3Cv! zImMi2zE}IGebqGe%5}gTMlwG!2#ZfQ*r8Zd;Y;4;h4( zf#NJoU5~<|81mPz%2xxewY0EA%Cbw#ieXKJE|%_ZLOVi;ht4C6Si~Wn+E4AT4p0XI zv?Dz-#GrkUI{4oJ?H57U_>3Y8N`@IlRyCs>+0-F_hRDdp+=@JZhR8z)B%xbtLbAgd z_}3wM9j_!=4+?sNJftYAbkazWRHHNc<`tAyh!Vj2g|wAvc67_hp%_{%L8g{W&zo3k zW)2!nX1Okw5TzJHjU!?>M|nV#hEFv64QjQ><>J9)oBgk58{Y4m%VYVo2S52`h09yv z_SC^ceE#!z$PF`M++i&kS|ou$p9(VMRbW0b6eOw~CYPB7Z18r#{s)++nY~~Du^$W| zjxpaezakzPz~sS({3wK)pw=3X!3m}ltjTjwo5Za9Q3H_JP=Kj`d|?z}Dp7rPIAHMz zb)-595P9@QrU7b%8Z-4!Q`8KlfQ&ju9SgGQBsEW+OsSUgZ7QD*D9E2VxU8T6Xs&yH zVfGZDRR_F^k<1W4u#!CB6|pgeH@@>Sr4;~5!>%Dltnj@c4&#tEdrFVOsg%pp`G_Gb z6xy?UpDHvEI-@So$1Btc zY7}}mk@kshgJKP@!4yC+gy%iVii@Gj^sF)f+&81zPl$W0ad151yY4#^-OmHZzi@-x;yzU^~Vxr!tZ#n9tW~(`M zEcO@!MpvP9kj&!jHzQhF2~YYli-z{kfFC1UXSL7nnA5&>3$46?XwX_USId}zhK#Gq z*sZuYYi1?NKtq{Du%(UtG~>QuErEu_Gfg(k#+tw_E4 ze+RHlK~pKP<*UWzs6Z|GQ(!9wV1pHSaZ$5$KoY*PCa?uVjsA6D+rTRpo6Gxmpsg0# znK8w*q`!!1*~5fMfP#YFnpB=#*K)EuoPW8jp}%i|lH5rZp1NT8pwA!p%S8>jWq(ZW z9<;pI$%=6O3Q*!Cz^hvBZqTqcW|lXGCNxQ@Y$`RYqdNdORU%iN3_+*?xr4z(r-^qoo{rPD$7`P72TdU5}U|=X( zP(i6)dvgOCv<@vqi_l`UM4h8vqh71dRY8=l-XK$9s;Ui%DpIKgo@u_UN|d@#RI8n% zMvC-8sH0I;?z-z3RF;=LrEfI92$X0&Kv<`mrd0YtnL&Q-Mpdnt#2BwYw}FIg;vw4xf`ug=c@}UKygDgX-bT3RAo<(W=)Ca zB=}%p#NetoagIfmWfy7!&^q)W(`++Zk2au<=w5Um+JrX4^0^;9fVQePs0-Ca>SA?? zdZW5jU8XKqZ&GjGjJCn*dl)@}9z~C#$I%mLJ9-lBP;UX=yh6QIy-h7A>?p#HC+r-; zUPIWqYV&dZvS#E>&6^d?iSwQ&+HQxk+N|QdlEQ)*I~@wkEItaFrblD4ra1472}m>Z zqodA$nWV8d&``iOyp#?e@X~5MQS50#1c($B=S>BbK;m`G4mGFdrXKc^F}^r4t1Q1X zR<@?b3dSpir+G!7X{5Cc)QU^bnps!|_#I3z(nR^utXQ%%Dl)>(5cFfgp3zvr1F11= z36&#i)?Q*}Mhz&67Niw`o)LZ|R=_Lh09`oy)!WO_tLjQR^GUF=uIlr79QzO&RDlko zBkCRMJ!)>EfVa?ljJ*=Qjov};s&}e)sdrbRqacHPpss>-xLR#A7K*FhTaTf?s+E*x z_(_MhUsf&%7-c!pkuXMDFC$$SIBVd@=jiKNHGKm$eW$L0nn1^+ZC(@8Mn^Z&H99_4 zh6Vwr(V%kly;@P-`XAA6OtTH>C-gHqi+(}p(64Hxx=vlMZcsO>_ijMHV+JGmWPvd5 zQ#TPdqTWZ?k(5MgE*7oLFt(r(jxR;4_N*^V2S61(1UYi7_KYsSmaUtPrlWfm2>vn6 zmk;QwEI)@**FaEL4~||9o5WIB$y7gHJ!RO4EljgYY{F)oq;6KXsP|W5D+V(N^#Ot= z!2jtaTIe))D~VSgn?>LxiFE`oV`~RStmjNnh2>=@p2P+Ud(gZs*o%GGj{`V}LpY2h zxE`*L8{mfOR`qLw3n+>_H^t3x3S+{lxH)ct zTjEx@HEx63;&!+_?f|OmoVez{hHyw#9RT(d0dpz*QQb{yNlfQab2&r9OQ`8~wNeHE zuOOzjjEk8UrcbKzmew;m(So6a(;;`_S2a(mQV6M!sL!h}s1K@Nsb8wQ)xB@vPWUq1 z89LVmUyiT9U2!+u9rr*fFvN)ijr79om@aQz_1f1c)m83OiYwn{Z8GXKBPXQ?ozj@lh4;3*BDH#z|^Yxsx$-IB=Vj{%HjWJe34Jwf{fDtwrp*dA0DW4U-J9+qkL z0u5Iy`ZSeQtb~DCdBqiYI92yuG)#l( zC*s`mr+j2--c+Ektf@unQ|i+ylW87HmtCjk&6`tpQPR91E1CyqD$%m3Q?jB{i=t)C zdqzv9fNMeX3-{)=AJj2K+5k<)Q(y!E^%8TMSSJ-YpN>miuRv*x3veMW8dU^XuZ^d= zQ++nmoc=#=YU&JnNKsT=I9Y382`(KC%}cDyN?eAgF^kTB1hh90uq>KG*KIF2&6=s@ zoPj}o-w5Wu#v-g<2sJ6P0?(rT{mbbO;W;o2*Wg?{7pwGWaza)~bTs^19L)zpn-*0W z^*MFVzh@Tb;rXx&1>C5>^J24BR5l?$FI%I9l#06P55Sfi~6GalKQf`Pklw*uO3ieRbNwI--K_a z=bubHdYzBEEM%KO(b+z*QT{5wIrrP2Kfglvi3{hME&v# zK(Yb3G*sv79OguxqZ>j_Gicm<}bEXaKqi z%`3;7)kAc@0V)mr0GhWBZ^aMNKlQMBB=$E8>{08*g(dtrev+|Q;3x2Q^-cAy3cLe9 zrM|5mrJ{=)0JStrn-)#(s~QuK?gqjz<-*Zk0SJ{PASsqykR(yTF8my=U^m{QzN5Yi zdo8>d_FC_$jYiWEiGgsmWL!?1^`=J)a!V&A=|4|oe+9n=A{O3{58zkT_tg*74=eHO z_#i%{ex!b)eoEWfpw_4qUC_1+5O-kkn_nd1kiwZg^GayOYGo$qjcVm6$;*ktsdnmg zdI)?FzYT-@4t^JuLaAkCc{vkimPShkn9W@_wJ;Xlk)F45W6>Q#$HGzS#~L6V#qSRT zDjk~EvjQK5Z6N*-@_$r2fBE+P6As^-K7aelWv=VmuQ;QA9O;^~HYPV#?bj0{^cnt= z4)Evr3-xpLi}MC}=tNjI7Y;3uLWr!RDZpNfqQ#{%Q|MVQs68&q7-$-8uH%c2t^iqXJ+(D@6}^S+JOFK~{n!0*6>JNnh(lAtlWs_G-46AekT& zK}l8A$!4*IX?wpC^#AH&Hkt z$eC&Ww|Dkm6f@ad*)}vKNf;1@vh`P}2(b1@=XP zni16el1ZQJeip>X3ibfrO;C#ZP6hiqnnO@3NT7`_lsRqRBwF?+`!2|w>|5;H>^lUt zAgColtt#2~*rWImL9GdD^B)&H*-wFC9IGuj?tkc|R&OVDRqsDG?9=^E_Sy@AC;J5? z{jzpa^k~VzC$oBdxbD?tONSpl<3PrI_C!p?OsHbnZ`l(u(ULu`eojz(kS*EQ)tPks zE*w4Bx|C9rBno~YTIS^CXo|hTu+B<5HLlHteq?`Qe`e1D7y6O?mHmyN#RT;vs5gPL zV_-w@3s`2a8f=JTI7HbH$8o?&yAjkm#)b&GjG(TW<~ATq#C9y55???LEQ7<~98lXe zr(aX@3P!ga+dP^$#u?pqY>a<#dRW06=nuP8aV<{f6v|gFCvbFK7ymIM>)hY9{|@1p zK8LevJf^$GW1=%sVtR~}lI*D|*_usdN-msNM~i2IMkh0Kx@JL>U05{pU*`trK|W{I zAisO2xns4gmjee#wXHp=0xo6{P&6}c?%79cS*E$i#U#PRb|_{rT)U8jDj`ltoSzH9 zVGbAI0I&NH)VG2QGxrgc24-g<9$F_A!m&V(CRkS0Up0*}En&?@YDrUbinAuhw9t8_ z{lG#1Hu{MQ8*xqG?0^Hrzp|WbO3+oY(}Nl{&=s0U-kfU(x^}Jw*OF_+wdUGzZ3#*z zs2@T72^v7qK!OHsKy$bb@Ye}W3FpwoKbU?j1O%B$3lG44Fm9w*GGJn_8I$rR1WbrD@^-u?IEP*Hlu8MhxHv(?$&BfY^o+G`xb# z;D!)1f`ByvJwB?DuRYI4N zd2_`S`br4OiZgF+8Zd7-^i099Nd~EDGCjSS44j)y4Dz*{3Kk#ST!M1SIYLmB4%S~) z2XPCyMZjCR>$w}ag#^LwBbT5_mE2-(3FWPM1Wo>r^H%N_#>B0t%`k^ftlzhFMvqn% z#iu{cex~)8z+1W7A?eE6Nq4^X=rCWG^j99e7Be%`-`c5uoEW{kxYaS1%B`X-H6K_i zw}t}B)LJYxY4j(V=FS&G<5~*alsJ&Y!8B3ldhT9IV;i`Q1Qii}Hr7_s7{R=d< zm3y4h*n`|Q?ji1B?h)=$?lFR31(gz1M$j~ZrV})SpqU%FC#V*f+W~)1Q-ORIsC|LF zuAv_bG#a}o{rnXI{69fsFH#zNiJ;jD8hZt3jN6Y==pO;D0z?KMKx9f{$_{gHP$D}* z(6!~oc_qe0n`vj>30hwM`$$iLuM2T!31X=pe6B$UQTpd#BVH4YL zSnF;LmVVv*?pNECx1>b&4J7@xHj%aYZB+W=?|O$SSK<%01vk7}O=Ksy(;AVTqC|E* zC9*S=$Zn`jWN7W{Q2JSdz$OR$F}QQwub`pr52xJ~+&QY}taZp&OP19!xRnm;Slm{p z)A3ZJvYcvERuXh06=i`sZo5#UqBH2kYK_VYf|l0QsOZd~QPCyoEIKPe%LuxOpqr~? zQyrt}JeI?f0nzl2jBpR(*wHC_z9J?5Oc&5fpmr>E3Ab^HR##7xXm8ad+R6Wb*5nTi zh|d#ibxk#~_V!Hkzq0|F+o3L1*Aa9Qy5_nTx|X_Dy4Jcjy0*G@y7oHIlifkkodn%Q z(A@;BB4{;1_Yky(ptS^*Z_;(rbP~GDbyw)RGWB%bDFjvk?8QKE13?cF^e~0ON8lL< zk{5--x`lxMo`g|pEWRnIc@m}@2$-t_nX)pDxw;{Mxw@gcVf2rnbp)-~J^^)?m>b4% zS2tES9*{#fPM1j#aLaoubXmFy1i_|d3q{~dawMk9)lH`Gv|E>_f_`BWz>_YY!qev3 z@Z?E&u;{MVl>w&fighJA;I#J>1g14xD|OR!( zmc-y)x0u5FqZb)JFdfUv$?0BJT3QHJW<^EOoJO^E5xQFdzi-vu2Kc>FcL&Aq9TdMo zWAp^Y@1q3mtcBlq>sD3c_cH`-zW~20(7Xy=r4E+alLS3g4c)hBz`H{O-g*~quIk(= zX*jOiqGf&hPcVC%hS|?*m_6~*V|LwbtUAcjJ)z1Ss-9d_+O-^zP^`KeXKi5ks8F*0|})5C?*~2KH>K3J^{g)pjWj|Kx$V40>0FJ zLvi{m-PZ)YPSC*$-M6~$2m&NLa_MmTwC)EDr_WHFK70`|GSRGaJVQbHSKV*A-wAqy zAQ0W(s^k%mDM-If&^!Nekme1Hi5F`lFJIYn=PzUWn-{e{_5Jrpic0{bc?FUhYbR~? zmiw#uul7uNXvA^dWrs2$X}te@5)W=}V2i+8DKfuzkr5ji3)?`A9&5?dyodMlKHiVp z@YvHS7>t&^E@Zr)IjE*qd4PtcDRo{H3{G)obmEb|?cOML;`EEtzBHSJ3SX zlEJP_lbK55?s#!CEjZb&N?BJMdPhsMC&khx8sJLQm^d0p7?*;EyX{5G>H+=|G;lz) zTPavuPbe#m3;JNjbPGI@q|-VL9LYtGc%}hp#WVs7HHdjh|2bo~UFVKVPdPcIw50`%yW+kYJ?d9_E*TK{6a;@i+2I z`DOfa>iOTZpEh}56hkmaFiSAR!dCvbk#q!nh~?3NkPnP3_!a!EJVdgv)NDRA3no}5 z7;M79(uQ9NA_sp5!91Y9COqPj#Bbs^Uoe~%{1#@>1<$m!5Aa*zP=~fYLF*S1 z&N}`Ht0?a!z28oHP_)2{Pvm;p5mXb`Cuo%8_wMLT?AXo z`8@<%DORY`F#W@6Ko^cPOxJgzn?$A zzskQxu#@0ag0CRBE3L0%Red!|tgfgEMM}W0BtH@OCKmIk^PlA%9JA*J)38Z-MYXdx ztvkCGXQ>)Z;!xYQ?$p%{jo}wqvTLLa3+#gSCT8kQ{v9}5<=^7pCfG%=yMlk0e~(}f z!9F@5)zDR4Qgvgh2)hc{t9wyb`dAw%*u_pU5Aq*@yYvYDV=#LiOoIjW05jlHg1y=r z{**rk0lH!(gI9C~{~5FByx)oTf5CqTF-rI^`LFn|`EU4d3HB2lAUH^Hh~V&g{y2Yv zKgplsPZJy=xE{d`2yR4hQ`$QVoNJa%jrn1gz#%I*D*+ukYd-9mR}6=fnnjiHP$TP$dkW=zfhLh*4mAVJ*5j{hAV2*8-@tGO8?du7D1MBwN{9RV*SFwhQV z&dA9IF97hsq@JSG37|g&6D!WkrtB=MINC|eWB^k?K@=o{8x!0_%^lNiNU&;!4u>C< zIcrJHG-;AxA-EaADQfPhmaST(wut?A-q-l33J$@2;i?e4u~pH$Drkrh5bDFw3qc_y zgteh>L2yfgTg8W7XdpBc8VQYsCIq)8xDCN=32sj?giE<}L$CF&#RX$5w5c9rEky_V zpd-QU{?7Pz0W(SAa^VW0E5RKIhU}eacGKV?!SjiE9Q+0k8iUHqpT02W&0d6JSAS}dfg~h@W(DdOUpy|V737C(6MeuBb!AhW}?W?d% zSYEZU#3KnFTytY7+y*B#!tKIJ0py7cf`<`2ylPJ=ED%<~1`!V-cqrWs*mVhy3Xcho3r`5!g(rm_!c)T2!ZQSqBRG@b@dRfPJb_>!mK=hk z1jAhCZW4BCiay~v;d#`QsVBS$iatCkuIR)01kV6-V};iFwCqRW7uYliKM6kzX9+GL7=)m*O5vRF zE2#VMG=iu9$JKp$jxp(VwRLzurL4&eEKg5=>Vtda-}V9yetb}`hopwuNryG*U+Eg$ zcleq!?K|B&b^RywOvYQoP*ktz%`v^7-UNC-JnJH(H@pM_6M&OcEo|01a4Wq_@5XKQ zUcHZEvr4gf5y96`Y+g_B4HsgwKBx~>WAg%nudRvA`i6kb`bPT3`X&Se`?!wac~#h~ zcj!|oys88fip_QU5K9-qXMKAOpXXm3pY@$Je7^o4JCJD}b5jA+*J!o(^LZGp@1bGz z!hhsIrq0SWoYwc&4+5Ol_tE#&r|GZMU!_mi_tW>+572{e{$hfc5PT!SO9@^^@N$B0 zBKT&4Zy|WaCjDRyr}e|M0~!4&iqp3yaC&9@Kn7R-7p5;gOzS5BOzZOqzAX;Z`h0+C zyj5R7|J1_-->!YkG7pObp}tf<9q3Kx$))SRn ztB1&`mHN4QRZj@Mo8VOhuddY3)6b`9dk?{D{_|+N1R(Ur+7NonoS#lSbA7Le7oHOf z4lEeHhobFrNP1K4q%H2*D;?aE-f2g-_V>ItqTer7hb#IO`rGLs-wM7AxEy>L^ef?T z3|G|U%U~Fi7_`;;wHh+7p~$=rkXgTy^0kUueC^LYLu+I9M!@X*^qT;)H|p=Fn7xT& z_Co}3q?o;lV6aQ5DNpMk)NiZC><0+G_X5m*oMQG9`tABB3BHfu%>-|$#_WwW3}Jp6s8k?Vu?0aot*0rYCyg19}=c7 zs5lPNNAw?3kbXn|rv5Gc+xmC(@9N*vAJxCF|A63!34Vm&M+tt6;KvDmg5d20!@TSu z_^D0$kK!PGO!K$kWoAA2A`~Hj4{{Tw=NKyJHf}csC^e?evb57y*b6`~l zX9ZVipH(_;12*UY3k<9Ql=(Xe-c@1X4WQ`;IC+r@(w79K4YC15!AgT-FdE?WY7fEB z5&V3mA<1B&D7}~97yjcYZE!IrgS$5Lu6Uw-o6LLCo_qX?oH^gVwA%wHZSX--f9<3{ zMGB^wzE2zS*xUvO4L7cESD~~aWT;06IZTK3B|vFIeTvdA*MZXJJ#mmWG&Q8gK-!Q( zLHZQ{X+wPq(l6Hn=~@tMXoFiB+8Ns8wuX*|P85P)rx5%$!3QV=pCK4b5NblOp^M@2 zY6w0;FxXd|@6K!J2@q`PW$10_LojIC4-$yBkch-%XrqbEugAsaOi4#b8L8W6vs0dej>pj@cC;ZjWF)`Z>PidgMgM#w+7s)fOCY031=skeZ&l~mv zM!#ryiDL9wz-X2w_(#BKHcVJl3!`5#?61b?-w6h*ks26%h+_0%!x6(91piF%If8$! z#^^nUcc_?rmf&BgYQtM4Cs&>0^@!%@$92&Bp+6Rz4WDRe{o9|Q^%pU;W*H5w3;zMM zzE~H|Q+61R$55NandX0cE8^&V%J3^i@6(3w4QC8L7=ASTWcb-|*6@qr9AV*JA{}9Q z!U}}d6V^ajk+2eBWx^_(48LjUEn<-sIi{Y-1A4RCB|-{eErj(GHUR2rh!yi+L)1%d zh$S?j57?Tipix9+suyz0=u>}Aa>!<}_NroMXmbDc-0_uzH#P(tb!nz0xz3^0u zoy5xk^;s`regARP7rQeiu}5tv_r83~h9@WW=GGsJyp}xRwhTahu{R{`Q#Os)@v3l=Y`24Y<KnE}U%`Gjps*oHA?Km#AJO|-@p(6w7gAQ)3ZP#2415e(SIe-y!> z`k1V#2X0PqFh`= z*p{@OByD)(eyx<cTJH341XXXyG!T9kh_JL;lY?@oUpw32r9hI&nQ=I})}N4R|%DZWsJIy!K~g(+Cu? zEAN`m$fm)}scBN}7^9Fi@iHeCs3LZw#6-9$PYZvjy^i_mXPQ&%uD)rtp!hI_*KOiMgzZAu%PYi3#77Bx1z|HNy#B2K0pgS5Zg5@} zcZg4kPm9lp&x$+6U4-pQ*lvXFP9RDb+mo=p2-_P11c=YU-(L8GLt@Hw`_PXx`Y{OD zFI4?k{F5*0)%SnFd07NOvs^q(*uDv__$F{g8X!Pe6%P;qwhiFBoFK^e#SiIJen8kO z%f*ifd(~gs#Uyec6Cs#krTCfnx%dTP(+S&;u>C8=uf(q@%Njt~f&Y1ybqcWmbZtJ= zCe%1LBema%#aR>BrE-@?Da-l+lKxmb>G!YBJaCU^z}OY7yt@u`?6kjXqavOaf7STZ zIm)L71E2aM*TDZ_Y=9VkNF3mYq?14(9ZJ|?>a0lD_}y!fuKhF?TF|f&6NIZ8qD&Ut zpBIF?7lX`bCLJ!-YtKOR9B`SIWC?77>76b$cp!j7_LK_ANDWo%ehI{zh&G<7Wv$`T zAtgx`jq6Ev!e$Z{Y;#}>6ytj1wC00=RxW{DGp35`NnVZXL7b1eI@nM0#{$A|O8uL{+T%Smbva z_I;EV9hF+qj2xVoJ1LepzUZZP61_S{YALxJQ5*u|m*#u*igT@izyEZ@lz;a9KF9F$3 zC2UbujC*OYGz_S`MudK8IMYBHN!S9_L|BMFQ#GQIuG53DrI={JIB7zy%-N6`=HqIb z8H_@zhd9!8(Q7qwPnJsHHdkqilrK${3Zz1*NV-}oCTuBT%LqG-u+s@UgRnCRJBzTh z>8-Bxe+}aQYIjj6fd4d>G5sG1Cr#;$C$2cl0VCTI8Y&VdJw0y%xCzYcRX`^zC&n$o zF!zsA4@m_7u9?2cAEh6d)^iBFt5G<;a<9&&^oy2eQTARlISqAPXL35@HIx2fvop#j zl+1)UPE%{9Z~jL`gLyH%A(DE2)y(mSZBN{LQZuW-5s-9rWq=vr4VEMya$Qpw_LiZhW)#= zLaJbzJs{mG-6q{Gt(5MN?v(D5?v_?btEGFSHPTwCoUnwj*AaFeVdoQe0b#EvEXcPY ze}a6wn6OI-dm~|&5_Z`GQl+#`S`WddQY2V=(k5xMw1w*=Js@qRx`5?`y`6}iY51wh zM7#oI5wR-~yAu(d&=wLgn}|7@X21#8HG+eJhN=k<00<5a^bIcTv1>WBcdcM?v=ULCj!m5`-O1S7RcC!h+E*Ijj zn-cYFF;$@nR&6GSOadCosS5n%*51?Gu)w68-Y^kEPZ}*3<`U|n=IaprN$VOEldQF` zW-DksjMxpw)y<|$E!JRD!WpTmB`xUHuGBO;KMIk^s&6XMhM+rGa_7WKgN{I~_*giv z7Ae>eNAcP19f9oN3Pa2efDq!1fRAgrp-{)hqs)h6E#w4@bsAz3bTsgTD(>@a$b-yMy^$^aS5u= zG;v^||mb-&1 zj@(7QT)u+;M(##f&^q2*Tfx||fG^wVYlHu_kKw|Xnl<%ssqmft3_tbn)F2fe*ylcnh z_3}naO91PK%4LA{!*u2UPkesmE%G+dfynpE56D|(5RQ)!_6@>A!h+%#ERr;wd{ur;eqBB&gX;Dp!hTHHPY8RAu%BN_oYbh~ z?F*st=!MYu5d{Tk!l!=+8b1RCmi#&R>9SzCbD^KER`WMB$+z-%gazUL%RlkYl~2n* z)S5xq48RP2UFDxE|Dqr|uIJ=m<=?b%{f4mL5*F-qV&ke{g;h93r|^V5PS_KKJxSQp zg#Gc7kES!g{x|(|l`t(P zqSRCB6Bb7CXTqNS7yNUTW=iu5Cq)4P1SaLzs!37WD4k$Zl(tGcrM)&OzY+F#!ZC?S zxlHM-bWtu>t{@yD93~t~I33~imwr-uT{tOlb4<-i0mW;%(w}hL-Y8FB@@oJNy$ekN`X?S6e(9L#YzeMDkGd7_6D4TaBjkR2v?tQ z4G7neK5InB{lEK#|7Z6L%5}=T8bXP3y#k@dE0i0Qg@khw&h@Vgl*&!Y&05(pj8|@@ zIic@y}f9!n+U{qBT?rzxI7P7tf0!T~mD82U*dNHPKAQF<01f*(45JUtOl%j%U zLyZb3U`0hx6ct3kf)%l#qS!!D6yKbC_ioA!N$`iC_rHfY%d+>Jd)j<6bJ`3jT9-%e z0Yw`Eng7I!i`*CaCR%ZkuSLEdxj*s^zz__IcA$s?MfAGJw;~Tj9*le&6fvOa1_~52 z!%2Dn-&t{y??oO%brbo1780YVf*L6QD13_MjIRe#B#V3n{@BdP{vh-xGml%cA0)i7aDMuK7# zC`OBeGDjD6W-lb1T%?); ziVRTP)Mx`wMI5)NZc$AKMHVQs8!+%xb5ww#Ayv1kZc~+kA^?gBpvbFG-L9Ieng

5rbBkCfoy#R;^I2RIO4y zsCr2Cuxhnxjp`9lktO9o&alFw{()(M{Lp*4V}4C{+!D+Vbj>X0 zceV2cuSBYycyvnjl1e5wm7Rr6s3DCnpJhykcV$QeqR^d7_e&QlgXNk@g+YnUkmMs+PwU^Wj z6f^l6gd&&5#ix-1;*+uP_=JQxbNrpYJonpM58U*5$f{JmuG%lyjMzhcx(=FJN`f}m z+&J}j5>D7)xcWA;qT=G?q7!1{lJV8C3GoTBiCEdFg@f}{JQJqqKuR;R{CDeRS+*vi8KMCD-M|j{;;!~niW5v-(<@+uwISxl7 zNo;juT7nP~wlM=2KWC0OL}!Gu7KF=+i$z~=DTEjJ-b;xiotc^(ot9Enfz;TPOJNeR ztaCzH3onfw{#IQO*rD2>x1L2j(j_INhAI`Gkd}(oj8BbDBP<|rb8-S!lkaYI6C883 z0u=Y)n8(KTjmj^IDjYE&H0Eknt-~=_b84l!sk)guQms;})fzP}1>6UUrJz^_iu*x< zbFt;1SOJQapjfq8tyde=Mzu*kTWwKW)iyHb4}zis6zf2-o(Q20px6kCP5-Y6AvHR< zS*LELZmn*kZVQTsK(QJWD6h-I{Hu-@#`$4>oQI>}iAzq2k0!z;4zU@R8W)>{gB6#Y z6rGqBmk^f}myn#8k|2l$6gVi3ViU*@iHT{cIIM9Au}RUPR4ASjQ>)ll9WNBM=Hf*W zzPKz!B@0EZtzHz$9jv6#hJ>`_%T-i+p{U@+fr4G&@AOf(jU8I8SR}G>Cw1pbkejV% zAzYH8<6~136L5GElTgUxuq39UOTq9@NwM*XAqe#(5W>mA<~kwNPdxyq_3Hkhc(h!N zX71xPj4gG#U~W8ig(8iMJupH&2F*bANcAW+TF_fSu@w~CD%4}uTCj*9CbjQi?>1)Pl94QD0YDS%Ek#ty;)zBaCHGj30D`Yi_}xp#cDLE z(4Ke(6wiXIc-z)hpC1)vMGfS6=|dOQ3ie6njDODkxq9 z#ePt{35o-tz}2019#ucAUaelEenh=iU9JwQE7a@M>(wZMkAUJkQ2Yvtzks5EQUPTK z$^%qupyGi-=c3i@a`mGEm%fN+mc=t+Ie{#U;W`a%#}aZR46TctKp-b8wtBX0Lblx( z&lZ=Gkeim25U7!Dr;u&W#j_=3CT6E31yXBddrrvq%Ehx`RQTMS?D(45UJ|nHyLh&Q zl(ax%T4K#?uL#**uP0k(a%MtSPEw6Z?iaGXQBSt`?AXlQ*pwRC4hq@cswZ1&ASo#! zF{ehhBSN-=^<|4o&PmR#ne781+o5{0#bu}FeYignvK_7`TV^6=3na#ha_PAG zOCpy(SD#RS0g9u5G4>SiRj9vGe~l+>G1Q*oTXKYURB>S`?-O>|Oq`*h;oqkqp}Sze z{6NIWY4wllpVU8t;sa280*Vu$z(^9p^E2f6S@mz~-__?paSRk6f&!QKKE~S>oqqV~ zeR7!H|Kftu)8tsXztelm^KK$vcK7O7-Wk6L@AwDbp^<6ing~r3z!-jt&p>e;6rYoK zJas&s&(Z1hS5RYd@6ag8JDO^mX(BZ$P+(iX1jSdN_!{5w z(!0kl@HsjiN*rB=IsBcz|J~S`eCgck(XqSni|`I3z9V84`J=I-(>449if>3Ie!?X9 zpTEPvZy0DNuZ0786b_yqp*>npT?Dnl>6V zUeNgd5fs>?zl1tc6HT65`NDCf<{P2()1>-)KS?`|r3i2~Y~LRd-djYKhn?N+xO5(yCT1 z7h6R|NLuw^sN!|D3b#?};z@C=HfbKM)vCudj{`*m#YkH91gZ6tn(dk$nw>zgKq-N0 z22`Zjs%OY^VXStATg6FQwVSUIKUS}VTh&z3Dhvb4SG>+v;Y_%`R=uYodj{2U^`Yh? zpwvKV_*Qj1e$O-h(*htqBeg!R`CM~C^94{^z!;L05h#<`s;|j&p;f4l1zb@&(yHSf zPwftK;Ay@_e5-y5x5~h`YUh1bjQU%s;&ry_@6f}#aivvgnVPNAvRV!(3sBbDt(pti;ve#~v*1^|^R95Q=x5`<&RodpEir3XD zEr}&mhg1x4pf+BcRI63V+7zI?K>0|kK0Wl)()Z8B@nfaE9$%%sLEAywQQHY9KTs`z zx(+D3#w|SWiqApabl~A@Oh|J zrQudZkycfgf!gVOjrdm04!0_XAFFDTU0W8ac%7|U5PEo#RxQ!uMsIaoX_so30hIt$ zqNG(AHDsN3rFNC}LG438B>{zlng$eJyB5Z34L%RG3TKNUTqR3dwSlh@->S-Rt5PMc z+7haGovp&f$ND&MmzJCpt0pb9yR|O^bpucxBpmoEzDm1K`yfk*io@vZtG+^R05RW&&9<50!xY}FT`hZh;E@3i0JyjFV( zs2=6oAAssrW5%HUg|`K%o*CLEKZsL?$%Q#n^8+|r=!p?3@F+2^A$Q8h>qS#DCj>eO z*Al8O8}tu7h)%yHFSoR13Hgl5EymkJA>HBFOlAoj|pA&i^0|6Kt5i! zERNydkN+;lC=fZ_$=&+er|qM13JZ&JiY87k$e(h{bX=Y;%9)v)S5z=*;`H2UG5lS$ z=mK1y&IwG9;csWe;F5RF)a=p{d@Y#_nT>cq(yw} zwHja6J`VB4M7+8dDE?nyicp0GC`4sv;_W`Z+W#3V<4tBnRyXoCkwrrVmE=t7P>V0) zQlsNSPfIh4Cj?46WEM|OPK?5ctoebcyuuQaAS%qpElUdv^Rp-7rd>&g?83>>e6r}A z(&+H-(LABMRT<`Pv3sgU#`U5op zsDVHY0%|Z&Ln?K0;exM@($P9b)?CNoRFE1f-0}r#1W?&P<=|~gDj;01tk3nzg;#{ zJFB%u9Wu0Z&2`t|fiGPP9gfyWphg9Ct#r7UG#aRkMme2mjMr&hv@RZxXz5~fvAQ^* z#sD=IsBsm#goq*BaU(iLlA!8M!wP3~51;8TEiTN*2v&!6*UQwp8>DU~9{Y7@Qin(S zZ+am6(Os5qsBSpEFXE(b7<#y% za)Y|wx?cD)e5K@l;y91h70TLe)#!EOxc#~tx%L#zKCa8sWiyL(fhK{bujwYTPTkGA zNxFR9WNIZ)69F&TQa6*^wsLf(xDBX$pb7wkyHG{s7H*S!fhs2P1gKJ=rU5k_D2%eV zo0L$bo1!b$mFP-!Q+3mHx9FzpX6R<>X6a_@=ICzK-KHzkf$nyoW&`ygP&nxA zZUVFu=v1K7fu0N)Qx8w?(JukU(&Y-;@O2=Vu_eOpM+E*;m`!blxWo$ z{z^SwWUpqm4n|8dx3G9}NlYGpQ#xHVE{QzjpHxen-o2kR9U1^J!bRS&QCww^#tiR6 zuHuHx>X_cVAytCE*XqcL)fRen>xCvwy)t*x!&s4yUZqg*Eg71LVqXqNS6Ow<0L1IV zB{9A7N_$Vul9>C_A9#Rv8QiCLWr4nq4=E()I6Z>0BU}vZg0qTd#wq^%R<}jO=7z(5N)@+MVH6a%4??E<#&0kJ4Q^m z4}roHGlJsBXzuHDpE3{Yj_W=L3ZwU+>2?=Ti_m9gGmSy6=ct@r~|VpcVtQ zB&a*3`yQx!fO_Ea*=|4U&Jx@07u~PAGeDu%zYnOT6}sPazegMa3fFn=7rcpGs>OBr zti8j!3uuu2BQ?mBzx;9ij$K{KHUt(-PAl7V2ik7>2$@>nM4I%+tif&A4+p&u+aiax zDIW7l*qfN1)^pg&dWP6;%h7hzD~av4qAuG_8@|@3*XZ@Ug{IdL3vCrzXnI^1M+2XC9*UBCSYBf-6fO-U|wLp~v6$GjRsCAY4 z76N?rtp%UA`X~b5^&))HX@E=cc}qQc4ZoKkzj|DMF4yC_;D!)>^_>vEb^E*xAy?m1 z--j?&FFmr-CZIM4^?mg?tF8oU+hs$pez1NRB3C~|KUAL%)T2N>2Grvf`r-N!1i4#) z+IrRf0P4ph9B-7uu@2X@`bHy)jvC(ceyBJ6%6RKT|(TKU+UXf2;mBeVHEB>`tJb0_tg?o&oAvpq>Nj zd7yRy^#V{YR_f=5V7oxjy81-~wl9gWMJIhipaJT@HPl`K)UG0^#R=$c5w)ukwZtDM zAym0||FMQsPW?LlMuOS(`VBy#F4!B?Z_;lD>J^|c#0VaqK%>9LQbmd2T&>4+3{_9O zAvI>DM88FkPWCJGTlL%YPXP5QQ2T&-twO(Dzk^`*b)fcNeat?OK-?t-;^O=}7L8E# z-S@~3>pwEQ{A^dEZC}EqyQN86$|GC7`aqA>JNIt)tu^cQRoZs1exHEZR|#g{BzhAY zje7GfiQd%8vqab)&>s?D`!<2?!TNHES>DrsPGI}K{sa9n{fGLG^dIX#(SNG{On)4x zLqNR))M22o%Z~!}E>Q0Q^*&G^0ClWVeXKgPJhzab!Ubm$tH?j_?>_7L&n-ST~pr7K0V26F}B!zpOCW4Gx0!uYmgc zs$13uzf5gtE(P%M7PX^<95!5sNn1&iN@I_R?Qd%kA~qRF#3t&S#&lVtp%bFkkYq?U zq!>~SX@>TO>kT&;Iv8-z^*f+&TNCF$xUG2_s2_p)38HUwM47=$e~oEkw0o#N>atLg*4B0^a4%E4zAz;V_3bFssWz)BYNrpm#!F=&g%OohKhQOh;hNkOHeb{oSbp=M8*g!#%B5oy}{067{VC*QO0~ zq)A);+-k(>!F}c}x#7(_TAObFF|2P5Wrn%DzBSyAVvCj`2FW^q7RVo!=vxuC3k`Sk z%GR(5VM|9eCd*R8Y69D3hWiZ<7?vAW7*-lq86Gq|WOx{81<(}GG|&vtEYKX#N}!tp zjgF=wD-CNxunh{z*02F#ON-%LXpN|BY5O(QUIEnZAgJ95v>46BKo0Yf*oYU6k7#(w zfYAYhhTVpjfz|@83mWzsUIAJUwDIyO+x>>ONFi_Fnhb5=;{)QFOvD?=xEJNx!-n?= z(2p378r}uk1hg4w3jz8EhGPhH+6uJoY6JZ6me z*qW%BXyiU)JHmZ*j0CXS2yKV~jd8{##H=yim|#ot&6Y11(EQ;p9UeJyn4B6IK1>3?&~fef&Ltk-F-{?%Ee5)~2->L#TIQpO!Gs{<=CYmqN7yUejdx+}C%SJPad@?IlgNVi8t*5l zz0bJRxD4q2Ko0RWc(TET%acaJ+Z?0E2`SFK<5!vdo!tEqo=tIPM9xMX&*M8 zM5>^^zXmxvo*~w?28yiK>LqOZIVfoj%YKm!aB6~$VbkmwBIy&{TE@- znwpr%8ezmq6GcFq--s?VH8T;X?WRbR%A_`FOj?u9q&FE%MiWjh3V<#Ix(MhgK%-PI z0lF0EsX$Ky`j$$QML?~|L3QHpk~KGZ2x_N`sKsM+PeR1k1h(_9!S?dQ)`WK=%S|yr zqr(~gyoD*gJ_Fg5X1W1c!_?k{meVYtX9rCkOlUjJ0eUV$M1w2D^{z07RDh|QsTbnU z)ZNs>)Dvjb>9+x0R$=OG>O+(!D)!s2`o528FoJ4`6jbjuZTn!-1o|$Z z7Xf`Y(2IdyLL8mb_X2$%&`T>#w}db|OE8a3w-L-P6EXWh*gRf)4YF4NvWp31aYQiC zj{w>G5VB34Z?cOJ$T5~{E8#P&X-z9l4-t-9WqJ_kVW3xEeb{bAEN+ux@xYV&Oh2Jx4nE83Nl!5VlR;!G$<^bUh1krroB! z0%-RT(3Yd7ZGxMvxZ)grQPl1?9VMuJ!}O-Ml?1oUR0D}jC#=*KEe?}ku&%=Dq@Bh<8?5Y#>{qIMh5&jY=SXxbO9!S)Kk_7s8b z_dstEVf!P(He#FNK*ToFuVwFod^Ud2Tk%|@M^uEroBkvmb3GsEcY2v(l_Wq??)frZ!uo@SPX4Va4Byfq$$!x431{^J6(8-E7CC4r$VR z*X$j4^5^bNSHJt}-Yt$ZEQtf&O1OTav4w`n>@|~M?GY!zdOGSDbM_5%G1(60i$59rr`ejVujmF8pt!RGc&Df11o z=H`wB!EcBN#yB0rfj&kMOio~2TbC-t^Y0kUw9C}eiF_nd=}O!sT`M#9M+BP(0R3hN z!REn;VDk`p6d|DB!c$V@0};GgWRFp1V#=9Eo5uis5a_pq=5glnKpz77$mK(DmYFyG z_Ly@Bg5NstxPS1`4jne163iA|mF;Um=1O35O zSJ&nlh|HN%WOl!2_Wt!$|AXbdUYz~F`CUs0i05F^Tct@~80UBKm@g}pGIBJR5$`%kRI|>oYg%5Ef$o!1?d4k(#&Cdb-9nhzO=3V9&fJXKG z%Vjf|&3nvvzOTZ(*ZhhZ1^o{|p9cEJ3iE5INcRK%6VaqUlhPWkB^%VYm##+NMpzw^ z!fNU4b3eT}zsL4F|56qlykq2Eg1{q~^r$px?3#T|5AW^Y{`oE`YYvSXa6W7>o8LEo zNbtAEe2mDgUlD)o3L>{6f)cqU;_tZm3jwkx2xQMTCd;?xGX%2VnNOL&H~(NhZT`{x zllf=!FXmr?{vGIZK%;f_C(!4CM%(Idpf3RZ4=}Py^Vtw&{}2|G&3_|g8FD0wK$dAD zE+{kVYnZ+K_OhiZV%E|O81&}EW7eWZ%<7KIqX+?Y7iwGb5uW5)OcpEhhQ(~L0HXkg z3R-LyJ1{gb+-1|X7LUcx^Q^^(Jj*c1fENDf0K-anRxAHF#I}|;7ChZoVQFh=XNdwv z2^b%MX@&-~CDsy$FlUgRRHTlV9l(ti9)~R{GPNaD3SVV*#M3>Dy+_>JOqI6e+g7oN zbj$Uaw2tfHqgt=N>#gSpEx0f99qQ3!_ZwlPTRK^~^02jZLD({y`g%?5vfh?-gsr8I zrLU!*rN3o>WuRq{Ww2$4WhgK@VD!KkfH4AN0>%ss4!IQ=8!+}t%P;}9mQlj$lw}-& ztwV&ZM_ip^+FgU~6@cx{1h$iaK^Is8Yzq*!mO@JrAz)m3yd#lnPr&`j31bmmk+#PnJ0jEE&*?I!iMvS!eLrS!Ama`tG38;4*~Dpmc^DO zz+4ARD_~kzSnjplhlVoK2AH;jp?s;zwb9sYP%a#{tVBevl7jb##Xrk_y|eS@D|bA< z=qBNT)AJg3uK;%6B-nim7|{cng?A#jHDX%?QrXe6cX<+xWXpS&V+6DB zTRs5h24Fe_EgxDw0;VG{oi86|k6U<)Z;#~!!E7ho*NE7MJ0TxS5G(TDx0W9WT)(rN zvV0Fr7ht*q)2+gC+VUfTYjR`fH{2bjLV^aG|pFav-Y2+Sa01_Lt$n4y(cy#Q9LxhZ9}%9>m41gz;I zSTStyaA2~Dt(1z~ljQGcahBqEdy17`Z=L+)BDG54(H1i7~$ausLEHs*r5 zkSlWFX6xewww2aLt&ahN7W_r|XSho_Di)Q?stFCgbPazhcmST~v=)U{>xPh95 z3BQ~<^KNkofi1>evOX_O+U^6}ck|xv9`)p?AF1n)WMERU{V!Ty7C^h3fc7>7t>P>J zt$e{nLHn8&;~rEZv%5XFmr>}cdUnjnFmZI zSsK<)EG)smQoEObH+kI(i)M72h#p7-B_a25ImMZ| zrQHfAPtGeH5GW}@PhMh)?_1Fsbh#DHxI4gb9>laoO%L{v{n~mG`=Pz{J0kcO1B2dDutzWv-V@Iv1-Q{m z9s2Ic%|q`;gK~RJpO}}GSBie|Nl_%27e=}W@VHAy&-sC_Gpd4c;VB~FfHii5kge(& zI;rvpYX3MguXJM1yyB8lbevaISipz)a?BW%n_Chny-3-HZ1jbfSyU3psrGJuMr%ET zk-DsBt-k?-^TB({W@cz+<1l!lJhk1iMo%XjOhqJO9QnZbUHA*}{aR9#nH`9ko;?*k zKcN@dOsV@y4VD1No_okx{h!^>*ItQa|^VR8| zmrcBaWfHEuVHD|rXyi@eqf1~Y(W_PT;J}2;lBp$C&IzMJgBfCKu`bPQ2AOH2Ez+j4 zscjmY)~2)RfmsgB3SdwWt^(#kU{DM`ypgCgn;8j>Q5(4hhob|b0< z+c?{JU{K3$3EDDjHvzK^nCEJ^fwTp9cWcb!8JbO^+iD_nP$y)gP9TwP{E%)(a&znx)Tm6;vEK(RIx2fXA}iGWbrSk=9$lSvrzr5 z8JfYDyZT~RPPU=NyunsrE3_5arr3&YXemDd%#*-u2WAH_JArv>gFK2(jaX%yZku77 ziGY!lSS8HUz&r!YvqXKxp;W8U7sLBhQ@w(42}hRXU2o&Or4e}sPMwSqCkN#YExZL0 z->6cuiQiT+re%gEsS%|J+OY7Js-er!v~EPcVdw?40PA&Ky=l=od7x(=36YthX%!m? zq~^va=O$(+q$I{>C#Gh{XQk!jCdMXY$0x=HGSkvhauVXwk_Txcx@VzR$&%98*rW1@ zCJKsXl%txX;3XboMmNta&Yp;#&x?mOFD)z@)x3}o?pdOf$>*;{-7_#9xhjy;C6wqL zmK#=FSXf#n-_*33+3szAU7O*}3#R7hzZkh;^5FAUq33PeVZAaCe?oP7OfM=%YY%&nHyrrJ ztc!|{@idq!Lu0La4L|NxZ;(FYJB)w3jFo9+7&B4US{9E2tPcvZA+mJYI9Zl#GKx2l zt&%-1J19GZ;dYM7-jjVG`$YDQ>|5C>*-x_ba)rE^TrIcAopP7lBX1#3l&8u&$UDkA z%X`Rk<&)%h%Qp!}up;Eb-?G@y-=V+cucV_jBqDvjZ81Um0^6Oog|@qFi)=XIdLEcv zz`Ov=i@>}D%LDPVg6=K=1%nl_XW_K$fr zL$g#gLQ1kHM`7>)oIUd)0|UkXnI%<>L7<6Lu2L5rvU8F%F$hF%ZhTsHYEnXOe0EYw zd>}3mpBP61ktQdnCFW!XQq!tiOG2PQ=C%K7MH>tA>J=428#4RFf zWwv7*Y@gdskmWJkS7dn%*W5l9m&ee()Bp7Hm<{hWl-qs+2EEc{Xqwkv6XSiB*N!6~ ztbE$e*nT5x3TJ`&q}=v9FrNx*3TTf{E-c`k$9F9(oW#EY!^H&hYqeYgT{R z{ssoS{CLpzk6i}L=fM0%-XmR|s%sT1#13}K9*K)icG}L^SvzM}+MC*&0doSFFMz@2 zPP7ld1_swkzS$^iZdc1T+qG!$;_?$&X!^Dcx4_TfDM4~l5KES>+DMm`q-koe>|FBF zQ;oyz4X-Upomf;`8IvBJuXeIt>@%0$ivwVH+daU12h6FU-Dk%GJl_Lznsmcual>G5 zWp7KCs`l91kn;dP;P$qq1>SS4C=b>+kyN{Hy}i05LZBQ0<~6e`IRm^-jFD7 zO5r+JcoWM$%swJ4Xze3``6Dc7?PKiY@R5BiFn^ZYahdCUy@J-BX`hIK)}Ce0w&&Ob z_FVe}VEzII;g5^i{{SlkR=&ZWC%c6RTKi-av}{D#bs;&+D*ngito;`3Tl;iin-DoW zt+t%~@9aGYqdZ$W%4K%+1RYYR_PM~)RiixLekU2_1;8@p_JzQ*^^fvm`~75;m)P&I z-)q0mzSO=9SPobvuuXw&25cm-stxuB?92I4UPVS(4Xjoi=AQrS!(2gzc^$BtI@M`7 zOied3qpYD2?VIe65_!DYUJ0xYSbfm`nEi2J4Zz~{(mGUgUGKtG!P=Y^P9}+rBdBrv zllGmY-0k)qz#4(YuTR;Z2G$I0)TJxpUG`UqB7VXCqWvZNZu`sjJ@&o8T7b0zYXjB} ztOHmlur5@@vdu`%?fdO-$XcT6?TCcj;Re=+su){buNG@Szc#Eur7B#i=A|{Lp{1p- zXp9vQ*3+WKd)NK}(UB+Z@1w+LJt*<*AEJ(Ay^`%{%_m}>&+I42pdGh=4y+&8=0W=x z_Ah~L0qk{`PkDc9|DIHAkNp%XZ?_ux%>rzuV8D z@@Crt+wSTsZ*;KYsKdcZC!e8br&)cLth=dV`B&e(_zx;?M-xn{kZu&MGQ5ANSF=8M z?wm4n$a4F!#bqZhrz#HhrGs@e#ol*t4wRiSz{UpcPdgAFQNYHLA+F0DmYU7t%XAJK z;?kja7#v22$zgU_9EiwxU=x5%1U3oSWMET(P2K3QI~*c5@qiJV2JH1BIxmLHOGbqh zSk(;F2B0lPofNnY!@nN;S?sg64#CN@gE)C++avoM+aWINaQr9cNOYu-Axm;#XWjs8 zhoB?Xf&JGJ*zRP=8r*NK*XkAv>FB`Q85NFBj?RuQz;*(*Gq7DM9Niq<3C6kt+wH1j z%+U{l(_ac4^WZjjzM|to272e!&jFXr?mMI13L!TvA~Yo>{#Zw-|>KBxnqT6rDK)jLB~VD zjt3TdA5GLXz-|ZjbznaQ_E+Fof<4K~M%XT@W{MGrHn4n=p^1_vAyJsgTE{T5%f~l0 zkRMv^$k4Q@oxToRzbFg${R(f+(6p$XIHs`BLV#}3C%$5W1{9nS!p z32YXyh~yk#1Hk42J7J^aIay1`E@EO5LlfAEWjN6&B1R@}YGTP!O>#;0TU{1v4Ncgv z7P_)}P}CT2IMC;Gx#LY>^U56ufaTrcHK>fl-0wKvCHm&DGeB_`&44;ii(UyU@F&Nw1Ux@GegU==*r`Fs z83&ry(}2D6(!ukmGlGEUyyGv&-;N88f1EO>9N1fc#dV1pz|I7A7O=B{okM14EuEAA z9Vds7LG0WrAP3koQt~CUZg}2PSKb=9k>XNn;YsbcYEFC`2A;Ht+RzWNzf8{4Y&FObyRO96^;EV3oKeJOMzWR4z_M~4kVh#IRy6@)VRUG-cJ+{ zun*&3ShAFRtD!^suo`PO%(!*wH7R}?fUop%4TLrXFcCcCoHr6Epk?+zxibUU<(CA7 zZ07_5g&b$Vi5h(cuq%OGRpFfI%p*{E5ZH&VJ`{?Ozo$s~dtYkuu(Wkuz1wp?Ted8A z(rE&PQcOBknpFE{S8m0(UB|4M`)9DdeA(#mOvgFhIZF^dGl}R~jiN^xi=yY^K>(fL zBv+=Lw>wd8JOb?6pz{u5YL)*RQ_H!?xr{LU-Ok0%CC+=C_d4%$B6|mctpIi%u*pyRCbAlgR2K6U95{)qD< z!th6(?>gUezVH0NdCZCHp4hKA!*~|h=YV}4*j>QBu+jN3FWo=m*&fyOi-L6D$6H8h zQgUPXNt&iHY+D03|Dl|209TD*`0t&k3H$y4>`Ud&AA#L{N$mTp^LN6&XPjr9zXAI) zu(+nPx59bO`3GU&SAc!>sZYEzhfU95|&@kX3}o++-qngfHh~7s5rO63L-`&_N|y3UH38iKn@S(oVDiS`M4G0yL0?xD!}1&N zw^i+phprltI#gZf3CU|$qKmBY;*ceiAv=mg=1RjMW8akwnbuM%X6oqbj3{y8V(t6o zt}eiSa49Hp^>E>lfC^VnS1(s@V2=TdQt6`#S6^2@f|8Gc{p9MSWGJ$Jx|H?bThw8} zvVPrWKcBZqRZ#97N>DNala7=o-Lo-%zFOaZ>5{!&wzyi4_@xRZV_f42&yRJD1NJju zj|W{hk~#3_|7H&C%5miro)5TkT@zdrU3spXUAU%k0@yEr{Sw%(fc+X+99cXnga?F> zY1L_9QL+3~;acii zMi~BQV1K##4F4c<@k3HBR^L1N&u9B}duj85N!zzhYkdP@_%)dH5oyv_Iq%@2%5E=j zn>qgYO(R!Xs~A4$T2C0h!i8q`8DP%_T^opyM-}-mg#2T!9faW@cWrTPb!~G!;d;`w z9oXN2JqPR`!2SvBd0_tn_V3V^yz3ccdR#l@nH(AZ0?u1GS)jtAU2g*?FL%8IT*M_Y{JSpn z%~Roe&-K3R1K^qfrvQ$saDC|d2pOKEfn%;d!{frKtB!@!wYgt^(0M}t`{%*=*|`N@ zZ6*x=H6}eNW%z~d+WjzMdgo=^D>R-KsSnMoV)*Y|=mjX~I_3HvI1V@^F4VXX^Toh5 zCH;6w3pK7YuD=MwpLPA_`rUQT^@rCiG-Imcgx9= z4RCs5(-3wyA-i`ZB}-*zjaj4g@g*BB4Xc3vkf-aid%~t!h~eFlZaxO|Nw*pqo--iB zyLHI$oKeE?T4P@^li6)Wo_AY-Gnczi% zc?WRLtIqT8wlcN5os^LWckFmt-@i9A-*E8DV-Jq#g*@+$!KAU$qy@XDpLzGz9zT_B zSX!|{v2->jC6|ib3Al0UP6W=xclSww7aLfm%F#SkGrqCA8^e9!)J0Wfx8a4R=~C1;2z)}NVccl zLvVYVYXck~-w=I2aKs4&Dd2zA_k(*Z>E&_2wI$orb?oid+~E}a|0Xwj=w9c}bZ5D< z-8sNT0T&Hi3~;gQ+_~-v?uqU^;NpP8&ddgG7UB9!-1@%sUE~HU-`Krlv5`gY5)`@a zDQ*<9@xUbn-KFlSz#&T}HD2Uifkk`wEcaX#-|pG&IqqBCx4FyQ;JzKWWZ+VOO9d_s zxc0yyDsI^5o`<4)J`vqShy&Mwi0;n3=q7T!Vex%+Wp7>DYKTY&PAK?04eZBA^O7NGY!v2Xe z`#bE`-b?Q|)Nfa7rOib2!X8YzSDN(EXU2c~`p3NozS!qB&9XkD^o1Rt;Noxh1@}L|p;8+U+>I3;xhI0)A_KUat~xF}oJ{ReN|`;SsOx*?4c&h%_rHDP zlgF12MqGFzF{w(L^pPze9oapz^X~P17xaH-?ypnBxbSE_WaTsBq(@I=Tvo$9=COI4 zn8RcDpfQPRJb*~@xOpVyUNVwA%{}c9NuCy-mY(Z8tvszgZ9Hv(n*iKI;Lsen8MsNn z@jpHBN7si>2ACA+25(uM0=g39@v;A;p@s zm}%lnj-DQJ`^nSGgO=zN;EIEuzMg)-l>j$` z3|WJxDC$*PVj+V)!w^ZHA)cWglzyeaq1`jB!ZX}6f*|P@;HF=FB#lRS+$e=dR?750 z^^PtJVMLGRce<9oNsyF@NwcI$kLia6Umw)<^xW->x~Kg<6A!eD?GJb+l4057nLuRE z%tj1LfoBRCmO@VvaI=A%Ly&}Hg2v*lmyV?A9$Zb_=$YY}>6zu3?V01b)pHwg_Lky79^8vB_bdf&LAmFC;P}H|4WdCD@Rgp23B#}QJm`4{xP`#o1>B+v&uY&a!ti$k zxA^Ka{Cec#4N@*%^UkuQ6Cd>G_sq0iDKYab#|gu4#-x?fq$}RsxncL&BIo|Ah%!Or!33f#kFPTuHq%;Hd<@O(ui(HEXCfm;LIBSFvC9voAg z!aPglL8ISS*STnNrn>IC?w;>GKayg9@Sq`B4qPzk`N{J$a5!CB*LVSV1!l{h-#z~j zVS3Kk3I3n8xszkZvH#U zb#Dhu+EJP`aors;e{j8rJ@>%APe;i+q6!dutcw@@QU<+Uy|`xa9B|JEy*)fX0k;c* zNrvT;4nuhRdD9U|-u~VJ-htjh-of4>UYs7IsDBZ-mw?+197^~-!0qJ?eD4VFNMYTH z82G@w0^Hle71n=&q-v&f<7}1&z*sMm8bV23HK+|%aR73>ctSJi4R~{bdlk5SLGMH_ zPKI6s?f~hA1`U+PnCspGZ!zKWLT`~5rv$G9w;#ASD!e7$Qo`kL0{7O{=ki&|y0fLM z`{1IDrV*LlHtcBr%7yEU%LWoIzYUX?Ns~rx+kN2YqkT?qd1vN^5nsQsu8Pa&dglvr z;SM4f4mLtA-0j5}I5_X}E+GQ$P(3+#d&m2L#NP3)@;;3IOT7Lb;O*A2@$t>D|o*~+|dk8dTw5Rpk6myfs#q+43hTQq@b^ zB$V`ChGtxYB^72*os8}uOJaKEmG+*RbxB1E_u{>edY_QBTkn0$`?z#Qa3nIi%3+!H_2f@a7NejAoq zJRuM8kKY8jfgbtDhHx9ilr{G7oPGtp69sJuE~o*u}@8U=Dh z$Ikr=vom=&uec}Cz{}GErKRYXHuQQ?2E6EfN!D)dTGDE(@B+Rjbtm5IeM{DEllK+x ztKNOy*SxQL_j}*)B7~0v_c?GUfcpYCwCuhD?rY#qZt@=R9+YkN9`e59J?uT=Jqp}6 zz!8T%+;_m80`7a@egN(?Dch2k)-$V$ZNllDLOE2^&wf3W^ z!TD1sWlPe=y{9X3J9s6Hc-62#@ zUlSiAYgge@_$VI@+!^4`0{2^mkM(grC2+q3hm}V6HzNdejS$e8q48B4u9{3=4O$mR zMutXH`z|LxIzAotlTQ!apJ8V_K9kRhQ%9fKXYpBmHlN*x3!CSG`wO_gfx7_QKcJLt zP(=FN@+f(f&!>pQr8ZE?c^Bf!2(s>mK&f8ekWY{qgl&Gj|qLhLpI+R?@I{3AS91#%f1RV%Kr8 zFGu)Bqw(S!=^F(~H7GSf-3&cep~=#q?`Gd5P?|y6wuY(XE8-0pr71%*xA6XzyeAuC~cs$gVF&?Cn#N@bZ_#_@!jgX%~$3F-|fD+ zzImYZfYJ*}A1M8xY!1p6pll7wHiQAqf{?~g8|YTM${}jW*pkAj#o2+7vu#aIpfoct zzgr>ic^<=_pwdI%*13V=;y{kD|Ir_vhmXw5DV;bTwP#*7nif%+#eqzeh{BtqhttO~`7?dr`eQQ8@9q9peV0uv|#w8JYpt}&p!58#ZtOaGO z!!ndQ@&Uf}LHPh8Q|!dKK8gInJLMjjm(L5q0hz^<0>$EJZSrldS?puJon-hP_igcQ z^=6_%l85(6G52- z%4B}{Qb37PsXZvK|G#?pUavNMZ#HW9#O{0BhcS4n89KfrzIVx}9R+3D#Ye4iL-UdE zN0L9%uNpBhox~^z`XgmxoL9fbk8u#o{aR4=EBEU`*}v}hyPut`x8Jp6qMKsmNj*3zF$&VTsR{O$eM`)}}f@RN-;tHt;Xb)^vKVfK%(7bXbh$NytX?|U9$s&vA=Q)izjDjOx1txQ-W-nT^t}$kZL^` znOBSx(-JgTG(wK_?)^q&7UyLaU}UKp?-s3URMJ99K8QpqPHLwX2S$f8haU?y>X|t? zFCS-c#_ILq-O_gB4PJHavDQd`>6kOEG>30rRISvF8q484`=Ak7D|1|GbliwM-c`;R z;jg%qc5%EQ@DJq;S#fBG`^U)It@DrYkMxi7@V~e`KN%g0F;HGEUNIA_)Gm`L5V*VV-rcsh&-yvqIg>9zl#Vz5?E}IR?+kd#8la;u{Ld{H#nTF+r+lN9&z2JPv3t12c(Z2 zH7-L4vvNcTvl13uVyqR6ZBmLtGiz#Tpak`nrL4*5^r_j|fdJY*M~o(w*=i?spA?u; zQY~Ccxur}|ZY!h8^eDJ{q9S_F<@R`eDu449Ew5{ZzoqBR3}9KgJ@Ydsl#D~+9w^B! z&MQI@i*M7mqibP)&Jk7H zb{H%LO;n-Ws`rK&*jD>VwFa7WW%7B7GM2O~F3DaIpO9F_l_|@bRwSpSmNmmoGGmz@ z@hiN7G$NcCSC0m!cN<13(ld}rB#}7XtCqwfCK=v`UvdgRI&4yP>|EZdOjTweWq0ji z4|eO0Qdbk~*{e)jrX!`=@$KT9$qHU!wa_)#;P6ut7N^Q6*T^*V;emq&52-734e9xC z__yHTp*SR=_%#Cu4I5rNZq2X}LvgJ67&fT+gtn4S=bM6Mj2?rsyLRse#}2LIS4=(r z#t?4=#}CDS-h@`at{S)H2sjI7VfH$Hzev!ULfKT=Y&5^`#-KG1$yUoA!5x}yvS(y_ zWv|L!lkJziDLa5cY(B>THb2WQ$T_)2Zk0PQbd6i?mHXv4$h*nM%V)}G%RxR@ewTcS z{9gG|`Tg>h@(1M)%h$-)%Ab-Slb@0QAwMtwTmDZ39l=F3jfjlUMCc+65vGX5h=CD< zBZfwdjL3?Z6fr$wR>ZuBg%K+w9*$TS@l?d~5eFmQiTE<&+lZecevLTSB(jM{;OlT` zoa~S|3H{Xsr(DwnW8-fB;_+cq11+J<3jf{yC9;Lsh2&qN^tso+0+)wSbT0KT^H1?V z;9t%Q(CMI@fie`7GeJ3PgMXzW(*L0UAw?uE4=FKjDXtLB0p+daOK5?pet9XxUGmkR z2&;uUhJ>A}N0yRA>7_G>HfkW{FtiN$l>W}F&^?EF6KFke0?lh@rFx-h)2C3Qkqwg- z%5pF=+YFf}6rU|s)*izSC3|9IgJlCSH+h2<$%oVqDGsSUQYWM#NF$KOA>AmG8E-<$ zMJhp>g)|>&G15|``;nF-J%qFxX)RI^X+P3&q#uwj;F(Q)l_>&AfkY!=`6eY&Gb9y~ z8_A30M{0p|9a3wgwn$M(F-TZPQy-*JNOvMVfpkPBGaHaFq>{NGQh%hIktQKcM_Po0 zbv56EbRW_(qz8~zAgw~edYiG{=50t%BJDtW3h5c7=a66EW?UrSW}S3Bh5y71PRkxcOpHF^eoczNG~AmLwX(Q4Wze_4k8^wI*D{% zCd1g2G8^`%?FOU{NF9+nBVpg#h9O}YHta)NArkhX4eM%Ki&TNM9trDe!@AnAeA{bC z_--4Hv+YNupJg&Tw#U8|=>sIJzk@}ZjD&sSxEl%I=fL+l9z}W_3DY{BK-!Lk?QvjV zJFu@E*w+qhiv!!@z_y?RH<{xLq+et*XC#svX&@5zIl9=9Id4Kj`QZ#8O+cD~G#?53 z---S2T!M5j(o!UBhZFnPiGAn9zH?&VIk8+Pmg~fFomj3D+vdc!Ilo2v4(WHKKau`I z`bQ>n$&s2MX^`|tMkEW84atGj8mS#pG*TQ=0#XuESEL?Dy^#7M^+&>XxYCiZ4K8eh z3)|qDh;%bjJ`%RYH4|wT(j26_kd`4mfV2W>71BdU$WJcpe;1CCs}kukq%BBCWHNVC zB&>sbBoe;My#NXO!;Ssnz8`5h(n_RqqzWYLBlkw6%}6*_c#2>4e@MFPAg}9g58&Sw zkZuGN5G15ox@+lNmRwjmmXr<=knRRS>5xVmq#G3pL8OreL8Mbs?(3QR$7}A)qrdYx z=Y7tXndja+L;5q=bB1_iAwOoyP=w;RsSNHZLnB%-h#?H~M@<^C;otSYCJr)|!2M+` zLm1_eOGY=Cu>lQb7bAfUVi2vhd9RX{DB#>s+%n%IdP-e@?bC7>@S-gWHU!Lb7ZSSJ?tZ! zce3d>+fHr=L3TZ5*GG0)WS2vB_nuv?>}qAtiyGM*BZKVrmc0$K$S#ZQvdAur?4wx0 zW`5&1CpgJz&SDqY|Kt)^xQ1-9zveAw$r11YG5L_VBp@-#kXa7B=J*_Y$q`LAWS(OV z`#Hy(AjtVCVYtVfX2>aroJ}!DPIKh++nnt%OU|zu$v7r3i7Cuu3Cl2F&L7yoCd`_1 zE8DT>oaW5=H&5_>t~lsBS5oXdm)>)wMPIoxkP(^ZDvZ0!RfX!*q!vxkTP`{0>P%PM zT&|w*)rSDv0(0i_lOlB%`SB)o-5|&#k364Y-aPh~r#Z6EGl(G! zV+8IgkD2nADUW^RQ7?}_Bl7&pRh|Yxs9K>(k!`4KL(LOvo>23I$}m*lp-u5dXiHjS z=b=6DW~jG9y%p-MP;Z6KXCc15&_f*KKJGKreTKTvyaC?JYkzs|FR#q<$}Dd&Dp3b} z%iD|=xU;)1o=ZqL`uA!-`n}U zoj)6+v5)+Ak$(;wxX!~MC=inmi9pfO(4Py_n34xshVuF%wx8n}?i=EkaMls zGhr9S?Y($Gi_5CGtcq8mD%H_raXTvBn5HyGR>j>y@y>LmFM}AuFh(*Oc@>|< z9Q0INPsJCrl!F}RD98DOQ=H`jmw3S|+-mXnK~N%u7{nqGA0d|#aw#E~5^^b#o4gdj zEtIHFB(f^ejt=O(#6ZR&yAqReZzYznfgjnzwjd~(3w27$sHBWa`u9rC$1Ek~Thc70 zK1N=p?6Q>FrMl3aUVKSEzGg7;DJ7p$V~|NHbxNsI%G;&fb*YuOhf?mU)Ot3tnXR1W zSrC*qb7{SlZpLtyBhS*e{8v}`lu3ZQDU*y8q~mk4W1cdhGIDc@3|Mhc+dpyKG%e=xq%lsDvWdrn7 z)*EF9FoLPbqO2^+u45O!qh{GZ`J4NwSM~}2qGnk&%c>cc5Hp6EBg`COb+MPQMtCPo zW??OH4`E+pCt-FHW+!28Hq1?gxrwl!ImQW2afTb1Da=e^cky01Gn9)5VKa&Opx<-A%>StYaga@m|H9c(3Ab{Ej_WG*`v5T)?{(y<17& zmC_SNG{afMUJh{-w^vEemHe)fT~+!ESycK5H(2Qbk9ZdZm1R*m1|MR7mE)6#5|pDN zRWN7eI@n2N-$UgnnlOSb$iK4OE2~{41U0K9;A3*3W)(H7$hwNURn)CgjT+RVHZ5q) z_pHTtRYmP8+u6f@e&!%{QN`_7c^d>(^;|U(c2YG3srUrnf|~BE zW(Q?3-ip9psmF@)ia zV zn60?0+84RZHEwc?JKV!A>)25pJE~(xb@WgtIUiw9buy5JY~&<2daEPvI&!EJMtgeG zmwpUj5_6c(LKX!<-2~WG-89&JUA61#z3#XCz#7)$2J3ENJG9lh1pTm8qp;3aQ(=YN$imj-faAdd!__?+zI zMc)nl`PiT+#c7Q<8u&A$!5)rs1$i`(K?Czf#zW0WH6uSo-AHvK?JzP2b{H8-X{ykH zFX)QfiZol~m-ORn1~U`;jI__l?{Qy|OIePcMQ+EgBJCNR6PnWsw-D8yj_4&yUQx1$a+6U{gP^gD z8=IlA>>97YPMYYiNk!^lo+fHHQM-vfHc_jIyK3UDn)IX(U*XS;CKFi5O17|-ZS3GD z4ssa#Z*qxyJmd+_c^L#vM>B<4tYrhTX}X(zsMFM*nx4ddnySI~=6Yb(9B`iJ{G!hN*TbL)8c{#xs+ zbrq@;P6YaD-Gt`ouXRT{(+xeg{uVv8UW#w0^(xk~o&)@W`)qv+@3!`CYwxyxfvnot zRhvY(lQtO%#lG9vRh#1IsZBY2i*4l9rXG4}(~4-^Qycfx#yz$9iUAB_C?oJKwHb>Z z+id3)`e}2O8~nus9`g)+wRs-|(H{_t*yKb{(Zwi98Nz5lYurq{YFCNq_3yb6ML9})-ewM$432H~H#`wsWlZY~R0#8T|M zot?L{^L86J$YG9R&UWVX|9us-GiSSVTtNQqu5b;1ZnRH_Jlo5%{U}y*0=Lp3F=p&g zh@zCB6qTrjSv#1uLqi(Vl;*U=O?2oF|pfD zDN(Oe8Zw|}Cp9~%*{Lw4F;}Nnw4ogx`GT(Wpf?klf}M4;vraRa&0Llu+fM7)$Y!?k zGj6k!+wAlkH~5PuJm+8Z`^AUEB|h%s3w?f(o4n+wAl~_6C2ryivwyKZ2s*ph&gSUs z+v!|}a#W-W)d{CI^>DMDqcBrvGj;BT{dMk3f4*iA_Sjj*okud7CH%zSLC_^0c~Gy5 z-*u5g7qfP;=Pnny!gX$PpBKEuKDxXM{J(hc0Wq4KD$q4KHsyLrEFv~ThU+l-?+df?4$d&Am~wv zy41%V^zdE}GxRvh|Ni++Zu1ZJ*5eURd4c=v@s{^N&@%<8u(O`#?3oU8_B3bDEMz4I zxo{^v&Dql|Jtrc^o~L*n1ij?bs}xNzW3QpuK`%S#HI{FfgIRl-wbv4svyv_BME||^ zbCAQByVr5-qjzG`qOaca?=An{dg@((!W5$fdg$Gj8Eiwn-fHx|j!b&XqPKqgBt*?V zYWDez%&6NZC+6&vm;8iLo(N>!N7j90-KRM%X@mFr^yXV;;@0}OwLS}3#8OtUil6zF zBOK#*{y>g>?6;2|``BBbf6!~6hrGqEzWjig*wdHU(Ce4E38f@u(C?S}{jveA(c72p z>4-PJyv7aw;_o2nTL-iB?Zub$<7?bz-(ieo4C9%^RF+|Hea+K%4ep@tMmFPS`)+3! zd)UWi-UY!|pP{#}+A#rt-hE~Mugusl0UzOe>u0`x>G&M8^|Ob5g(!+0_bY{2`_;g= z)~_D+(ys|->DLN-={JhSc&DGf`t4vhdg^Bf{p_Hh9rV*fKRf96CJ6e=vwt}1^;e_6 zO!~X${zEZ;|L;+=zncBc+h5)O>h|Bue(bmZLC$avIrq2A{`W9v|7X1572X>VkB=#i zxdxbPKshQ>nQGJ|f)0E^S9)M)1NzXHA&h1m6Pbcxadq#z}!8OwLfWHxSmU=q?{M+5C>U{Oj?nlLJ0j)CSFXpVvA7#K}^ zI%1xIUFeQ^2FiQjR}5ev?r`8-c5*cc27Q3L7-aW@x?v}S)?k-|PH~nCTtxPR9$=n9 z&-jM!Dbw6mcbdwL>BB~uzm;2d$8UH>us>!2FrV}?_;p<84za%>OW1&VL$)E0 zA!-gefSN_oH0^OK!`#C#_dU#;!`$Dnc`Rfxav!!5`3&36F7~jWpE-!0hTRQ<;jxg# z@G7)J-QngMKAuTTWm*u7NKOT6BcBoS86lq$@)@DO5pH)xcY5(9vKk?)5kryH2>Fay zg?){%pAl|!#4%2AinClmHY4ugR!6vt5%xFY1uwC`5i%O_J_ts-myuAwCI7Oj^<-gHc(?Mh$QXjaGNGx}!VLi7xntN6T!qZ)CI`jXuh8 z{y;{fWi$F#5R8dI0y2}GFzWIJUFkt@^f;y;Un8S2V;Ijw+{_p^GiD)+*vuZhImVk~ z>}AYJu5yQaJVc&j-0PVCf?#Y2F^Nq)65!8{vAHqx*mBgOA&qH1|wY#z28t1KX-WunvadAn<=g4@h6wL#!a5% z9>%@G4CCJMJ_yE}W4!&1_uY**%lJY>GnIYFd4ijq5RTp^_|GTIXCuFG2=7kt)`T0_ z$%MD4KS53t-QUE7xZ#QRFflK3nOK-&l%x!HGqEC7kkdr(O{|TqCfdowUf9P(_cKu+ z69+LASxp>;oF-0SGT$Jpi8GkRkLYpY72XHIBzv0V9wvEXl3Smo)+GP_q;>2^R+HV% z@JQ9+GJu@Y#$wY37qK}!?s7VB} znAs3n%xsE3-)0VDGE~N(-dU6QmYK}Kyt5Xf_AJ@YI>vE+#|~y);VRd-!6P2?1UbwO!7gUo#caEn zEsxoWsYG3x&>VL(I~sR1+pW&-h3{gvdzt+;`kd_sX1@-CIoWV)bL?!6e>TTAGe<^q zMl%jOn4AOBcTe-ZJKwwWy*po4^JO*PtqeZBHzg(GcPjdqU+q?FCOriXPAF+Y}~|RH?i1FEKW{Z zvLO4#IVngH-0xy}EUrofb#WK5Hc9%yyaV$kP%MWps zIKVH+Y=xXw=w-zXZgGcuJmfX+f?#Dp3_c_-@zLYT64XaOD_dfJE8Ef) z-|EWV=xgO*hB1=S_zqXLiuBwfHzUmBeSalCMtkTOW zy{yv9syDdd)oyroOj7X)`dTfM)tSgbHgb{&`&(^)t1D0oH?n#xOELTEquk-LL{Dp@ zXh%Q3#?IE-*;+eWJBIO0Vk*;F&JV0%J>FltnQiREH@S8n2Qc5-lgM@Lc`kApy{-LU zUyp-eonF>OqK|b=QEQ#wuKNW$S$6|-tdr5Y*Vx0lcR{fJL*%mFEv`4$`Y_59PGh>z zonCy2`PQ3nz4_J;!+h(_w|)-uk>~m)m~Z_`R^uC5zmXr2@p}ENm+^W%Y_OjVIjKl( zIx&z@Oy(QDWhUO(Fb}zHklO~iZH!AwJ|->t+&F~csIl=1=HB>_Cqb|&0Uwc(O!yWy zeNI`b(i`t@Qe%@Eo6NUq3f|qcki{&+Y@1fGjUDX5E&iAaHGeeIk9o*PLFD^mY2^E3 z1uEfQejJN=e%yo_KmM=A0e(SFKOW)lAh6D0vpzTLbF)4-*TcRy+xOt?xbwy(`Q`I%qQ$L3?4;3QZ17q_(e zT@YAnuq6f`VkcYVyv1&}Btza?QWJ_>+foSM;1-!|k;xXBY>~;9%DCe#zNsw{)S)>o zG2525j6vU9^u1*kbJ@#p97lg!PNBE0G11S~IK;<3wt91GDaud|d2Q`MFZ%Em?riG{ z`)#t{rvGi@S&MwP z+4Z(xIK)xBv+WG$`IAfB;x12k69n7MwLLc8-=2^pBts9|Gn17Z&>b0Um%;WyjAjZl-o6O8zFp7TH}E4{*^d6V>wEiYE+d!ikI?J(XT0DQ`re`M z9s1qz3F+|-?#O~(cj$G8UU%qqhhBH+b%$PeL{Jw!?`TA0+R&M9^g!P`zT_+1`Hpc+ z<6CAjn|Un2UU!&b#}0O}hyDD7J?wBpJI--|ipM{&wii7HgXj5}-55O=<_BVW)JJK1Trop!R*PIlVKPCME84bz#y zEZpnPC9Gi`=G(amALY(%m}}<|j&XuBoX31S&9~FecA9PHE8g-x2zGryEZo_yBz#O- zJ|zQY++}yW@=%1bl%pb*G25;h)TbHk=zx3M<=%F6!|rzVXE-A<->$JtU=nj!$YPeU zinW+;m-%+t-!8N5I?f-s!CiK@>rZ?)yKeE2Cp_Z?X53|WyJM1&l%ysN=`h>wjO3&s zr6_~%dUpjXVRyT06Gaoux4Q+ciN;*J-Q(_le9cfsV7}ev+iicl&9-|9%lQGj+r6HR z?Br*Dpe1uuEc|7Nti193>oC!{4k zpJBEGpA$+^!YEHgs!$EPJ5Zlyw7`4^+R%;;nCrk-48VK`hB6#;9Wd7cJ3KHW2o8?n zTg-NF4ePPLgIn0nF7|SOUpT~N%y#ew?(*Pm%z4oFckmHUc+S7P3W8r#QV4ta)i?6% ze17Im5FC=hA$vSzcZX_XUx(^qwnJt+WS&DEvA09r=t*z-(vMNt*&*NCp{cmbL$jER zcMk363iq&wL-ue;Plw(H!QmKuh#n5dCn1H2L@tNbJFLdx4anrMEDj&$5^5e+^YCMy zq3+=~{1*gALQwliGE$L&&&WhB?Da@V!YEHAs^ead)W-Zr?DL2_Jz_^kW;2h4EM^%i zS&e%mH7X(KG^mx?#N8^%!#OV3xN2DeVpQ87pnX#v% zImk_33Sh5C%VB><&2h9U@;a)Aqx(3(FG28I7V=XN8UI!cbNnXP-}L_5R(1rzv9x3- zC*C>conyYoV=_2qr^oE$*!Mwjyd_<56UTetCXQd=Hg~wogCO|b&Hdh%_H?8(zv18g z{UVpS76d0MQipc<_fGitPN;pNCw=&e0Ssa&BXDOY^mIZ`Cl<1ZrL5owRhrG!2q)bn$cd|TH zs7^TU=wt(AaI!H2k>knbtVLfZe?;~t_pqOzImjX21i>kLKP8(}>YY;KR2RA-k5eO= ziJGU>JZ0Wf>rnU97PhkswND+x{HNr7>IQ%DH}`qOQ=SLG>6j$tbKJpc-^*#=%V~3- zc5A1LQi9Ti;qFeG?{pKI(SlY))1FS)i?m;i6pwH8%co76=KA|ja7{>SL`OL2z zLGNdN=RDWZ`x(8Txyu9ef5ta;_5)%OhlC^{IUk|#v-Q#2*$#Yx@B6Ht&dTzv+d4al zA?V@kDr9x`eGr^e@0=Rvvf=wXR{;HTLjyFI7wId#u<$DHTBMD25G_OI*yDM9 zpV#;K%Cu!H-aIeU^YXtS{|m)vNN)xrhYQ0Q$s}gr&Mx@gE-c`C%y3~no7u)r_VE*L z_`)Id{%2fLl8y}M>rZ|CnVY=G^Up#Qp#@Xfh=fy=VWd$<3xRwo= z@8V&O;yy3R^5RL(aE=RH;tJRJF9M|4UGB%%3}z_v+0SuKp|{KDk>zDQUB1aJo(I8|50L4V1nA{TGCn3P z>G=$MyP}6H15x|Ra(=|!UXjHW^Iy5jQ`Eew=2g48s_s>FuO=l0ZuP3#SMBO*A*xZ6 z2<+&p9bIii6PnWsf1X@zkNK{e@9I#7GmplkB2;Jkeu76H;a*>aMxZmr=(D(JP(A)J1Oy(Q( zbbT(eyZ${((8G24U4I+|H{^Rmy&G!Ws6jZ9==a8#sCh%p8{<&-hPpSVW6m41QTxU! zwy~SN96pe2 zo{Ch)9&hUVroL}>Vk~R$=1rOYCI7$V|5sB6FcUfaC5OM3vyzSMWDooK8U6otn6q3& z|9@TQHve!RyStTuP)ZU;1u9V;J>9B}`?}SNuJqw6^m1zuvb{AL`QDm{d~dDiLJ-_m z`}Rj<#LeE8#clK7u1O2jyshT#UZ{Ip-P^vC+d~+R+PCfM_V;XIJG-!>+jeyO7Y=ch z-ts;O{cesl;?wa{-3e>!-=G|kgckSw~Iq&x4YX&n6ySh6D^W9y@BHZX*-|F3!tY$6i*~DhH zVqbUlbuTsEyw?o7zqg!&+zNvGF>p)w6JsCu^?yGdpOc-OSq?%}~h{tJSK@yUR?56${8JGltOoDc2lVNv|q z@~|{@X+T4wXhL&*XAj%ZmJZnG!_JIl1;63VN69HhQ+(f#-0LG*Jle-k*vF$o{K22- z|IsyWa+^EIt=1qq`bvUpYxa zpI5)3?khWbWzJU@Q2W(gUh)q6di?>hiAO@b_1X=*&PiG9=yfHkQiEF9)9d;)q%qAf z-)r-|?n^%gFo>ayU=;TFdOQ>P0e!xH5Cm_MP!NAcy>Z)b=CYIX$l=Xj{LMc++KZ2;d|C1*SFiy&)Yrx z!mk|R81Cuq;~;qV32MKS%ez+e=1T@+Pwy6><~wu0Tg`UVd$$jF`p%8MJIZlRaFzQ( z@ZSf-!hHY5ClN_Wfm#3a?tkgXKp~1!oRXBr-TYU9%Glw5di*b(2s$&Kb-2I(UIf8= z*}X4IbL`^1TYbNnWvpZsKe8LWzdwLX-pl0uVa)K}-ris48gBUg9q#dv$3aMthV|yH zU`8++wL>N_hZU$BvX7rQ$YFltcTRGK^IXJyAy zjAtF{ec*R7KBg$Lh|!Fe$RtKvy3&_^=s(6Fh9a97GKujmGciMqg)C+n=818XJLoZn z-eLymE2h3;CL{^T_=r@L#oICE98zCm4Q8xkuPW{nje zwPU3vJ9)@U0n8Yy1f}s-tXedoJ9Z!IOUxO|oUsNojFF5%X0aw=zF6jqrMFl=uo_v$ z+Q^S=VLSScrSDjOBI6G~#hV|>^~15O!EQgi7lg!)iyUIhA$Dp$ArrX>B_9PTj2U9P zvDnq9Nd)#5yCIEfiWy?hWhHA_&nC8^uh@Io$M3kS*jJHj?0>k=BmU(TZ*fy`LdZxx zFNJxTo=EyflOn&2Sd6mqQ%oIQoxwfg9Z7 z4t5kz|M4F46f?yCfY`(%A@&#lBkV7}{lzy!{3!GnUvKgC7GH1i`|uS57{~-BV_)&z zR{UkGWHojce+%2OxA^jnZ#M}(rZ{p*5J79ql)xJa`ZEzV6R4Tsd(=&!Zh}>~hXfl? zJHY{d$DR`W&0QW~&IHepS%TNR3qleG#K3$B<(M!X>G_Pze2!fv%t3BK$wxSynZicS zqFy4uOJui+nj?!uBN)v%WRmDx=ChDREWr$ke0Pa9vjce~+Q%>0VIn(BbPRJOPJ})a zXTaSi&Vt?&=OPbzDMJnF(tt)ZL7s`*(t%FsKe2ui|B8D^?2Z$^4?>dId6E>!B8l2b zN}*;FHIvjv-6ZNJX-rd^(~@p{%~Yl{gW1f(yh-dUiCL4lgCwh2$Io~_$zjZy#GFY^ za0;0wInPBdbCq{NNYb>(IH_+X=}1;#-$~taGWjISNkNL>o|2WMBH`#iSv?|&LN3Xg z(E@oS>p^e&VwPls8O8|QTr&M8`vbityMW%3UE?OVkz=x#ya_^*$00HDOzs;>?#7a* z$KH~=t>jtBjvSK@U?_bEdGT6m4inN6eg}8|F*lPE(9!JQJD1H`ry0@0i6L>@$TPQ%)laCKO5Id;lB@<|<#kYt!QwRuygLvE=v zkp(@Z_I7IXr5=hNQrm~W`z6HR{SuPeY^m3yFR2f5nBTCE)R!<<>KnM5)OL{i z9uI<$kCTvt%5+AKAIt0GRjg+dTi6zad{UGS^x-Q8ptn!-_Q`PM|B38BnaLdV_sL?G zu>x6rBAYbcOk>tGxva$+NEq{GqOm#6Z53?ZrYnX z#(vYGw4y5m7=#_BH-CEfmEL`& z*I)YCxb^f4_?{&!=Lc4EEeOew9JiA}jST+t45x#T&w?N%Qx$4pXPMgKZZgR{lQ%Q< zpf`Q-W+rcD@@A$9OvaxtncPvP85~8Pne$_Bnf>RP_i{G~$y$K2m@}(6v)09)vwAbD zJIQL_S-qLnn_0b?)tgzpnYBLy8H_ixPGSnvf{<)-%~qJA$TM3h{@@Dc&E^}*<{Qec zMs|H?cPrV)qec#U$&n9z#rlVW!*_sYXrYp1VE`X-rePVz0TUVwT)y$!(V0X34#p zb!=oaKXZ`79OXFr$gPjur#Z`;AS6$EO5%+?Uo#8eOrBrRe;)nk@w+@{IFG#Z$UBeU zhJH#;^5Tv{?IyH1>V=je40D9)J+uw&=tyUJ@g@Bjz(C9r>J5J%M@ZfnBq0-7$U_Oj zQ8TZad0U}wUUl<+K^MBylcDH6uQ~Hx;1X^vuYKly$P=FP67S`UO+4%+pLg@wOTLeA zxB1*{zVcMUp7Yh97ImnPKJrDQk9_9KXTE&h&_}-Be8+n9lkZs&l3(roIVgbI`HNw; z{F~T?o6LUzJIwzFr#Z);$UeUt&3~UqJmm$iu#*CbNsGP< zGuUxKa}>PBO>SWig%Xhl*%Zo6USw2AMulWl$Xyk3SB3OlC<6Hx(t9C26l#Rt3+ba! z3kETV-CPes3Wwm13YWv~3j1AQzbou_h5e?m-xO|*Jr?doABN%2qQc{t$Txh;OlGqc z`4s*e`zZX7C;ZDR-tu1%QY0a=EAknc$%+|^l-Kae`Bv#U6^@!8cO$0q(1)d5S*c z1>P=}3VjxHE5*J<4#nJTu?yVBZ;SbDvB&sLvH$(%4ex@G;tBYePmx7&Srm7t#dG0K zi_4>UJWOX_-ip6-dq@9!sh>HwMB_=6uxl}D$ z;ciQ{rxRT;Z>e6`QK^1>jaf^%;Zp9a)J*0e!&2X~gysCeYEJQQ5K>ytrR(9IN-yIW zkAsjh840Bz<|$*IGG)+HnTk}#eU|Bp-3jHu!g@L#ee;-Fk zh1WqyMRhACArop=%tHynQM2M4R5ZRZRG+K#$8lyOncmO zDfN12=<^DtfJ=$0}*agPK+JP{p@ir4edYQL~C1tEgK=-72!I z@)feIBFichu)`|z`JN@LWHsyXR+XQ)z-?qy0DV-ISyh=;l~L8Sd`brF zx@s1(VfL!IsE(ehj>TT8{>I}Vq?%c(nWdWFRr9-Qepk(Js`*W|Q1VfhnnX~S2AH*) zS*w|++Bl{%of*u=T-D4~Z8>JE=6k4iItZyA8+}z*w|Z%6qh|FcbU;Sc)vT^&^~rq0 zx2Rct9=_k|{%okejU${xM%Dk}K96{c%&N<*y3A_C$DB2ikc^LTTQxq$>^0m-jWD9| z{nk*w#?M?w-Zc~8&yt#cThniArbgy9OHmCo)T~D&QMAN2RkIyt^7m+j)SSjI=(VOE zYrYFY!u1obX1E^0WfEQjHN({muZ6nd>W0fYyfMvafx8NqQ}__{8$OEhOu`<*y%oNc zog6|&;eT?OYurR1;W7)CS-6bC{|iEDh2Yz+6^l5;!|b(WS1Tv_s%4&96IjnN%u>rN z5g!nf*!WF^-$W!OIqoVV3;8KTQOp`q8n+eEnr`?`BKq+)gE3dcSiBcuwumWg=Uxy} zJ0U5_L}Apd9Y#1UQM0z1wR_W-{-{}d7$X_YEY`7$qa5cCP9wA0GOI1K+A^zc&e~6S zhTE#`wrb0*w%q)mqeJSLzfO9}o;}%rmn2(%B-$g z>YAnQ=VT`rq2$92)HPGx_PC|GUFeRv>YA(WK+INmC_iusebrO9UJA0JWETakDD>-b&$JNR9Fzp4Mf-^i@K%o>=bfms^(ZX0|;Ix>)vikPW^ z@1#K!n$rq%H859$u9&SsPv&q8eKk-wQvQ*tQ8QBhk$EYPnvrTo`lchJXo{MV(bz*| zM`Rv3mHEghay^^a!ggd9DKmd(Mo8ozm^1P$=W$z+ZY%OCW{-3u4P#)QhL!L}!||*@ z-VIN3jtgAEZyNsZH!^D|vxa7A=&l;YAwG#nip(0htwzOAw^2^Ls2L^ysLT{W&8Tw7DyjNY7wXXMgkD?f9X-}oJSZDKb~?6k=x zo(3UJV^N!C_-)f}^rR18F@Qk~WeUE9rr$D?*~p}+{+s&#nl8dVn%Z}>IAlTY%~~=7 zH`weu{I;39|&E(qbAV)cldu(zX?KG$hAdMGGkXQLMcft)NG+< zi`KNo4qK?%qC35io4?Z|q{Te!vxRwD?82S2IKVHslNRP{VZIiZvF8@o`HS1wd5gO| z;876LGBIXt8G#+OoWe$A(^4KS<=xWnTDq^64{;~{{*I8A{{|tgd{?cCP=TscC!D&} zry)_8qm|xU$)nX^hB1-}Oy(P=^Brbs<&D^_)WCmM34f0ugUz zNNOl5h~lP|h6lW0peric-E%siX_|=P9X%(N9D_k*{NB5xGPzz&#@Ri|8+sWso8= zioK1LYdkNr82gP4h3k9(Km?i80_Tz+wPi_0%Azj&M!1IQpQgSh*~ zWe~5iga_D+GZS_%F$;T;Fqg!soJJbYBxIK8@B_Rz2|XtkvWSP+!kfH}yb?QuFu5D= zV=pE$4QC|HAgM<325#ggWS9Iow{s^eQ8#HO$+bL!*(BGqfhQT~wIEFGjrT2e7J5!C z;2vb3l6y+-DbJ-mlk!aJ8O$Li|I{{QpOSq_4*hcP-vhha{{ar;3}oB?ZNAGz*scC3 z37pw4qy9_z5m&L8>yUH5{p`P$W!%oDAWSQY72xZhvtC_w6J*8!x zRx|x$eu~`E`bNU_#hv_ZVgP~0PNSmZ1g%% z;d;h+0oi2ak=YkJneklaV;sa(rZb0&Nn_tKL+Bx6-kBbH$(VaaKN&e??#ErTlTa_K zM)p{a=M>K5Le$KvnH@ykth!k{oNdsii)^y;$jUh@=j?J;vWnH{Bl`$X@-)w~nZNQf zukt$b%I-j3zJU?uWR{azPG&io<@(5xr$`z3aW?02KHtJl=IvyDKJJw-VSf2xWR#at zzK8tt^3TgZe;ZHnW)K#paU$p8?+Z5|!-Bsl*w?}xm{s8ce#x(qWx;z@cpSS|*v#|% zj;+|k!poR%(Oip1@i}HP3+EM2=2T8YKgI81*2PPRl3)$%QNQ>nUc}6b&M3Zy%!@KF z?%{VB<#bSd&EUCBbO=2~t+|E1;J$qH7nnlb*s+d(+= zNz8A^J%>hFgc?KFu!NiN?hnat=(lV_-sQdcCIBrUPG$=Bxa$7Z=^Vmg9K&(U<^<$Xy_wbg0y|WFkTtBu zSyeNxZorJIFJi{kt^AF@^ABWK{U@>?{xF}wJ`K<10#ekuoW(eI_&Szi4#Va;ypE0h z9{mmfkw5b)ud|J}*mcIcL0Fr_ewbIyylVQa>9ID4v-t++@J+tYAVtb}|7s1|*teQ} zt6j!VSb{s%%%NruwL4hBD&$lfV;uLZ>AgM?=htU&5_35h=hn~XA}+?R*E=j=Ay;uV zGN|jnZm;Xhxr>!N%wLePZ()RW8Pv_ZzB33LA-l6DcB?T7^KKl$aeN;0ZG4e4IFotE zrQvRk^SBVXG%g{6d>R#MG;!C4y=+{8J2w`w82vZgrMW+c@M%8Fk<4TkU&eV&=QN$u zbWSr#juKsdi26q5KpvTt9R8hC3UQ4~! zjoib1sMk`j^$>Dxt>ZDCU?byf;U!){<}E$8w(%BruJsD8~dRD_DSfo9Y=0$ z8MW%d!|gYMuyZuC`5I=>kxM6r=Q^_K4ADXl9ockb)6q-k8m`A~cGT_I&CV@6 z$O~)_!mhpVntfOH-D7d5?i^0%t2ncJ7T;k$=G}E}H^m@DycgYJ>MY~AAneJ$H<7)u zU%hFVLC<-;!!e7VS@g`JXBNE^`4ZlN-Z?=yV(ue-q)~gsPL1em Date: Wed, 11 Dec 2024 13:34:10 +0900 Subject: [PATCH 11/16] =?UTF-8?q?=E2=9C=A8=20feat=20:=20=EC=97=B0=EB=9D=BD?= =?UTF-8?q?=EC=B2=98=20=EC=82=AD=EC=A0=9C=20=EC=B6=94=EA=B0=80=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...swift => AddPhoneBookViewController.swift} | 0 PokemonPhoneBook/ViewController.swift | 17 ------------ PokemonPhoneBookModel/PhoneBook.swift | 16 +++++++++++ PokemonPhoneBookModel/PokeModel.swift | 27 +++++++++++++++++++ .../.xccurrentversion | 8 ++++++ .../PokemonPhoneBook.xcdatamodel/contents | 8 ++++++ 6 files changed, 59 insertions(+), 17 deletions(-) rename PokemonPhoneBook/{AddViewController.swift => AddPhoneBookViewController.swift} (100%) delete mode 100644 PokemonPhoneBook/ViewController.swift create mode 100644 PokemonPhoneBookModel/PhoneBook.swift create mode 100644 PokemonPhoneBookModel/PokeModel.swift create mode 100644 PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/.xccurrentversion create mode 100644 PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents diff --git a/PokemonPhoneBook/AddViewController.swift b/PokemonPhoneBook/AddPhoneBookViewController.swift similarity index 100% rename from PokemonPhoneBook/AddViewController.swift rename to PokemonPhoneBook/AddPhoneBookViewController.swift diff --git a/PokemonPhoneBook/ViewController.swift b/PokemonPhoneBook/ViewController.swift deleted file mode 100644 index 0705c3e..0000000 --- a/PokemonPhoneBook/ViewController.swift +++ /dev/null @@ -1,17 +0,0 @@ -// -// ViewController.swift -// PokemonPhoneBook -// -// Created by 내일배움캠프 on 12/6/24. -// - -import UIKit -import SnapKit - -class ViewController: UIViewController { - - override func viewDidLoad() { - super.viewDidLoad() - } - -} diff --git a/PokemonPhoneBookModel/PhoneBook.swift b/PokemonPhoneBookModel/PhoneBook.swift new file mode 100644 index 0000000..aee7604 --- /dev/null +++ b/PokemonPhoneBookModel/PhoneBook.swift @@ -0,0 +1,16 @@ +// +// PhoneBook.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/6/24. +// + +import UIKit + +struct PhoneBook { + let name: String + let phoneNumber: String + let image: UIImage? +} + + diff --git a/PokemonPhoneBookModel/PokeModel.swift b/PokemonPhoneBookModel/PokeModel.swift new file mode 100644 index 0000000..ff6bf24 --- /dev/null +++ b/PokemonPhoneBookModel/PokeModel.swift @@ -0,0 +1,27 @@ +// +// PokeImage.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/10/24. +// + +import Foundation + +struct PokeModel: Decodable { + let id: Int + let name: String + let height: Int + let weight: Int + let sprites: PokeSprites +} + +struct PokeSprites: Decodable { + let frontDefault: String + let frontShiny: String + + enum CodingKeys: String, CodingKey { + case frontDefault = "front_default" + case frontShiny = "front_shiny" + } +} + diff --git a/PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/.xccurrentversion b/PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/.xccurrentversion new file mode 100644 index 0000000..e1b76cc --- /dev/null +++ b/PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/.xccurrentversion @@ -0,0 +1,8 @@ + + + + + _XCCurrentVersionName + PokemonPhoneBook.xcdatamodel + + diff --git a/PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents b/PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents new file mode 100644 index 0000000..0960308 --- /dev/null +++ b/PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file From 6cc0ef6bafbccd236425c5963ba70eafcd9d3612 Mon Sep 17 00:00:00 2001 From: HwangSeokBeom Date: Wed, 11 Dec 2024 17:13:19 +0900 Subject: [PATCH 12/16] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor=20:=20?= =?UTF-8?q?=EC=BD=94=EC=96=B4=EB=8D=B0=EC=9D=B4=ED=84=B0,=20API=20?= =?UTF-8?q?=EC=97=B0=EA=B2=B0=EC=9D=84=20Manger=20=EA=B0=9D=EC=B2=B4?= =?UTF-8?q?=EB=A1=9C=20=EB=B6=84=EB=A6=AC,=20=EB=94=94=EB=A0=89=ED=86=A0?= =?UTF-8?q?=EB=A6=AC=20model,=20view,=20controller=EB=A1=9C=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC=20//=20TODO:=20View=EC=99=80=20Controller=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC=20=EC=98=88=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AppDelegate.swift | 81 +++++++ Managers/CoreDataManger.swift | 83 +++++++ Managers/PokeAPIManager.swift | 36 +++ .../AddPhoneBookViewController.swift | 215 ------------------ PokemonPhoneBook/CoreDataManger.swift | 0 .../Managers/CoreDataManger.swift | 83 +++++++ .../Managers/PokeAPIManager.swift | 36 +++ .../PokemonPhoneBook+CoreDataClass.swift | 0 .../PokemonPhoneBook+CoreDataProperties.swift | 0 PokemonPhoneBook/Models/PhoneBook.swift | 16 ++ PokemonPhoneBook/Models/PokeModel.swift | 27 +++ .../PokemonPhoneBook+CoreDataClass.swift | 20 ++ .../PokemonPhoneBook+CoreDataProperties.swift | 27 +++ .../.xccurrentversion | 8 + .../PokemonPhoneBook.xcdatamodel/contents | 8 + PokemonPhoneBook/PhoneBookTableViewCell.swift | 83 ------- .../PhoneBookViewController.swift | 159 ------------- PokemonPhoneBook/PokeAPIManager.swift | 0 SceneDelegate.swift | 57 +++++ 19 files changed, 482 insertions(+), 457 deletions(-) create mode 100644 AppDelegate.swift create mode 100644 Managers/CoreDataManger.swift create mode 100644 Managers/PokeAPIManager.swift delete mode 100644 PokemonPhoneBook/AddPhoneBookViewController.swift create mode 100644 PokemonPhoneBook/CoreDataManger.swift create mode 100644 PokemonPhoneBook/Managers/CoreDataManger.swift create mode 100644 PokemonPhoneBook/Managers/PokeAPIManager.swift rename PokemonPhoneBook+CoreDataClass.swift => PokemonPhoneBook/Managers/PokemonPhoneBook+CoreDataClass.swift (100%) rename PokemonPhoneBook+CoreDataProperties.swift => PokemonPhoneBook/Managers/PokemonPhoneBook+CoreDataProperties.swift (100%) create mode 100644 PokemonPhoneBook/Models/PhoneBook.swift create mode 100644 PokemonPhoneBook/Models/PokeModel.swift create mode 100644 PokemonPhoneBook/Models/PokemonPhoneBook+CoreDataClass.swift create mode 100644 PokemonPhoneBook/Models/PokemonPhoneBook+CoreDataProperties.swift create mode 100644 PokemonPhoneBook/Models/PokemonPhoneBook.xcdatamodeld/.xccurrentversion create mode 100644 PokemonPhoneBook/Models/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents delete mode 100644 PokemonPhoneBook/PhoneBookTableViewCell.swift delete mode 100644 PokemonPhoneBook/PhoneBookViewController.swift create mode 100644 PokemonPhoneBook/PokeAPIManager.swift create mode 100644 SceneDelegate.swift diff --git a/AppDelegate.swift b/AppDelegate.swift new file mode 100644 index 0000000..7b199a2 --- /dev/null +++ b/AppDelegate.swift @@ -0,0 +1,81 @@ +// +// AppDelegate.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/6/24. +// + +import UIKit +import CoreData + +@main +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + // MARK: - Core Data stack + + lazy var persistentContainer: NSPersistentContainer = { + /* + The persistent container for the application. This implementation + creates and returns a container, having loaded the store for the + application to it. This property is optional since there are legitimate + error conditions that could cause the creation of the store to fail. + */ + let container = NSPersistentContainer(name: "PokemonPhoneBook") + container.loadPersistentStores(completionHandler: { (storeDescription, error) in + if let error = error as NSError? { + // Replace this implementation with code to handle the error appropriately. + // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. + + /* + Typical reasons for an error here include: + * The parent directory does not exist, cannot be created, or disallows writing. + * The persistent store is not accessible, due to permissions or data protection when the device is locked. + * The device is out of space. + * The store could not be migrated to the current model version. + Check the error message to determine what the actual problem was. + */ + fatalError("Unresolved error \(error), \(error.userInfo)") + } + }) + return container + }() + + // MARK: - Core Data Saving support + + func saveContext () { + let context = persistentContainer.viewContext + if context.hasChanges { + do { + try context.save() + } catch { + // Replace this implementation with code to handle the error appropriately. + // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. + let nserror = error as NSError + fatalError("Unresolved error \(nserror), \(nserror.userInfo)") + } + } + } + +} + diff --git a/Managers/CoreDataManger.swift b/Managers/CoreDataManger.swift new file mode 100644 index 0000000..7f61aef --- /dev/null +++ b/Managers/CoreDataManger.swift @@ -0,0 +1,83 @@ +// +// CoreDataManger.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/11/24. +// + +import Foundation +import CoreData +import UIKit + +class CoreDataManager { + static let shared = CoreDataManager() + private let persistentContainer: NSPersistentContainer + + private init() { + persistentContainer = NSPersistentContainer(name: PokemonPhoneBook.className) + persistentContainer.loadPersistentStores { _, error in + if let error = error { + fatalError("Unable to load persistent stores: \(error)") + } + } + } + + var context: NSManagedObjectContext { + return persistentContainer.viewContext + } + + func createPhoneBook(name: String, phoneNumber: String, image: UIImage?) -> Bool { + let entity = NSEntityDescription.entity(forEntityName: PokemonPhoneBook.className, in: context) + let phoneBook = NSManagedObject(entity: entity!, insertInto: context) + phoneBook.setValue(name, forKey: PokemonPhoneBook.Key.name) + phoneBook.setValue(phoneNumber, forKey: PokemonPhoneBook.Key.phoneNumber) + + if let imageData = image?.pngData() { + phoneBook.setValue(imageData, forKey: PokemonPhoneBook.Key.image) + } + + do { + try context.save() + return true + } catch { + print("Failed to save phone book: \(error)") + return false + } + } + + func fetchPhoneBooks() -> [NSManagedObject] { + let fetchRequest = NSFetchRequest(entityName: PokemonPhoneBook.className) + do { + return try context.fetch(fetchRequest) + } catch { + print("Failed to fetch phone books: \(error)") + return [] + } + } + + func updatePhoneBook(phoneBook: NSManagedObject, name: String, phoneNumber: String, image: UIImage?) -> Bool { + phoneBook.setValue(name, forKey: PokemonPhoneBook.Key.name) + phoneBook.setValue(phoneNumber, forKey: PokemonPhoneBook.Key.phoneNumber) + if let imageData = image?.pngData() { + phoneBook.setValue(imageData, forKey: PokemonPhoneBook.Key.image) + } + do { + try context.save() + return true + } catch { + print("Failed to update phone book: \(error)") + return false + } + } + + func deletePhoneBook(phoneBook: NSManagedObject) -> Bool { + context.delete(phoneBook) + do { + try context.save() + return true + } catch { + print("Failed to delete phone book: \(error)") + return false + } + } +} diff --git a/Managers/PokeAPIManager.swift b/Managers/PokeAPIManager.swift new file mode 100644 index 0000000..24fffb0 --- /dev/null +++ b/Managers/PokeAPIManager.swift @@ -0,0 +1,36 @@ +// +// PokeAPIManager.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/11/24. +// + +import UIKit +import Alamofire + +class PokeAPIManager { + static let shared = PokeAPIManager() + + private init() {} + + func fetchPokemonData(url: URL, completion: @escaping (Result) -> Void) { + AF.request(url).responseDecodable(of: T.self) { response in + completion(response.result) + } + } + + func fetchImage(url: URL, completion: @escaping (Result) -> Void) { + AF.request(url).responseData { response in + switch response.result { + case .success(let data): + if let image = UIImage(data: data) { + completion(.success(image)) + } else { + completion(.failure(NSError(domain: "PokeAPIManager", code: -1, userInfo: [NSLocalizedDescriptionKey: "Invalid image data"]))) + } + case .failure(let error): + completion(.failure(error)) + } + } + } +} diff --git a/PokemonPhoneBook/AddPhoneBookViewController.swift b/PokemonPhoneBook/AddPhoneBookViewController.swift deleted file mode 100644 index c335334..0000000 --- a/PokemonPhoneBook/AddPhoneBookViewController.swift +++ /dev/null @@ -1,215 +0,0 @@ -import UIKit -import Alamofire -import SnapKit -import CoreData - -class AddViewController: UIViewController { - - private var container: NSPersistentContainer! - var phoneBook: NSManagedObject? - var isEditingMode: Bool = false - - private let pokeImageView: UIImageView = { - let imageView = UIImageView() - imageView.clipsToBounds = true - imageView.contentMode = .scaleAspectFill - imageView.layer.borderColor = UIColor.gray.cgColor - imageView.layer.borderWidth = 2 - imageView.layer.cornerRadius = 100 - return imageView - }() - - private let createButton: UIButton = { - let button = UIButton() - button.setTitle("랜덤 이미지 생성", for: .normal) - button.setTitleColor(.lightGray, for: .normal) - button.titleLabel?.font = .systemFont(ofSize: 20, weight: .light) - button.backgroundColor = .clear - button.addTarget(self, action: #selector(createButtonTapped), for: .touchUpInside) - return button - }() - - private let nameTextField: UITextField = { - let textField = UITextField() - textField.placeholder = "이름을 입력하세요" - textField.borderStyle = .roundedRect - return textField - }() - - private let phoneTextField: UITextField = { - let textField = UITextField() - textField.placeholder = "전화번호를 입력하세요" - textField.borderStyle = .roundedRect - textField.keyboardType = .phonePad - return textField - }() - - override func viewDidLoad() { - super.viewDidLoad() - view.backgroundColor = .white - let appDelegate = UIApplication.shared.delegate as! AppDelegate - self.container = appDelegate.persistentContainer - setupNavigationBar() - setupLayout() - configureEditingMode() - } - - private func setupNavigationBar() { - let addButton = UIBarButtonItem( - title: "적용", - style: .plain, - target: self, - action: #selector(addButtonTapped) - ) - - navigationItem.title = "연락처 추가" - navigationItem.rightBarButtonItem = addButton - } - - private func setupLayout() { - [ - pokeImageView, - createButton, - nameTextField, - phoneTextField - ].forEach { view.addSubview($0) } - - pokeImageView.snp.makeConstraints{ make in - make.top.equalTo(view.safeAreaLayoutGuide).offset(20) - make.centerX.equalToSuperview() - make.height.equalTo(200) - make.width.equalTo(200) - } - - createButton.snp.makeConstraints{ make in - make.top.equalTo(pokeImageView.snp.bottom).offset(20) - make.leading.equalToSuperview().offset(20) - make.trailing.equalToSuperview().offset(-20) - make.height.equalTo(50) - } - - nameTextField.snp.makeConstraints { make in - make.top.equalTo(createButton.snp.bottom).offset(20) - make.leading.equalToSuperview().offset(20) - make.trailing.equalToSuperview().offset(-20) - make.height.equalTo(50) - } - - phoneTextField.snp.makeConstraints { make in - make.top.equalTo(nameTextField.snp.bottom).offset(20) - make.leading.trailing.height.equalTo(nameTextField) - } - - } - - @objc private func createButtonTapped() { - print("이미지 생성 버튼 탭") - let randomNumber = Int.random(in: 0...100) - var urlComponents = URLComponents(string: "https://pokeapi.co/api/v2/pokemon/\(randomNumber)") - - guard let url = urlComponents?.url else { - print("잘못된 URL") - return - } - fetchData(url: url) { [weak self] (result: Result) in - guard let self else { return } - switch result { - case .success(let result): - print("\(result)") - guard let imageUrl = URL(string: result.sprites.frontDefault)else { return } - - AF.request(imageUrl).responseData{ response in - if let data = response.data , let image = UIImage(data: data){ - DispatchQueue.main.async{ - self.pokeImageView.image = image - } - } - } - case .failure(let error): - print("데이터 로드가 실패했다.") - print(error) - } - } - } - - @objc private func addButtonTapped() { - print("추가 버튼 탭됨") - guard let name = nameTextField.text, !name.isEmpty, - let phoneNumber = phoneTextField.text, !phoneNumber.isEmpty, - let image = pokeImageView.image else { - showAlert(message: "이미지생성과 이름과 전화번호를 모두 입력하세요.") - return - } - if isEditingMode { - updateData(name: name, phoneNumber: phoneNumber, image: image) - } else { - createData(name: name, phoneNumber: phoneNumber, image: image) - } - print("저장 버튼 탭됨") - navigationController?.popViewController(animated: true) - } - - private func showAlert(message: String) { - let alert = UIAlertController(title: "알림", message: message, preferredStyle: .alert) - alert.addAction(UIAlertAction(title: "확인", style: .default, handler: nil)) - present(alert, animated: true, completion: nil) - } - - // Alamofire 를 사용해서 서버 데이터를 불러오는 메서드 - private func fetchData(url: URL, completion: @escaping (Result) -> Void){ - AF.request(url).responseDecodable(of: T.self) { response in - completion(response.result) - } - } - - private func createData(name: String, phoneNumber: String, image: UIImage){ - guard let entity = NSEntityDescription.entity(forEntityName: PokemonPhoneBook.className, in: self.container.viewContext) else{return} - let newPhoneBook = NSManagedObject(entity: entity, insertInto: self.container.viewContext) - newPhoneBook.setValue(name, forKey: PokemonPhoneBook.Key.name) - newPhoneBook.setValue(phoneNumber, forKey: PokemonPhoneBook.Key.phoneNumber) - // UIImage -> Data로 변환하여 저장 - if let imageData = image.pngData() { - newPhoneBook.setValue(imageData, forKey: PokemonPhoneBook.Key.image) - } - - do{ - try self.container.viewContext.save() - print("문맥 저장 성공") - } catch{ - print("문맥 저장 실패") - } - } - - private func updateData(name: String, phoneNumber: String, image: UIImage){ - - guard let phoneBook = phoneBook else { - print("편집 중인 연락처가 없습니다.") - return - } - phoneBook.setValue(name, forKey: PokemonPhoneBook.Key.name) - phoneBook.setValue(phoneNumber, forKey: PokemonPhoneBook.Key.phoneNumber) - - if let imageData = image.pngData() { - phoneBook.setValue(imageData, forKey: PokemonPhoneBook.Key.image) - } - do { - try self.container.viewContext.save() - print("데이터 업데이트 성공") - } catch { - print("데이터 업데이트 실패: \(error)") - } - } - - private func configureEditingMode() { - guard isEditingMode, let phoneBook = phoneBook else { return } - navigationItem.title = phoneBook.value(forKey: PokemonPhoneBook.Key.name) as? String - nameTextField.text = phoneBook.value(forKey: PokemonPhoneBook.Key.name) as? String - phoneTextField.text = phoneBook.value(forKey: PokemonPhoneBook.Key.phoneNumber) as? String - - if let imageData = phoneBook.value(forKey: PokemonPhoneBook.Key.image) as? Data { - pokeImageView.image = UIImage(data: imageData) - } else { - pokeImageView.image = nil - } - } -} diff --git a/PokemonPhoneBook/CoreDataManger.swift b/PokemonPhoneBook/CoreDataManger.swift new file mode 100644 index 0000000..e69de29 diff --git a/PokemonPhoneBook/Managers/CoreDataManger.swift b/PokemonPhoneBook/Managers/CoreDataManger.swift new file mode 100644 index 0000000..7f61aef --- /dev/null +++ b/PokemonPhoneBook/Managers/CoreDataManger.swift @@ -0,0 +1,83 @@ +// +// CoreDataManger.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/11/24. +// + +import Foundation +import CoreData +import UIKit + +class CoreDataManager { + static let shared = CoreDataManager() + private let persistentContainer: NSPersistentContainer + + private init() { + persistentContainer = NSPersistentContainer(name: PokemonPhoneBook.className) + persistentContainer.loadPersistentStores { _, error in + if let error = error { + fatalError("Unable to load persistent stores: \(error)") + } + } + } + + var context: NSManagedObjectContext { + return persistentContainer.viewContext + } + + func createPhoneBook(name: String, phoneNumber: String, image: UIImage?) -> Bool { + let entity = NSEntityDescription.entity(forEntityName: PokemonPhoneBook.className, in: context) + let phoneBook = NSManagedObject(entity: entity!, insertInto: context) + phoneBook.setValue(name, forKey: PokemonPhoneBook.Key.name) + phoneBook.setValue(phoneNumber, forKey: PokemonPhoneBook.Key.phoneNumber) + + if let imageData = image?.pngData() { + phoneBook.setValue(imageData, forKey: PokemonPhoneBook.Key.image) + } + + do { + try context.save() + return true + } catch { + print("Failed to save phone book: \(error)") + return false + } + } + + func fetchPhoneBooks() -> [NSManagedObject] { + let fetchRequest = NSFetchRequest(entityName: PokemonPhoneBook.className) + do { + return try context.fetch(fetchRequest) + } catch { + print("Failed to fetch phone books: \(error)") + return [] + } + } + + func updatePhoneBook(phoneBook: NSManagedObject, name: String, phoneNumber: String, image: UIImage?) -> Bool { + phoneBook.setValue(name, forKey: PokemonPhoneBook.Key.name) + phoneBook.setValue(phoneNumber, forKey: PokemonPhoneBook.Key.phoneNumber) + if let imageData = image?.pngData() { + phoneBook.setValue(imageData, forKey: PokemonPhoneBook.Key.image) + } + do { + try context.save() + return true + } catch { + print("Failed to update phone book: \(error)") + return false + } + } + + func deletePhoneBook(phoneBook: NSManagedObject) -> Bool { + context.delete(phoneBook) + do { + try context.save() + return true + } catch { + print("Failed to delete phone book: \(error)") + return false + } + } +} diff --git a/PokemonPhoneBook/Managers/PokeAPIManager.swift b/PokemonPhoneBook/Managers/PokeAPIManager.swift new file mode 100644 index 0000000..24fffb0 --- /dev/null +++ b/PokemonPhoneBook/Managers/PokeAPIManager.swift @@ -0,0 +1,36 @@ +// +// PokeAPIManager.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/11/24. +// + +import UIKit +import Alamofire + +class PokeAPIManager { + static let shared = PokeAPIManager() + + private init() {} + + func fetchPokemonData(url: URL, completion: @escaping (Result) -> Void) { + AF.request(url).responseDecodable(of: T.self) { response in + completion(response.result) + } + } + + func fetchImage(url: URL, completion: @escaping (Result) -> Void) { + AF.request(url).responseData { response in + switch response.result { + case .success(let data): + if let image = UIImage(data: data) { + completion(.success(image)) + } else { + completion(.failure(NSError(domain: "PokeAPIManager", code: -1, userInfo: [NSLocalizedDescriptionKey: "Invalid image data"]))) + } + case .failure(let error): + completion(.failure(error)) + } + } + } +} diff --git a/PokemonPhoneBook+CoreDataClass.swift b/PokemonPhoneBook/Managers/PokemonPhoneBook+CoreDataClass.swift similarity index 100% rename from PokemonPhoneBook+CoreDataClass.swift rename to PokemonPhoneBook/Managers/PokemonPhoneBook+CoreDataClass.swift diff --git a/PokemonPhoneBook+CoreDataProperties.swift b/PokemonPhoneBook/Managers/PokemonPhoneBook+CoreDataProperties.swift similarity index 100% rename from PokemonPhoneBook+CoreDataProperties.swift rename to PokemonPhoneBook/Managers/PokemonPhoneBook+CoreDataProperties.swift diff --git a/PokemonPhoneBook/Models/PhoneBook.swift b/PokemonPhoneBook/Models/PhoneBook.swift new file mode 100644 index 0000000..aee7604 --- /dev/null +++ b/PokemonPhoneBook/Models/PhoneBook.swift @@ -0,0 +1,16 @@ +// +// PhoneBook.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/6/24. +// + +import UIKit + +struct PhoneBook { + let name: String + let phoneNumber: String + let image: UIImage? +} + + diff --git a/PokemonPhoneBook/Models/PokeModel.swift b/PokemonPhoneBook/Models/PokeModel.swift new file mode 100644 index 0000000..ff6bf24 --- /dev/null +++ b/PokemonPhoneBook/Models/PokeModel.swift @@ -0,0 +1,27 @@ +// +// PokeImage.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/10/24. +// + +import Foundation + +struct PokeModel: Decodable { + let id: Int + let name: String + let height: Int + let weight: Int + let sprites: PokeSprites +} + +struct PokeSprites: Decodable { + let frontDefault: String + let frontShiny: String + + enum CodingKeys: String, CodingKey { + case frontDefault = "front_default" + case frontShiny = "front_shiny" + } +} + diff --git a/PokemonPhoneBook/Models/PokemonPhoneBook+CoreDataClass.swift b/PokemonPhoneBook/Models/PokemonPhoneBook+CoreDataClass.swift new file mode 100644 index 0000000..25f76b8 --- /dev/null +++ b/PokemonPhoneBook/Models/PokemonPhoneBook+CoreDataClass.swift @@ -0,0 +1,20 @@ +// +// PokemonPhoneBook+CoreDataClass.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/10/24. +// +// + +import Foundation +import CoreData + +@objc(PokemonPhoneBook) +public class PokemonPhoneBook: NSManagedObject { + public static let className = "PokemonPhoneBook" + public enum Key { + static let name = "name" + static let phoneNumber = "phoneNumber" + static let image = "image" + } +} diff --git a/PokemonPhoneBook/Models/PokemonPhoneBook+CoreDataProperties.swift b/PokemonPhoneBook/Models/PokemonPhoneBook+CoreDataProperties.swift new file mode 100644 index 0000000..efe498b --- /dev/null +++ b/PokemonPhoneBook/Models/PokemonPhoneBook+CoreDataProperties.swift @@ -0,0 +1,27 @@ +// +// PokemonPhoneBook+CoreDataProperties.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/10/24. +// +// + +import Foundation +import CoreData + + +extension PokemonPhoneBook { + + @nonobjc public class func fetchRequest() -> NSFetchRequest { + return NSFetchRequest(entityName: "PokemonPhoneBook") + } + + @NSManaged public var name: String? + @NSManaged public var phoneNumber: String? + @NSManaged public var image: Data? + +} + +extension PokemonPhoneBook : Identifiable { + +} diff --git a/PokemonPhoneBook/Models/PokemonPhoneBook.xcdatamodeld/.xccurrentversion b/PokemonPhoneBook/Models/PokemonPhoneBook.xcdatamodeld/.xccurrentversion new file mode 100644 index 0000000..e1b76cc --- /dev/null +++ b/PokemonPhoneBook/Models/PokemonPhoneBook.xcdatamodeld/.xccurrentversion @@ -0,0 +1,8 @@ + + + + + _XCCurrentVersionName + PokemonPhoneBook.xcdatamodel + + diff --git a/PokemonPhoneBook/Models/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents b/PokemonPhoneBook/Models/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents new file mode 100644 index 0000000..0960308 --- /dev/null +++ b/PokemonPhoneBook/Models/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/PokemonPhoneBook/PhoneBookTableViewCell.swift b/PokemonPhoneBook/PhoneBookTableViewCell.swift deleted file mode 100644 index 661da48..0000000 --- a/PokemonPhoneBook/PhoneBookTableViewCell.swift +++ /dev/null @@ -1,83 +0,0 @@ -// -// Untitled.swift -// PokemonPhoneBook -// -// Created by 내일배움캠프 on 12/6/24. -// -import UIKit -import SnapKit - - -class PhoneBookTableViewCell: UITableViewCell { - static let identifier = "PhoneBookTableViewCell" - - private let pokeImageView: UIImageView = { - let imageView = UIImageView() - imageView.clipsToBounds = true - imageView.contentMode = .scaleAspectFill - imageView.layer.borderColor = UIColor.gray.cgColor - imageView.layer.borderWidth = 2 - imageView.layer.cornerRadius = 25 - return imageView - }() - - private let nameLabel: UILabel = { - let label = UILabel() - label.font = UIFont.systemFont(ofSize: 18, weight: .medium) - label.textColor = .black - return label - }() - - private let phoneNumberLabel: UILabel = { - let label = UILabel() - label.font = UIFont.systemFont(ofSize: 18, weight: .medium) - label.textColor = .black - return label - }() - - private lazy var labelsStackView: UIStackView = { - let stackView = UIStackView(arrangedSubviews: [nameLabel, phoneNumberLabel]) - stackView.axis = .horizontal - stackView.distribution = .fillEqually - stackView.spacing = 10 - stackView.alignment = .center - return stackView - }() - - override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { - super.init(style: style, reuseIdentifier: reuseIdentifier) - setupViews() - setupLayout() - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - private func setupViews() { - contentView.addSubview(pokeImageView) - contentView.addSubview(labelsStackView) - } - - private func setupLayout() { - pokeImageView.snp.makeConstraints { make in - make.width.height.equalTo(50) - make.leading.equalToSuperview().offset(15) - make.centerY.equalToSuperview() - } - - labelsStackView.snp.makeConstraints { make in - make.leading.equalTo(pokeImageView.snp.trailing).offset(20) - make.trailing.equalToSuperview().offset(-15) - make.centerY.equalToSuperview() - } - } - - func configure(with phoneBook: PhoneBook) { - nameLabel.text = phoneBook.name - phoneNumberLabel.text = phoneBook.phoneNumber - if let image = phoneBook.image { - pokeImageView.image = image - } - } -} diff --git a/PokemonPhoneBook/PhoneBookViewController.swift b/PokemonPhoneBook/PhoneBookViewController.swift deleted file mode 100644 index 1ed8af1..0000000 --- a/PokemonPhoneBook/PhoneBookViewController.swift +++ /dev/null @@ -1,159 +0,0 @@ -// -// ViewController.swift -// PokemonPhoneBook -// -// Created by 내일배움캠프 on 12/6/24. -// - -import UIKit -import SnapKit -import CoreData - -class PhoneBookViewController: UIViewController { - - private var container: NSPersistentContainer! - private var phoneBook: [PhoneBook] = [] - private var phoneBookList: [NSManagedObject] = [] - - private let titleLabel: UILabel = { - let label = UILabel() - label.text = "친구 목록" - label.textColor = .black - label.font = .boldSystemFont(ofSize: 30) - label.textAlignment = .center - return label - }() - - private let addButton: UIButton = { - let button = UIButton() - button.setTitle("추가", for: .normal) - button.setTitleColor(.lightGray, for: .normal) - button.titleLabel?.font = .boldSystemFont(ofSize: 20) - button.backgroundColor = .clear - button.addTarget(self, action: #selector(addButtonTapped), for: .touchUpInside) - return button - }() - - private let stackView: UIStackView = { - let stackView = UIStackView() - stackView.axis = .horizontal - stackView.alignment = .center - stackView.distribution = .fillEqually - stackView.spacing = 30 - return stackView - }() - - private lazy var tableView: UITableView = { - let tableView = UITableView() - tableView.backgroundColor = .white - tableView.delegate = self - tableView.dataSource = self - tableView.register(PhoneBookTableViewCell.self, forCellReuseIdentifier: PhoneBookTableViewCell.identifier) - return tableView - }() - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - self.navigationController?.setNavigationBarHidden(true, animated: animated) - fetchData() - } - - override func viewDidLoad() { - super.viewDidLoad() - let appDelegate = UIApplication.shared.delegate as! AppDelegate - self.container = appDelegate.persistentContainer - configureUI() - loadPhoneBook() - } - - override func viewWillDisappear(_ animated: Bool) { - super.viewWillDisappear(animated) - self.navigationController?.setNavigationBarHidden(false, animated: animated) - } - - private func configureUI() { - view.backgroundColor = .white - [ - stackView, - tableView - ].forEach { view.addSubview($0) } - - stackView.addArrangedSubview(UIView()) - stackView.addArrangedSubview(titleLabel) - stackView.addArrangedSubview(addButton) - - stackView.snp.makeConstraints { make in - make.centerX.equalToSuperview() - make.leading.equalTo(5) - make.trailing.equalTo(-5) - make.top.equalTo(view.safeAreaLayoutGuide.snp.top).offset(20) - } - tableView.snp.makeConstraints { make in - make.top.equalTo(stackView.snp.bottom).offset(60) - make.left.right.equalToSuperview() - make.bottom.equalToSuperview() - } - } - - private func loadPhoneBook() { - tableView.reloadData() - } - - @objc private func addButtonTapped() { - let addVC = AddViewController() // 연락처 추가 페이지 인스턴스 생성 - self.tableView.reloadData() - navigationController?.pushViewController(addVC, animated: true) - } - - private func fetchData() { - let fetchRequest = NSFetchRequest(entityName: PokemonPhoneBook.className) - // 이름 순으로 정렬되게 정렬 조건 추가 - let sortDescriptor = NSSortDescriptor(key: PokemonPhoneBook.Key.name, ascending: true) - fetchRequest.sortDescriptors = [sortDescriptor] - do { - phoneBookList = try self.container.viewContext.fetch(fetchRequest) - tableView.reloadData() // 데이터를 가져온 후 테이블 뷰 갱신 - } catch { - print("데이터 불러오기 실패: \(error.localizedDescription)") - } - } -} - -extension PhoneBookViewController: UITableViewDelegate, UITableViewDataSource { - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - return 80 // 셀 높이를 80으로 설정 - } - - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return phoneBookList.count - } - - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - guard let cell = tableView.dequeueReusableCell(withIdentifier: PhoneBookTableViewCell.identifier, for: indexPath) as? PhoneBookTableViewCell else { - return UITableViewCell() - } - let managedObject = phoneBookList[indexPath.row] - if let name = managedObject.value(forKey: PokemonPhoneBook.Key.name) as? String, - let phoneNumber = managedObject.value(forKey: PokemonPhoneBook.Key.phoneNumber) as? String, - let imageData = managedObject.value(forKey: PokemonPhoneBook.Key.image) as? Data, - let image = UIImage(data: imageData) { - let phoneBook = PhoneBook(name: name, phoneNumber: phoneNumber, image: image) - cell.configure(with: phoneBook) - } - return cell - } - - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - tableView.deselectRow(at: indexPath, animated: true) - let phoneBook = phoneBookList[indexPath.row] - print(phoneBook) - let addVC = AddViewController() - addVC.phoneBook = phoneBook - addVC.isEditingMode = true - self.tableView.reloadData() - navigationController?.pushViewController(addVC, animated: true) - } -} - - - diff --git a/PokemonPhoneBook/PokeAPIManager.swift b/PokemonPhoneBook/PokeAPIManager.swift new file mode 100644 index 0000000..e69de29 diff --git a/SceneDelegate.swift b/SceneDelegate.swift new file mode 100644 index 0000000..46d7dff --- /dev/null +++ b/SceneDelegate.swift @@ -0,0 +1,57 @@ +// +// SceneDelegate.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/6/24. +// + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + guard let windowScene = (scene as? UIWindowScene) else { return } + let window = UIWindow(windowScene: windowScene) + let navigationController = UINavigationController(rootViewController: PhoneBookViewController()) + window.rootViewController = navigationController + window.makeKeyAndVisible() + self.window = window + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + + // Save changes in the application's managed object context when the application transitions to the background. + (UIApplication.shared.delegate as? AppDelegate)?.saveContext() + } + + +} + From a1281ac094cd68c33207ce97fd6c35367eb0ff00 Mon Sep 17 00:00:00 2001 From: HwangSeokBeom Date: Wed, 11 Dec 2024 17:42:57 +0900 Subject: [PATCH 13/16] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor=20:=20View?= =?UTF-8?q?=EC=99=80=20Controller=201=EC=B0=A8=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PokemonPhoneBook/Views/AddPhoneBookView.swift | 0 PokemonPhoneBook/Views/PhoneBookView.swift | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 PokemonPhoneBook/Views/AddPhoneBookView.swift create mode 100644 PokemonPhoneBook/Views/PhoneBookView.swift diff --git a/PokemonPhoneBook/Views/AddPhoneBookView.swift b/PokemonPhoneBook/Views/AddPhoneBookView.swift new file mode 100644 index 0000000..e69de29 diff --git a/PokemonPhoneBook/Views/PhoneBookView.swift b/PokemonPhoneBook/Views/PhoneBookView.swift new file mode 100644 index 0000000..e69de29 From d8309919513aed4a173dff76618fe0bb2e0dc10b Mon Sep 17 00:00:00 2001 From: HwangSeokBeom Date: Wed, 11 Dec 2024 19:17:58 +0900 Subject: [PATCH 14/16] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor=20:=20API?= =?UTF-8?q?=EB=AA=A8=EB=8D=B8=20=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD,?= =?UTF-8?q?=20=EB=9E=9C=EB=8D=A4=EC=9D=B4=EB=AF=B8=EC=A7=80=200~100?= =?UTF-8?q?=EC=9D=B4=EB=8D=98=EA=B1=B0=200~1000=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PokemonPhoneBook/Models/{PokeModel.swift => Pokemon.swift} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename PokemonPhoneBook/Models/{PokeModel.swift => Pokemon.swift} (100%) diff --git a/PokemonPhoneBook/Models/PokeModel.swift b/PokemonPhoneBook/Models/Pokemon.swift similarity index 100% rename from PokemonPhoneBook/Models/PokeModel.swift rename to PokemonPhoneBook/Models/Pokemon.swift From 80c595ad7c1719799b7a91b69b98a41932839b52 Mon Sep 17 00:00:00 2001 From: HwangSeokBeom Date: Mon, 16 Dec 2024 10:06:20 +0900 Subject: [PATCH 15/16] .... test --- .DS_Store | Bin 0 -> 6148 bytes AppDelegate.swift | 81 ------------- Managers/CoreDataManger.swift | 83 ------------- Managers/PokeAPIManager.swift | 36 ------ PokemonPhoneBook.xcodeproj/project.pbxproj | 24 ++-- .../UserInterfaceState.xcuserstate | Bin 143971 -> 201284 bytes PokemonPhoneBook/AppDelegate.swift | 2 - .../AddPhoneBookViewController.swift | 109 +++++++++++++++++ .../Controllers/PhoneBookViewController.swift | 111 ++++++++++++++++++ PokemonPhoneBook/CoreDataManger.swift | 0 .../Managers/CoreDataManger.swift | 2 + .../PokemonPhoneBook+CoreDataClass.swift | 20 ---- .../PokemonPhoneBook+CoreDataProperties.swift | 27 ----- PokemonPhoneBook/Models/Pokemon.swift | 8 +- PokemonPhoneBook/PhoneBook.swift | 16 --- PokemonPhoneBook/PokeAPIManager.swift | 0 PokemonPhoneBook/PokeModel.swift | 27 ----- .../.xccurrentversion | 8 -- .../PokemonPhoneBook.xcdatamodel/contents | 8 -- PokemonPhoneBook/Views/AddPhoneBookView.swift | 105 +++++++++++++++++ .../Views/PhoneBookTableViewCell.swift | 83 +++++++++++++ PokemonPhoneBook/Views/PhoneBookView.swift | 79 +++++++++++++ PokemonPhoneBookModel/PhoneBook.swift | 16 --- PokemonPhoneBookModel/PokeModel.swift | 27 ----- .../.xccurrentversion | 8 -- .../PokemonPhoneBook.xcdatamodel/contents | 8 -- SceneDelegate.swift | 57 --------- 27 files changed, 506 insertions(+), 439 deletions(-) create mode 100644 .DS_Store delete mode 100644 AppDelegate.swift delete mode 100644 Managers/CoreDataManger.swift delete mode 100644 Managers/PokeAPIManager.swift create mode 100644 PokemonPhoneBook/Controllers/AddPhoneBookViewController.swift create mode 100644 PokemonPhoneBook/Controllers/PhoneBookViewController.swift delete mode 100644 PokemonPhoneBook/CoreDataManger.swift delete mode 100644 PokemonPhoneBook/Managers/PokemonPhoneBook+CoreDataClass.swift delete mode 100644 PokemonPhoneBook/Managers/PokemonPhoneBook+CoreDataProperties.swift delete mode 100644 PokemonPhoneBook/PhoneBook.swift delete mode 100644 PokemonPhoneBook/PokeAPIManager.swift delete mode 100644 PokemonPhoneBook/PokeModel.swift delete mode 100644 PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/.xccurrentversion delete mode 100644 PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents create mode 100644 PokemonPhoneBook/Views/PhoneBookTableViewCell.swift delete mode 100644 PokemonPhoneBookModel/PhoneBook.swift delete mode 100644 PokemonPhoneBookModel/PokeModel.swift delete mode 100644 PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/.xccurrentversion delete mode 100644 PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents delete mode 100644 SceneDelegate.swift diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a1a6972dfd0d0fccecc4013c8f03d5c44050b85d GIT binary patch literal 6148 zcmeHKO-sW-5PefCw0Oxy6hX)@2>1_TNDn;-;>TUu2%@zStKczre~iD+lfIc|4lW07&s%9RUe|0bQ{-Wb=*by84Rs;>el@H&?(Fa0Pyu0?gTJ zgPnlhx&p3%E3i~RzYi&0F^|{;v`+^cD*=doPMfi>wS>l`5%Y*mK(5dvgc3uj#1cb7 zIOo&2FOS#+4B?Pid`LW5Vud1hI{8!E4#@+0>k7C6Z3VW%Fwy)!T3`RSgM8!)xB~x5 z0qK|LWx*@O+`4i(&9y20ims;nnt;m?b}SWhucqRCx*6wF?GW>bO+e1j{71lK@WvJR HQ3XB$@9|@N literal 0 HcmV?d00001 diff --git a/AppDelegate.swift b/AppDelegate.swift deleted file mode 100644 index 7b199a2..0000000 --- a/AppDelegate.swift +++ /dev/null @@ -1,81 +0,0 @@ -// -// AppDelegate.swift -// PokemonPhoneBook -// -// Created by 내일배움캠프 on 12/6/24. -// - -import UIKit -import CoreData - -@main -class AppDelegate: UIResponder, UIApplicationDelegate { - - - - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - // Override point for customization after application launch. - return true - } - - // MARK: UISceneSession Lifecycle - - func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { - // Called when a new scene session is being created. - // Use this method to select a configuration to create the new scene with. - return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) - } - - func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { - // Called when the user discards a scene session. - // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. - // Use this method to release any resources that were specific to the discarded scenes, as they will not return. - } - - // MARK: - Core Data stack - - lazy var persistentContainer: NSPersistentContainer = { - /* - The persistent container for the application. This implementation - creates and returns a container, having loaded the store for the - application to it. This property is optional since there are legitimate - error conditions that could cause the creation of the store to fail. - */ - let container = NSPersistentContainer(name: "PokemonPhoneBook") - container.loadPersistentStores(completionHandler: { (storeDescription, error) in - if let error = error as NSError? { - // Replace this implementation with code to handle the error appropriately. - // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. - - /* - Typical reasons for an error here include: - * The parent directory does not exist, cannot be created, or disallows writing. - * The persistent store is not accessible, due to permissions or data protection when the device is locked. - * The device is out of space. - * The store could not be migrated to the current model version. - Check the error message to determine what the actual problem was. - */ - fatalError("Unresolved error \(error), \(error.userInfo)") - } - }) - return container - }() - - // MARK: - Core Data Saving support - - func saveContext () { - let context = persistentContainer.viewContext - if context.hasChanges { - do { - try context.save() - } catch { - // Replace this implementation with code to handle the error appropriately. - // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. - let nserror = error as NSError - fatalError("Unresolved error \(nserror), \(nserror.userInfo)") - } - } - } - -} - diff --git a/Managers/CoreDataManger.swift b/Managers/CoreDataManger.swift deleted file mode 100644 index 7f61aef..0000000 --- a/Managers/CoreDataManger.swift +++ /dev/null @@ -1,83 +0,0 @@ -// -// CoreDataManger.swift -// PokemonPhoneBook -// -// Created by 내일배움캠프 on 12/11/24. -// - -import Foundation -import CoreData -import UIKit - -class CoreDataManager { - static let shared = CoreDataManager() - private let persistentContainer: NSPersistentContainer - - private init() { - persistentContainer = NSPersistentContainer(name: PokemonPhoneBook.className) - persistentContainer.loadPersistentStores { _, error in - if let error = error { - fatalError("Unable to load persistent stores: \(error)") - } - } - } - - var context: NSManagedObjectContext { - return persistentContainer.viewContext - } - - func createPhoneBook(name: String, phoneNumber: String, image: UIImage?) -> Bool { - let entity = NSEntityDescription.entity(forEntityName: PokemonPhoneBook.className, in: context) - let phoneBook = NSManagedObject(entity: entity!, insertInto: context) - phoneBook.setValue(name, forKey: PokemonPhoneBook.Key.name) - phoneBook.setValue(phoneNumber, forKey: PokemonPhoneBook.Key.phoneNumber) - - if let imageData = image?.pngData() { - phoneBook.setValue(imageData, forKey: PokemonPhoneBook.Key.image) - } - - do { - try context.save() - return true - } catch { - print("Failed to save phone book: \(error)") - return false - } - } - - func fetchPhoneBooks() -> [NSManagedObject] { - let fetchRequest = NSFetchRequest(entityName: PokemonPhoneBook.className) - do { - return try context.fetch(fetchRequest) - } catch { - print("Failed to fetch phone books: \(error)") - return [] - } - } - - func updatePhoneBook(phoneBook: NSManagedObject, name: String, phoneNumber: String, image: UIImage?) -> Bool { - phoneBook.setValue(name, forKey: PokemonPhoneBook.Key.name) - phoneBook.setValue(phoneNumber, forKey: PokemonPhoneBook.Key.phoneNumber) - if let imageData = image?.pngData() { - phoneBook.setValue(imageData, forKey: PokemonPhoneBook.Key.image) - } - do { - try context.save() - return true - } catch { - print("Failed to update phone book: \(error)") - return false - } - } - - func deletePhoneBook(phoneBook: NSManagedObject) -> Bool { - context.delete(phoneBook) - do { - try context.save() - return true - } catch { - print("Failed to delete phone book: \(error)") - return false - } - } -} diff --git a/Managers/PokeAPIManager.swift b/Managers/PokeAPIManager.swift deleted file mode 100644 index 24fffb0..0000000 --- a/Managers/PokeAPIManager.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// PokeAPIManager.swift -// PokemonPhoneBook -// -// Created by 내일배움캠프 on 12/11/24. -// - -import UIKit -import Alamofire - -class PokeAPIManager { - static let shared = PokeAPIManager() - - private init() {} - - func fetchPokemonData(url: URL, completion: @escaping (Result) -> Void) { - AF.request(url).responseDecodable(of: T.self) { response in - completion(response.result) - } - } - - func fetchImage(url: URL, completion: @escaping (Result) -> Void) { - AF.request(url).responseData { response in - switch response.result { - case .success(let data): - if let image = UIImage(data: data) { - completion(.success(image)) - } else { - completion(.failure(NSError(domain: "PokeAPIManager", code: -1, userInfo: [NSLocalizedDescriptionKey: "Invalid image data"]))) - } - case .failure(let error): - completion(.failure(error)) - } - } - } -} diff --git a/PokemonPhoneBook.xcodeproj/project.pbxproj b/PokemonPhoneBook.xcodeproj/project.pbxproj index 85155ae..e6a4d39 100644 --- a/PokemonPhoneBook.xcodeproj/project.pbxproj +++ b/PokemonPhoneBook.xcodeproj/project.pbxproj @@ -9,8 +9,6 @@ /* Begin PBXBuildFile section */ 99F6F24D2D03148C002E7842 /* SnapKit in Frameworks */ = {isa = PBXBuildFile; productRef = 99F6F24C2D03148C002E7842 /* SnapKit */; }; 99F6F2502D03149D002E7842 /* Alamofire in Frameworks */ = {isa = PBXBuildFile; productRef = 99F6F24F2D03149D002E7842 /* Alamofire */; }; - 99F6F2EC2D081541002E7842 /* PokemonPhoneBook+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F6F2EA2D081541002E7842 /* PokemonPhoneBook+CoreDataClass.swift */; }; - 99F6F2ED2D081541002E7842 /* PokemonPhoneBook+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F6F2EB2D081541002E7842 /* PokemonPhoneBook+CoreDataProperties.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -34,25 +32,35 @@ 99F6F1C92D030AD6002E7842 /* PokemonPhoneBook.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PokemonPhoneBook.app; sourceTree = BUILT_PRODUCTS_DIR; }; 99F6F1E22D030AD7002E7842 /* PokemonPhoneBookTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PokemonPhoneBookTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 99F6F1EC2D030AD7002E7842 /* PokemonPhoneBookUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PokemonPhoneBookUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 99F6F2EA2D081541002E7842 /* PokemonPhoneBook+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PokemonPhoneBook+CoreDataClass.swift"; sourceTree = ""; }; - 99F6F2EB2D081541002E7842 /* PokemonPhoneBook+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PokemonPhoneBook+CoreDataProperties.swift"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - 99F6F1F42D030AD7002E7842 /* Exceptions for "PokemonPhoneBook" folder in "PokemonPhoneBook" target */ = { + 99F6F2F42D097CF5002E7842 /* Exceptions for "PokemonPhoneBook" folder in "PokemonPhoneBook" target */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( Info.plist, + Models/PokemonPhoneBook.xcdatamodeld, ); target = 99F6F1C82D030AD6002E7842 /* PokemonPhoneBook */; }; /* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ +/* Begin PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet section */ + 99F6F2FD2D097D05002E7842 /* Exceptions for "PokemonPhoneBook" folder in "Compile Sources" phase from "PokemonPhoneBook" target */ = { + isa = PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet; + buildPhase = 99F6F1C52D030AD6002E7842 /* Sources */; + membershipExceptions = ( + Models/PokemonPhoneBook.xcdatamodeld, + ); + }; +/* End PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet section */ + /* Begin PBXFileSystemSynchronizedRootGroup section */ 99F6F1CB2D030AD6002E7842 /* PokemonPhoneBook */ = { isa = PBXFileSystemSynchronizedRootGroup; exceptions = ( - 99F6F1F42D030AD7002E7842 /* Exceptions for "PokemonPhoneBook" folder in "PokemonPhoneBook" target */, + 99F6F2F42D097CF5002E7842 /* Exceptions for "PokemonPhoneBook" folder in "PokemonPhoneBook" target */, + 99F6F2FD2D097D05002E7842 /* Exceptions for "PokemonPhoneBook" folder in "Compile Sources" phase from "PokemonPhoneBook" target */, ); path = PokemonPhoneBook; sourceTree = ""; @@ -99,8 +107,6 @@ 99F6F1C02D030AD6002E7842 = { isa = PBXGroup; children = ( - 99F6F2EA2D081541002E7842 /* PokemonPhoneBook+CoreDataClass.swift */, - 99F6F2EB2D081541002E7842 /* PokemonPhoneBook+CoreDataProperties.swift */, 99F6F1CB2D030AD6002E7842 /* PokemonPhoneBook */, 99F6F1E52D030AD7002E7842 /* PokemonPhoneBookTests */, 99F6F1EF2D030AD7002E7842 /* PokemonPhoneBookUITests */, @@ -268,8 +274,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 99F6F2EC2D081541002E7842 /* PokemonPhoneBook+CoreDataClass.swift in Sources */, - 99F6F2ED2D081541002E7842 /* PokemonPhoneBook+CoreDataProperties.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/PokemonPhoneBook.xcodeproj/project.xcworkspace/xcuserdata/naeilbaeumkaempeu.xcuserdatad/UserInterfaceState.xcuserstate b/PokemonPhoneBook.xcodeproj/project.xcworkspace/xcuserdata/naeilbaeumkaempeu.xcuserdatad/UserInterfaceState.xcuserstate index 03d69b7a82a302028e653b9b301b4220f2921ed1..a8a278f325d98372a6cd9f34480d56e25e08f933 100644 GIT binary patch literal 201284 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

?f0eol<(>p0`{O!2OAUJDK#siv-*^gTW1%Ddy~o zpMKV?nGplchC z#Sw7-m8h(e;Gphqr@Gw8Z|R%aT=mz`>fi4u0@o_FGJbHaGy!+kBPuOWW7aUM3Bk20 ztV*lOs>^+n7g)^#xK_LBj@2ot zV09C4mx$n^lW5eG*5MWqyS|*<(kIs%j^tV+fXxe#YpsdoTBAd%kq@x>s3wyybafx< z6C1m(wH|g4>$BG9fPEL(WqH>6)&{^X2ezQpz_m8DwjhZ#BbxFG)Re6)aUXIz zsrh2g+F6N_WovtD2kY~|z6b0oU{~i`J6Va5Wp)j)Ys(y5>kCL@F-Df3|2kyL=?`0M zhYD$xyyvpNLU64K7_?6?xHWd}t#7#4G~)fs)8wZ+H<9HY*Mv3~t02YNS70}du)6`- zwYDS!-pZf>PmD3hI-IbZVa>D-w!UP|vSwRztV66rt;2xb2<#?cQTlEH_5)zI0{bDb z9|5}!*unzqhyc5<3d>SfAna}z+5K2tmLd*HBJd1dkgcEW)PbqVIet@R_TY#8GKaNI z&qyDXI5enOT@n@Z)4GPV>xxDd`#L z!#TLNhGiuVZi8>m_8*Y4P9@}`VA>&)JHxLmhg37wL2^;l_V#}jElOGETNe_d-nQZh zyc5_@@~rPzaSZ+x*j=TE?NaMm&Lb>2&}Cwur~w1 z+BzVx#ogo!$TC|uTTkp8w(hnb!2SX3pLw_gbE#qI* zG7S64A*o))Xc=OR*KMN&WQn0=E(DP+>E@#tW4w(RTDDEFO|(t2O}4#hn_`=4n`WDC zdkZ)za1?Mfa13xPa2#+va5CWJz=ajqW(JU*Yp8ESL(4YYy#-DYK$cUH8}ytFr7cG+ zVU)|*QkJncVrbd+9&kz#*)@-nv9?XN4@h6yY}*2y8aPd!ZL94=;IzP*OApu`woeJL zAKP}?J^@Y#oE|tszU?#H=Ljrk1kP0U!0ty1zYM1EYU^ruV#l}pY5k-ZcJzw>syC6C zhcM{j;GpNa+jGvIZ>(7V(Pqb@nQhPzoCwn~+t&oYLfdiFF*pn2XFG`+E@utWa5dC9 zH77><&PFbHgzm9@PpEY~BAOWEXWI=z?M2%!wqI?RY?p0UY`@vA+OFBI1Lp$H4V(u! zFK|BKDgajzI7IUq;3^l`ZU(5mB`C(W+k{$Tn1(3ETs2WK=7=eba%f8#TDuIPwd3$v zH2|$$>7UIOxAhZfYP-RXX9n}^M!N~P>cG{=vs>&|;KG56DK&8IF1ruGwY%*eJNB9g z;39#G%C}drS0v!p1TMPF!L?VHsO&X@X}r_n$76?TH{-?)T=wbiPRYbiracmaMg<3b z%W}=qnQxXd{RQi!z4kVEPhPC#7(3n@MsV%52)MCG;A3tB*z4IF`kA#iAk5Z&f*8&1 z&m*(;7WS6*czY{*YkM1eTYEcudwU1q;()6Q+_S(v2V6bi>I2sRxQ4(r08r-}egxTc;F^la4n$;a^FykU57BUX`@f17pzPUp zJTjPP&#?~yt~qcm^6bOx!+~oFT)WZ(_EkF&U|+MpZqEfS9=KM(wa&MXvcExqZ3A4} zvIlk|QaCA?!Z!zwnbcL;YS*I6@1EB0+={o?kJzVR(5b;eD}^X3e?F_(!cCvP?_F%t z>FxphmVK50>`Ve|d&JK^he+BE!ICy4Nu+#%eUZTIJA~PekBB73c-Ov;FuTmY+`huT z(q3SH&%VmO+P=oV7P!v9bpfs`aNU6G4qOl5dII+XaJ_)*U0`1yV0M!rXYE@FvoDIw z_9>FH1InR&3efH*(Cz^)L4TBP8gPAq>z8l;#r`XS9LJ>oWe@pv zB=<%zx$CMJJ)iDww0`EvLEj96uxSMHKQQQ@!9n{sI?7%@)8e_Y=coEUoWE_wJ;?vI z-w}AdO?Vyn_!@Ia9ZKZYK{;p#<6s?}gLlXraz~g0b=wT!GJzWm+)Kb^0hbM24sbX| z4+U;mfkP$m>d+bLI}DNv4in*(oPYA`#jpBjvlEDlJh2?u(g)U25rK7JjgJTb>!^aj zI;uLV;im?0BY}I_|NROct(c?^Q$H7A#1ZYNg?+>kNP> zqn^XB>=im15Oe`MqN6d9Hlu>2jq@8ZXDuA9kzPkjN4x`t^Jw7405>+@(ZWhn+4qL0!LPW-=U6SIxX@$lJGl6WPa1Gga0G1oB< zxP`ziDm`}JaS;2=p@ojcgk54=YFzD9cpko!UrD*?b1FMeb+_YYi z9VeFHDnD?|)=}sn_d7!OICc)7Ym@A%Sjz;V!V2so@e ztWI39Tm{@};MM?#O7uG5)&sYpz;PtN?{Pt2cAO&ozAy5-sYqYmS&r{h!1rf@??vD? ziuhi7l)mh^;rN4qd(-hdaGQbKlIQr-aSON)fZI;MEtTCL#~o(~!SJr*U#A4Pt-yT< z+(-G&P^Xk&xDB|%GRM#IqgoDA6ci9Ap6N9 zA_WFvXGLcuBI~T=e8ySXS;bk^S&K5|l6W5du28eZ{vs`p967moEptQ|J zw`=%Sv@GT9=lTNBJCf(@>co|cqrjakHD;Z?oT%~TJ9|4{bS40Yv+1vZ zJD%@MbS4pIaY|kG?tPr;2x9+W5Nq|`*Cyjm!~C^LquvU_zWBQTpym?iFgO7iC|;y2RyssQXO1lTiA5aSK!6awsM z=NRW$=Q!th=LF|O=OpK3Co0I_0*7xo3*7g>odfO%;LZd0BXB0oZp5u*-nEC<40@fpr#yR3jhYej)3~_=WoMDzR^@cWxxeZg9R2 z+$G>H=Q%eyQQTeu?pmqo$Ig$O+l4M$NV@EAL}GkQ#LU%TF=G+!S~)*=qIZpa=Pu`N zC&~rfbi4uF&3xxx=RU$YY6X9ky=*>$@E#53JYsE6>*4E77O%RNshl=?HQ6t69><_x z2M0Yf_^p-i9B(Ikv#Kub?Zz!WyT|z{=QjeiX9%^o9#LsxTmIm@La06O{L%T7^Mdnd z=SAl)&R?CEoR@+78@PXfyA9kO;O+wVFYprJLx2wjURvP%EkNy!0JVQ2wLBG|mS+Rh z^15LGT9*!Z z4tPG#WpEjRmjSOXHBsxbxlq%~ciCMImlJq7@L|9!@?CD12NC3zz^lp}L04so%2g$p ztKX73ROL>!{~FdQI#wi7Faa*I@WvSx^#pSL*hhJhPN4la( zB}d`mC|-kyqg*j~IEvR6b2v&9D%!tw)pgbLbL)Bzx#ji9tt$oxJB(I>!A4gTS3Bg^ z)zsC@)!fy>)zTI3YUOI}YU64PJhrI`cr)-8;H|*hfVTth03O@JRp4qbaO>(MaO>(u zxOI!%dPQz)lymzOxJ@P8rUCB}xlKoIL#KsKC!gH?xnKG}BgM`%*oFQ(@?0;uvVivi zUm?$x;~D~dMc}KI9?y6?p6n&j4RJ-}SmHmk?V8_^M@3>^Q`5d@!-> zt`V<~JJ9^&%@ev9e`~(wG9h*n2Av!nG;jK^8yD1WyXvh|ubhnC-ph86*r_hOD4ge- zMu@GB#D?w&c|G?`F~EwgGS~ICKdCh*a~#{eG-d@bN>178RDxB}Pe0Icf+ux=u-))ir`C&C(E4(n5Z z^-}`tXTU!z!iw9sOI>>$)yN0<=ZKv3f1{9%7CXm5*Add24!I5kUmy4ed9I_bW572A zzIo{(d(wq^UcT#;>$K|(@Qr|P41AM(*SD_k2(nFqZzdr7pBtYkHS|=qA+*)=p|^>c4m@LG~96`fG5|*O-b+`iy9A*ao>DwK%-0_B~{;xULZb3td-n za=^Dhs}!yq#3}{fGKfKq?3&m#w_N`S-2P3tZS|;Ffhg_}cNmiE4s}c2l$&-lZr07Y zdAH1sicK5fQP{QvzCG|AfPWtNj=*;UzBBM$3fu~TT(`zh->s8Wa2p7@T}5(xkd0eD z6*qqPv~qS!pIx^P*>zU{zFUA@_cO?@yK+c1@&Ud(PHV{*lDkrD>j-yE>>ln&H;%_W zfqx;-9qq;uxfk#Wr8cc~$GM;L_gwe0r04cV+2KYXUckQ?+;OjL6?4|ajkj_0-A&!i z+|7aS1AHRzN%`)U?s$TGGVm#7E}`8WBr5mw!3;N@`pOsY(rpebX|es4S^sRCg1EbJ zch_Ca?(XjPi7R%+wU{=2+bMflmj%Kkx&9$3G7OJ_Gnn;0FW$67X3C?u-DrS?+AZW+Zng zAvaqjcNp+*5cg3??&xxIp8~m~3Atl{&k@PRJ=~@43GRvH13ap~Lxpc-H%eVyZ13sr znS|cA+%te54*ZBb_bm5p;70gBr^xEH$L0Uo9QE5N^+?_TU)LO^^C z_}9xG#1%-_%3u(ynERX@{7&PF@Al*u96irgAt0{8psRy}zHxcl#@mHW=e>KqPGR`M z?QM(Xu6v#PePQ(4Kt?Y>3F_YDm%GKBI8j~oHLUc&#;yA!w|`Ag(mOiweW(cjPIq<6k(0bw#T2Cw8N%8@H4Z4F6z7g6qv3ET0 z>5RR@)6s)dpLM{m&+~NgbOn9`@S93aZT7t2c~R)Jy-BBiAG@HZ4^f*p26bAELNDel z)sv2-d(u38J^g^+4Ez@0Kgjp=_Y5GUZw3CtGMCn#EX22%%eSjXU07}E5r2GCe9Ygl<^!!m8&}&u#+jXP(bJ*sBf! zk85a0@;!SzUl3rA0)MRRfyK+Wo?G5%^MTK2zwtu!yg-;2vXnxsKjQQo& zdz7z?{iRifWphT17}CGtFZV?A3D0Q(*i!`9;|T0yj%j$l_xvEKzQl75_!CP!=Ycn3^@B zZbU>v!m!M&0ciRtIdkxch%VWwS=kX8iK*!WlM+*h3>uJ_I%sg}kcg(4$wLOEX5?f? zv`EisIV35fL*{_gL75pH`ekOMHqOi(AdVxKJike*=XoxBt^kkY^_e`+RSCA>H@VM} z%e%UMnb|q1DT4p@7D65p)G_f*n>9@xn3EXZO~^_U%t{j>rvX>*DOrhWIZZML4NA{x zo0^@CcBjMy|M1)*^?=Iaw@W;K0skFINAo}mUDH#CiNWu9DM|HZp1YoZy%KMTH`FTy z{w(m{1CKTN1MparKQ8mqUPf1$O7rq)C7AyS_@BvCN7fc(?ePyJ0atno)<$|-I#yTv zv}VKmr6;B5WXETaqy}eZp`|KQsvmd1`Krbv;){agLuksT2x?Vl-7jj1? zs8!ek?i%j!rkxTxYQn1??iLYkvF8oU7Q0J$_OSFctelvVLMLWm(_#;7g1Kp$n3LF+bXT+m zBt)xRLbOJM2V?(9?Mp0$1%gHvA2i&L!r-jT{t@I0t)PVuP8v@B80aA0%HC>7qPL2- zD)88cf6Mb$_oD846?p#<7hUS`oYahLw4HXZYOx}-iIuXZ>3*YXiCH5O)X#M%%!Omm zZk?VJE_6o`qVNuw)$AeJ_bi^(2y}%25@KGWz0XRF%e^t)SZ^(FZEqcKoVPCU*MYwQ zJWiB;2mTM>vFG1f?tM;z7GYF zHwA;H1_#YPv|!zgrfq+p+Vz{U_K#O|D-uNBe%=9oLFDa^f=CvMf~X|Bt-^Tn5*bgj zK!)zPg&&5X0uoX!q?&hlNHtVEdV`GiFShey4ZrHmC4jx=eH~;h$T$MnC<2&_CoT14 zfQc^~=bcIj8SkCoo#>t9o$P(nI|XDikjX(71~TmaN|32Qrd}?oqd4^3Kl1 z-!$YV9U(*qG8;+yk-h&h9rN)<5QAUvAHxw0P_P}v;6eluve=t1v~eD3V=cC^>js%p z1#h8=)x6S+7f_aX3qYn{;#~zY!+*roI`2lp)Ozm*@B1J#g3JUmbG~L*_j(L z_CMZ#Nq@iXz2m(Lvg#nK0kZIXpTrkJ`g;V(BFntL`#6cp#|L-fEi!1=IJVuFQ!fs< zJUXv`2kgYYFbt{)4*Fg7ex}{Go5U}izAW}c&$Quz{_Z0VKztgI)eJ}kA8`OeB!X^O zpuf{=@0*eOY(A%dH1avfXcU8^(PNBo`YQOI!5F@ZKJ2-*Kvo<1@Ky2iQRhGA!x!$u z>$=N*5xz)Yl&_{Q+85)C1z8-(>VoW9kUa;odLXM0vIfh2wIvmNc%_7J;=>;s5;BPE zC%+JBMv{JH&wCOyf_wI3)Svsvc|4rKZ-0ykdRV;pM>HR~>EUY$vPNPHlbar-g{6H1 zEgT}hzlA&c$VHFPJ-*JQg_~dt`?{gLku?oo!s}Tv0Fkek57+&c_)vdnzQmURvKFL% zpHz+WCHwj!g1!`AsxJ*>nAdoawaWMP^Q996TZ61k*&{d@xq2y>t6%L)HhuDD8^yQ@ zP3qP5waO+4=3vkv!9j1maN5~_L6h!dZYIQCU%6v&?(xGIa5%`?9g&QYjP;H5z1+23 zr*=aI4$Sk7luQs>?^SF)Lw!7jQnV=K1K((zwEIT+-T>M2AnTOp8{-=bvMwM?cwkk* zH_5-MAnTZ*ULme3+_!pws|o+}1%w7oyLJ{QL>W0~`MGgcVn%Ymd$X+8sUzwQN=(nF zRD8hpgNZ@wY!WK6QqG9Msr8clFSu_}#5YaIe&+;rhtkfz*llO{=HvQ;Z>DdSZ?Dk0lZBLvR)v=?*1ZKUx>nq z;{&zPCH}s(5n(#nNwne}kBb7s(S6Vp#A!EVP*Q4E`?QXk!*H?TiBj>~*Y1#+oh}#* zk9~qvgyo9NVfPv@L0#nu;&sMFr3}p1Gmi|5>jJ6G(+B2|g^ocyl%g3{*1ZDS zFeh{Q9u*R^lKZ9O-#S;w$sF9hLS_3zFS*soGk8U+F!=J?K8nVC7c zAuHrzCYz_iGgZ4($Uw}#QYckwjaH{O7`s+T9+;S&-79l2nn}mSmCo2D6V!$rQpD!z zsRL8m`;+LJIB*F5uE|PG#swvzSn)ZjgRmBysTqlAKRu=Kker-Mj6+I%uST5l+jSE1 zfbqS)#kn*_s#xj8cAeS|$sq~*!{t|Wy777C!1HR=F<%KtppczrxO9Tcaae=?buNEl zmevT5a6dLwg4%NLHU4(L_lDqS{tENIUBXE;5-W<}Dw3L#+LCxl8_DyMPLf`dB*`F2 zjszt0B&#I{B!?tNB*!GjB_|}`NPd=Fl>92WD)}db3JD8Qg_uJeAxqd*g|NC@PA3b&2!*yl910j;kuH@`YPZ1g!R?FHNLgJb-wk! z4It|SvP6(2fh-whDIiNl)^#V5^)0>+1lDmQjj)bVsc$*!{~7CvNp&JqB5T!-s#7O6 zE-o$+F|QSyR3|DjHZCPGDmFQ_W>QjATCLjUtdo(aob~^fb&>PWd}u>rmG5)kF5hn7 z9^V(fy}o_E{k|`K2Yd&8hd`DNvH>6)1hPz!y#%sskPQLZFp!~&`!dL01=;JXd`Emo zeaC!X`HuU(_MPyZ^qumZ_MP#412O=4FOa8$d^*UFfc$R=8vtQ{f+7YKLqTx}l$r-s zuycYA(?3D|mZ-z{H+KAcBQ=KN{zGckf2W9Lr4r8__b+hQi%d@$fnVls_7Yk*3-%S@O2{m*GAU&jPAP^Er zLY0!2-c?ZSLN|jn#ASo*`E+!|C z6_-FM6AZ-qV`G#2@$pHq*%`saq+U z5jQD2Cf@%CL2FeA%H_!aP@{pYV0=!NFD5Y~kdu@U$jQjc^k>J#C&b1i5J_47%!~jo zkr;cdMx!bOzb`u&!1kFL*>RaM@ma?P zlc`RHpws@Rf+l7q2IG^mlj3p4n4~~bTvkqeT#R0R`7*MZKoAutWe2m4)oA?+L1+9= z1&vMg$H(SmCdOoD2Yfjh3GqRH0Dq0mO7sT;nF;=+9R2@e;*J%xNrj*#|5HIv^+L6> z=rCPqx|n?pri&zMR;h`*0JBfDf1>JumL{`)0BiblN=>Yc&OPZy2$RF)=i#&eH(-)Y}dlkZ7uqKj`juR>rw2Nsn}dlrSOiXUP{CDrcS2LrY@#bQ&&?r zQ+HDjQ%{MyQlhSssH-JvxkRmysB0wZT8UaIQP-_E^)~e}^);oL`kDHh2AD24u_|=E zMBOD(Pf64siTYa9nxZxl)hjB?qxy>HpElZ*Z>1>TRZ+Fo;W$mIcI8wxG5xt0XVnIa z_WGqlRWrw*o1J*OM0&LQ&yBrDwboBxJ}6gRFfXsFb8}ex<0+RVov?Pv+1bZ$8a6F& z8mlP5Kko(koA%8%v4$Kn1x;M5-yl&phD@VOl=@t}->F+Be9y=6Ze3S7OTK9$w;49mPKz&iE|=(@jbp({a86-8b^*QP+K# z{L_O&<1Sghv&LK80x+$j>2baSefK9nYhOOq<;trb>Dl=3_Z^=(x|73HW~%rKv`PO8 zbks)fx}0e5etLB3DePA2S-u7tOq;?EzOhwn(`+j|?$#yKou<3>;JM4RNuv1Y?vUvo z6U$@wNYwVz51xliTlL_1*z}0$QPX3l&8EjqTO^9^*iLZ2L_Hu;4@%TS67}%ydgu^1 z+u><~htSdE<`Mm0`g0MlUtJE>Vw`n%GG2*l7jNTPF6S zmYH^&_L$z5sLc}fxI}F!Gwn6Ks|U|kiQ0DNgXd!+;*;>3VykmL-Q8|v_iN_J&(m`9 zKUuE_&u26}5Z-j5%k|}e$?aC$R~FsOoOsim>frgp^mX|yOVd|+@H|QIoM=DpeXpjiF&h+<*;pMsuj;|`)>#!i<|gK*1dsUwiF&Qne4#|WemcQpZf52) zg=OaE<`!l)+3b)g!f$7p*=)Ax!Skl@YTMmIICElo@R$?y;Mq;^{Ka<#%x%oc9AR#2ZYNRXn|DIy6y4$X{w;^^ zV(zUwe5$#txtqDWxre!@xtBz-)cT%8Ahm-2@DuRj ziQ!)S%B?S-yJlhP`i0G|YVB>mc((5FQ)oIhyy?ygZ_nO_&RmZ;~1%x{>u?L{qe`j^w@J?0N|e}CKj zj(M;7UGsb9_s#o6Jx|oyqDG0TifRxQmo`>jPMbf$-}mG16_?X0oAyL)RN?QZQuLqn zs^Q;pMPUBU{Jrk)heVAoHUA)L-P7{-Bj#UqfB(t+v-uZM&lk0xsP)UtznOp6{k?&x z4bQm0Th3AHSk4W1;!hi__HFyHoBh#m8h!rjv$Y<<-z~f+-Ey4wq&JS+lK$n|9!EB% zzZ6+o|C8!Z|5%Kcy5;_EiPrtSG5%ifOLBaz9bq}XGQnFKSuWrROJfVmc^8P$XgPyZ6w(%fRl;VmsJEiERC*B7$Egf-qONynvrGuzeQPH=(%+kry zS$BAcsLnI*@ICS3Uf~YEYjNxOE4sCx_E_#>V}5D#zPiKrrDaM55fuGEdaYPRr*PS(fQOzu2v zRCoCMEcaU;usmpa$nvn|5mCE{nks5nQM-xSUDO_;_N;RFEjawPYKQNoJN)Hmm&3nk zd0BV(mqhJdYI#M}KBwjIJ1o0&hkwJe)AFXMeMLiq7Gy4nxZLuX~y!4CgRBGwjG(@`5+&7zJzYGbR->fk4R)bT{gq4BPNMR*!}RFz zJK4I`Q^)c)1pU@`#Xa=OP_lNlb|>XoIUP(awc_rRDpKBGY!s+Ex{tLVA#d$#CDlz9 zbxO$E-#S3lsiIz~_j6jewXH*})O)vEhgyeOhg;LFBdi%#;`0hor-?dU)ES~;v=ULJ z@{DC2shF&})n}|(`Wb8KS#`#;7F#Fj2AE)-DC%rc=Y*`2t)$$!qR!V1@Q-}k*E+*0 zdSZXvTEc6y)OjTK=z|1K&G3(?RQbhx>tarY)&{{eyhtbi^OX2x;hxJW8VBfIr z6!lh7SB0#*tZ#|BTGU7MfDPL<<*n%SI6eMd3HDmw*Clw@`kttzqJ~1&ebx^|Efe+O z)6dzTTEEhB_I~SU)&tgq*3Ye9Sicl?ji|SYx>nTNMO`NF*H)QzIv8M4)|)fDwEQF#yHDLj{a(zITgfo-*I8X4FYWm9de zUT+fhZc*N6qRK-(ZupB44_f2@wO4Yy_JgQW8+L-jdcWf<`@pNQFjSDxVWOtz6WUZ7NF z8)eJ2jTZFjd6jvuT0v#dg2mICkdTw?Dt- zcRh$F({xIB5Z~_^@m|WCy{>)aYUTV*Ssm?-q5BsBeq<&RW~8wpDuNV?$I?_lo*nW#x0^-(C6GHlkYFoua<0S3cppuaEa; zzN*}IkBzs4mfASwykBa&U(|hiK%HI}58EEo1LqMNxskN^VaT@GMhtx<>VHnVWU)PI zdqGc++ig$Tp0+(>d)D@x?Ril@7WETRKNWSqsGo^?K-7a(>G2iPBd>w4y8HFHo*oaM zUFq>1+k3hJ_S)VR^$StI4B6hd?GyDYQNRD^N|sM-2lQgUOwA0Mk{yTdg7F}&#)S@~ZqEoeVT za;MMeJfqM1)!FVR8+XO^lI0h@Wch&{(916Yroje^G9p#m)M)xo7-F1 zTiQ*c{wC`0Vo<~oA%;jX)L3h`*sXf9wL3_*hMHnHry|)JM*q8$tvwdi+T+B)XE~4i z(9R#9$f|9F(AYLcmTmMcT{uJ&$XFo;15*?ZV~ioqy`mZyCtu&3FF za3-+#v-h_TuwQN;Xdh%BEQUH_h!#U#F`O@kdSa+Ah6a^q0(-h*vS%DU6BrtDCNMNV ztIh=WJbQs|fU)*`F*FiG`Y*vXrIcNz&^=7**--K7l@&$7%nWc zUtyodnZR(77%o2JX9D|drH*}0czVxFnEX?{3zHYhfQ~B{T)bR=ajKoqPTG(2*~vZi z`h}kBmGaf>`xbXd`f(~Ha+Q}awsY&8Gl6|6X97dB6W6^}2V7&nuHr_gWqZ|)m>theYF_OVz7klAw4Foe=8=}*?HFIcKdq!2KycMjrKe3ciA_I!6pW~ z7#w17ioqoYw-`KCF?l~R`CxTSdi9uWb#}$%6ZWTc13YQpE(V_%{2}|(_GiQp5JUOv zwEvNt0QMK{uT=Qt%eqg-;9~aIINus#!>(TIo;#(=HQu!E(F1vx{Vn@$F~o}@K@5py z_P6ct=z*LhhD*={NiD4#g4Sh;-C&P$ngdfl8pg7&?fdqZm4gp>t(0Ich5=hguy>UG!i| zJF9}p(a_NZ12`Hv8jB%S3|&Kx3mlw&s5g4(C%Atkm>kUOfj90}o(lrS!3SEIEZ zzAkO~>hOE_t<>KG>$sGrt-_nGy6c@cwoPrf?Y6G-yFWbp(1fFr;Y+$_I(btjY=;!F~7~r_vK}UncK*2af z3`4~*Obo-tkY0Ij+A)ksN+*&k_J|us=#ez4B9hLMJ>rhh4xZ#Gb&L^1MyX@07&1?( zK&*23@s0_)!xuV=9K~YD5<|8af@O}0j!C-1=ZInCnRoaZc=60|FTVBl6>%T#?%3_& ziJKF=a~ki{9ex%~XNNbv?!^bzZtLCCymGp`er@w!b{baAf1ZN}*0~?ySfD$6E)IW! z8yMx6Mb9Cxe~13PG{I={hj6F)g_6vNn3$IW8MKk4PTW3}UUF2^0E zj*z3wvBq(mW33np#4t__l>UWcC=x^QTE{xadi`?Tu~EMqpCE=wm6zj(|J|44jt5b# z;~_Cj)Gx>DhJ7ETN~e!Go=_Uz=Gg3b+_A;6)v-+slf^)RG*t{&h+*1ojwc=49Zxx) zc2Js47Xt>lOAP$^Jv}VKUn{}aN>29ql8a9HcYX6ua_`j2_Em4t2%pFC7G~ZX; zQ>y0sisN-XzrN~tO$;-{Ff-)X;dny~C1SW%pV4XU{c-Ge?9=n>9>?2`cN}{i?>gRd z;PoPgSz?$ihB;!GD~5Sum|vA&KPJC^TAg1P==pWU*_B_vb?^*M$nl-ykQf$r&KUb;z?D$O|6cCZf9Mkj`RHRY&<47W%u^>-BXuu9noOVv>v~bxSb7X+AzFn z-|N5Gv2JWf^Tr)pozv&+$U2(1olTq9yU^u-fjwa53&|>9jDq z)8ynz{5mmQA97mtsJ!9tM5WX1j3X+Y9;esobNZbDXN)se44gG?5(8(ATf}gy7*>g4 zb!AjKlN6J)RdrOB>QTAztcpr!Cugc|fX>b?VhD+$EadF! zrR~iN4!^Q{qvaw!Do4|FOnB3Y^&=a%zM{vsxAiJ%_i4tF`>LZd-#NY_D#z(jdFM%@ zvhw`qoaAH?GUS}>>lVaF@<|FA*!sD^<@MutIxhZ{TuRd4anE$~i{nP8{k;HS|&f`4SU2>T> z_0nzKe^}S=flbd1mV2rr=}G6)6_NCm9!XE1g2rBS>Pv^tmz*z);aM>}7jnL;N7D0u zE0W%HzN<&lF6Ud$-OfGEx1H}e_ln^KF}x^-m&CvjuZZDQF}zl}rse#ANcyNcl3v#% zY46z;Nnbg?)eZ2q^BXbj5W^cG=XcISV%RB$xAjQ+%P*mvblIyaF8<^EMURUk&Yzq= zi{VW%>=MIUWzJunzv*$YTMT>7cwD$@DRo@ugvZ73?aTW=ySaN4*>t4#1-4)_;=;wp z(_P2;czW-|8K%S1vBAx?zA|s9|2~@&E9dXhT+!v3#8pSnB<${*+2~2V?mOWwc~?W1 zzSJ1`oU5@ON$;M*5tq1HaD=OwtGO6BWM9bDQjeq${!S#h>@Gi%S% zpBO$A!$)HHSPY+t;Zrf}7sF?j)txI&F}e7XdexfN0X>qwKdY)cSBi@VxkIk@t`1^2 zD2C5Nu1>DbV)#M~yr1QyVR8y#R^>_EUAzo5(zGCh{rMyCqKAS4?XHY*Kz8= z70aIP@Z1d@H?B_Ud+q8a%O0u@z0t0*6@iqe2a>*X=45MSuA;EDGS?*6l%s29E>>** zb9AlDHQhCnpIj_)94U3Ny7ALV*UDUTT#H#NbIoqb=Tx=FN1eXZ;aJ#APOMyp)<1K6(B zu2RuzidHM+Ds!z7?HtiA(qlDz$?fPy75$luKfkH>G+riKCBS+YF9iy@Hn{E(?Of5$ z3%Txe-6dLW(Js^lIIR^j*L^PbK;G`U-}Qj&LDxgBhh2}j9u+N0G*vW%Xqsq7(dvlC z*GbFYTj|Rgz2NSMTZg^uiB!-njLv#U1sm z$}28i$9ctN+nD8rHQsNRymZj6Cpu?$Zd#pHKXZLvkyQ_pRkaJqsxJL4H5%Wy9iCnJ z4fpQB{E@|@>Nfb|zp$3&I^@#tg}c6Y{UF-KqFoYl{iw%Jv%eKTzq<8%;jZ6Yzq=K8 zggeq*!%b3XE?NuGT8d^8%`BQlG;3wGG9(`tEwG$Lw951$BnDo zOWjRGbDU26xG!=yCw|-)yDxELGN))R(cES37VegM{CGt3p7Ho`JCr(ZXL$T9EQn~E zyDH`3IWakfTQ?uPgZOcKXzC4by788+V}D%P;r<(pPi_Bl%YLpMD)Was;AZud^4=Y* z$B&=*aVO~U69|u=ren(Q;<+yit4!SO+$l#Z6L)*j;*M4(?oRG5{N(N|T70QHRkVbY zRwnKq?tWAz?w;;m?%wV`?!N9c(Go>V675paT8VaL7LTg<`d_eUTmj!DtsUF0qnt%GPCL+*+0NuqTU zjavz)Sw6U@x#y7n+|%7N+%w%JZgJ0Y&lU~W=^`4g(^a%?qIDOoM`iioUO@U=R9!yw z)YISKv#NY>U+cbJH^55wb)xkWt#`DW0is=A=Dy3lNzbeUMH_VHGwXw-%ZI|# zW!o0@JGH$cb=jH`Wh+1VY>WO}n48r~_iay)Yn=_L3mzChwa?0?dzMyb)-7&s zwd#zT+v2{ z++VxD5p9fU<4>tTIcext#n=z-BYKP-cK_)9k7#+KjTJ4w%>9%5XFbLWL>qU;W6Tq& z)bZ2^kFiF*9Sfd{PU#bB(WTE5p>3?)@9>;M)8o9(a!%7#i*G&Dby-<)_WoDjF1YGw zjCrCw8cO!4EJA68EJ8&uq9CZb^Tap)J@q^d%cIiMK#$5|qB43BnT%upe7#V9M)q77 zR_u71d0HGTc04Ubn{>3;@mM@Ie)3pFn_TL#i&kEZ)U9|Sd1pSP8Z4Zm*C3VV^SC{+ z6gwV|$LsNV{GNa(MzpD-T_M^u(WZ+wL$sM|J#ijBMpQG$lcX0rC8CwTX}O1Jul~D> z9Z!2y>!D^4z1Z>px$+2mMa7@jI;xb|#lzD!Wu8<|R}a+z^}-y{=9YPSczSv`AI=kP zm1qy?As6;IXZZu6)gSSx+I4iIc5G4l!)J*8zR3MO19i6@;JIA1`Jycdc?Nj~i?&d- zTTi=a@}ztCYR~PS5uOZBrYFmj?Fo8F#fwB+EZP#$mWsAav@1ossxmoy#waGw*y`kb zwVs@BKC6nLKZK-qB-hw`Y&%ZP8e%+a%iEWuCnr{X;+6J)+%v=3|UiP|tBzK}THE$o+1w zUTaoAxH@`S_8YVG7~?}fp5uJzC+8zeaPUVxT$`@0{q;3#_U2T_*cTrCLqDD`^^)m+ zN~U^5nbg{Rl9K5M&wnbS@<%-?AEfXG#FSrtj% z=3YL?6Y{q3Ql4%X?WvI0?6rvYv}n)%W9K)o)9caw;&HEAKfgVLUtE+zDSh6ouu{76 z{N|1ICK7wzIB&c+LA2*YdtS5`%DhS5OZC`$QM8xNco#I5(HZd>s2JNrTKIiSGN75@N z(OCJ#hqrIo#fNu*ci_>B5APt+UO#&A;T`H7&QIQ9qU|X4ri;dFWKQzJS#OqiG#4M< zY;Vw;;~nW8<;@jsr)Y1A#*L)6MB6Rep0(aF-aP%{!&{(Ve2_5rR;;udqyOC(AKodb z);m?Scl3*oQ~m;Hl_SsaiXLAxyI&~Q-fO)pz1MlK_ue4dN1}Z! z+9#rYD%yV0J`?Rg<-I2Ft>o3!MqJ0ta zZt~tO+Lxkz{mkc;Lwa8QiY#%0jUrXvxW)UVo>sSdw|SosjYXz!MfmWu_WhYpt1pr(UkcBatu6}0wjSSW<2^@S82R#7rXTgR`YKId3vU{`X0G>0 z?JoTuz4n>+21c~ufwijnzv1Pb=6YIvQ%|dhPpq*2!c~L!T`vy>g}m>18TyE5KZU#> z=rQ^8--^loUW&8Zy`Omxcn^9%_kQ91()*QYzlip$XupZ}yBHNQMu;)8s@6F~O#X1R z)-l!~CXL3ks@Cx-z8V<77vYN(V@)yE3i)dKYKie2F&gxk{L7sbC%xRSbTMC)&q#>* zRG-0zhR+q_d19KP+(SGgyrl)?hHdxV< z5c4&q>4o7<-FI($`P-eTU)}Zk)U^XXeSFQ)5c6H))Aw{nKJIHyPBLmI4zVhQ*?i9O znDjY_Nn@Q8A5dQD`21m&jxWxaaJ16#C5rL+0*KS316)R653{V!Wub(&_&1 zu5^3@QLS%~7%x2YyWM=ld?WN&9qvmPlf`Hfqgjj=FJeXX*+s!v!G5KazXKSaPtz*uvY`w_0gxxy6#bP9Ymx|GSN;$eJt6c57R!_sr zeJgy|h|wcPuNZx0zLmb~^fc@jW8loE;akbAtB#XflUm-C?d@o|FDEm7cyX%eX*fjF zvhb#A{IVkt*m@1#dh7cero)lv%F_PF@i;=|M zR*db$m|S@U;(M0(dH(1Xh%rTvpRQ-s6^L)Ak6O3X_of)zm-^lkV~5j6R*NeSI7~|6?R>#jbzC#u9^PL_)-H4wPEm>8RB}c-`l3)Fb z;tKhG^ZhQyo?`4B@<;foJo}07ZJ5+8|E%J8GE$%WQvwRI;Y(f6fz20GeQT<7rV}~?U4B00=I_)oq3>J+k zE*KZqaoArRGg8Hejr?`|^%Pf`KiXf{f4&&g#Mn=a{mcCI{SEw-R0G7AF2)ghMdliq zRgfKwVe8oFU{-O(UGTJE9)AvIS53KlK~_d_Zb3eq>yFpFcVTd1Zo!12ei?-$gOy#h z&&w#Hx#c*$r&s*lv8~Gu>DO=L`!5pX0q!Qau}$=}&e;u$GMO0v;n zoGQj8y7RdIFpCNWRGK$sLT+AmTClh{H-BVN)J2ocO2s z@SiMWP9S1hRv~+Mdl%&97c+R3vWxu_{ult0{XDRxM?^&unikPxbxBTD>zV$NKenFj zpYzARnD1Xu@fYdQu~)bgJxPg)vGH;739&JLe_TRhT+kWgOK>$i(J#|0MqQ$(J}T`i zj!k`6`LFgb_j9Q-LyXhKIITS4{Wne;}^pBM(-sB>E$34{w#Q}dfwk&$9 zV!W%`dAjTWl`9Jo5;{VjY-~XBafd8QXb1~i|#+$`>ix>%uRbpH%#x-KRP4~4%6$J~= z4-^N-9`g*rkfMSKg;_!UZ!vLncCa`jH?Mlz90_tZVk|8U)DmMz z*Fc@%_W=&KhxO(|r`AN1(Q4!-=Jxq0P5 z(<7sBOt7%hnFDnK(SIDaUf@E^7pU*w8)z746lff161X7HRE)Qmn{S;Mxn3d(+#$w| zV!U%*;G)3AflK`R1I+_10xbh1R#M0&G2UHnzI()YuNdza;{zu%-Qz7mK12ETZ*Ffz7t#O)Xb3_;CZ5BO36USKxZy{16-~?R2raMxF!@T_l@;C%vV$f^HbX@EkYB?m3&gF7o zXkb`ixELQ7;}$V)EenhYWCW;Ww~6s7F+QhXfM1L(eJAAWejS`#+&7rT<3~klS)+m# z)k%7E-0>Q8C!+cjP8``GSVT2jekGJLrQ*Qy3eR%9id*2nC9i zg;o7e3{2Mhrwn|$G{CykGso|r-lqp<1ZEDR|Dtm9i1FF<=u6`RREkOdBzK3zPRZ`r zjveFNNr9v|cVcXu-`A;Ahm`gSN$I)c^w;|r<&K?@m%$@i=^2G%<6|qNlE5rtzh_#H z3B?(id6kwg3rJwLvT$I}v9{bm+MYv^FVX&C?fBNC_+(ItL^^57~ ziX+lGbQ_RSn46K$BXWP}yQ<{k0kTStfgO`GhA#o6WabN{LJDcQ1rx%+T6`=^8bi5~xe-0}sM!4?1U zC%F9Or>?-m$JRN4#{%0F*P6iQz~g}}fvsYEUyS?2_<0qwObeT`@-aX}e{+@^V2@`ZTMGy^jL>k0ZQ#XW&5Kpwyt= z`bvynmw2<3X68tx*^at|xUY@n$iQ(w#~I$w#Hx4JwTk$&}xsG`y9=hg04SWr-060s?|iE5}< z|H6yx4&SA%E^FC3IkjuI?mf~jA2>92zd*|lcr1tqmg>XEoR zaU$Av@g>cgw=lLenJrcuf0vd!HON>wo$@k9>Vt5~$tuhpM~bDFE*VATg&^(pb85?W zmI^i3T@YPz?s+BWlr+MtJ-k+ytUINM0<(XrK1NDGUiKSCr_1fZHyTxpTix$b2fpCX zzZ^5chUb?=%&A#&o<1{wT+^~ZOl(Q*lBg23EIuKz#K3N&1|{`~--<5uNgO?xC4`=7 z?fdD1bP8tZnW*aO>6j*stD5vrEnjyy`qPev#y0Ir+m;wh>g!{tbZi=G-+`o=e;wl4oO&Q>v3UFqdh;fO(l$=!d} zZfHo~H3uSWnasFO8PpPY1pqLc95>OJ9RHeJp zM@dr(lnKf-O711f4a!Z*Ey^lxcHXT#tZY}FR-RR!S6)>Q*aalzBh+z>^Bc?@2#O#Pg5z8X3idY_TO~myPH%8nXacjithzBF~ zM0_7{B;x0YUn72xJSVbtq#CJ3Mn|3>SwFI2WNc*5$lj5CBQKB4j2sg=Ir56gIgtw^ zuaCSra!urek&i{b68U=M$B_pjzll5)`JWnEjpz!$j*O^GBUzRIt^7|7vlzdrC^o(e z92$1i8dO3VWr6Pk-zy7Iq5gkW+2?TJSJnmhsdE~{9cSd ztUdpih@WGWmS4mcS zpwRQ63A6wgaOZ>;iqaPPzyKHu!xiP?zAzAiFcv1mOqc`nU;!+JD`7cY1CPNDcptuj z@8Ekl4F7?j;1~E!Q7&PaOX@;BXaJ1>*)C}c7Xb|}X$~!+6?BEEPzFycO0#o-c{FPc zZ2-BO4TI4z9gww|z-*Wc^I;(@2IOvr+|5F;2G+tl*Z>>hF1Q=+h5O+_cpmlw^J-oL zkhi%B&|h#`srgE{9&Uu2;Z|4;$kQBon!k>T z7^4Maw6H@j$cL+ewk>Xl^>7E=37gU*Kl{3D5yLLn?HKp1@qJ!(aqt zLJ&qmF60BYx1xJqG^1FN--`TJjF0Xba*ARUm`l?6c<3CQdcxE-*u>la0F*MjpP3JgHM zZsyP1SrqqWkOJ7w-5==JJrL;E%^cj5U?$L~dl_5@H^5DR|GQVgI@kak0sXkqj~o5C z(YgCwIIJk1y5Iuz>|sn#8%T!s!2CS;iU-*}^I!oiQWPI!`0#PxJ@6pl8$Nu)w-ufM z?CX0Pz9#*Xd;J#zdh;_sKlAguAs*TSV{yk&@iUgcGo(TRpm+an_+3!~=RpH#4ETP4 zz5?_WXb$udKu3W-kOt@~Fc^lya6o?6FBC4-l>oXA;JX2QH-PU3o`PrKId}nHf>+=* z*a17?bNCXNOW<2L1V6x!@Du#1C@~7ufO7y@W1KJ$M#BWS9?*TvE;tBB6eYF}1OWMC zkvkS&jU5FX6I%o`VGdjc=sWfn*Z_9`_Kd}zu@Awcuo;+F?2E7)-iE#K9_)h;;bTDl z*h7H)vB)2*%kc~Rrf>=e70_!O{}YEz;(7tLh#LFTMpI(kbn;-w1TlP5$Hcb0J#&8I{~>97Q#wkyadKcV4MWTNno4=A>7BT?|X%N=0dPE<{5^ zXbQ;QDgzj!6*_5!PFkUpRvg!g<63cCEB&~uVFg?Z*TF`(3+{${;eL1!9tLdQ3jb?` z|Fzl%#8oTgZG}%=)&iK@WypBhGT_+DUWacKr8RSCja;pp0J62d2rPhITO(&{ble)d zw#Kflv1@DW+M4;c?h3u252V3BKzFT&!f?Ret#1Wv+M4lNBWr79ZH=t0x55*!9iE0~ z0a@B0XPfrW9k62?Y}W=IwV4Dn0A01gj%{uLbkPP~w0Q`gg6H8yco}v8Iit-k*bV#P z5FCczDS-`87wSO+xBxDMivfRV%lz9i=eAvd`L#uFZO6hKxD9TH^}yWP-U*xF9=H!4 zfLGu(K#sP^(H1${B1hY|;UoA0z5?dl_B;3< zqjp089ksgx@V$030o}K|21=m}khvW)Co`|)7+`M6*fSY>CS#A}&){1?j%4IW{*R)h zL;yNTK_@BAAqDWElum#QDcC=yJKzH;=qM!(@&H*<#z7$z!$g=2$ds}OmcTN&3YG(M zrXXhua;6|>3Ua304-W#er92AH0`^V8zA4x@1wE$hh4)||98#3_3PeIpI0x#14IJPG zA29d!=(9cZZjUb8w*}_az9S5VVUP|PkOes~3PuBSYhM84p$L$_J$7&Z2K=BX9hw0B zb>O%Tvw%5u*aFDj;RQhM4zI#)_y9hJ{csSzgs%Y`bU36ah@*6@1?PbZ(NGT>LSw*w z9S1@XkgelbK(>zPyCbpEaSGrM9T&k;xDk-2;~GG}9XG%|fSx-NKOG-|#{ii+F-9kR zqfbx1SL+5Sq2JC|mfw^}66b`{*I0C=G?~2kT0vZ6m-=!s3fLQF}ghas3T~dH~bYUJ{ zkiSb`=m(d>AQ%bQqsx4_8qil4bl(O2bV2uB(0vzl-v!yaJOSI`8F&ufhK~TK9O1vuvaQRk=hh40%T3~K`Tgu5s(Y`Zz?{LN?fK+fEiE%=ra|4 zrp|)}uojRd^;19>T@66LU7G>A=t}=x(M4D6*wqUGz#qGI0(8-}D|CmR&>PT8SM<_# z0N}G-=fQ)({JNbFtzj&zf>+=jcn>}RY}9Q(8~}W%`#GS35$Xc-?~YvEt>6GRF!%2G zZ}&^#GQd{dlL5K9qmSG9@q=-1Af#U z8+HE-K8LU1TlgM+gr5Mpdt3nMum`gCK!-ihVGkQP0hxOsbB`E^ha^Dm9?0DTxqGyS z;cx|DpC0SrRX{&I7^7!>ps${^?}^{_90Rw)1F!{@8EYu=@kJr0DbquS9;+iz3`D<*sj+?IHV}O6^MkIa4w*~-t&Rqd!xJF%isr= znrPF9Hht);Pi+_vGoS?Mx6fSokD~Og1@zOGHhuBAz8v58Cb$JwK}b>3m}goXVBa+K zl!l(t9)}lzIi)eDH0G4XoYI(68goiR*0jTL1bzYL*AJQcHGvD^5@-Qtp#Of@q@M@; z5DSde?^0l_emSrj7_T4w^ylyT=fS&KpwB^ipHIWHz}yGD1k8W11#pDH z*mCgAuv1ZnoC9qjA40&KhujVHJ%ql8YyJ6=XS zbdoU&#sfOZK%R^#a0{#j~>aya4!2Holzw4q&fr z*us5W^02l<=DTuy;_*O6*MglSh zZ-(vgrK03q1n4^ld*&c#4)Tmtp)D}ak-eZVFyE2PcO-Tgxe7J{b{~n|M?L@#!=r$X zNA7|T;A7Yi2Z6Chegi+lZ;CQ10&2p!5CsNco}(@U5D}nJxF|SeRcht-98ldM<*m>0ZfPP1P55Fo(E@S61b}nP*YETC*026otIdYSs z19XP&&q9+d{_VrVKE>}?sae@py%8>;cmDO9)w2}Wpq181^OC|UPq(X z(HW2pBLN$Yo(Rl$H1i$Jd`HiNrEnFj0OmXTdZ6#o=zcW0X!JAiEMSAtyMTBby&K+! z{qPwa0Q4~WKY%SpV~a7^Vhs8ia}KnIu7Dqn836dvn4y3ljTr@F0RJ9?zl5IUmK7q-v~{>1b&DIVkRFS$;U_XJ3wbZo_utck1g|&D}N-6hOsaXt^j1s7nlRc zoR7@;OP~}s!!E#A^FIW1l)oRofkSW@kgp&DYQnjIj0J8$rUGnNfNvGFhfdH12171j zj{^LufN={Lw}5dA&{YAtD!^9@ZUcO&0RJp_23~|$;B`Qzf<3So&{+X`DnOQkBk&9S zt|;Rop%z3#J!l9`;6lJJ#x)0I9M=c%p>fDF4*wX3e~g<3b72822ILyI5^jK-0UM5c z5|C-!Yw!l_g5B^X{G=%3YruJ+0`?k@9OIjU1!4eQjPC|L0U5^kgUbQ^j2{LgAPaH; zJB`Oq}|D1$>PD1CC(g9f~1z{8*^CV=RG!Ev%YIqd31NxryJiG`y;VpO@kZ;l_ z@ELp#$T+z!Ak$=GaPKkqFfIL%% zz;GA=xsV41fLv3i!gMGBY&c~tAk&ol;URbwHpA=i9^ivhzJRX*drd)(DZeYq)F@~K z=whlD0)Pxt6M^`f+6IV|sU4s*bOr1*6+2DMhLJED#sYSlioT{!gvoFPAmh}#0sCAL z0e(Q=S76U8kn;-UnRW@J0rQ-O4W`leH2R*#Jg3puG?X+Af1M^U2j&Czn06B|=V{Dy z+T*YVw!!o861)n`f7*wDPfWunrr{IQzEYIwj6Z!DTn9J8Er1TEuZN9r7d!?}!qe~^ z;A=ehrA&VlcEdaHE_?vkcRH~!ow%G~fF^JOG=+=60Zu^AGd$1=E`!$47P><(=nMS; z`_C8*SHrDvJ8XbE0e#N65199it$>U(kZ}ew&UislW}X8b0b9&`5QvwV{5BK$XTAb& zz%JMW%%MbuBuD{{D?x^mVSqhKvLFZWzmhzd1XE!;;Cm&rVIC}iTi{_pMZpG=mO+j|g%Ix)5|B=tA%{!N+6*Ool4}IfSug1+0eK zU>)26=tW#c^?kKm+%c7g2QkGepZxO(clDhGpi@`fqpOm z(jgOqfPAyYK@m&@WSn&~Ak(akfUnNF7ajn7f7bJ`8$Nt27z(*i2>8vMserxaAjh0V za4m#jJ)oaC=w}Z4nezy2hOO`i)&X%h?@qWI?gQ*M z5Btq~9(DpgG9N#l?*!&PzYmOo889D~z?HBZu7OfuzVqp0{-f}?qAX|#mw**qkOY?j z^IR|pGNAzQuLaCwK@lv4m9QON0_MJ82O!ge_u&ipT~QWB0ybNS%@$&_g+{0g^`Q}5 z0B-O>48#NDFKh*EAQ_0sg`J=aFu#QZ0lh994jGUI$hHu<7ET0YS-2OFW8sI2vWUJG zaqOaQfK3*S0_L#@9W9y(*kREuSPbZ85x%&Hc`bSdo`W}F9~^?ia0Gq<=C_#nEoOd; z&jaSSnE5Sk4kkdKiygrH7JDH8#L(hIxD?RwV&qwjju#`tV(haRJ1>3#cELA_vZMwW z09`FXS4%E}X3!EWU<3MGLZ3^R=aLn$8p>cT{H7>Nk!vY(Ek*B3a{(PKodVMUdoBF{ zK8F2@vMd6kfbo_!h9=My7-JdsST-8a^D_EaMjy+r_&VbBr{vc z$_ybwc3k#~kVLXFvscz>?__0j+NZtuKJ9VZA{3dS>)9XAe|}fr<9)o2e@5eGN14f}i98L0 z(Xo+bv@D}#8SREf>ut1|j5d?eW-?l>(Vrpb=wZx352N)kS`VZ3FnTjv*v4U^Im3A_ zaf933#(QJzZ_Jl8=4;Gi%(ryFOvZFZ&tv2sbClz#Ip!w6O30Ac6@@ zW*WaTkKb6#Qr5DS9oW&>eH_G`#+paO8|0uYRq$qnHzT|m;mwE^w4yZ~aVHV(B*Lvl z^ky*j67e&mn8ZwGGnWOJUxZynY{Z@-+)TtS_OhQ7oa7YOc)_b67#E~e}ef>Scw@=ucU)rz1aL1{2L-Vn2psu@lXB;yjk2 z=ZULXM--dT|3rOH)bqqEn9IaRJmEPn`8NnA`PL@sd6HfyWgrXL$%Q^A>2p$Hir^+D zRiYMk(C?&%G@%)7=|mUwJIT%__2DOm5y3QOGMl+9U?GugWEXomfNyNlF-~v+JDzl# zyWHn59tFYVfH=e_5oSL*IVnj^MsiXBStb{y1f`H^awTdZ(`1<@H$|H&hs@GJgUrl~SbjbIjYS%6GamlMev*0GKKoIsYT zXSu*-WSV-1N60i)rl~KHX_`#a5|W&>$TBSxS;$UK3Q&UbRHQOhsX;9o(vsH5G)<;y zGEM75Uj{M+nWl{vzDk9T#nWoD$y%tSrNo!=9-hobZp&LIjj0j|zKACCEM5gHr ziA1L9GELuzOw(nWzMm6ZK$huOxxsDj@Q9Z|Fe47}NyJ;cO>)wbh3v>QL#7!r%_u-= z%2N@UW>lvZb@(66XiFz#nbDn|^g*T>!-znp88Xe7hD{fh=T4rkVLDKw*kdhDy{zmYMZvNE2k5*_KYo zG*hOTJ&|dqOf!cO!8BxHZskWX{Jmw9|ggzfH=fQ zrddfzPD)afk(?AjmRUt9K`CUKRf$^2G)tyg4UuVndRTVev#{!SR~mXRJ*7DfAOIp&AflOo} zJGt=hAIsgv^86H}1|9J46wB9eE(liWd&LKor8(xd!n{@tXC$MU%xuhUg}JRTw-x5L zVmbbOWW_4B;on16`1hz4vaOJ1#Ys+cmM1~5Qok#+qPLZK(A!G?UbND^t}I3gDpQpP z=x1e1TJsIx)0uAkNKf>%(iLZ-y$QK$xTtJpk`!U>d^}IBEQ8vBGruSikgvX zMh<5ZOOP?rZA6+^vTm3Vmi9nXsQ<=dm zcA($Y_t4jBeXV|hJ6_|i*2F^(Yu>~>*XVPNH`n-v)~L5ejWuSnW;L6Uf6XP-T%+b1 zdDp1BM%^_pc^w36?Pl#8B;y^@k%14%PeHu1wgjJ0hO*S82|v&kJ6daAYx~llK@4RC zqZrG47P6S7*x_3JuC>FpcDOc*&1}UU*Iq`C>oQRe_qJ{%D{;r`{tSZkiAl-3q(%Sh zvyqPi6s9QpU$6i5`d_dA_2rRaeO>C)2zR}{CEi)zmY>n@`nBk5{Wf;u9@Za559?2I ziZem5!7Mj;b3<*^+n~kkN`BW`wsx*K-04?Ej%hznfdI)Cwm zXZ#Zc#uP-wA`WgMO8%(Kn0b_$N11t)nMavK?E$(oSKY7Fxp7WA_gJ6?=Y_g9{@kvN3-sL^g zq3=!8(d#BV*klKrW!{{gjM(4itPID#Hcvse&HniPS#Y{u@k+TB(;x5~NA|F*3v)v3vssI|>3wz=zVN3rAWYHhDX75wwtYv8Tz{`c+b zYMbNl^s`~7qKxAWisW+wa1c>k#&I8caB(f@(ZFq;Ev95~B)F5>Nj zUr?WhG^QDD``}LO|Dg8|+Vvs3IMj$H_-77%g%;aQqG85}$;;NfPYoxIGav%UFr5CpNH&Ey!@<-yk@tzmsp1 zoRqxB`=lo$`7o1{n9i(P~HM zLCxr*$R1r0^`fg$6E&mj(SSy@qdRg&%Nae6iO3i|9W#smm3jPz%+cF0$7r_}y%)D0 zeTXBt=V-f(w##TY7OmIlr$KN^_EW`>|hs%InRC6Jfr5>Sg3ne-LvlD>|3~rvu@&S zCh}tcXVpDx|7T@AE9==>$a%IN=61FT&FRXI^u%4CHP5sC8N?8V@iU{a)3ZxC#9u*h z&YR~xrV&43zvs4K7Uz6x=WgR$J9m#K{2K)4^?zRf=k9TK3wt<-nitf(pyq|EJP3k|v5AM>UzG1+Qq1dOO5PS!U?r;xzF26}$^mw@p<@k)s=oPQjo%wLgpBGV$_ULGo};j#;6<9i$3&Y01>#q7#U;K zjj{U}S!1@blRd~8bBLqZRgC+Lxr>Z3GRC;+n7?_-bN=CV;6MFCEYkA{&GF`y1svvK z5L|tme0)J2d}mi1(wML5!1w$>7i75V&aMu|F0Y!$)v-)u3e%a%MlSOQ`n#&XtM+|W zZ&&qpO>fuqcFp_O(vgMiy`|B-H_xd;3)%A|Zdc7-hUbnC7ed*66rXu5Y8L$7s9Okir zg)CtiD=_2hc638OHwsV}^=|mxjjfo^4L#qCLwwxR&BUZ6J(>7`Y~;XfZkowW^SD_W z8E#gjGF6f1=C_PSk2hzdznk+}%u@7qGm`D>+QxgqXl+)yC3F!dl%mPJrN)ACHDJ!1j|{ETm5|t+wiUZ zeu8LDa~2tXzsMaPU>?6e<^`{U!2db86N@Z-N;T@>Te_pSJ56Xs8`@!pcRFBpcMjki zxuf1)HSWGcDl%XOcT1z@T{Z8@d{^eX>fV+2uDo~Uy({lsneKMQUhWQMI3tns?sz8Q z+qwH2Yw+&f!`Ri`lgN7a9CF^Zue;aqUETei*Fo?{h@Jfrhj=6;F-b{=zW>noAMavc ze|$-Ired~#+z5hu3CK?)0@Ez<7Y;r|9kqsHxcu?=UcnCh^4GRmV4{5 z!+V>tt9$yrp9sC(*V}!)-A_YWd{_4~l8*wI?|uE;uf!Krr!Mtrgx%dY=lgoP?~VKB zbKhLeA1ukKa4_*bqpJ|cv&*ltbF-LLBf4xO6 z3i2_<(EnfMsY(rMVl~N4ihKC$ z7EgE{1P|T*L-+MC4tDnNUG)9Xz8+>G2f4|EIX^V#hkAKveh-(i4zqdaorm6ec#S`U z;E|e-)O;l8qoll#dXM~B^C%l?KFUje%-~U3s?(Cz$oZ%}9r=N-{D^lS^`$@d_Q>8I zO=l){_sH%Z+1(@G+oMG+WjQN3!u=rlTh70|`S<@YyT50%4SW0hRS-OOUypq=kKaW9 zk5iF>%w!=uIg#OU9`aF=Pbp7D-1K949@oMRKJJEFd+e>pdV9PW^LwnX$G)S-8`*+B z9`E3fAb66FQmFStjVI>vq%C&;#0;K9pym@bpUC{gy*^R*$qH8C8-22lJ-FK^r@6o- zuHbuma+|x{<7E&$mHVl8pJv3ap4!z@S)YE0oKFi-n4*-xoj$Ei9nABoTYcJyCN!f3 zt&_%rvl+8^wv*l1-Lo_JbLN@;pXvYEb!2!Z!?VY{ z!2X^GxV`7`Nkn2~cy1@pz4Kge&ztiVZD>b(I?#uo7>U_F*Uxh|_Iw6&S%ABGz6ASw zuBR6X$%UJGQ3msPVID8M^Fr+xYQ9kOg_kC<5 z$ofLo7q_^>J^tiT5d0(KKQjI!<3CAwn-sX&f8OOi(&2vp$wVm{(+_X{vzPlp@X|N& z@*}GAEnTpWmp$o?y}cZb{$EaDGSisBEX?DjTYkBkb!y;V5Qty=-ugv7tIj$l9>o-vIwVJQxeXZ_mbzf&BGg-;b z#}uOiRj7))eQigt|3?Gd>}$Jv-5u|~9>X{$G6lPOE$8cBalfy9!><>!jh(pB*Jkn1nJkN4-#ua5z6RfnQmJnxUHEe$)-s z4Nr24vz$k!@F_2O9fYw$;u4=kBql96_yq69Dn|t>A#1Ga$Qi2+^=L>(exM8bi}fSD z=u1BaFqom}J=OyDa5o6w@a7vIQI{S}VLkeO!z|t~i#Kj?i$8ge{@?gF2xG@04)I9A zyXZf5dOjc^{K}juXut?(u-Xc*GOjYJ!*8VZx9%h(jjIAZNnCEaDiC zgD{ahPE>&E)T1Fy(0`(~xUEE8=!Wklk?$;#42fh&G?EA=Fqs+r!W`xyL!z7LFVQnz z@G1!3G`}}vexpi^JIeoA>z>Ge{hl zcTqF(2V_OY#Oft>2Z>9fX5w zToRBD`+7&lcVv7g8#&2M9`aFuLVS#Uz0(Q(yt5wnmQuZxewWf6r!=3GdQLfy>@Ag>O4W;bcq7&GAWR*LBxK?PKBO35pk`_{Q#V81)as`G zhHr7Rsog~CpO88Auc({au2L^%87q-9wOyrl2dUjb>TTFp>a(23EK^_RDmS>r@BG1i z-0r)H$xU^<`R)WZ62rein8rTSm_?d$RKQK8slt~uM*nHP;%nSlns&5DhBW4prXK@w z$7z0MH1?NfJTj!QlQjBEqqj77&|4aJmd2f>dBU?Gd@mjeNrisi%ZPctmyJBw+j|8m zOcC_-o;TiG#U}P+7VnwGd$)NUglXfWW?D7VrbXSf>ZZ*~c5?9{CHNd!)2f?R*0i#w zZHrx{l{2k7NZSQ>khUjd7>8M=ox~KTGYh*+>u%F7U?GdyhrZr_6M5dRNjIipx9_{x z_uXqc-&(pih>QNyy^R}Ar~h>NPnQ9=md+y(_kMwtV9)ua>&F~)Su%is}WynTO>?lJ%^p!#04Dx2E zN)2l9C3UHfels+tDJ^J;-ZKn9_6+*T@OuzuOpJON{Vrn{#^Y8q>N}&pGj3xC2Z`nk z`p>BUj8~8$qYN1zVs9B=@G1y1#Uc)Nmnk7KWU7RBGU+Xo-ZC|#6|M2-K_)krsV99H zK?LTTX)@E$cP2Z_^c(&h^xvlsGo1>;%-+bHgZz}DCbelqTY8~pW;HXr*Uai>RyXrh z+(YJB%w`2LXFkDyb?qwi1$;}HeYctA%xqVg?{c5Ng75?T`XB*`Fv}188Tdgm-XS$^ z_Jj9Hk9~gd3HtirC*=9S9zM7igjwFkZnOBaGD|x;qqD>Yk4YC8TaMC zfgfi59}UoZ)+Xp9>ju=$dY!+5Fk5WQBbymyOG{qV%%*0xvZ$L)-E3b_om!}!?JGJW zW458#Q#M(%jYZCElbFg3eqj#sWs@)4X121OU6^OKeH`F0M>)=eAk6+2`EeWB%{IGw z+5Im2l_2#08YawP7CExwmU84K4sMO=&?ZzM(y`?`07B@BN1#dFLa&eWbUK z3ggB;DoJTRr3UWcqh_?mxAReZI->87deED`^kWg;_{eLLv z^Q)P^73$_!H-87d$Gzt7iW|r;bN&UWo8O-DufYEE+kbvJ^KZfpmYYrv>^i*oJnv zv4S1xgn1NnYXyfe9Q!LMOF{c9XnzG)bB6!k(OW^i6?A6>|KK3-6 z!nts-h4W!og=H>mPleSj{55U)7P~4eXW=e%rzd?F$3!M$mj3>Lu<$H?Wgd1}co9oj z#zFM;aT4VD*d9La!AyJ)AG@WGUj$*1H;79D^j{QluL8SHuk$8N&?pRzz<_^j1V)MV7OYRqS9lCpd?GikN4SYuH%(K)POCu$bm$0^REZc%lMx`(3fwW!)f|KOh>EEXSii^*Cn zGg*OFbIWn5HzRCH7gY4SFm#7yT5oi{f@sT)pCcSG*hc z>F*Q>i*I5pW>S0?hdGV86u-b_u3$FB&7}Ba+*@%ON(8(?T;wT{g^K90M13031b0?K zUnTTa;v0UX7sIfx664TMi7EVonUxS^*x=jk5WI161w^tcoUf}=p46!hWGO5Xhnq|~1Qwnvl zGWJzw8Z%kNT4XFEW0_5CWe2<2%K;8?1pE3_U!Ueho=?s8)2VFX60d@=Y#K6?l^p25 zY(Yv=nolW@xs;WmY#q#^Y-5_y3cK@n1cYVVo!#y7IH&1!V z>mV#2@&<08e0pRo@7?nDR9@EdvX(E)XUJK;3e~8|*R(~(^7<>^flhRxJ3Z)4U;1HJ z&SDOqUE&shqW{nI|Jf6s@gfK-#N$npAVY;z*j^&B0EMvA&ugRC&nM!|&o2gHCA+Vb4g0Os5`9-P zi%KKWf29bfF&F(;TEtRT5Xn~DTqXTia?6#Da)ML1=Su$sVdd0hL0^@9bCu1rvYslJ zpcJ3t&w|Q&sQewjupRX(t5NwbW>VQKs_3^$O4O{PW|f?%TSeU}c2uP>MJbM5RjEru z8sj^v(u&r6!?*Or{;SNuyH(~eAA71|PgRy9XO%UWS(S|(<0PlhUlreM6|<~znJZl5 zCbzNAFWl%CS<%lIZsv>8sP~26ePOp%WvOZ&RX?E&W>M8Fs#fEFG@ubpY0g)4qzm1V zq3TZzU@-DjUCci8SXFOTW6)PseN{Efs(T zm}baX{cGA{SJgW(kRc3X1n#uDJFPyB2~1)t)0xRe^jiJjAgtld8s)M38l!N>H4dTg z8fH=B3HDJ#|21Qim?XSSa%8BPiVw&^Zroi>cUSXcicx}k^u!En>aXT#BG6mSDd?@H z-fDWkW)yC{<}Q3gH4ku{XwKk9YF-G!T5<43Eic2joO7Mf{e9gtnF57m!TXL z_?#+Kr8@RiTVJ)8BTsF!{W2}3X+m$NGKcvrME_r|W;5H^$sY9orT)J>%u&?)@-o-C zh5dc`fQLNhX%NeS*(%&|^=+RzT)QJub+XPrUVT^)O?V{dib zRh>ypVF%u*o09b8rW9sTw-R+}i<))Y(*t$u_G2K!7{MsqZQWTc!LI7sRb4kw*A3K_ zwXR*&J;`a#agiAQd;b|Pc**M^{9j0H;*o$id5ffcNEJFTmNmGkdI2)jv&(u7_=>O5 ze?9%z>x@0s`-uSzM*sEnUvDJ#S5N=-eq|nuSjq|_v8#HIg0Q}K>btZ0daIw1B)GHs zc2wUS>t`W9MR8m8&9nZe*js&l*RMtm?5=)KyixxMXSjh`)HjO;Zy;}j%&6HQ55*~s zdJW1`2{jw2*+9((O>wIY?5Dv%{MpiAIPx_Z!#E~l_YHiv4diXGnssboBkr|gBHL|-#?HI*k*0Yrz=&jK{?4{8OPGN?P&IMuPHz-6M)N8Cp<38AZ zV>@qb28|b@W@9xQ%iLJq#_BefxAA`DZ7gqNnHpc=KK9@EF?Q5g&c^=+VUt+ICOH}K zZj&O|Rg+JUwMjYTY*L9YsE++NY0Wp-S(ESR$PaX(8$Z$uy*JT&lNoG6KTTz9nho`u z`d!n}EaM>2m_^g`T;wJX@MlWXzj?}Y{t3cn@kxwZYbHap)VxPJK0PE7KS?o2%LUd(>^NZgby5^WMnX zyg$D0<};bYJbq&-%ZX$)J2{4o&HsD%4`gjFYxBoEL(b-}gRn(NY~Cd;>Cj(`O!&rH zm}iR|xYrhW$VYyv(H{M@ScTcPQ12_h`>G7Gd}SVA4Pq!}@s(M8HIZ5T%3Kz(kj2RH zRTNvd)T?5w^_BM--$mzN3~E`4Zny%O*6ZCGGf* z?=k0=ZmXr4w)93zGiqrzt=vE>J8$(qS+TEHpP^%Xof@NKqDMha4qmULt!Gx?FZt#{kj#je^mqA4wqv#njV zbq8(TLEG=KueQS&fm!-HCc?H6jAtT~vCp=8Z>#sVo462!-{|KX8Nc}q^}g}DZ_++|MD7a)MKwMZS)IVU8Vrw;kPT#}~W`!tVoOq37@8k$|j}rwzk#>)%K7JP13b z#x6VQxl<#WqW4ZMX-`-5-l->j_=*0=(8=9(n#dHUGn=_AU?DPex`X~Yz2tQe{tyzE z_#`4RX>nISBVCC**z9?3@uh>#S~P z-)83`l%y2)*V+C$*Fx^jow2LV?y+-kWbHhF!3^VP+(_pLyx(~dOEAyQ{+|tux{Y&8mAv?7n+dYEYZH)aN_C=Lg(Hcl+zE*Y5V$y)XS3h#htxioUzc z-Tn6<{Lz~~=EdxO?9L?Y??-d^@gjEi<27z@pQpUwRS@fxq(m}!p*=%L3HcJMd|d!|Iao@(?olb&|ovl8<6Y>S#b z)$A#6Pj!2$+j9uRaIZZ_F@r@cXC-#la|3qPa|>>?=TT(t`H=tKeTF^tw5MJnv5~V^ zLK2gdEMzAq`s?L8>*a2G6`&9wQw;m;^$8955&iVq%Jm@ZtzK`x>-`0?^fr&)V;PTG z^frs$zp|KR=)brAd#^)=-ZJ#w$6=0PcfHSYfy-P$hCUhbP9MGX(OaJ)l*CN?xU)Xx zs6`!G(3WrMKqvIwrx#}2$4&Jaz!JRCHy{Ca)i(#ZC`cJo-u=D;mka>VS1JoR#=74umcYwMBGLwbubq1?5cny9x_)-uKc^~r}VxB|vG{ko`L**Q5??Y?S1iu|>Cqw;isNW6!7IPdr zojJ^BAxqHbP zHJZ_$Ui76ua*rI!2u30I$X{^pBj++7cQkS_%UFqf8hMHrK{zTEa*gtBkLt<<{C1R? zjrtA08|8PS+{&nvT;Vo%xsTb6GP_Y`H%i9Q0kO!1?__ju1~U%5j8=2B9!8u0=;Nq4 z`XVu0!_AFWcl1-9qwZ*R{r{F4j!}0^5>nuM8uKpc$UtVYP>?cw#^+R_2DPb6J-*{7 zM&jETGYgr=$UH`WV`Ls9^B8@O*~U(GvyTHD;t2X5qyI5xFxK6V_4ZhAjqSu(+}l_= z$GVNNyV%1~&T<~P$I3m{&5U(3WB;r31oIp#cZAFlGDpNA9x_MB9FdhA$s=KLc5cx5tI}e#fOECu)u>#HW0Tn&TSMgw~kdI5o%hqA%)= zQ*WHS<0di%GaWaZxh%l_ja$olqSzdSI;kJRO2?@;ZF`lkIWxDePhL1ukO; zlW*X*CqKpxCjW!mn_@;&Vq*tWyg#KR<}k(0OgSHfQ~lqkeuOzqpTi3F<4&f_H2nnL zo9?~o-ka{d>E4^}z3JYY?pvDf=4YrgBO!@NN^(;2E@??mCbEzn-`I=~DMkrCp$y)d zaSion+`>F(_F)8We&%Q*f^e1^v+R1-#}q}4S;x49+nA-tS!(=ZKferSD8o@>c4qS7 z_GY`i*=o!_h>Ww%WVSudR^!*s^kV>nP-9Ly^gc)LbMm6boIRXG?{m(e#@r6{Lhp0k z?p!tInZ-Q!KQ9Mvb)MhP^ZR*vm{*Cq)Ta?mX+cZ6i z9tYvV*u*0tiAhRwQexH%vy&6EUYG}WzOVp=DT3Qu*q9znXB#p68-$D8>>_(wrac|;XUd|k^v13i4Zyw@4Z-)c=voji*6U(DE>6RTsJU1Vi_7yr z)Lg9QV)I$7?qYQpccB~lTilBgoZ$v`vG^WlxY#TfKjR->1>q9ASds-jFDXMgDo}|p zs7@{F&=T)1X~Q>odr1d6(HXgxjAI?=cpZdG-Oy6s+tPZp!f%)Ad+B$4k9jPe$Q%~2 z6mwX*3cFltmrKoh=?->rKM0p)K(EX6xU4R1QFECdmbuYo<56>&n#+De-DT=7i)1zW zTeg9HLAd-KGLem(nD=tCSYC)C6r&2hf#rH$Zg0!&ZTSEOGmM`ZO$4*??(%uK&*k1; zzJ%qhM6Tt>cpQW)Qc)cHT;cm#F@az4+ZFm=v6y9;$BL6&!9B0Ii#e?L3%gulmn+PA zWk4))(Fnb+)Z@x=%ty_YdRV!I3|KuV1Tlq8yBjb{s)VxPJGLw}Y zcq_6bwP=bNMSf3by3qrDM4DNonMImWw4+e2QMz>2Y0mMxf?8J*;!%>(-*?IyKiFK;3of zu8Zb0XF1Ouo}$-v{|4duSeV!Pge1ny)@S5n%HfvQ*P$K_X+m>a(weU5XT7ZJd(oGE z*yDP$TW@yjm$08df^dT@8}ef38@|DeH~8%ace%k`Zg7_y2Jsu_x?vMr*@0{uP5;gFFe(alqtuOZS5bS=U(`X&D9SBG z-Q!Ol@r-|X9fTXb<-c7XZp=<0%xGf;D)9x?(Z@zJ+h}GR&1hp=>}_LvI?{+Pn_^Z8o#bX0-VT7r4T8Zt({Xc*x&D zxFs%W$w3i{^9g0p#}+f&VrEJuk-RI7lsJT-QJMC&`FVx(r=FTywyHnkr z=CyM=`rBz{JI!e4DmGzOJ9n^)!<^?5S8!W9-PX?EdBSsE@^29CibZTvlLbBPGPhmk zw#(dhncFVece%A)vhUL8t~!|8E_2)E-gY&mIRltM6yDt(;1+ggATwFX&M(;YZu8i^ zoRw_B%y;X5w{LCt0SB)o~d%Uwpjy-bhkz-FuN>i5d z_-^*Jp+B?O%?;Gu8;AHLA~6LqgS}?3*YEaL;tSl;-tV!iy|V8e%rHhVmhnvFH{{!U zkn`BfUh~;|9ede(hkN*Qa__%ExG&@l^s!GL`x2s$eMxv5x%SoM2PUzWQ#=a%XRYwN z{eHJ!|NE1Y9CO;A8o%9dcl%q?mUeuHTKl`;``q6HIri&)zkTkvul;kF&r;mo{#C4D z9kLwo#sPCWV9p0B(TFCrrZYoO^MINMrlIZubr1MH4lKa;abO7>gYcl<56XEk1*x## zgKpSubcCv?kJPE?XG8`^I5!~eA zPbkZ0d`@M|?Qkdbd{~c%-O*upba)a|F}K6!cG#PTBUz38ANKBH?;hTaw-4`N7gvMu zNL;d`|0CaE4@YD@vI@UD;&(^f=MnuL(eIJ{9OOX|9(@z@KbnEe$Z*sij^;y_qlJ;@ zXfe#@s9ukn!%_8)s&Vu(S1`w;PlNDSLexB_=CO3BdraM9`a71B+~mO>9jin&YEYYc zG{B6GHK9El(DN~G9XrBtPUFvwV;AxMvA=@wcsx?zt>ZErm*Kd#j_1WK9WR6&$17kL z$L->{TRL8yntVxJ^l-cjQ!uyVG5i~ZCuBKcrza}ncPISrL@oY@o=-HUDZQA*5>{e= zC+zQpS|{x8#8&({c;XnBxWR4ia-YXM;~!q(?UQDAvOYZ+z!==e$$2b8?UQD6Qq7ZU zp1g*-C)GW9j|Z61$wxsL9g9S~#oHt&1LhWOZqeozZEn$a6fJM`CzPQaW*2RC(e@MF zmahDW%+Y=6&me{}fyqo`25vf9&;H(oFnR&|xgLb4LbCB0>Yi#v8`@$2r_?$1D}HzC zHx?uFsTG{%CT4fa>`uve>Iu(z$?G6Ios_J&<8jMg?VYy!)80Pa8re>J z|MYis28c?J?F8TGwCRa{haw4zdPf1XTHaL&X~^`^EuOp*=*q;Cpd)+XD(o8 zXJk3^JMx^dx3ekH>sj+StKL~P&W>dq(^<$S)I6)^*<+}CR^7AuJA08Bu3|Q4&Ewn~ z#34S3NkTGwJLfW^_j7Wdb8F{%W3T6aW;78@U@}u#z#^8if>o@+ZqJ>@e$UHE55#=Oa<~{0ZbcZ*J#hJTKD)zrUdW3#mxM`?%=~ zImk_3@>2+PFWA+E;Y4BX7xZ<(cXz>ecj2EPycnRri~750P8Zd@n2(ZFp&B*$lK;_w z#x$b?-}3`q=uQvJ@}gN@?8i)Y;2XUp|E28swk~}|NBr)R-(Bj-PYhr%Ls`r|%;1v! zUW!46OK#_q8DEm+k{Mr;=hD+4ylf7a^?JDz>Rndj@-${JA3M9e2Q@FNdHFo*URL+A z{x09*ckc2c2xH>$CiWF$Uok03jTyzHB^O=MbBwoQMlcFHjG4$3ydUFcVs>&2Z^g(E zBSVb0V*cO(50T?aZ0zESU0g|syS$Z(CFZEV9s8?)oVD0T{qwxa8+dR1yS#^48oZ-n5lgU#hEq5dchazmTT!z? z&4x!&w?W+o`82HKC0;>R4YF#mqlWL;%uh68M-9KcYbc0lw3Ege%%KRmG%ln9eKgkM zd$9394(3qg)_5dGa~$rt@g&ULsHevDv;`4OF}T$xvox8d$#YGfYm!~liI}bFx5%;S zI-cS+-bN-(@1s`J$9%%4n4?MWO&xU8%Rms(9599`?7ewBW@+}0=09K;&1;Z-^9#Jm z2EIqlW;L7JQMXy$W_Qp$$OxlBM2q`vv743*vdF>hw#=m%?`kn;%TbuAC6xJj~K+mR8TUKFni0iTqk+)M} zqUKIDciP`hb$6<}Q|3D#A0HP@ZJu$({T^p-LVEc?|2Avb!?z9i0F*Mop$bxd+Bs{owwt;PS17fxl_-bcG~$Q z^62zzXB&OUztirz?4V1nt{CjC%ig-o(WUn;Idzq=5P5agu{(0>+KYWKOP6-f~ zW4~RU3F5cB`&hGm$Q}=7U z$veEqhv=hwBmdwBw(uiAA-C>kwz7>KK}64Z^whJA-*E@-rN=BiX6f-*=B=h}e}tDZgS5WU^~1YVA4*{~g+OIOf=;_g$B=iYvK>8(Gb**xjx>G0QIR=#9rs z_2wY^UU$^Hm;*T(HG9?Uy%=?S)$Mgdz1MObH{gDI?WXrBo@E`c;C6f8!n=CS+1rGf z`rJa_SnRA%E`4sHPal1gapQfvk&8X{%|>p0MU=3BG7dpcefQzNk9}Jh4kG%^(r=c2 z&-Ht*zZiGbZ?^tL)Nlg6^ZIW>9{oNC{buO5?|!%3ZA5XGkhIH4Cr+r5A_Dr z7?97v!5qzLtVGQLH3x1*-2rt6^f#~upRIw1kj;QR20q{;HsFQ^{>kTjNj-KmVD|$) zLj!~O3=M`vqL)E)4$i|&gG<>TJq^lb&@Bue$uYR`!E-p5^SJ=I4PMGBuHY)nJgBF^ z#vo#79P%I91D}tf6?ksQb3>Qmu7=#z&>y%S&klWzoQA%~E{1#-hJLBlOe<{+1QEkg z*!OTeldByPLZbWt?zsF8T>~Z8_%slcWPxBlv@GkFT zuOsW(h@MCEJhBP5|MNuL_0I=zHtPQTM{eUz?hYbGCo!E_WFwE!Lgq1_QcmGk9zZ{% z`We;FsL$W%I$q)xHees4@*kDe=rE%}_`km+{c{`>h$Eeu%p!{%@|evW=CLm;xSdz| znw}txNMHt@jmRdK0tz{RqdAG?oW_})&xKsVWvt?HzGWZ?LtTcG$VAOh4`C(yp=PLN zcmnE%>V{`<7Wxa%<0`IY6I-aKiB@*dK{vaCa7;AjAEW0n6)d8bU$cb0Sjzq!!*O`` z81EkA-D7@>_mA=ZG3Rgx>-d7+ARL=SDF<>ao*jEKr*b;-7<&tAcmz3&UCT4PgsjKD z!CSmTa}Y*OMX!;1jFd;@iKrQ=hsaA=jhc~aMm~hPk?KZ1&9mq)@DOf7A3zZ`9&?|HyniwqK-#? zQOl8ElpLaNMvqY+vNZ^!$DwX?9eXtxwCyJ(q5|Bj0=d-O`o8~quZ`H4na z*v?M6aJ%EoFm5{elv70wzhW_avJd-lG9;XR(6wxq#bwg%8-kM*e|XG4>MkFMK{?%n>6We?~wUV;|$~W4wKg zH_P}~;+aemDb#Tucd&-Fyv@6K&-kxUbG(}4)f_*Bx)ao$5J@!SnMfL^BJT;8u#zjd zmg~5YoB1;@BKaS)CPR0ze_7;0CW{Gt>vF3@rj7QOHY+n$@sTZe4 zTn3rA!#H;mw-hzw)Qmfh6Hzx#e{pBx7UJwSPBwA!h`SB>$KB2SJivoI%nQ89JG{pS zxZSuf_!>Kp`++UAv4ak}kz1VHCQT%j9P%k-9`jj%o+m9~FZ4c1?~|5sFo$wD=AWd; zN$W8GB)P_`8=u5f>^?r71MxYCKLvLje+K4_zkrL8Vf^J>$&+jf!UTIvNFW(~CQN4* z+2o?wR(&B`ltaH;4_xwJ0eN{Nio=K(j*eG-z57@%Efz=W-|xxPI5m<3n;@}Nr!PM zYmjf!kH{w3Z6xR6xn$2J>p5A^$#$AtgFKQ?;!0L?C-P4=L$dsnAH^)mvQIXTKNBEK z{w4@h^qNwDdMRq89L%A(kra2Aaye?IsF`A?DefUf-4y+$xP=tAkm43nWRoI~l#h^q z%0~XlCcflr+)9dFr1Ubta1c(l^QmKrMlVy%Ikgxw`Lh7RsmsvQRJlw&f}=T(6FHaj zxqyq1+tig@!Bt$tgXn2$a}cJENB*hqCDmsu^*lV6>bcZaxcgMMn|eJrBCpiHBd65O z{F|TnrB*B3*nv5w>3v!}lSw9(46?|b#-n)V7G@Hak29%-Mli7)sH`<$-F>2omObh%Dfclzzz#hA1TYZfl17nc;S3yn~r%cy5O0W_*p_XXt&#f6)I7&(6$b9;Ga# z0<~t=@oN?%o0-RB7c=c*rd`amiGtS{$WR!6M*J588dd|>qhP*T6ow0)sy4e+kv!Y3-0R7Lhhgr4gf7TNA zVk!1A>llv1E@qv?a(>Ghm}{0EX5Gv>pxDgR9KWHtt2RxEnWl0}w!S!!gtkF1-xlZSX2HM7*r`WSVy z)Xmag)>r(CZ)u^20fzWF2(!l!iHx#i@LBZx`NQmNa>-{Qa?6%mwqCO3mTm9Z=FL8Y z!#NV!Wy>zxezLD*HMepHcVqVKHT(si#q8&K5&dVo>FhUon|F~x_Fxe1mO?d0qwa1i zxq_>)|J_D{FlRiINW?C3rjbqtnH6*L!mlm_jnC_^!|O{@hBAMHab_Vn4a|nmZbVc@yz$o}TmcoG14@ zedn1qZy#ivC)+&P<{gQ9%sZJ=aR+&4a3|~0Yn~qSWRV|_n)!Oj&!Y-8^VQ5h0Cn@# z%|C*p&|m)XoWps%iwyEN@g@J_2mZ}ZG_WfO3(Q}j=K?oUP{16DC}ANLEMh79;oSw^ zUEtjXhvEGN-d}JGSMg`wqcI3)kHOw%*Rn63oqZ68@*Ctadlffw8*-R^5BFi0vt>Q| z3D)v7Uj<=d6nZVxW1&0>m!W2%9twTF3ok>>LNyC-LES=i3-9HA^jG*G&+|HOA*(_? z7k$m|K%r*a9^Ur;XXIU47^CmHs-LS8D_BBry^A=D}CH6IMclO~pfNr2(-_!8=OTFO_X+Hr`We zr=@Z#oyQ@p;2LCADyvdimAdCr^-7=P1zzSg-b6;FGAjL)&-j9`aF3<#u~ZhNTQKv2 zRO(oc`U})rpvHo?P-lUR7i?f7o?q|{-|{^z$Z^3=x-i>MLFKgJW-Pr1)r`Nw>MdoBMQdnuP`xjf6a(2nngay^yHvs|9#BSBaZFa|kQ zjKg&&z0`B@&|^4uu3mgvagbP)mf}S_Ei@m|EintzAEpj@}4U1sd|Ced56E_ zvr(mfmHJicSIMJl8$J9Sgo`4mVNZ_WcuvDR7F~inUgWdB$c&48))&2xx{K6Xq~4+i z`WZsKYW1qeBG>Bi#1hYBl9|mMijaA=8LP{vq?$TpUoHFUy*L>2S6_oUtDi@1)iSDX zVlW7663J#E7qN;vu!9=8)I5jhYGhOME*mgIjcjUUQ)8Bz&HP9`>ejT<7KF89m_Y?+ zV)wPOue}sK)!xWzZpAxm@8V(BV&ApiTl*q!@HT(t13qF$5Z0w3`?_Tug!`&njvdr_ zU)?#_MV(#L*+rdQ)Lq5(_zcwD8-$DPeeu)0jM|Ic)M9fj-hvqxd(Ywyy6I(r;UHWR u!$jgpU)8Dgxh?rL_}^b+!~gqtiT@G#|NaV>bo>|J3TK!A literal 143971 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 diff --git a/PokemonPhoneBook/AppDelegate.swift b/PokemonPhoneBook/AppDelegate.swift index 7b199a2..2d7a853 100644 --- a/PokemonPhoneBook/AppDelegate.swift +++ b/PokemonPhoneBook/AppDelegate.swift @@ -11,8 +11,6 @@ import CoreData @main class AppDelegate: UIResponder, UIApplicationDelegate { - - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. return true diff --git a/PokemonPhoneBook/Controllers/AddPhoneBookViewController.swift b/PokemonPhoneBook/Controllers/AddPhoneBookViewController.swift new file mode 100644 index 0000000..c53c2a7 --- /dev/null +++ b/PokemonPhoneBook/Controllers/AddPhoneBookViewController.swift @@ -0,0 +1,109 @@ +import UIKit +import CoreData +import Alamofire + +class AddPhoneBookViewController: UIViewController { + + private let addPhoneBookView = AddPhoneBookView() + + var phoneBook: NSManagedObject? + var isEditingMode: Bool = false + + override func loadView() { + view = addPhoneBookView + } + + override func viewDidLoad() { + super.viewDidLoad() + setupNavigationBar() + configureEditingMode() + addActions() + } + + private func setupNavigationBar() { + let addButton = UIBarButtonItem( + title: "적용", + style: .plain, + target: self, + action: #selector(addButtonTapped) + ) + + navigationItem.title = "연락처 추가" + navigationItem.rightBarButtonItem = addButton + } + + private func addActions() { + addPhoneBookView.createButton.addTarget(self, action: #selector(createButtonTapped), for: .touchUpInside) + } + + @objc private func createButtonTapped() { + let randomNumber = Int.random(in: 0...1000) + guard let url = URL(string: "https://pokeapi.co/api/v2/pokemon/\(randomNumber)") else { return } + + PokeAPIManager.shared.fetchPokemonData(url: url) { [weak self] (result: Result) in + guard let self = self else { return } + switch result { + case .success(let pokemon): + guard let imageUrl = URL(string: pokemon.sprites.frontDefault) else { return } + PokeAPIManager.shared.fetchImage(url: imageUrl) { imageResult in + switch imageResult { + case .success(let image): + DispatchQueue.main.async { + self.addPhoneBookView.updateImage(image) + } + case .failure(let error): + print("이미지 로드 실패: \(error.localizedDescription)") + } + } + case .failure(let error): + print("데이터 로드 실패: \(error)") + } + } + } + + @objc private func addButtonTapped() { + guard let formData = addPhoneBookView.getFormData() else { + showAlert(message: "이미지 생성과 이름, 전화번호를 모두 입력하세요.") + return + } + if isEditingMode { + updateData(name: formData.name, phoneNumber: formData.phoneNumber, image: formData.image!) + } else { + createData(name: formData.name, phoneNumber: formData.phoneNumber, image: formData.image!) + } + navigationController?.popViewController(animated: true) + } + + private func showAlert(message: String) { + let alert = UIAlertController(title: "알림", message: message, preferredStyle: .alert) + alert.addAction(UIAlertAction(title: "확인", style: .default, handler: nil)) + present(alert, animated: true, completion: nil) + } + + private func createData(name: String, phoneNumber: String, image: UIImage) { + if CoreDataManager.shared.createPhoneBook(name: name, phoneNumber: phoneNumber, image: image) { + print("연락처 저장 성공") + } else { + print("연락처 저장 실패") + } + } + + private func updateData(name: String, phoneNumber: String, image: UIImage) { + guard let phoneBook = phoneBook else { return } + if CoreDataManager.shared.updatePhoneBook(phoneBook: phoneBook, name: name, phoneNumber: phoneNumber, image: image) { + print("연락처 업데이트 성공") + } else { + print("연락처 업데이트 실패") + } + } + + private func configureEditingMode() { + guard isEditingMode, let phoneBook = phoneBook else { return } + let phoneBook1 = PhoneBook( + name: phoneBook.value(forKey: PokemonPhoneBook.Key.name) as? String ?? "", + phoneNumber: phoneBook.value(forKey: PokemonPhoneBook.Key.phoneNumber) as? String ?? "", + image: (phoneBook.value(forKey: PokemonPhoneBook.Key.image) as? Data).flatMap { UIImage(data: $0) } + ) + addPhoneBookView.updateView(with: phoneBook1) + } +} diff --git a/PokemonPhoneBook/Controllers/PhoneBookViewController.swift b/PokemonPhoneBook/Controllers/PhoneBookViewController.swift new file mode 100644 index 0000000..200489b --- /dev/null +++ b/PokemonPhoneBook/Controllers/PhoneBookViewController.swift @@ -0,0 +1,111 @@ +import UIKit +import CoreData + +class PhoneBookViewController: UIViewController { + + private var phoneBookList: [NSManagedObject] = [] + private let phoneBookView = PhoneBookView() + + override func loadView() { + view = phoneBookView + } + + override func viewDidLoad() { + super.viewDidLoad() + configureTableView() + configureActions() + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + self.navigationController?.setNavigationBarHidden(true, animated: animated) + fetchData() + } + + override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + self.navigationController?.setNavigationBarHidden(false, animated: animated) + } + + private func configureTableView() { + phoneBookView.tableView.delegate = self + phoneBookView.tableView.dataSource = self + phoneBookView.tableView.register(PhoneBookTableViewCell.self, forCellReuseIdentifier: PhoneBookTableViewCell.identifier) + } + + private func configureActions() { + phoneBookView.addButton.addTarget(self, action: #selector(addButtonTapped), for: .touchUpInside) + } + + @objc private func addButtonTapped() { + let addVC = AddPhoneBookViewController() + navigationController?.pushViewController(addVC, animated: true) + } + + private func fetchData() { + phoneBookList = CoreDataManager.shared.fetchPhoneBooks() + phoneBookView.tableView.reloadData() + } +} + +extension PhoneBookViewController: UITableViewDelegate, UITableViewDataSource { + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + return 80 + } + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return phoneBookList.count + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + guard let cell = tableView.dequeueReusableCell(withIdentifier: PhoneBookTableViewCell.identifier, for: indexPath) as? PhoneBookTableViewCell else { + return UITableViewCell() + } + let managedObject = phoneBookList[indexPath.row] + if let name = managedObject.value(forKey: PokemonPhoneBook.Key.name) as? String, + let phoneNumber = managedObject.value(forKey: PokemonPhoneBook.Key.phoneNumber) as? String, + let imageData = managedObject.value(forKey: PokemonPhoneBook.Key.image) as? Data, + let image = UIImage(data: imageData) { + let phoneBook = PhoneBook(name: name, phoneNumber: phoneNumber, image: image) + cell.configure(with: phoneBook) + } + return cell + } + + func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle { + return .delete + } + + func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) { + if editingStyle == .delete { + showDeleteConfirmationAlert(forRowAt: indexPath) + } + } + + private func showDeleteConfirmationAlert(forRowAt indexPath: IndexPath) { + let alert = UIAlertController(title: "삭제 확인", message: "정말로 삭제하시겠습니까?", preferredStyle: .alert) + let deleteAction = UIAlertAction(title: "삭제", style: .destructive) { [weak self] _ in + guard let self = self else { return } + let managedObject = self.phoneBookList[indexPath.row] + if CoreDataManager.shared.deletePhoneBook(phoneBook: managedObject) { + self.phoneBookList.remove(at: indexPath.row) + self.phoneBookView.tableView.deleteRows(at: [indexPath], with: .fade) + } else { + print("삭제 실패") + } + } + let cancelAction = UIAlertAction(title: "취소", style: .cancel, handler: nil) + alert.addAction(deleteAction) + alert.addAction(cancelAction) + present(alert, animated: true, completion: nil) + } + + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + tableView.deselectRow(at: indexPath, animated: true) + let phoneBook = phoneBookList[indexPath.row] + let addVC = AddPhoneBookViewController() + addVC.phoneBook = phoneBook + addVC.isEditingMode = true + navigationController?.pushViewController(addVC, animated: true) + } +} diff --git a/PokemonPhoneBook/CoreDataManger.swift b/PokemonPhoneBook/CoreDataManger.swift deleted file mode 100644 index e69de29..0000000 diff --git a/PokemonPhoneBook/Managers/CoreDataManger.swift b/PokemonPhoneBook/Managers/CoreDataManger.swift index 7f61aef..c2f2466 100644 --- a/PokemonPhoneBook/Managers/CoreDataManger.swift +++ b/PokemonPhoneBook/Managers/CoreDataManger.swift @@ -47,6 +47,8 @@ class CoreDataManager { func fetchPhoneBooks() -> [NSManagedObject] { let fetchRequest = NSFetchRequest(entityName: PokemonPhoneBook.className) + let sortDescriptor = NSSortDescriptor(key: PokemonPhoneBook.Key.name, ascending: true) + fetchRequest.sortDescriptors = [sortDescriptor] do { return try context.fetch(fetchRequest) } catch { diff --git a/PokemonPhoneBook/Managers/PokemonPhoneBook+CoreDataClass.swift b/PokemonPhoneBook/Managers/PokemonPhoneBook+CoreDataClass.swift deleted file mode 100644 index 25f76b8..0000000 --- a/PokemonPhoneBook/Managers/PokemonPhoneBook+CoreDataClass.swift +++ /dev/null @@ -1,20 +0,0 @@ -// -// PokemonPhoneBook+CoreDataClass.swift -// PokemonPhoneBook -// -// Created by 내일배움캠프 on 12/10/24. -// -// - -import Foundation -import CoreData - -@objc(PokemonPhoneBook) -public class PokemonPhoneBook: NSManagedObject { - public static let className = "PokemonPhoneBook" - public enum Key { - static let name = "name" - static let phoneNumber = "phoneNumber" - static let image = "image" - } -} diff --git a/PokemonPhoneBook/Managers/PokemonPhoneBook+CoreDataProperties.swift b/PokemonPhoneBook/Managers/PokemonPhoneBook+CoreDataProperties.swift deleted file mode 100644 index efe498b..0000000 --- a/PokemonPhoneBook/Managers/PokemonPhoneBook+CoreDataProperties.swift +++ /dev/null @@ -1,27 +0,0 @@ -// -// PokemonPhoneBook+CoreDataProperties.swift -// PokemonPhoneBook -// -// Created by 내일배움캠프 on 12/10/24. -// -// - -import Foundation -import CoreData - - -extension PokemonPhoneBook { - - @nonobjc public class func fetchRequest() -> NSFetchRequest { - return NSFetchRequest(entityName: "PokemonPhoneBook") - } - - @NSManaged public var name: String? - @NSManaged public var phoneNumber: String? - @NSManaged public var image: Data? - -} - -extension PokemonPhoneBook : Identifiable { - -} diff --git a/PokemonPhoneBook/Models/Pokemon.swift b/PokemonPhoneBook/Models/Pokemon.swift index ff6bf24..84a1ae9 100644 --- a/PokemonPhoneBook/Models/Pokemon.swift +++ b/PokemonPhoneBook/Models/Pokemon.swift @@ -7,21 +7,19 @@ import Foundation -struct PokeModel: Decodable { +struct PokeMon: Decodable { let id: Int let name: String let height: Int let weight: Int - let sprites: PokeSprites + let sprites: PokemonSprites } -struct PokeSprites: Decodable { +struct PokemonSprites: Decodable { let frontDefault: String - let frontShiny: String enum CodingKeys: String, CodingKey { case frontDefault = "front_default" - case frontShiny = "front_shiny" } } diff --git a/PokemonPhoneBook/PhoneBook.swift b/PokemonPhoneBook/PhoneBook.swift deleted file mode 100644 index aee7604..0000000 --- a/PokemonPhoneBook/PhoneBook.swift +++ /dev/null @@ -1,16 +0,0 @@ -// -// PhoneBook.swift -// PokemonPhoneBook -// -// Created by 내일배움캠프 on 12/6/24. -// - -import UIKit - -struct PhoneBook { - let name: String - let phoneNumber: String - let image: UIImage? -} - - diff --git a/PokemonPhoneBook/PokeAPIManager.swift b/PokemonPhoneBook/PokeAPIManager.swift deleted file mode 100644 index e69de29..0000000 diff --git a/PokemonPhoneBook/PokeModel.swift b/PokemonPhoneBook/PokeModel.swift deleted file mode 100644 index ff6bf24..0000000 --- a/PokemonPhoneBook/PokeModel.swift +++ /dev/null @@ -1,27 +0,0 @@ -// -// PokeImage.swift -// PokemonPhoneBook -// -// Created by 내일배움캠프 on 12/10/24. -// - -import Foundation - -struct PokeModel: Decodable { - let id: Int - let name: String - let height: Int - let weight: Int - let sprites: PokeSprites -} - -struct PokeSprites: Decodable { - let frontDefault: String - let frontShiny: String - - enum CodingKeys: String, CodingKey { - case frontDefault = "front_default" - case frontShiny = "front_shiny" - } -} - diff --git a/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/.xccurrentversion b/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/.xccurrentversion deleted file mode 100644 index e1b76cc..0000000 --- a/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/.xccurrentversion +++ /dev/null @@ -1,8 +0,0 @@ - - - - - _XCCurrentVersionName - PokemonPhoneBook.xcdatamodel - - diff --git a/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents b/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents deleted file mode 100644 index 0960308..0000000 --- a/PokemonPhoneBook/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/PokemonPhoneBook/Views/AddPhoneBookView.swift b/PokemonPhoneBook/Views/AddPhoneBookView.swift index e69de29..1a686d1 100644 --- a/PokemonPhoneBook/Views/AddPhoneBookView.swift +++ b/PokemonPhoneBook/Views/AddPhoneBookView.swift @@ -0,0 +1,105 @@ +// +// AddPhoneBookView.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/11/24. +// + +import UIKit +import SnapKit + +class AddPhoneBookView: UIView { + + let pokeImageView: UIImageView = { + let imageView = UIImageView() + imageView.clipsToBounds = true + imageView.contentMode = .scaleAspectFill + imageView.layer.borderColor = UIColor.gray.cgColor + imageView.layer.borderWidth = 2 + imageView.layer.cornerRadius = 100 + return imageView + }() + + let createButton: UIButton = { + let button = UIButton() + button.setTitle("랜덤 이미지 생성", for: .normal) + button.setTitleColor(.lightGray, for: .normal) + button.titleLabel?.font = .systemFont(ofSize: 20, weight: .light) + button.backgroundColor = .clear + return button + }() + + let nameTextField: UITextField = { + let textField = UITextField() + textField.placeholder = "이름을 입력하세요" + textField.borderStyle = .roundedRect + return textField + }() + + let phoneTextField: UITextField = { + let textField = UITextField() + textField.placeholder = "전화번호를 입력하세요" + textField.borderStyle = .roundedRect + textField.keyboardType = .phonePad + return textField + }() + + override init(frame: CGRect) { + super.init(frame: frame) + setupLayout() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + private func setupLayout() { + backgroundColor = .white + + [pokeImageView, createButton, nameTextField, phoneTextField].forEach { addSubview($0) } + + pokeImageView.snp.makeConstraints { make in + make.top.equalTo(safeAreaLayoutGuide).offset(20) + make.centerX.equalToSuperview() + make.height.equalTo(200) + make.width.equalTo(200) + } + + createButton.snp.makeConstraints { make in + make.top.equalTo(pokeImageView.snp.bottom).offset(20) + make.leading.equalToSuperview().offset(20) + make.trailing.equalToSuperview().offset(-20) + make.height.equalTo(50) + } + + nameTextField.snp.makeConstraints { make in + make.top.equalTo(createButton.snp.bottom).offset(20) + make.leading.equalToSuperview().offset(20) + make.trailing.equalToSuperview().offset(-20) + make.height.equalTo(50) + } + + phoneTextField.snp.makeConstraints { make in + make.top.equalTo(nameTextField.snp.bottom).offset(20) + make.leading.trailing.height.equalTo(nameTextField) + } + } + + func updateView(with phoneBook: PhoneBook) { + nameTextField.text = phoneBook.name + phoneTextField.text = phoneBook.phoneNumber + pokeImageView.image = phoneBook.image + } + + func getFormData() -> (name: String, phoneNumber: String, image: UIImage?)? { + guard let name = nameTextField.text, !name.isEmpty, + let phoneNumber = phoneTextField.text, !phoneNumber.isEmpty, + let image = pokeImageView.image else { return nil } + return (name, phoneNumber, image) + } + + func updateImage(_ image: UIImage?) { + pokeImageView.image = image + } + +} diff --git a/PokemonPhoneBook/Views/PhoneBookTableViewCell.swift b/PokemonPhoneBook/Views/PhoneBookTableViewCell.swift new file mode 100644 index 0000000..661da48 --- /dev/null +++ b/PokemonPhoneBook/Views/PhoneBookTableViewCell.swift @@ -0,0 +1,83 @@ +// +// Untitled.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/6/24. +// +import UIKit +import SnapKit + + +class PhoneBookTableViewCell: UITableViewCell { + static let identifier = "PhoneBookTableViewCell" + + private let pokeImageView: UIImageView = { + let imageView = UIImageView() + imageView.clipsToBounds = true + imageView.contentMode = .scaleAspectFill + imageView.layer.borderColor = UIColor.gray.cgColor + imageView.layer.borderWidth = 2 + imageView.layer.cornerRadius = 25 + return imageView + }() + + private let nameLabel: UILabel = { + let label = UILabel() + label.font = UIFont.systemFont(ofSize: 18, weight: .medium) + label.textColor = .black + return label + }() + + private let phoneNumberLabel: UILabel = { + let label = UILabel() + label.font = UIFont.systemFont(ofSize: 18, weight: .medium) + label.textColor = .black + return label + }() + + private lazy var labelsStackView: UIStackView = { + let stackView = UIStackView(arrangedSubviews: [nameLabel, phoneNumberLabel]) + stackView.axis = .horizontal + stackView.distribution = .fillEqually + stackView.spacing = 10 + stackView.alignment = .center + return stackView + }() + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + setupViews() + setupLayout() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + private func setupViews() { + contentView.addSubview(pokeImageView) + contentView.addSubview(labelsStackView) + } + + private func setupLayout() { + pokeImageView.snp.makeConstraints { make in + make.width.height.equalTo(50) + make.leading.equalToSuperview().offset(15) + make.centerY.equalToSuperview() + } + + labelsStackView.snp.makeConstraints { make in + make.leading.equalTo(pokeImageView.snp.trailing).offset(20) + make.trailing.equalToSuperview().offset(-15) + make.centerY.equalToSuperview() + } + } + + func configure(with phoneBook: PhoneBook) { + nameLabel.text = phoneBook.name + phoneNumberLabel.text = phoneBook.phoneNumber + if let image = phoneBook.image { + pokeImageView.image = image + } + } +} diff --git a/PokemonPhoneBook/Views/PhoneBookView.swift b/PokemonPhoneBook/Views/PhoneBookView.swift index e69de29..99a0454 100644 --- a/PokemonPhoneBook/Views/PhoneBookView.swift +++ b/PokemonPhoneBook/Views/PhoneBookView.swift @@ -0,0 +1,79 @@ +// +// PhoneBookView.swift +// PokemonPhoneBook +// +// Created by 내일배움캠프 on 12/11/24. +// + +import UIKit +import SnapKit + +class PhoneBookView: UIView { + + let titleLabel: UILabel = { + let label = UILabel() + label.text = "친구 목록" + label.textColor = .black + label.font = .boldSystemFont(ofSize: 30) + label.textAlignment = .center + return label + }() + + let addButton: UIButton = { + let button = UIButton() + button.setTitle("추가", for: .normal) + button.setTitleColor(.lightGray, for: .normal) + button.titleLabel?.font = .boldSystemFont(ofSize: 20) + button.backgroundColor = .clear + return button + }() + + private let stackView: UIStackView = { + let stackView = UIStackView() + stackView.axis = .horizontal + stackView.alignment = .center + stackView.distribution = .fillEqually + stackView.spacing = 30 + return stackView + }() + + let tableView: UITableView = { + let tableView = UITableView() + tableView.backgroundColor = .white + return tableView + }() + + override init(frame: CGRect) { + super.init(frame: frame) + setupLayout() + } + + @available(*, unavailable, message: "이 뷰는 Storyboard를 지원하지 않습니다.") + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + private func setupLayout() { + self.backgroundColor = .white + [ + stackView, + tableView + ].forEach { addSubview($0) } + + stackView.addArrangedSubview(UIView()) + stackView.addArrangedSubview(titleLabel) + stackView.addArrangedSubview(addButton) + + stackView.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.leading.equalTo(5) + make.trailing.equalTo(-5) + make.top.equalTo(self.safeAreaLayoutGuide.snp.top).offset(20) + } + tableView.snp.makeConstraints { make in + make.top.equalTo(stackView.snp.bottom).offset(60) + make.left.right.equalToSuperview() + make.bottom.equalToSuperview() + } + } +} diff --git a/PokemonPhoneBookModel/PhoneBook.swift b/PokemonPhoneBookModel/PhoneBook.swift deleted file mode 100644 index aee7604..0000000 --- a/PokemonPhoneBookModel/PhoneBook.swift +++ /dev/null @@ -1,16 +0,0 @@ -// -// PhoneBook.swift -// PokemonPhoneBook -// -// Created by 내일배움캠프 on 12/6/24. -// - -import UIKit - -struct PhoneBook { - let name: String - let phoneNumber: String - let image: UIImage? -} - - diff --git a/PokemonPhoneBookModel/PokeModel.swift b/PokemonPhoneBookModel/PokeModel.swift deleted file mode 100644 index ff6bf24..0000000 --- a/PokemonPhoneBookModel/PokeModel.swift +++ /dev/null @@ -1,27 +0,0 @@ -// -// PokeImage.swift -// PokemonPhoneBook -// -// Created by 내일배움캠프 on 12/10/24. -// - -import Foundation - -struct PokeModel: Decodable { - let id: Int - let name: String - let height: Int - let weight: Int - let sprites: PokeSprites -} - -struct PokeSprites: Decodable { - let frontDefault: String - let frontShiny: String - - enum CodingKeys: String, CodingKey { - case frontDefault = "front_default" - case frontShiny = "front_shiny" - } -} - diff --git a/PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/.xccurrentversion b/PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/.xccurrentversion deleted file mode 100644 index e1b76cc..0000000 --- a/PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/.xccurrentversion +++ /dev/null @@ -1,8 +0,0 @@ - - - - - _XCCurrentVersionName - PokemonPhoneBook.xcdatamodel - - diff --git a/PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents b/PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents deleted file mode 100644 index 0960308..0000000 --- a/PokemonPhoneBookModel/PokemonPhoneBook.xcdatamodeld/PokemonPhoneBook.xcdatamodel/contents +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/SceneDelegate.swift b/SceneDelegate.swift deleted file mode 100644 index 46d7dff..0000000 --- a/SceneDelegate.swift +++ /dev/null @@ -1,57 +0,0 @@ -// -// SceneDelegate.swift -// PokemonPhoneBook -// -// Created by 내일배움캠프 on 12/6/24. -// - -import UIKit - -class SceneDelegate: UIResponder, UIWindowSceneDelegate { - - var window: UIWindow? - - - func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { - guard let windowScene = (scene as? UIWindowScene) else { return } - let window = UIWindow(windowScene: windowScene) - let navigationController = UINavigationController(rootViewController: PhoneBookViewController()) - window.rootViewController = navigationController - window.makeKeyAndVisible() - self.window = window - } - - func sceneDidDisconnect(_ scene: UIScene) { - // Called as the scene is being released by the system. - // This occurs shortly after the scene enters the background, or when its session is discarded. - // Release any resources associated with this scene that can be re-created the next time the scene connects. - // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). - } - - func sceneDidBecomeActive(_ scene: UIScene) { - // Called when the scene has moved from an inactive state to an active state. - // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. - } - - func sceneWillResignActive(_ scene: UIScene) { - // Called when the scene will move from an active state to an inactive state. - // This may occur due to temporary interruptions (ex. an incoming phone call). - } - - func sceneWillEnterForeground(_ scene: UIScene) { - // Called as the scene transitions from the background to the foreground. - // Use this method to undo the changes made on entering the background. - } - - func sceneDidEnterBackground(_ scene: UIScene) { - // Called as the scene transitions from the foreground to the background. - // Use this method to save data, release shared resources, and store enough scene-specific state information - // to restore the scene back to its current state. - - // Save changes in the application's managed object context when the application transitions to the background. - (UIApplication.shared.delegate as? AppDelegate)?.saveContext() - } - - -} - From 55c09bf37b03643f23e208573ad62083488aa726 Mon Sep 17 00:00:00 2001 From: HwangSeokBeom <49748207+HwangSeokBeom@users.noreply.github.com> Date: Mon, 23 Dec 2024 15:57:53 +0900 Subject: [PATCH 16/16] Update README.md --- README.md | 35 ----------------------------------- 1 file changed, 35 deletions(-) diff --git a/README.md b/README.md index 95ae3a0..b1bb4c8 100644 --- a/README.md +++ b/README.md @@ -2,41 +2,6 @@ **목표**: Xcode에서 UIKit 프레임워크를 이용해서 스토리보드 혹은 코드베이스로 포켓몬 전화번호부를 만듭니다. -## 📝 협업 규칙 - -### Pull Request 작성 규칙 -1. **형식**: `[레벨] 작업 내용 - 팀원 이름` - - 예: `[Lv 1] 필수기능 구현 - sonny` - -2. **작업 세부 사항**: 구현한 주요 기능과 로직에 대한 요약을 작성합니다. - -3. **Github 커밋 컨벤션 가이드 (이모지 버전)** - - - 기본 커밋 타입 - - ✨ `feat` : 새로운 기능 추가 - - 🐝 `fix` : 버그 수정 - - 📝 `docs` : 문서 수정 - - 💄 `style` : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우 - - ♻️ `refactor` : 코드 리팩토링 - - ✅ `test` : 테스트 코드, 리팩토링 테스트 코드 추가 - - 🎨 `chore` : 빌드 업무 수정, 패키지 매니저 수정 - - - 자주 사용되는 추가 타입 - - 🚀 `deploy` : 배포 - - ⚡️ `perf` : 성능 개선 - - 🔧 `config` : 설정 파일 수정 - - 📦 `build` : 빌드 관련 수정 - - 🔀 `merge` : 합병 - - ⏪️ `revert` : 되돌리기 - -### 레포지토리 설정 및 브랜치 관리 -1. **Fork로 가져오기**: 각 팀원은 레포지토리를 Fork하여 자신의 개인 레포지토리로 가져옵니다. -2. **브랜치 생성**: Fork한 개인 레포지토리에서 각자의 이름을 딴 브랜치를 생성합니다. -3. **Pull Request**: 각자의 브랜치에서 Pull Request를 생성해 코드 리뷰를 요청합니다. 모든 팀원이 Pull Request에 코멘트를 추가하여 피드백을 제공합니다. -4. **수정 및 Merge**: 피드백을 반영하여 수정한 후, 팀원들의 동의를 얻어 merge를 진행합니다. - --> 풀 리퀘스트를 한 후 Merge하지 않은채 커밋-푸시를 하면 기존 풀 리퀘스트에 들어가기 때문에 그럴 경우 새로운 브랜치를 만듭니다. - ## 🌟 필수 구현 기능 (Levels 1-5) - **Level 1**: `UILabel`, `UITableView`, `UIButton` 등을 이용해 테이블 뷰 만들기