From 70374b17b8bdcf371e67d626e64b3ec6b34f1251 Mon Sep 17 00:00:00 2001 From: Ari Date: Tue, 12 Nov 2024 22:35:46 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=ED=94=84=EB=A1=9C=EC=A0=9D?= =?UTF-8?q?=ED=8A=B8=EB=A5=BC=20Tuist=EB=A1=9C=20=EB=A7=88=EC=9D=B4?= =?UTF-8?q?=EA=B7=B8=EB=A0=88=EC=9D=B4=EC=85=98=20=EC=9E=91=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 126 +- .mise.toml | 2 + .../.swiftlint.yml => .swiftlint.yml | 20 +- .../project.pbxproj | 1917 ----------------- .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../Resources/ko.lproj/LaunchScreen.strings | 1 - .../AnimalCrossingWikiTests.swift | 28 - .../App}/Info.plist | 12 + .../Projects/App/Project.swift | 58 + .../AppIcon.appiconset/100.png | Bin .../AppIcon.appiconset/1024.png | Bin .../AppIcon.appiconset/114.png | Bin .../AppIcon.appiconset/120.png | Bin .../AppIcon.appiconset/128.png | Bin .../AppIcon.appiconset/144.png | Bin .../AppIcon.appiconset/152.png | Bin .../Assets.xcassets/AppIcon.appiconset/16.png | Bin .../AppIcon.appiconset/167.png | Bin .../AppIcon.appiconset/172.png | Bin .../AppIcon.appiconset/180.png | Bin .../AppIcon.appiconset/196.png | Bin .../Assets.xcassets/AppIcon.appiconset/20.png | Bin .../AppIcon.appiconset/216.png | Bin .../AppIcon.appiconset/256.png | Bin .../Assets.xcassets/AppIcon.appiconset/29.png | Bin .../Assets.xcassets/AppIcon.appiconset/32.png | Bin .../Assets.xcassets/AppIcon.appiconset/40.png | Bin .../Assets.xcassets/AppIcon.appiconset/48.png | Bin .../Assets.xcassets/AppIcon.appiconset/50.png | Bin .../AppIcon.appiconset/512.png | Bin .../Assets.xcassets/AppIcon.appiconset/55.png | Bin .../Assets.xcassets/AppIcon.appiconset/57.png | Bin .../Assets.xcassets/AppIcon.appiconset/58.png | Bin .../Assets.xcassets/AppIcon.appiconset/60.png | Bin .../Assets.xcassets/AppIcon.appiconset/64.png | Bin .../Assets.xcassets/AppIcon.appiconset/72.png | Bin .../Assets.xcassets/AppIcon.appiconset/76.png | Bin .../Assets.xcassets/AppIcon.appiconset/80.png | Bin .../Assets.xcassets/AppIcon.appiconset/87.png | Bin .../Assets.xcassets/AppIcon.appiconset/88.png | Bin .../AppIcon.appiconset/Contents.json | 0 .../Resources/Assets.xcassets/Contents.json | 0 .../ACBackground.colorset/Contents.json | 0 .../Contents.json | 0 .../colors/Background/Contents.json | 0 .../Assets.xcassets/colors/Contents.json | 0 .../Contents.json | 0 .../colors/Navigation Bar/Contents.json | 0 .../ACHeaderBackground.colorset/Contents.json | 0 .../colors/Section Header/Contents.json | 0 .../ACSecondaryText.colorset/Contents.json | 0 .../colors/Text/ACText.colorset/Contents.json | 0 .../Assets.xcassets/colors/Text/Contents.json | 0 .../catalog-background.colorset/Contents.json | 0 .../colors/catalog-bar.colorset/Contents.json | 0 .../catalog-selected.colorset/Contents.json | 0 .../catalog-text.colorset/Contents.json | 0 .../launchBackground.colorset/Contents.json | 0 .../fruits/Apple.imageset/Apple.png | Bin .../fruits/Apple.imageset/Contents.json | 0 .../fruits/Cherry.imageset/Cherry.png | Bin .../fruits/Cherry.imageset/Contents.json | 0 .../fruits/Coconut.imageset/Coconut.png | Bin .../fruits/Coconut.imageset/Contents.json | 0 .../Assets.xcassets/fruits/Contents.json | 0 .../fruits/Orange.imageset/Contents.json | 0 .../fruits/Orange.imageset/Orange.png | Bin .../fruits/Peach.imageset/Contents.json | 0 .../fruits/Peach.imageset/Peach.png | Bin .../fruits/Pear.imageset/Contents.json | 0 .../fruits/Pear.imageset/Pear.png | Bin .../icons/App-Icon.imageset/App-Icon.png | Bin .../icons/App-Icon.imageset/Contents.json | 0 .../Assets.xcassets/icons/Contents.json | 0 .../BookBtnInvDiveFish^z.png | Bin .../book-dive-icon.imageset/Contents.json | 0 .../BookBtnInvFish^z_0.png | Bin .../book-fish-icon.imageset/Contents.json | 0 .../BookBtnInvInsect^z_0.png | Bin .../book-insect-icon.imageset/Contents.json | 0 .../Assets.xcassets/icons/bug/Contents.json | 0 .../icons/bug/Ins0.imageset/Contents.json | 0 .../icons/bug/Ins0.imageset/Ins0.png | Bin .../icons/bug/Ins1.imageset/Contents.json | 0 .../icons/bug/Ins1.imageset/Ins1.png | Bin .../icons/bug/Ins10.imageset/Contents.json | 0 .../icons/bug/Ins10.imageset/Ins10.png | Bin .../icons/bug/Ins11.imageset/Contents.json | 0 .../icons/bug/Ins11.imageset/Ins11.png | Bin .../icons/bug/Ins12.imageset/Contents.json | 0 .../icons/bug/Ins12.imageset/Ins12.png | Bin .../icons/bug/Ins13.imageset/Contents.json | 0 .../icons/bug/Ins13.imageset/Ins13.png | Bin .../icons/bug/Ins14.imageset/Contents.json | 0 .../icons/bug/Ins14.imageset/Ins14.png | Bin .../icons/bug/Ins15.imageset/Contents.json | 0 .../icons/bug/Ins15.imageset/Ins15.png | Bin .../icons/bug/Ins16.imageset/Contents.json | 0 .../icons/bug/Ins16.imageset/Ins16.png | Bin .../icons/bug/Ins17.imageset/Contents.json | 0 .../icons/bug/Ins17.imageset/Ins17.png | Bin .../icons/bug/Ins18.imageset/Contents.json | 0 .../icons/bug/Ins18.imageset/Ins18.png | Bin .../icons/bug/Ins19.imageset/Contents.json | 0 .../icons/bug/Ins19.imageset/Ins19.png | Bin .../icons/bug/Ins2.imageset/Contents.json | 0 .../icons/bug/Ins2.imageset/Ins2.png | Bin .../icons/bug/Ins20.imageset/Contents.json | 0 .../icons/bug/Ins20.imageset/Ins20.png | Bin .../icons/bug/Ins21.imageset/Contents.json | 0 .../icons/bug/Ins21.imageset/Ins48.png | Bin .../icons/bug/Ins22.imageset/Contents.json | 0 .../icons/bug/Ins22.imageset/Ins22.png | Bin .../icons/bug/Ins23.imageset/Contents.json | 0 .../icons/bug/Ins23.imageset/Ins23.png | Bin .../icons/bug/Ins24.imageset/Contents.json | 0 .../icons/bug/Ins24.imageset/Ins24.png | Bin .../icons/bug/Ins25.imageset/Contents.json | 0 .../icons/bug/Ins25.imageset/Ins47.png | Bin .../icons/bug/Ins26.imageset/Contents.json | 0 .../icons/bug/Ins26.imageset/Ins26.png | Bin .../icons/bug/Ins27.imageset/Contents.json | 0 .../icons/bug/Ins27.imageset/Ins27.png | Bin .../icons/bug/Ins28.imageset/Contents.json | 0 .../icons/bug/Ins28.imageset/Ins28.png | Bin .../icons/bug/Ins29.imageset/Contents.json | 0 .../icons/bug/Ins29.imageset/Ins29.png | Bin .../icons/bug/Ins3.imageset/Contents.json | 0 .../icons/bug/Ins3.imageset/Ins3.png | Bin .../icons/bug/Ins30.imageset/Contents.json | 0 .../icons/bug/Ins30.imageset/Ins30.png | Bin .../icons/bug/Ins31.imageset/Contents.json | 0 .../icons/bug/Ins31.imageset/Ins31.png | Bin .../icons/bug/Ins32.imageset/Contents.json | 0 .../icons/bug/Ins32.imageset/Ins32.png | Bin .../icons/bug/Ins33.imageset/Contents.json | 0 .../icons/bug/Ins33.imageset/Ins33.png | Bin .../icons/bug/Ins34.imageset/Contents.json | 0 .../icons/bug/Ins34.imageset/Ins34.png | Bin .../icons/bug/Ins35.imageset/Contents.json | 0 .../icons/bug/Ins35.imageset/Ins35.png | Bin .../icons/bug/Ins36.imageset/Contents.json | 0 .../icons/bug/Ins36.imageset/Ins36.png | Bin .../icons/bug/Ins37.imageset/Contents.json | 0 .../icons/bug/Ins37.imageset/Ins37.png | Bin .../icons/bug/Ins38.imageset/Contents.json | 0 .../icons/bug/Ins38.imageset/Ins38.png | Bin .../icons/bug/Ins39.imageset/Contents.json | 0 .../icons/bug/Ins39.imageset/Ins39.png | Bin .../icons/bug/Ins4.imageset/Contents.json | 0 .../icons/bug/Ins4.imageset/Ins4.png | Bin .../icons/bug/Ins40.imageset/Contents.json | 0 .../icons/bug/Ins40.imageset/Ins40.png | Bin .../icons/bug/Ins41.imageset/Contents.json | 0 .../icons/bug/Ins41.imageset/Ins41.png | Bin .../icons/bug/Ins42.imageset/Contents.json | 0 .../icons/bug/Ins42.imageset/Ins42.png | Bin .../icons/bug/Ins43.imageset/Contents.json | 0 .../icons/bug/Ins43.imageset/Ins43.png | Bin .../icons/bug/Ins44.imageset/Contents.json | 0 .../icons/bug/Ins44.imageset/Ins44.png | Bin .../icons/bug/Ins45.imageset/Contents.json | 0 .../icons/bug/Ins45.imageset/Ins45.png | Bin .../icons/bug/Ins46.imageset/Contents.json | 0 .../icons/bug/Ins46.imageset/Ins46.png | Bin .../icons/bug/Ins47.imageset/Contents.json | 0 .../icons/bug/Ins47.imageset/Ins47.png | Bin .../icons/bug/Ins48.imageset/Contents.json | 0 .../icons/bug/Ins48.imageset/Ins48.png | Bin .../icons/bug/Ins49.imageset/Contents.json | 0 .../icons/bug/Ins49.imageset/Ins49.png | Bin .../icons/bug/Ins5.imageset/Contents.json | 0 .../icons/bug/Ins5.imageset/Ins5.png | Bin .../icons/bug/Ins50.imageset/Contents.json | 0 .../icons/bug/Ins50.imageset/Ins50.png | Bin .../icons/bug/Ins51.imageset/Contents.json | 0 .../icons/bug/Ins51.imageset/Ins51.png | Bin .../icons/bug/Ins52.imageset/Contents.json | 0 .../icons/bug/Ins52.imageset/Ins52.png | Bin .../icons/bug/Ins53.imageset/Contents.json | 0 .../icons/bug/Ins53.imageset/Ins53.png | Bin .../icons/bug/Ins54.imageset/Contents.json | 0 .../icons/bug/Ins54.imageset/Ins54.png | Bin .../icons/bug/Ins55.imageset/Contents.json | 0 .../icons/bug/Ins55.imageset/Ins55.png | Bin .../icons/bug/Ins56.imageset/Contents.json | 0 .../icons/bug/Ins56.imageset/Ins56.png | Bin .../icons/bug/Ins57.imageset/Contents.json | 0 .../icons/bug/Ins57.imageset/Ins57.png | Bin .../icons/bug/Ins58.imageset/Contents.json | 0 .../icons/bug/Ins58.imageset/Ins58.png | Bin .../icons/bug/Ins59.imageset/Contents.json | 0 .../icons/bug/Ins59.imageset/Ins59.png | Bin .../icons/bug/Ins6.imageset/Contents.json | 0 .../icons/bug/Ins6.imageset/Ins6.png | Bin .../icons/bug/Ins60.imageset/Contents.json | 0 .../icons/bug/Ins60.imageset/Ins60.png | Bin .../icons/bug/Ins61.imageset/Contents.json | 0 .../icons/bug/Ins61.imageset/Ins61.png | Bin .../icons/bug/Ins62.imageset/Contents.json | 0 .../icons/bug/Ins62.imageset/Ins62.png | Bin .../icons/bug/Ins63.imageset/Contents.json | 0 .../icons/bug/Ins63.imageset/Ins63.png | Bin .../icons/bug/Ins64.imageset/Contents.json | 0 .../icons/bug/Ins64.imageset/Ins64.png | Bin .../icons/bug/Ins65.imageset/Contents.json | 0 .../icons/bug/Ins65.imageset/Ins65.png | Bin .../icons/bug/Ins66.imageset/Contents.json | 0 .../icons/bug/Ins66.imageset/Ins66.png | Bin .../icons/bug/Ins67.imageset/Contents.json | 0 .../icons/bug/Ins67.imageset/Ins67.png | Bin .../icons/bug/Ins69.imageset/Contents.json | 0 .../icons/bug/Ins69.imageset/Ins69.png | Bin .../icons/bug/Ins7.imageset/Contents.json | 0 .../icons/bug/Ins7.imageset/Ins7.png | Bin .../icons/bug/Ins70.imageset/Contents.json | 0 .../icons/bug/Ins70.imageset/Ins70.png | Bin .../icons/bug/Ins71.imageset/Contents.json | 0 .../icons/bug/Ins71.imageset/Ins71.png | Bin .../icons/bug/Ins72.imageset/Contents.json | 0 .../icons/bug/Ins72.imageset/Ins72.png | Bin .../icons/bug/Ins73.imageset/Contents.json | 0 .../icons/bug/Ins73.imageset/Ins73.png | Bin .../icons/bug/Ins74.imageset/Contents.json | 0 .../icons/bug/Ins74.imageset/Ins74.png | Bin .../icons/bug/Ins75.imageset/Contents.json | 0 .../icons/bug/Ins75.imageset/Ins75.png | Bin .../icons/bug/Ins76.imageset/Contents.json | 0 .../icons/bug/Ins76.imageset/Ins76.png | Bin .../icons/bug/Ins77.imageset/Contents.json | 0 .../icons/bug/Ins77.imageset/Ins77.png | Bin .../icons/bug/Ins78.imageset/Contents.json | 0 .../icons/bug/Ins78.imageset/Ins78.png | Bin .../icons/bug/Ins79.imageset/Contents.json | 0 .../icons/bug/Ins79.imageset/Ins79.png | Bin .../icons/bug/Ins8.imageset/Contents.json | 0 .../icons/bug/Ins8.imageset/Ins8.png | Bin .../icons/bug/Ins80.imageset/Contents.json | 0 .../icons/bug/Ins80.imageset/Ins80.png | Bin .../icons/bug/Ins81.imageset/Contents.json | 0 .../icons/bug/Ins81.imageset/Ins81.png | Bin .../icons/bug/Ins82.imageset/Contents.json | 0 .../icons/bug/Ins82.imageset/Ins82.png | Bin .../icons/bug/Ins9.imageset/Contents.json | 0 .../icons/bug/Ins9.imageset/Ins9.png | Bin .../icons/characters/Contents.json | 0 .../celeste.imageset/Celeste@4x.png | Bin .../characters/celeste.imageset/Contents.json | 0 .../icons/characters/cj.imageset/C.J.@4x.png | Bin .../characters/cj.imageset/Contents.json | 0 .../characters/daisy.imageset/Contents.json | 0 .../daisy.imageset/Daisy Mae@4x.png | Bin .../characters/flick.imageset/Contents.json | 0 .../characters/flick.imageset/Flick@4x.png | Bin .../gulliver.imageset/Contents.json | 0 .../gulliver.imageset/Gulliver@4x.png | Bin .../characters/kicks.imageset/Contents.json | 0 .../characters/kicks.imageset/Kicks@4x.png | Bin .../characters/kk.imageset/Contents.json | 0 .../icons/characters/kk.imageset/kk.png | Bin .../characters/label.imageset/Contents.json | 0 .../characters/label.imageset/Label@4x.png | Bin .../characters/leif.imageset/Contents.json | 0 .../characters/leif.imageset/Leif@4x.png | Bin .../characters/redd.imageset/Contents.json | 0 .../characters/redd.imageset/Redd@4x.png | Bin .../characters/saharah.imageset/Contents.json | 0 .../saharah.imageset/Saharah@4x.png | Bin .../characters/wisp.imageset/Contents.json | 0 .../characters/wisp.imageset/Wisp@4x.png | Bin .../icons/diveFish/Contents.json | 0 .../icons/diveFish/div0.imageset/Akoyagai.png | Bin .../diveFish/div0.imageset/Contents.json | 0 .../icons/diveFish/div1.imageset/Amaebi.png | Bin .../diveFish/div1.imageset/Contents.json | 0 .../diveFish/div10.imageset/Contents.json | 0 .../icons/diveFish/div10.imageset/Iseebi.png | Bin .../diveFish/div11.imageset/Contents.json | 0 .../diveFish/div11.imageset/Isogintyaku.png | Bin .../diveFish/div12.imageset/Contents.json | 0 .../diveFish/div12.imageset/Kabutogani.png | Bin .../diveFish/div13.imageset/Contents.json | 0 .../div13.imageset/Kairoudouketsu.png | Bin .../diveFish/div14.imageset/Contents.json | 0 .../icons/diveFish/div14.imageset/Kaki.png | Bin .../diveFish/div15.imageset/Contents.json | 0 .../diveFish/div15.imageset/Koumoridako.png | Bin .../diveFish/div16.imageset/Contents.json | 0 .../diveFish/div16.imageset/Kurumaebi.png | Bin .../diveFish/div17.imageset/Contents.json | 0 .../icons/diveFish/div17.imageset/Mendako.png | Bin .../diveFish/div18.imageset/Contents.json | 0 .../diveFish/div18.imageset/Mizukurage.png | Bin .../diveFish/div19.imageset/Contents.json | 0 .../diveFish/div19.imageset/Muhrugai.png | Bin .../diveFish/div2.imageset/Chinanago.png | Bin .../diveFish/div2.imageset/Contents.json | 0 .../diveFish/div20.imageset/Contents.json | 0 .../icons/diveFish/div20.imageset/Oumugai.png | Bin .../diveFish/div21.imageset/Contents.json | 0 .../icons/diveFish/div21.imageset/Oyster.png | Bin .../diveFish/div22.imageset/Contents.json | 0 .../diveFish/div22.imageset/Paipuuni.png | Bin .../diveFish/div23.imageset/Contents.json | 0 .../icons/diveFish/div23.imageset/Sazae.png | Bin .../diveFish/div24.imageset/Contents.json | 0 .../icons/diveFish/div24.imageset/Shako.png | Bin .../diveFish/div25.imageset/Contents.json | 0 .../diveFish/div25.imageset/Shakogai.png | Bin .../diveFish/div26.imageset/Contents.json | 0 .../diveFish/div26.imageset/Takaashigani.png | Bin .../diveFish/div27.imageset/Contents.json | 0 .../icons/diveFish/div27.imageset/Tako.png | Bin .../diveFish/div28.imageset/Contents.json | 0 .../diveFish/div28.imageset/Tarabagani.png | Bin .../diveFish/div29.imageset/Contents.json | 0 .../icons/diveFish/div29.imageset/Umiushi.png | Bin .../diveFish/div3.imageset/Contents.json | 0 .../div3.imageset/Daiougusokumushi.png | Bin .../diveFish/div30.imageset/Contents.json | 0 .../icons/diveFish/div30.imageset/Uni.png | Bin .../diveFish/div31.imageset/Contents.json | 0 .../icons/diveFish/div31.imageset/Wakame.png | Bin .../diveFish/div32.imageset/Contents.json | 0 .../diveFish/div32.imageset/Zuwaigani.png | Bin .../diveFish/div4.imageset/Contents.json | 0 .../diveFish/div4.imageset/DungenessCrab.png | Bin .../diveFish/div5.imageset/Contents.json | 0 .../diveFish/div5.imageset/Fujitsubo.png | Bin .../diveFish/div6.imageset/Contents.json | 0 .../icons/diveFish/div6.imageset/Gazami.png | Bin .../diveFish/div7.imageset/Contents.json | 0 .../diveFish/div7.imageset/Hiramushi.png | Bin .../diveFish/div8.imageset/Contents.json | 0 .../icons/diveFish/div8.imageset/Hitode.png | Bin .../diveFish/div9.imageset/Contents.json | 0 .../diveFish/div9.imageset/Hotaruika.png | Bin .../Assets.xcassets/icons/fish/Contents.json | 0 .../icons/fish/Fish0.imageset/Contents.json | 0 .../icons/fish/Fish0.imageset/Fish0.png | Bin .../icons/fish/Fish1.imageset/Contents.json | 0 .../icons/fish/Fish1.imageset/Fish1.png | Bin .../icons/fish/Fish10.imageset/Contents.json | 0 .../icons/fish/Fish10.imageset/Fish10.png | Bin .../icons/fish/Fish11.imageset/Contents.json | 0 .../icons/fish/Fish11.imageset/Fish11.png | Bin .../icons/fish/Fish12.imageset/Contents.json | 0 .../icons/fish/Fish12.imageset/Fish12.png | Bin .../icons/fish/Fish13.imageset/Contents.json | 0 .../icons/fish/Fish13.imageset/Fish13.png | Bin .../icons/fish/Fish14.imageset/Contents.json | 0 .../icons/fish/Fish14.imageset/Fish14.png | Bin .../icons/fish/Fish15.imageset/Contents.json | 0 .../icons/fish/Fish15.imageset/Fish58.png | Bin .../icons/fish/Fish16.imageset/Contents.json | 0 .../icons/fish/Fish16.imageset/Fish16.png | Bin .../icons/fish/Fish17.imageset/Contents.json | 0 .../icons/fish/Fish17.imageset/Fish17.png | Bin .../icons/fish/Fish18.imageset/Contents.json | 0 .../icons/fish/Fish18.imageset/Fish18.png | Bin .../icons/fish/Fish19.imageset/Contents.json | 0 .../icons/fish/Fish19.imageset/Fish19.png | Bin .../icons/fish/Fish2.imageset/Contents.json | 0 .../icons/fish/Fish2.imageset/Fish2.png | Bin .../icons/fish/Fish20.imageset/Contents.json | 0 .../icons/fish/Fish20.imageset/Fish20.png | Bin .../icons/fish/Fish21.imageset/Contents.json | 0 .../icons/fish/Fish21.imageset/Fish21.png | Bin .../icons/fish/Fish22.imageset/Contents.json | 0 .../icons/fish/Fish22.imageset/Fish22.png | Bin .../icons/fish/Fish23.imageset/Contents.json | 0 .../icons/fish/Fish23.imageset/Fish23.png | Bin .../icons/fish/Fish24.imageset/Contents.json | 0 .../icons/fish/Fish24.imageset/Fish24.png | Bin .../icons/fish/Fish25.imageset/Contents.json | 0 .../icons/fish/Fish25.imageset/Fish66.png | Bin .../icons/fish/Fish26.imageset/Contents.json | 0 .../icons/fish/Fish26.imageset/Fish26.png | Bin .../icons/fish/Fish27.imageset/Contents.json | 0 .../icons/fish/Fish27.imageset/Fish27.png | Bin .../icons/fish/Fish28.imageset/Contents.json | 0 .../icons/fish/Fish28.imageset/Fish28.png | Bin .../icons/fish/Fish29.imageset/Contents.json | 0 .../icons/fish/Fish29.imageset/Fish29.png | Bin .../icons/fish/Fish3.imageset/Contents.json | 0 .../icons/fish/Fish3.imageset/Fish3.png | Bin .../icons/fish/Fish30.imageset/Contents.json | 0 .../icons/fish/Fish30.imageset/Fish30.png | Bin .../icons/fish/Fish31.imageset/Contents.json | 0 .../icons/fish/Fish31.imageset/Fish31.png | Bin .../icons/fish/Fish32.imageset/Contents.json | 0 .../icons/fish/Fish32.imageset/Fish32.png | Bin .../icons/fish/Fish33.imageset/Contents.json | 0 .../icons/fish/Fish33.imageset/Fish33.png | Bin .../icons/fish/Fish34.imageset/Contents.json | 0 .../icons/fish/Fish34.imageset/Fish34.png | Bin .../icons/fish/Fish35.imageset/Contents.json | 0 .../icons/fish/Fish35.imageset/Fish35.png | Bin .../icons/fish/Fish36.imageset/Contents.json | 0 .../icons/fish/Fish36.imageset/Fish36.png | Bin .../icons/fish/Fish37.imageset/Contents.json | 0 .../icons/fish/Fish37.imageset/Fish37.png | Bin .../icons/fish/Fish39.imageset/Contents.json | 0 .../icons/fish/Fish39.imageset/Fish39.png | Bin .../icons/fish/Fish4.imageset/Contents.json | 0 .../icons/fish/Fish4.imageset/Fish3.png | Bin .../icons/fish/Fish40.imageset/Contents.json | 0 .../icons/fish/Fish40.imageset/Fish40.png | Bin .../icons/fish/Fish41.imageset/Contents.json | 0 .../icons/fish/Fish41.imageset/Fish41.png | Bin .../icons/fish/Fish42.imageset/Contents.json | 0 .../icons/fish/Fish42.imageset/Fish42.png | Bin .../icons/fish/Fish43.imageset/Contents.json | 0 .../icons/fish/Fish43.imageset/Fish43.png | Bin .../icons/fish/Fish44.imageset/Contents.json | 0 .../icons/fish/Fish44.imageset/Fish44.png | Bin .../icons/fish/Fish45.imageset/Contents.json | 0 .../icons/fish/Fish45.imageset/Fish45.png | Bin .../icons/fish/Fish46.imageset/Contents.json | 0 .../icons/fish/Fish46.imageset/Fish46.png | Bin .../icons/fish/Fish47.imageset/Contents.json | 0 .../icons/fish/Fish47.imageset/Fish47.png | Bin .../icons/fish/Fish48.imageset/Contents.json | 0 .../icons/fish/Fish48.imageset/Fish48.png | Bin .../icons/fish/Fish49.imageset/Contents.json | 0 .../icons/fish/Fish49.imageset/Fish49.png | Bin .../icons/fish/Fish5.imageset/Contents.json | 0 .../icons/fish/Fish5.imageset/Fish5.png | Bin .../icons/fish/Fish50.imageset/Contents.json | 0 .../icons/fish/Fish50.imageset/Fish50.png | Bin .../icons/fish/Fish51.imageset/Contents.json | 0 .../icons/fish/Fish51.imageset/Fish51.png | Bin .../icons/fish/Fish52.imageset/Contents.json | 0 .../icons/fish/Fish52.imageset/Fish52.png | Bin .../icons/fish/Fish55.imageset/Contents.json | 0 .../icons/fish/Fish55.imageset/Fish55.png | Bin .../icons/fish/Fish56.imageset/Contents.json | 0 .../icons/fish/Fish56.imageset/Fish56.png | Bin .../icons/fish/Fish57.imageset/Contents.json | 0 .../icons/fish/Fish57.imageset/Fish57.png | Bin .../icons/fish/Fish58.imageset/Contents.json | 0 .../icons/fish/Fish58.imageset/Fish58.png | Bin .../icons/fish/Fish59.imageset/Contents.json | 0 .../icons/fish/Fish59.imageset/Fish59.png | Bin .../icons/fish/Fish6.imageset/Contents.json | 0 .../icons/fish/Fish6.imageset/Fish6.png | Bin .../icons/fish/Fish60.imageset/Contents.json | 0 .../icons/fish/Fish60.imageset/Fish60.png | Bin .../icons/fish/Fish61.imageset/Contents.json | 0 .../icons/fish/Fish61.imageset/Fish61.png | Bin .../icons/fish/Fish62.imageset/Contents.json | 0 .../icons/fish/Fish62.imageset/Fish62.png | Bin .../icons/fish/Fish63.imageset/Contents.json | 0 .../icons/fish/Fish63.imageset/Fish63.png | Bin .../icons/fish/Fish64.imageset/Contents.json | 0 .../icons/fish/Fish64.imageset/Fish64.png | Bin .../icons/fish/Fish65.imageset/Contents.json | 0 .../icons/fish/Fish65.imageset/Fish65.png | Bin .../icons/fish/Fish66.imageset/Contents.json | 0 .../icons/fish/Fish66.imageset/Fish66.png | Bin .../icons/fish/Fish67.imageset/Contents.json | 0 .../icons/fish/Fish67.imageset/Fish67.png | Bin .../icons/fish/Fish68.imageset/Contents.json | 0 .../icons/fish/Fish68.imageset/Fish68.png | Bin .../icons/fish/Fish69.imageset/Contents.json | 0 .../icons/fish/Fish69.imageset/Fish69.png | Bin .../icons/fish/Fish7.imageset/Contents.json | 0 .../icons/fish/Fish7.imageset/Fish7.png | Bin .../icons/fish/Fish70.imageset/Contents.json | 0 .../icons/fish/Fish70.imageset/Fish70.png | Bin .../icons/fish/Fish71.imageset/Contents.json | 0 .../icons/fish/Fish71.imageset/Fish71.png | Bin .../icons/fish/Fish72.imageset/Contents.json | 0 .../icons/fish/Fish72.imageset/Fish72.png | Bin .../icons/fish/Fish73.imageset/Contents.json | 0 .../icons/fish/Fish73.imageset/Fish73.png | Bin .../icons/fish/Fish74.imageset/Contents.json | 0 .../icons/fish/Fish74.imageset/Fish74.png | Bin .../icons/fish/Fish75.imageset/Contents.json | 0 .../icons/fish/Fish75.imageset/Fish75.png | Bin .../icons/fish/Fish76.imageset/Contents.json | 0 .../icons/fish/Fish76.imageset/Fish76.png | Bin .../icons/fish/Fish77.imageset/Contents.json | 0 .../icons/fish/Fish77.imageset/Fish77.png | Bin .../icons/fish/Fish78.imageset/Contents.json | 0 .../icons/fish/Fish78.imageset/Fish78.png | Bin .../icons/fish/Fish79.imageset/Contents.json | 0 .../icons/fish/Fish79.imageset/Fish79.png | Bin .../icons/fish/Fish8.imageset/Contents.json | 0 .../icons/fish/Fish8.imageset/Fish8.png | Bin .../icons/fish/Fish80.imageset/Contents.json | 0 .../icons/fish/Fish80.imageset/Fish80.png | Bin .../icons/fish/Fish81.imageset/Contents.json | 0 .../icons/fish/Fish81.imageset/Fish81.png | Bin .../icons/fish/Fish82.imageset/Contents.json | 0 .../icons/fish/Fish82.imageset/Fish82.png | Bin .../icons/fish/Fish83.imageset/Contents.json | 0 .../icons/fish/Fish83.imageset/Fish83.png | Bin .../icons/fish/Fish84.imageset/Contents.json | 0 .../icons/fish/Fish84.imageset/Fish84.png | Bin .../icons/fish/Fish85.imageset/Contents.json | 0 .../icons/fish/Fish85.imageset/Fish85.png | Bin .../icons/fish/Fish9.imageset/Contents.json | 0 .../icons/fish/Fish9.imageset/Fish9.png | Bin .../icons/icon-bag.imageset/Bag.png | Bin .../icons/icon-bag.imageset/Contents.json | 0 .../icon-bamboo-spring.imageset/Contents.json | 0 .../DIYBambooSpring.png | Bin .../icons/icon-bamboo.imageset/Contents.json | 0 .../icons/icon-bamboo.imageset/DIYBamboo.png | Bin .../icons/icon-bell.imageset/Contents.json | 0 .../icons/icon-bell.imageset/icon-bell@2x.png | Bin .../1,000_Bells_NH_Inv_Icon.png | Bin .../icon-bells-tabbar.imageset/Contents.json | 0 .../1,000_Bells_NH_Inv_Icon.png | Bin .../icons/icon-bells.imageset/Contents.json | 0 .../icons/icon-board.imageset/Contents.json | 0 .../icons/icon-board.imageset/Image.png | Bin .../icon-book-tabbar.imageset/Contents.json | 0 .../icon-book-tabbar.png | Bin .../Contents.json | 0 .../Message_Bottle_NH_Inv_Icon.png | Bin .../icons/icon-branch.imageset/Contents.json | 0 .../icons/icon-branch.imageset/DIYBranch.png | Bin .../Contents.json | 0 .../Package_NH_Inv_Icon.png | Bin .../icon-cardboard.imageset/Contents.json | 0 .../Package_NH_Inv_Icon.png | Bin .../icons/icon-ceiling.imageset/Contents.json | 0 .../icon-ceiling.imageset/icon-ceiling.png | Bin .../icons/icon-clay.imageset/Contents.json | 0 .../icons/icon-clay.imageset/OreClay.png | Bin .../icons/icon-fence.imageset/Contents.json | 0 .../icons/icon-fence.imageset/Fence.png | Bin .../icons/icon-fish.imageset/Contents.json | 0 .../icons/icon-fish.imageset/FishBait.png | Bin .../icons/icon-floor.imageset/Contents.json | 0 .../icons/icon-floor.imageset/Floor.png | Bin .../icons/icon-fossil.imageset/Contents.json | 0 .../Fossil_NH_Inv_Icon.png | Bin .../icons/icon-glasses.imageset/Contents.json | 0 .../icons/icon-glasses.imageset/Glasses.png | Bin .../icons/icon-gold.imageset/Contents.json | 0 .../icons/icon-gold.imageset/Gold_Ore.png | Bin .../icon-hardwood.imageset/Contents.json | 0 .../icon-hardwood.imageset/DIYWoodHard.png | Bin .../icons/icon-helm.imageset/Cap.png | Bin .../icons/icon-helm.imageset/Contents.json | 0 .../icons/icon-helmet.imageset/Contents.json | 0 .../icons/icon-helmet.imageset/Helmet.png | Bin .../icon-housewares.imageset/Contents.json | 0 .../icons/icon-housewares.imageset/Image.png | Bin .../icons/icon-insect.imageset/Contents.json | 0 .../icons/icon-insect.imageset/Net.png | Bin .../icons/icon-iron.imageset/Contents.json | 0 .../icons/icon-iron.imageset/OreIron.png | Bin .../icon-leaf-design.imageset/Contents.json | 0 .../icon-leaf-design.imageset/LeafDesign.png | Bin .../icon-leaf-tabbar.imageset/Contents.json | 0 .../Furniture_NH_Inv_Icon.png | Bin .../icons/icon-leaf.imageset/Contents.json | 0 .../Furniture_NH_Inv_Icon.png | Bin .../icon-mapple-leaf.imageset/AutumnLeaf.png | Bin .../icon-mapple-leaf.imageset/Contents.json | 0 .../icons/icon-miles.imageset/Contents.json | 0 .../icons/icon-miles.imageset/PlaneTicket.png | Bin .../icon-miscellaneous.imageset/Contents.json | 0 .../icon-miscellaneous.png | Bin .../icon-mushroom1.imageset/Contents.json | 0 .../icons/icon-mushroom1.imageset/Mush0.png | Bin .../icon-mushroom2.imageset/Contents.json | 0 .../icons/icon-mushroom2.imageset/Mush1.png | Bin .../icon-mushroom3.imageset/Contents.json | 0 .../icons/icon-mushroom3.imageset/Mush2.png | Bin .../icon-mushroom4.imageset/Contents.json | 0 .../icons/icon-mushroom4.imageset/Mush4.png | Bin .../icon-nookmiles.imageset/Contents.json | 0 .../icon-nookmiles.png | Bin .../icon-nookpoint.imageset/Contents.json | 0 .../icon-nookpoint.png | Bin .../icons/icon-paint.imageset/Contents.json | 0 .../icons/icon-paint.imageset/RemakeKit.png | Bin .../icons/icon-pant.imageset/Bottoms.png | Bin .../icons/icon-pant.imageset/Contents.json | 0 .../icons/icon-pearl.imageset/Contents.json | 0 .../icons/icon-pearl.imageset/icon-pearl.png | Bin .../icons/icon-photos.imageset/Contents.json | 0 .../icon-photos.imageset/icon-photos.png | Bin .../icons/icon-poki.imageset/Contents.json | 0 .../icons/icon-poki.imageset/icon-poki.png | Bin .../icons/icon-posters.imageset/Contents.json | 0 .../icons/icon-posters.imageset/Image.png | Bin .../icons/icon-present.imageset/Contents.json | 0 .../icons/icon-present.imageset/Present.png | Bin .../icon-present2.imageset/Contents.json | 0 .../icons/icon-present2.imageset/Present2.png | Bin .../icon-reactions.imageset/Contents.json | 0 .../icons/icon-reactions.imageset/Grin.png | Bin .../icons/icon-recipe.imageset/Contents.json | 0 .../icon-recipe.imageset/recipe-icon.png | Bin .../icons/icon-rug.imageset/Carpet.png | Bin .../icons/icon-rug.imageset/Contents.json | 0 .../icons/icon-shoes.imageset/Contents.json | 0 .../icons/icon-shoes.imageset/Shoes.png | Bin .../icons/icon-socks.imageset/Contents.json | 0 .../icons/icon-socks.imageset/Socks.png | Bin .../icon-softwood.imageset/Contents.json | 0 .../icon-softwood.imageset/DIYWoodSoft.png | Bin .../icons/icon-song.imageset/Contents.json | 0 .../icons/icon-song.imageset/Music.png | Bin .../icons/icon-stone.imageset/Contents.json | 0 .../icons/icon-stone.imageset/Image.png | Bin .../icons/icon-tool.imageset/Contents.json | 0 .../icons/icon-tool.imageset/Scoop.png | Bin .../icons/icon-top.imageset/Contents.json | 0 .../icon-top.imageset/Dress_NH_Inv_Icon.png | Bin .../icon-turnip-tabbar.imageset/Contents.json | 0 .../Turnip_NH_Inv_Icon.png | Bin .../icons/icon-turnip.imageset/Contents.json | 0 .../Turnip_NH_Inv_Icon.png | Bin .../icon-umbrella.imageset/Contents.json | 0 .../icons/icon-umbrella.imageset/Umbrella.png | Bin .../Contents.json | 0 .../Pietro_PC_icon.png | Bin .../icon-villager.imageset/Contents.json | 0 .../icon-villager.imageset/Pietro_PC_icon.png | Bin .../icon-wallmounted.imageset/Contents.json | 0 .../icons/icon-wallmounted.imageset/Image.png | Bin .../icon-wallpaper.imageset/Contents.json | 0 .../icons/icon-wallpaper.imageset/Wall.png | Bin .../icons/icon-weed.imageset/Contents.json | 0 .../icons/icon-weed.imageset/Weed.png | Bin .../icons/icon-wetsuit.imageset/Contents.json | 0 .../icons/icon-wetsuit.imageset/WetSuit.png | Bin .../icons/icon-wood.imageset/Contents.json | 0 .../icon-wood.imageset/DIYWoodNormal.png | Bin .../icons/inventory/Contents.json | 0 .../inventory/Inv0.imageset/Contents.json | 0 .../icons/inventory/Inv0.imageset/Inv0.png | Bin .../inventory/Inv1.imageset/Contents.json | 0 .../icons/inventory/Inv1.imageset/Inv1.png | Bin .../inventory/Inv10.imageset/Contents.json | 0 .../icons/inventory/Inv10.imageset/Inv10.png | Bin .../inventory/Inv100.imageset/Contents.json | 0 .../inventory/Inv100.imageset/Inv100.png | Bin .../inventory/Inv101.imageset/Contents.json | 0 .../inventory/Inv101.imageset/Inv101.png | Bin .../inventory/Inv102.imageset/Contents.json | 0 .../inventory/Inv102.imageset/Inv102.png | Bin .../inventory/Inv103.imageset/Contents.json | 0 .../inventory/Inv103.imageset/Inv103.png | Bin .../inventory/Inv104.imageset/Contents.json | 0 .../inventory/Inv104.imageset/Inv104.png | Bin .../inventory/Inv105.imageset/Contents.json | 0 .../inventory/Inv105.imageset/Inv105.png | Bin .../inventory/Inv106.imageset/Contents.json | 0 .../inventory/Inv106.imageset/Inv106.png | Bin .../inventory/Inv107.imageset/Contents.json | 0 .../inventory/Inv107.imageset/Inv107.png | Bin .../inventory/Inv108.imageset/Contents.json | 0 .../inventory/Inv108.imageset/Inv108.png | Bin .../inventory/Inv109.imageset/Contents.json | 0 .../inventory/Inv109.imageset/Inv109.png | Bin .../inventory/Inv11.imageset/Contents.json | 0 .../icons/inventory/Inv11.imageset/Inv11.png | Bin .../inventory/Inv110.imageset/Contents.json | 0 .../inventory/Inv110.imageset/Inv110.png | Bin .../inventory/Inv111.imageset/Contents.json | 0 .../inventory/Inv111.imageset/Inv111.png | Bin .../inventory/Inv112.imageset/Contents.json | 0 .../inventory/Inv112.imageset/Inv112.png | Bin .../inventory/Inv113.imageset/Contents.json | 0 .../inventory/Inv113.imageset/Inv113.png | Bin .../inventory/Inv114.imageset/Contents.json | 0 .../inventory/Inv114.imageset/Inv114.png | Bin .../inventory/Inv115.imageset/Contents.json | 0 .../inventory/Inv115.imageset/Inv115.png | Bin .../inventory/Inv116.imageset/Contents.json | 0 .../inventory/Inv116.imageset/Inv116.png | Bin .../inventory/Inv117.imageset/Contents.json | 0 .../inventory/Inv117.imageset/Inv117.png | Bin .../inventory/Inv118.imageset/Contents.json | 0 .../inventory/Inv118.imageset/Inv118.png | Bin .../inventory/Inv119.imageset/Contents.json | 0 .../inventory/Inv119.imageset/Inv119.png | Bin .../inventory/Inv12.imageset/Contents.json | 0 .../icons/inventory/Inv12.imageset/Inv12.png | Bin .../inventory/Inv120.imageset/Contents.json | 0 .../inventory/Inv120.imageset/Inv120.png | Bin .../inventory/Inv121.imageset/Contents.json | 0 .../inventory/Inv121.imageset/Inv121.png | Bin .../inventory/Inv122.imageset/Contents.json | 0 .../inventory/Inv122.imageset/Inv122.png | Bin .../inventory/Inv123.imageset/Contents.json | 0 .../inventory/Inv123.imageset/Inv123.png | Bin .../inventory/Inv124.imageset/Contents.json | 0 .../inventory/Inv124.imageset/Inv124.png | Bin .../inventory/Inv125.imageset/Contents.json | 0 .../inventory/Inv125.imageset/Inv125.png | Bin .../inventory/Inv126.imageset/Contents.json | 0 .../inventory/Inv126.imageset/Inv126.png | Bin .../inventory/Inv127.imageset/Contents.json | 0 .../inventory/Inv127.imageset/Inv127.png | Bin .../inventory/Inv128.imageset/Contents.json | 0 .../inventory/Inv128.imageset/Inv128.png | Bin .../inventory/Inv129.imageset/Contents.json | 0 .../inventory/Inv129.imageset/Inv129.png | Bin .../inventory/Inv13.imageset/Contents.json | 0 .../icons/inventory/Inv13.imageset/Inv13.png | Bin .../inventory/Inv130.imageset/Contents.json | 0 .../inventory/Inv130.imageset/Inv130.png | Bin .../inventory/Inv131.imageset/Contents.json | 0 .../inventory/Inv131.imageset/Inv131.png | Bin .../inventory/Inv132.imageset/Contents.json | 0 .../inventory/Inv132.imageset/Inv132.png | Bin .../inventory/Inv133.imageset/Contents.json | 0 .../inventory/Inv133.imageset/Inv133.png | Bin .../inventory/Inv134.imageset/Contents.json | 0 .../inventory/Inv134.imageset/Inv134.png | Bin .../inventory/Inv135.imageset/Contents.json | 0 .../inventory/Inv135.imageset/Inv135.png | Bin .../inventory/Inv136.imageset/Contents.json | 0 .../inventory/Inv136.imageset/Inv136.png | Bin .../inventory/Inv137.imageset/Contents.json | 0 .../inventory/Inv137.imageset/Inv137.png | Bin .../inventory/Inv138.imageset/Contents.json | 0 .../inventory/Inv138.imageset/Inv138.png | Bin .../inventory/Inv139.imageset/Contents.json | 0 .../inventory/Inv139.imageset/Inv139.png | Bin .../inventory/Inv14.imageset/Contents.json | 0 .../icons/inventory/Inv14.imageset/Inv14.png | Bin .../inventory/Inv140.imageset/Contents.json | 0 .../inventory/Inv140.imageset/Inv140.png | Bin .../inventory/Inv141.imageset/Contents.json | 0 .../inventory/Inv141.imageset/Inv141.png | Bin .../inventory/Inv142.imageset/Contents.json | 0 .../inventory/Inv142.imageset/Inv142.png | Bin .../inventory/Inv143.imageset/Contents.json | 0 .../inventory/Inv143.imageset/Inv143.png | Bin .../inventory/Inv144.imageset/Contents.json | 0 .../inventory/Inv144.imageset/Inv144.png | Bin .../inventory/Inv145.imageset/Contents.json | 0 .../inventory/Inv145.imageset/Inv145.png | Bin .../inventory/Inv146.imageset/Contents.json | 0 .../inventory/Inv146.imageset/Inv146.png | Bin .../inventory/Inv147.imageset/Contents.json | 0 .../inventory/Inv147.imageset/Inv147.png | Bin .../inventory/Inv148.imageset/Contents.json | 0 .../inventory/Inv148.imageset/Inv148.png | Bin .../inventory/Inv149.imageset/Contents.json | 0 .../inventory/Inv149.imageset/Inv149.png | Bin .../inventory/Inv15.imageset/Contents.json | 0 .../icons/inventory/Inv15.imageset/Inv15.png | Bin .../inventory/Inv150.imageset/Contents.json | 0 .../inventory/Inv150.imageset/Inv150.png | Bin .../inventory/Inv151.imageset/Contents.json | 0 .../inventory/Inv151.imageset/Inv151.png | Bin .../inventory/Inv152.imageset/Contents.json | 0 .../inventory/Inv152.imageset/Inv152.png | Bin .../inventory/Inv153.imageset/Contents.json | 0 .../inventory/Inv153.imageset/Inv153.png | Bin .../inventory/Inv154.imageset/Contents.json | 0 .../inventory/Inv154.imageset/Inv154.png | Bin .../inventory/Inv155.imageset/Contents.json | 0 .../inventory/Inv155.imageset/Inv155.png | Bin .../inventory/Inv156.imageset/Contents.json | 0 .../inventory/Inv156.imageset/Inv156.png | Bin .../inventory/Inv157.imageset/Contents.json | 0 .../inventory/Inv157.imageset/Inv157.png | Bin .../inventory/Inv158.imageset/Contents.json | 0 .../inventory/Inv158.imageset/Inv158.png | Bin .../inventory/Inv159.imageset/Contents.json | 0 .../inventory/Inv159.imageset/Inv159.png | Bin .../inventory/Inv16.imageset/Contents.json | 0 .../icons/inventory/Inv16.imageset/Inv16.png | Bin .../inventory/Inv160.imageset/Contents.json | 0 .../inventory/Inv160.imageset/Inv160.png | Bin .../inventory/Inv161.imageset/Contents.json | 0 .../inventory/Inv161.imageset/Inv161.png | Bin .../inventory/Inv162.imageset/Contents.json | 0 .../inventory/Inv162.imageset/Inv162.png | Bin .../inventory/Inv163.imageset/Contents.json | 0 .../inventory/Inv163.imageset/Inv163.png | Bin .../inventory/Inv164.imageset/Contents.json | 0 .../inventory/Inv164.imageset/Inv164.png | Bin .../inventory/Inv165.imageset/Contents.json | 0 .../inventory/Inv165.imageset/Inv165.png | Bin .../inventory/Inv166.imageset/Contents.json | 0 .../inventory/Inv166.imageset/Inv166.png | Bin .../inventory/Inv167.imageset/Contents.json | 0 .../inventory/Inv167.imageset/Inv167.png | Bin .../inventory/Inv168.imageset/Contents.json | 0 .../inventory/Inv168.imageset/Inv168.png | Bin .../inventory/Inv169.imageset/Contents.json | 0 .../inventory/Inv169.imageset/Inv169.png | Bin .../inventory/Inv17.imageset/Contents.json | 0 .../icons/inventory/Inv17.imageset/Inv17.png | Bin .../inventory/Inv170.imageset/Contents.json | 0 .../inventory/Inv170.imageset/Inv170.png | Bin .../inventory/Inv171.imageset/Contents.json | 0 .../inventory/Inv171.imageset/Inv171.png | Bin .../inventory/Inv172.imageset/Contents.json | 0 .../inventory/Inv172.imageset/Inv172.png | Bin .../inventory/Inv173.imageset/Contents.json | 0 .../inventory/Inv173.imageset/Inv173.png | Bin .../inventory/Inv174.imageset/Contents.json | 0 .../inventory/Inv174.imageset/Inv174.png | Bin .../inventory/Inv175.imageset/Contents.json | 0 .../inventory/Inv175.imageset/Inv175.png | Bin .../inventory/Inv176.imageset/Contents.json | 0 .../inventory/Inv176.imageset/Inv176.png | Bin .../inventory/Inv177.imageset/Contents.json | 0 .../inventory/Inv177.imageset/Inv177.png | Bin .../inventory/Inv178.imageset/Contents.json | 0 .../inventory/Inv178.imageset/Inv178.png | Bin .../inventory/Inv179.imageset/Contents.json | 0 .../inventory/Inv179.imageset/Inv179.png | Bin .../inventory/Inv18.imageset/Contents.json | 0 .../icons/inventory/Inv18.imageset/Inv18.png | Bin .../inventory/Inv180.imageset/Contents.json | 0 .../inventory/Inv180.imageset/Inv180.png | Bin .../inventory/Inv181.imageset/Contents.json | 0 .../inventory/Inv181.imageset/Inv181.png | Bin .../inventory/Inv182.imageset/Contents.json | 0 .../inventory/Inv182.imageset/Inv182.png | Bin .../inventory/Inv183.imageset/Contents.json | 0 .../inventory/Inv183.imageset/Inv183.png | Bin .../inventory/Inv184.imageset/Contents.json | 0 .../inventory/Inv184.imageset/Inv184.png | Bin .../inventory/Inv185.imageset/Contents.json | 0 .../inventory/Inv185.imageset/Inv185.png | Bin .../inventory/Inv186.imageset/Contents.json | 0 .../inventory/Inv186.imageset/Inv186.png | Bin .../inventory/Inv187.imageset/Contents.json | 0 .../inventory/Inv187.imageset/Inv187.png | Bin .../inventory/Inv188.imageset/Contents.json | 0 .../inventory/Inv188.imageset/Inv188.png | Bin .../inventory/Inv189.imageset/Contents.json | 0 .../inventory/Inv189.imageset/Inv189.png | Bin .../inventory/Inv19.imageset/Contents.json | 0 .../icons/inventory/Inv19.imageset/Inv19.png | Bin .../inventory/Inv190.imageset/Contents.json | 0 .../inventory/Inv190.imageset/Inv190.png | Bin .../inventory/Inv191.imageset/Contents.json | 0 .../inventory/Inv191.imageset/Inv191.png | Bin .../inventory/Inv192.imageset/Contents.json | 0 .../inventory/Inv192.imageset/Inv192.png | Bin .../inventory/Inv193.imageset/Contents.json | 0 .../inventory/Inv193.imageset/Inv193.png | Bin .../inventory/Inv194.imageset/Contents.json | 0 .../inventory/Inv194.imageset/Inv194.png | Bin .../inventory/Inv195.imageset/Contents.json | 0 .../inventory/Inv195.imageset/Inv195.png | Bin .../inventory/Inv196.imageset/Contents.json | 0 .../inventory/Inv196.imageset/Inv196.png | Bin .../inventory/Inv197.imageset/Contents.json | 0 .../inventory/Inv197.imageset/Inv197.png | Bin .../inventory/Inv198.imageset/Contents.json | 0 .../inventory/Inv198.imageset/Inv198.png | Bin .../inventory/Inv199.imageset/Contents.json | 0 .../inventory/Inv199.imageset/Inv199.png | Bin .../inventory/Inv2.imageset/Contents.json | 0 .../icons/inventory/Inv2.imageset/Inv2.png | Bin .../inventory/Inv20.imageset/Contents.json | 0 .../icons/inventory/Inv20.imageset/Inv20.png | Bin .../inventory/Inv21.imageset/Contents.json | 0 .../icons/inventory/Inv21.imageset/Inv21.png | Bin .../inventory/Inv22.imageset/Contents.json | 0 .../icons/inventory/Inv22.imageset/Inv22.png | Bin .../inventory/Inv23.imageset/Contents.json | 0 .../icons/inventory/Inv23.imageset/Inv23.png | Bin .../inventory/Inv24.imageset/Contents.json | 0 .../icons/inventory/Inv24.imageset/Inv24.png | Bin .../inventory/Inv25.imageset/Contents.json | 0 .../icons/inventory/Inv25.imageset/Inv25.png | Bin .../inventory/Inv26.imageset/Contents.json | 0 .../icons/inventory/Inv26.imageset/Inv26.png | Bin .../inventory/Inv27.imageset/Contents.json | 0 .../icons/inventory/Inv27.imageset/Inv27.png | Bin .../inventory/Inv28.imageset/Contents.json | 0 .../icons/inventory/Inv28.imageset/Inv28.png | Bin .../inventory/Inv29.imageset/Contents.json | 0 .../icons/inventory/Inv29.imageset/Inv29.png | Bin .../inventory/Inv3.imageset/Contents.json | 0 .../icons/inventory/Inv3.imageset/Inv3.png | Bin .../inventory/Inv30.imageset/Contents.json | 0 .../icons/inventory/Inv30.imageset/Inv30.png | Bin .../inventory/Inv31.imageset/Contents.json | 0 .../icons/inventory/Inv31.imageset/Inv31.png | Bin .../inventory/Inv32.imageset/Contents.json | 0 .../icons/inventory/Inv32.imageset/Inv32.png | Bin .../inventory/Inv33.imageset/Contents.json | 0 .../icons/inventory/Inv33.imageset/Inv33.png | Bin .../inventory/Inv34.imageset/Contents.json | 0 .../icons/inventory/Inv34.imageset/Inv34.png | Bin .../inventory/Inv35.imageset/Contents.json | 0 .../icons/inventory/Inv35.imageset/Inv35.png | Bin .../inventory/Inv36.imageset/Contents.json | 0 .../icons/inventory/Inv36.imageset/Inv36.png | Bin .../inventory/Inv37.imageset/Contents.json | 0 .../icons/inventory/Inv37.imageset/Inv37.png | Bin .../inventory/Inv38.imageset/Contents.json | 0 .../icons/inventory/Inv38.imageset/Inv38.png | Bin .../inventory/Inv39.imageset/Contents.json | 0 .../icons/inventory/Inv39.imageset/Inv39.png | Bin .../inventory/Inv4.imageset/Contents.json | 0 .../icons/inventory/Inv4.imageset/Inv4.png | Bin .../inventory/Inv40.imageset/Contents.json | 0 .../icons/inventory/Inv40.imageset/Inv40.png | Bin .../inventory/Inv41.imageset/Contents.json | 0 .../icons/inventory/Inv41.imageset/Inv41.png | Bin .../inventory/Inv42.imageset/Contents.json | 0 .../icons/inventory/Inv42.imageset/Inv42.png | Bin .../inventory/Inv43.imageset/Contents.json | 0 .../icons/inventory/Inv43.imageset/Inv43.png | Bin .../inventory/Inv44.imageset/Contents.json | 0 .../icons/inventory/Inv44.imageset/Inv44.png | Bin .../inventory/Inv45.imageset/Contents.json | 0 .../icons/inventory/Inv45.imageset/Inv45.png | Bin .../inventory/Inv46.imageset/Contents.json | 0 .../icons/inventory/Inv46.imageset/Inv46.png | Bin .../inventory/Inv47.imageset/Contents.json | 0 .../icons/inventory/Inv47.imageset/Inv47.png | Bin .../inventory/Inv48.imageset/Contents.json | 0 .../icons/inventory/Inv48.imageset/Inv48.png | Bin .../inventory/Inv49.imageset/Contents.json | 0 .../icons/inventory/Inv49.imageset/Inv49.png | Bin .../inventory/Inv5.imageset/Contents.json | 0 .../icons/inventory/Inv5.imageset/Inv5.png | Bin .../inventory/Inv50.imageset/Contents.json | 0 .../icons/inventory/Inv50.imageset/Inv50.png | Bin .../inventory/Inv51.imageset/Contents.json | 0 .../icons/inventory/Inv51.imageset/Inv51.png | Bin .../inventory/Inv52.imageset/Contents.json | 0 .../icons/inventory/Inv52.imageset/Inv52.png | Bin .../inventory/Inv53.imageset/Contents.json | 0 .../icons/inventory/Inv53.imageset/Inv53.png | Bin .../inventory/Inv54.imageset/Contents.json | 0 .../icons/inventory/Inv54.imageset/Inv54.png | Bin .../inventory/Inv55.imageset/Contents.json | 0 .../icons/inventory/Inv55.imageset/Inv55.png | Bin .../inventory/Inv56.imageset/Contents.json | 0 .../icons/inventory/Inv56.imageset/Inv56.png | Bin .../inventory/Inv57.imageset/Contents.json | 0 .../icons/inventory/Inv57.imageset/Inv57.png | Bin .../inventory/Inv58.imageset/Contents.json | 0 .../icons/inventory/Inv58.imageset/Inv58.png | Bin .../inventory/Inv59.imageset/Contents.json | 0 .../icons/inventory/Inv59.imageset/Inv59.png | Bin .../inventory/Inv6.imageset/Contents.json | 0 .../icons/inventory/Inv6.imageset/Inv6.png | Bin .../inventory/Inv60.imageset/Contents.json | 0 .../icons/inventory/Inv60.imageset/Inv60.png | Bin .../inventory/Inv61.imageset/Contents.json | 0 .../icons/inventory/Inv61.imageset/Inv61.png | Bin .../inventory/Inv62.imageset/Contents.json | 0 .../icons/inventory/Inv62.imageset/Inv62.png | Bin .../inventory/Inv63.imageset/Contents.json | 0 .../icons/inventory/Inv63.imageset/Inv63.png | Bin .../inventory/Inv64.imageset/Contents.json | 0 .../icons/inventory/Inv64.imageset/Inv64.png | Bin .../inventory/Inv65.imageset/Contents.json | 0 .../icons/inventory/Inv65.imageset/Inv65.png | Bin .../inventory/Inv66.imageset/Contents.json | 0 .../icons/inventory/Inv66.imageset/Inv66.png | Bin .../inventory/Inv67.imageset/Contents.json | 0 .../icons/inventory/Inv67.imageset/Inv67.png | Bin .../inventory/Inv68.imageset/Contents.json | 0 .../icons/inventory/Inv68.imageset/Inv68.png | Bin .../inventory/Inv69.imageset/Contents.json | 0 .../icons/inventory/Inv69.imageset/Inv69.png | Bin .../inventory/Inv7.imageset/Contents.json | 0 .../icons/inventory/Inv7.imageset/Inv7.png | Bin .../inventory/Inv70.imageset/Contents.json | 0 .../icons/inventory/Inv70.imageset/Inv70.png | Bin .../inventory/Inv71.imageset/Contents.json | 0 .../icons/inventory/Inv71.imageset/Inv71.png | Bin .../inventory/Inv72.imageset/Contents.json | 0 .../icons/inventory/Inv72.imageset/Inv72.png | Bin .../inventory/Inv73.imageset/Contents.json | 0 .../icons/inventory/Inv73.imageset/Inv73.png | Bin .../inventory/Inv74.imageset/Contents.json | 0 .../icons/inventory/Inv74.imageset/Inv74.png | Bin .../inventory/Inv75.imageset/Contents.json | 0 .../icons/inventory/Inv75.imageset/Inv75.png | Bin .../inventory/Inv76.imageset/Contents.json | 0 .../icons/inventory/Inv76.imageset/Inv76.png | Bin .../inventory/Inv77.imageset/Contents.json | 0 .../icons/inventory/Inv77.imageset/Inv77.png | Bin .../inventory/Inv78.imageset/Contents.json | 0 .../icons/inventory/Inv78.imageset/Inv78.png | Bin .../inventory/Inv79.imageset/Contents.json | 0 .../icons/inventory/Inv79.imageset/Inv79.png | Bin .../inventory/Inv8.imageset/Contents.json | 0 .../icons/inventory/Inv8.imageset/Inv8.png | Bin .../inventory/Inv80.imageset/Contents.json | 0 .../icons/inventory/Inv80.imageset/Inv80.png | Bin .../inventory/Inv81.imageset/Contents.json | 0 .../icons/inventory/Inv81.imageset/Inv81.png | Bin .../inventory/Inv82.imageset/Contents.json | 0 .../icons/inventory/Inv82.imageset/Inv82.png | Bin .../inventory/Inv83.imageset/Contents.json | 0 .../icons/inventory/Inv83.imageset/Inv83.png | Bin .../inventory/Inv84.imageset/Contents.json | 0 .../icons/inventory/Inv84.imageset/Inv84.png | Bin .../inventory/Inv85.imageset/Contents.json | 0 .../icons/inventory/Inv85.imageset/Inv85.png | Bin .../inventory/Inv86.imageset/Contents.json | 0 .../icons/inventory/Inv86.imageset/Inv86.png | Bin .../inventory/Inv87.imageset/Contents.json | 0 .../icons/inventory/Inv87.imageset/Inv87.png | Bin .../inventory/Inv88.imageset/Contents.json | 0 .../icons/inventory/Inv88.imageset/Inv88.png | Bin .../inventory/Inv89.imageset/Contents.json | 0 .../icons/inventory/Inv89.imageset/Inv89.png | Bin .../inventory/Inv9.imageset/Contents.json | 0 .../icons/inventory/Inv9.imageset/Inv9.png | Bin .../inventory/Inv90.imageset/Contents.json | 0 .../icons/inventory/Inv90.imageset/Inv90.png | Bin .../inventory/Inv91.imageset/Contents.json | 0 .../icons/inventory/Inv91.imageset/Inv91.png | Bin .../inventory/Inv92.imageset/Contents.json | 0 .../icons/inventory/Inv92.imageset/Inv92.png | Bin .../inventory/Inv93.imageset/Contents.json | 0 .../icons/inventory/Inv93.imageset/Inv93.png | Bin .../inventory/Inv94.imageset/Contents.json | 0 .../icons/inventory/Inv94.imageset/Inv94.png | Bin .../inventory/Inv95.imageset/Contents.json | 0 .../icons/inventory/Inv95.imageset/Inv95.png | Bin .../inventory/Inv96.imageset/Contents.json | 0 .../icons/inventory/Inv96.imageset/Inv96.png | Bin .../inventory/Inv97.imageset/Contents.json | 0 .../icons/inventory/Inv97.imageset/Inv97.png | Bin .../inventory/Inv98.imageset/Contents.json | 0 .../icons/inventory/Inv98.imageset/Inv98.png | Bin .../inventory/Inv99.imageset/Contents.json | 0 .../icons/inventory/Inv99.imageset/Inv99.png | Bin .../Base.lproj/LaunchScreen.storyboard | 0 .../App/Resources}/en.lproj/InfoPlist.strings | 0 .../Resources}/en.lproj/Localizable.strings | 590 +++-- .../App/Resources}/ko.lproj/InfoPlist.strings | 0 .../Resources}/ko.lproj/Localizable.strings | 595 +++-- .../App/Sources}/AppAppearance.swift | 0 .../App}/Sources/AppCoordinator.swift | 30 +- .../App/Sources}/AppDelegate.swift | 3 +- .../App}/Sources/Coordinator.swift | 0 .../CoreDataStorage/CoreDataStorage.swift | 6 +- .../.xccurrentversion | 0 .../UserCollectionEntity.xcdatamodel/contents | 0 .../CoreDataDailyTaskStorage.swift | 16 +- .../DailyTaskStorage/DailyTaskStorage.swift | 2 +- .../DailyTaskEntity+Mapping.swift | 4 +- .../ItemsStorage/CoreDataItemsStorage.swift | 12 +- .../EntityMapping/ItemEntity+Mapping.swift | 88 +- .../ItemsStorage/ItemsStorage.swift | 2 +- .../CoreDataUserInfoStorage.swift | 10 +- .../UserCollectionEntity+Mapping.swift | 2 +- .../UserInfoStorage/UserInfoStorage.swift | 0 .../CoreDataVillagersHouseStorage.swift | 8 +- .../VillagersHouseEntity+Mapping.swift | 6 +- .../VillagersHouseStorage.swift | 2 +- .../CoreDataVillagersLikeStorage.swift | 8 +- .../VillagersLikeEntity+Mapping.swift | 4 +- .../VillagersLikeStorage.swift | 2 +- .../Sources/Extension/Array+extension.swift | 0 .../Extension/Collection+extension.swift | 0 .../Sources/Extension/Date+extension.swift | 4 +- .../Sources/Extension/Int+extension.swift | 0 .../Sources/Extension/Reactor+extension.swift | 0 .../Sources/Extension/String+extension.swift | 6 +- .../Extension/UI/UIButton+extension.swift | 5 +- .../UI/UICollectionView+extension.swift | 2 +- .../Extension/UI/UIColor+extension.swift | 16 +- .../Extension/UI/UIFont+extension.swift | 0 .../Extension/UI/UIImage+extension.swift | 5 +- .../Extension/UI/UIImageView+extension.swift | 11 +- .../Extension/UI/UILabel+extension.swift | 0 .../Extension/UI/UIMenu+extension.swift | 2 +- .../Extension/UI/UINavigationItem.swift | 4 +- .../Extension/UI/UIStackView+extension.swift | 4 +- .../Extension/UI/UITableView+extension.swift | 2 +- .../Extension/UI/UIView+extension.swift | 0 .../UI/UIViewController+extension.swift | 4 +- .../App}/Sources/Models/DailyTask.swift | 10 +- .../App}/Sources/Models/Fruit.swift | 4 +- .../App}/Sources/Models/Hemisphere.swift | 2 +- .../App}/Sources/Models/Items/Category.swift | 20 +- .../App}/Sources/Models/Items/Item.swift | 24 +- .../App}/Sources/Models/Items/Keyword.swift | 0 .../App}/Sources/Models/UserInfo.swift | 10 +- .../App}/Sources/Models/Villager.swift | 4 +- .../Networking/DefaultAPIProvider.swift | 0 .../Networking/Protocol/APIProvider.swift | 0 .../Networking/Protocol/APIRequest.swift | 6 +- .../Request/Clothes/AccessoriesRequest.swift | 4 +- .../Request/Clothes/BagsRequest.swift | 4 +- .../Request/Clothes/BottomsRequest.swift | 4 +- .../Request/Clothes/DressUpRequest.swift | 4 +- .../Request/Clothes/HeadwearRequest.swift | 4 +- .../Request/Clothes/ShoesRequest.swift | 4 +- .../Request/Clothes/SocksRequest.swift | 4 +- .../Request/Clothes/TopsRequest.swift | 4 +- .../Request/Clothes/UmbrellasRequest.swift | 4 +- .../Request/Clothes/WetSuitRequest.swift | 4 +- .../Furniture/CeilingDecorRequest.swift | 4 +- .../Request/Furniture/FencingReqeust.swift | 4 +- .../Request/Furniture/FloorsRequest.swift | 4 +- .../Request/Furniture/HousewaresRequest.swift | 4 +- .../Furniture/MiscellaneousRequest.swift | 4 +- .../Request/Furniture/OtherRequest.swift | 4 +- .../Request/Furniture/PhotosReqeust.swift | 4 +- .../Request/Furniture/RecipesRequest.swift | 4 +- .../Request/Furniture/RugsRequest.swift | 4 +- .../Request/Furniture/SongsRequest.swift | 4 +- .../Furniture/WallMountedRequest.swift | 4 +- .../Request/Furniture/WallpaperRequest.swift | 4 +- .../Request/Museum/ArtRequest.swift | 4 +- .../Request/Museum/BugRequest.swift | 4 +- .../Request/Museum/FishRequest.swift | 4 +- .../Request/Museum/FossilsRequest.swift | 4 +- .../Request/Museum/SeaCreaturesRequest.swift | 4 +- .../Networking/Request/ReactionsRequest.swift | 4 +- .../Networking/Request/TurnipRequest.swift | 8 +- .../Networking/Request/VillagersRequest.swift | 4 +- .../Clothes/AccessoriesResponseDTO.swift | 0 .../Response/Clothes/BagsResponseDTO.swift | 0 .../Response/Clothes/BottomsResponseDTO.swift | 0 .../Response/Clothes/DressUpResponseDTO.swift | 0 .../Clothes/HeadwearResponseDTO.swift | 0 .../Response/Clothes/ShoesResponseDTO.swift | 0 .../Response/Clothes/SocksResponseDTO.swift | 0 .../Response/Clothes/TopsResponseDTO.swift | 2 +- .../Clothes/UmbrellasResponseDTO.swift | 0 .../Response/Clothes/WetSuitResponseDTO.swift | 0 .../Furniture/CeilingDecorResponseDTO.swift | 0 .../Furniture/FencingResponseDTO.swift | 0 .../Furniture/FloorsResponseDTO.swift | 4 +- .../Furniture/HousewaresResponseDTO.swift | 6 +- .../Furniture/MiscellaneousResponseDTO.swift | 4 +- .../Response/Furniture/OtherResponseDTO.swift | 4 +- .../Furniture/PhotosResponseDTO.swift | 2 +- .../Furniture/RecipeResponseDTO.swift | 0 .../Response/Furniture/RugsResponseDTO.swift | 0 .../Response/Furniture/SongResponseDTO.swift | 0 .../Furniture/WallMountedResponseDTO.swift | 2 +- .../Furniture/WallpaperResponseDTO.swift | 0 .../Response/Museum/ArtResponseDTO.swift | 4 +- .../Response/Museum/BugResponseDTO.swift | 0 .../Response/Museum/FishResponseDTO.swift | 2 +- .../Response/Museum/FossilsResponseDTO.swift | 2 +- .../Museum/SeaCreaturesResponseDTO.swift | 0 .../Response/ReactionsResponseDTO.swift | 0 .../Response/TurnipResponseDTO.swift | 0 .../Response/VillagersResponseDTO.swift | 130 +- .../Networking/Utilities/APIError.swift | 2 +- .../Utilities/EnvironmentsVariable.swift | 0 .../Coordinator/CatalogCoordinator.swift | 12 +- .../CatalogViewController.swift | 16 +- .../ItemDetailViewController.swift | 52 +- .../ViewControllers/ItemsViewController.swift | 78 +- .../ViewModels/CatalogCellReactor.swift | 18 +- .../Catalog/ViewModels/CatalogReactor.swift | 22 +- .../ViewModels/ItemDetailReactor.swift | 24 +- .../Catalog/ViewModels/ItemsReactor.swift | 62 +- .../Catalog/Views/CalendarView.swift | 18 +- .../Catalog/Views/CatalogCell.swift | 18 +- .../Catalog/Views/CatalogCell.xib | 0 .../Catalog/Views/CategoryRow.swift | 8 +- .../Catalog/Views/CategoryRow.xib | 0 .../Catalog/Views/ItemBellsView.swift | 16 +- .../Catalog/Views/ItemDetailInfoView.swift | 26 +- .../Catalog/Views/ItemKeywordView.swift | 12 +- .../Catalog/Views/ItemMaterialsView.swift | 14 +- .../Catalog/Views/ItemOtherInfoView.swift | 20 +- .../Catalog/Views/ItemSeasonView.swift | 20 +- .../Catalog/Views/ItemVariantsView.swift | 18 +- .../Catalog/Views/KeywordCell.swift | 10 +- .../Catalog/Views/KeywordCell.xib | 0 .../Catalog/Views/PlayerView.swift | 10 +- .../Catalog/Views/VariantCell.swift | 2 +- .../Catalog/Views/VariantCell.xib | 0 .../Coordinator/CollectionCoordinator.swift | 8 +- .../CollectionProgressViewController.swift | 16 +- .../CollectionViewController.swift | 20 +- .../CollectionProgressReactor.swift | 14 +- .../ViewModels/CollectionReactor.swift | 16 +- .../Collection/Views/ItemProgressRow.swift | 12 +- .../Collection/Views/ItemProgressRow.xib | 0 .../Coordinator/DashboardCoordinator.swift | 18 +- .../ViewControllers/AboutViewController.swift | 16 +- .../CustomTaskViewController.swift | 24 +- .../DashboardViewController.swift | 20 +- .../IconChooserViewController.swift | 20 +- .../PreferencesViewController.swift | 34 +- .../TaskEditViewController.swift | 24 +- .../Dashboard/ViewModels/AboutReactor.swift | 14 +- .../ViewModels/AppSettingReactor.swift | 18 +- .../CollectionProgressSectionReactor.swift | 16 +- .../ViewModels/CustomTaskReactor.swift | 14 +- .../ViewModels/DashboardReactor.swift | 16 +- .../ViewModels/PreferencesReactor.swift | 12 +- .../ViewModels/ProgressReactor.swift | 14 +- .../ViewModels/TasksEditReactor.swift | 20 +- .../TodaysTasksSectionReactor.swift | 16 +- .../ViewModels/UserInfoReactor.swift | 18 +- .../ViewModels/VillagersSectionReactor.swift | 16 +- .../Dashboard/Views/AppSettingView.swift | 16 +- .../Views/CollectionProgressView.swift | 20 +- .../Dashboard/Views/CustomTaskView.swift | 26 +- .../Dashboard/Views/PreferencesView.swift | 42 +- .../Dashboard/Views/TodaysTasksView.swift | 30 +- .../Dashboard/Views/UserInfoView.swift | 36 +- .../Dashboard/Views/VillagersView.swift | 28 +- .../Dashboard/Views/shared/EmptyView.swift | 14 +- .../Dashboard/Views/shared/IconCell.swift | 14 +- .../Dashboard/Views/shared/IconCell.xib | 0 .../Views/shared/InfoContentView.swift | 10 +- .../Dashboard/Views/shared/LoadingView.swift | 2 +- .../Dashboard/Views/shared/ProgressBar.swift | 8 +- .../Dashboard/Views/shared/ProgressView.swift | 16 +- .../Views/shared/SectionHeaderView.swift | 16 +- .../Dashboard/Views/shared/SectionView.swift | 20 +- .../Views/shared/SectionsScrollView.swift | 14 +- .../Presentation/MusicPlayer/PlayerMode.swift | 0 .../PlayerViewController.swift | 44 +- .../ViewModels/PlayerReactor.swift | 44 +- .../Views/MaximizePlayerView.swift | 54 +- .../Views/MinimizePlayerView.swift | 28 +- .../MusicPlayer/Views/SongRow.swift | 6 +- .../MusicPlayer/Views/SongRow.xib | 0 .../Coordinator/VillagersCoordinator.swift | 10 +- .../VillagerDetailViewController.swift | 32 +- .../VillagersViewController.swift | 54 +- .../ViewModels/VillagerDetailReactor.swift | 24 +- .../ViewModels/VillagersCellReactor.swift | 24 +- .../ViewModels/VillagersReactor.swift | 50 +- .../Villagers/Views/VillagerDetailView.swift | 20 +- .../Villagers/Views/VillagerHouseView.swift | 6 +- .../Villagers/Views/VillagersCell.swift | 18 +- .../Villagers/Views/VillagersCell.xib | 0 .../App/Sources}/SceneDelegate.swift | 2 - .../App}/Sources/Utility/AboutItem.swift | 6 +- .../App}/Sources/Utility/HapticManager.swift | 14 +- .../App}/Sources/Utility/Items.swift | 72 +- .../Sources/Utility/MusicPlayerManager.swift | 72 +- .../Projects/App/Tests/ACNHWikiTests.swift | 8 + .../Scripts/SwiftLintAutocorrectScript.sh | 11 + .../Scripts/SwiftLintRunScript.sh | 11 + Tuist/Config.swift | 9 + Tuist/Package.resolved | 60 + Tuist/Package.swift | 34 + .../Dependency+SPM.swift | 14 + .../TargetScript+.swift | 20 + Workspace.swift | 16 + graph.png | Bin 0 -> 81942 bytes 1256 files changed, 2072 insertions(+), 3897 deletions(-) create mode 100644 .mise.toml rename Animal-Crossing-Wiki/.swiftlint.yml => .swiftlint.yml (74%) delete mode 100644 Animal-Crossing-Wiki/Animal-Crossing-Wiki.xcodeproj/project.pbxproj delete mode 100644 Animal-Crossing-Wiki/Animal-Crossing-Wiki.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Animal-Crossing-Wiki/Animal-Crossing-Wiki.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/ko.lproj/LaunchScreen.strings delete mode 100644 Animal-Crossing-Wiki/AnimalCrossingWikiTests/AnimalCrossingWikiTests.swift rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Info.plist (64%) create mode 100644 Animal-Crossing-Wiki/Projects/App/Project.swift rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/100.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/1024.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/114.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/120.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/128.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/144.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/152.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/16.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/167.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/172.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/180.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/196.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/20.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/216.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/256.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/29.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/32.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/40.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/48.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/50.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/512.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/55.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/57.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/58.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/60.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/64.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/72.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/76.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/80.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/87.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/88.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/Background/ACBackground.colorset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/Background/ACSecondaryBackground.colorset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/Background/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/Navigation Bar/ACNavigationBarTint.colorset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/Navigation Bar/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/Section Header/ACHeaderBackground.colorset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/Section Header/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/Text/ACSecondaryText.colorset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/Text/ACText.colorset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/Text/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/catalog-background.colorset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/catalog-bar.colorset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/catalog-selected.colorset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/catalog-text.colorset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/colors/launchBackground.colorset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/fruits/Apple.imageset/Apple.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/fruits/Apple.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/fruits/Cherry.imageset/Cherry.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/fruits/Cherry.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/fruits/Coconut.imageset/Coconut.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/fruits/Coconut.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/fruits/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/fruits/Orange.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/fruits/Orange.imageset/Orange.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/fruits/Peach.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/fruits/Peach.imageset/Peach.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/fruits/Pear.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/fruits/Pear.imageset/Pear.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/App-Icon.imageset/App-Icon.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/App-Icon.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/book-dive-icon.imageset/BookBtnInvDiveFish^z.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/book-dive-icon.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/book-fish-icon.imageset/BookBtnInvFish^z_0.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/book-fish-icon.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/book-insect-icon.imageset/BookBtnInvInsect^z_0.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/book-insect-icon.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins0.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins0.imageset/Ins0.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins1.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins1.imageset/Ins1.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins10.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins10.imageset/Ins10.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins11.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins11.imageset/Ins11.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins12.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins12.imageset/Ins12.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins13.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins13.imageset/Ins13.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins14.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins14.imageset/Ins14.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins15.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins15.imageset/Ins15.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins16.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins16.imageset/Ins16.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins17.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins17.imageset/Ins17.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins18.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins18.imageset/Ins18.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins19.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins19.imageset/Ins19.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins2.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins2.imageset/Ins2.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins20.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins20.imageset/Ins20.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins21.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins21.imageset/Ins48.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins22.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins22.imageset/Ins22.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins23.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins23.imageset/Ins23.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins24.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins24.imageset/Ins24.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins25.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins25.imageset/Ins47.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins26.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins26.imageset/Ins26.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins27.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins27.imageset/Ins27.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins28.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins28.imageset/Ins28.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins29.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins29.imageset/Ins29.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins3.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins3.imageset/Ins3.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins30.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins30.imageset/Ins30.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins31.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins31.imageset/Ins31.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins32.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins32.imageset/Ins32.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins33.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins33.imageset/Ins33.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins34.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins34.imageset/Ins34.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins35.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins35.imageset/Ins35.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins36.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins36.imageset/Ins36.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins37.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins37.imageset/Ins37.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins38.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins38.imageset/Ins38.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins39.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins39.imageset/Ins39.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins4.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins4.imageset/Ins4.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins40.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins40.imageset/Ins40.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins41.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins41.imageset/Ins41.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins42.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins42.imageset/Ins42.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins43.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins43.imageset/Ins43.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins44.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins44.imageset/Ins44.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins45.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins45.imageset/Ins45.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins46.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins46.imageset/Ins46.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins47.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins47.imageset/Ins47.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins48.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins48.imageset/Ins48.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins49.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins49.imageset/Ins49.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins5.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins5.imageset/Ins5.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins50.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins50.imageset/Ins50.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins51.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins51.imageset/Ins51.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins52.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins52.imageset/Ins52.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins53.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins53.imageset/Ins53.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins54.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins54.imageset/Ins54.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins55.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins55.imageset/Ins55.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins56.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins56.imageset/Ins56.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins57.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins57.imageset/Ins57.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins58.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins58.imageset/Ins58.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins59.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins59.imageset/Ins59.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins6.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins6.imageset/Ins6.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins60.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins60.imageset/Ins60.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins61.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins61.imageset/Ins61.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins62.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins62.imageset/Ins62.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins63.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins63.imageset/Ins63.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins64.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins64.imageset/Ins64.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins65.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins65.imageset/Ins65.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins66.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins66.imageset/Ins66.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins67.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins67.imageset/Ins67.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins69.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins69.imageset/Ins69.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins7.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins7.imageset/Ins7.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins70.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins70.imageset/Ins70.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins71.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins71.imageset/Ins71.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins72.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins72.imageset/Ins72.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins73.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins73.imageset/Ins73.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins74.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins74.imageset/Ins74.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins75.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins75.imageset/Ins75.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins76.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins76.imageset/Ins76.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins77.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins77.imageset/Ins77.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins78.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins78.imageset/Ins78.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins79.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins79.imageset/Ins79.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins8.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins8.imageset/Ins8.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins80.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins80.imageset/Ins80.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins81.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins81.imageset/Ins81.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins82.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins82.imageset/Ins82.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins9.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/bug/Ins9.imageset/Ins9.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/celeste.imageset/Celeste@4x.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/celeste.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/cj.imageset/C.J.@4x.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/cj.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/daisy.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/daisy.imageset/Daisy Mae@4x.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/flick.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/flick.imageset/Flick@4x.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/gulliver.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/gulliver.imageset/Gulliver@4x.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/kicks.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/kicks.imageset/Kicks@4x.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/kk.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/kk.imageset/kk.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/label.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/label.imageset/Label@4x.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/leif.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/leif.imageset/Leif@4x.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/redd.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/redd.imageset/Redd@4x.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/saharah.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/saharah.imageset/Saharah@4x.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/wisp.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/characters/wisp.imageset/Wisp@4x.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div0.imageset/Akoyagai.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div0.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div1.imageset/Amaebi.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div1.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div10.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div10.imageset/Iseebi.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div11.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div11.imageset/Isogintyaku.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div12.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div12.imageset/Kabutogani.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div13.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div13.imageset/Kairoudouketsu.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div14.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div14.imageset/Kaki.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div15.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div15.imageset/Koumoridako.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div16.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div16.imageset/Kurumaebi.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div17.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div17.imageset/Mendako.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div18.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div18.imageset/Mizukurage.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div19.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div19.imageset/Muhrugai.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div2.imageset/Chinanago.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div2.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div20.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div20.imageset/Oumugai.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div21.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div21.imageset/Oyster.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div22.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div22.imageset/Paipuuni.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div23.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div23.imageset/Sazae.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div24.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div24.imageset/Shako.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div25.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div25.imageset/Shakogai.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div26.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div26.imageset/Takaashigani.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div27.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div27.imageset/Tako.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div28.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div28.imageset/Tarabagani.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div29.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div29.imageset/Umiushi.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div3.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div3.imageset/Daiougusokumushi.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div30.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div30.imageset/Uni.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div31.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div31.imageset/Wakame.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div32.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div32.imageset/Zuwaigani.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div4.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div4.imageset/DungenessCrab.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div5.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div5.imageset/Fujitsubo.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div6.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div6.imageset/Gazami.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div7.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div7.imageset/Hiramushi.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div8.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div8.imageset/Hitode.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div9.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/diveFish/div9.imageset/Hotaruika.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish0.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish0.imageset/Fish0.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish1.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish1.imageset/Fish1.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish10.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish10.imageset/Fish10.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish11.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish11.imageset/Fish11.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish12.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish12.imageset/Fish12.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish13.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish13.imageset/Fish13.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish14.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish14.imageset/Fish14.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish15.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish15.imageset/Fish58.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish16.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish16.imageset/Fish16.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish17.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish17.imageset/Fish17.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish18.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish18.imageset/Fish18.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish19.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish19.imageset/Fish19.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish2.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish2.imageset/Fish2.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish20.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish20.imageset/Fish20.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish21.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish21.imageset/Fish21.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish22.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish22.imageset/Fish22.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish23.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish23.imageset/Fish23.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish24.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish24.imageset/Fish24.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish25.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish25.imageset/Fish66.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish26.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish26.imageset/Fish26.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish27.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish27.imageset/Fish27.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish28.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish28.imageset/Fish28.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish29.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish29.imageset/Fish29.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish3.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish3.imageset/Fish3.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish30.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish30.imageset/Fish30.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish31.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish31.imageset/Fish31.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish32.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish32.imageset/Fish32.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish33.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish33.imageset/Fish33.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish34.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish34.imageset/Fish34.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish35.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish35.imageset/Fish35.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish36.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish36.imageset/Fish36.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish37.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish37.imageset/Fish37.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish39.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish39.imageset/Fish39.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish4.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish4.imageset/Fish3.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish40.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish40.imageset/Fish40.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish41.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish41.imageset/Fish41.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish42.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish42.imageset/Fish42.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish43.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish43.imageset/Fish43.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish44.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish44.imageset/Fish44.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish45.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish45.imageset/Fish45.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish46.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish46.imageset/Fish46.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish47.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish47.imageset/Fish47.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish48.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish48.imageset/Fish48.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish49.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish49.imageset/Fish49.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish5.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish5.imageset/Fish5.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish50.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish50.imageset/Fish50.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish51.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish51.imageset/Fish51.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish52.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish52.imageset/Fish52.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish55.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish55.imageset/Fish55.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish56.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish56.imageset/Fish56.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish57.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish57.imageset/Fish57.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish58.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish58.imageset/Fish58.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish59.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish59.imageset/Fish59.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish6.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish6.imageset/Fish6.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish60.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish60.imageset/Fish60.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish61.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish61.imageset/Fish61.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish62.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish62.imageset/Fish62.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish63.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish63.imageset/Fish63.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish64.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish64.imageset/Fish64.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish65.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish65.imageset/Fish65.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish66.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish66.imageset/Fish66.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish67.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish67.imageset/Fish67.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish68.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish68.imageset/Fish68.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish69.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish69.imageset/Fish69.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish7.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish7.imageset/Fish7.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish70.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish70.imageset/Fish70.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish71.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish71.imageset/Fish71.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish72.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish72.imageset/Fish72.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish73.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish73.imageset/Fish73.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish74.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish74.imageset/Fish74.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish75.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish75.imageset/Fish75.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish76.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish76.imageset/Fish76.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish77.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish77.imageset/Fish77.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish78.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish78.imageset/Fish78.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish79.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish79.imageset/Fish79.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish8.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish8.imageset/Fish8.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish80.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish80.imageset/Fish80.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish81.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish81.imageset/Fish81.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish82.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish82.imageset/Fish82.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish83.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish83.imageset/Fish83.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish84.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish84.imageset/Fish84.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish85.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish85.imageset/Fish85.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish9.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/fish/Fish9.imageset/Fish9.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-bag.imageset/Bag.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-bag.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-bamboo-spring.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-bamboo-spring.imageset/DIYBambooSpring.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-bamboo.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-bamboo.imageset/DIYBamboo.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-bell.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-bell.imageset/icon-bell@2x.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-bells-tabbar.imageset/1,000_Bells_NH_Inv_Icon.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-bells-tabbar.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-bells.imageset/1,000_Bells_NH_Inv_Icon.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-bells.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-board.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-board.imageset/Image.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-book-tabbar.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-book-tabbar.imageset/icon-book-tabbar.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-bottle-message.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-bottle-message.imageset/Message_Bottle_NH_Inv_Icon.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-branch.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-branch.imageset/DIYBranch.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-cardboard-tabbar.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-cardboard-tabbar.imageset/Package_NH_Inv_Icon.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-cardboard.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-cardboard.imageset/Package_NH_Inv_Icon.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-ceiling.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-ceiling.imageset/icon-ceiling.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-clay.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-clay.imageset/OreClay.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-fence.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-fence.imageset/Fence.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-fish.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-fish.imageset/FishBait.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-floor.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-floor.imageset/Floor.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-fossil.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-fossil.imageset/Fossil_NH_Inv_Icon.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-glasses.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-glasses.imageset/Glasses.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-gold.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-gold.imageset/Gold_Ore.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-hardwood.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-hardwood.imageset/DIYWoodHard.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-helm.imageset/Cap.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-helm.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-helmet.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-helmet.imageset/Helmet.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-housewares.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-housewares.imageset/Image.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-insect.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-insect.imageset/Net.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-iron.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-iron.imageset/OreIron.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-leaf-design.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-leaf-design.imageset/LeafDesign.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-leaf-tabbar.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-leaf-tabbar.imageset/Furniture_NH_Inv_Icon.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-leaf.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-leaf.imageset/Furniture_NH_Inv_Icon.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-mapple-leaf.imageset/AutumnLeaf.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-mapple-leaf.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-miles.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-miles.imageset/PlaneTicket.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-miscellaneous.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-miscellaneous.imageset/icon-miscellaneous.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-mushroom1.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-mushroom1.imageset/Mush0.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-mushroom2.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-mushroom2.imageset/Mush1.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-mushroom3.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-mushroom3.imageset/Mush2.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-mushroom4.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-mushroom4.imageset/Mush4.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-nookmiles.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-nookmiles.imageset/icon-nookmiles.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-nookpoint.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-nookpoint.imageset/icon-nookpoint.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-paint.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-paint.imageset/RemakeKit.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-pant.imageset/Bottoms.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-pant.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-pearl.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-pearl.imageset/icon-pearl.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-photos.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-photos.imageset/icon-photos.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-poki.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-poki.imageset/icon-poki.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-posters.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-posters.imageset/Image.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-present.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-present.imageset/Present.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-present2.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-present2.imageset/Present2.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-reactions.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-reactions.imageset/Grin.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-recipe.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-recipe.imageset/recipe-icon.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-rug.imageset/Carpet.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-rug.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-shoes.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-shoes.imageset/Shoes.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-socks.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-socks.imageset/Socks.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-softwood.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-softwood.imageset/DIYWoodSoft.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-song.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-song.imageset/Music.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-stone.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-stone.imageset/Image.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-tool.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-tool.imageset/Scoop.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-top.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-top.imageset/Dress_NH_Inv_Icon.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-turnip-tabbar.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-turnip-tabbar.imageset/Turnip_NH_Inv_Icon.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-turnip.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-turnip.imageset/Turnip_NH_Inv_Icon.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-umbrella.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-umbrella.imageset/Umbrella.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-villager-tabbar.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-villager-tabbar.imageset/Pietro_PC_icon.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-villager.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-villager.imageset/Pietro_PC_icon.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-wallmounted.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-wallmounted.imageset/Image.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-wallpaper.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-wallpaper.imageset/Wall.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-weed.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-weed.imageset/Weed.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-wetsuit.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-wetsuit.imageset/WetSuit.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-wood.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/icon-wood.imageset/DIYWoodNormal.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv0.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv0.imageset/Inv0.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv1.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv1.imageset/Inv1.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv10.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv10.imageset/Inv10.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv100.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv100.imageset/Inv100.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv101.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv101.imageset/Inv101.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv102.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv102.imageset/Inv102.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv103.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv103.imageset/Inv103.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv104.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv104.imageset/Inv104.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv105.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv105.imageset/Inv105.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv106.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv106.imageset/Inv106.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv107.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv107.imageset/Inv107.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv108.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv108.imageset/Inv108.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv109.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv109.imageset/Inv109.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv11.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv11.imageset/Inv11.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv110.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv110.imageset/Inv110.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv111.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv111.imageset/Inv111.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv112.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv112.imageset/Inv112.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv113.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv113.imageset/Inv113.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv114.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv114.imageset/Inv114.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv115.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv115.imageset/Inv115.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv116.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv116.imageset/Inv116.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv117.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv117.imageset/Inv117.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv118.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv118.imageset/Inv118.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv119.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv119.imageset/Inv119.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv12.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv12.imageset/Inv12.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv120.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv120.imageset/Inv120.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv121.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv121.imageset/Inv121.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv122.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv122.imageset/Inv122.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv123.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv123.imageset/Inv123.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv124.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv124.imageset/Inv124.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv125.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv125.imageset/Inv125.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv126.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv126.imageset/Inv126.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv127.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv127.imageset/Inv127.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv128.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv128.imageset/Inv128.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv129.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv129.imageset/Inv129.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv13.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv13.imageset/Inv13.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv130.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv130.imageset/Inv130.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv131.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv131.imageset/Inv131.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv132.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv132.imageset/Inv132.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv133.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv133.imageset/Inv133.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv134.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv134.imageset/Inv134.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv135.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv135.imageset/Inv135.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv136.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv136.imageset/Inv136.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv137.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv137.imageset/Inv137.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv138.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv138.imageset/Inv138.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv139.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv139.imageset/Inv139.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv14.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv14.imageset/Inv14.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv140.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv140.imageset/Inv140.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv141.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv141.imageset/Inv141.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv142.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv142.imageset/Inv142.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv143.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv143.imageset/Inv143.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv144.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv144.imageset/Inv144.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv145.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv145.imageset/Inv145.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv146.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv146.imageset/Inv146.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv147.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv147.imageset/Inv147.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv148.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv148.imageset/Inv148.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv149.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv149.imageset/Inv149.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv15.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv15.imageset/Inv15.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv150.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv150.imageset/Inv150.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv151.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv151.imageset/Inv151.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv152.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv152.imageset/Inv152.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv153.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv153.imageset/Inv153.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv154.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv154.imageset/Inv154.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv155.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv155.imageset/Inv155.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv156.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv156.imageset/Inv156.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv157.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv157.imageset/Inv157.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv158.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv158.imageset/Inv158.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv159.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv159.imageset/Inv159.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv16.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv16.imageset/Inv16.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv160.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv160.imageset/Inv160.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv161.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv161.imageset/Inv161.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv162.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv162.imageset/Inv162.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv163.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv163.imageset/Inv163.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv164.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv164.imageset/Inv164.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv165.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv165.imageset/Inv165.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv166.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv166.imageset/Inv166.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv167.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv167.imageset/Inv167.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv168.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv168.imageset/Inv168.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv169.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv169.imageset/Inv169.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv17.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv17.imageset/Inv17.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv170.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv170.imageset/Inv170.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv171.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv171.imageset/Inv171.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv172.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv172.imageset/Inv172.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv173.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv173.imageset/Inv173.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv174.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv174.imageset/Inv174.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv175.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv175.imageset/Inv175.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv176.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv176.imageset/Inv176.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv177.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv177.imageset/Inv177.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv178.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv178.imageset/Inv178.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv179.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv179.imageset/Inv179.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv18.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv18.imageset/Inv18.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv180.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv180.imageset/Inv180.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv181.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv181.imageset/Inv181.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv182.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv182.imageset/Inv182.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv183.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv183.imageset/Inv183.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv184.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv184.imageset/Inv184.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv185.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv185.imageset/Inv185.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv186.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv186.imageset/Inv186.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv187.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv187.imageset/Inv187.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv188.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv188.imageset/Inv188.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv189.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv189.imageset/Inv189.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv19.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv19.imageset/Inv19.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv190.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv190.imageset/Inv190.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv191.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv191.imageset/Inv191.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv192.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv192.imageset/Inv192.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv193.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv193.imageset/Inv193.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv194.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv194.imageset/Inv194.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv195.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv195.imageset/Inv195.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv196.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv196.imageset/Inv196.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv197.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv197.imageset/Inv197.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv198.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv198.imageset/Inv198.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv199.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv199.imageset/Inv199.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv2.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv2.imageset/Inv2.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv20.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv20.imageset/Inv20.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv21.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv21.imageset/Inv21.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv22.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv22.imageset/Inv22.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv23.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv23.imageset/Inv23.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv24.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv24.imageset/Inv24.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv25.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv25.imageset/Inv25.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv26.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv26.imageset/Inv26.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv27.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv27.imageset/Inv27.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv28.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv28.imageset/Inv28.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv29.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv29.imageset/Inv29.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv3.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv3.imageset/Inv3.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv30.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv30.imageset/Inv30.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv31.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv31.imageset/Inv31.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv32.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv32.imageset/Inv32.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv33.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv33.imageset/Inv33.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv34.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv34.imageset/Inv34.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv35.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv35.imageset/Inv35.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv36.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv36.imageset/Inv36.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv37.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv37.imageset/Inv37.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv38.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv38.imageset/Inv38.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv39.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv39.imageset/Inv39.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv4.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv4.imageset/Inv4.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv40.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv40.imageset/Inv40.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv41.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv41.imageset/Inv41.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv42.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv42.imageset/Inv42.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv43.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv43.imageset/Inv43.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv44.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv44.imageset/Inv44.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv45.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv45.imageset/Inv45.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv46.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv46.imageset/Inv46.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv47.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv47.imageset/Inv47.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv48.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv48.imageset/Inv48.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv49.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv49.imageset/Inv49.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv5.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv5.imageset/Inv5.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv50.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv50.imageset/Inv50.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv51.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv51.imageset/Inv51.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv52.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv52.imageset/Inv52.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv53.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv53.imageset/Inv53.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv54.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv54.imageset/Inv54.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv55.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv55.imageset/Inv55.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv56.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv56.imageset/Inv56.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv57.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv57.imageset/Inv57.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv58.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv58.imageset/Inv58.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv59.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv59.imageset/Inv59.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv6.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv6.imageset/Inv6.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv60.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv60.imageset/Inv60.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv61.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv61.imageset/Inv61.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv62.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv62.imageset/Inv62.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv63.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv63.imageset/Inv63.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv64.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv64.imageset/Inv64.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv65.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv65.imageset/Inv65.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv66.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv66.imageset/Inv66.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv67.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv67.imageset/Inv67.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv68.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv68.imageset/Inv68.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv69.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv69.imageset/Inv69.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv7.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv7.imageset/Inv7.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv70.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv70.imageset/Inv70.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv71.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv71.imageset/Inv71.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv72.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv72.imageset/Inv72.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv73.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv73.imageset/Inv73.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv74.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv74.imageset/Inv74.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv75.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv75.imageset/Inv75.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv76.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv76.imageset/Inv76.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv77.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv77.imageset/Inv77.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv78.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv78.imageset/Inv78.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv79.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv79.imageset/Inv79.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv8.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv8.imageset/Inv8.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv80.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv80.imageset/Inv80.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv81.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv81.imageset/Inv81.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv82.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv82.imageset/Inv82.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv83.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv83.imageset/Inv83.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv84.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv84.imageset/Inv84.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv85.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv85.imageset/Inv85.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv86.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv86.imageset/Inv86.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv87.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv87.imageset/Inv87.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv88.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv88.imageset/Inv88.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv89.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv89.imageset/Inv89.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv9.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv9.imageset/Inv9.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv90.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv90.imageset/Inv90.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv91.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv91.imageset/Inv91.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv92.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv92.imageset/Inv92.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv93.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv93.imageset/Inv93.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv94.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv94.imageset/Inv94.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv95.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv95.imageset/Inv95.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv96.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv96.imageset/Inv96.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv97.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv97.imageset/Inv97.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv98.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv98.imageset/Inv98.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv99.imageset/Contents.json (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Assets.xcassets/icons/inventory/Inv99.imageset/Inv99.png (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Resources/Base.lproj/LaunchScreen.storyboard (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App/Resources}/en.lproj/InfoPlist.strings (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App/Resources}/en.lproj/Localizable.strings (84%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App/Resources}/ko.lproj/InfoPlist.strings (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App/Resources}/ko.lproj/Localizable.strings (84%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki/Sources/App => Projects/App/Sources}/AppAppearance.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/AppCoordinator.swift (96%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki/Sources/App => Projects/App/Sources}/AppDelegate.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Coordinator.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/CoreDataStorage.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/CoreDataStorage.xcdatamodeld/.xccurrentversion (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/CoreDataStorage.xcdatamodeld/UserCollectionEntity.xcdatamodel/contents (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/DailyTaskStorage/CoreDataDailyTaskStorage.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/DailyTaskStorage/DailyTaskStorage.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/DailyTaskStorage/EntityMapping/DailyTaskEntity+Mapping.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/ItemsStorage/CoreDataItemsStorage.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/ItemsStorage/EntityMapping/ItemEntity+Mapping.swift (89%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/ItemsStorage/ItemsStorage.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/UserInfoStorage/CoreDataUserInfoStorage.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/UserInfoStorage/EntityMapping/UserCollectionEntity+Mapping.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/UserInfoStorage/UserInfoStorage.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/VillagersHouseStorage/CoreDataVillagersHouseStorage.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/VillagersHouseStorage/EntityMapping/VillagersHouseEntity+Mapping.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/VillagersHouseStorage/VillagersHouseStorage.swift (83%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/VillagersLikeStorage/CoreDataVillagersLikeStorage.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/VillagersLikeStorage/EntityMapping/VillagersLikeEntity+Mapping.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/CoreDataStorage/VillagersLikeStorage/VillagersLikeStorage.swift (83%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/Array+extension.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/Collection+extension.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/Date+extension.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/Int+extension.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/Reactor+extension.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/String+extension.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/UI/UIButton+extension.swift (69%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/UI/UICollectionView+extension.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/UI/UIColor+extension.swift (96%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/UI/UIFont+extension.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/UI/UIImage+extension.swift (92%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/UI/UIImageView+extension.swift (80%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/UI/UILabel+extension.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/UI/UIMenu+extension.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/UI/UINavigationItem.swift (95%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/UI/UIStackView+extension.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/UI/UITableView+extension.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/UI/UIView+extension.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Extension/UI/UIViewController+extension.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Models/DailyTask.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Models/Fruit.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Models/Hemisphere.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Models/Items/Category.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Models/Items/Item.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Models/Items/Keyword.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Models/UserInfo.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Models/Villager.swift (84%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/DefaultAPIProvider.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Protocol/APIProvider.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Protocol/APIRequest.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Clothes/AccessoriesRequest.swift (83%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Clothes/BagsRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Clothes/BottomsRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Clothes/DressUpRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Clothes/HeadwearRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Clothes/ShoesRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Clothes/SocksRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Clothes/TopsRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Clothes/UmbrellasRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Clothes/WetSuitRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Furniture/CeilingDecorRequest.swift (83%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Furniture/FencingReqeust.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Furniture/FloorsRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Furniture/HousewaresRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Furniture/MiscellaneousRequest.swift (83%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Furniture/OtherRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Furniture/PhotosReqeust.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Furniture/RecipesRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Furniture/RugsRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Furniture/SongsRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Furniture/WallMountedRequest.swift (83%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Furniture/WallpaperRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Museum/ArtRequest.swift (81%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Museum/BugRequest.swift (81%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Museum/FishRequest.swift (81%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Museum/FossilsRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/Museum/SeaCreaturesRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/ReactionsRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/TurnipRequest.swift (88%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Request/VillagersRequest.swift (82%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Clothes/AccessoriesResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Clothes/BagsResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Clothes/BottomsResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Clothes/DressUpResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Clothes/HeadwearResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Clothes/ShoesResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Clothes/SocksResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Clothes/TopsResponseDTO.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Clothes/UmbrellasResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Clothes/WetSuitResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Furniture/CeilingDecorResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Furniture/FencingResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Furniture/FloorsResponseDTO.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Furniture/HousewaresResponseDTO.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Furniture/MiscellaneousResponseDTO.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Furniture/OtherResponseDTO.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Furniture/PhotosResponseDTO.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Furniture/RecipeResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Furniture/RugsResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Furniture/SongResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Furniture/WallMountedResponseDTO.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Furniture/WallpaperResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Museum/ArtResponseDTO.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Museum/BugResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Museum/FishResponseDTO.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Museum/FossilsResponseDTO.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/Museum/SeaCreaturesResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/ReactionsResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/TurnipResponseDTO.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Response/VillagersResponseDTO.swift (55%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Utilities/APIError.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Networking/Utilities/EnvironmentsVariable.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Coordinator/CatalogCoordinator.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/ViewControllers/CatalogViewController.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/ViewControllers/ItemDetailViewController.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/ViewControllers/ItemsViewController.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/ViewModels/CatalogCellReactor.swift (96%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/ViewModels/CatalogReactor.swift (95%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/ViewModels/ItemDetailReactor.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/ViewModels/ItemsReactor.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/CalendarView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/CatalogCell.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/CatalogCell.xib (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/CategoryRow.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/CategoryRow.xib (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/ItemBellsView.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/ItemDetailInfoView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/ItemKeywordView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/ItemMaterialsView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/ItemOtherInfoView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/ItemSeasonView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/ItemVariantsView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/KeywordCell.swift (93%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/KeywordCell.xib (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/PlayerView.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/VariantCell.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Catalog/Views/VariantCell.xib (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Collection/Coordinator/CollectionCoordinator.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Collection/ViewControllers/CollectionProgressViewController.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Collection/ViewControllers/CollectionViewController.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Collection/ViewModels/CollectionProgressReactor.swift (96%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Collection/ViewModels/CollectionReactor.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Collection/Views/ItemProgressRow.swift (96%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Collection/Views/ItemProgressRow.xib (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Coordinator/DashboardCoordinator.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewControllers/AboutViewController.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewControllers/CustomTaskViewController.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewControllers/DashboardViewController.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewControllers/IconChooserViewController.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewControllers/PreferencesViewController.swift (94%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewControllers/TaskEditViewController.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewModels/AboutReactor.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewModels/AppSettingReactor.swift (96%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewModels/CollectionProgressSectionReactor.swift (96%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewModels/CustomTaskReactor.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewModels/DashboardReactor.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewModels/PreferencesReactor.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewModels/ProgressReactor.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewModels/TasksEditReactor.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewModels/TodaysTasksSectionReactor.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewModels/UserInfoReactor.swift (95%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/ViewModels/VillagersSectionReactor.swift (96%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/AppSettingView.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/CollectionProgressView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/CustomTaskView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/PreferencesView.swift (96%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/TodaysTasksView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/UserInfoView.swift (93%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/VillagersView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/shared/EmptyView.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/shared/IconCell.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/shared/IconCell.xib (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/shared/InfoContentView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/shared/LoadingView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/shared/ProgressBar.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/shared/ProgressView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/shared/SectionHeaderView.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/shared/SectionView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Dashboard/Views/shared/SectionsScrollView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/MusicPlayer/PlayerMode.swift (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/MusicPlayer/ViewControllers/PlayerViewController.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/MusicPlayer/ViewModels/PlayerReactor.swift (92%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/MusicPlayer/Views/MaximizePlayerView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/MusicPlayer/Views/MinimizePlayerView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/MusicPlayer/Views/SongRow.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/MusicPlayer/Views/SongRow.xib (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Villagers/Coordinator/VillagersCoordinator.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Villagers/ViewControllers/VillagerDetailViewController.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Villagers/ViewControllers/VillagersViewController.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Villagers/ViewModels/VillagerDetailReactor.swift (96%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Villagers/ViewModels/VillagersCellReactor.swift (96%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Villagers/ViewModels/VillagersReactor.swift (96%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Villagers/Views/VillagerDetailView.swift (89%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Villagers/Views/VillagerHouseView.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Villagers/Views/VillagersCell.swift (97%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Presentation/Villagers/Views/VillagersCell.xib (100%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki/Sources/App => Projects/App/Sources}/SceneDelegate.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Utility/AboutItem.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Utility/HapticManager.swift (98%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Utility/Items.swift (99%) rename Animal-Crossing-Wiki/{Animal-Crossing-Wiki => Projects/App}/Sources/Utility/MusicPlayerManager.swift (97%) create mode 100644 Animal-Crossing-Wiki/Projects/App/Tests/ACNHWikiTests.swift create mode 100755 Animal-Crossing-Wiki/Scripts/SwiftLintAutocorrectScript.sh create mode 100755 Animal-Crossing-Wiki/Scripts/SwiftLintRunScript.sh create mode 100644 Tuist/Config.swift create mode 100644 Tuist/Package.resolved create mode 100644 Tuist/Package.swift create mode 100644 Tuist/ProjectDescriptionHelpers/Dependency+SPM.swift create mode 100644 Tuist/ProjectDescriptionHelpers/TargetScript+.swift create mode 100644 Workspace.swift create mode 100644 graph.png diff --git a/.gitignore b/.gitignore index 7b0b97bd..24b244f9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,29 +1,10 @@ - -# Created by https://www.toptal.com/developers/gitignore/api/xcode,macos,linux,windows,sublimetext,swift,swiftpackagemanager,swiftpm,objective-c -# Edit at https://www.toptal.com/developers/gitignore?templates=xcode,macos,linux,windows,sublimetext,swift,swiftpackagemanager,swiftpm,objective-c - -### Linux ### -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - ### macOS ### # General .DS_Store .AppleDouble .LSOverride -# Icon must end with two \r +# Icon must end with two Icon # Thumbnails @@ -45,18 +26,22 @@ Network Trash Folder Temporary Items .apdisk +### Xcode ### # Xcode # # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore -*.xcuserstate -*.xcconfig +## User settings +xcuserdata/ -## Build generated +## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) +*.xcscmblueprint +*.xccheckout + +## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) build/ DerivedData/ - -## Various settings +*.moved-aside *.pbxuser !default.pbxuser *.mode1v3 @@ -65,86 +50,21 @@ DerivedData/ !default.mode2v3 *.perspectivev3 !default.perspectivev3 -xcuserdata/ - -## Other -*.moved-aside -*.xccheckout -*.xcscmblueprint - -## Obj-C/Swift specific -*.hmap -*.ipa -*.dSYM.zip -*.dSYM -## Playgrounds -timeline.xctimeline -playground.xcworkspace +### Xcode Patch ### +*.xcodeproj/* +!*.xcodeproj/project.pbxproj +!*.xcodeproj/xcshareddata/ +!*.xcworkspace/contents.xcworkspacedata +/*.gcno -# Swift Package Manager -# -Packages -.build/ -xcuserdata -DerivedData/ +### Projects ### *.xcodeproj +*.xcworkspace -# CocoaPods -# -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control -# -# Pods/ - -# Carthage -# -# Add this line if you want to avoid checking in source code from Carthage dependencies. -# Carthage/Checkouts - -Carthage/Build - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the -# screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/#source-control - -fastlane/report.xml -fastlane/Preview.html -fastlane/screenshots -fastlane/test_output - -### SublimeText ### -# Cache files for Sublime Text -*.tmlanguage.cache -*.tmPreferences.cache -*.stTheme.cache - -# Workspace files are user-specific -*.sublime-workspace - -# Project files should be checked into the repository, unless a significant -# proportion of contributors will probably not be using Sublime Text -# *.sublime-project - -# SFTP configuration file -sftp-config.json - -# Package control specific files -Package Control.last-run -Package Control.ca-list -Package Control.ca-bundle -Package Control.system-ca-bundle -Package Control.cache/ -Package Control.ca-certs/ -Package Control.merged-ca-bundle -Package Control.user-ca-bundle -oscrypto-ca-bundle.crt -bh_unicode_properties.cache +### Tuist derived files ### +graph.dot +Derived/ -# Sublime-github package stores a github token in this file -# https://packagecontrol.io/packages/sublime-github -GitHub.sublime-settings +### Tuist managed dependencies ### +Tuist/.build \ No newline at end of file diff --git a/.mise.toml b/.mise.toml new file mode 100644 index 00000000..54013657 --- /dev/null +++ b/.mise.toml @@ -0,0 +1,2 @@ +[tools] +tuist = "4.33.0" diff --git a/Animal-Crossing-Wiki/.swiftlint.yml b/.swiftlint.yml similarity index 74% rename from Animal-Crossing-Wiki/.swiftlint.yml rename to .swiftlint.yml index 7caca248..1f86b203 100644 --- a/Animal-Crossing-Wiki/.swiftlint.yml +++ b/.swiftlint.yml @@ -1,12 +1,14 @@ included: - Animal-Crossing-Wiki # 프로젝트 이름 + excluded: # 린트 과정에서 무시할 파일 경로. `included`보다 우선순위 높음 - - Animal-Crossing-Wiki/Resources/AppDelegate.swift - - Animal-Crossing-Wiki/Resources/SceneDelegate.swift - - Animal-Crossing-Wiki/Sources/Utility/Items.swift -type_body_length: # 타입 길이 - warning: 200 - error: 250 + - Animal-Crossing-Wiki/Projects/App/Sources/AppDelegate.swift + - Animal-Crossing-Wiki/Projects/App/Sources/SceneDelegate.swift + - Animal-Crossing-Wiki/Projects/App/Sources/Utility/Items.swift + - Tuist + - Workspace.swift + - Animal-Crossing-Wiki/Projects/*/Project.swift + identifier_name: min_length: - 2 # only min_length @@ -14,17 +16,22 @@ identifier_name: excluded: # 제외할 문자열 목록 사용 - a - b + function_body_length: warning: 150 error: 300 + type_body_length: - 300 # warning - 500 + file_length: warning: 500 error: 1200 + line_length: warning: 140 + disabled_rules: # 실행에서 제외할 룰 식별자들 - colon - control_statement @@ -33,6 +40,7 @@ disabled_rules: # 실행에서 제외할 룰 식별자들 - cyclomatic_complexity - void_function_in_ternary - comment_spacing + opt_in_rules: # 일부 룰은 옵트 인 형태로 제공 - empty_count - conditional_returns_on_newline diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki.xcodeproj/project.pbxproj b/Animal-Crossing-Wiki/Animal-Crossing-Wiki.xcodeproj/project.pbxproj deleted file mode 100644 index 0d108470..00000000 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1917 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 55; - objects = { - -/* Begin PBXBuildFile section */ - 023349F629261A3800C7080F /* PhotosReqeust.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023349F529261A3800C7080F /* PhotosReqeust.swift */; }; - 023349F829261A5700C7080F /* PhotosResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023349F729261A5700C7080F /* PhotosResponseDTO.swift */; }; - 023349FA29274D1700C7080F /* TopsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023349F929274D1700C7080F /* TopsRequest.swift */; }; - 023349FC29274D3500C7080F /* TopsResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023349FB29274D3500C7080F /* TopsResponseDTO.swift */; }; - 023349FE2927668400C7080F /* BottomsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023349FD2927668400C7080F /* BottomsRequest.swift */; }; - 02334A00292766AB00C7080F /* BottomsResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023349FF292766AB00C7080F /* BottomsResponseDTO.swift */; }; - 02334A02292769BF00C7080F /* DressUpRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A01292769BF00C7080F /* DressUpRequest.swift */; }; - 02334A04292769DD00C7080F /* DressUpResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A03292769DD00C7080F /* DressUpResponseDTO.swift */; }; - 02334A062927701200C7080F /* HeadwearRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A052927701200C7080F /* HeadwearRequest.swift */; }; - 02334A082927702600C7080F /* HeadwearResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A072927702600C7080F /* HeadwearResponseDTO.swift */; }; - 02334A0A292B468100C7080F /* AccessoriesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A09292B468100C7080F /* AccessoriesRequest.swift */; }; - 02334A0C292B469E00C7080F /* AccessoriesResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A0B292B469E00C7080F /* AccessoriesResponseDTO.swift */; }; - 02334A0E292B4A2300C7080F /* SocksRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A0D292B4A2300C7080F /* SocksRequest.swift */; }; - 02334A10292B4A2D00C7080F /* SocksResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A0F292B4A2D00C7080F /* SocksResponseDTO.swift */; }; - 02334A12292B4DDD00C7080F /* ShoesResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A11292B4DDD00C7080F /* ShoesResponseDTO.swift */; }; - 02334A14292B4E1000C7080F /* ShoesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A13292B4E1000C7080F /* ShoesRequest.swift */; }; - 02334A16292B52B800C7080F /* BagsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A15292B52B800C7080F /* BagsRequest.swift */; }; - 02334A18292B55C700C7080F /* BagsResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A17292B55C700C7080F /* BagsResponseDTO.swift */; }; - 02334A1A292B66DF00C7080F /* UmbrellasRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A19292B66DF00C7080F /* UmbrellasRequest.swift */; }; - 02334A1C292B66F900C7080F /* UmbrellasResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A1B292B66F900C7080F /* UmbrellasResponseDTO.swift */; }; - 02334A1E292B6B2500C7080F /* WetSuitRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A1D292B6B2500C7080F /* WetSuitRequest.swift */; }; - 02334A20292B6B5E00C7080F /* WetSuitResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02334A1F292B6B5E00C7080F /* WetSuitResponseDTO.swift */; }; - 023447D3292DE70F00B9457C /* CollectionCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023447D2292DE70F00B9457C /* CollectionCoordinator.swift */; }; - 023447D5292E064C00B9457C /* ReactionsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023447D4292E064C00B9457C /* ReactionsRequest.swift */; }; - 023447D7292E067400B9457C /* ReactionsResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023447D6292E067400B9457C /* ReactionsResponseDTO.swift */; }; - 023447D9292E178B00B9457C /* FencingReqeust.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023447D8292E178B00B9457C /* FencingReqeust.swift */; }; - 023447DB292E179C00B9457C /* FencingResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023447DA292E179C00B9457C /* FencingResponseDTO.swift */; }; - 9A1DB1CE2840504B00689F11 /* Kingfisher in Frameworks */ = {isa = PBXBuildFile; productRef = 9A1DB1CD2840504B00689F11 /* Kingfisher */; }; - 9A1DB1D2284069DD00689F11 /* UIImageView+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A1DB1D1284069DD00689F11 /* UIImageView+extension.swift */; }; - 9A1DB1D7284081E400689F11 /* Alamofire in Frameworks */ = {isa = PBXBuildFile; productRef = 9A1DB1D6284081E400689F11 /* Alamofire */; }; - 9A1DB1D92840857300689F11 /* APIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A1DB1D82840857300689F11 /* APIError.swift */; }; - 9A2B0FD92897C84F00285C77 /* UserInfoReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A2B0FD82897C84F00285C77 /* UserInfoReactor.swift */; }; - 9A3CFB2928805C4400B0FFCB /* MiscellaneousResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3CFB2828805C4400B0FFCB /* MiscellaneousResponseDTO.swift */; }; - 9A3CFB2B28805F4000B0FFCB /* MiscellaneousRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3CFB2A28805F4000B0FFCB /* MiscellaneousRequest.swift */; }; - 9A3CFB2D2880637100B0FFCB /* WallMountedResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3CFB2C2880637100B0FFCB /* WallMountedResponseDTO.swift */; }; - 9A3CFB2F2880655900B0FFCB /* WallMountedRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3CFB2E2880655900B0FFCB /* WallMountedRequest.swift */; }; - 9A3CFB3128806A8200B0FFCB /* WallpaperResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3CFB3028806A8200B0FFCB /* WallpaperResponseDTO.swift */; }; - 9A3CFB3328806EDB00B0FFCB /* FloorsResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3CFB3228806EDB00B0FFCB /* FloorsResponseDTO.swift */; }; - 9A3CFB35288073AE00B0FFCB /* WallpaperRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3CFB34288073AE00B0FFCB /* WallpaperRequest.swift */; }; - 9A3CFB37288076B900B0FFCB /* FloorsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3CFB36288076B900B0FFCB /* FloorsRequest.swift */; }; - 9A3CFB392880787100B0FFCB /* RugsResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3CFB382880787100B0FFCB /* RugsResponseDTO.swift */; }; - 9A3CFB3B2880790C00B0FFCB /* RugsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3CFB3A2880790C00B0FFCB /* RugsRequest.swift */; }; - 9A3CFB3D2880809100B0FFCB /* OtherResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3CFB3C2880809100B0FFCB /* OtherResponseDTO.swift */; }; - 9A3CFB3F288082AF00B0FFCB /* OtherRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3CFB3E288082AF00B0FFCB /* OtherRequest.swift */; }; - 9A3CFB45288128CD00B0FFCB /* Array+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3CFB44288128CD00B0FFCB /* Array+extension.swift */; }; - 9A3CFB47288291C300B0FFCB /* CeilingDecorResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3CFB46288291C300B0FFCB /* CeilingDecorResponseDTO.swift */; }; - 9A3CFB49288295CA00B0FFCB /* CeilingDecorRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3CFB48288295CA00B0FFCB /* CeilingDecorRequest.swift */; }; - 9A3DE3CA28869137006EECF7 /* LoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3DE3C928869137006EECF7 /* LoadingView.swift */; }; - 9A3DE3CC2886AFDA006EECF7 /* UINavigationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3DE3CB2886AFDA006EECF7 /* UINavigationItem.swift */; }; - 9A3DE3CE2887B6F5006EECF7 /* RecipeResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3DE3CD2887B6F5006EECF7 /* RecipeResponseDTO.swift */; }; - 9A3DE3D02887B7E6006EECF7 /* RecipesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3DE3CF2887B7E6006EECF7 /* RecipesRequest.swift */; }; - 9A3DE3D42887DD71006EECF7 /* ItemMaterialsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A3DE3D32887DD71006EECF7 /* ItemMaterialsView.swift */; }; - 9A455C3B28957569009A14A9 /* Reactor+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A455C3A28957569009A14A9 /* Reactor+extension.swift */; }; - 9A455C3D28975F73009A14A9 /* EmptyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A455C3C28975F73009A14A9 /* EmptyView.swift */; }; - 9A4B4C33285033B300CC687C /* Fruit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A4B4C32285033B300CC687C /* Fruit.swift */; }; - 9A4B4C35285034BA00CC687C /* Villager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A4B4C34285034BA00CC687C /* Villager.swift */; }; - 9A4B4C3728503A0400CC687C /* DailyTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A4B4C3628503A0400CC687C /* DailyTask.swift */; }; - 9A541B6928220A72001B57FD /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A541B6828220A72001B57FD /* AppDelegate.swift */; }; - 9A541B6B28220A72001B57FD /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A541B6A28220A72001B57FD /* SceneDelegate.swift */; }; - 9A541B6D28220A72001B57FD /* DashboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A541B6C28220A72001B57FD /* DashboardViewController.swift */; }; - 9A541B7228220A73001B57FD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9A541B7128220A73001B57FD /* Assets.xcassets */; }; - 9A541B7528220A73001B57FD /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9A541B7328220A73001B57FD /* LaunchScreen.storyboard */; }; - 9A541B8128225F8E001B57FD /* RxCocoa in Frameworks */ = {isa = PBXBuildFile; productRef = 9A541B8028225F8E001B57FD /* RxCocoa */; }; - 9A541B8328225F8E001B57FD /* RxRelay in Frameworks */ = {isa = PBXBuildFile; productRef = 9A541B8228225F8E001B57FD /* RxRelay */; }; - 9A541B8528225F8E001B57FD /* RxSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 9A541B8428225F8E001B57FD /* RxSwift */; }; - 9A5D82A02873D87000EC8CE3 /* Collection+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A5D829F2873D87000EC8CE3 /* Collection+extension.swift */; }; - 9A62CFE1287D7C56005D737D /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9A62CFE3287D7C56005D737D /* Localizable.strings */; }; - 9A62CFE7287DB9F9005D737D /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9A62CFE9287DB9F9005D737D /* InfoPlist.strings */; }; - 9A62D74128783A4D0047750F /* UITableView+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A62D74028783A4D0047750F /* UITableView+extension.swift */; }; - 9A688E1F288FAFB300FFFB69 /* ReactorKit in Frameworks */ = {isa = PBXBuildFile; productRef = 9A688E1E288FAFB300FFFB69 /* ReactorKit */; }; - 9A68919928335ADD0061AAF1 /* DefaultAPIProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A68919828335ADD0061AAF1 /* DefaultAPIProvider.swift */; }; - 9A68919B28335AE90061AAF1 /* APIProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A68919A28335AE90061AAF1 /* APIProvider.swift */; }; - 9A68919D28335AFF0061AAF1 /* APIRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A68919C28335AFF0061AAF1 /* APIRequest.swift */; }; - 9A6891A4283361F20061AAF1 /* VillagersRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6891A3283361F20061AAF1 /* VillagersRequest.swift */; }; - 9A6891A7283362C90061AAF1 /* VillagersResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6891A6283362C90061AAF1 /* VillagersResponseDTO.swift */; }; - 9A6891A9283366220061AAF1 /* EnvironmentsVariable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6891A8283366220061AAF1 /* EnvironmentsVariable.swift */; }; - 9A6891AD283368EE0061AAF1 /* TurnipRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6891AC283368EE0061AAF1 /* TurnipRequest.swift */; }; - 9A6891AF2833690A0061AAF1 /* TurnipResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6891AE2833690A0061AAF1 /* TurnipResponseDTO.swift */; }; - 9A6891B1283371A60061AAF1 /* FishRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6891B0283371A60061AAF1 /* FishRequest.swift */; }; - 9A6891B3283371E20061AAF1 /* FishResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6891B2283371E20061AAF1 /* FishResponseDTO.swift */; }; - 9A6891B5283376E50061AAF1 /* BugRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6891B4283376E50061AAF1 /* BugRequest.swift */; }; - 9A6891B7283377010061AAF1 /* BugResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6891B6283377010061AAF1 /* BugResponseDTO.swift */; }; - 9A6891B9283378630061AAF1 /* FossilsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6891B8283378630061AAF1 /* FossilsRequest.swift */; }; - 9A6891BB2833787D0061AAF1 /* FossilsResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6891BA2833787D0061AAF1 /* FossilsResponseDTO.swift */; }; - 9A6891BD283379830061AAF1 /* SeaCreaturesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6891BC283379830061AAF1 /* SeaCreaturesRequest.swift */; }; - 9A6891BF283379B80061AAF1 /* SeaCreaturesResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6891BE283379B80061AAF1 /* SeaCreaturesResponseDTO.swift */; }; - 9A6891C1283380CD0061AAF1 /* ArtRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6891C0283380CD0061AAF1 /* ArtRequest.swift */; }; - 9A6891C3283380D50061AAF1 /* ArtResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6891C2283380D50061AAF1 /* ArtResponseDTO.swift */; }; - 9A6A2ED7287BE71A007D2EEA /* CollectionProgressSectionReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6A2ED6287BE71A007D2EEA /* CollectionProgressSectionReactor.swift */; }; - 9A6A2ED9287BEB76007D2EEA /* DashboardReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6A2ED8287BEB76007D2EEA /* DashboardReactor.swift */; }; - 9A6CB3F1286EB57A00B368D4 /* UIMenu+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6CB3F0286EB57A00B368D4 /* UIMenu+extension.swift */; }; - 9A6CB3F328728B3100B368D4 /* String+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6CB3F228728B3100B368D4 /* String+extension.swift */; }; - 9A6DC205287C6199004EEC41 /* AboutReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6DC204287C6199004EEC41 /* AboutReactor.swift */; }; - 9A6DC209287C7B42004EEC41 /* AppSettingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6DC208287C7B42004EEC41 /* AppSettingView.swift */; }; - 9A6DC20B287D0AC5004EEC41 /* AppSettingReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6DC20A287D0AC5004EEC41 /* AppSettingReactor.swift */; }; - 9A6DE3532888E2E300EB2F3F /* PlayerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6DE3522888E2E300EB2F3F /* PlayerViewController.swift */; }; - 9A6DE3592889271200EB2F3F /* MinimizePlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6DE3582889271200EB2F3F /* MinimizePlayerView.swift */; }; - 9A6DE35B2889327A00EB2F3F /* MaximizePlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6DE35A2889327A00EB2F3F /* MaximizePlayerView.swift */; }; - 9A6DE35D2889AF1000EB2F3F /* PlayerReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6DE35C2889AF1000EB2F3F /* PlayerReactor.swift */; }; - 9A6DE3612889B18800EB2F3F /* MusicPlayerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6DE3602889B18800EB2F3F /* MusicPlayerManager.swift */; }; - 9A6DE363288A9BFB00EB2F3F /* PlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6DE362288A9BFB00EB2F3F /* PlayerView.swift */; }; - 9A6DE366288ADAC300EB2F3F /* SongRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6DE364288ADAC300EB2F3F /* SongRow.swift */; }; - 9A6DE367288ADAC300EB2F3F /* SongRow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A6DE365288ADAC300EB2F3F /* SongRow.xib */; }; - 9A6DE369288AE25400EB2F3F /* PlayerMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A6DE368288AE25400EB2F3F /* PlayerMode.swift */; }; - 9A7ACED9287EC16E001D47CB /* VillagersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACED7287EC16E001D47CB /* VillagersViewController.swift */; }; - 9A7ACEDA287EC16E001D47CB /* VillagerDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACED8287EC16E001D47CB /* VillagerDetailViewController.swift */; }; - 9A7ACEDC287EC180001D47CB /* VillagersCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEDB287EC180001D47CB /* VillagersCoordinator.swift */; }; - 9A7ACEE0287EC188001D47CB /* VillagersCellReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEDD287EC188001D47CB /* VillagersCellReactor.swift */; }; - 9A7ACEE1287EC188001D47CB /* VillagersReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEDE287EC188001D47CB /* VillagersReactor.swift */; }; - 9A7ACEE2287EC188001D47CB /* VillagerDetailReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEDF287EC188001D47CB /* VillagerDetailReactor.swift */; }; - 9A7ACEE7287EC194001D47CB /* VillagerDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEE3287EC194001D47CB /* VillagerDetailView.swift */; }; - 9A7ACEE8287EC194001D47CB /* VillagersCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEE4287EC194001D47CB /* VillagersCell.swift */; }; - 9A7ACEE9287EC194001D47CB /* VillagerHouseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEE5287EC194001D47CB /* VillagerHouseView.swift */; }; - 9A7ACEEA287EC194001D47CB /* VillagersCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A7ACEE6287EC194001D47CB /* VillagersCell.xib */; }; - 9A7ACEEE287EC20B001D47CB /* ItemDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEEB287EC20B001D47CB /* ItemDetailViewController.swift */; }; - 9A7ACEEF287EC20B001D47CB /* CatalogViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEEC287EC20B001D47CB /* CatalogViewController.swift */; }; - 9A7ACEF0287EC20B001D47CB /* ItemsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEED287EC20B001D47CB /* ItemsViewController.swift */; }; - 9A7ACEF5287EC239001D47CB /* CatalogReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEF1287EC239001D47CB /* CatalogReactor.swift */; }; - 9A7ACEF6287EC239001D47CB /* ItemDetailReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEF2287EC239001D47CB /* ItemDetailReactor.swift */; }; - 9A7ACEF7287EC239001D47CB /* CatalogCellReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEF3287EC239001D47CB /* CatalogCellReactor.swift */; }; - 9A7ACEF8287EC239001D47CB /* ItemsReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEF4287EC239001D47CB /* ItemsReactor.swift */; }; - 9A7ACEFA287EC25B001D47CB /* CatalogCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEF9287EC25B001D47CB /* CatalogCoordinator.swift */; }; - 9A7ACF04287EC26F001D47CB /* ItemDetailInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEFB287EC26F001D47CB /* ItemDetailInfoView.swift */; }; - 9A7ACF05287EC26F001D47CB /* CatalogCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A7ACEFC287EC26F001D47CB /* CatalogCell.xib */; }; - 9A7ACF06287EC26F001D47CB /* CategoryRow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A7ACEFD287EC26F001D47CB /* CategoryRow.xib */; }; - 9A7ACF07287EC26F001D47CB /* CategoryRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEFE287EC26F001D47CB /* CategoryRow.swift */; }; - 9A7ACF08287EC26F001D47CB /* CatalogCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACEFF287EC26F001D47CB /* CatalogCell.swift */; }; - 9A7ACF09287EC26F001D47CB /* ItemOtherInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF00287EC26F001D47CB /* ItemOtherInfoView.swift */; }; - 9A7ACF0A287EC26F001D47CB /* CalendarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF01287EC26F001D47CB /* CalendarView.swift */; }; - 9A7ACF0B287EC26F001D47CB /* ItemSeasonView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF02287EC26F001D47CB /* ItemSeasonView.swift */; }; - 9A7ACF0C287EC26F001D47CB /* ItemBellsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF03287EC26F001D47CB /* ItemBellsView.swift */; }; - 9A7ACF0F287EC2D3001D47CB /* CollectionProgressViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF0D287EC2D3001D47CB /* CollectionProgressViewController.swift */; }; - 9A7ACF10287EC2D3001D47CB /* CollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF0E287EC2D3001D47CB /* CollectionViewController.swift */; }; - 9A7ACF15287EC2E9001D47CB /* CollectionProgressReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF13287EC2E9001D47CB /* CollectionProgressReactor.swift */; }; - 9A7ACF16287EC2E9001D47CB /* CollectionReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF14287EC2E9001D47CB /* CollectionReactor.swift */; }; - 9A7ACF19287EC2F3001D47CB /* ItemProgressRow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A7ACF17287EC2F3001D47CB /* ItemProgressRow.xib */; }; - 9A7ACF1A287EC2F3001D47CB /* ItemProgressRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF18287EC2F3001D47CB /* ItemProgressRow.swift */; }; - 9A7ACF22287EC459001D47CB /* HapticManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF20287EC459001D47CB /* HapticManager.swift */; }; - 9A7ACF23287EC459001D47CB /* Items.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF21287EC459001D47CB /* Items.swift */; }; - 9A7ACF25287F9C87001D47CB /* HousewaresResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF24287F9C87001D47CB /* HousewaresResponseDTO.swift */; }; - 9A7ACF27287F9F00001D47CB /* HousewaresRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF26287F9F00001D47CB /* HousewaresRequest.swift */; }; - 9A7ACF29287FD984001D47CB /* ItemVariantsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF28287FD984001D47CB /* ItemVariantsView.swift */; }; - 9A7ACF2C287FDA07001D47CB /* VariantCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF2A287FDA07001D47CB /* VariantCell.swift */; }; - 9A7ACF2D287FDA07001D47CB /* VariantCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A7ACF2B287FDA07001D47CB /* VariantCell.xib */; }; - 9A7ACF30288000D7001D47CB /* KeywordCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF2E288000D7001D47CB /* KeywordCell.swift */; }; - 9A7ACF31288000D7001D47CB /* KeywordCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A7ACF2F288000D7001D47CB /* KeywordCell.xib */; }; - 9A7ACF3328800318001D47CB /* ItemKeywordView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A7ACF3228800318001D47CB /* ItemKeywordView.swift */; }; - 9A836EF328AE0CAF00B5A74A /* SongsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A836EF228AE0CAF00B5A74A /* SongsRequest.swift */; }; - 9A836EF528AE0CC200B5A74A /* SongResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A836EF428AE0CC200B5A74A /* SongResponseDTO.swift */; }; - 9A99AA062858247700629C4A /* Coordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA052858247700629C4A /* Coordinator.swift */; }; - 9A99AA082858248600629C4A /* AppCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA072858248600629C4A /* AppCoordinator.swift */; }; - 9A99AA0A285824DF00629C4A /* AppAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA09285824DF00629C4A /* AppAppearance.swift */; }; - 9A99AA0C285824F000629C4A /* UIColor+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA0B285824F000629C4A /* UIColor+extension.swift */; }; - 9A99AA1428584C9B00629C4A /* UIFont+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA1328584C9B00629C4A /* UIFont+extension.swift */; }; - 9A99AA1E2858743F00629C4A /* SectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA1D2858743F00629C4A /* SectionView.swift */; }; - 9A99AA2028587A7500629C4A /* SectionHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA1F28587A7500629C4A /* SectionHeaderView.swift */; }; - 9A99AA222858802B00629C4A /* UIView+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA212858802B00629C4A /* UIView+extension.swift */; }; - 9A99AA242858803D00629C4A /* UIStackView+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA232858803D00629C4A /* UIStackView+extension.swift */; }; - 9A99AA262858827900629C4A /* UserInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA252858827900629C4A /* UserInfoView.swift */; }; - 9A99AA2C28597B7500629C4A /* TodaysTasksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA2B28597B7500629C4A /* TodaysTasksView.swift */; }; - 9A99AA362859C8BD00629C4A /* VillagersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA352859C8BD00629C4A /* VillagersView.swift */; }; - 9A99AA382859F74900629C4A /* ProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA372859F74900629C4A /* ProgressView.swift */; }; - 9A99AA3A2859F9A300629C4A /* CollectionProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA392859F9A300629C4A /* CollectionProgressView.swift */; }; - 9A99AA3C285AE2FC00629C4A /* ProgressBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA3B285AE2FC00629C4A /* ProgressBar.swift */; }; - 9A99AA3E285AEA1700629C4A /* Date+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA3D285AEA1700629C4A /* Date+extension.swift */; }; - 9A99AA44285AF03D00629C4A /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA43285AF03D00629C4A /* PreferencesViewController.swift */; }; - 9A99AA46285AF1D600629C4A /* SectionsScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA45285AF1D500629C4A /* SectionsScrollView.swift */; }; - 9A99AA4A285B04D900629C4A /* DashboardCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA49285B04D900629C4A /* DashboardCoordinator.swift */; }; - 9A99AA50285C1C3500629C4A /* UIButton+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA4F285C1C3500629C4A /* UIButton+extension.swift */; }; - 9A99AA52285C32C300629C4A /* PreferencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA51285C32C300629C4A /* PreferencesView.swift */; }; - 9A99AA54285C341E00629C4A /* InfoContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA53285C341E00629C4A /* InfoContentView.swift */; }; - 9A99AA56285C422200629C4A /* UIViewController+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA55285C422200629C4A /* UIViewController+extension.swift */; }; - 9A99AA58285C6FF900629C4A /* TaskEditViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA57285C6FF900629C4A /* TaskEditViewController.swift */; }; - 9A99AA5A28602F4A00629C4A /* CustomTaskView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA5928602F4A00629C4A /* CustomTaskView.swift */; }; - 9A99AA5C2860319100629C4A /* CustomTaskViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA5B2860319100629C4A /* CustomTaskViewController.swift */; }; - 9A99AA6128603CB800629C4A /* IconCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA5F28603CB800629C4A /* IconCell.swift */; }; - 9A99AA6228603CB800629C4A /* IconCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A99AA6028603CB800629C4A /* IconCell.xib */; }; - 9A99AA642860401400629C4A /* UICollectionView+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA632860401400629C4A /* UICollectionView+extension.swift */; }; - 9A99AA662860431A00629C4A /* IconChooserViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA652860431A00629C4A /* IconChooserViewController.swift */; }; - 9A99AA6D2861945B00629C4A /* PreferencesReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA6C2861945B00629C4A /* PreferencesReactor.swift */; }; - 9A99AA6F28643CA700629C4A /* UIImage+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA6E28643CA700629C4A /* UIImage+extension.swift */; }; - 9A99AA712864433900629C4A /* UserCollectionEntity+Mapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA702864433900629C4A /* UserCollectionEntity+Mapping.swift */; }; - 9A99AA7428656D1600629C4A /* VillagersSectionReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA7328656D1600629C4A /* VillagersSectionReactor.swift */; }; - 9A99AA7628657A9900629C4A /* TodaysTasksSectionReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA7528657A9900629C4A /* TodaysTasksSectionReactor.swift */; }; - 9A99AA782865B82A00629C4A /* TasksEditReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA772865B82A00629C4A /* TasksEditReactor.swift */; }; - 9A99AA7A2865CA9300629C4A /* CustomTaskReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA792865CA9300629C4A /* CustomTaskReactor.swift */; }; - 9A99AA7E286AC4F900629C4A /* AboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA7D286AC4F900629C4A /* AboutViewController.swift */; }; - 9A99AA81286ACBBC00629C4A /* Differentiator in Frameworks */ = {isa = PBXBuildFile; productRef = 9A99AA80286ACBBC00629C4A /* Differentiator */; }; - 9A99AA83286ACBBC00629C4A /* RxDataSources in Frameworks */ = {isa = PBXBuildFile; productRef = 9A99AA82286ACBBC00629C4A /* RxDataSources */; }; - 9A99AA85286AE22200629C4A /* AboutItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A99AA84286AE22200629C4A /* AboutItem.swift */; }; - 9AD343EC28746593008A3D6D /* Int+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AD343EB28746593008A3D6D /* Int+extension.swift */; }; - 9AD343F128766429008A3D6D /* UILabel+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AD343F028766429008A3D6D /* UILabel+extension.swift */; }; - 9AD343F728767649008A3D6D /* ProgressReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AD343F628767649008A3D6D /* ProgressReactor.swift */; }; - 9AF0418828503B9400C51449 /* CoreDataStorage.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 9AF0418528503B9400C51449 /* CoreDataStorage.xcdatamodeld */; }; - 9AF0418A28503F7900C51449 /* Item.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF0418928503F7900C51449 /* Item.swift */; }; - 9AF0418C2850451100C51449 /* Category.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF0418B2850451100C51449 /* Category.swift */; }; - 9AF041AC2851B20D00C51449 /* CoreDataStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF041AB2851B20D00C51449 /* CoreDataStorage.swift */; }; - 9AF042042852F2F500C51449 /* Keyword.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF042032852F2F500C51449 /* Keyword.swift */; }; - 9AF0420628530C1E00C51449 /* CoreDataVillagersLikeStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF0420528530C1E00C51449 /* CoreDataVillagersLikeStorage.swift */; }; - 9AF0420828530C2D00C51449 /* CoreDataVillagersHouseStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF0420728530C2D00C51449 /* CoreDataVillagersHouseStorage.swift */; }; - 9AF0420A28530C3800C51449 /* CoreDataItemsStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF0420928530C3800C51449 /* CoreDataItemsStorage.swift */; }; - 9AF0420C28530C5F00C51449 /* VillagersLikeEntity+Mapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF0420B28530C5F00C51449 /* VillagersLikeEntity+Mapping.swift */; }; - 9AF0420E28530C8600C51449 /* VillagersHouseEntity+Mapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF0420D28530C8600C51449 /* VillagersHouseEntity+Mapping.swift */; }; - 9AF0421028530CA300C51449 /* ItemEntity+Mapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF0420F28530CA300C51449 /* ItemEntity+Mapping.swift */; }; - 9AF0421528530CFE00C51449 /* VillagersHouseStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF0421428530CFE00C51449 /* VillagersHouseStorage.swift */; }; - 9AF0421928530D8D00C51449 /* ItemsStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF0421828530D8D00C51449 /* ItemsStorage.swift */; }; - 9AF0421D28530DD200C51449 /* VillagersLikeStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF0421C28530DD100C51449 /* VillagersLikeStorage.swift */; }; - 9AF0421F285312FB00C51449 /* CoreDataDailyTaskStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF0421E285312FB00C51449 /* CoreDataDailyTaskStorage.swift */; }; - 9AF042212853131400C51449 /* DailyTaskEntity+Mapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF042202853131400C51449 /* DailyTaskEntity+Mapping.swift */; }; - 9AF042252853133200C51449 /* DailyTaskStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF042242853133200C51449 /* DailyTaskStorage.swift */; }; - 9AF04227285313ED00C51449 /* UserInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF04226285313ED00C51449 /* UserInfo.swift */; }; - 9AF04229285315FA00C51449 /* CoreDataUserInfoStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF04228285315FA00C51449 /* CoreDataUserInfoStorage.swift */; }; - 9AF0422C2853161500C51449 /* UserInfoStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF0422B2853161500C51449 /* UserInfoStorage.swift */; }; - 9AF042362856C86600C51449 /* AnimalCrossingWikiTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF042352856C86600C51449 /* AnimalCrossingWikiTests.swift */; }; - 9AF042402856F4C000C51449 /* Hemisphere.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF0423F2856F4C000C51449 /* Hemisphere.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 9AF042372856C86600C51449 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 9A541B5D28220A72001B57FD /* Project object */; - proxyType = 1; - remoteGlobalIDString = 9A541B6428220A72001B57FD; - remoteInfo = "Animal-Crossing-Wiki"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 023349F529261A3800C7080F /* PhotosReqeust.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotosReqeust.swift; sourceTree = ""; }; - 023349F729261A5700C7080F /* PhotosResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotosResponseDTO.swift; sourceTree = ""; }; - 023349F929274D1700C7080F /* TopsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopsRequest.swift; sourceTree = ""; }; - 023349FB29274D3500C7080F /* TopsResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopsResponseDTO.swift; sourceTree = ""; }; - 023349FD2927668400C7080F /* BottomsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomsRequest.swift; sourceTree = ""; }; - 023349FF292766AB00C7080F /* BottomsResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomsResponseDTO.swift; sourceTree = ""; }; - 02334A01292769BF00C7080F /* DressUpRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DressUpRequest.swift; sourceTree = ""; }; - 02334A03292769DD00C7080F /* DressUpResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DressUpResponseDTO.swift; sourceTree = ""; }; - 02334A052927701200C7080F /* HeadwearRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeadwearRequest.swift; sourceTree = ""; }; - 02334A072927702600C7080F /* HeadwearResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeadwearResponseDTO.swift; sourceTree = ""; }; - 02334A09292B468100C7080F /* AccessoriesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessoriesRequest.swift; sourceTree = ""; }; - 02334A0B292B469E00C7080F /* AccessoriesResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessoriesResponseDTO.swift; sourceTree = ""; }; - 02334A0D292B4A2300C7080F /* SocksRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocksRequest.swift; sourceTree = ""; }; - 02334A0F292B4A2D00C7080F /* SocksResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocksResponseDTO.swift; sourceTree = ""; }; - 02334A11292B4DDD00C7080F /* ShoesResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoesResponseDTO.swift; sourceTree = ""; }; - 02334A13292B4E1000C7080F /* ShoesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoesRequest.swift; sourceTree = ""; }; - 02334A15292B52B800C7080F /* BagsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BagsRequest.swift; sourceTree = ""; }; - 02334A17292B55C700C7080F /* BagsResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BagsResponseDTO.swift; sourceTree = ""; }; - 02334A19292B66DF00C7080F /* UmbrellasRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UmbrellasRequest.swift; sourceTree = ""; }; - 02334A1B292B66F900C7080F /* UmbrellasResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UmbrellasResponseDTO.swift; sourceTree = ""; }; - 02334A1D292B6B2500C7080F /* WetSuitRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WetSuitRequest.swift; sourceTree = ""; }; - 02334A1F292B6B5E00C7080F /* WetSuitResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WetSuitResponseDTO.swift; sourceTree = ""; }; - 023447D2292DE70F00B9457C /* CollectionCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollectionCoordinator.swift; sourceTree = ""; }; - 023447D4292E064C00B9457C /* ReactionsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionsRequest.swift; sourceTree = ""; }; - 023447D6292E067400B9457C /* ReactionsResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionsResponseDTO.swift; sourceTree = ""; }; - 023447D8292E178B00B9457C /* FencingReqeust.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FencingReqeust.swift; sourceTree = ""; }; - 023447DA292E179C00B9457C /* FencingResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FencingResponseDTO.swift; sourceTree = ""; }; - 9A1DB1D1284069DD00689F11 /* UIImageView+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImageView+extension.swift"; sourceTree = ""; }; - 9A1DB1D82840857300689F11 /* APIError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIError.swift; sourceTree = ""; }; - 9A2B0FD82897C84F00285C77 /* UserInfoReactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoReactor.swift; sourceTree = ""; }; - 9A3CFB2828805C4400B0FFCB /* MiscellaneousResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiscellaneousResponseDTO.swift; sourceTree = ""; }; - 9A3CFB2A28805F4000B0FFCB /* MiscellaneousRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiscellaneousRequest.swift; sourceTree = ""; }; - 9A3CFB2C2880637100B0FFCB /* WallMountedResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallMountedResponseDTO.swift; sourceTree = ""; }; - 9A3CFB2E2880655900B0FFCB /* WallMountedRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallMountedRequest.swift; sourceTree = ""; }; - 9A3CFB3028806A8200B0FFCB /* WallpaperResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperResponseDTO.swift; sourceTree = ""; }; - 9A3CFB3228806EDB00B0FFCB /* FloorsResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FloorsResponseDTO.swift; sourceTree = ""; }; - 9A3CFB34288073AE00B0FFCB /* WallpaperRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperRequest.swift; sourceTree = ""; }; - 9A3CFB36288076B900B0FFCB /* FloorsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FloorsRequest.swift; sourceTree = ""; }; - 9A3CFB382880787100B0FFCB /* RugsResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RugsResponseDTO.swift; sourceTree = ""; }; - 9A3CFB3A2880790C00B0FFCB /* RugsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RugsRequest.swift; sourceTree = ""; }; - 9A3CFB3C2880809100B0FFCB /* OtherResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OtherResponseDTO.swift; sourceTree = ""; }; - 9A3CFB3E288082AF00B0FFCB /* OtherRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OtherRequest.swift; sourceTree = ""; }; - 9A3CFB44288128CD00B0FFCB /* Array+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Array+extension.swift"; sourceTree = ""; }; - 9A3CFB46288291C300B0FFCB /* CeilingDecorResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CeilingDecorResponseDTO.swift; sourceTree = ""; }; - 9A3CFB48288295CA00B0FFCB /* CeilingDecorRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CeilingDecorRequest.swift; sourceTree = ""; }; - 9A3DE3C928869137006EECF7 /* LoadingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingView.swift; sourceTree = ""; }; - 9A3DE3CB2886AFDA006EECF7 /* UINavigationItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UINavigationItem.swift; sourceTree = ""; }; - 9A3DE3CD2887B6F5006EECF7 /* RecipeResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecipeResponseDTO.swift; sourceTree = ""; }; - 9A3DE3CF2887B7E6006EECF7 /* RecipesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecipesRequest.swift; sourceTree = ""; }; - 9A3DE3D32887DD71006EECF7 /* ItemMaterialsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemMaterialsView.swift; sourceTree = ""; }; - 9A455C3A28957569009A14A9 /* Reactor+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Reactor+extension.swift"; sourceTree = ""; }; - 9A455C3C28975F73009A14A9 /* EmptyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmptyView.swift; sourceTree = ""; }; - 9A4B4C32285033B300CC687C /* Fruit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Fruit.swift; sourceTree = ""; }; - 9A4B4C34285034BA00CC687C /* Villager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Villager.swift; sourceTree = ""; }; - 9A4B4C3628503A0400CC687C /* DailyTask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DailyTask.swift; sourceTree = ""; }; - 9A541B6528220A72001B57FD /* Animal-Crossing-Wiki.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Animal-Crossing-Wiki.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9A541B6828220A72001B57FD /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 9A541B6A28220A72001B57FD /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; - 9A541B6C28220A72001B57FD /* DashboardViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashboardViewController.swift; sourceTree = ""; }; - 9A541B7128220A73001B57FD /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 9A541B7428220A73001B57FD /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 9A541B7628220A73001B57FD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9A5D829F2873D87000EC8CE3 /* Collection+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Collection+extension.swift"; sourceTree = ""; }; - 9A62CFE2287D7C56005D737D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; - 9A62CFE4287D7C64005D737D /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = ""; }; - 9A62CFE8287DB9F9005D737D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - 9A62CFEA287DB9FB005D737D /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/InfoPlist.strings; sourceTree = ""; }; - 9A62D73B2877E13C0047750F /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/LaunchScreen.strings; sourceTree = ""; }; - 9A62D74028783A4D0047750F /* UITableView+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITableView+extension.swift"; sourceTree = ""; }; - 9A68919828335ADD0061AAF1 /* DefaultAPIProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultAPIProvider.swift; sourceTree = ""; }; - 9A68919A28335AE90061AAF1 /* APIProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIProvider.swift; sourceTree = ""; }; - 9A68919C28335AFF0061AAF1 /* APIRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIRequest.swift; sourceTree = ""; }; - 9A6891A3283361F20061AAF1 /* VillagersRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VillagersRequest.swift; sourceTree = ""; }; - 9A6891A6283362C90061AAF1 /* VillagersResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VillagersResponseDTO.swift; sourceTree = ""; }; - 9A6891A8283366220061AAF1 /* EnvironmentsVariable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnvironmentsVariable.swift; sourceTree = ""; }; - 9A6891AC283368EE0061AAF1 /* TurnipRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TurnipRequest.swift; sourceTree = ""; }; - 9A6891AE2833690A0061AAF1 /* TurnipResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TurnipResponseDTO.swift; sourceTree = ""; }; - 9A6891B0283371A60061AAF1 /* FishRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FishRequest.swift; sourceTree = ""; }; - 9A6891B2283371E20061AAF1 /* FishResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FishResponseDTO.swift; sourceTree = ""; }; - 9A6891B4283376E50061AAF1 /* BugRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BugRequest.swift; sourceTree = ""; }; - 9A6891B6283377010061AAF1 /* BugResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BugResponseDTO.swift; sourceTree = ""; }; - 9A6891B8283378630061AAF1 /* FossilsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FossilsRequest.swift; sourceTree = ""; }; - 9A6891BA2833787D0061AAF1 /* FossilsResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FossilsResponseDTO.swift; sourceTree = ""; }; - 9A6891BC283379830061AAF1 /* SeaCreaturesRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeaCreaturesRequest.swift; sourceTree = ""; }; - 9A6891BE283379B80061AAF1 /* SeaCreaturesResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeaCreaturesResponseDTO.swift; sourceTree = ""; }; - 9A6891C0283380CD0061AAF1 /* ArtRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArtRequest.swift; sourceTree = ""; }; - 9A6891C2283380D50061AAF1 /* ArtResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArtResponseDTO.swift; sourceTree = ""; }; - 9A6A2ED6287BE71A007D2EEA /* CollectionProgressSectionReactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollectionProgressSectionReactor.swift; sourceTree = ""; }; - 9A6A2ED8287BEB76007D2EEA /* DashboardReactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashboardReactor.swift; sourceTree = ""; }; - 9A6CB3F0286EB57A00B368D4 /* UIMenu+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIMenu+extension.swift"; sourceTree = ""; }; - 9A6CB3F228728B3100B368D4 /* String+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+extension.swift"; sourceTree = ""; }; - 9A6DC204287C6199004EEC41 /* AboutReactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutReactor.swift; sourceTree = ""; }; - 9A6DC208287C7B42004EEC41 /* AppSettingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSettingView.swift; sourceTree = ""; }; - 9A6DC20A287D0AC5004EEC41 /* AppSettingReactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppSettingReactor.swift; sourceTree = ""; }; - 9A6DE3522888E2E300EB2F3F /* PlayerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerViewController.swift; sourceTree = ""; }; - 9A6DE3582889271200EB2F3F /* MinimizePlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MinimizePlayerView.swift; sourceTree = ""; }; - 9A6DE35A2889327A00EB2F3F /* MaximizePlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MaximizePlayerView.swift; sourceTree = ""; }; - 9A6DE35C2889AF1000EB2F3F /* PlayerReactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerReactor.swift; sourceTree = ""; }; - 9A6DE3602889B18800EB2F3F /* MusicPlayerManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MusicPlayerManager.swift; sourceTree = ""; }; - 9A6DE362288A9BFB00EB2F3F /* PlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerView.swift; sourceTree = ""; }; - 9A6DE364288ADAC300EB2F3F /* SongRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SongRow.swift; sourceTree = ""; }; - 9A6DE365288ADAC300EB2F3F /* SongRow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SongRow.xib; sourceTree = ""; }; - 9A6DE368288AE25400EB2F3F /* PlayerMode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerMode.swift; sourceTree = ""; }; - 9A7ACED7287EC16E001D47CB /* VillagersViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = VillagersViewController.swift; path = ViewControllers/VillagersViewController.swift; sourceTree = ""; }; - 9A7ACED8287EC16E001D47CB /* VillagerDetailViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = VillagerDetailViewController.swift; path = ViewControllers/VillagerDetailViewController.swift; sourceTree = ""; }; - 9A7ACEDB287EC180001D47CB /* VillagersCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = VillagersCoordinator.swift; path = Coordinator/VillagersCoordinator.swift; sourceTree = ""; }; - 9A7ACEDD287EC188001D47CB /* VillagersCellReactor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = VillagersCellReactor.swift; path = ViewModels/VillagersCellReactor.swift; sourceTree = ""; }; - 9A7ACEDE287EC188001D47CB /* VillagersReactor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = VillagersReactor.swift; path = ViewModels/VillagersReactor.swift; sourceTree = ""; }; - 9A7ACEDF287EC188001D47CB /* VillagerDetailReactor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = VillagerDetailReactor.swift; path = ViewModels/VillagerDetailReactor.swift; sourceTree = ""; }; - 9A7ACEE3287EC194001D47CB /* VillagerDetailView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = VillagerDetailView.swift; path = Views/VillagerDetailView.swift; sourceTree = ""; }; - 9A7ACEE4287EC194001D47CB /* VillagersCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = VillagersCell.swift; path = Views/VillagersCell.swift; sourceTree = ""; }; - 9A7ACEE5287EC194001D47CB /* VillagerHouseView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = VillagerHouseView.swift; path = Views/VillagerHouseView.swift; sourceTree = ""; }; - 9A7ACEE6287EC194001D47CB /* VillagersCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VillagersCell.xib; path = Views/VillagersCell.xib; sourceTree = ""; }; - 9A7ACEEB287EC20B001D47CB /* ItemDetailViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ItemDetailViewController.swift; path = ViewControllers/ItemDetailViewController.swift; sourceTree = ""; }; - 9A7ACEEC287EC20B001D47CB /* CatalogViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CatalogViewController.swift; path = ViewControllers/CatalogViewController.swift; sourceTree = ""; }; - 9A7ACEED287EC20B001D47CB /* ItemsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ItemsViewController.swift; path = ViewControllers/ItemsViewController.swift; sourceTree = ""; }; - 9A7ACEF1287EC239001D47CB /* CatalogReactor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CatalogReactor.swift; path = ViewModels/CatalogReactor.swift; sourceTree = ""; }; - 9A7ACEF2287EC239001D47CB /* ItemDetailReactor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ItemDetailReactor.swift; path = ViewModels/ItemDetailReactor.swift; sourceTree = ""; }; - 9A7ACEF3287EC239001D47CB /* CatalogCellReactor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CatalogCellReactor.swift; path = ViewModels/CatalogCellReactor.swift; sourceTree = ""; }; - 9A7ACEF4287EC239001D47CB /* ItemsReactor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ItemsReactor.swift; path = ViewModels/ItemsReactor.swift; sourceTree = ""; }; - 9A7ACEF9287EC25B001D47CB /* CatalogCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CatalogCoordinator.swift; path = Coordinator/CatalogCoordinator.swift; sourceTree = ""; }; - 9A7ACEFB287EC26F001D47CB /* ItemDetailInfoView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemDetailInfoView.swift; sourceTree = ""; }; - 9A7ACEFC287EC26F001D47CB /* CatalogCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CatalogCell.xib; sourceTree = ""; }; - 9A7ACEFD287EC26F001D47CB /* CategoryRow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CategoryRow.xib; sourceTree = ""; }; - 9A7ACEFE287EC26F001D47CB /* CategoryRow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CategoryRow.swift; sourceTree = ""; }; - 9A7ACEFF287EC26F001D47CB /* CatalogCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CatalogCell.swift; sourceTree = ""; }; - 9A7ACF00287EC26F001D47CB /* ItemOtherInfoView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemOtherInfoView.swift; sourceTree = ""; }; - 9A7ACF01287EC26F001D47CB /* CalendarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalendarView.swift; sourceTree = ""; }; - 9A7ACF02287EC26F001D47CB /* ItemSeasonView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemSeasonView.swift; sourceTree = ""; }; - 9A7ACF03287EC26F001D47CB /* ItemBellsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemBellsView.swift; sourceTree = ""; }; - 9A7ACF0D287EC2D3001D47CB /* CollectionProgressViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionProgressViewController.swift; sourceTree = ""; }; - 9A7ACF0E287EC2D3001D47CB /* CollectionViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionViewController.swift; sourceTree = ""; }; - 9A7ACF13287EC2E9001D47CB /* CollectionProgressReactor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionProgressReactor.swift; sourceTree = ""; }; - 9A7ACF14287EC2E9001D47CB /* CollectionReactor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionReactor.swift; sourceTree = ""; }; - 9A7ACF17287EC2F3001D47CB /* ItemProgressRow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ItemProgressRow.xib; sourceTree = ""; }; - 9A7ACF18287EC2F3001D47CB /* ItemProgressRow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemProgressRow.swift; sourceTree = ""; }; - 9A7ACF20287EC459001D47CB /* HapticManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HapticManager.swift; sourceTree = ""; }; - 9A7ACF21287EC459001D47CB /* Items.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Items.swift; sourceTree = ""; }; - 9A7ACF24287F9C87001D47CB /* HousewaresResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HousewaresResponseDTO.swift; sourceTree = ""; }; - 9A7ACF26287F9F00001D47CB /* HousewaresRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HousewaresRequest.swift; sourceTree = ""; }; - 9A7ACF28287FD984001D47CB /* ItemVariantsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemVariantsView.swift; sourceTree = ""; }; - 9A7ACF2A287FDA07001D47CB /* VariantCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VariantCell.swift; sourceTree = ""; }; - 9A7ACF2B287FDA07001D47CB /* VariantCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = VariantCell.xib; sourceTree = ""; }; - 9A7ACF2E288000D7001D47CB /* KeywordCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeywordCell.swift; sourceTree = ""; }; - 9A7ACF2F288000D7001D47CB /* KeywordCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KeywordCell.xib; sourceTree = ""; }; - 9A7ACF3228800318001D47CB /* ItemKeywordView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemKeywordView.swift; sourceTree = ""; }; - 9A836EF228AE0CAF00B5A74A /* SongsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SongsRequest.swift; sourceTree = ""; }; - 9A836EF428AE0CC200B5A74A /* SongResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SongResponseDTO.swift; sourceTree = ""; }; - 9A99AA052858247700629C4A /* Coordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Coordinator.swift; sourceTree = ""; }; - 9A99AA072858248600629C4A /* AppCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppCoordinator.swift; sourceTree = ""; }; - 9A99AA09285824DF00629C4A /* AppAppearance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppAppearance.swift; sourceTree = ""; }; - 9A99AA0B285824F000629C4A /* UIColor+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+extension.swift"; sourceTree = ""; }; - 9A99AA1328584C9B00629C4A /* UIFont+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIFont+extension.swift"; sourceTree = ""; }; - 9A99AA1D2858743F00629C4A /* SectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionView.swift; sourceTree = ""; }; - 9A99AA1F28587A7500629C4A /* SectionHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionHeaderView.swift; sourceTree = ""; }; - 9A99AA212858802B00629C4A /* UIView+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+extension.swift"; sourceTree = ""; }; - 9A99AA232858803D00629C4A /* UIStackView+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIStackView+extension.swift"; sourceTree = ""; }; - 9A99AA252858827900629C4A /* UserInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoView.swift; sourceTree = ""; }; - 9A99AA2B28597B7500629C4A /* TodaysTasksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodaysTasksView.swift; sourceTree = ""; }; - 9A99AA352859C8BD00629C4A /* VillagersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VillagersView.swift; sourceTree = ""; }; - 9A99AA372859F74900629C4A /* ProgressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressView.swift; sourceTree = ""; }; - 9A99AA392859F9A300629C4A /* CollectionProgressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollectionProgressView.swift; sourceTree = ""; }; - 9A99AA3B285AE2FC00629C4A /* ProgressBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressBar.swift; sourceTree = ""; }; - 9A99AA3D285AEA1700629C4A /* Date+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Date+extension.swift"; sourceTree = ""; }; - 9A99AA43285AF03D00629C4A /* PreferencesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesViewController.swift; sourceTree = ""; }; - 9A99AA45285AF1D500629C4A /* SectionsScrollView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionsScrollView.swift; sourceTree = ""; }; - 9A99AA49285B04D900629C4A /* DashboardCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashboardCoordinator.swift; sourceTree = ""; }; - 9A99AA4F285C1C3500629C4A /* UIButton+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIButton+extension.swift"; sourceTree = ""; }; - 9A99AA51285C32C300629C4A /* PreferencesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesView.swift; sourceTree = ""; }; - 9A99AA53285C341E00629C4A /* InfoContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoContentView.swift; sourceTree = ""; }; - 9A99AA55285C422200629C4A /* UIViewController+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+extension.swift"; sourceTree = ""; }; - 9A99AA57285C6FF900629C4A /* TaskEditViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TaskEditViewController.swift; sourceTree = ""; }; - 9A99AA5928602F4A00629C4A /* CustomTaskView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTaskView.swift; sourceTree = ""; }; - 9A99AA5B2860319100629C4A /* CustomTaskViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTaskViewController.swift; sourceTree = ""; }; - 9A99AA5F28603CB800629C4A /* IconCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconCell.swift; sourceTree = ""; }; - 9A99AA6028603CB800629C4A /* IconCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = IconCell.xib; sourceTree = ""; }; - 9A99AA632860401400629C4A /* UICollectionView+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UICollectionView+extension.swift"; sourceTree = ""; }; - 9A99AA652860431A00629C4A /* IconChooserViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconChooserViewController.swift; sourceTree = ""; }; - 9A99AA6C2861945B00629C4A /* PreferencesReactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesReactor.swift; sourceTree = ""; }; - 9A99AA6E28643CA700629C4A /* UIImage+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+extension.swift"; sourceTree = ""; }; - 9A99AA702864433900629C4A /* UserCollectionEntity+Mapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserCollectionEntity+Mapping.swift"; sourceTree = ""; }; - 9A99AA7328656D1600629C4A /* VillagersSectionReactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VillagersSectionReactor.swift; sourceTree = ""; }; - 9A99AA7528657A9900629C4A /* TodaysTasksSectionReactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodaysTasksSectionReactor.swift; sourceTree = ""; }; - 9A99AA772865B82A00629C4A /* TasksEditReactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TasksEditReactor.swift; sourceTree = ""; }; - 9A99AA792865CA9300629C4A /* CustomTaskReactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTaskReactor.swift; sourceTree = ""; }; - 9A99AA7D286AC4F900629C4A /* AboutViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutViewController.swift; sourceTree = ""; }; - 9A99AA84286AE22200629C4A /* AboutItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutItem.swift; sourceTree = ""; }; - 9AD343EB28746593008A3D6D /* Int+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Int+extension.swift"; sourceTree = ""; }; - 9AD343F028766429008A3D6D /* UILabel+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UILabel+extension.swift"; sourceTree = ""; }; - 9AD343F628767649008A3D6D /* ProgressReactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressReactor.swift; sourceTree = ""; }; - 9AF0418628503B9400C51449 /* UserCollectionEntity.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = UserCollectionEntity.xcdatamodel; sourceTree = ""; }; - 9AF0418928503F7900C51449 /* Item.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Item.swift; sourceTree = ""; }; - 9AF0418B2850451100C51449 /* Category.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Category.swift; sourceTree = ""; }; - 9AF041AB2851B20D00C51449 /* CoreDataStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDataStorage.swift; sourceTree = ""; }; - 9AF042032852F2F500C51449 /* Keyword.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Keyword.swift; sourceTree = ""; }; - 9AF0420528530C1E00C51449 /* CoreDataVillagersLikeStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDataVillagersLikeStorage.swift; sourceTree = ""; }; - 9AF0420728530C2D00C51449 /* CoreDataVillagersHouseStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDataVillagersHouseStorage.swift; sourceTree = ""; }; - 9AF0420928530C3800C51449 /* CoreDataItemsStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDataItemsStorage.swift; sourceTree = ""; }; - 9AF0420B28530C5F00C51449 /* VillagersLikeEntity+Mapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "VillagersLikeEntity+Mapping.swift"; sourceTree = ""; }; - 9AF0420D28530C8600C51449 /* VillagersHouseEntity+Mapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "VillagersHouseEntity+Mapping.swift"; sourceTree = ""; }; - 9AF0420F28530CA300C51449 /* ItemEntity+Mapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ItemEntity+Mapping.swift"; sourceTree = ""; }; - 9AF0421428530CFE00C51449 /* VillagersHouseStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VillagersHouseStorage.swift; sourceTree = ""; }; - 9AF0421828530D8D00C51449 /* ItemsStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemsStorage.swift; sourceTree = ""; }; - 9AF0421C28530DD100C51449 /* VillagersLikeStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VillagersLikeStorage.swift; sourceTree = ""; }; - 9AF0421E285312FB00C51449 /* CoreDataDailyTaskStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDataDailyTaskStorage.swift; sourceTree = ""; }; - 9AF042202853131400C51449 /* DailyTaskEntity+Mapping.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DailyTaskEntity+Mapping.swift"; sourceTree = ""; }; - 9AF042242853133200C51449 /* DailyTaskStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DailyTaskStorage.swift; sourceTree = ""; }; - 9AF04226285313ED00C51449 /* UserInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfo.swift; sourceTree = ""; }; - 9AF04228285315FA00C51449 /* CoreDataUserInfoStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreDataUserInfoStorage.swift; sourceTree = ""; }; - 9AF0422B2853161500C51449 /* UserInfoStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfoStorage.swift; sourceTree = ""; }; - 9AF042332856C86600C51449 /* AnimalCrossingWikiTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AnimalCrossingWikiTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 9AF042352856C86600C51449 /* AnimalCrossingWikiTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnimalCrossingWikiTests.swift; sourceTree = ""; }; - 9AF0423F2856F4C000C51449 /* Hemisphere.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hemisphere.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 9A541B6228220A72001B57FD /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 9A1DB1D7284081E400689F11 /* Alamofire in Frameworks */, - 9A1DB1CE2840504B00689F11 /* Kingfisher in Frameworks */, - 9A688E1F288FAFB300FFFB69 /* ReactorKit in Frameworks */, - 9A541B8528225F8E001B57FD /* RxSwift in Frameworks */, - 9A541B8328225F8E001B57FD /* RxRelay in Frameworks */, - 9A99AA83286ACBBC00629C4A /* RxDataSources in Frameworks */, - 9A99AA81286ACBBC00629C4A /* Differentiator in Frameworks */, - 9A541B8128225F8E001B57FD /* RxCocoa in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9AF042302856C86600C51449 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 023447C8292DCF8400B9457C /* Museum */ = { - isa = PBXGroup; - children = ( - 9A6891C2283380D50061AAF1 /* ArtResponseDTO.swift */, - 9A6891B6283377010061AAF1 /* BugResponseDTO.swift */, - 9A6891B2283371E20061AAF1 /* FishResponseDTO.swift */, - 9A6891BA2833787D0061AAF1 /* FossilsResponseDTO.swift */, - 9A6891BE283379B80061AAF1 /* SeaCreaturesResponseDTO.swift */, - ); - path = Museum; - sourceTree = ""; - }; - 023447C9292DCFCC00B9457C /* Museum */ = { - isa = PBXGroup; - children = ( - 9A6891C0283380CD0061AAF1 /* ArtRequest.swift */, - 9A6891B4283376E50061AAF1 /* BugRequest.swift */, - 9A6891B0283371A60061AAF1 /* FishRequest.swift */, - 9A6891B8283378630061AAF1 /* FossilsRequest.swift */, - 9A6891BC283379830061AAF1 /* SeaCreaturesRequest.swift */, - ); - path = Museum; - sourceTree = ""; - }; - 023447CA292DD06B00B9457C /* Furniture */ = { - isa = PBXGroup; - children = ( - 9A7ACF24287F9C87001D47CB /* HousewaresResponseDTO.swift */, - 9A3CFB2828805C4400B0FFCB /* MiscellaneousResponseDTO.swift */, - 9A3CFB2C2880637100B0FFCB /* WallMountedResponseDTO.swift */, - 9A3CFB3028806A8200B0FFCB /* WallpaperResponseDTO.swift */, - 9A3CFB3228806EDB00B0FFCB /* FloorsResponseDTO.swift */, - 9A3CFB382880787100B0FFCB /* RugsResponseDTO.swift */, - 9A3CFB3C2880809100B0FFCB /* OtherResponseDTO.swift */, - 9A3CFB46288291C300B0FFCB /* CeilingDecorResponseDTO.swift */, - 9A3DE3CD2887B6F5006EECF7 /* RecipeResponseDTO.swift */, - 9A836EF428AE0CC200B5A74A /* SongResponseDTO.swift */, - 023349F729261A5700C7080F /* PhotosResponseDTO.swift */, - 023447DA292E179C00B9457C /* FencingResponseDTO.swift */, - ); - path = Furniture; - sourceTree = ""; - }; - 023447CB292DD15700B9457C /* Furniture */ = { - isa = PBXGroup; - children = ( - 9A7ACF26287F9F00001D47CB /* HousewaresRequest.swift */, - 9A3CFB2A28805F4000B0FFCB /* MiscellaneousRequest.swift */, - 9A3CFB2E2880655900B0FFCB /* WallMountedRequest.swift */, - 9A3CFB34288073AE00B0FFCB /* WallpaperRequest.swift */, - 9A3CFB36288076B900B0FFCB /* FloorsRequest.swift */, - 9A3CFB3A2880790C00B0FFCB /* RugsRequest.swift */, - 9A3CFB3E288082AF00B0FFCB /* OtherRequest.swift */, - 9A3CFB48288295CA00B0FFCB /* CeilingDecorRequest.swift */, - 9A3DE3CF2887B7E6006EECF7 /* RecipesRequest.swift */, - 9A836EF228AE0CAF00B5A74A /* SongsRequest.swift */, - 023349F529261A3800C7080F /* PhotosReqeust.swift */, - 023447D8292E178B00B9457C /* FencingReqeust.swift */, - ); - path = Furniture; - sourceTree = ""; - }; - 023447CC292DE2C400B9457C /* Clothes */ = { - isa = PBXGroup; - children = ( - 023349FB29274D3500C7080F /* TopsResponseDTO.swift */, - 023349FF292766AB00C7080F /* BottomsResponseDTO.swift */, - 02334A03292769DD00C7080F /* DressUpResponseDTO.swift */, - 02334A072927702600C7080F /* HeadwearResponseDTO.swift */, - 02334A0B292B469E00C7080F /* AccessoriesResponseDTO.swift */, - 02334A0F292B4A2D00C7080F /* SocksResponseDTO.swift */, - 02334A11292B4DDD00C7080F /* ShoesResponseDTO.swift */, - 02334A17292B55C700C7080F /* BagsResponseDTO.swift */, - 02334A1B292B66F900C7080F /* UmbrellasResponseDTO.swift */, - 02334A1F292B6B5E00C7080F /* WetSuitResponseDTO.swift */, - ); - path = Clothes; - sourceTree = ""; - }; - 023447CD292DE2CA00B9457C /* Clothes */ = { - isa = PBXGroup; - children = ( - 023349F929274D1700C7080F /* TopsRequest.swift */, - 023349FD2927668400C7080F /* BottomsRequest.swift */, - 02334A01292769BF00C7080F /* DressUpRequest.swift */, - 02334A052927701200C7080F /* HeadwearRequest.swift */, - 02334A09292B468100C7080F /* AccessoriesRequest.swift */, - 02334A0D292B4A2300C7080F /* SocksRequest.swift */, - 02334A13292B4E1000C7080F /* ShoesRequest.swift */, - 02334A15292B52B800C7080F /* BagsRequest.swift */, - 02334A19292B66DF00C7080F /* UmbrellasRequest.swift */, - 02334A1D292B6B2500C7080F /* WetSuitRequest.swift */, - ); - path = Clothes; - sourceTree = ""; - }; - 023447CE292DE5A500B9457C /* ViewControllers */ = { - isa = PBXGroup; - children = ( - 9A7ACF0D287EC2D3001D47CB /* CollectionProgressViewController.swift */, - 9A7ACF0E287EC2D3001D47CB /* CollectionViewController.swift */, - ); - name = ViewControllers; - path = ../Collection/ViewControllers; - sourceTree = ""; - }; - 023447CF292DE5FD00B9457C /* Views */ = { - isa = PBXGroup; - children = ( - 9A6DE35A2889327A00EB2F3F /* MaximizePlayerView.swift */, - 9A6DE3582889271200EB2F3F /* MinimizePlayerView.swift */, - 9A6DE364288ADAC300EB2F3F /* SongRow.swift */, - 9A6DE365288ADAC300EB2F3F /* SongRow.xib */, - ); - path = Views; - sourceTree = ""; - }; - 023447D0292DE60400B9457C /* ViewControllers */ = { - isa = PBXGroup; - children = ( - 9A6DE3522888E2E300EB2F3F /* PlayerViewController.swift */, - ); - path = ViewControllers; - sourceTree = ""; - }; - 023447D1292DE60900B9457C /* ViewModels */ = { - isa = PBXGroup; - children = ( - 9A6DE35C2889AF1000EB2F3F /* PlayerReactor.swift */, - ); - path = ViewModels; - sourceTree = ""; - }; - 023F420D2936EB9A00D41163 /* App */ = { - isa = PBXGroup; - children = ( - 9A541B6828220A72001B57FD /* AppDelegate.swift */, - 9A541B6A28220A72001B57FD /* SceneDelegate.swift */, - 9A99AA09285824DF00629C4A /* AppAppearance.swift */, - ); - path = App; - sourceTree = ""; - }; - 9A4B4C3828503A6100CC687C /* Models */ = { - isa = PBXGroup; - children = ( - 9AF0419728505B1C00C51449 /* Items */, - 9A4B4C3628503A0400CC687C /* DailyTask.swift */, - 9A4B4C32285033B300CC687C /* Fruit.swift */, - 9AF0423F2856F4C000C51449 /* Hemisphere.swift */, - 9AF04226285313ED00C51449 /* UserInfo.swift */, - 9A4B4C34285034BA00CC687C /* Villager.swift */, - ); - path = Models; - sourceTree = ""; - }; - 9A541B5C28220A72001B57FD = { - isa = PBXGroup; - children = ( - 9A541B6728220A72001B57FD /* Animal-Crossing-Wiki */, - 9AF042342856C86600C51449 /* AnimalCrossingWikiTests */, - 9A541B6628220A72001B57FD /* Products */, - ); - sourceTree = ""; - }; - 9A541B6628220A72001B57FD /* Products */ = { - isa = PBXGroup; - children = ( - 9A541B6528220A72001B57FD /* Animal-Crossing-Wiki.app */, - 9AF042332856C86600C51449 /* AnimalCrossingWikiTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 9A541B6728220A72001B57FD /* Animal-Crossing-Wiki */ = { - isa = PBXGroup; - children = ( - 9A836EF828AE48E000B5A74A /* Resources */, - 9A836EFA28AE491500B5A74A /* Sources */, - 9A541B7628220A73001B57FD /* Info.plist */, - 9A62CFE3287D7C56005D737D /* Localizable.strings */, - 9A62CFE9287DB9F9005D737D /* InfoPlist.strings */, - ); - path = "Animal-Crossing-Wiki"; - sourceTree = ""; - }; - 9A6891A028335B250061AAF1 /* Protocol */ = { - isa = PBXGroup; - children = ( - 9A68919A28335AE90061AAF1 /* APIProvider.swift */, - 9A68919C28335AFF0061AAF1 /* APIRequest.swift */, - ); - path = Protocol; - sourceTree = ""; - }; - 9A6891A128335B2D0061AAF1 /* Networking */ = { - isa = PBXGroup; - children = ( - 9A6891A028335B250061AAF1 /* Protocol */, - 9A6891A5283361F60061AAF1 /* Request */, - 9A6891AA283366B10061AAF1 /* Response */, - 9A6891AB283367180061AAF1 /* Utilities */, - 9A68919828335ADD0061AAF1 /* DefaultAPIProvider.swift */, - ); - path = Networking; - sourceTree = ""; - }; - 9A6891A5283361F60061AAF1 /* Request */ = { - isa = PBXGroup; - children = ( - 023447CD292DE2CA00B9457C /* Clothes */, - 023447CB292DD15700B9457C /* Furniture */, - 023447C9292DCFCC00B9457C /* Museum */, - 9A6891AC283368EE0061AAF1 /* TurnipRequest.swift */, - 9A6891A3283361F20061AAF1 /* VillagersRequest.swift */, - 023447D4292E064C00B9457C /* ReactionsRequest.swift */, - ); - path = Request; - sourceTree = ""; - }; - 9A6891AA283366B10061AAF1 /* Response */ = { - isa = PBXGroup; - children = ( - 023447CC292DE2C400B9457C /* Clothes */, - 023447CA292DD06B00B9457C /* Furniture */, - 023447C8292DCF8400B9457C /* Museum */, - 9A6891AE2833690A0061AAF1 /* TurnipResponseDTO.swift */, - 9A6891A6283362C90061AAF1 /* VillagersResponseDTO.swift */, - 023447D6292E067400B9457C /* ReactionsResponseDTO.swift */, - ); - path = Response; - sourceTree = ""; - }; - 9A6891AB283367180061AAF1 /* Utilities */ = { - isa = PBXGroup; - children = ( - 9A1DB1D82840857300689F11 /* APIError.swift */, - 9A6891A8283366220061AAF1 /* EnvironmentsVariable.swift */, - ); - path = Utilities; - sourceTree = ""; - }; - 9A6A2EC4287A7A5F007D2EEA /* Colletion */ = { - isa = PBXGroup; - children = ( - 9A6A2ECC287A7EFF007D2EEA /* Coordinator */, - 023447CE292DE5A500B9457C /* ViewControllers */, - 9A6A2ECB287A7EF8007D2EEA /* ViewModel */, - 9A6A2ED3287AA21A007D2EEA /* Views */, - ); - name = Colletion; - path = Catalog; - sourceTree = ""; - }; - 9A6A2ECB287A7EF8007D2EEA /* ViewModel */ = { - isa = PBXGroup; - children = ( - 9A7ACF14287EC2E9001D47CB /* CollectionReactor.swift */, - 9A7ACF13287EC2E9001D47CB /* CollectionProgressReactor.swift */, - ); - name = ViewModel; - path = ../Collection/ViewModels; - sourceTree = ""; - }; - 9A6A2ECC287A7EFF007D2EEA /* Coordinator */ = { - isa = PBXGroup; - children = ( - 023447D2292DE70F00B9457C /* CollectionCoordinator.swift */, - ); - name = Coordinator; - path = ../Collection/Coordinator; - sourceTree = ""; - }; - 9A6A2ED3287AA21A007D2EEA /* Views */ = { - isa = PBXGroup; - children = ( - 9A7ACF18287EC2F3001D47CB /* ItemProgressRow.swift */, - 9A7ACF17287EC2F3001D47CB /* ItemProgressRow.xib */, - ); - name = Views; - path = ../Collection/Views; - sourceTree = ""; - }; - 9A6CB3F92872A4B500B368D4 /* Coordinator */ = { - isa = PBXGroup; - children = ( - 9A7ACEF9287EC25B001D47CB /* CatalogCoordinator.swift */, - ); - name = Coordinator; - sourceTree = ""; - }; - 9A6CB3FC2872A57100B368D4 /* ViewModels */ = { - isa = PBXGroup; - children = ( - 9A7ACEF1287EC239001D47CB /* CatalogReactor.swift */, - 9A7ACEF3287EC239001D47CB /* CatalogCellReactor.swift */, - 9A7ACEF4287EC239001D47CB /* ItemsReactor.swift */, - 9A7ACEF2287EC239001D47CB /* ItemDetailReactor.swift */, - ); - name = ViewModels; - sourceTree = ""; - }; - 9A6DE35F2889AFB400EB2F3F /* MusicPlayer */ = { - isa = PBXGroup; - children = ( - 023447D0292DE60400B9457C /* ViewControllers */, - 023447D1292DE60900B9457C /* ViewModels */, - 023447CF292DE5FD00B9457C /* Views */, - 9A6DE368288AE25400EB2F3F /* PlayerMode.swift */, - ); - path = MusicPlayer; - sourceTree = ""; - }; - 9A7ACED6287EC04B001D47CB /* Catalog */ = { - isa = PBXGroup; - children = ( - 9A6CB3F92872A4B500B368D4 /* Coordinator */, - 9AD343FA2876BF6F008A3D6D /* ViewControllers */, - 9A6CB3FC2872A57100B368D4 /* ViewModels */, - 9AD343E22874282A008A3D6D /* Views */, - ); - path = Catalog; - sourceTree = ""; - }; - 9A7ACF1B287EC3F0001D47CB /* Utility */ = { - isa = PBXGroup; - children = ( - 9A99AA84286AE22200629C4A /* AboutItem.swift */, - 9A7ACF20287EC459001D47CB /* HapticManager.swift */, - 9A7ACF21287EC459001D47CB /* Items.swift */, - 9A6DE3602889B18800EB2F3F /* MusicPlayerManager.swift */, - ); - path = Utility; - sourceTree = ""; - }; - 9A836EF828AE48E000B5A74A /* Resources */ = { - isa = PBXGroup; - children = ( - 9A541B7328220A73001B57FD /* LaunchScreen.storyboard */, - 9A541B7128220A73001B57FD /* Assets.xcassets */, - ); - path = Resources; - sourceTree = ""; - }; - 9A836EFA28AE491500B5A74A /* Sources */ = { - isa = PBXGroup; - children = ( - 023F420D2936EB9A00D41163 /* App */, - 9AF041CD2851DDE700C51449 /* CoreDataStorage */, - 9AF041A42851ADFF00C51449 /* Extension */, - 9A4B4C3828503A6100CC687C /* Models */, - 9A6891A128335B2D0061AAF1 /* Networking */, - 9A836EFB28AE498300B5A74A /* Presentation */, - 9A7ACF1B287EC3F0001D47CB /* Utility */, - 9A99AA072858248600629C4A /* AppCoordinator.swift */, - 9A99AA052858247700629C4A /* Coordinator.swift */, - ); - path = Sources; - sourceTree = ""; - }; - 9A836EFB28AE498300B5A74A /* Presentation */ = { - isa = PBXGroup; - children = ( - 9A7ACED6287EC04B001D47CB /* Catalog */, - 9A6A2EC4287A7A5F007D2EEA /* Colletion */, - 9A99AA29285890D500629C4A /* Dashboard */, - 9A6DE35F2889AFB400EB2F3F /* MusicPlayer */, - 9A99AA88286C17B100629C4A /* Villagers */, - ); - path = Presentation; - sourceTree = ""; - }; - 9A99AA29285890D500629C4A /* Dashboard */ = { - isa = PBXGroup; - children = ( - 9A99AA4E285B11F300629C4A /* Coordinator */, - 9AD343F82876BF50008A3D6D /* ViewControllers */, - 9A99AA6B28618C8500629C4A /* ViewModels */, - 9A99AA4D285B11DA00629C4A /* Views */, - ); - path = Dashboard; - sourceTree = ""; - }; - 9A99AA2A285890F400629C4A /* shared */ = { - isa = PBXGroup; - children = ( - 9A455C3C28975F73009A14A9 /* EmptyView.swift */, - 9A99AA5F28603CB800629C4A /* IconCell.swift */, - 9A99AA6028603CB800629C4A /* IconCell.xib */, - 9A99AA53285C341E00629C4A /* InfoContentView.swift */, - 9A3DE3C928869137006EECF7 /* LoadingView.swift */, - 9A99AA3B285AE2FC00629C4A /* ProgressBar.swift */, - 9A99AA372859F74900629C4A /* ProgressView.swift */, - 9A99AA1F28587A7500629C4A /* SectionHeaderView.swift */, - 9A99AA45285AF1D500629C4A /* SectionsScrollView.swift */, - 9A99AA1D2858743F00629C4A /* SectionView.swift */, - ); - path = shared; - sourceTree = ""; - }; - 9A99AA4D285B11DA00629C4A /* Views */ = { - isa = PBXGroup; - children = ( - 9A99AA2A285890F400629C4A /* shared */, - 9A6DC208287C7B42004EEC41 /* AppSettingView.swift */, - 9A99AA392859F9A300629C4A /* CollectionProgressView.swift */, - 9A99AA5928602F4A00629C4A /* CustomTaskView.swift */, - 9A99AA51285C32C300629C4A /* PreferencesView.swift */, - 9A99AA2B28597B7500629C4A /* TodaysTasksView.swift */, - 9A99AA252858827900629C4A /* UserInfoView.swift */, - 9A99AA352859C8BD00629C4A /* VillagersView.swift */, - ); - path = Views; - sourceTree = ""; - }; - 9A99AA4E285B11F300629C4A /* Coordinator */ = { - isa = PBXGroup; - children = ( - 9A99AA49285B04D900629C4A /* DashboardCoordinator.swift */, - ); - path = Coordinator; - sourceTree = ""; - }; - 9A99AA6B28618C8500629C4A /* ViewModels */ = { - isa = PBXGroup; - children = ( - 9A6DC204287C6199004EEC41 /* AboutReactor.swift */, - 9A6DC20A287D0AC5004EEC41 /* AppSettingReactor.swift */, - 9A6A2ED6287BE71A007D2EEA /* CollectionProgressSectionReactor.swift */, - 9A99AA792865CA9300629C4A /* CustomTaskReactor.swift */, - 9A6A2ED8287BEB76007D2EEA /* DashboardReactor.swift */, - 9A99AA6C2861945B00629C4A /* PreferencesReactor.swift */, - 9AD343F628767649008A3D6D /* ProgressReactor.swift */, - 9A99AA772865B82A00629C4A /* TasksEditReactor.swift */, - 9A99AA7528657A9900629C4A /* TodaysTasksSectionReactor.swift */, - 9A2B0FD82897C84F00285C77 /* UserInfoReactor.swift */, - 9A99AA7328656D1600629C4A /* VillagersSectionReactor.swift */, - ); - path = ViewModels; - sourceTree = ""; - }; - 9A99AA722864435100629C4A /* EntityMapping */ = { - isa = PBXGroup; - children = ( - 9A99AA702864433900629C4A /* UserCollectionEntity+Mapping.swift */, - ); - path = EntityMapping; - sourceTree = ""; - }; - 9A99AA88286C17B100629C4A /* Villagers */ = { - isa = PBXGroup; - children = ( - 9A99AA93286C1E2600629C4A /* Coordinator */, - 9AD343F92876BF5E008A3D6D /* ViewControllers */, - 9A99AA96286C1F7000629C4A /* ViewModels */, - 9A99AA8B286C182D00629C4A /* Views */, - ); - path = Villagers; - sourceTree = ""; - }; - 9A99AA8B286C182D00629C4A /* Views */ = { - isa = PBXGroup; - children = ( - 9A7ACEE3287EC194001D47CB /* VillagerDetailView.swift */, - 9A7ACEE5287EC194001D47CB /* VillagerHouseView.swift */, - 9A7ACEE4287EC194001D47CB /* VillagersCell.swift */, - 9A7ACEE6287EC194001D47CB /* VillagersCell.xib */, - ); - name = Views; - sourceTree = ""; - }; - 9A99AA93286C1E2600629C4A /* Coordinator */ = { - isa = PBXGroup; - children = ( - 9A7ACEDB287EC180001D47CB /* VillagersCoordinator.swift */, - ); - name = Coordinator; - sourceTree = ""; - }; - 9A99AA96286C1F7000629C4A /* ViewModels */ = { - isa = PBXGroup; - children = ( - 9A7ACEDF287EC188001D47CB /* VillagerDetailReactor.swift */, - 9A7ACEDD287EC188001D47CB /* VillagersCellReactor.swift */, - 9A7ACEDE287EC188001D47CB /* VillagersReactor.swift */, - ); - name = ViewModels; - sourceTree = ""; - }; - 9AD343E22874282A008A3D6D /* Views */ = { - isa = PBXGroup; - children = ( - 9A7ACF01287EC26F001D47CB /* CalendarView.swift */, - 9A7ACEFF287EC26F001D47CB /* CatalogCell.swift */, - 9A7ACEFC287EC26F001D47CB /* CatalogCell.xib */, - 9A7ACEFE287EC26F001D47CB /* CategoryRow.swift */, - 9A7ACEFD287EC26F001D47CB /* CategoryRow.xib */, - 9A7ACF03287EC26F001D47CB /* ItemBellsView.swift */, - 9A7ACEFB287EC26F001D47CB /* ItemDetailInfoView.swift */, - 9A7ACF3228800318001D47CB /* ItemKeywordView.swift */, - 9A3DE3D32887DD71006EECF7 /* ItemMaterialsView.swift */, - 9A7ACF00287EC26F001D47CB /* ItemOtherInfoView.swift */, - 9A7ACF02287EC26F001D47CB /* ItemSeasonView.swift */, - 9A7ACF28287FD984001D47CB /* ItemVariantsView.swift */, - 9A7ACF2E288000D7001D47CB /* KeywordCell.swift */, - 9A7ACF2F288000D7001D47CB /* KeywordCell.xib */, - 9A6DE362288A9BFB00EB2F3F /* PlayerView.swift */, - 9A7ACF2A287FDA07001D47CB /* VariantCell.swift */, - 9A7ACF2B287FDA07001D47CB /* VariantCell.xib */, - ); - path = Views; - sourceTree = ""; - }; - 9AD343EF28766417008A3D6D /* UI */ = { - isa = PBXGroup; - children = ( - 9A99AA4F285C1C3500629C4A /* UIButton+extension.swift */, - 9A99AA632860401400629C4A /* UICollectionView+extension.swift */, - 9A99AA0B285824F000629C4A /* UIColor+extension.swift */, - 9A99AA1328584C9B00629C4A /* UIFont+extension.swift */, - 9A99AA6E28643CA700629C4A /* UIImage+extension.swift */, - 9A1DB1D1284069DD00689F11 /* UIImageView+extension.swift */, - 9AD343F028766429008A3D6D /* UILabel+extension.swift */, - 9A6CB3F0286EB57A00B368D4 /* UIMenu+extension.swift */, - 9A3DE3CB2886AFDA006EECF7 /* UINavigationItem.swift */, - 9A99AA232858803D00629C4A /* UIStackView+extension.swift */, - 9A62D74028783A4D0047750F /* UITableView+extension.swift */, - 9A99AA212858802B00629C4A /* UIView+extension.swift */, - 9A99AA55285C422200629C4A /* UIViewController+extension.swift */, - ); - path = UI; - sourceTree = ""; - }; - 9AD343F82876BF50008A3D6D /* ViewControllers */ = { - isa = PBXGroup; - children = ( - 9A99AA7D286AC4F900629C4A /* AboutViewController.swift */, - 9A99AA5B2860319100629C4A /* CustomTaskViewController.swift */, - 9A541B6C28220A72001B57FD /* DashboardViewController.swift */, - 9A99AA652860431A00629C4A /* IconChooserViewController.swift */, - 9A99AA43285AF03D00629C4A /* PreferencesViewController.swift */, - 9A99AA57285C6FF900629C4A /* TaskEditViewController.swift */, - ); - path = ViewControllers; - sourceTree = ""; - }; - 9AD343F92876BF5E008A3D6D /* ViewControllers */ = { - isa = PBXGroup; - children = ( - 9A7ACED8287EC16E001D47CB /* VillagerDetailViewController.swift */, - 9A7ACED7287EC16E001D47CB /* VillagersViewController.swift */, - ); - name = ViewControllers; - sourceTree = ""; - }; - 9AD343FA2876BF6F008A3D6D /* ViewControllers */ = { - isa = PBXGroup; - children = ( - 9A7ACEEC287EC20B001D47CB /* CatalogViewController.swift */, - 9A7ACEED287EC20B001D47CB /* ItemsViewController.swift */, - 9A7ACEEB287EC20B001D47CB /* ItemDetailViewController.swift */, - ); - name = ViewControllers; - sourceTree = ""; - }; - 9AF0419728505B1C00C51449 /* Items */ = { - isa = PBXGroup; - children = ( - 9AF0418B2850451100C51449 /* Category.swift */, - 9AF0418928503F7900C51449 /* Item.swift */, - 9AF042032852F2F500C51449 /* Keyword.swift */, - ); - path = Items; - sourceTree = ""; - }; - 9AF041A42851ADFF00C51449 /* Extension */ = { - isa = PBXGroup; - children = ( - 9AD343EF28766417008A3D6D /* UI */, - 9A3CFB44288128CD00B0FFCB /* Array+extension.swift */, - 9A5D829F2873D87000EC8CE3 /* Collection+extension.swift */, - 9A99AA3D285AEA1700629C4A /* Date+extension.swift */, - 9AD343EB28746593008A3D6D /* Int+extension.swift */, - 9A455C3A28957569009A14A9 /* Reactor+extension.swift */, - 9A6CB3F228728B3100B368D4 /* String+extension.swift */, - ); - path = Extension; - sourceTree = ""; - }; - 9AF041CD2851DDE700C51449 /* CoreDataStorage */ = { - isa = PBXGroup; - children = ( - 9AF042222853132300C51449 /* DailyTaskStorage */, - 9AF0421628530D6E00C51449 /* ItemsStorage */, - 9AF0422A2853160500C51449 /* UserInfoStorage */, - 9AF0421228530CDB00C51449 /* VillagersHouseStorage */, - 9AF0421A28530DBD00C51449 /* VillagersLikeStorage */, - 9AF041AB2851B20D00C51449 /* CoreDataStorage.swift */, - 9AF0418528503B9400C51449 /* CoreDataStorage.xcdatamodeld */, - ); - path = CoreDataStorage; - sourceTree = ""; - }; - 9AF0421228530CDB00C51449 /* VillagersHouseStorage */ = { - isa = PBXGroup; - children = ( - 9AF0421328530CE200C51449 /* EntityMapping */, - 9AF0420728530C2D00C51449 /* CoreDataVillagersHouseStorage.swift */, - 9AF0421428530CFE00C51449 /* VillagersHouseStorage.swift */, - ); - path = VillagersHouseStorage; - sourceTree = ""; - }; - 9AF0421328530CE200C51449 /* EntityMapping */ = { - isa = PBXGroup; - children = ( - 9AF0420D28530C8600C51449 /* VillagersHouseEntity+Mapping.swift */, - ); - path = EntityMapping; - sourceTree = ""; - }; - 9AF0421628530D6E00C51449 /* ItemsStorage */ = { - isa = PBXGroup; - children = ( - 9AF0421728530D8000C51449 /* EntityMapping */, - 9AF0420928530C3800C51449 /* CoreDataItemsStorage.swift */, - 9AF0421828530D8D00C51449 /* ItemsStorage.swift */, - ); - path = ItemsStorage; - sourceTree = ""; - }; - 9AF0421728530D8000C51449 /* EntityMapping */ = { - isa = PBXGroup; - children = ( - 9AF0420F28530CA300C51449 /* ItemEntity+Mapping.swift */, - ); - path = EntityMapping; - sourceTree = ""; - }; - 9AF0421A28530DBD00C51449 /* VillagersLikeStorage */ = { - isa = PBXGroup; - children = ( - 9AF0421B28530DC200C51449 /* EntityMapping */, - 9AF0420528530C1E00C51449 /* CoreDataVillagersLikeStorage.swift */, - 9AF0421C28530DD100C51449 /* VillagersLikeStorage.swift */, - ); - path = VillagersLikeStorage; - sourceTree = ""; - }; - 9AF0421B28530DC200C51449 /* EntityMapping */ = { - isa = PBXGroup; - children = ( - 9AF0420B28530C5F00C51449 /* VillagersLikeEntity+Mapping.swift */, - ); - path = EntityMapping; - sourceTree = ""; - }; - 9AF042222853132300C51449 /* DailyTaskStorage */ = { - isa = PBXGroup; - children = ( - 9AF042232853132800C51449 /* EntityMapping */, - 9AF0421E285312FB00C51449 /* CoreDataDailyTaskStorage.swift */, - 9AF042242853133200C51449 /* DailyTaskStorage.swift */, - ); - path = DailyTaskStorage; - sourceTree = ""; - }; - 9AF042232853132800C51449 /* EntityMapping */ = { - isa = PBXGroup; - children = ( - 9AF042202853131400C51449 /* DailyTaskEntity+Mapping.swift */, - ); - path = EntityMapping; - sourceTree = ""; - }; - 9AF0422A2853160500C51449 /* UserInfoStorage */ = { - isa = PBXGroup; - children = ( - 9A99AA722864435100629C4A /* EntityMapping */, - 9AF04228285315FA00C51449 /* CoreDataUserInfoStorage.swift */, - 9AF0422B2853161500C51449 /* UserInfoStorage.swift */, - ); - path = UserInfoStorage; - sourceTree = ""; - }; - 9AF042342856C86600C51449 /* AnimalCrossingWikiTests */ = { - isa = PBXGroup; - children = ( - 9AF042352856C86600C51449 /* AnimalCrossingWikiTests.swift */, - ); - path = AnimalCrossingWikiTests; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 9A541B6428220A72001B57FD /* Animal-Crossing-Wiki */ = { - isa = PBXNativeTarget; - buildConfigurationList = 9A541B7928220A73001B57FD /* Build configuration list for PBXNativeTarget "Animal-Crossing-Wiki" */; - buildPhases = ( - 9A541B6128220A72001B57FD /* Sources */, - 9A541B6228220A72001B57FD /* Frameworks */, - 9A541B6328220A72001B57FD /* Resources */, - 9A541B7C28223B23001B57FD /* Run SwiftLint */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Animal-Crossing-Wiki"; - packageProductDependencies = ( - 9A541B8028225F8E001B57FD /* RxCocoa */, - 9A541B8228225F8E001B57FD /* RxRelay */, - 9A541B8428225F8E001B57FD /* RxSwift */, - 9A1DB1CD2840504B00689F11 /* Kingfisher */, - 9A1DB1D6284081E400689F11 /* Alamofire */, - 9A99AA80286ACBBC00629C4A /* Differentiator */, - 9A99AA82286ACBBC00629C4A /* RxDataSources */, - 9A688E1E288FAFB300FFFB69 /* ReactorKit */, - ); - productName = "Animal-Crossing-Wiki"; - productReference = 9A541B6528220A72001B57FD /* Animal-Crossing-Wiki.app */; - productType = "com.apple.product-type.application"; - }; - 9AF042322856C86600C51449 /* AnimalCrossingWikiTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 9AF0423B2856C86600C51449 /* Build configuration list for PBXNativeTarget "AnimalCrossingWikiTests" */; - buildPhases = ( - 9AF0422F2856C86600C51449 /* Sources */, - 9AF042302856C86600C51449 /* Frameworks */, - 9AF042312856C86600C51449 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 9AF042382856C86600C51449 /* PBXTargetDependency */, - ); - name = AnimalCrossingWikiTests; - productName = AnimalCrossingWikiTests; - productReference = 9AF042332856C86600C51449 /* AnimalCrossingWikiTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 9A541B5D28220A72001B57FD /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = 1; - LastSwiftUpdateCheck = 1320; - LastUpgradeCheck = 1320; - TargetAttributes = { - 9A541B6428220A72001B57FD = { - CreatedOnToolsVersion = 13.2.1; - }; - 9AF042322856C86600C51449 = { - CreatedOnToolsVersion = 13.2.1; - TestTargetID = 9A541B6428220A72001B57FD; - }; - }; - }; - buildConfigurationList = 9A541B6028220A72001B57FD /* Build configuration list for PBXProject "Animal-Crossing-Wiki" */; - compatibilityVersion = "Xcode 13.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ko, - ); - mainGroup = 9A541B5C28220A72001B57FD; - packageReferences = ( - 9A541B7F28225F8E001B57FD /* XCRemoteSwiftPackageReference "RxSwift" */, - 9A1DB1CC2840504B00689F11 /* XCRemoteSwiftPackageReference "Kingfisher" */, - 9A1DB1D5284081E400689F11 /* XCRemoteSwiftPackageReference "Alamofire" */, - 9A4B4C2B284EEA2D00CC687C /* XCRemoteSwiftPackageReference "AnyCodable" */, - 9A99AA7F286ACBBC00629C4A /* XCRemoteSwiftPackageReference "RxDataSources" */, - 9A688E1D288FAFB300FFFB69 /* XCRemoteSwiftPackageReference "ReactorKit" */, - ); - productRefGroup = 9A541B6628220A72001B57FD /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 9A541B6428220A72001B57FD /* Animal-Crossing-Wiki */, - 9AF042322856C86600C51449 /* AnimalCrossingWikiTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 9A541B6328220A72001B57FD /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9A541B7528220A73001B57FD /* LaunchScreen.storyboard in Resources */, - 9A7ACEEA287EC194001D47CB /* VillagersCell.xib in Resources */, - 9A541B7228220A73001B57FD /* Assets.xcassets in Resources */, - 9A99AA6228603CB800629C4A /* IconCell.xib in Resources */, - 9A7ACF19287EC2F3001D47CB /* ItemProgressRow.xib in Resources */, - 9A7ACF2D287FDA07001D47CB /* VariantCell.xib in Resources */, - 9A7ACF05287EC26F001D47CB /* CatalogCell.xib in Resources */, - 9A6DE367288ADAC300EB2F3F /* SongRow.xib in Resources */, - 9A62CFE7287DB9F9005D737D /* InfoPlist.strings in Resources */, - 9A7ACF31288000D7001D47CB /* KeywordCell.xib in Resources */, - 9A7ACF06287EC26F001D47CB /* CategoryRow.xib in Resources */, - 9A62CFE1287D7C56005D737D /* Localizable.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9AF042312856C86600C51449 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 9A541B7C28223B23001B57FD /* Run SwiftLint */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Run SwiftLint"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if test -d \"/opt/homebrew/bin/\"; then\n PATH=\"/opt/homebrew/bin/:${PATH}\"\nfi\n\nexport PATH\n\nif which swiftlint >/dev/null; then\n swiftlint\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 9A541B6128220A72001B57FD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9A7ACF10287EC2D3001D47CB /* CollectionViewController.swift in Sources */, - 9AF042212853131400C51449 /* DailyTaskEntity+Mapping.swift in Sources */, - 9A836EF328AE0CAF00B5A74A /* SongsRequest.swift in Sources */, - 023349FA29274D1700C7080F /* TopsRequest.swift in Sources */, - 9A6891BB2833787D0061AAF1 /* FossilsResponseDTO.swift in Sources */, - 02334A0C292B469E00C7080F /* AccessoriesResponseDTO.swift in Sources */, - 9A68919D28335AFF0061AAF1 /* APIRequest.swift in Sources */, - 9AF0421028530CA300C51449 /* ItemEntity+Mapping.swift in Sources */, - 9A7ACEF0287EC20B001D47CB /* ItemsViewController.swift in Sources */, - 9A3CFB3B2880790C00B0FFCB /* RugsRequest.swift in Sources */, - 9A6891B5283376E50061AAF1 /* BugRequest.swift in Sources */, - 9A7ACEF7287EC239001D47CB /* CatalogCellReactor.swift in Sources */, - 02334A02292769BF00C7080F /* DressUpRequest.swift in Sources */, - 9A99AA362859C8BD00629C4A /* VillagersView.swift in Sources */, - 9A7ACF30288000D7001D47CB /* KeywordCell.swift in Sources */, - 9A7ACF04287EC26F001D47CB /* ItemDetailInfoView.swift in Sources */, - 9A6DE3612889B18800EB2F3F /* MusicPlayerManager.swift in Sources */, - 9A7ACEE9287EC194001D47CB /* VillagerHouseView.swift in Sources */, - 9A99AA3C285AE2FC00629C4A /* ProgressBar.swift in Sources */, - 023447D7292E067400B9457C /* ReactionsResponseDTO.swift in Sources */, - 9A3CFB2928805C4400B0FFCB /* MiscellaneousResponseDTO.swift in Sources */, - 9A6DE369288AE25400EB2F3F /* PlayerMode.swift in Sources */, - 9AF041AC2851B20D00C51449 /* CoreDataStorage.swift in Sources */, - 9A99AA6F28643CA700629C4A /* UIImage+extension.swift in Sources */, - 9A99AA7A2865CA9300629C4A /* CustomTaskReactor.swift in Sources */, - 9A541B6D28220A72001B57FD /* DashboardViewController.swift in Sources */, - 9A6A2ED9287BEB76007D2EEA /* DashboardReactor.swift in Sources */, - 9A4B4C3728503A0400CC687C /* DailyTask.swift in Sources */, - 9A6DE363288A9BFB00EB2F3F /* PlayerView.swift in Sources */, - 9A6891A4283361F20061AAF1 /* VillagersRequest.swift in Sources */, - 9A541B6928220A72001B57FD /* AppDelegate.swift in Sources */, - 9A7ACEE8287EC194001D47CB /* VillagersCell.swift in Sources */, - 9A6891C3283380D50061AAF1 /* ArtResponseDTO.swift in Sources */, - 023447DB292E179C00B9457C /* FencingResponseDTO.swift in Sources */, - 02334A0A292B468100C7080F /* AccessoriesRequest.swift in Sources */, - 9A99AA5A28602F4A00629C4A /* CustomTaskView.swift in Sources */, - 9A7ACEDC287EC180001D47CB /* VillagersCoordinator.swift in Sources */, - 9A7ACEF8287EC239001D47CB /* ItemsReactor.swift in Sources */, - 9A6DE3592889271200EB2F3F /* MinimizePlayerView.swift in Sources */, - 02334A1A292B66DF00C7080F /* UmbrellasRequest.swift in Sources */, - 9A6891AD283368EE0061AAF1 /* TurnipRequest.swift in Sources */, - 02334A1E292B6B2500C7080F /* WetSuitRequest.swift in Sources */, - 9A62D74128783A4D0047750F /* UITableView+extension.swift in Sources */, - 9A99AA46285AF1D600629C4A /* SectionsScrollView.swift in Sources */, - 9A6891B3283371E20061AAF1 /* FishResponseDTO.swift in Sources */, - 02334A1C292B66F900C7080F /* UmbrellasResponseDTO.swift in Sources */, - 9A3CFB3328806EDB00B0FFCB /* FloorsResponseDTO.swift in Sources */, - 9A541B6B28220A72001B57FD /* SceneDelegate.swift in Sources */, - 9A7ACEE1287EC188001D47CB /* VillagersReactor.swift in Sources */, - 9A6CB3F1286EB57A00B368D4 /* UIMenu+extension.swift in Sources */, - 9A836EF528AE0CC200B5A74A /* SongResponseDTO.swift in Sources */, - 9A99AA3A2859F9A300629C4A /* CollectionProgressView.swift in Sources */, - 9AF0418C2850451100C51449 /* Category.swift in Sources */, - 02334A062927701200C7080F /* HeadwearRequest.swift in Sources */, - 9A6891A7283362C90061AAF1 /* VillagersResponseDTO.swift in Sources */, - 9A6DC20B287D0AC5004EEC41 /* AppSettingReactor.swift in Sources */, - 9A7ACEE7287EC194001D47CB /* VillagerDetailView.swift in Sources */, - 023349FC29274D3500C7080F /* TopsResponseDTO.swift in Sources */, - 9A99AA062858247700629C4A /* Coordinator.swift in Sources */, - 9A99AA2C28597B7500629C4A /* TodaysTasksView.swift in Sources */, - 023447D5292E064C00B9457C /* ReactionsRequest.swift in Sources */, - 9A3DE3D02887B7E6006EECF7 /* RecipesRequest.swift in Sources */, - 02334A14292B4E1000C7080F /* ShoesRequest.swift in Sources */, - 9A4B4C33285033B300CC687C /* Fruit.swift in Sources */, - 9A6891AF2833690A0061AAF1 /* TurnipResponseDTO.swift in Sources */, - 9A3CFB49288295CA00B0FFCB /* CeilingDecorRequest.swift in Sources */, - 9A7ACEE2287EC188001D47CB /* VillagerDetailReactor.swift in Sources */, - 9A99AA082858248600629C4A /* AppCoordinator.swift in Sources */, - 9A6DE3532888E2E300EB2F3F /* PlayerViewController.swift in Sources */, - 9AF0421D28530DD200C51449 /* VillagersLikeStorage.swift in Sources */, - 9A99AA54285C341E00629C4A /* InfoContentView.swift in Sources */, - 9A99AA6D2861945B00629C4A /* PreferencesReactor.swift in Sources */, - 9AF042402856F4C000C51449 /* Hemisphere.swift in Sources */, - 9A3CFB47288291C300B0FFCB /* CeilingDecorResponseDTO.swift in Sources */, - 9A7ACEF5287EC239001D47CB /* CatalogReactor.swift in Sources */, - 9A7ACF07287EC26F001D47CB /* CategoryRow.swift in Sources */, - 9A99AA4A285B04D900629C4A /* DashboardCoordinator.swift in Sources */, - 9A7ACEEE287EC20B001D47CB /* ItemDetailViewController.swift in Sources */, - 9A99AA52285C32C300629C4A /* PreferencesView.swift in Sources */, - 9AF04227285313ED00C51449 /* UserInfo.swift in Sources */, - 9A99AA7E286AC4F900629C4A /* AboutViewController.swift in Sources */, - 02334A18292B55C700C7080F /* BagsResponseDTO.swift in Sources */, - 9A2B0FD92897C84F00285C77 /* UserInfoReactor.swift in Sources */, - 02334A082927702600C7080F /* HeadwearResponseDTO.swift in Sources */, - 9AF0421528530CFE00C51449 /* VillagersHouseStorage.swift in Sources */, - 9A7ACEE0287EC188001D47CB /* VillagersCellReactor.swift in Sources */, - 9A99AA642860401400629C4A /* UICollectionView+extension.swift in Sources */, - 9AF0420828530C2D00C51449 /* CoreDataVillagersHouseStorage.swift in Sources */, - 9A99AA5C2860319100629C4A /* CustomTaskViewController.swift in Sources */, - 9A455C3B28957569009A14A9 /* Reactor+extension.swift in Sources */, - 9A3CFB392880787100B0FFCB /* RugsResponseDTO.swift in Sources */, - 9A3CFB3D2880809100B0FFCB /* OtherResponseDTO.swift in Sources */, - 9A99AA44285AF03D00629C4A /* PreferencesViewController.swift in Sources */, - 9A7ACF0F287EC2D3001D47CB /* CollectionProgressViewController.swift in Sources */, - 9AF0421F285312FB00C51449 /* CoreDataDailyTaskStorage.swift in Sources */, - 9AF04229285315FA00C51449 /* CoreDataUserInfoStorage.swift in Sources */, - 9A99AA56285C422200629C4A /* UIViewController+extension.swift in Sources */, - 9AF0422C2853161500C51449 /* UserInfoStorage.swift in Sources */, - 9A7ACEFA287EC25B001D47CB /* CatalogCoordinator.swift in Sources */, - 9AD343EC28746593008A3D6D /* Int+extension.swift in Sources */, - 02334A00292766AB00C7080F /* BottomsResponseDTO.swift in Sources */, - 9A99AA1E2858743F00629C4A /* SectionView.swift in Sources */, - 9AF0421928530D8D00C51449 /* ItemsStorage.swift in Sources */, - 9A99AA7628657A9900629C4A /* TodaysTasksSectionReactor.swift in Sources */, - 9A1DB1D2284069DD00689F11 /* UIImageView+extension.swift in Sources */, - 023447D9292E178B00B9457C /* FencingReqeust.swift in Sources */, - 9AF042252853133200C51449 /* DailyTaskStorage.swift in Sources */, - 9A6891A9283366220061AAF1 /* EnvironmentsVariable.swift in Sources */, - 9A3DE3CE2887B6F5006EECF7 /* RecipeResponseDTO.swift in Sources */, - 9A7ACF29287FD984001D47CB /* ItemVariantsView.swift in Sources */, - 023447D3292DE70F00B9457C /* CollectionCoordinator.swift in Sources */, - 9A4B4C35285034BA00CC687C /* Villager.swift in Sources */, - 9A455C3D28975F73009A14A9 /* EmptyView.swift in Sources */, - 9AF0420C28530C5F00C51449 /* VillagersLikeEntity+Mapping.swift in Sources */, - 9A7ACF3328800318001D47CB /* ItemKeywordView.swift in Sources */, - 9A7ACEDA287EC16E001D47CB /* VillagerDetailViewController.swift in Sources */, - 9A7ACF23287EC459001D47CB /* Items.swift in Sources */, - 9A3DE3CA28869137006EECF7 /* LoadingView.swift in Sources */, - 9A99AA242858803D00629C4A /* UIStackView+extension.swift in Sources */, - 9A6DE366288ADAC300EB2F3F /* SongRow.swift in Sources */, - 9A6891B9283378630061AAF1 /* FossilsRequest.swift in Sources */, - 9A3CFB2B28805F4000B0FFCB /* MiscellaneousRequest.swift in Sources */, - 9A99AA0A285824DF00629C4A /* AppAppearance.swift in Sources */, - 02334A12292B4DDD00C7080F /* ShoesResponseDTO.swift in Sources */, - 9AF0418828503B9400C51449 /* CoreDataStorage.xcdatamodeld in Sources */, - 9A99AA3E285AEA1700629C4A /* Date+extension.swift in Sources */, - 9A99AA222858802B00629C4A /* UIView+extension.swift in Sources */, - 9A6A2ED7287BE71A007D2EEA /* CollectionProgressSectionReactor.swift in Sources */, - 9A99AA6128603CB800629C4A /* IconCell.swift in Sources */, - 9A7ACF25287F9C87001D47CB /* HousewaresResponseDTO.swift in Sources */, - 9A3CFB2D2880637100B0FFCB /* WallMountedResponseDTO.swift in Sources */, - 9A5D82A02873D87000EC8CE3 /* Collection+extension.swift in Sources */, - 9A7ACF15287EC2E9001D47CB /* CollectionProgressReactor.swift in Sources */, - 9A7ACF0A287EC26F001D47CB /* CalendarView.swift in Sources */, - 9A3CFB35288073AE00B0FFCB /* WallpaperRequest.swift in Sources */, - 9A7ACF09287EC26F001D47CB /* ItemOtherInfoView.swift in Sources */, - 9A3CFB2F2880655900B0FFCB /* WallMountedRequest.swift in Sources */, - 9A99AA712864433900629C4A /* UserCollectionEntity+Mapping.swift in Sources */, - 9A3DE3D42887DD71006EECF7 /* ItemMaterialsView.swift in Sources */, - 9A6891BF283379B80061AAF1 /* SeaCreaturesResponseDTO.swift in Sources */, - 9A6CB3F328728B3100B368D4 /* String+extension.swift in Sources */, - 9A99AA382859F74900629C4A /* ProgressView.swift in Sources */, - 9A6DE35D2889AF1000EB2F3F /* PlayerReactor.swift in Sources */, - 9A6891B7283377010061AAF1 /* BugResponseDTO.swift in Sources */, - 9A7ACF16287EC2E9001D47CB /* CollectionReactor.swift in Sources */, - 9A99AA262858827900629C4A /* UserInfoView.swift in Sources */, - 9A7ACEF6287EC239001D47CB /* ItemDetailReactor.swift in Sources */, - 9A7ACF0B287EC26F001D47CB /* ItemSeasonView.swift in Sources */, - 9A7ACF22287EC459001D47CB /* HapticManager.swift in Sources */, - 9A7ACED9287EC16E001D47CB /* VillagersViewController.swift in Sources */, - 9A7ACEEF287EC20B001D47CB /* CatalogViewController.swift in Sources */, - 9A99AA782865B82A00629C4A /* TasksEditReactor.swift in Sources */, - 9A6891BD283379830061AAF1 /* SeaCreaturesRequest.swift in Sources */, - 9A99AA58285C6FF900629C4A /* TaskEditViewController.swift in Sources */, - 9A3CFB37288076B900B0FFCB /* FloorsRequest.swift in Sources */, - 9A99AA1428584C9B00629C4A /* UIFont+extension.swift in Sources */, - 9A3CFB3128806A8200B0FFCB /* WallpaperResponseDTO.swift in Sources */, - 9A7ACF1A287EC2F3001D47CB /* ItemProgressRow.swift in Sources */, - 02334A04292769DD00C7080F /* DressUpResponseDTO.swift in Sources */, - 9AD343F728767649008A3D6D /* ProgressReactor.swift in Sources */, - 9A68919928335ADD0061AAF1 /* DefaultAPIProvider.swift in Sources */, - 9A99AA7428656D1600629C4A /* VillagersSectionReactor.swift in Sources */, - 9AF0420E28530C8600C51449 /* VillagersHouseEntity+Mapping.swift in Sources */, - 9AF0420628530C1E00C51449 /* CoreDataVillagersLikeStorage.swift in Sources */, - 9A7ACF2C287FDA07001D47CB /* VariantCell.swift in Sources */, - 9A7ACF08287EC26F001D47CB /* CatalogCell.swift in Sources */, - 9AD343F128766429008A3D6D /* UILabel+extension.swift in Sources */, - 9A6DE35B2889327A00EB2F3F /* MaximizePlayerView.swift in Sources */, - 9A6891C1283380CD0061AAF1 /* ArtRequest.swift in Sources */, - 9A99AA50285C1C3500629C4A /* UIButton+extension.swift in Sources */, - 9A7ACF0C287EC26F001D47CB /* ItemBellsView.swift in Sources */, - 9A99AA85286AE22200629C4A /* AboutItem.swift in Sources */, - 02334A16292B52B800C7080F /* BagsRequest.swift in Sources */, - 023349FE2927668400C7080F /* BottomsRequest.swift in Sources */, - 9A68919B28335AE90061AAF1 /* APIProvider.swift in Sources */, - 023349F629261A3800C7080F /* PhotosReqeust.swift in Sources */, - 9A3CFB3F288082AF00B0FFCB /* OtherRequest.swift in Sources */, - 9A6DC205287C6199004EEC41 /* AboutReactor.swift in Sources */, - 9A1DB1D92840857300689F11 /* APIError.swift in Sources */, - 9AF0420A28530C3800C51449 /* CoreDataItemsStorage.swift in Sources */, - 023349F829261A5700C7080F /* PhotosResponseDTO.swift in Sources */, - 9A6891B1283371A60061AAF1 /* FishRequest.swift in Sources */, - 9AF0418A28503F7900C51449 /* Item.swift in Sources */, - 02334A0E292B4A2300C7080F /* SocksRequest.swift in Sources */, - 9A99AA2028587A7500629C4A /* SectionHeaderView.swift in Sources */, - 9A7ACF27287F9F00001D47CB /* HousewaresRequest.swift in Sources */, - 9AF042042852F2F500C51449 /* Keyword.swift in Sources */, - 9A99AA0C285824F000629C4A /* UIColor+extension.swift in Sources */, - 9A3DE3CC2886AFDA006EECF7 /* UINavigationItem.swift in Sources */, - 9A3CFB45288128CD00B0FFCB /* Array+extension.swift in Sources */, - 9A99AA662860431A00629C4A /* IconChooserViewController.swift in Sources */, - 02334A10292B4A2D00C7080F /* SocksResponseDTO.swift in Sources */, - 02334A20292B6B5E00C7080F /* WetSuitResponseDTO.swift in Sources */, - 9A6DC209287C7B42004EEC41 /* AppSettingView.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9AF0422F2856C86600C51449 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9AF042362856C86600C51449 /* AnimalCrossingWikiTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 9AF042382856C86600C51449 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 9A541B6428220A72001B57FD /* Animal-Crossing-Wiki */; - targetProxy = 9AF042372856C86600C51449 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 9A541B7328220A73001B57FD /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 9A541B7428220A73001B57FD /* Base */, - 9A62D73B2877E13C0047750F /* ko */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; - 9A62CFE3287D7C56005D737D /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 9A62CFE2287D7C56005D737D /* en */, - 9A62CFE4287D7C64005D737D /* ko */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - 9A62CFE9287DB9F9005D737D /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 9A62CFE8287DB9F9005D737D /* en */, - 9A62CFEA287DB9FB005D737D /* ko */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 9A541B7728220A73001B57FD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; - CLANG_CXX_LIBRARY = "libc++"; - 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; - GCC_C_LANGUAGE_STANDARD = gnu11; - 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 = 14.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 9A541B7828220A73001B57FD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; - CLANG_CXX_LIBRARY = "libc++"; - 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; - GCC_C_LANGUAGE_STANDARD = gnu11; - 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 = 14.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 9A541B7A28220A73001B57FD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = RCVFD6XLU9; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = "Animal-Crossing-Wiki/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.2.0; - PRODUCT_BUNDLE_IDENTIFIER = leeari.NookPortalPlus; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 9A541B7B28220A73001B57FD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = RCVFD6XLU9; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = "Animal-Crossing-Wiki/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.2.0; - PRODUCT_BUNDLE_IDENTIFIER = leeari.NookPortalPlus; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 9AF042392856C86600C51449 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = RCVFD6XLU9; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.2; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.leeari.AnimalCrossingWiki.net.AnimalCrossingWikiTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Animal-Crossing-Wiki.app/Animal-Crossing-Wiki"; - }; - name = Debug; - }; - 9AF0423A2856C86600C51449 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = RCVFD6XLU9; - GENERATE_INFOPLIST_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.2; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.leeari.AnimalCrossingWiki.net.AnimalCrossingWikiTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Animal-Crossing-Wiki.app/Animal-Crossing-Wiki"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 9A541B6028220A72001B57FD /* Build configuration list for PBXProject "Animal-Crossing-Wiki" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9A541B7728220A73001B57FD /* Debug */, - 9A541B7828220A73001B57FD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 9A541B7928220A73001B57FD /* Build configuration list for PBXNativeTarget "Animal-Crossing-Wiki" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9A541B7A28220A73001B57FD /* Debug */, - 9A541B7B28220A73001B57FD /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 9AF0423B2856C86600C51449 /* Build configuration list for PBXNativeTarget "AnimalCrossingWikiTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 9AF042392856C86600C51449 /* Debug */, - 9AF0423A2856C86600C51449 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - -/* Begin XCRemoteSwiftPackageReference section */ - 9A1DB1CC2840504B00689F11 /* XCRemoteSwiftPackageReference "Kingfisher" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/onevcat/Kingfisher.git"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 7.0.0; - }; - }; - 9A1DB1D5284081E400689F11 /* XCRemoteSwiftPackageReference "Alamofire" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/Alamofire/Alamofire.git"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 5.0.0; - }; - }; - 9A4B4C2B284EEA2D00CC687C /* XCRemoteSwiftPackageReference "AnyCodable" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/Flight-School/AnyCodable.git"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 0.6.5; - }; - }; - 9A541B7F28225F8E001B57FD /* XCRemoteSwiftPackageReference "RxSwift" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/ReactiveX/RxSwift"; - requirement = { - branch = main; - kind = branch; - }; - }; - 9A688E1D288FAFB300FFFB69 /* XCRemoteSwiftPackageReference "ReactorKit" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/ReactorKit/ReactorKit.git"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 3.0.0; - }; - }; - 9A99AA7F286ACBBC00629C4A /* XCRemoteSwiftPackageReference "RxDataSources" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/RxSwiftCommunity/RxDataSources"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 5.0.0; - }; - }; -/* End XCRemoteSwiftPackageReference section */ - -/* Begin XCSwiftPackageProductDependency section */ - 9A1DB1CD2840504B00689F11 /* Kingfisher */ = { - isa = XCSwiftPackageProductDependency; - package = 9A1DB1CC2840504B00689F11 /* XCRemoteSwiftPackageReference "Kingfisher" */; - productName = Kingfisher; - }; - 9A1DB1D6284081E400689F11 /* Alamofire */ = { - isa = XCSwiftPackageProductDependency; - package = 9A1DB1D5284081E400689F11 /* XCRemoteSwiftPackageReference "Alamofire" */; - productName = Alamofire; - }; - 9A541B8028225F8E001B57FD /* RxCocoa */ = { - isa = XCSwiftPackageProductDependency; - package = 9A541B7F28225F8E001B57FD /* XCRemoteSwiftPackageReference "RxSwift" */; - productName = RxCocoa; - }; - 9A541B8228225F8E001B57FD /* RxRelay */ = { - isa = XCSwiftPackageProductDependency; - package = 9A541B7F28225F8E001B57FD /* XCRemoteSwiftPackageReference "RxSwift" */; - productName = RxRelay; - }; - 9A541B8428225F8E001B57FD /* RxSwift */ = { - isa = XCSwiftPackageProductDependency; - package = 9A541B7F28225F8E001B57FD /* XCRemoteSwiftPackageReference "RxSwift" */; - productName = RxSwift; - }; - 9A688E1E288FAFB300FFFB69 /* ReactorKit */ = { - isa = XCSwiftPackageProductDependency; - package = 9A688E1D288FAFB300FFFB69 /* XCRemoteSwiftPackageReference "ReactorKit" */; - productName = ReactorKit; - }; - 9A99AA80286ACBBC00629C4A /* Differentiator */ = { - isa = XCSwiftPackageProductDependency; - package = 9A99AA7F286ACBBC00629C4A /* XCRemoteSwiftPackageReference "RxDataSources" */; - productName = Differentiator; - }; - 9A99AA82286ACBBC00629C4A /* RxDataSources */ = { - isa = XCSwiftPackageProductDependency; - package = 9A99AA7F286ACBBC00629C4A /* XCRemoteSwiftPackageReference "RxDataSources" */; - productName = RxDataSources; - }; -/* End XCSwiftPackageProductDependency section */ - -/* Begin XCVersionGroup section */ - 9AF0418528503B9400C51449 /* CoreDataStorage.xcdatamodeld */ = { - isa = XCVersionGroup; - children = ( - 9AF0418628503B9400C51449 /* UserCollectionEntity.xcdatamodel */, - ); - currentVersion = 9AF0418628503B9400C51449 /* UserCollectionEntity.xcdatamodel */; - path = CoreDataStorage.xcdatamodeld; - sourceTree = ""; - versionGroupType = wrapper.xcdatamodel; - }; -/* End XCVersionGroup section */ - }; - rootObject = 9A541B5D28220A72001B57FD /* Project object */; -} diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Animal-Crossing-Wiki/Animal-Crossing-Wiki.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a6..00000000 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Animal-Crossing-Wiki/Animal-Crossing-Wiki.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/ko.lproj/LaunchScreen.strings b/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/ko.lproj/LaunchScreen.strings deleted file mode 100644 index 8b137891..00000000 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/ko.lproj/LaunchScreen.strings +++ /dev/null @@ -1 +0,0 @@ - diff --git a/Animal-Crossing-Wiki/AnimalCrossingWikiTests/AnimalCrossingWikiTests.swift b/Animal-Crossing-Wiki/AnimalCrossingWikiTests/AnimalCrossingWikiTests.swift deleted file mode 100644 index d3715401..00000000 --- a/Animal-Crossing-Wiki/AnimalCrossingWikiTests/AnimalCrossingWikiTests.swift +++ /dev/null @@ -1,28 +0,0 @@ -// -// AnimalCrossingWikiTests.swift -// AnimalCrossingWikiTests -// -// Created by Ari on 2022/06/13. -// - -import XCTest - -class AnimalCrossingWikiTests: 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. - XCTAssert(true) - } -} diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Info.plist b/Animal-Crossing-Wiki/Projects/App/Info.plist similarity index 64% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Info.plist rename to Animal-Crossing-Wiki/Projects/App/Info.plist index f8d24013..f672544a 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Info.plist +++ b/Animal-Crossing-Wiki/Projects/App/Info.plist @@ -2,6 +2,18 @@ + CFBundleDevelopmentRegion + ko_KR + CFBundleIdentifier + leeari.NookPortalPlus + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ACNH-wiki + CFBundleExecutable + $(EXECUTABLE_NAME) + UILaunchStoryboardName + LaunchScreen UIApplicationSceneManifest UIApplicationSupportsMultipleScenes diff --git a/Animal-Crossing-Wiki/Projects/App/Project.swift b/Animal-Crossing-Wiki/Projects/App/Project.swift new file mode 100644 index 00000000..3cf7bc11 --- /dev/null +++ b/Animal-Crossing-Wiki/Projects/App/Project.swift @@ -0,0 +1,58 @@ +import ProjectDescription +import ProjectDescriptionHelpers + +let dependencies: [TargetDependency] = [ + .SPM.Kingfisher, + .SPM.Alamofire, + .SPM.ReactorKit, + .SPM.RxDataSources +] + +let appPrivacyInfo: PrivacyManifest = .privacyManifest( + tracking: false, + trackingDomains: [], + collectedDataTypes: [], + accessedApiTypes: [ + [ + "NSPrivacyAccessedAPIType": "NSPrivacyAccessedAPICategoryFileTimestamp", + "NSPrivacyAccessedAPITypeReasons": ["C617.1"] + ], + [ + "NSPrivacyAccessedAPIType": "NSPrivacyAccessedAPICategorySystemBootTime", + "NSPrivacyAccessedAPITypeReasons": ["35F9.1"] + ], + [ + "NSPrivacyAccessedAPIType": "NSPrivacyAccessedAPICategoryDiskSpace", + "NSPrivacyAccessedAPITypeReasons": ["E174.1"] + ], + [ + "NSPrivacyAccessedAPIType": "NSPrivacyAccessedAPICategoryUserDefaults", + "NSPrivacyAccessedAPITypeReasons": ["CA92.1"] + ] + ] +) + +let project = Project( + name: "ACNH-wiki", + targets: [ + .target( + name: "ACNH-wiki", + destinations: .iOS, + product: .app, + bundleId: "leeari.NookPortalPlus", + deploymentTargets: .iOS("16.0"), + infoPlist: .file(path: "Info.plist"), + sources: ["Sources/**"], + resources: .resources([ + "Resources/**", + "Sources/**/*.xib" + ], + privacyManifest: appPrivacyInfo), + scripts: [.runSwiftLintAutocorrect, .runSwiftLint], + dependencies: dependencies, + coreDataModels: [ + CoreDataModel.coreDataModel("Sources/CoreDataStorage/CoreDataStorage.xcdatamodeld") + ] + ) + ] +) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/100.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/100.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/100.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/100.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/1024.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/1024.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/1024.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/1024.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/114.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/114.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/114.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/114.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/120.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/120.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/120.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/120.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/128.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/128.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/128.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/128.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/144.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/144.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/144.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/144.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/152.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/152.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/152.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/152.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/16.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/16.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/16.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/16.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/167.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/167.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/167.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/167.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/172.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/172.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/172.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/172.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/180.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/180.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/180.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/180.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/196.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/196.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/196.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/196.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/20.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/20.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/20.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/20.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/216.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/216.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/216.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/216.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/256.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/256.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/256.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/256.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/29.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/29.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/29.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/29.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/32.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/32.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/32.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/32.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/40.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/40.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/40.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/40.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/48.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/48.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/48.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/48.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/50.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/50.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/50.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/50.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/512.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/512.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/512.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/512.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/55.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/55.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/55.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/55.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/57.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/57.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/57.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/57.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/58.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/58.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/58.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/58.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/60.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/60.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/60.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/60.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/64.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/64.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/64.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/64.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/72.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/72.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/72.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/72.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/76.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/76.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/76.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/76.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/80.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/80.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/80.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/80.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/87.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/87.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/87.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/87.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/88.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/88.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/88.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/88.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Background/ACBackground.colorset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Background/ACBackground.colorset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Background/ACBackground.colorset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Background/ACBackground.colorset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Background/ACSecondaryBackground.colorset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Background/ACSecondaryBackground.colorset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Background/ACSecondaryBackground.colorset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Background/ACSecondaryBackground.colorset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Background/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Background/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Background/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Background/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Navigation Bar/ACNavigationBarTint.colorset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Navigation Bar/ACNavigationBarTint.colorset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Navigation Bar/ACNavigationBarTint.colorset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Navigation Bar/ACNavigationBarTint.colorset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Navigation Bar/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Navigation Bar/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Navigation Bar/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Navigation Bar/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Section Header/ACHeaderBackground.colorset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Section Header/ACHeaderBackground.colorset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Section Header/ACHeaderBackground.colorset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Section Header/ACHeaderBackground.colorset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Section Header/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Section Header/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Section Header/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Section Header/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Text/ACSecondaryText.colorset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Text/ACSecondaryText.colorset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Text/ACSecondaryText.colorset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Text/ACSecondaryText.colorset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Text/ACText.colorset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Text/ACText.colorset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Text/ACText.colorset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Text/ACText.colorset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Text/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Text/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/Text/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/Text/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/catalog-background.colorset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/catalog-background.colorset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/catalog-background.colorset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/catalog-background.colorset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/catalog-bar.colorset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/catalog-bar.colorset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/catalog-bar.colorset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/catalog-bar.colorset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/catalog-selected.colorset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/catalog-selected.colorset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/catalog-selected.colorset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/catalog-selected.colorset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/catalog-text.colorset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/catalog-text.colorset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/catalog-text.colorset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/catalog-text.colorset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/launchBackground.colorset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/launchBackground.colorset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/colors/launchBackground.colorset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/colors/launchBackground.colorset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Apple.imageset/Apple.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Apple.imageset/Apple.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Apple.imageset/Apple.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Apple.imageset/Apple.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Apple.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Apple.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Apple.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Apple.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Cherry.imageset/Cherry.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Cherry.imageset/Cherry.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Cherry.imageset/Cherry.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Cherry.imageset/Cherry.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Cherry.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Cherry.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Cherry.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Cherry.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Coconut.imageset/Coconut.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Coconut.imageset/Coconut.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Coconut.imageset/Coconut.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Coconut.imageset/Coconut.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Coconut.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Coconut.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Coconut.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Coconut.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Orange.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Orange.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Orange.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Orange.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Orange.imageset/Orange.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Orange.imageset/Orange.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Orange.imageset/Orange.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Orange.imageset/Orange.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Peach.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Peach.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Peach.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Peach.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Peach.imageset/Peach.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Peach.imageset/Peach.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Peach.imageset/Peach.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Peach.imageset/Peach.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Pear.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Pear.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Pear.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Pear.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Pear.imageset/Pear.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Pear.imageset/Pear.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/fruits/Pear.imageset/Pear.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/fruits/Pear.imageset/Pear.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/App-Icon.imageset/App-Icon.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/App-Icon.imageset/App-Icon.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/App-Icon.imageset/App-Icon.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/App-Icon.imageset/App-Icon.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/App-Icon.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/App-Icon.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/App-Icon.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/App-Icon.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/book-dive-icon.imageset/BookBtnInvDiveFish^z.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/book-dive-icon.imageset/BookBtnInvDiveFish^z.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/book-dive-icon.imageset/BookBtnInvDiveFish^z.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/book-dive-icon.imageset/BookBtnInvDiveFish^z.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/book-dive-icon.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/book-dive-icon.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/book-dive-icon.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/book-dive-icon.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/book-fish-icon.imageset/BookBtnInvFish^z_0.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/book-fish-icon.imageset/BookBtnInvFish^z_0.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/book-fish-icon.imageset/BookBtnInvFish^z_0.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/book-fish-icon.imageset/BookBtnInvFish^z_0.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/book-fish-icon.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/book-fish-icon.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/book-fish-icon.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/book-fish-icon.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/book-insect-icon.imageset/BookBtnInvInsect^z_0.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/book-insect-icon.imageset/BookBtnInvInsect^z_0.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/book-insect-icon.imageset/BookBtnInvInsect^z_0.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/book-insect-icon.imageset/BookBtnInvInsect^z_0.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/book-insect-icon.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/book-insect-icon.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/book-insect-icon.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/book-insect-icon.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins0.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins0.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins0.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins0.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins0.imageset/Ins0.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins0.imageset/Ins0.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins0.imageset/Ins0.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins0.imageset/Ins0.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins1.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins1.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins1.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins1.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins1.imageset/Ins1.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins1.imageset/Ins1.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins1.imageset/Ins1.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins1.imageset/Ins1.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins10.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins10.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins10.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins10.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins10.imageset/Ins10.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins10.imageset/Ins10.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins10.imageset/Ins10.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins10.imageset/Ins10.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins11.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins11.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins11.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins11.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins11.imageset/Ins11.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins11.imageset/Ins11.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins11.imageset/Ins11.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins11.imageset/Ins11.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins12.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins12.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins12.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins12.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins12.imageset/Ins12.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins12.imageset/Ins12.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins12.imageset/Ins12.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins12.imageset/Ins12.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins13.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins13.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins13.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins13.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins13.imageset/Ins13.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins13.imageset/Ins13.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins13.imageset/Ins13.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins13.imageset/Ins13.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins14.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins14.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins14.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins14.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins14.imageset/Ins14.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins14.imageset/Ins14.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins14.imageset/Ins14.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins14.imageset/Ins14.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins15.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins15.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins15.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins15.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins15.imageset/Ins15.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins15.imageset/Ins15.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins15.imageset/Ins15.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins15.imageset/Ins15.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins16.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins16.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins16.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins16.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins16.imageset/Ins16.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins16.imageset/Ins16.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins16.imageset/Ins16.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins16.imageset/Ins16.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins17.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins17.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins17.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins17.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins17.imageset/Ins17.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins17.imageset/Ins17.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins17.imageset/Ins17.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins17.imageset/Ins17.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins18.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins18.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins18.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins18.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins18.imageset/Ins18.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins18.imageset/Ins18.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins18.imageset/Ins18.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins18.imageset/Ins18.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins19.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins19.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins19.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins19.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins19.imageset/Ins19.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins19.imageset/Ins19.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins19.imageset/Ins19.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins19.imageset/Ins19.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins2.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins2.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins2.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins2.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins2.imageset/Ins2.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins2.imageset/Ins2.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins2.imageset/Ins2.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins2.imageset/Ins2.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins20.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins20.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins20.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins20.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins20.imageset/Ins20.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins20.imageset/Ins20.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins20.imageset/Ins20.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins20.imageset/Ins20.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins21.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins21.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins21.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins21.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins21.imageset/Ins48.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins21.imageset/Ins48.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins21.imageset/Ins48.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins21.imageset/Ins48.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins22.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins22.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins22.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins22.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins22.imageset/Ins22.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins22.imageset/Ins22.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins22.imageset/Ins22.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins22.imageset/Ins22.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins23.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins23.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins23.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins23.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins23.imageset/Ins23.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins23.imageset/Ins23.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins23.imageset/Ins23.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins23.imageset/Ins23.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins24.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins24.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins24.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins24.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins24.imageset/Ins24.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins24.imageset/Ins24.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins24.imageset/Ins24.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins24.imageset/Ins24.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins25.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins25.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins25.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins25.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins25.imageset/Ins47.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins25.imageset/Ins47.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins25.imageset/Ins47.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins25.imageset/Ins47.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins26.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins26.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins26.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins26.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins26.imageset/Ins26.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins26.imageset/Ins26.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins26.imageset/Ins26.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins26.imageset/Ins26.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins27.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins27.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins27.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins27.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins27.imageset/Ins27.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins27.imageset/Ins27.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins27.imageset/Ins27.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins27.imageset/Ins27.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins28.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins28.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins28.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins28.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins28.imageset/Ins28.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins28.imageset/Ins28.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins28.imageset/Ins28.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins28.imageset/Ins28.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins29.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins29.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins29.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins29.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins29.imageset/Ins29.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins29.imageset/Ins29.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins29.imageset/Ins29.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins29.imageset/Ins29.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins3.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins3.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins3.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins3.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins3.imageset/Ins3.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins3.imageset/Ins3.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins3.imageset/Ins3.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins3.imageset/Ins3.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins30.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins30.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins30.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins30.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins30.imageset/Ins30.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins30.imageset/Ins30.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins30.imageset/Ins30.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins30.imageset/Ins30.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins31.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins31.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins31.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins31.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins31.imageset/Ins31.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins31.imageset/Ins31.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins31.imageset/Ins31.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins31.imageset/Ins31.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins32.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins32.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins32.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins32.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins32.imageset/Ins32.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins32.imageset/Ins32.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins32.imageset/Ins32.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins32.imageset/Ins32.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins33.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins33.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins33.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins33.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins33.imageset/Ins33.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins33.imageset/Ins33.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins33.imageset/Ins33.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins33.imageset/Ins33.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins34.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins34.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins34.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins34.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins34.imageset/Ins34.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins34.imageset/Ins34.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins34.imageset/Ins34.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins34.imageset/Ins34.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins35.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins35.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins35.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins35.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins35.imageset/Ins35.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins35.imageset/Ins35.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins35.imageset/Ins35.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins35.imageset/Ins35.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins36.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins36.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins36.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins36.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins36.imageset/Ins36.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins36.imageset/Ins36.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins36.imageset/Ins36.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins36.imageset/Ins36.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins37.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins37.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins37.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins37.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins37.imageset/Ins37.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins37.imageset/Ins37.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins37.imageset/Ins37.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins37.imageset/Ins37.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins38.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins38.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins38.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins38.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins38.imageset/Ins38.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins38.imageset/Ins38.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins38.imageset/Ins38.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins38.imageset/Ins38.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins39.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins39.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins39.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins39.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins39.imageset/Ins39.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins39.imageset/Ins39.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins39.imageset/Ins39.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins39.imageset/Ins39.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins4.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins4.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins4.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins4.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins4.imageset/Ins4.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins4.imageset/Ins4.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins4.imageset/Ins4.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins4.imageset/Ins4.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins40.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins40.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins40.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins40.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins40.imageset/Ins40.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins40.imageset/Ins40.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins40.imageset/Ins40.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins40.imageset/Ins40.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins41.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins41.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins41.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins41.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins41.imageset/Ins41.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins41.imageset/Ins41.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins41.imageset/Ins41.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins41.imageset/Ins41.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins42.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins42.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins42.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins42.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins42.imageset/Ins42.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins42.imageset/Ins42.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins42.imageset/Ins42.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins42.imageset/Ins42.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins43.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins43.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins43.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins43.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins43.imageset/Ins43.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins43.imageset/Ins43.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins43.imageset/Ins43.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins43.imageset/Ins43.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins44.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins44.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins44.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins44.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins44.imageset/Ins44.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins44.imageset/Ins44.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins44.imageset/Ins44.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins44.imageset/Ins44.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins45.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins45.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins45.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins45.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins45.imageset/Ins45.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins45.imageset/Ins45.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins45.imageset/Ins45.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins45.imageset/Ins45.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins46.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins46.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins46.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins46.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins46.imageset/Ins46.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins46.imageset/Ins46.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins46.imageset/Ins46.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins46.imageset/Ins46.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins47.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins47.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins47.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins47.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins47.imageset/Ins47.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins47.imageset/Ins47.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins47.imageset/Ins47.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins47.imageset/Ins47.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins48.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins48.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins48.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins48.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins48.imageset/Ins48.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins48.imageset/Ins48.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins48.imageset/Ins48.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins48.imageset/Ins48.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins49.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins49.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins49.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins49.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins49.imageset/Ins49.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins49.imageset/Ins49.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins49.imageset/Ins49.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins49.imageset/Ins49.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins5.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins5.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins5.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins5.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins5.imageset/Ins5.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins5.imageset/Ins5.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins5.imageset/Ins5.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins5.imageset/Ins5.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins50.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins50.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins50.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins50.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins50.imageset/Ins50.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins50.imageset/Ins50.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins50.imageset/Ins50.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins50.imageset/Ins50.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins51.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins51.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins51.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins51.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins51.imageset/Ins51.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins51.imageset/Ins51.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins51.imageset/Ins51.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins51.imageset/Ins51.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins52.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins52.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins52.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins52.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins52.imageset/Ins52.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins52.imageset/Ins52.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins52.imageset/Ins52.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins52.imageset/Ins52.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins53.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins53.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins53.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins53.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins53.imageset/Ins53.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins53.imageset/Ins53.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins53.imageset/Ins53.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins53.imageset/Ins53.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins54.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins54.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins54.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins54.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins54.imageset/Ins54.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins54.imageset/Ins54.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins54.imageset/Ins54.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins54.imageset/Ins54.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins55.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins55.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins55.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins55.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins55.imageset/Ins55.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins55.imageset/Ins55.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins55.imageset/Ins55.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins55.imageset/Ins55.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins56.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins56.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins56.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins56.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins56.imageset/Ins56.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins56.imageset/Ins56.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins56.imageset/Ins56.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins56.imageset/Ins56.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins57.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins57.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins57.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins57.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins57.imageset/Ins57.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins57.imageset/Ins57.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins57.imageset/Ins57.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins57.imageset/Ins57.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins58.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins58.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins58.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins58.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins58.imageset/Ins58.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins58.imageset/Ins58.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins58.imageset/Ins58.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins58.imageset/Ins58.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins59.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins59.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins59.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins59.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins59.imageset/Ins59.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins59.imageset/Ins59.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins59.imageset/Ins59.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins59.imageset/Ins59.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins6.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins6.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins6.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins6.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins6.imageset/Ins6.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins6.imageset/Ins6.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins6.imageset/Ins6.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins6.imageset/Ins6.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins60.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins60.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins60.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins60.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins60.imageset/Ins60.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins60.imageset/Ins60.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins60.imageset/Ins60.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins60.imageset/Ins60.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins61.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins61.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins61.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins61.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins61.imageset/Ins61.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins61.imageset/Ins61.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins61.imageset/Ins61.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins61.imageset/Ins61.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins62.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins62.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins62.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins62.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins62.imageset/Ins62.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins62.imageset/Ins62.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins62.imageset/Ins62.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins62.imageset/Ins62.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins63.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins63.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins63.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins63.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins63.imageset/Ins63.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins63.imageset/Ins63.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins63.imageset/Ins63.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins63.imageset/Ins63.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins64.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins64.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins64.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins64.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins64.imageset/Ins64.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins64.imageset/Ins64.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins64.imageset/Ins64.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins64.imageset/Ins64.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins65.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins65.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins65.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins65.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins65.imageset/Ins65.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins65.imageset/Ins65.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins65.imageset/Ins65.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins65.imageset/Ins65.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins66.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins66.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins66.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins66.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins66.imageset/Ins66.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins66.imageset/Ins66.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins66.imageset/Ins66.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins66.imageset/Ins66.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins67.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins67.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins67.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins67.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins67.imageset/Ins67.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins67.imageset/Ins67.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins67.imageset/Ins67.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins67.imageset/Ins67.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins69.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins69.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins69.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins69.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins69.imageset/Ins69.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins69.imageset/Ins69.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins69.imageset/Ins69.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins69.imageset/Ins69.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins7.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins7.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins7.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins7.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins7.imageset/Ins7.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins7.imageset/Ins7.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins7.imageset/Ins7.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins7.imageset/Ins7.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins70.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins70.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins70.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins70.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins70.imageset/Ins70.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins70.imageset/Ins70.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins70.imageset/Ins70.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins70.imageset/Ins70.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins71.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins71.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins71.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins71.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins71.imageset/Ins71.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins71.imageset/Ins71.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins71.imageset/Ins71.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins71.imageset/Ins71.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins72.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins72.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins72.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins72.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins72.imageset/Ins72.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins72.imageset/Ins72.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins72.imageset/Ins72.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins72.imageset/Ins72.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins73.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins73.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins73.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins73.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins73.imageset/Ins73.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins73.imageset/Ins73.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins73.imageset/Ins73.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins73.imageset/Ins73.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins74.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins74.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins74.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins74.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins74.imageset/Ins74.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins74.imageset/Ins74.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins74.imageset/Ins74.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins74.imageset/Ins74.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins75.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins75.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins75.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins75.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins75.imageset/Ins75.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins75.imageset/Ins75.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins75.imageset/Ins75.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins75.imageset/Ins75.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins76.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins76.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins76.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins76.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins76.imageset/Ins76.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins76.imageset/Ins76.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins76.imageset/Ins76.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins76.imageset/Ins76.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins77.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins77.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins77.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins77.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins77.imageset/Ins77.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins77.imageset/Ins77.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins77.imageset/Ins77.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins77.imageset/Ins77.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins78.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins78.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins78.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins78.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins78.imageset/Ins78.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins78.imageset/Ins78.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins78.imageset/Ins78.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins78.imageset/Ins78.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins79.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins79.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins79.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins79.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins79.imageset/Ins79.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins79.imageset/Ins79.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins79.imageset/Ins79.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins79.imageset/Ins79.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins8.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins8.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins8.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins8.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins8.imageset/Ins8.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins8.imageset/Ins8.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins8.imageset/Ins8.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins8.imageset/Ins8.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins80.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins80.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins80.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins80.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins80.imageset/Ins80.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins80.imageset/Ins80.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins80.imageset/Ins80.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins80.imageset/Ins80.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins81.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins81.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins81.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins81.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins81.imageset/Ins81.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins81.imageset/Ins81.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins81.imageset/Ins81.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins81.imageset/Ins81.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins82.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins82.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins82.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins82.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins82.imageset/Ins82.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins82.imageset/Ins82.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins82.imageset/Ins82.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins82.imageset/Ins82.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins9.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins9.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins9.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins9.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins9.imageset/Ins9.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins9.imageset/Ins9.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/bug/Ins9.imageset/Ins9.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/bug/Ins9.imageset/Ins9.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/celeste.imageset/Celeste@4x.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/celeste.imageset/Celeste@4x.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/celeste.imageset/Celeste@4x.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/celeste.imageset/Celeste@4x.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/celeste.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/celeste.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/celeste.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/celeste.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/cj.imageset/C.J.@4x.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/cj.imageset/C.J.@4x.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/cj.imageset/C.J.@4x.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/cj.imageset/C.J.@4x.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/cj.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/cj.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/cj.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/cj.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/daisy.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/daisy.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/daisy.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/daisy.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/daisy.imageset/Daisy Mae@4x.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/daisy.imageset/Daisy Mae@4x.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/daisy.imageset/Daisy Mae@4x.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/daisy.imageset/Daisy Mae@4x.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/flick.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/flick.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/flick.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/flick.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/flick.imageset/Flick@4x.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/flick.imageset/Flick@4x.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/flick.imageset/Flick@4x.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/flick.imageset/Flick@4x.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/gulliver.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/gulliver.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/gulliver.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/gulliver.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/gulliver.imageset/Gulliver@4x.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/gulliver.imageset/Gulliver@4x.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/gulliver.imageset/Gulliver@4x.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/gulliver.imageset/Gulliver@4x.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/kicks.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/kicks.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/kicks.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/kicks.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/kicks.imageset/Kicks@4x.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/kicks.imageset/Kicks@4x.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/kicks.imageset/Kicks@4x.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/kicks.imageset/Kicks@4x.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/kk.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/kk.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/kk.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/kk.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/kk.imageset/kk.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/kk.imageset/kk.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/kk.imageset/kk.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/kk.imageset/kk.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/label.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/label.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/label.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/label.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/label.imageset/Label@4x.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/label.imageset/Label@4x.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/label.imageset/Label@4x.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/label.imageset/Label@4x.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/leif.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/leif.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/leif.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/leif.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/leif.imageset/Leif@4x.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/leif.imageset/Leif@4x.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/leif.imageset/Leif@4x.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/leif.imageset/Leif@4x.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/redd.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/redd.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/redd.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/redd.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/redd.imageset/Redd@4x.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/redd.imageset/Redd@4x.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/redd.imageset/Redd@4x.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/redd.imageset/Redd@4x.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/saharah.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/saharah.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/saharah.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/saharah.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/saharah.imageset/Saharah@4x.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/saharah.imageset/Saharah@4x.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/saharah.imageset/Saharah@4x.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/saharah.imageset/Saharah@4x.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/wisp.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/wisp.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/wisp.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/wisp.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/wisp.imageset/Wisp@4x.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/wisp.imageset/Wisp@4x.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/characters/wisp.imageset/Wisp@4x.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/characters/wisp.imageset/Wisp@4x.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div0.imageset/Akoyagai.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div0.imageset/Akoyagai.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div0.imageset/Akoyagai.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div0.imageset/Akoyagai.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div0.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div0.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div0.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div0.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div1.imageset/Amaebi.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div1.imageset/Amaebi.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div1.imageset/Amaebi.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div1.imageset/Amaebi.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div1.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div1.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div1.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div1.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div10.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div10.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div10.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div10.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div10.imageset/Iseebi.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div10.imageset/Iseebi.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div10.imageset/Iseebi.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div10.imageset/Iseebi.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div11.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div11.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div11.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div11.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div11.imageset/Isogintyaku.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div11.imageset/Isogintyaku.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div11.imageset/Isogintyaku.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div11.imageset/Isogintyaku.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div12.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div12.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div12.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div12.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div12.imageset/Kabutogani.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div12.imageset/Kabutogani.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div12.imageset/Kabutogani.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div12.imageset/Kabutogani.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div13.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div13.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div13.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div13.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div13.imageset/Kairoudouketsu.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div13.imageset/Kairoudouketsu.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div13.imageset/Kairoudouketsu.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div13.imageset/Kairoudouketsu.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div14.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div14.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div14.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div14.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div14.imageset/Kaki.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div14.imageset/Kaki.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div14.imageset/Kaki.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div14.imageset/Kaki.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div15.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div15.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div15.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div15.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div15.imageset/Koumoridako.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div15.imageset/Koumoridako.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div15.imageset/Koumoridako.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div15.imageset/Koumoridako.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div16.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div16.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div16.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div16.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div16.imageset/Kurumaebi.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div16.imageset/Kurumaebi.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div16.imageset/Kurumaebi.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div16.imageset/Kurumaebi.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div17.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div17.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div17.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div17.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div17.imageset/Mendako.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div17.imageset/Mendako.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div17.imageset/Mendako.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div17.imageset/Mendako.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div18.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div18.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div18.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div18.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div18.imageset/Mizukurage.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div18.imageset/Mizukurage.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div18.imageset/Mizukurage.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div18.imageset/Mizukurage.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div19.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div19.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div19.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div19.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div19.imageset/Muhrugai.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div19.imageset/Muhrugai.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div19.imageset/Muhrugai.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div19.imageset/Muhrugai.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div2.imageset/Chinanago.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div2.imageset/Chinanago.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div2.imageset/Chinanago.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div2.imageset/Chinanago.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div2.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div2.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div2.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div2.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div20.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div20.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div20.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div20.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div20.imageset/Oumugai.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div20.imageset/Oumugai.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div20.imageset/Oumugai.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div20.imageset/Oumugai.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div21.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div21.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div21.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div21.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div21.imageset/Oyster.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div21.imageset/Oyster.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div21.imageset/Oyster.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div21.imageset/Oyster.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div22.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div22.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div22.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div22.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div22.imageset/Paipuuni.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div22.imageset/Paipuuni.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div22.imageset/Paipuuni.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div22.imageset/Paipuuni.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div23.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div23.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div23.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div23.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div23.imageset/Sazae.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div23.imageset/Sazae.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div23.imageset/Sazae.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div23.imageset/Sazae.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div24.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div24.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div24.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div24.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div24.imageset/Shako.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div24.imageset/Shako.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div24.imageset/Shako.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div24.imageset/Shako.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div25.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div25.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div25.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div25.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div25.imageset/Shakogai.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div25.imageset/Shakogai.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div25.imageset/Shakogai.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div25.imageset/Shakogai.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div26.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div26.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div26.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div26.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div26.imageset/Takaashigani.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div26.imageset/Takaashigani.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div26.imageset/Takaashigani.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div26.imageset/Takaashigani.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div27.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div27.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div27.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div27.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div27.imageset/Tako.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div27.imageset/Tako.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div27.imageset/Tako.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div27.imageset/Tako.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div28.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div28.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div28.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div28.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div28.imageset/Tarabagani.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div28.imageset/Tarabagani.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div28.imageset/Tarabagani.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div28.imageset/Tarabagani.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div29.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div29.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div29.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div29.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div29.imageset/Umiushi.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div29.imageset/Umiushi.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div29.imageset/Umiushi.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div29.imageset/Umiushi.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div3.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div3.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div3.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div3.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div3.imageset/Daiougusokumushi.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div3.imageset/Daiougusokumushi.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div3.imageset/Daiougusokumushi.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div3.imageset/Daiougusokumushi.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div30.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div30.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div30.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div30.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div30.imageset/Uni.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div30.imageset/Uni.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div30.imageset/Uni.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div30.imageset/Uni.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div31.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div31.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div31.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div31.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div31.imageset/Wakame.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div31.imageset/Wakame.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div31.imageset/Wakame.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div31.imageset/Wakame.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div32.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div32.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div32.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div32.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div32.imageset/Zuwaigani.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div32.imageset/Zuwaigani.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div32.imageset/Zuwaigani.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div32.imageset/Zuwaigani.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div4.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div4.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div4.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div4.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div4.imageset/DungenessCrab.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div4.imageset/DungenessCrab.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div4.imageset/DungenessCrab.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div4.imageset/DungenessCrab.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div5.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div5.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div5.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div5.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div5.imageset/Fujitsubo.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div5.imageset/Fujitsubo.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div5.imageset/Fujitsubo.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div5.imageset/Fujitsubo.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div6.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div6.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div6.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div6.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div6.imageset/Gazami.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div6.imageset/Gazami.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div6.imageset/Gazami.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div6.imageset/Gazami.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div7.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div7.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div7.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div7.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div7.imageset/Hiramushi.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div7.imageset/Hiramushi.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div7.imageset/Hiramushi.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div7.imageset/Hiramushi.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div8.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div8.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div8.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div8.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div8.imageset/Hitode.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div8.imageset/Hitode.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div8.imageset/Hitode.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div8.imageset/Hitode.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div9.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div9.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div9.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div9.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div9.imageset/Hotaruika.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div9.imageset/Hotaruika.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/diveFish/div9.imageset/Hotaruika.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/diveFish/div9.imageset/Hotaruika.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish0.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish0.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish0.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish0.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish0.imageset/Fish0.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish0.imageset/Fish0.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish0.imageset/Fish0.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish0.imageset/Fish0.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish1.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish1.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish1.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish1.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish1.imageset/Fish1.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish1.imageset/Fish1.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish1.imageset/Fish1.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish1.imageset/Fish1.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish10.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish10.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish10.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish10.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish10.imageset/Fish10.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish10.imageset/Fish10.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish10.imageset/Fish10.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish10.imageset/Fish10.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish11.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish11.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish11.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish11.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish11.imageset/Fish11.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish11.imageset/Fish11.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish11.imageset/Fish11.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish11.imageset/Fish11.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish12.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish12.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish12.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish12.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish12.imageset/Fish12.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish12.imageset/Fish12.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish12.imageset/Fish12.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish12.imageset/Fish12.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish13.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish13.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish13.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish13.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish13.imageset/Fish13.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish13.imageset/Fish13.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish13.imageset/Fish13.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish13.imageset/Fish13.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish14.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish14.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish14.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish14.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish14.imageset/Fish14.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish14.imageset/Fish14.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish14.imageset/Fish14.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish14.imageset/Fish14.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish15.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish15.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish15.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish15.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish15.imageset/Fish58.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish15.imageset/Fish58.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish15.imageset/Fish58.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish15.imageset/Fish58.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish16.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish16.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish16.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish16.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish16.imageset/Fish16.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish16.imageset/Fish16.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish16.imageset/Fish16.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish16.imageset/Fish16.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish17.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish17.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish17.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish17.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish17.imageset/Fish17.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish17.imageset/Fish17.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish17.imageset/Fish17.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish17.imageset/Fish17.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish18.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish18.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish18.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish18.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish18.imageset/Fish18.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish18.imageset/Fish18.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish18.imageset/Fish18.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish18.imageset/Fish18.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish19.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish19.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish19.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish19.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish19.imageset/Fish19.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish19.imageset/Fish19.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish19.imageset/Fish19.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish19.imageset/Fish19.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish2.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish2.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish2.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish2.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish2.imageset/Fish2.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish2.imageset/Fish2.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish2.imageset/Fish2.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish2.imageset/Fish2.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish20.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish20.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish20.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish20.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish20.imageset/Fish20.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish20.imageset/Fish20.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish20.imageset/Fish20.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish20.imageset/Fish20.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish21.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish21.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish21.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish21.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish21.imageset/Fish21.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish21.imageset/Fish21.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish21.imageset/Fish21.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish21.imageset/Fish21.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish22.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish22.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish22.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish22.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish22.imageset/Fish22.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish22.imageset/Fish22.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish22.imageset/Fish22.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish22.imageset/Fish22.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish23.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish23.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish23.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish23.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish23.imageset/Fish23.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish23.imageset/Fish23.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish23.imageset/Fish23.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish23.imageset/Fish23.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish24.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish24.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish24.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish24.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish24.imageset/Fish24.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish24.imageset/Fish24.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish24.imageset/Fish24.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish24.imageset/Fish24.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish25.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish25.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish25.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish25.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish25.imageset/Fish66.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish25.imageset/Fish66.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish25.imageset/Fish66.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish25.imageset/Fish66.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish26.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish26.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish26.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish26.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish26.imageset/Fish26.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish26.imageset/Fish26.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish26.imageset/Fish26.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish26.imageset/Fish26.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish27.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish27.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish27.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish27.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish27.imageset/Fish27.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish27.imageset/Fish27.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish27.imageset/Fish27.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish27.imageset/Fish27.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish28.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish28.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish28.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish28.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish28.imageset/Fish28.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish28.imageset/Fish28.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish28.imageset/Fish28.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish28.imageset/Fish28.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish29.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish29.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish29.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish29.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish29.imageset/Fish29.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish29.imageset/Fish29.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish29.imageset/Fish29.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish29.imageset/Fish29.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish3.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish3.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish3.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish3.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish3.imageset/Fish3.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish3.imageset/Fish3.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish3.imageset/Fish3.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish3.imageset/Fish3.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish30.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish30.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish30.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish30.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish30.imageset/Fish30.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish30.imageset/Fish30.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish30.imageset/Fish30.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish30.imageset/Fish30.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish31.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish31.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish31.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish31.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish31.imageset/Fish31.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish31.imageset/Fish31.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish31.imageset/Fish31.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish31.imageset/Fish31.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish32.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish32.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish32.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish32.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish32.imageset/Fish32.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish32.imageset/Fish32.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish32.imageset/Fish32.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish32.imageset/Fish32.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish33.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish33.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish33.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish33.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish33.imageset/Fish33.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish33.imageset/Fish33.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish33.imageset/Fish33.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish33.imageset/Fish33.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish34.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish34.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish34.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish34.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish34.imageset/Fish34.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish34.imageset/Fish34.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish34.imageset/Fish34.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish34.imageset/Fish34.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish35.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish35.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish35.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish35.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish35.imageset/Fish35.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish35.imageset/Fish35.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish35.imageset/Fish35.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish35.imageset/Fish35.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish36.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish36.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish36.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish36.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish36.imageset/Fish36.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish36.imageset/Fish36.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish36.imageset/Fish36.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish36.imageset/Fish36.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish37.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish37.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish37.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish37.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish37.imageset/Fish37.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish37.imageset/Fish37.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish37.imageset/Fish37.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish37.imageset/Fish37.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish39.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish39.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish39.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish39.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish39.imageset/Fish39.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish39.imageset/Fish39.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish39.imageset/Fish39.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish39.imageset/Fish39.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish4.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish4.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish4.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish4.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish4.imageset/Fish3.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish4.imageset/Fish3.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish4.imageset/Fish3.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish4.imageset/Fish3.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish40.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish40.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish40.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish40.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish40.imageset/Fish40.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish40.imageset/Fish40.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish40.imageset/Fish40.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish40.imageset/Fish40.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish41.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish41.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish41.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish41.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish41.imageset/Fish41.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish41.imageset/Fish41.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish41.imageset/Fish41.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish41.imageset/Fish41.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish42.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish42.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish42.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish42.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish42.imageset/Fish42.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish42.imageset/Fish42.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish42.imageset/Fish42.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish42.imageset/Fish42.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish43.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish43.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish43.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish43.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish43.imageset/Fish43.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish43.imageset/Fish43.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish43.imageset/Fish43.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish43.imageset/Fish43.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish44.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish44.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish44.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish44.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish44.imageset/Fish44.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish44.imageset/Fish44.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish44.imageset/Fish44.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish44.imageset/Fish44.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish45.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish45.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish45.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish45.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish45.imageset/Fish45.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish45.imageset/Fish45.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish45.imageset/Fish45.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish45.imageset/Fish45.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish46.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish46.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish46.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish46.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish46.imageset/Fish46.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish46.imageset/Fish46.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish46.imageset/Fish46.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish46.imageset/Fish46.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish47.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish47.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish47.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish47.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish47.imageset/Fish47.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish47.imageset/Fish47.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish47.imageset/Fish47.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish47.imageset/Fish47.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish48.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish48.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish48.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish48.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish48.imageset/Fish48.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish48.imageset/Fish48.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish48.imageset/Fish48.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish48.imageset/Fish48.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish49.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish49.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish49.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish49.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish49.imageset/Fish49.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish49.imageset/Fish49.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish49.imageset/Fish49.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish49.imageset/Fish49.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish5.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish5.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish5.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish5.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish5.imageset/Fish5.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish5.imageset/Fish5.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish5.imageset/Fish5.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish5.imageset/Fish5.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish50.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish50.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish50.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish50.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish50.imageset/Fish50.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish50.imageset/Fish50.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish50.imageset/Fish50.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish50.imageset/Fish50.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish51.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish51.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish51.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish51.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish51.imageset/Fish51.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish51.imageset/Fish51.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish51.imageset/Fish51.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish51.imageset/Fish51.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish52.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish52.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish52.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish52.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish52.imageset/Fish52.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish52.imageset/Fish52.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish52.imageset/Fish52.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish52.imageset/Fish52.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish55.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish55.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish55.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish55.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish55.imageset/Fish55.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish55.imageset/Fish55.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish55.imageset/Fish55.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish55.imageset/Fish55.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish56.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish56.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish56.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish56.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish56.imageset/Fish56.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish56.imageset/Fish56.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish56.imageset/Fish56.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish56.imageset/Fish56.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish57.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish57.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish57.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish57.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish57.imageset/Fish57.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish57.imageset/Fish57.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish57.imageset/Fish57.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish57.imageset/Fish57.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish58.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish58.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish58.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish58.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish58.imageset/Fish58.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish58.imageset/Fish58.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish58.imageset/Fish58.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish58.imageset/Fish58.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish59.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish59.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish59.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish59.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish59.imageset/Fish59.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish59.imageset/Fish59.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish59.imageset/Fish59.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish59.imageset/Fish59.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish6.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish6.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish6.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish6.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish6.imageset/Fish6.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish6.imageset/Fish6.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish6.imageset/Fish6.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish6.imageset/Fish6.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish60.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish60.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish60.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish60.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish60.imageset/Fish60.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish60.imageset/Fish60.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish60.imageset/Fish60.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish60.imageset/Fish60.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish61.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish61.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish61.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish61.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish61.imageset/Fish61.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish61.imageset/Fish61.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish61.imageset/Fish61.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish61.imageset/Fish61.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish62.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish62.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish62.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish62.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish62.imageset/Fish62.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish62.imageset/Fish62.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish62.imageset/Fish62.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish62.imageset/Fish62.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish63.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish63.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish63.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish63.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish63.imageset/Fish63.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish63.imageset/Fish63.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish63.imageset/Fish63.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish63.imageset/Fish63.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish64.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish64.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish64.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish64.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish64.imageset/Fish64.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish64.imageset/Fish64.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish64.imageset/Fish64.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish64.imageset/Fish64.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish65.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish65.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish65.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish65.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish65.imageset/Fish65.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish65.imageset/Fish65.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish65.imageset/Fish65.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish65.imageset/Fish65.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish66.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish66.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish66.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish66.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish66.imageset/Fish66.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish66.imageset/Fish66.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish66.imageset/Fish66.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish66.imageset/Fish66.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish67.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish67.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish67.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish67.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish67.imageset/Fish67.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish67.imageset/Fish67.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish67.imageset/Fish67.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish67.imageset/Fish67.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish68.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish68.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish68.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish68.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish68.imageset/Fish68.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish68.imageset/Fish68.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish68.imageset/Fish68.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish68.imageset/Fish68.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish69.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish69.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish69.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish69.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish69.imageset/Fish69.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish69.imageset/Fish69.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish69.imageset/Fish69.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish69.imageset/Fish69.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish7.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish7.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish7.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish7.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish7.imageset/Fish7.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish7.imageset/Fish7.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish7.imageset/Fish7.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish7.imageset/Fish7.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish70.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish70.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish70.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish70.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish70.imageset/Fish70.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish70.imageset/Fish70.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish70.imageset/Fish70.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish70.imageset/Fish70.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish71.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish71.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish71.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish71.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish71.imageset/Fish71.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish71.imageset/Fish71.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish71.imageset/Fish71.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish71.imageset/Fish71.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish72.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish72.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish72.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish72.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish72.imageset/Fish72.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish72.imageset/Fish72.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish72.imageset/Fish72.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish72.imageset/Fish72.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish73.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish73.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish73.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish73.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish73.imageset/Fish73.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish73.imageset/Fish73.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish73.imageset/Fish73.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish73.imageset/Fish73.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish74.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish74.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish74.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish74.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish74.imageset/Fish74.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish74.imageset/Fish74.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish74.imageset/Fish74.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish74.imageset/Fish74.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish75.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish75.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish75.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish75.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish75.imageset/Fish75.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish75.imageset/Fish75.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish75.imageset/Fish75.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish75.imageset/Fish75.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish76.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish76.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish76.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish76.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish76.imageset/Fish76.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish76.imageset/Fish76.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish76.imageset/Fish76.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish76.imageset/Fish76.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish77.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish77.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish77.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish77.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish77.imageset/Fish77.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish77.imageset/Fish77.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish77.imageset/Fish77.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish77.imageset/Fish77.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish78.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish78.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish78.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish78.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish78.imageset/Fish78.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish78.imageset/Fish78.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish78.imageset/Fish78.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish78.imageset/Fish78.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish79.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish79.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish79.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish79.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish79.imageset/Fish79.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish79.imageset/Fish79.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish79.imageset/Fish79.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish79.imageset/Fish79.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish8.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish8.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish8.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish8.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish8.imageset/Fish8.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish8.imageset/Fish8.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish8.imageset/Fish8.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish8.imageset/Fish8.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish80.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish80.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish80.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish80.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish80.imageset/Fish80.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish80.imageset/Fish80.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish80.imageset/Fish80.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish80.imageset/Fish80.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish81.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish81.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish81.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish81.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish81.imageset/Fish81.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish81.imageset/Fish81.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish81.imageset/Fish81.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish81.imageset/Fish81.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish82.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish82.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish82.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish82.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish82.imageset/Fish82.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish82.imageset/Fish82.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish82.imageset/Fish82.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish82.imageset/Fish82.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish83.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish83.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish83.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish83.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish83.imageset/Fish83.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish83.imageset/Fish83.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish83.imageset/Fish83.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish83.imageset/Fish83.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish84.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish84.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish84.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish84.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish84.imageset/Fish84.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish84.imageset/Fish84.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish84.imageset/Fish84.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish84.imageset/Fish84.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish85.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish85.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish85.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish85.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish85.imageset/Fish85.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish85.imageset/Fish85.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish85.imageset/Fish85.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish85.imageset/Fish85.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish9.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish9.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish9.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish9.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish9.imageset/Fish9.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish9.imageset/Fish9.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/fish/Fish9.imageset/Fish9.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/fish/Fish9.imageset/Fish9.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bag.imageset/Bag.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bag.imageset/Bag.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bag.imageset/Bag.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bag.imageset/Bag.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bag.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bag.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bag.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bag.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bamboo-spring.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bamboo-spring.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bamboo-spring.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bamboo-spring.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bamboo-spring.imageset/DIYBambooSpring.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bamboo-spring.imageset/DIYBambooSpring.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bamboo-spring.imageset/DIYBambooSpring.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bamboo-spring.imageset/DIYBambooSpring.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bamboo.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bamboo.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bamboo.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bamboo.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bamboo.imageset/DIYBamboo.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bamboo.imageset/DIYBamboo.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bamboo.imageset/DIYBamboo.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bamboo.imageset/DIYBamboo.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bell.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bell.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bell.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bell.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bell.imageset/icon-bell@2x.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bell.imageset/icon-bell@2x.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bell.imageset/icon-bell@2x.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bell.imageset/icon-bell@2x.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bells-tabbar.imageset/1,000_Bells_NH_Inv_Icon.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bells-tabbar.imageset/1,000_Bells_NH_Inv_Icon.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bells-tabbar.imageset/1,000_Bells_NH_Inv_Icon.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bells-tabbar.imageset/1,000_Bells_NH_Inv_Icon.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bells-tabbar.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bells-tabbar.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bells-tabbar.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bells-tabbar.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bells.imageset/1,000_Bells_NH_Inv_Icon.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bells.imageset/1,000_Bells_NH_Inv_Icon.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bells.imageset/1,000_Bells_NH_Inv_Icon.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bells.imageset/1,000_Bells_NH_Inv_Icon.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bells.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bells.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bells.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bells.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-board.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-board.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-board.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-board.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-board.imageset/Image.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-board.imageset/Image.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-board.imageset/Image.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-board.imageset/Image.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-book-tabbar.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-book-tabbar.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-book-tabbar.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-book-tabbar.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-book-tabbar.imageset/icon-book-tabbar.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-book-tabbar.imageset/icon-book-tabbar.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-book-tabbar.imageset/icon-book-tabbar.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-book-tabbar.imageset/icon-book-tabbar.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bottle-message.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bottle-message.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bottle-message.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bottle-message.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bottle-message.imageset/Message_Bottle_NH_Inv_Icon.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bottle-message.imageset/Message_Bottle_NH_Inv_Icon.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-bottle-message.imageset/Message_Bottle_NH_Inv_Icon.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-bottle-message.imageset/Message_Bottle_NH_Inv_Icon.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-branch.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-branch.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-branch.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-branch.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-branch.imageset/DIYBranch.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-branch.imageset/DIYBranch.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-branch.imageset/DIYBranch.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-branch.imageset/DIYBranch.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-cardboard-tabbar.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-cardboard-tabbar.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-cardboard-tabbar.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-cardboard-tabbar.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-cardboard-tabbar.imageset/Package_NH_Inv_Icon.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-cardboard-tabbar.imageset/Package_NH_Inv_Icon.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-cardboard-tabbar.imageset/Package_NH_Inv_Icon.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-cardboard-tabbar.imageset/Package_NH_Inv_Icon.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-cardboard.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-cardboard.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-cardboard.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-cardboard.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-cardboard.imageset/Package_NH_Inv_Icon.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-cardboard.imageset/Package_NH_Inv_Icon.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-cardboard.imageset/Package_NH_Inv_Icon.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-cardboard.imageset/Package_NH_Inv_Icon.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-ceiling.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-ceiling.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-ceiling.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-ceiling.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-ceiling.imageset/icon-ceiling.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-ceiling.imageset/icon-ceiling.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-ceiling.imageset/icon-ceiling.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-ceiling.imageset/icon-ceiling.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-clay.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-clay.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-clay.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-clay.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-clay.imageset/OreClay.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-clay.imageset/OreClay.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-clay.imageset/OreClay.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-clay.imageset/OreClay.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-fence.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-fence.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-fence.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-fence.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-fence.imageset/Fence.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-fence.imageset/Fence.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-fence.imageset/Fence.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-fence.imageset/Fence.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-fish.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-fish.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-fish.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-fish.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-fish.imageset/FishBait.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-fish.imageset/FishBait.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-fish.imageset/FishBait.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-fish.imageset/FishBait.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-floor.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-floor.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-floor.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-floor.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-floor.imageset/Floor.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-floor.imageset/Floor.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-floor.imageset/Floor.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-floor.imageset/Floor.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-fossil.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-fossil.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-fossil.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-fossil.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-fossil.imageset/Fossil_NH_Inv_Icon.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-fossil.imageset/Fossil_NH_Inv_Icon.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-fossil.imageset/Fossil_NH_Inv_Icon.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-fossil.imageset/Fossil_NH_Inv_Icon.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-glasses.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-glasses.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-glasses.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-glasses.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-glasses.imageset/Glasses.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-glasses.imageset/Glasses.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-glasses.imageset/Glasses.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-glasses.imageset/Glasses.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-gold.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-gold.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-gold.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-gold.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-gold.imageset/Gold_Ore.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-gold.imageset/Gold_Ore.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-gold.imageset/Gold_Ore.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-gold.imageset/Gold_Ore.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-hardwood.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-hardwood.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-hardwood.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-hardwood.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-hardwood.imageset/DIYWoodHard.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-hardwood.imageset/DIYWoodHard.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-hardwood.imageset/DIYWoodHard.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-hardwood.imageset/DIYWoodHard.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-helm.imageset/Cap.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-helm.imageset/Cap.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-helm.imageset/Cap.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-helm.imageset/Cap.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-helm.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-helm.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-helm.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-helm.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-helmet.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-helmet.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-helmet.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-helmet.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-helmet.imageset/Helmet.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-helmet.imageset/Helmet.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-helmet.imageset/Helmet.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-helmet.imageset/Helmet.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-housewares.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-housewares.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-housewares.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-housewares.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-housewares.imageset/Image.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-housewares.imageset/Image.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-housewares.imageset/Image.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-housewares.imageset/Image.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-insect.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-insect.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-insect.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-insect.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-insect.imageset/Net.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-insect.imageset/Net.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-insect.imageset/Net.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-insect.imageset/Net.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-iron.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-iron.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-iron.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-iron.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-iron.imageset/OreIron.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-iron.imageset/OreIron.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-iron.imageset/OreIron.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-iron.imageset/OreIron.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-leaf-design.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-leaf-design.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-leaf-design.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-leaf-design.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-leaf-design.imageset/LeafDesign.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-leaf-design.imageset/LeafDesign.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-leaf-design.imageset/LeafDesign.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-leaf-design.imageset/LeafDesign.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-leaf-tabbar.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-leaf-tabbar.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-leaf-tabbar.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-leaf-tabbar.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-leaf-tabbar.imageset/Furniture_NH_Inv_Icon.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-leaf-tabbar.imageset/Furniture_NH_Inv_Icon.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-leaf-tabbar.imageset/Furniture_NH_Inv_Icon.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-leaf-tabbar.imageset/Furniture_NH_Inv_Icon.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-leaf.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-leaf.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-leaf.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-leaf.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-leaf.imageset/Furniture_NH_Inv_Icon.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-leaf.imageset/Furniture_NH_Inv_Icon.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-leaf.imageset/Furniture_NH_Inv_Icon.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-leaf.imageset/Furniture_NH_Inv_Icon.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mapple-leaf.imageset/AutumnLeaf.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mapple-leaf.imageset/AutumnLeaf.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mapple-leaf.imageset/AutumnLeaf.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mapple-leaf.imageset/AutumnLeaf.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mapple-leaf.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mapple-leaf.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mapple-leaf.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mapple-leaf.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-miles.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-miles.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-miles.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-miles.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-miles.imageset/PlaneTicket.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-miles.imageset/PlaneTicket.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-miles.imageset/PlaneTicket.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-miles.imageset/PlaneTicket.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-miscellaneous.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-miscellaneous.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-miscellaneous.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-miscellaneous.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-miscellaneous.imageset/icon-miscellaneous.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-miscellaneous.imageset/icon-miscellaneous.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-miscellaneous.imageset/icon-miscellaneous.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-miscellaneous.imageset/icon-miscellaneous.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom1.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom1.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom1.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom1.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom1.imageset/Mush0.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom1.imageset/Mush0.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom1.imageset/Mush0.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom1.imageset/Mush0.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom2.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom2.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom2.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom2.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom2.imageset/Mush1.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom2.imageset/Mush1.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom2.imageset/Mush1.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom2.imageset/Mush1.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom3.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom3.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom3.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom3.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom3.imageset/Mush2.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom3.imageset/Mush2.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom3.imageset/Mush2.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom3.imageset/Mush2.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom4.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom4.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom4.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom4.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom4.imageset/Mush4.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom4.imageset/Mush4.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-mushroom4.imageset/Mush4.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-mushroom4.imageset/Mush4.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-nookmiles.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-nookmiles.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-nookmiles.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-nookmiles.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-nookmiles.imageset/icon-nookmiles.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-nookmiles.imageset/icon-nookmiles.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-nookmiles.imageset/icon-nookmiles.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-nookmiles.imageset/icon-nookmiles.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-nookpoint.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-nookpoint.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-nookpoint.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-nookpoint.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-nookpoint.imageset/icon-nookpoint.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-nookpoint.imageset/icon-nookpoint.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-nookpoint.imageset/icon-nookpoint.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-nookpoint.imageset/icon-nookpoint.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-paint.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-paint.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-paint.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-paint.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-paint.imageset/RemakeKit.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-paint.imageset/RemakeKit.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-paint.imageset/RemakeKit.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-paint.imageset/RemakeKit.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-pant.imageset/Bottoms.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-pant.imageset/Bottoms.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-pant.imageset/Bottoms.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-pant.imageset/Bottoms.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-pant.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-pant.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-pant.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-pant.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-pearl.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-pearl.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-pearl.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-pearl.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-pearl.imageset/icon-pearl.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-pearl.imageset/icon-pearl.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-pearl.imageset/icon-pearl.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-pearl.imageset/icon-pearl.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-photos.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-photos.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-photos.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-photos.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-photos.imageset/icon-photos.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-photos.imageset/icon-photos.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-photos.imageset/icon-photos.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-photos.imageset/icon-photos.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-poki.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-poki.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-poki.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-poki.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-poki.imageset/icon-poki.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-poki.imageset/icon-poki.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-poki.imageset/icon-poki.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-poki.imageset/icon-poki.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-posters.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-posters.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-posters.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-posters.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-posters.imageset/Image.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-posters.imageset/Image.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-posters.imageset/Image.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-posters.imageset/Image.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-present.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-present.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-present.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-present.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-present.imageset/Present.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-present.imageset/Present.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-present.imageset/Present.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-present.imageset/Present.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-present2.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-present2.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-present2.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-present2.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-present2.imageset/Present2.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-present2.imageset/Present2.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-present2.imageset/Present2.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-present2.imageset/Present2.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-reactions.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-reactions.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-reactions.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-reactions.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-reactions.imageset/Grin.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-reactions.imageset/Grin.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-reactions.imageset/Grin.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-reactions.imageset/Grin.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-recipe.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-recipe.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-recipe.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-recipe.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-recipe.imageset/recipe-icon.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-recipe.imageset/recipe-icon.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-recipe.imageset/recipe-icon.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-recipe.imageset/recipe-icon.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-rug.imageset/Carpet.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-rug.imageset/Carpet.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-rug.imageset/Carpet.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-rug.imageset/Carpet.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-rug.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-rug.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-rug.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-rug.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-shoes.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-shoes.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-shoes.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-shoes.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-shoes.imageset/Shoes.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-shoes.imageset/Shoes.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-shoes.imageset/Shoes.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-shoes.imageset/Shoes.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-socks.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-socks.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-socks.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-socks.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-socks.imageset/Socks.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-socks.imageset/Socks.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-socks.imageset/Socks.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-socks.imageset/Socks.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-softwood.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-softwood.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-softwood.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-softwood.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-softwood.imageset/DIYWoodSoft.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-softwood.imageset/DIYWoodSoft.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-softwood.imageset/DIYWoodSoft.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-softwood.imageset/DIYWoodSoft.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-song.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-song.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-song.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-song.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-song.imageset/Music.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-song.imageset/Music.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-song.imageset/Music.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-song.imageset/Music.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-stone.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-stone.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-stone.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-stone.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-stone.imageset/Image.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-stone.imageset/Image.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-stone.imageset/Image.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-stone.imageset/Image.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-tool.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-tool.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-tool.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-tool.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-tool.imageset/Scoop.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-tool.imageset/Scoop.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-tool.imageset/Scoop.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-tool.imageset/Scoop.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-top.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-top.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-top.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-top.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-top.imageset/Dress_NH_Inv_Icon.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-top.imageset/Dress_NH_Inv_Icon.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-top.imageset/Dress_NH_Inv_Icon.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-top.imageset/Dress_NH_Inv_Icon.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-turnip-tabbar.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-turnip-tabbar.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-turnip-tabbar.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-turnip-tabbar.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-turnip-tabbar.imageset/Turnip_NH_Inv_Icon.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-turnip-tabbar.imageset/Turnip_NH_Inv_Icon.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-turnip-tabbar.imageset/Turnip_NH_Inv_Icon.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-turnip-tabbar.imageset/Turnip_NH_Inv_Icon.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-turnip.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-turnip.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-turnip.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-turnip.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-turnip.imageset/Turnip_NH_Inv_Icon.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-turnip.imageset/Turnip_NH_Inv_Icon.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-turnip.imageset/Turnip_NH_Inv_Icon.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-turnip.imageset/Turnip_NH_Inv_Icon.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-umbrella.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-umbrella.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-umbrella.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-umbrella.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-umbrella.imageset/Umbrella.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-umbrella.imageset/Umbrella.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-umbrella.imageset/Umbrella.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-umbrella.imageset/Umbrella.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-villager-tabbar.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-villager-tabbar.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-villager-tabbar.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-villager-tabbar.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-villager-tabbar.imageset/Pietro_PC_icon.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-villager-tabbar.imageset/Pietro_PC_icon.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-villager-tabbar.imageset/Pietro_PC_icon.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-villager-tabbar.imageset/Pietro_PC_icon.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-villager.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-villager.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-villager.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-villager.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-villager.imageset/Pietro_PC_icon.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-villager.imageset/Pietro_PC_icon.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-villager.imageset/Pietro_PC_icon.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-villager.imageset/Pietro_PC_icon.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wallmounted.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wallmounted.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wallmounted.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wallmounted.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wallmounted.imageset/Image.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wallmounted.imageset/Image.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wallmounted.imageset/Image.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wallmounted.imageset/Image.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wallpaper.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wallpaper.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wallpaper.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wallpaper.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wallpaper.imageset/Wall.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wallpaper.imageset/Wall.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wallpaper.imageset/Wall.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wallpaper.imageset/Wall.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-weed.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-weed.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-weed.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-weed.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-weed.imageset/Weed.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-weed.imageset/Weed.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-weed.imageset/Weed.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-weed.imageset/Weed.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wetsuit.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wetsuit.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wetsuit.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wetsuit.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wetsuit.imageset/WetSuit.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wetsuit.imageset/WetSuit.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wetsuit.imageset/WetSuit.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wetsuit.imageset/WetSuit.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wood.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wood.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wood.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wood.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wood.imageset/DIYWoodNormal.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wood.imageset/DIYWoodNormal.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/icon-wood.imageset/DIYWoodNormal.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/icon-wood.imageset/DIYWoodNormal.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv0.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv0.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv0.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv0.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv0.imageset/Inv0.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv0.imageset/Inv0.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv0.imageset/Inv0.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv0.imageset/Inv0.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv1.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv1.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv1.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv1.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv1.imageset/Inv1.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv1.imageset/Inv1.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv1.imageset/Inv1.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv1.imageset/Inv1.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv10.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv10.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv10.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv10.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv10.imageset/Inv10.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv10.imageset/Inv10.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv10.imageset/Inv10.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv10.imageset/Inv10.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv100.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv100.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv100.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv100.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv100.imageset/Inv100.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv100.imageset/Inv100.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv100.imageset/Inv100.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv100.imageset/Inv100.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv101.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv101.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv101.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv101.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv101.imageset/Inv101.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv101.imageset/Inv101.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv101.imageset/Inv101.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv101.imageset/Inv101.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv102.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv102.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv102.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv102.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv102.imageset/Inv102.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv102.imageset/Inv102.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv102.imageset/Inv102.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv102.imageset/Inv102.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv103.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv103.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv103.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv103.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv103.imageset/Inv103.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv103.imageset/Inv103.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv103.imageset/Inv103.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv103.imageset/Inv103.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv104.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv104.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv104.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv104.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv104.imageset/Inv104.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv104.imageset/Inv104.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv104.imageset/Inv104.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv104.imageset/Inv104.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv105.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv105.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv105.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv105.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv105.imageset/Inv105.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv105.imageset/Inv105.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv105.imageset/Inv105.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv105.imageset/Inv105.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv106.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv106.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv106.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv106.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv106.imageset/Inv106.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv106.imageset/Inv106.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv106.imageset/Inv106.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv106.imageset/Inv106.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv107.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv107.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv107.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv107.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv107.imageset/Inv107.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv107.imageset/Inv107.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv107.imageset/Inv107.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv107.imageset/Inv107.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv108.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv108.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv108.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv108.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv108.imageset/Inv108.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv108.imageset/Inv108.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv108.imageset/Inv108.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv108.imageset/Inv108.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv109.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv109.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv109.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv109.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv109.imageset/Inv109.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv109.imageset/Inv109.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv109.imageset/Inv109.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv109.imageset/Inv109.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv11.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv11.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv11.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv11.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv11.imageset/Inv11.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv11.imageset/Inv11.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv11.imageset/Inv11.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv11.imageset/Inv11.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv110.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv110.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv110.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv110.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv110.imageset/Inv110.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv110.imageset/Inv110.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv110.imageset/Inv110.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv110.imageset/Inv110.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv111.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv111.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv111.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv111.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv111.imageset/Inv111.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv111.imageset/Inv111.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv111.imageset/Inv111.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv111.imageset/Inv111.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv112.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv112.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv112.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv112.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv112.imageset/Inv112.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv112.imageset/Inv112.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv112.imageset/Inv112.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv112.imageset/Inv112.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv113.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv113.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv113.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv113.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv113.imageset/Inv113.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv113.imageset/Inv113.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv113.imageset/Inv113.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv113.imageset/Inv113.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv114.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv114.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv114.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv114.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv114.imageset/Inv114.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv114.imageset/Inv114.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv114.imageset/Inv114.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv114.imageset/Inv114.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv115.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv115.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv115.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv115.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv115.imageset/Inv115.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv115.imageset/Inv115.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv115.imageset/Inv115.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv115.imageset/Inv115.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv116.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv116.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv116.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv116.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv116.imageset/Inv116.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv116.imageset/Inv116.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv116.imageset/Inv116.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv116.imageset/Inv116.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv117.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv117.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv117.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv117.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv117.imageset/Inv117.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv117.imageset/Inv117.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv117.imageset/Inv117.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv117.imageset/Inv117.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv118.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv118.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv118.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv118.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv118.imageset/Inv118.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv118.imageset/Inv118.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv118.imageset/Inv118.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv118.imageset/Inv118.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv119.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv119.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv119.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv119.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv119.imageset/Inv119.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv119.imageset/Inv119.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv119.imageset/Inv119.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv119.imageset/Inv119.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv12.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv12.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv12.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv12.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv12.imageset/Inv12.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv12.imageset/Inv12.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv12.imageset/Inv12.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv12.imageset/Inv12.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv120.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv120.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv120.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv120.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv120.imageset/Inv120.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv120.imageset/Inv120.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv120.imageset/Inv120.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv120.imageset/Inv120.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv121.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv121.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv121.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv121.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv121.imageset/Inv121.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv121.imageset/Inv121.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv121.imageset/Inv121.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv121.imageset/Inv121.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv122.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv122.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv122.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv122.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv122.imageset/Inv122.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv122.imageset/Inv122.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv122.imageset/Inv122.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv122.imageset/Inv122.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv123.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv123.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv123.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv123.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv123.imageset/Inv123.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv123.imageset/Inv123.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv123.imageset/Inv123.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv123.imageset/Inv123.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv124.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv124.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv124.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv124.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv124.imageset/Inv124.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv124.imageset/Inv124.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv124.imageset/Inv124.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv124.imageset/Inv124.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv125.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv125.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv125.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv125.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv125.imageset/Inv125.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv125.imageset/Inv125.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv125.imageset/Inv125.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv125.imageset/Inv125.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv126.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv126.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv126.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv126.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv126.imageset/Inv126.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv126.imageset/Inv126.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv126.imageset/Inv126.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv126.imageset/Inv126.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv127.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv127.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv127.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv127.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv127.imageset/Inv127.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv127.imageset/Inv127.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv127.imageset/Inv127.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv127.imageset/Inv127.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv128.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv128.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv128.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv128.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv128.imageset/Inv128.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv128.imageset/Inv128.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv128.imageset/Inv128.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv128.imageset/Inv128.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv129.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv129.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv129.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv129.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv129.imageset/Inv129.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv129.imageset/Inv129.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv129.imageset/Inv129.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv129.imageset/Inv129.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv13.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv13.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv13.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv13.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv13.imageset/Inv13.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv13.imageset/Inv13.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv13.imageset/Inv13.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv13.imageset/Inv13.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv130.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv130.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv130.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv130.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv130.imageset/Inv130.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv130.imageset/Inv130.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv130.imageset/Inv130.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv130.imageset/Inv130.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv131.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv131.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv131.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv131.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv131.imageset/Inv131.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv131.imageset/Inv131.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv131.imageset/Inv131.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv131.imageset/Inv131.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv132.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv132.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv132.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv132.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv132.imageset/Inv132.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv132.imageset/Inv132.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv132.imageset/Inv132.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv132.imageset/Inv132.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv133.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv133.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv133.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv133.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv133.imageset/Inv133.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv133.imageset/Inv133.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv133.imageset/Inv133.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv133.imageset/Inv133.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv134.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv134.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv134.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv134.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv134.imageset/Inv134.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv134.imageset/Inv134.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv134.imageset/Inv134.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv134.imageset/Inv134.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv135.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv135.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv135.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv135.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv135.imageset/Inv135.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv135.imageset/Inv135.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv135.imageset/Inv135.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv135.imageset/Inv135.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv136.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv136.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv136.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv136.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv136.imageset/Inv136.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv136.imageset/Inv136.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv136.imageset/Inv136.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv136.imageset/Inv136.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv137.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv137.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv137.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv137.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv137.imageset/Inv137.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv137.imageset/Inv137.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv137.imageset/Inv137.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv137.imageset/Inv137.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv138.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv138.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv138.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv138.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv138.imageset/Inv138.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv138.imageset/Inv138.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv138.imageset/Inv138.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv138.imageset/Inv138.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv139.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv139.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv139.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv139.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv139.imageset/Inv139.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv139.imageset/Inv139.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv139.imageset/Inv139.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv139.imageset/Inv139.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv14.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv14.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv14.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv14.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv14.imageset/Inv14.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv14.imageset/Inv14.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv14.imageset/Inv14.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv14.imageset/Inv14.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv140.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv140.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv140.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv140.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv140.imageset/Inv140.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv140.imageset/Inv140.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv140.imageset/Inv140.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv140.imageset/Inv140.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv141.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv141.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv141.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv141.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv141.imageset/Inv141.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv141.imageset/Inv141.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv141.imageset/Inv141.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv141.imageset/Inv141.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv142.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv142.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv142.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv142.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv142.imageset/Inv142.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv142.imageset/Inv142.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv142.imageset/Inv142.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv142.imageset/Inv142.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv143.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv143.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv143.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv143.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv143.imageset/Inv143.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv143.imageset/Inv143.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv143.imageset/Inv143.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv143.imageset/Inv143.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv144.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv144.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv144.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv144.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv144.imageset/Inv144.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv144.imageset/Inv144.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv144.imageset/Inv144.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv144.imageset/Inv144.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv145.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv145.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv145.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv145.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv145.imageset/Inv145.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv145.imageset/Inv145.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv145.imageset/Inv145.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv145.imageset/Inv145.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv146.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv146.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv146.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv146.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv146.imageset/Inv146.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv146.imageset/Inv146.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv146.imageset/Inv146.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv146.imageset/Inv146.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv147.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv147.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv147.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv147.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv147.imageset/Inv147.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv147.imageset/Inv147.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv147.imageset/Inv147.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv147.imageset/Inv147.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv148.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv148.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv148.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv148.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv148.imageset/Inv148.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv148.imageset/Inv148.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv148.imageset/Inv148.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv148.imageset/Inv148.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv149.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv149.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv149.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv149.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv149.imageset/Inv149.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv149.imageset/Inv149.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv149.imageset/Inv149.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv149.imageset/Inv149.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv15.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv15.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv15.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv15.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv15.imageset/Inv15.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv15.imageset/Inv15.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv15.imageset/Inv15.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv15.imageset/Inv15.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv150.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv150.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv150.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv150.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv150.imageset/Inv150.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv150.imageset/Inv150.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv150.imageset/Inv150.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv150.imageset/Inv150.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv151.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv151.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv151.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv151.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv151.imageset/Inv151.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv151.imageset/Inv151.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv151.imageset/Inv151.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv151.imageset/Inv151.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv152.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv152.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv152.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv152.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv152.imageset/Inv152.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv152.imageset/Inv152.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv152.imageset/Inv152.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv152.imageset/Inv152.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv153.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv153.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv153.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv153.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv153.imageset/Inv153.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv153.imageset/Inv153.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv153.imageset/Inv153.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv153.imageset/Inv153.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv154.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv154.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv154.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv154.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv154.imageset/Inv154.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv154.imageset/Inv154.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv154.imageset/Inv154.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv154.imageset/Inv154.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv155.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv155.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv155.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv155.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv155.imageset/Inv155.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv155.imageset/Inv155.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv155.imageset/Inv155.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv155.imageset/Inv155.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv156.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv156.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv156.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv156.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv156.imageset/Inv156.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv156.imageset/Inv156.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv156.imageset/Inv156.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv156.imageset/Inv156.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv157.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv157.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv157.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv157.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv157.imageset/Inv157.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv157.imageset/Inv157.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv157.imageset/Inv157.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv157.imageset/Inv157.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv158.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv158.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv158.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv158.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv158.imageset/Inv158.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv158.imageset/Inv158.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv158.imageset/Inv158.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv158.imageset/Inv158.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv159.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv159.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv159.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv159.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv159.imageset/Inv159.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv159.imageset/Inv159.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv159.imageset/Inv159.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv159.imageset/Inv159.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv16.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv16.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv16.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv16.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv16.imageset/Inv16.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv16.imageset/Inv16.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv16.imageset/Inv16.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv16.imageset/Inv16.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv160.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv160.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv160.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv160.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv160.imageset/Inv160.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv160.imageset/Inv160.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv160.imageset/Inv160.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv160.imageset/Inv160.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv161.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv161.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv161.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv161.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv161.imageset/Inv161.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv161.imageset/Inv161.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv161.imageset/Inv161.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv161.imageset/Inv161.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv162.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv162.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv162.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv162.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv162.imageset/Inv162.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv162.imageset/Inv162.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv162.imageset/Inv162.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv162.imageset/Inv162.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv163.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv163.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv163.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv163.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv163.imageset/Inv163.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv163.imageset/Inv163.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv163.imageset/Inv163.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv163.imageset/Inv163.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv164.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv164.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv164.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv164.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv164.imageset/Inv164.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv164.imageset/Inv164.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv164.imageset/Inv164.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv164.imageset/Inv164.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv165.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv165.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv165.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv165.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv165.imageset/Inv165.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv165.imageset/Inv165.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv165.imageset/Inv165.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv165.imageset/Inv165.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv166.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv166.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv166.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv166.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv166.imageset/Inv166.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv166.imageset/Inv166.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv166.imageset/Inv166.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv166.imageset/Inv166.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv167.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv167.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv167.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv167.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv167.imageset/Inv167.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv167.imageset/Inv167.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv167.imageset/Inv167.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv167.imageset/Inv167.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv168.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv168.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv168.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv168.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv168.imageset/Inv168.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv168.imageset/Inv168.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv168.imageset/Inv168.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv168.imageset/Inv168.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv169.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv169.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv169.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv169.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv169.imageset/Inv169.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv169.imageset/Inv169.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv169.imageset/Inv169.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv169.imageset/Inv169.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv17.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv17.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv17.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv17.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv17.imageset/Inv17.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv17.imageset/Inv17.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv17.imageset/Inv17.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv17.imageset/Inv17.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv170.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv170.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv170.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv170.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv170.imageset/Inv170.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv170.imageset/Inv170.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv170.imageset/Inv170.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv170.imageset/Inv170.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv171.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv171.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv171.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv171.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv171.imageset/Inv171.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv171.imageset/Inv171.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv171.imageset/Inv171.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv171.imageset/Inv171.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv172.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv172.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv172.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv172.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv172.imageset/Inv172.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv172.imageset/Inv172.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv172.imageset/Inv172.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv172.imageset/Inv172.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv173.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv173.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv173.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv173.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv173.imageset/Inv173.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv173.imageset/Inv173.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv173.imageset/Inv173.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv173.imageset/Inv173.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv174.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv174.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv174.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv174.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv174.imageset/Inv174.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv174.imageset/Inv174.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv174.imageset/Inv174.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv174.imageset/Inv174.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv175.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv175.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv175.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv175.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv175.imageset/Inv175.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv175.imageset/Inv175.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv175.imageset/Inv175.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv175.imageset/Inv175.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv176.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv176.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv176.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv176.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv176.imageset/Inv176.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv176.imageset/Inv176.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv176.imageset/Inv176.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv176.imageset/Inv176.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv177.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv177.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv177.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv177.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv177.imageset/Inv177.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv177.imageset/Inv177.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv177.imageset/Inv177.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv177.imageset/Inv177.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv178.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv178.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv178.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv178.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv178.imageset/Inv178.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv178.imageset/Inv178.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv178.imageset/Inv178.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv178.imageset/Inv178.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv179.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv179.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv179.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv179.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv179.imageset/Inv179.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv179.imageset/Inv179.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv179.imageset/Inv179.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv179.imageset/Inv179.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv18.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv18.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv18.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv18.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv18.imageset/Inv18.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv18.imageset/Inv18.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv18.imageset/Inv18.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv18.imageset/Inv18.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv180.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv180.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv180.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv180.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv180.imageset/Inv180.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv180.imageset/Inv180.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv180.imageset/Inv180.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv180.imageset/Inv180.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv181.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv181.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv181.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv181.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv181.imageset/Inv181.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv181.imageset/Inv181.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv181.imageset/Inv181.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv181.imageset/Inv181.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv182.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv182.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv182.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv182.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv182.imageset/Inv182.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv182.imageset/Inv182.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv182.imageset/Inv182.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv182.imageset/Inv182.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv183.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv183.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv183.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv183.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv183.imageset/Inv183.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv183.imageset/Inv183.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv183.imageset/Inv183.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv183.imageset/Inv183.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv184.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv184.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv184.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv184.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv184.imageset/Inv184.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv184.imageset/Inv184.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv184.imageset/Inv184.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv184.imageset/Inv184.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv185.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv185.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv185.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv185.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv185.imageset/Inv185.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv185.imageset/Inv185.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv185.imageset/Inv185.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv185.imageset/Inv185.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv186.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv186.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv186.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv186.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv186.imageset/Inv186.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv186.imageset/Inv186.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv186.imageset/Inv186.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv186.imageset/Inv186.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv187.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv187.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv187.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv187.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv187.imageset/Inv187.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv187.imageset/Inv187.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv187.imageset/Inv187.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv187.imageset/Inv187.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv188.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv188.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv188.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv188.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv188.imageset/Inv188.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv188.imageset/Inv188.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv188.imageset/Inv188.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv188.imageset/Inv188.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv189.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv189.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv189.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv189.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv189.imageset/Inv189.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv189.imageset/Inv189.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv189.imageset/Inv189.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv189.imageset/Inv189.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv19.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv19.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv19.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv19.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv19.imageset/Inv19.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv19.imageset/Inv19.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv19.imageset/Inv19.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv19.imageset/Inv19.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv190.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv190.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv190.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv190.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv190.imageset/Inv190.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv190.imageset/Inv190.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv190.imageset/Inv190.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv190.imageset/Inv190.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv191.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv191.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv191.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv191.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv191.imageset/Inv191.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv191.imageset/Inv191.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv191.imageset/Inv191.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv191.imageset/Inv191.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv192.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv192.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv192.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv192.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv192.imageset/Inv192.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv192.imageset/Inv192.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv192.imageset/Inv192.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv192.imageset/Inv192.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv193.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv193.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv193.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv193.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv193.imageset/Inv193.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv193.imageset/Inv193.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv193.imageset/Inv193.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv193.imageset/Inv193.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv194.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv194.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv194.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv194.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv194.imageset/Inv194.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv194.imageset/Inv194.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv194.imageset/Inv194.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv194.imageset/Inv194.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv195.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv195.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv195.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv195.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv195.imageset/Inv195.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv195.imageset/Inv195.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv195.imageset/Inv195.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv195.imageset/Inv195.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv196.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv196.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv196.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv196.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv196.imageset/Inv196.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv196.imageset/Inv196.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv196.imageset/Inv196.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv196.imageset/Inv196.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv197.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv197.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv197.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv197.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv197.imageset/Inv197.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv197.imageset/Inv197.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv197.imageset/Inv197.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv197.imageset/Inv197.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv198.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv198.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv198.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv198.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv198.imageset/Inv198.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv198.imageset/Inv198.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv198.imageset/Inv198.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv198.imageset/Inv198.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv199.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv199.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv199.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv199.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv199.imageset/Inv199.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv199.imageset/Inv199.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv199.imageset/Inv199.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv199.imageset/Inv199.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv2.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv2.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv2.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv2.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv2.imageset/Inv2.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv2.imageset/Inv2.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv2.imageset/Inv2.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv2.imageset/Inv2.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv20.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv20.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv20.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv20.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv20.imageset/Inv20.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv20.imageset/Inv20.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv20.imageset/Inv20.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv20.imageset/Inv20.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv21.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv21.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv21.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv21.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv21.imageset/Inv21.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv21.imageset/Inv21.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv21.imageset/Inv21.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv21.imageset/Inv21.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv22.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv22.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv22.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv22.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv22.imageset/Inv22.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv22.imageset/Inv22.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv22.imageset/Inv22.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv22.imageset/Inv22.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv23.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv23.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv23.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv23.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv23.imageset/Inv23.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv23.imageset/Inv23.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv23.imageset/Inv23.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv23.imageset/Inv23.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv24.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv24.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv24.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv24.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv24.imageset/Inv24.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv24.imageset/Inv24.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv24.imageset/Inv24.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv24.imageset/Inv24.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv25.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv25.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv25.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv25.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv25.imageset/Inv25.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv25.imageset/Inv25.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv25.imageset/Inv25.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv25.imageset/Inv25.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv26.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv26.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv26.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv26.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv26.imageset/Inv26.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv26.imageset/Inv26.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv26.imageset/Inv26.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv26.imageset/Inv26.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv27.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv27.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv27.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv27.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv27.imageset/Inv27.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv27.imageset/Inv27.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv27.imageset/Inv27.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv27.imageset/Inv27.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv28.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv28.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv28.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv28.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv28.imageset/Inv28.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv28.imageset/Inv28.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv28.imageset/Inv28.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv28.imageset/Inv28.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv29.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv29.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv29.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv29.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv29.imageset/Inv29.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv29.imageset/Inv29.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv29.imageset/Inv29.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv29.imageset/Inv29.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv3.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv3.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv3.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv3.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv3.imageset/Inv3.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv3.imageset/Inv3.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv3.imageset/Inv3.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv3.imageset/Inv3.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv30.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv30.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv30.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv30.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv30.imageset/Inv30.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv30.imageset/Inv30.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv30.imageset/Inv30.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv30.imageset/Inv30.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv31.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv31.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv31.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv31.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv31.imageset/Inv31.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv31.imageset/Inv31.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv31.imageset/Inv31.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv31.imageset/Inv31.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv32.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv32.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv32.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv32.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv32.imageset/Inv32.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv32.imageset/Inv32.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv32.imageset/Inv32.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv32.imageset/Inv32.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv33.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv33.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv33.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv33.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv33.imageset/Inv33.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv33.imageset/Inv33.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv33.imageset/Inv33.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv33.imageset/Inv33.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv34.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv34.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv34.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv34.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv34.imageset/Inv34.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv34.imageset/Inv34.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv34.imageset/Inv34.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv34.imageset/Inv34.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv35.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv35.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv35.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv35.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv35.imageset/Inv35.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv35.imageset/Inv35.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv35.imageset/Inv35.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv35.imageset/Inv35.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv36.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv36.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv36.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv36.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv36.imageset/Inv36.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv36.imageset/Inv36.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv36.imageset/Inv36.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv36.imageset/Inv36.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv37.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv37.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv37.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv37.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv37.imageset/Inv37.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv37.imageset/Inv37.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv37.imageset/Inv37.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv37.imageset/Inv37.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv38.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv38.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv38.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv38.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv38.imageset/Inv38.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv38.imageset/Inv38.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv38.imageset/Inv38.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv38.imageset/Inv38.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv39.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv39.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv39.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv39.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv39.imageset/Inv39.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv39.imageset/Inv39.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv39.imageset/Inv39.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv39.imageset/Inv39.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv4.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv4.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv4.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv4.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv4.imageset/Inv4.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv4.imageset/Inv4.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv4.imageset/Inv4.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv4.imageset/Inv4.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv40.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv40.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv40.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv40.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv40.imageset/Inv40.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv40.imageset/Inv40.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv40.imageset/Inv40.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv40.imageset/Inv40.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv41.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv41.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv41.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv41.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv41.imageset/Inv41.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv41.imageset/Inv41.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv41.imageset/Inv41.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv41.imageset/Inv41.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv42.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv42.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv42.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv42.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv42.imageset/Inv42.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv42.imageset/Inv42.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv42.imageset/Inv42.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv42.imageset/Inv42.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv43.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv43.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv43.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv43.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv43.imageset/Inv43.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv43.imageset/Inv43.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv43.imageset/Inv43.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv43.imageset/Inv43.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv44.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv44.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv44.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv44.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv44.imageset/Inv44.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv44.imageset/Inv44.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv44.imageset/Inv44.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv44.imageset/Inv44.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv45.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv45.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv45.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv45.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv45.imageset/Inv45.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv45.imageset/Inv45.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv45.imageset/Inv45.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv45.imageset/Inv45.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv46.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv46.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv46.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv46.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv46.imageset/Inv46.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv46.imageset/Inv46.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv46.imageset/Inv46.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv46.imageset/Inv46.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv47.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv47.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv47.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv47.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv47.imageset/Inv47.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv47.imageset/Inv47.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv47.imageset/Inv47.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv47.imageset/Inv47.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv48.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv48.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv48.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv48.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv48.imageset/Inv48.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv48.imageset/Inv48.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv48.imageset/Inv48.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv48.imageset/Inv48.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv49.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv49.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv49.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv49.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv49.imageset/Inv49.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv49.imageset/Inv49.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv49.imageset/Inv49.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv49.imageset/Inv49.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv5.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv5.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv5.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv5.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv5.imageset/Inv5.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv5.imageset/Inv5.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv5.imageset/Inv5.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv5.imageset/Inv5.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv50.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv50.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv50.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv50.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv50.imageset/Inv50.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv50.imageset/Inv50.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv50.imageset/Inv50.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv50.imageset/Inv50.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv51.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv51.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv51.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv51.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv51.imageset/Inv51.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv51.imageset/Inv51.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv51.imageset/Inv51.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv51.imageset/Inv51.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv52.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv52.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv52.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv52.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv52.imageset/Inv52.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv52.imageset/Inv52.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv52.imageset/Inv52.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv52.imageset/Inv52.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv53.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv53.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv53.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv53.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv53.imageset/Inv53.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv53.imageset/Inv53.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv53.imageset/Inv53.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv53.imageset/Inv53.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv54.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv54.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv54.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv54.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv54.imageset/Inv54.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv54.imageset/Inv54.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv54.imageset/Inv54.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv54.imageset/Inv54.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv55.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv55.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv55.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv55.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv55.imageset/Inv55.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv55.imageset/Inv55.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv55.imageset/Inv55.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv55.imageset/Inv55.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv56.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv56.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv56.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv56.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv56.imageset/Inv56.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv56.imageset/Inv56.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv56.imageset/Inv56.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv56.imageset/Inv56.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv57.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv57.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv57.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv57.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv57.imageset/Inv57.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv57.imageset/Inv57.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv57.imageset/Inv57.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv57.imageset/Inv57.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv58.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv58.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv58.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv58.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv58.imageset/Inv58.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv58.imageset/Inv58.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv58.imageset/Inv58.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv58.imageset/Inv58.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv59.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv59.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv59.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv59.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv59.imageset/Inv59.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv59.imageset/Inv59.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv59.imageset/Inv59.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv59.imageset/Inv59.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv6.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv6.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv6.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv6.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv6.imageset/Inv6.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv6.imageset/Inv6.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv6.imageset/Inv6.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv6.imageset/Inv6.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv60.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv60.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv60.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv60.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv60.imageset/Inv60.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv60.imageset/Inv60.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv60.imageset/Inv60.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv60.imageset/Inv60.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv61.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv61.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv61.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv61.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv61.imageset/Inv61.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv61.imageset/Inv61.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv61.imageset/Inv61.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv61.imageset/Inv61.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv62.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv62.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv62.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv62.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv62.imageset/Inv62.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv62.imageset/Inv62.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv62.imageset/Inv62.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv62.imageset/Inv62.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv63.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv63.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv63.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv63.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv63.imageset/Inv63.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv63.imageset/Inv63.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv63.imageset/Inv63.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv63.imageset/Inv63.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv64.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv64.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv64.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv64.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv64.imageset/Inv64.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv64.imageset/Inv64.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv64.imageset/Inv64.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv64.imageset/Inv64.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv65.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv65.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv65.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv65.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv65.imageset/Inv65.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv65.imageset/Inv65.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv65.imageset/Inv65.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv65.imageset/Inv65.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv66.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv66.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv66.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv66.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv66.imageset/Inv66.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv66.imageset/Inv66.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv66.imageset/Inv66.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv66.imageset/Inv66.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv67.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv67.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv67.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv67.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv67.imageset/Inv67.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv67.imageset/Inv67.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv67.imageset/Inv67.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv67.imageset/Inv67.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv68.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv68.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv68.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv68.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv68.imageset/Inv68.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv68.imageset/Inv68.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv68.imageset/Inv68.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv68.imageset/Inv68.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv69.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv69.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv69.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv69.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv69.imageset/Inv69.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv69.imageset/Inv69.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv69.imageset/Inv69.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv69.imageset/Inv69.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv7.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv7.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv7.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv7.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv7.imageset/Inv7.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv7.imageset/Inv7.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv7.imageset/Inv7.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv7.imageset/Inv7.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv70.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv70.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv70.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv70.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv70.imageset/Inv70.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv70.imageset/Inv70.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv70.imageset/Inv70.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv70.imageset/Inv70.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv71.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv71.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv71.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv71.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv71.imageset/Inv71.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv71.imageset/Inv71.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv71.imageset/Inv71.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv71.imageset/Inv71.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv72.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv72.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv72.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv72.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv72.imageset/Inv72.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv72.imageset/Inv72.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv72.imageset/Inv72.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv72.imageset/Inv72.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv73.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv73.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv73.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv73.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv73.imageset/Inv73.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv73.imageset/Inv73.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv73.imageset/Inv73.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv73.imageset/Inv73.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv74.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv74.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv74.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv74.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv74.imageset/Inv74.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv74.imageset/Inv74.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv74.imageset/Inv74.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv74.imageset/Inv74.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv75.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv75.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv75.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv75.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv75.imageset/Inv75.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv75.imageset/Inv75.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv75.imageset/Inv75.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv75.imageset/Inv75.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv76.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv76.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv76.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv76.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv76.imageset/Inv76.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv76.imageset/Inv76.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv76.imageset/Inv76.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv76.imageset/Inv76.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv77.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv77.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv77.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv77.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv77.imageset/Inv77.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv77.imageset/Inv77.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv77.imageset/Inv77.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv77.imageset/Inv77.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv78.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv78.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv78.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv78.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv78.imageset/Inv78.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv78.imageset/Inv78.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv78.imageset/Inv78.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv78.imageset/Inv78.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv79.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv79.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv79.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv79.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv79.imageset/Inv79.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv79.imageset/Inv79.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv79.imageset/Inv79.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv79.imageset/Inv79.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv8.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv8.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv8.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv8.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv8.imageset/Inv8.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv8.imageset/Inv8.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv8.imageset/Inv8.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv8.imageset/Inv8.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv80.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv80.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv80.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv80.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv80.imageset/Inv80.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv80.imageset/Inv80.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv80.imageset/Inv80.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv80.imageset/Inv80.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv81.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv81.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv81.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv81.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv81.imageset/Inv81.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv81.imageset/Inv81.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv81.imageset/Inv81.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv81.imageset/Inv81.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv82.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv82.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv82.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv82.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv82.imageset/Inv82.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv82.imageset/Inv82.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv82.imageset/Inv82.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv82.imageset/Inv82.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv83.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv83.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv83.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv83.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv83.imageset/Inv83.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv83.imageset/Inv83.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv83.imageset/Inv83.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv83.imageset/Inv83.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv84.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv84.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv84.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv84.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv84.imageset/Inv84.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv84.imageset/Inv84.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv84.imageset/Inv84.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv84.imageset/Inv84.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv85.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv85.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv85.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv85.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv85.imageset/Inv85.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv85.imageset/Inv85.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv85.imageset/Inv85.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv85.imageset/Inv85.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv86.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv86.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv86.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv86.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv86.imageset/Inv86.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv86.imageset/Inv86.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv86.imageset/Inv86.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv86.imageset/Inv86.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv87.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv87.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv87.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv87.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv87.imageset/Inv87.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv87.imageset/Inv87.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv87.imageset/Inv87.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv87.imageset/Inv87.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv88.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv88.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv88.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv88.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv88.imageset/Inv88.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv88.imageset/Inv88.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv88.imageset/Inv88.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv88.imageset/Inv88.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv89.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv89.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv89.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv89.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv89.imageset/Inv89.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv89.imageset/Inv89.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv89.imageset/Inv89.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv89.imageset/Inv89.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv9.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv9.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv9.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv9.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv9.imageset/Inv9.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv9.imageset/Inv9.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv9.imageset/Inv9.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv9.imageset/Inv9.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv90.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv90.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv90.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv90.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv90.imageset/Inv90.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv90.imageset/Inv90.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv90.imageset/Inv90.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv90.imageset/Inv90.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv91.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv91.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv91.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv91.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv91.imageset/Inv91.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv91.imageset/Inv91.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv91.imageset/Inv91.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv91.imageset/Inv91.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv92.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv92.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv92.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv92.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv92.imageset/Inv92.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv92.imageset/Inv92.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv92.imageset/Inv92.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv92.imageset/Inv92.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv93.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv93.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv93.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv93.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv93.imageset/Inv93.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv93.imageset/Inv93.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv93.imageset/Inv93.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv93.imageset/Inv93.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv94.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv94.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv94.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv94.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv94.imageset/Inv94.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv94.imageset/Inv94.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv94.imageset/Inv94.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv94.imageset/Inv94.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv95.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv95.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv95.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv95.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv95.imageset/Inv95.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv95.imageset/Inv95.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv95.imageset/Inv95.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv95.imageset/Inv95.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv96.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv96.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv96.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv96.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv96.imageset/Inv96.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv96.imageset/Inv96.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv96.imageset/Inv96.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv96.imageset/Inv96.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv97.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv97.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv97.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv97.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv97.imageset/Inv97.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv97.imageset/Inv97.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv97.imageset/Inv97.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv97.imageset/Inv97.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv98.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv98.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv98.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv98.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv98.imageset/Inv98.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv98.imageset/Inv98.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv98.imageset/Inv98.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv98.imageset/Inv98.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv99.imageset/Contents.json b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv99.imageset/Contents.json similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv99.imageset/Contents.json rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv99.imageset/Contents.json diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv99.imageset/Inv99.png b/Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv99.imageset/Inv99.png similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Assets.xcassets/icons/inventory/Inv99.imageset/Inv99.png rename to Animal-Crossing-Wiki/Projects/App/Resources/Assets.xcassets/icons/inventory/Inv99.imageset/Inv99.png diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Base.lproj/LaunchScreen.storyboard b/Animal-Crossing-Wiki/Projects/App/Resources/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Resources/Base.lproj/LaunchScreen.storyboard rename to Animal-Crossing-Wiki/Projects/App/Resources/Base.lproj/LaunchScreen.storyboard diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/en.lproj/InfoPlist.strings b/Animal-Crossing-Wiki/Projects/App/Resources/en.lproj/InfoPlist.strings similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/en.lproj/InfoPlist.strings rename to Animal-Crossing-Wiki/Projects/App/Resources/en.lproj/InfoPlist.strings diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/en.lproj/Localizable.strings b/Animal-Crossing-Wiki/Projects/App/Resources/en.lproj/Localizable.strings similarity index 84% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/en.lproj/Localizable.strings rename to Animal-Crossing-Wiki/Projects/App/Resources/en.lproj/Localizable.strings index ffb62a4f..74ec0150 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/en.lproj/Localizable.strings +++ b/Animal-Crossing-Wiki/Projects/App/Resources/en.lproj/Localizable.strings @@ -26,9 +26,7 @@ "Please set a name." = "Please set a name."; "Please set a Island Name." = "Please set a Island Name."; "Please set a Hemisphere." = "Please set a Hemisphere."; -"ISLAND" = "ISLAND"; "USER" = "USER"; -"HEMISPHERE" = "HEMISPHERE"; "FRUIT" = "FRUIT"; "REPUTATION" = "REPUTATION"; @@ -43,7 +41,7 @@ Find the villagers you have visited and tap the home icon on the villager's page "tip" = "Long press on a villager to see more info about them."; // MARK: - PreferencesViewController -"Island" = "Island"; +"island" = "island"; "Preferences" = "Preferences"; "App Settings" = "App Settings"; @@ -52,7 +50,7 @@ Find the villagers you have visited and tap the home icon on the villager's page "Your user name" = "Your user name"; "Island name" = "Island name"; "User name" = "User name"; -"Hemisphere" = "Hemisphere"; +"hemisphere" = "hemisphere"; "Starting fruit" = "Starting fruit"; "Island Reputation" = "Island Reputation"; @@ -189,6 +187,7 @@ Find the villagers you have visited and tap the home icon on the villager's page "Whether fake" = "Whether fake"; "Original" = "Original"; "Fake" = "Fake"; +"keyword" = "keyword"; "Disguised on shoreline" = "Disguised on shoreline"; "Disguised under trees" = "Disguised under trees"; @@ -252,7 +251,6 @@ Find the villagers you have visited and tap the home icon on the villager's page "4 AM – 8 AM" = "4 AM – 8 AM"; "4 AM – 9 PM" = "4 AM – 9 PM"; "4 AM – 7 PM" = "4 AM – 7 PM"; -"4 AM – 8 AM" = "4 AM – 8 AM"; "4 PM – 11 PM" = "4 PM – 11 PM"; "4 PM – 7 PM" = "4 PM – 7 PM"; "4 PM – 9 AM" = "4 PM – 9 AM"; @@ -265,7 +263,6 @@ Find the villagers you have visited and tap the home icon on the villager's page "8 AM – 5 PM" = "8 AM – 5 PM"; "8 AM – 7 PM" = "8 AM – 7 PM"; "9 AM – 4 PM" = "9 AM – 4 PM"; -"9 PM – 4 AM" = "9 PM – 4 AM"; "9 PM – 4 AM" = "9 PM – 4 AM"; "All day" = "All day"; @@ -285,55 +282,56 @@ Find the villagers you have visited and tap the home icon on the villager's page "Tap the villager's home button and it will appear here." = "Tap the villager's home button and it will appear here." ; // MARK: - Personality -"Big Sister" = "Big Sister"; -"Cranky" = "Cranky"; -"Jock" = "Jock"; -"Normal" = "Normal"; -"Peppy" = "Peppy"; -"Lazy" = "Lazy"; -"Smug" = "Smug"; -"Snooty" = "Snooty"; +"big sister" = "Big Sister"; +"cranky" = "Cranky"; +"jock" = "Jock"; +"normal" = "Normal"; +"peppy" = "Peppy"; +"lazy" = "Lazy"; +"smug" = "Smug"; +"snooty" = "Snooty"; // MARK: - Gender -"Female" = "Female"; -"Male" = "Male"; +"female" = "Female"; +"male" = "Male"; // MARK: - Specie -"Hamster" = "Hamster"; -"Dog" = "Dog"; -"Cow" = "Cow"; -"Squirrel" = "Squirrel"; -"Koala" = "Koala"; -"Rhinoceros" = "Rhinoceros"; -"Rabbit" = "Rabbit"; -"Hippo" = "Hippo"; -"Eagle" = "Eagle"; -"Bull" = "Bull"; -"Pig" = "Pig"; -"Kangaroo" = "Kangaroo"; -"Gorilla" = "Gorilla"; -"Ostrich" = "Ostrich"; -"Deer" = "Deer"; -"Monkey" = "Monkey"; -"Horse" = "Horse"; -"Bear cub" = "Bear cub"; -"Bear" = "Bear"; -"Chicken" = "Chicken"; -"Cat" = "Cat"; -"Tiger" = "Tiger"; -"Octopus" = "Octopus"; -"Alligator" = "Alligator"; -"Anteater" = "Anteater"; -"Penguin" = "Penguin"; -"Bird" = "Bird"; -"Goat" = "Goat"; -"Frog" = "Frog"; -"Sheep" = "Sheep"; -"Duck" = "Duck"; -"Mouse" = "Mouse"; -"Wolf" = "Wolf"; -"Elephant" = "Elephant"; -"Lion" = "Lion"; +"hamster" = "Hamster"; +"dog" = "Dog"; +"cow" = "Cow"; +"squirrel" = "Squirrel"; +"koala" = "Koala"; +"rhinoceros" = "Rhinoceros"; +"rabbit" = "Rabbit"; +"hippo" = "Hippo"; +"eagle" = "Eagle"; +"bull" = "Bull"; +"pig" = "Pig"; +"kangaroo" = "Kangaroo"; +"gorilla" = "Gorilla"; +"ostrich" = "Ostrich"; +"deer" = "Deer"; +"monkey" = "Monkey"; +"horse" = "Horse"; +"bear cub" = "Bear cub"; +"bear" = "Bear"; +"chicken" = "Chicken"; +"cat" = "Cat"; +"tiger" = "Tiger"; +"octopus" = "Octopus"; +"alligator" = "Alligator"; +"anteater" = "Anteater"; +"penguin" = "Penguin"; +"bird" = "Bird"; +"goat" = "Goat"; +"frog" = "Frog"; +"sheep" = "Sheep"; +"duck" = "Duck"; +"mouse" = "Mouse"; +"wolf" = "Wolf"; +"elephant" = "Elephant"; +"lion" = "Lion"; + // MARK: - VillagerDetailViewController "Villager house" = "Villager house"; @@ -349,39 +347,38 @@ Find the villagers you have visited and tap the home icon on the villager's page "Catch phrase" = "Catch phrase"; // MARK: - Hobby -"Education" = "Education"; -"Fashion" = "Fashion"; -"Fitness" = "Fitness"; -"Music" = "Music"; -"Nature" = "Nature"; -"Play" = "Play"; +"education" = "Education"; +"fashion" = "Fashion"; +"fitness" = "Fitness"; +"music" = "Music"; +"nature" = "Nature"; +"play" = "Play"; // MARK: - Style -"Active" = "Active"; -"Cool" = "Cool"; -"Cute" = "Cute"; -"Elegant" = "Elegant"; -"Gorgeous" = "Gorgeous"; -"Simple" = "Simple"; +"active" = "Active"; +"cool" = "Cool"; +"cute" = "Cute"; +"elegant" = "Elegant"; +"gorgeous" = "Gorgeous"; +"simple" = "Simple"; -// MARK: - Color -"Aqua" = "Aqua"; -"Beige" = "Beige"; -"Black" = "Black"; -"Blue" = "Blue"; -"Brown" = "Brown"; -"Colorful" = "Colorful"; -"Gray" = "Gray"; -"Green" = "Green"; -"Orange" = "Orange"; -"Pink" = "Pink"; -"Purple" = "Purple"; -"Red" = "Red"; -"White" = "White"; -"Yellow" = "Yellow"; -"Natural wood" = "Natural wood"; -"Dark wood" = "Dark wood"; +// MARK: - Color +"aqua" = "Aqua"; +"beige" = "Beige"; +"black" = "Black"; +"blue" = "Blue"; +"brown" = "Brown"; +"colorful" = "Colorful"; +"gray" = "Gray"; +"green" = "Green"; +"pink" = "Pink"; +"purple" = "Purple"; +"red" = "Red"; +"white" = "White"; +"yellow" = "Yellow"; +"natural wood" = "Natural wood"; +"dark wood" = "Dark wood"; // MARK: - CollectionViewController "There are no collectibles." = "There are no collectibles."; @@ -626,64 +623,64 @@ Find the villagers you have visited and tap the home icon on the villager's page "50 fences are given by Tom Nook after completing the three house plots during the main storyline" = "50 fences are given by Tom Nook after completing the three house plots during the main storyline"; // MARK: - Housewares - tag -"Museum" = "Museum"; -"My Melody" = "My Melody"; -"Compass" = "Compass"; -"Facility Decor" = "Facility Decor"; -"Toilet" = "Toilet"; -"Vehicle" = "Vehicle"; -"Insect" = "Insect"; -"Musical Instrument" = "Musical Instrument"; -"Chair" = "Chair"; -"Fish" = "Fish"; -"Bathroom Things" = "Bathroom Things"; -"Hello Kitty" = "Hello Kitty"; -"Mario" = "Mario"; -"Seaside" = "Seaside"; -"Heating" = "Heating"; -"School" = "School"; -"Garden" = "Garden"; -"Audio" = "Audio"; -"Arch" = "Arch"; -"Work Bench" = "Work Bench"; -"Playground" = "Playground"; -"Supplies" = "Supplies"; -"Desk" = "Desk"; -"Kiki & Lala" = "Kiki & Lala"; -"Chest" = "Chest"; -"Sports" = "Sports"; -"Plants" = "Plants"; -"Cinnamoroll" = "Cinnamoroll"; -"Seasonal Decor" = "Seasonal Decor"; -"Bathtub" = "Bathtub"; -"Shop" = "Shop"; -"Home Appliances" = "Home Appliances"; -"Fan" = "Fan"; -"Sofa" = "Sofa"; -"Easter" = "Easter"; -"Dresser" = "Dresser"; -"Space" = "Space"; -"TV" = "TV"; -"Toy" = "Toy"; -"Folk Craft Decor" = "Folk Craft Decor"; -"Table" = "Table"; -"Bed" = "Bed"; -"Shelf" = "Shelf"; -"Lamp" = "Lamp"; -"Pompompurin" = "Pompompurin"; -"Ranch" = "Ranch"; -"Hospital" = "Hospital"; -"Fireplace" = "Fireplace"; -"Kerokerokeroppi" = "Kerokerokeroppi"; -"Screen" = "Screen"; -"Kitchen" = "Kitchen"; -"Japanese Style" = "Japanese Style"; -"Animal" = "Animal"; +"museum" = "Museum"; +"my melody" = "My Melody"; +"compass" = "Compass"; +"facility decor" = "Facility Decor"; +"toilet" = "Toilet"; +"vehicle" = "Vehicle"; +"insect" = "Insect"; +"musical instrument" = "Musical Instrument"; +"chair" = "Chair"; +"fish" = "Fish"; +"bathroom things" = "Bathroom Things"; +"hello kitty" = "Hello Kitty"; +"mario" = "Mario"; +"seaside" = "Seaside"; +"heating" = "Heating"; +"school" = "School"; +"garden" = "Garden"; +"audio" = "Audio"; +"arch" = "Arch"; +"work bench" = "Work Bench"; +"playground" = "Playground"; +"supplies" = "Supplies"; +"desk" = "fesk"; +"kiki & lala" = "Kiki & Lala"; +"chest" = "Chest"; +"sports" = "Sports"; +"plants" = "Plants"; +"cinnamoroll" = "Cinnamoroll"; +"seasonal fecor" = "Seasonal Decor"; +"bathtub" = "Bathtub"; +"shop" = "Shop"; +"home sppliances" = "Home Appliances"; +"fan" = "Fan"; +"sofa" = "Sofa"; +"easter" = "Easter"; +"dresser" = "Dresser"; +"space" = "Space"; +"tv" = "TV"; +"toy" = "Toy"; +"folk craft decor" = "Folk Craft Decor"; +"table" = "Table"; +"bed" = "Bed"; +"shelf" = "Shelf"; +"lamp" = "Lamp"; +"pompompurin" = "Pompompurin"; +"ranch" = "Ranch"; +"hospital" = "Hospital"; +"fireplace" = "Fireplace"; +"kerokerokeroppi" = "Kerokerokeroppi"; +"screen" = "Screen"; +"kitchen" = "Kitchen"; +"japanese style" = "Japanese Style"; +"animal" = "Animal"; // MARK: - Housewares - Concept "ancient" = "ancient"; "city life" = "city life"; -"European" = "European"; +"european" = "European"; "expensive" = "expensive"; "harmonious" = "harmonious"; "horror" = "horror"; @@ -700,158 +697,147 @@ Find the villagers you have visited and tap the home icon on the villager's page "facility" = "facility"; "fancy" = "fancy"; "fantasy" = "fantasy"; -"fitness" = "fitness"; "freezing cold" = "freezing cold"; -"garden" = "garden"; "heritage" = "heritage"; -"hospital" = "hospital"; -"kitchen" = "kitchen"; "lab" = "lab"; "living room" = "living room"; "local" = "local"; -"music" = "music"; -"nature" = "nature"; "ocean" = "ocean"; -"office" = "office"; "outdoors" = "outdoors"; "park" = "park"; "party" = "party"; "public bath" = "public bath"; "restaurant" = "restaurant"; "retro" = "retro"; -"school" = "school"; "sci-fi" = "sci-fi"; -"shop" = "shop"; -"space" = "space"; -"sports" = "sports"; "stylish" = "stylish"; "supermarket" = "supermarket"; "workshop" = "workshop"; -"Bromide" = "Bromide"; -"Dining" = "Dining"; -"DishDrink" = "DishDrink"; -"DishFood" = "DishFood"; -"Game Console" = "Game Console"; -"Kitchen Things" = "Kitchen Things"; -"Office" = "Office"; -"Special Fish" = "Special Fish"; -"Special Insect" = "Special Insect"; -"Study" = "Study"; -"TableClock" = "TableClock"; -"Air Conditioning" = "Air Conditioning"; -"House Door Decor" = "House Door Decor"; -"Posters" = "Posters"; -"CeilingEtc" = "CeilingEtc"; -"CeilingLamp" = "CeilingLamp"; -"Asia" = "Asia"; -"Brick" = "Brick"; -"Camouflage" = "Camouflage"; -"Chocolate" = "Chocolate"; -"Cloth Walls" = "Cloth Walls"; -"Country" = "Country"; -"Crown Walls" = "Crown Walls"; -"Cute Walls" = "Cute Walls"; -"Diner Walls" = "Diner Walls"; -"Dollhouse Walls" = "Dollhouse Walls"; -"Dot" = "Dot"; -"Flower Pop Walls" = "Flower Pop Walls"; -"Flower Walls" = "Flower Walls"; -"Fruit Walls" = "Fruit Walls"; -"Hall Walls" = "Hall Walls"; -"Heart Walls" = "Heart Walls"; -"Herringbone" = "Herringbone"; -"Honeycomb" = "Honeycomb"; -"Iron Walls" = "Iron Walls"; -"Library Walls" = "Library Walls"; -"Manor Walls" = "Manor Walls"; -"Metro Walls" = "Metro Walls"; -"Morocco" = "Morocco"; -"Nature Walls" = "Nature Walls"; -"Neta Walls" = "Neta Walls"; -"Painted Wood" = "Painted Wood"; -"Panel Mold Walls" = "Panel Mold Walls"; -"Pegboard Walls" = "Pegboard Walls"; -"Puzzle Walls" = "Puzzle Walls"; -"Rose Walls" = "Rose Walls"; -"Sanrio Walls" = "Sanrio Walls"; -"Simple Walls" = "Simple Walls"; -"Special Cool Nature Walls" = "Special Cool Nature Walls"; -"Special Inorganic Walls" = "Special Inorganic Walls"; -"Special Walls" = "Special Walls"; -"Special Warm Nature Walls" = "Special Warm Nature Walls"; -"Stone Walls" = "Stone Walls"; -"Stripe Walls" = "Stripe Walls"; -"Stucco Walls" = "Stucco Walls"; -"Tea Room Walls" = "Tea Room Walls"; -"Tile Walls" = "Tile Walls"; -"Tin Walls" = "Tin Walls"; -"Toy Walls" = "Toy Walls"; -"Two-Tone Tile Walls" = "Two-Tone Tile Walls"; -"WallFacility" = "WallFacility"; -"WallGoldSilverBronze" = "WallGoldSilverBronze"; -"Wood Plank Walls" = "Wood Plank Walls"; -"Wood Tile Walls" = "Wood Tile Walls"; -"Wood Walls" = "Wood Walls"; -"Art Deco Walls" = "Art Deco Walls"; -"Animal Floor" = "Animal Floor"; -"Arched Brick" = "Arched Brick"; -"Argyle" = "Argyle"; -"Cloth Floors" = "Cloth Floors"; -"Colorful Wood" = "Colorful Wood"; -"Decadence" = "Decadence"; -"Deco Wood" = "Deco Wood"; -"FloorSimpleGlodSilverBronze" = "FloorSimpleGlodSilverBronze"; -"Grassland" = "Grassland"; -"Iron" = "Iron"; -"Iron Parquet" = "Iron Parquet"; -"Japanese" = "Japanese"; -"Kitchen Floors" = "Kitchen Floors"; -"Luxury" = "Luxury"; -"Machine Floor" = "Machine Floor"; -"Nature - Brown" = "Nature - Brown"; -"Nature - Fallen Leaves" = "Nature - Fallen Leaves"; -"Nature - Green" = "Nature - Green"; -"Nature - White" = "Nature - White"; -"Neta" = "Neta"; -"Panel" = "Panel"; -"Parquet" = "Parquet"; -"Puzzle Mat" = "Puzzle Mat"; -"Rubber" = "Rubber"; -"Sanrio Floor" = "Sanrio Floor"; -"Sidewalk" = "Sidewalk"; -"Simple Carpet" = "Simple Carpet"; -"Simple Parquet" = "Simple Parquet"; -"Special Inorganic Floors" = "Special Inorganic Floors"; -"Special Nature Floors" = "Special Nature Floors"; -"Sports Floor" = "Sports Floor"; -"Stone Floors" = "Stone Floors"; -"Tatami" = "Tatami"; -"Tatami Panel" = "Tatami Panel"; -"Tile Checker" = "Tile Checker"; -"Tile Floors" = "Tile Floors"; -"Wood Floors" = "Wood Floors"; -"Fruit Rugs" = "Fruit Rugs"; -"Heart Rugs" = "Heart Rugs"; -"Icon Rugs" = "Icon Rugs"; -"Kitchen Rugs" = "Kitchen Rugs"; -"Message Mats" = "Message Mats"; -"Park Rugs" = "Park Rugs"; -"Pattern Rugs" = "Pattern Rugs"; -"Rose Rug" = "Rose Rug"; -"Sanrio Rugs" = "Sanrio Rugs"; -"Shaggy Round Rugs" = "Shaggy Round Rugs"; -"Simple Rugs" = "Simple Rugs"; -"Slender Pattern Rugs" = "Slender Pattern Rugs"; -"Slender Rugs" = "Slender Rugs"; -"Wood Rugs" = "Wood Rugs"; -"Etc" = "Etc"; -"FieldVine" = "FieldVine"; -"FieldWeedLight" = "FieldWeedLight"; -"FossilUnknown" = "FossilUnknown"; -"HaniwaPiece" = "HaniwaPiece"; -"Unnecessary" = "Unnecessary"; -"Sculpture" = "Sculpture"; -"Picture" = "Picture"; +"bromide" = "Bromide"; +"dining" = "Dining"; +"dishdrink" = "DishDrink"; +"dishfood" = "DishFood"; +"game console" = "Game Console"; +"kitchen things" = "Kitchen Things"; +"office" = "Office"; +"special fish" = "Special Fish"; +"special insect" = "Special Insect"; +"study" = "Study"; +"tableclock" = "TableClock"; +"air conditioning" = "Air Conditioning"; +"house door decor" = "House Door Decor"; +"posters" = "Posters"; +"ceilingetc" = "CeilingEtc"; +"ceilinglamp" = "CeilingLamp"; +"asia" = "Asia"; +"brick" = "Brick"; +"camouflage" = "Camouflage"; +"chocolate" = "Chocolate"; +"cloth walls" = "Cloth Walls"; +"country" = "Country"; +"crown walls" = "Crown Walls"; +"cute walls" = "Cute Walls"; +"diner walls" = "Diner Walls"; +"dollhouse walls" = "Dollhouse Walls"; +"dot" = "Dot"; +"flower pop walls" = "Flower Pop Walls"; +"flower walls" = "Flower Walls"; +"fruit walls" = "Fruit Walls"; +"hall walls" = "Hall Walls"; +"heart walls" = "Heart Walls"; +"herringbone" = "Herringbone"; +"honeycomb" = "Honeycomb"; +"iron walls" = "Iron Walls"; +"library walls" = "Library Walls"; +"manor walls" = "Manor Walls"; +"metro walls" = "Metro Walls"; +"morocco" = "Morocco"; +"nature walls" = "Nature Walls"; +"neta walls" = "Neta Walls"; +"painted wood" = "Painted Wood"; +"panel mold walls" = "Panel Mold Walls"; +"pegboard walls" = "Pegboard Walls"; +"puzzle walls" = "Puzzle Walls"; +"rose walls" = "Rose Walls"; +"sanrio walls" = "Sanrio Walls"; +"simple walls" = "Simple Walls"; +"special cool nature walls" = "Special Cool Nature Walls"; +"special inorganic walls" = "Special Inorganic Walls"; +"special walls" = "Special Walls"; +"special warm nature walls" = "Special Warm Nature Walls"; +"stone walls" = "Stone Walls"; +"stripe walls" = "Stripe Walls"; +"stucco walls" = "Stucco Walls"; +"tea room walls" = "Tea Room Walls"; +"tile walls" = "Tile Walls"; +"tin walls" = "Tin Walls"; +"toy walls" = "Toy Walls"; +"two-tone tile walls" = "Two-Tone Tile Walls"; +"wallfacility" = "WallFacility"; +"wallgoldsilverbronze" = "WallGoldSilverBronze"; +"wood plank walls" = "Wood Plank Walls"; +"wood tile walls" = "Wood Tile Walls"; +"wood walls" = "Wood Walls"; +"art deco walls" = "Art Deco Walls"; +"animal floor" = "Animal Floor"; +"arched brick" = "Arched Brick"; +"argyle" = "Argyle"; +"cloth floors" = "Cloth Floors"; +"colorful wood" = "Colorful Wood"; +"decadence" = "Decadence"; +"deco wood" = "Deco Wood"; +"floorsimpleglodsilverbronze" = "FloorSimpleGlodSilverBronze"; +"grassland" = "Grassland"; +"iron" = "Iron"; +"iron parquet" = "Iron Parquet"; +"japanese" = "Japanese"; +"kitchen floors" = "Kitchen Floors"; +"luxury" = "Luxury"; +"machine floor" = "Machine Floor"; +"nature - brown" = "Nature - Brown"; +"nature - fallen leaves" = "Nature - Fallen Leaves"; +"nature - green" = "Nature - Green"; +"nature - white" = "Nature - White"; +"neta" = "Neta"; +"panel" = "Panel"; +"parquet" = "Parquet"; +"puzzle mat" = "Puzzle Mat"; +"rubber" = "Rubber"; +"sanrio floor" = "Sanrio Floor"; +"sidewalk" = "Sidewalk"; +"simple carpet" = "Simple Carpet"; +"simple parquet" = "Simple Parquet"; +"special inorganic floors" = "Special Inorganic Floors"; +"special nature floors" = "Special Nature Floors"; +"sports floor" = "Sports Floor"; +"stone floors" = "Stone Floors"; +"tatami" = "Tatami"; +"tatami panel" = "Tatami Panel"; +"tile checker" = "Tile Checker"; +"tile floors" = "Tile Floors"; +"wood floors" = "Wood Floors"; +"fruit rugs" = "Fruit Rugs"; +"heart rugs" = "Heart Rugs"; +"icon rugs" = "Icon Rugs"; +"kitchen rugs" = "Kitchen Rugs"; +"message mats" = "Message Mats"; +"park rugs" = "Park Rugs"; +"pattern rugs" = "Pattern Rugs"; +"rose rug" = "Rose Rug"; +"sanrio rugs" = "Sanrio Rugs"; +"shaggy round rugs" = "Shaggy Round Rugs"; +"simple rugs" = "Simple Rugs"; +"slender pattern rugs" = "Slender Pattern Rugs"; +"slender rugs" = "Slender Rugs"; +"wood rugs" = "Wood Rugs"; +"etc" = "Etc"; +"fieldvine" = "FieldVine"; +"fieldweedlight" = "FieldWeedLight"; +"fossilunknown" = "FossilUnknown"; +"haniwapiece" = "HaniwaPiece"; +"unnecessary" = "Unnecessary"; +"sculpture" = "Sculpture"; +"picture" = "Picture"; // MARK: - materials "scallop" = "scallop"; @@ -872,20 +858,19 @@ Find the villagers you have visited and tap the home icon on the villager's page "salmon" = "salmon"; "sea bass" = "sea bass"; "squid" = "squid"; -"Aquarius fragment" = "Aquarius fragment"; -"Aries fragment" = "Aries fragment"; -"Cancer fragment" = "Cancer fragment"; -"Capricorn fragment" = "Capricorn fragment"; -"Gemini fragment" = "Gemini fragment"; -"Leo fragment" = "Leo fragment"; -"Libra fragment" = "Libra fragment"; -"Pisces fragment" = "Pisces fragment"; -"Sagittarius fragment" = "Sagittarius fragment"; -"Scorpius fragment" = "Scorpius fragment"; -"Taurus fragment" = "Taurus fragment"; -"Virgo fragment" = "Virgo fragment"; +"aquarius fragment" = "Aquarius fragment"; +"aries fragment" = "Aries fragment"; +"cancer fragment" = "Cancer fragment"; +"capricorn fragment" = "Capricorn fragment"; +"gemini fragment" = "Gemini fragment"; +"leo fragment" = "Leo fragment"; +"libra fragment" = "Libra fragment"; +"pisces fragment" = "Pisces fragment"; +"sagittarius fragment" = "Sagittarius fragment"; +"scorpius fragment" = "Scorpius fragment"; +"taurus fragment" = "Taurus fragment"; +"virgo fragment" = "Virgo fragment"; "acorn" = "acorn"; -"apple" = "apple"; "bamboo piece" = "bamboo piece"; "bamboo shoot" = "bamboo shoot"; "black cosmos" = "black cosmos"; @@ -902,7 +887,6 @@ Find the villagers you have visited and tap the home icon on the villager's page "brown sugar" = "brown sugar"; "candy" = "candy"; "carrot" = "carrot"; -"cherry" = "cherry"; "cherry-blossom petal" = "cherry-blossom petal"; "clay" = "clay"; "clump of weeds" = "clump of weeds"; @@ -932,7 +916,6 @@ Find the villagers you have visited and tap the home icon on the villager's page "manila clam" = "manila clam"; "maple leaf" = "maple leaf"; "old tire" = "old tire"; -"orange" = "orange"; "orange cosmos" = "orange cosmos"; "orange hyacinths" = "orange hyacinths"; "orange lilies" = "orange lilies"; @@ -941,8 +924,6 @@ Find the villagers you have visited and tap the home icon on the villager's page "orange roses" = "orange roses"; "orange tulips" = "orange tulips"; "orange windflowers" = "orange windflowers"; -"peach" = "peach"; -"pear" = "pear"; "pearl" = "pearl"; "pine cone" = "pine cone"; "pink cosmos" = "pink cosmos"; @@ -1014,7 +995,7 @@ Find the villagers you have visited and tap the home icon on the villager's page "yellow roses" = "yellow roses"; "yellow tulips" = "yellow tulips"; "young spring bamboo" = "young spring bamboo"; -"Baby bear" = "Baby bear"; +"baby bear" = "Baby bear"; "book" = "book"; "bottle crate" = "bottle crate"; "bunny garden decoration" = "bunny garden decoration"; @@ -1039,8 +1020,8 @@ Find the villagers you have visited and tap the home icon on the villager's page "wooden-block toy" = "wooden-block toy"; "wristwatch" = "wristwatch"; "gears" = "gears"; -"Mama bear" = "Mama bear"; -"Papa bear" = "Papa bear"; +"mama bear" = "Mama bear"; +"papa bear" = "Papa bear"; "campfire" = "campfire"; "drinking fountain" = "drinking fountain"; "fine vase" = "fine vase"; @@ -1179,18 +1160,17 @@ Find the villagers you have visited and tap the home icon on the villager's page "HHA points" = "HHA points"; // MARK: - hhaCategory -"AC" = "AC"; -"Appliance" = "Appliance"; -"Audio" = "Audio"; -"Clock" = "Clock"; -"Doll" = "Doll"; -"Dresser" = "Dresser"; -"Kitchen" = "Kitchen"; -"Lighting" = "Lighting"; -"MusicalInstrument" = "MusicalInstrument"; -"Pet" = "Pet"; -"Plant" = "Plant"; -"SmallGoods" = "SmallGoods"; -"Trash" = "Trash"; -"TV" = "TV"; -"Food" = "Food"; +"ac" = "AC"; +"appliance" = "Appliance"; +"audio" = "Audio"; +"clock" = "Clock"; +"doll" = "Doll"; +"dresser" = "Dresser"; +"kitchen" = "Kitchen"; +"lighting" = "Lighting"; +"pet" = "Pet"; +"plant" = "Plant"; +"smallgoods" = "SmallGoods"; +"trash" = "Trash"; +"tv" = "TV"; +"food" = "Food"; diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/ko.lproj/InfoPlist.strings b/Animal-Crossing-Wiki/Projects/App/Resources/ko.lproj/InfoPlist.strings similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/ko.lproj/InfoPlist.strings rename to Animal-Crossing-Wiki/Projects/App/Resources/ko.lproj/InfoPlist.strings diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/ko.lproj/Localizable.strings b/Animal-Crossing-Wiki/Projects/App/Resources/ko.lproj/Localizable.strings similarity index 84% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/ko.lproj/Localizable.strings rename to Animal-Crossing-Wiki/Projects/App/Resources/ko.lproj/Localizable.strings index cda4cd19..7642fbe5 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/ko.lproj/Localizable.strings +++ b/Animal-Crossing-Wiki/Projects/App/Resources/ko.lproj/Localizable.strings @@ -26,9 +26,7 @@ "Please set a name." = "이름을 설정해주세요."; "Please set a Island Name." = "섬 이름을 설정해주세요."; "Please set a Hemisphere." = "반구를 설정해주세요."; -"ISLAND" = "섬 이름"; "USER" = "주민 대표"; -"HEMISPHERE" = "반구"; "FRUIT" = "과일"; "REPUTATION" = "섬 평판"; @@ -45,7 +43,7 @@ "tip" = "주민에 대한 상세 정보를 보려면 해당 주민을 꾹 눌러주세요."; // MARK: - PreferencesViewController -"Island" = "섬 정보"; +"island" = "섬 정보"; "Preferences" = "기본 설정"; "App Settings" = "앱 설정"; @@ -54,7 +52,7 @@ "Your user name" = "사용자의 이름을 입력해주세요"; "Island name" = "섬 이름"; "User name" = "주민 대표 이름"; -"Hemisphere" = "반구"; +"hemisphere" = "반구"; "Starting fruit" = "과일"; "Island Reputation" = "섬 평판"; @@ -92,11 +90,10 @@ "Edit task" = "할일 편집"; // MARK: - Fruit -"Apple" = "사과"; -"Orange" = "오렌지"; -"Pear" = "배"; -"Cherry" = "체리"; -"Peach" = "복숭아"; +"apple" = "사과"; +"pear" = "배"; +"cherry" = "체리"; +"peach" = "복숭아"; // MARK: - Hemisphere "North" = "북반구"; @@ -184,6 +181,7 @@ "Not reformed" = "리폼 불가"; "Materials" = "재료"; "Music Player" = "음악 플레이어"; +"keyword" = "키워드"; // MARK: - ItemDetailInfoView "Underwater" = "바닷속 수중"; @@ -253,7 +251,6 @@ "11 PM – 4 PM" = "오후 11시 – 오후 4시"; "11 PM – 8 AM" = "오후 11시 – 오후 8시"; "4 AM – 5 PM" = "오전 4시 – 오후 5시"; -"4 AM – 8 AM" = "오전 4시 – 오전 8시"; "4 AM – 9 PM" = "오전 4시 – 오후 9시"; "4 AM – 7 PM" = "오전 4시 – 오후 7시"; "4 AM – 8 AM" = "오전 4시 – 오전 8시"; @@ -269,7 +266,6 @@ "8 AM – 5 PM" = "오전 8시 – 오후 5시"; "8 AM – 7 PM" = "오전 8시 – 오후 7시"; "9 AM – 4 PM" = "오전 9시 – 오후 4시"; -"9 PM – 4 AM" = "오후 9시 – 오후 4시"; "9 PM – 4 AM" = "오후 9시 – 오후 4시"; "All day" = "하루종일"; @@ -289,55 +285,55 @@ "Tap the villager's home button and it will appear here." = "마을 주민의 집 모양 버튼을 누르면 여기에 표시됩니다." ; // MARK: - Personality -"Big Sister" = "단순활발"; -"Cranky" = "무뚝뚝"; -"Jock" = "운동광"; -"Normal" = "친절함"; -"Peppy" = "아이돌"; -"Lazy" = "먹보"; -"Smug" = "느끼함"; -"Snooty" = "성숙함"; +"big sister" = "단순활발"; +"cranky" = "무뚝뚝"; +"jock" = "운동광"; +"normal" = "친절함"; +"peppy" = "아이돌"; +"lazy" = "먹보"; +"smug" = "느끼함"; +"snooty" = "성숙함"; // MARK: - Gender -"Female" = "여자"; -"Male" = "남자"; +"female" = "여자"; +"male" = "남자"; // MARK: - Specie -"Hamster" = "햄스터"; -"Dog" = "개"; -"Cow" = "소"; -"Squirrel" = "다람쥐"; -"Koala" = "코알라"; -"Rhinoceros" = "코뿔소"; -"Rabbit" = "토끼"; -"Hippo" = "하마"; -"Eagle" = "독수리"; -"Bull" = "황소"; -"Pig" = "돼지"; -"Kangaroo" = "캥거루"; -"Gorilla" = "고릴라"; -"Ostrich" = "타조"; -"Deer" = "사슴"; -"Monkey" = "원숭이"; -"Horse" = "말"; -"Bear cub" = "아기곰"; -"Bear" = "곰"; -"Chicken" = "닭"; -"Cat" = "고양이"; -"Tiger" = "호랑이"; -"Octopus" = "문어"; -"Alligator" = "악어"; -"Anteater" = "개미핥기"; -"Penguin" = "펭귄"; -"Bird" = "새"; -"Goat" = "염소"; -"Frog" = "개구리"; -"Sheep" = "양"; -"Duck" = "오리"; -"Mouse" = "생쥐"; -"Wolf" = "늑대"; -"Elephant" = "코끼리"; -"Lion" = "사자"; +"hamster" = "햄스터"; +"dog" = "개"; +"cow" = "소"; +"squirrel" = "다람쥐"; +"koala" = "코알라"; +"rhinoceros" = "코뿔소"; +"rabbit" = "토끼"; +"hippo" = "하마"; +"eagle" = "독수리"; +"bull" = "황소"; +"pig" = "돼지"; +"kangaroo" = "캥거루"; +"gorilla" = "고릴라"; +"ostrich" = "타조"; +"deer" = "사슴"; +"monkey" = "원숭이"; +"horse" = "말"; +"bear cub" = "아기곰"; +"bear" = "곰"; +"chicken" = "닭"; +"cat" = "고양이"; +"tiger" = "호랑이"; +"octopus" = "문어"; +"alligator" = "악어"; +"anteater" = "개미핥기"; +"penguin" = "펭귄"; +"bird" = "새"; +"goat" = "염소"; +"frog" = "개구리"; +"sheep" = "양"; +"duck" = "오리"; +"mouse" = "생쥐"; +"wolf" = "늑대"; +"elephant" = "코끼리"; +"lion" = "사자"; // MARK: - VillagerDetailViewController "Villager house" = "주민 집"; @@ -351,38 +347,38 @@ "Catch phrase" = "말투"; // MARK: - Hobby -"Education" = "공부하기"; -"Fashion" = "쇼핑하기"; -"Fitness" = "운동하기"; -"Music" = "음악듣기"; -"Nature" = "자연을 만끽하기"; -"Play" = "놀기"; +"education" = "공부하기"; +"fashion" = "쇼핑하기"; +"fitness" = "운동하기"; +"music" = "음악듣기"; +"nature" = "자연을 만끽하기"; +"play" = "놀기"; // MARK: - Style -"Active" = "스포츠"; -"Cool" = "멋쟁이"; -"Cute" = "깜찍함"; -"Elegant" = "우아함"; -"Gorgeous" = "화려함"; -"Simple" = "심플함"; +"active" = "스포츠"; +"cool" = "멋쟁이"; +"cute" = "깜찍함"; +"elegant" = "우아함"; +"gorgeous" = "화려함"; +"simple" = "심플함"; // MARK: - Color -"Aqua" = "아쿠아"; -"Beige" = "베이지"; -"Black" = "블랙"; -"Blue" = "블루"; -"Brown" = "브라운"; -"Colorful" = "컬러풀"; -"Gray" = "그레이"; -"Green" = "그린"; -"Orange" = "오렌지"; -"Pink" = "핑크"; -"Purple" = "퍼플"; -"Red" = "레드"; -"White" = "화이트"; -"Yellow" = "옐로우"; -"Natural wood" = "내추럴우드"; -"Dark wood" = "다크우드"; +"aqua" = "아쿠아"; +"beige" = "베이지"; +"black" = "블랙"; +"blue" = "블루"; +"brown" = "브라운"; +"colorful" = "컬러풀"; +"gray" = "그레이"; +"green" = "그린"; +"orange" = "오렌지"; +"pink" = "핑크"; +"purple" = "퍼플"; +"red" = "레드"; +"white" = "화이트"; +"yellow" = "옐로우"; +"natural wood" = "내추럴우드"; +"dark wood" = "다크우드"; // MARK: - CollectionViewController "There are no collectibles." = "수집함이 비어있습니다."; @@ -626,64 +622,64 @@ "50 fences are given by Tom Nook after completing the three house plots during the main storyline" = "스토리 진행 중에 세 개의 집터를 완성한 후 너굴에게서 50개의 울타리를 획득"; // MARK: - Housewares - tag -"Museum" = "박물관"; -"My Melody" = "마이멜로디"; -"Compass" = "나침반"; -"Facility Decor" = "시설 장식"; -"Toilet" = "화장실"; -"Vehicle" = "차량"; -"Insect" = "곤충"; -"Musical Instrument" = "악기"; -"Chair" = "의자"; -"Fish" = "생선"; -"Bathroom Things" = "욕실 물건"; -"Hello Kitty" = "헬로키티"; -"Mario" = "마리오"; -"Seaside" = "해변"; -"Heating" = "난방"; -"School" = "학교"; -"Garden" = "정원"; -"Audio" = "오디오"; -"Arch" = "아치"; -"Work Bench" = "작업 벤치"; -"Playground" = "운동장"; -"Supplies" = "보급품"; -"Desk" = "책상"; -"Kiki & Lala" = "Kiki & Lala"; -"Chest" = "수납장"; -"Sports" = "스포츠"; -"Plants" = "식물"; -"Cinnamoroll" = "시나모롤"; -"Seasonal Decor" = "시즌 데코"; -"Bathtub" = "욕조"; -"Shop" = "상점"; -"Home Appliances" = "가전 ​​제품"; -"Fan" = "선풍기"; -"Sofa" = "소파"; -"Easter" = "부활절"; -"Dresser" = "장롱"; -"Space" = "우주"; -"TV" = "TV"; -"Toy" = "장난감"; -"Folk Craft Decor" = "민속 공예 장식"; -"Table" = "테이블"; -"Bed" = "침대"; -"Shelf" = "선반"; -"Lamp" = "램프"; -"Pompompurin" = "폼푸린"; -"Ranch" = "농장"; -"Hospital" = "병원"; -"Fireplace" = "난로"; -"Kerokerokeroppi" = "케로케로케로피"; -"Screen" = "화면"; -"Kitchen" = "주방"; -"Japanese Style" = "동양풍"; -"Animal" = "동물"; +"museum" = "박물관"; +"my melody" = "마이멜로디"; +"compass" = "나침반"; +"facility decor" = "시설 장식"; +"toilet" = "화장실"; +"vehicle" = "차량"; +"insect" = "곤충"; +"musical instrument" = "악기"; +"chair" = "의자"; +"fish" = "생선"; +"bathroom things" = "욕실 물건"; +"hello kitty" = "헬로키티"; +"mario" = "마리오"; +"seaside" = "해변"; +"heating" = "난방"; +"school" = "학교"; +"garden" = "정원"; +"audio" = "오디오"; +"arch" = "아치"; +"work bench" = "작업 벤치"; +"playground" = "운동장"; +"supplies" = "보급품"; +"desk" = "책상"; +"kiki & lala" = "Kiki & Lala"; +"chest" = "수납장"; +"sports" = "스포츠"; +"plants" = "식물"; +"cinnamoroll" = "시나모롤"; +"seasonal decor" = "시즌 데코"; +"bathtub" = "욕조"; +"shop" = "상점"; +"home appliances" = "가전 ​​제품"; +"fan" = "선풍기"; +"sofa" = "소파"; +"easter" = "부활절"; +"dresser" = "장롱"; +"space" = "우주"; +"tv" = "TV"; +"toy" = "장난감"; +"folk craft decor" = "민속 공예 장식"; +"table" = "테이블"; +"bed" = "침대"; +"shelf" = "선반"; +"lamp" = "램프"; +"pompompurin" = "폼푸린"; +"ranch" = "농장"; +"hospital" = "병원"; +"fireplace" = "난로"; +"kerokerokeroppi" = "케로케로케로피"; +"screen" = "화면"; +"kitchen" = "주방"; +"japanese style" = "동양풍"; +"animal" = "동물"; // MARK: - Housewares - Concept "ancient" = "유물"; "city life" = "도시"; -"European" = "유럽"; +"european" = "유럽"; "expensive" = "Flex"; "harmonious" = "조화로운"; "horror" = "호러"; @@ -700,157 +696,146 @@ "facility" = "건물"; "fancy" = "고급"; "fantasy" = "판타지"; -"fitness" = "건강"; "freezing cold" = "겨울"; -"garden" = "정원"; "heritage" = "유산"; -"hospital" = "병원"; -"kitchen" = "주방"; "lab" = "연구실"; "living room" = "거실"; "local" = "로컬"; -"music" = "음악"; -"nature" = "자연"; "ocean" = "바다"; -"office" = "사무실"; "outdoors" = "야외"; "park" = "공원"; "party" = "파티"; "public bath" = "노천탕"; "restaurant" = "레스토랑"; "retro" = "레트로"; -"school" = "학교"; "sci-fi" = "SF"; -"shop" = "가게"; -"space" = "우주"; -"sports" = "스포츠"; "stylish" = "스타일리쉬"; "supermarket" = "슈퍼마켓"; "workshop" = "작업장"; -"Bromide" = "지역 명물"; -"Dining" = "요리"; -"DishDrink" = "음료"; -"DishFood" = "접시 요리"; -"Game Console" = "콘솔 게임"; -"Kitchen Things" = "주방용품"; -"Office" = "사무실"; -"Special Fish" = "스페셜 물고기"; -"Special Insect" = "스페셜 곤충"; -"Study" = "공부"; -"TableClock" = "탁상시계"; -"Air Conditioning" = "공기조절"; -"House Door Decor" = "문짝 장식"; -"Posters" = "포스터"; -"CeilingEtc" = "천장 장식"; -"CeilingLamp" = "천장 조명"; -"Asia" = "아시아"; -"Brick" = "벽돌"; -"Camouflage" = "위장"; -"Chocolate" = "초콜릿"; -"Cloth Walls" = "천 벽"; -"Country" = "컨트리"; -"Crown Walls" = "왕관 벽"; -"Cute Walls" = "귀여운 벽"; -"Diner Walls" = "다이너 벽"; -"Dollhouse Walls" = "인형의 집 벽"; -"Dot" = "도트"; -"Flower Pop Walls" = "플라워 팝 벽"; -"Flower Walls" = "꽃무늬 벽"; -"Fruit Walls" = "과일 벽"; -"Hall Walls" = "홀 벽"; -"Heart Walls" = "하트 벽"; -"Herringbone" = "헤링본"; -"Honeycomb" = "벌집"; -"Iron Walls" = "아이언 벽"; -"Library Walls" = "도서관 벽"; -"Manor Walls" = "잔꽃무늬 벽"; -"Metro Walls" = "매트로 벽"; -"Morocco" = "모로칸"; -"Nature Walls" = "자연 벽"; -"Neta Walls" = "네타 벽"; -"Painted Wood" = "페인트 나무"; -"Panel Mold Walls" = "패널 몰드 벽"; -"Pegboard Walls" = "펀칭보드 벽"; -"Puzzle Walls" = "퍼즐 벽"; -"Rose Walls" = "장미 벽"; -"Sanrio Walls" = "산리오 벽"; -"Simple Walls" = "심플한 벽"; -"Special Cool Nature Walls" = "추운 계절 벽"; -"Special Inorganic Walls" = "특수 컨셉 벽"; -"Special Walls" = "특별한 벽"; -"Special Warm Nature Walls" = "따뜻한 계절 벽"; -"Stone Walls" = "돌담 벽"; -"Stripe Walls" = "줄무늬 벽"; -"Stucco Walls" = "페인트 벽"; -"Tea Room Walls" = "찻집 벽"; -"Tile Walls" = "타일 ​​벽"; -"Tin Walls" = "강판 벽"; -"Toy Walls" = "장난감 벽"; -"Two-Tone Tile Walls" = "투톤 타일 벽"; -"WallFacility" = "시설 벽"; -"WallGoldSilverBronze" = "골드 실버 브론즈 벽"; -"Wood Plank Walls" = "나무 판자 벽"; -"Wood Tile Walls" = "나무 타일 벽"; -"Wood Walls" = "나무 벽"; -"Art Deco Walls" = "아르데코풍 벽"; -"Animal Floor" = "동물 바닥"; -"Arched Brick" = "아치형 벽돌"; -"Argyle" = "아가일"; -"Cloth Floors" = "천 바닥"; -"Colorful Wood" = "컬러풀 나무"; -"Decadence" = "쇠미"; -"Deco Wood" = "데코 우드"; -"FloorSimpleGlodSilverBronze" = "바닥 심플 골드 실버 브론즈"; -"Grassland" = "목초지"; -"Iron" = "아이언"; -"Iron Parquet" = "철판"; -"Japanese" = "일본어"; -"Kitchen Floors" = "주방 바닥"; -"Luxury" = "럭셔리"; -"Machine Floor" = "기계 바닥"; -"Nature - Brown" = "자연 - 브라운"; -"Nature - Fallen Leaves" = "자연 - 떨어진 잎사귀들 "; -"Nature - Green" = "자연 - 녹색"; -"Nature - White" = "자연 - 흰색"; -"Panel" = "패널"; -"Parquet" = "마루"; -"Puzzle Mat" = "퍼즐 매트"; -"Rubber" = "고무"; -"Sanrio Floor" = "산리오 바닥"; -"Sidewalk" = "보도"; -"Simple Carpet" = "심플한 카펫"; -"Simple Parquet" = "심플한 마루"; -"Special Inorganic Floors" = "특수 컨셉 바닥"; -"Special Nature Floors" = "특수 자연 바닥"; -"Sports Floor" = "스포츠 바닥"; -"Stone Floors" = "돌 바닥"; -"Tatami" = "다다미"; -"Tatami Panel" = "다다미 패널"; -"Tile Checker" = "데코타일"; -"Tile Floors" = "타일 ​​바닥"; -"Wood Floors" = "나무 바닥"; -"Fruit Rugs" = "과일 러그"; -"Heart Rugs" = "심장 러그"; -"Icon Rugs" = "아이콘 러그"; -"Kitchen Rugs" = "주방 러그"; -"Message Mats" = "메시지 매트"; -"Park Rugs" = "공원 러그"; -"Pattern Rugs" = "패턴 러그"; -"Rose Rug" = "로즈 러그"; -"Sanrio Rugs" = "산리오 러그"; -"Shaggy Round Rugs" = "라운드 매트"; -"Simple Rugs" = "심플한 러그"; -"Slender Pattern Rugs" = "가느다란 패턴 러그"; -"Slender Rugs" = "가느다란 러그"; -"Wood Rugs" = "나무 러그"; -"Etc" = "기타"; -"FieldVine" = "덩굴 (필드)"; -"FieldWeedLight" = "빛 (필드)"; -"FossilUnknown" = "미지의 화석"; -"HaniwaPiece" = "토용 조각"; -"Unnecessary" = "사용불가"; -"Sculpture" = "조각품"; -"Picture" = "그림"; +"bromide" = "지역 명물"; +"dining" = "요리"; +"dishdrink" = "음료"; +"dishfood" = "접시 요리"; +"game console" = "콘솔 게임"; +"kitchen things" = "주방용품"; +"office" = "사무실"; +"special fish" = "스페셜 물고기"; +"special insect" = "스페셜 곤충"; +"study" = "공부"; +"tableclock" = "탁상시계"; +"air conditioning" = "공기조절"; +"house door decor" = "문짝 장식"; +"posters" = "포스터"; +"ceilingetc" = "천장 장식"; +"ceilinglamp" = "천장 조명"; +"asia" = "아시아"; +"brick" = "벽돌"; +"camouflage" = "위장"; +"chocolate" = "초콜릿"; +"cloth walls" = "천 벽"; +"country" = "컨트리"; +"crown walls" = "왕관 벽"; +"cute walls" = "귀여운 벽"; +"diner walls" = "다이너 벽"; +"dollhouse walls" = "인형의 집 벽"; +"dot" = "도트"; +"flower pop walls" = "플라워 팝 벽"; +"flower walls" = "꽃무늬 벽"; +"fruit walls" = "과일 벽"; +"hall walls" = "홀 벽"; +"heart walls" = "하트 벽"; +"herringbone" = "헤링본"; +"honeycomb" = "벌집"; +"iron walls" = "아이언 벽"; +"library walls" = "도서관 벽"; +"manor walls" = "잔꽃무늬 벽"; +"metro walls" = "매트로 벽"; +"morocco" = "모로칸"; +"nature walls" = "자연 벽"; +"neta walls" = "네타 벽"; +"painted wood" = "페인트 나무"; +"panel mold walls" = "패널 몰드 벽"; +"pegboard walls" = "펀칭보드 벽"; +"puzzle walls" = "퍼즐 벽"; +"rose walls" = "장미 벽"; +"sanrio walls" = "산리오 벽"; +"simple walls" = "심플한 벽"; +"special cool nature walls" = "추운 계절 벽"; +"special inorganic walls" = "특수 컨셉 벽"; +"special walls" = "특별한 벽"; +"special warm nature walls" = "따뜻한 계절 벽"; +"stone walls" = "돌담 벽"; +"stripe walls" = "줄무늬 벽"; +"stucco walls" = "페인트 벽"; +"tea room walls" = "찻집 벽"; +"tile walls" = "타일 ​​벽"; +"tin walls" = "강판 벽"; +"toy walls" = "장난감 벽"; +"two-tone tile walls" = "투톤 타일 벽"; +"wallfacility" = "시설 벽"; +"wallgoldsilverbronze" = "골드 실버 브론즈 벽"; +"wood plank walls" = "나무 판자 벽"; +"wood tile walls" = "나무 타일 벽"; +"wood walls" = "나무 벽"; +"art deco walls" = "아르데코풍 벽"; +"animal floor" = "동물 바닥"; +"arched brick" = "아치형 벽돌"; +"argyle" = "아가일"; +"cloth floors" = "천 바닥"; +"colorful wood" = "컬러풀 나무"; +"decadence" = "쇠미"; +"deco wood" = "데코 우드"; +"floorsimpleglodsilverbronze" = "바닥 심플 골드 실버 브론즈"; +"grassland" = "목초지"; +"iron" = "아이언"; +"iron parquet" = "철판"; +"japanese" = "일본어"; +"kitchen floors" = "주방 바닥"; +"luxury" = "럭셔리"; +"machine floor" = "기계 바닥"; +"nature - brown" = "자연 - 브라운"; +"nature - fallen leaves" = "자연 - 떨어진 잎사귀들 "; +"nature - green" = "자연 - 녹색"; +"nature - white" = "자연 - 흰색"; +"panel" = "패널"; +"parquet" = "마루"; +"puzzle mat" = "퍼즐 매트"; +"rubber" = "고무"; +"sanrio floor" = "산리오 바닥"; +"sidewalk" = "보도"; +"simple carpet" = "심플한 카펫"; +"simple parquet" = "심플한 마루"; +"special inorganic floors" = "특수 컨셉 바닥"; +"special nature floors" = "특수 자연 바닥"; +"sports floor" = "스포츠 바닥"; +"stone floors" = "돌 바닥"; +"tatami" = "다다미"; +"tatami panel" = "다다미 패널"; +"tile checker" = "데코타일"; +"tile floors" = "타일 ​​바닥"; +"wood floors" = "나무 바닥"; +"fruit rugs" = "과일 러그"; +"heart rugs" = "심장 러그"; +"icon rugs" = "아이콘 러그"; +"kitchen rugs" = "주방 러그"; +"message mats" = "메시지 매트"; +"park rugs" = "공원 러그"; +"pattern rugs" = "패턴 러그"; +"rose rug" = "로즈 러그"; +"sanrio rugs" = "산리오 러그"; +"shaggy round rugs" = "라운드 매트"; +"simple rugs" = "심플한 러그"; +"slender pattern rugs" = "가느다란 패턴 러그"; +"slender rugs" = "가느다란 러그"; +"wood rugs" = "나무 러그"; +"etc" = "기타"; +"fieldvine" = "덩굴 (필드)"; +"fieldweedlight" = "빛 (필드)"; +"fossilunknown" = "미지의 화석"; +"haniwapiece" = "토용 조각"; +"unnecessary" = "사용불가"; +"sculpture" = "조각품"; +"picture" = "그림"; // MARK: - materials "scallop" = "가리비"; @@ -871,20 +856,19 @@ "salmon" = "연어"; "sea bass" = "농어"; "squid" = "오징어"; -"Aquarius fragment" = "물병자리 조각"; -"Aries fragment" = "양자리 조각"; -"Cancer fragment" = "게자리 조각"; -"Capricorn fragment" = "염소자리 조각"; -"Gemini fragment" = "쌍둥이자리 조각"; -"Leo fragment" = "사자자리 조각"; -"Libra fragment" = "천칭자리 조각"; -"Pisces fragment" = "물고기자리 조각"; -"Sagittarius fragment" = "사수자리 조각"; -"Scorpius fragment" = "전갈자리 조각"; -"Taurus fragment" = "황소자리 조각"; -"Virgo fragment" = "처녀자리 조각"; +"aquarius fragment" = "물병자리 조각"; +"aries fragment" = "양자리 조각"; +"cancer fragment" = "게자리 조각"; +"capricorn fragment" = "염소자리 조각"; +"gemini fragment" = "쌍둥이자리 조각"; +"leo fragment" = "사자자리 조각"; +"libra fragment" = "천칭자리 조각"; +"pisces fragment" = "물고기자리 조각"; +"sagittarius fragment" = "사수자리 조각"; +"scorpius fragment" = "전갈자리 조각"; +"taurus fragment" = "황소자리 조각"; +"virgo fragment" = "처녀자리 조각"; "acorn" = "도토리"; -"apple" = "사과"; "bamboo piece" = "대나무 토막"; "bamboo shoot" = "죽순"; "black cosmos" = "검정 코스모스"; @@ -901,7 +885,6 @@ "brown sugar" = "흑설탕"; "candy" = "사탕"; "carrot" = "당근"; -"cherry" = "체리"; "cherry-blossom petal" = "벚꽃잎"; "clay" = "점토"; "clump of weeds" = "잡초"; @@ -931,7 +914,6 @@ "manila clam" = "바지락"; "maple leaf" = "단풍잎"; "old tire" = "타이어"; -"orange" = "오렌지"; "orange cosmos" = "오렌지색 코스모스"; "orange hyacinths" = "오렌지색 히아신스"; "orange lilies" = "오렌지색 백합"; @@ -940,8 +922,6 @@ "orange roses" = "오렌지색 장미"; "orange tulips" = "오렌지색 튤립"; "orange windflowers" = "오렌지색 아네모네"; -"peach" = "복숭아"; -"pear" = "배"; "pearl" = "진주"; "pine cone" = "솔방울"; "pink cosmos" = "핑크색 코스모스"; @@ -1013,7 +993,7 @@ "yellow roses" = "노란 장미"; "yellow tulips" = "노란 튤립"; "young spring bamboo" = "봄의 대나무"; -"Baby bear" = "작은 곰인형"; +"baby bear" = "작은 곰인형"; "book" = "책"; "bottle crate" = "병음료 박스"; "bunny garden decoration" = "토끼 가든 오브제"; @@ -1038,8 +1018,8 @@ "wooden-block toy" = "나무블록 장난감"; "wristwatch" = "손목시계"; "gears" = "톱니바퀴"; -"Mama bear" = "중간 곰인형"; -"Papa bear" = "큰 곰인형"; +"bama bear" = "중간 곰인형"; +"papa bear" = "큰 곰인형"; "campfire" = "모닥불"; "drinking fountain" = "음수대"; "fine vase" = "큰 항아리"; @@ -1182,18 +1162,17 @@ "HHA points" = "해피홈 포인트"; // MARK: - hhaCategory -"AC" = "에어컨"; -"Appliance" = "가전제품"; -"Audio" = "오디오"; -"Clock" = "시계"; -"Doll" = "인형"; -"Dresser" = "서랍장"; -"Kitchen" = "키친"; -"Lighting" = "조명"; -"MusicalInstrument" = "악기"; -"Pet" = "애완동물"; -"Plant" = "식물"; -"SmallGoods" = "작은 소품"; -"Trash" = "쓰레기"; -"TV" = "TV"; -"Food" = "음식"; +"ac" = "에어컨"; +"appliance" = "가전제품"; +"audio" = "오디오"; +"clock" = "시계"; +"doll" = "인형"; +"dresser" = "서랍장"; +"kitchen" = "키친"; +"lighting" = "조명"; +"pet" = "애완동물"; +"plant" = "식물"; +"smallgoods" = "작은 소품"; +"trash" = "쓰레기"; +"tv" = "TV"; +"food" = "음식"; diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/App/AppAppearance.swift b/Animal-Crossing-Wiki/Projects/App/Sources/AppAppearance.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/App/AppAppearance.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/AppAppearance.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/AppCoordinator.swift b/Animal-Crossing-Wiki/Projects/App/Sources/AppCoordinator.swift similarity index 96% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/AppCoordinator.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/AppCoordinator.swift index ad3f18b8..f3f1057d 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/AppCoordinator.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/AppCoordinator.swift @@ -11,51 +11,51 @@ final class AppCoordinator: Coordinator { var type: CoordinatorType = .main var childCoordinators: [Coordinator] = [] private(set) var rootViewController: UITabBarController! - + private var playerViewController: PlayerViewController? - private var topAnchorConstraint: NSLayoutConstraint? - + private var topAnchorConstraint: NSLayoutConstraint? + init(rootViewController: UITabBarController = UITabBarController()) { self.rootViewController = rootViewController } - + func start() { let dashboardCoordinator = DashboardCoordinator() dashboardCoordinator.start() dashboardCoordinator.setUpParent(to: self) addViewController(dashboardCoordinator.rootViewController, title: "Dashboard".localized, icon: "icon-bells-tabbar") childCoordinators.append(dashboardCoordinator) - + let catalogCoordinator = CatalogCoordinator() catalogCoordinator.start() catalogCoordinator.setUpParent(to: self) addViewController(catalogCoordinator.rootViewController, title: "Catalog".localized, icon: "icon-leaf-tabbar") childCoordinators.append(catalogCoordinator) - + let villagersCoordinator = VillagersCoordinator() villagersCoordinator.start() addViewController(villagersCoordinator.rootViewController, title: "Villagers".localized, icon: "icon-book-tabbar") childCoordinators.append(villagersCoordinator) - + let collectionCoordinator = CollectionCoordinator() collectionCoordinator.start() collectionCoordinator.setUpParent(to: self) addViewController(collectionCoordinator.rootViewController, title: "Collection".localized, icon: "icon-cardboard-tabbar") childCoordinators.append(collectionCoordinator) } - + private func addViewController(_ viewController: UIViewController, title: String, icon: String) { let iconImage = UIImage(named: icon)?.withRenderingMode(.alwaysOriginal) - + let tabBarItem = UITabBarItem(title: title, image: iconImage, tag: childCoordinators.count) viewController.tabBarItem = tabBarItem - + rootViewController.addChild(viewController) } } extension AppCoordinator { - + func showMusicPlayer() { guard playerViewController == nil else { playerViewController?.view.isHidden = false @@ -76,7 +76,7 @@ extension AppCoordinator { equalTo: rootViewController.view.topAnchor, constant: frame.height - rootViewController.tabBar.frame.height - 60 ) - + topAnchorConstraint.flatMap { NSLayoutConstraint.activate([ viewController.view.bottomAnchor.constraint(equalTo: rootViewController.view.bottomAnchor), @@ -86,7 +86,7 @@ extension AppCoordinator { ]) } } - + func minimize() { let frame = rootViewController.view.frame let tabBarHeight = rootViewController.tabBar.frame.height @@ -95,7 +95,7 @@ extension AppCoordinator { self.rootViewController.view.layoutIfNeeded() } } - + func maximize() { let frame = rootViewController.view.frame UIView.animate(withDuration: 0.4) { @@ -103,7 +103,7 @@ extension AppCoordinator { self.rootViewController.view.layoutIfNeeded() } } - + func removePlayerViewController() { playerViewController?.view.isHidden = true MusicPlayerManager.shared.close() diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/App/AppDelegate.swift b/Animal-Crossing-Wiki/Projects/App/Sources/AppDelegate.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/App/AppDelegate.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/AppDelegate.swift index eecc2ad4..ce5e34d1 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/App/AppDelegate.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/AppDelegate.swift @@ -12,7 +12,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. - + AppAppearance.setUpAppearance() return true } @@ -36,4 +36,3 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } } - diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Coordinator.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Coordinator.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Coordinator.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Coordinator.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/CoreDataStorage.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/CoreDataStorage.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/CoreDataStorage.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/CoreDataStorage.swift index 7724d2e4..fab38151 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/CoreDataStorage.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/CoreDataStorage.swift @@ -12,7 +12,7 @@ enum CoreDataStorageError: LocalizedError { case readError(Error) case notFound case categoryNotFound - + var errorDescription: String? { switch self { case .readError(let error): @@ -26,7 +26,7 @@ enum CoreDataStorageError: LocalizedError { } final class CoreDataStorage { - + static let shared = CoreDataStorage() private init() {} @@ -46,7 +46,7 @@ final class CoreDataStorage { } extension CoreDataStorage { - + func getUserCollection(_ context: NSManagedObjectContext) throws -> UserCollectionEntity { let request = UserCollectionEntity.fetchRequest() return try context.fetch(request).first ?? UserCollectionEntity(UserInfo(), context: context) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/CoreDataStorage.xcdatamodeld/.xccurrentversion b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/CoreDataStorage.xcdatamodeld/.xccurrentversion similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/CoreDataStorage.xcdatamodeld/.xccurrentversion rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/CoreDataStorage.xcdatamodeld/.xccurrentversion diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/CoreDataStorage.xcdatamodeld/UserCollectionEntity.xcdatamodel/contents b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/CoreDataStorage.xcdatamodeld/UserCollectionEntity.xcdatamodel/contents similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/CoreDataStorage.xcdatamodeld/UserCollectionEntity.xcdatamodel/contents rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/CoreDataStorage.xcdatamodeld/UserCollectionEntity.xcdatamodel/contents diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/DailyTaskStorage/CoreDataDailyTaskStorage.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/DailyTaskStorage/CoreDataDailyTaskStorage.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/DailyTaskStorage/CoreDataDailyTaskStorage.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/DailyTaskStorage/CoreDataDailyTaskStorage.swift index f66b9848..b1795fc3 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/DailyTaskStorage/CoreDataDailyTaskStorage.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/DailyTaskStorage/CoreDataDailyTaskStorage.swift @@ -10,13 +10,13 @@ import RxSwift import CoreData final class CoreDataDailyTaskStorage: DailyTaskStorage { - + private let coreDataStorage: CoreDataStorage - + init(coreDataStorage: CoreDataStorage = CoreDataStorage.shared) { self.coreDataStorage = coreDataStorage } - + func fetchTasks() -> Single<[DailyTask]> { return Single.create { single in self.coreDataStorage.performBackgroundTask { context in @@ -37,7 +37,7 @@ final class CoreDataDailyTaskStorage: DailyTaskStorage { return Disposables.create() } } - + func insertTask(_ task: DailyTask) -> Single { return Single.create { single in self.coreDataStorage.performBackgroundTask { context in @@ -53,9 +53,9 @@ final class CoreDataDailyTaskStorage: DailyTaskStorage { } return Disposables.create() } - + } - + func updateTask(_ task: DailyTask) { self.coreDataStorage.performBackgroundTask { context in context.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy @@ -77,7 +77,7 @@ final class CoreDataDailyTaskStorage: DailyTaskStorage { } } } - + func toggleCompleted(_ task: DailyTask, progressIndex: Int) { self.coreDataStorage.performBackgroundTask { context in do { @@ -94,7 +94,7 @@ final class CoreDataDailyTaskStorage: DailyTaskStorage { } } } - + func deleteTaskDelete(_ task: DailyTask) -> Single { return Single.create { single in self.coreDataStorage.performBackgroundTask { context in diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/DailyTaskStorage/DailyTaskStorage.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/DailyTaskStorage/DailyTaskStorage.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/DailyTaskStorage/DailyTaskStorage.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/DailyTaskStorage/DailyTaskStorage.swift index 486e979f..a4e3aac6 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/DailyTaskStorage/DailyTaskStorage.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/DailyTaskStorage/DailyTaskStorage.swift @@ -9,7 +9,7 @@ import Foundation import RxSwift protocol DailyTaskStorage { - + func fetchTasks() -> Single<[DailyTask]> func insertTask(_ task: DailyTask) -> Single func updateTask(_ task: DailyTask) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/DailyTaskStorage/EntityMapping/DailyTaskEntity+Mapping.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/DailyTaskStorage/EntityMapping/DailyTaskEntity+Mapping.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/DailyTaskStorage/EntityMapping/DailyTaskEntity+Mapping.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/DailyTaskStorage/EntityMapping/DailyTaskEntity+Mapping.swift index ff9e432b..d3e9097a 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/DailyTaskStorage/EntityMapping/DailyTaskEntity+Mapping.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/DailyTaskStorage/EntityMapping/DailyTaskEntity+Mapping.swift @@ -9,7 +9,7 @@ import Foundation import CoreData extension DailyTaskEntity { - + convenience init(_ task: DailyTask, context: NSManagedObjectContext) { self.init(context: context) self.id = task.id @@ -19,7 +19,7 @@ extension DailyTaskEntity { self.amount = Int64(task.amount) self.date = task.createdDate } - + func toDomain() -> DailyTask { return DailyTask( id: self.id ?? UUID(), diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/ItemsStorage/CoreDataItemsStorage.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/ItemsStorage/CoreDataItemsStorage.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/ItemsStorage/CoreDataItemsStorage.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/ItemsStorage/CoreDataItemsStorage.swift index 6e56e337..8cc3acd6 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/ItemsStorage/CoreDataItemsStorage.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/ItemsStorage/CoreDataItemsStorage.swift @@ -9,13 +9,13 @@ import Foundation import RxSwift final class CoreDataItemsStorage: ItemsStorage { - + private let coreDataStorage: CoreDataStorage - + init(coreDataStorage: CoreDataStorage = CoreDataStorage.shared) { self.coreDataStorage = coreDataStorage } - + func fetch() -> Single<[Item]> { return Single.create { single in self.coreDataStorage.performBackgroundTask { context in @@ -31,7 +31,7 @@ final class CoreDataItemsStorage: ItemsStorage { return Disposables.create() } } - + func update(_ item: Item) { coreDataStorage.performBackgroundTask { context in do { @@ -49,7 +49,7 @@ final class CoreDataItemsStorage: ItemsStorage { } } } - + func updates(_ items: [Item]) { coreDataStorage.performBackgroundTask { context in do { @@ -62,7 +62,7 @@ final class CoreDataItemsStorage: ItemsStorage { } } } - + func reset(category: Category) { coreDataStorage.performBackgroundTask { context in do { diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/ItemsStorage/EntityMapping/ItemEntity+Mapping.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/ItemsStorage/EntityMapping/ItemEntity+Mapping.swift similarity index 89% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/ItemsStorage/EntityMapping/ItemEntity+Mapping.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/ItemsStorage/EntityMapping/ItemEntity+Mapping.swift index 97f4e6c6..37ada248 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/ItemsStorage/EntityMapping/ItemEntity+Mapping.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/ItemsStorage/EntityMapping/ItemEntity+Mapping.swift @@ -9,7 +9,7 @@ import Foundation import CoreData extension ItemEntity { - + convenience init(_ item: Item, context: NSManagedObjectContext) { self.init(context: context) self.name = item.name @@ -67,7 +67,7 @@ extension ItemEntity { self.themes = item.themes self.styles = item.styles?.map { $0.rawValue } } - + func toKeyword() -> [Keyword: [String]] { var keywordList = [Keyword: [String]]() self.keyword?.forEach({ (key: String, value: [String]) in @@ -77,7 +77,7 @@ extension ItemEntity { }) return keywordList } - + func toDomain() throws -> Item { guard let category = Category(rawValue: self.category ?? "") else { throw CoreDataStorageError.categoryNotFound @@ -142,7 +142,7 @@ extension ItemEntity { } extension Hemispheres { - + func toDictionary() -> [String: [String: [Any]]] { [ "north": [ @@ -175,23 +175,23 @@ extension Hemispheres { } extension Translations { - + func toDictionary() -> [String: String] { return [ - "eUde" : eUde, - "eUen" : eUen, - "eUit" : eUit, - "eUnl" : eUnl, - "eUru" : eUru, - "eUfr" : eUfr, - "eUes" : eUes, - "uSen" : uSen, - "uSfr" : uSfr, - "uSes" : uSes, - "jPja" : jPja, - "kRko" : kRko, - "tWzh" : tWzh, - "cNzh" : cNzh + "eUde": eUde, + "eUen": eUen, + "eUit": eUit, + "eUnl": eUnl, + "eUru": eUru, + "eUfr": eUfr, + "eUes": eUes, + "uSen": uSen, + "uSfr": uSfr, + "uSes": uSes, + "jPja": jPja, + "kRko": kRko, + "tWzh": tWzh, + "cNzh": cNzh ] } @@ -222,33 +222,33 @@ extension RecipeResponseDTO { translations[key] = value?.toDictionary() ?? [:] } return [ - "name" : name, - "image" : image, - "imageSh" : imageSh ?? "", - "buy" : buy, - "sell" : sell ?? 0, - "exchangePrice" : exchangePrice ?? 0, - "exchangeCurrency" : exchangeCurrency?.rawValue ?? "", - "source" : source, - "sourceNotes" : sourceNotes ?? [], - "seasonEvent" : seasonEvent ?? "", - "seasonEventExclusive" : seasonEventExclusive ?? false, - "versionAdded" : versionAdded, - "unlocked" : unlocked, - "recipesToUnlock" : recipesToUnlock, - "category" : category, - "craftedItemInternalId" : craftedItemInternalId, - "cardColor" : cardColor ?? "", - "diyIconFilename" : diyIconFilename, - "diyIconFilenameSh" : diyIconFilenameSh ?? "", - "serialId" : serialId, - "internalId" : internalId, + "name": name, + "image": image, + "imageSh": imageSh ?? "", + "buy": buy, + "sell": sell ?? 0, + "exchangePrice": exchangePrice ?? 0, + "exchangeCurrency": exchangeCurrency?.rawValue ?? "", + "source": source, + "sourceNotes": sourceNotes ?? [], + "seasonEvent": seasonEvent ?? "", + "seasonEventExclusive": seasonEventExclusive ?? false, + "versionAdded": versionAdded, + "unlocked": unlocked, + "recipesToUnlock": recipesToUnlock, + "category": category, + "craftedItemInternalId": craftedItemInternalId, + "cardColor": cardColor ?? "", + "diyIconFilename": diyIconFilename, + "diyIconFilenameSh": diyIconFilenameSh ?? "", + "serialId": serialId, + "internalId": internalId, "translations": self.translations?.toDictionary() ?? [:], - "materials" : materials, - "materialsTranslations" : translations + "materials": materials, + "materialsTranslations": translations ] } - + init(_ dictionary: [String: Any]) { var translations = [String: Translations?]() (dictionary["materialsTranslations"] as? [String: [String: String]])?.forEach({ (key: String, value: [String: String]) in @@ -307,7 +307,7 @@ extension Variant { "patternTranslations": patternTranslations?.toDictionary() ?? [:] ] } - + init(_ dictionary: [String: Any]) { self.init( image: dictionary["image"] as? String ?? "", diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/ItemsStorage/ItemsStorage.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/ItemsStorage/ItemsStorage.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/ItemsStorage/ItemsStorage.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/ItemsStorage/ItemsStorage.swift index 6259e0dc..1a030f38 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/ItemsStorage/ItemsStorage.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/ItemsStorage/ItemsStorage.swift @@ -9,7 +9,7 @@ import Foundation import RxSwift protocol ItemsStorage { - + func fetch() -> Single<[Item]> func update(_ item: Item) func updates(_ items: [Item]) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/UserInfoStorage/CoreDataUserInfoStorage.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/UserInfoStorage/CoreDataUserInfoStorage.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/UserInfoStorage/CoreDataUserInfoStorage.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/UserInfoStorage/CoreDataUserInfoStorage.swift index 44e85a6d..9a45d846 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/UserInfoStorage/CoreDataUserInfoStorage.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/UserInfoStorage/CoreDataUserInfoStorage.swift @@ -10,20 +10,20 @@ import RxSwift import CoreData final class CoreDataUserInfoStorage: UserInfoStorage { - + private let coreDataStorage: CoreDataStorage - + init(coreDataStorage: CoreDataStorage = CoreDataStorage.shared) { self.coreDataStorage = coreDataStorage } - + func fetchUserInfo() -> UserInfo? { let context = coreDataStorage.persistentContainer.viewContext let object = try? self.coreDataStorage.getUserCollection(context) let userInfo = object?.toDomain() return userInfo } - + func updateUserInfo(_ userInfo: UserInfo) { self.coreDataStorage.performBackgroundTask { context in do { @@ -39,7 +39,7 @@ final class CoreDataUserInfoStorage: UserInfoStorage { } } } - + func resetUserInfo() { coreDataStorage.performBackgroundTask { [weak self] context in let object = try? self?.coreDataStorage.getUserCollection(context) as? NSManagedObject diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/UserInfoStorage/EntityMapping/UserCollectionEntity+Mapping.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/UserInfoStorage/EntityMapping/UserCollectionEntity+Mapping.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/UserInfoStorage/EntityMapping/UserCollectionEntity+Mapping.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/UserInfoStorage/EntityMapping/UserCollectionEntity+Mapping.swift index 43e3e11e..c52246fa 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/UserInfoStorage/EntityMapping/UserCollectionEntity+Mapping.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/UserInfoStorage/EntityMapping/UserCollectionEntity+Mapping.swift @@ -17,7 +17,7 @@ extension UserCollectionEntity { self.hemisphere = userInfo.hemisphere.rawValue.capitalized self.islandReputation = Int16(userInfo.islandReputation) } - + func toDomain() -> UserInfo { return UserInfo( name: self.name ?? "", diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/UserInfoStorage/UserInfoStorage.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/UserInfoStorage/UserInfoStorage.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/UserInfoStorage/UserInfoStorage.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/UserInfoStorage/UserInfoStorage.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersHouseStorage/CoreDataVillagersHouseStorage.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersHouseStorage/CoreDataVillagersHouseStorage.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersHouseStorage/CoreDataVillagersHouseStorage.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersHouseStorage/CoreDataVillagersHouseStorage.swift index e39a8e31..706cd628 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersHouseStorage/CoreDataVillagersHouseStorage.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersHouseStorage/CoreDataVillagersHouseStorage.swift @@ -9,13 +9,13 @@ import Foundation import RxSwift final class CoreDataVillagersHouseStorage: VillagersHouseStorage { - + private let coreDataStorage: CoreDataStorage - + init(coreDataStorage: CoreDataStorage = CoreDataStorage.shared) { self.coreDataStorage = coreDataStorage } - + func fetch() -> [Villager] { let context = coreDataStorage.persistentContainer.viewContext let object = try? self.coreDataStorage.getUserCollection(context) @@ -23,7 +23,7 @@ final class CoreDataVillagersHouseStorage: VillagersHouseStorage { return villagers.compactMap { $0.toDomain() } .sorted(by: { $0.translations.localizedName() < $1.translations.localizedName() }) } - + func update(_ villager: Villager) { self.coreDataStorage.performBackgroundTask { context in do { diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersHouseStorage/EntityMapping/VillagersHouseEntity+Mapping.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersHouseStorage/EntityMapping/VillagersHouseEntity+Mapping.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersHouseStorage/EntityMapping/VillagersHouseEntity+Mapping.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersHouseStorage/EntityMapping/VillagersHouseEntity+Mapping.swift index 4dbd1a17..b61a3e44 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersHouseStorage/EntityMapping/VillagersHouseEntity+Mapping.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersHouseStorage/EntityMapping/VillagersHouseEntity+Mapping.swift @@ -9,7 +9,7 @@ import Foundation import CoreData extension VillagersHouseEntity { - + convenience init(_ villager: Villager, context: NSManagedObjectContext) { self.init(context: context) self.birthday = villager.birthday @@ -32,9 +32,9 @@ extension VillagersHouseEntity { self.styles = villager.styles.map { $0.rawValue } self.subtype = villager.subtype.rawValue self.translations = villager.translations.toDictionary() - + } - + func toDomain() -> Villager { return Villager( name: self.name ?? "", diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersHouseStorage/VillagersHouseStorage.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersHouseStorage/VillagersHouseStorage.swift similarity index 83% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersHouseStorage/VillagersHouseStorage.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersHouseStorage/VillagersHouseStorage.swift index b3011455..d3110867 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersHouseStorage/VillagersHouseStorage.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersHouseStorage/VillagersHouseStorage.swift @@ -10,5 +10,5 @@ import RxSwift protocol VillagersHouseStorage { func fetch() -> [Villager] - func update(_ villager: Villager) + func update(_ villager: Villager) } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersLikeStorage/CoreDataVillagersLikeStorage.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersLikeStorage/CoreDataVillagersLikeStorage.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersLikeStorage/CoreDataVillagersLikeStorage.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersLikeStorage/CoreDataVillagersLikeStorage.swift index 36675244..4b07cb51 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersLikeStorage/CoreDataVillagersLikeStorage.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersLikeStorage/CoreDataVillagersLikeStorage.swift @@ -9,13 +9,13 @@ import Foundation import RxSwift final class CoreDataVillagersLikeStorage: VillagersLikeStorage { - + private let coreDataStorage: CoreDataStorage - + init(coreDataStorage: CoreDataStorage = CoreDataStorage.shared) { self.coreDataStorage = coreDataStorage } - + func fetch() -> [Villager] { let context = coreDataStorage.persistentContainer.viewContext let object = try? self.coreDataStorage.getUserCollection(context) @@ -23,7 +23,7 @@ final class CoreDataVillagersLikeStorage: VillagersLikeStorage { return villagers.map { $0.toDomain() } .sorted(by: { $0.translations.localizedName() < $1.translations.localizedName() }) } - + func update(_ villager: Villager) { self.coreDataStorage.performBackgroundTask { context in do { diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersLikeStorage/EntityMapping/VillagersLikeEntity+Mapping.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersLikeStorage/EntityMapping/VillagersLikeEntity+Mapping.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersLikeStorage/EntityMapping/VillagersLikeEntity+Mapping.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersLikeStorage/EntityMapping/VillagersLikeEntity+Mapping.swift index 1565f576..81426bd4 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersLikeStorage/EntityMapping/VillagersLikeEntity+Mapping.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersLikeStorage/EntityMapping/VillagersLikeEntity+Mapping.swift @@ -31,9 +31,9 @@ extension VillagersLikeEntity { self.styles = villager.styles.map { $0.rawValue } self.subtype = villager.subtype.rawValue self.translations = villager.translations.toDictionary() - + } - + func toDomain() -> Villager { return Villager( name: self.name ?? "", diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersLikeStorage/VillagersLikeStorage.swift b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersLikeStorage/VillagersLikeStorage.swift similarity index 83% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersLikeStorage/VillagersLikeStorage.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersLikeStorage/VillagersLikeStorage.swift index 48025fea..299055fb 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/CoreDataStorage/VillagersLikeStorage/VillagersLikeStorage.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/CoreDataStorage/VillagersLikeStorage/VillagersLikeStorage.swift @@ -10,5 +10,5 @@ import RxSwift protocol VillagersLikeStorage { func fetch() -> [Villager] - func update(_ villager: Villager) + func update(_ villager: Villager) } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/Array+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/Array+extension.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/Array+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/Array+extension.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/Collection+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/Collection+extension.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/Collection+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/Collection+extension.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/Date+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/Date+extension.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/Date+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/Date+extension.swift index 2c398d89..f846d2d5 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/Date+extension.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/Date+extension.swift @@ -8,12 +8,12 @@ import Foundation extension Date { - + func formatted(_ format: String) -> String { let dateFormatter = DateFormatter() dateFormatter.dateFormat = format dateFormatter.timeZone = TimeZone.current return dateFormatter.string(from: self) } - + } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/Int+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/Int+extension.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/Int+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/Int+extension.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/Reactor+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/Reactor+extension.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/Reactor+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/Reactor+extension.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/String+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/String+extension.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/String+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/String+extension.swift index ebc91b09..b9304e78 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/String+extension.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/String+extension.swift @@ -11,7 +11,7 @@ extension String { private var hangul: [String] { return ["ㄱ", "ㄲ", "ㄴ", "ㄷ", "ㄸ", "ㄹ", "ㅁ", "ㅂ", "ㅃ", "ㅅ", "ㅆ", "ㅇ", "ㅈ", "ㅉ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ"] } - + var chosung: String { var result = "" for char in self { @@ -23,7 +23,7 @@ extension String { } return result } - + var isChosung: Bool { var isChosung = false for char in self { @@ -36,7 +36,7 @@ extension String { } return isChosung } - + var localized: String { return NSLocalizedString(self, comment: "") } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIButton+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIButton+extension.swift similarity index 69% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIButton+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIButton+extension.swift index 438ea197..f4dc1e2f 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIButton+extension.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIButton+extension.swift @@ -14,9 +14,8 @@ extension UIButton { if let image = try? result.get().image?.withRenderingMode(.alwaysOriginal) { self.setImage(image, for: .normal) } else { - let resource = URL(string: urlString) - .flatMap { ImageResource(downloadURL: $0, cacheKey: urlString) } - self.kf.setImage(with: resource, for: .normal) + let url = URL(string: urlString) + self.kf.setImage(with: url, for: .normal) } } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UICollectionView+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UICollectionView+extension.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UICollectionView+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UICollectionView+extension.swift index b216886c..16a2f63e 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UICollectionView+extension.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UICollectionView+extension.swift @@ -18,7 +18,7 @@ extension UICollectionView { let reuseIdentifier = cellClass.className register(UINib(nibName: reuseIdentifier, bundle: nil), forCellWithReuseIdentifier: reuseIdentifier) } - + func dequeueReusableCell(_ cellClass: T.Type, for indexPath: IndexPath) -> T? { return dequeueReusableCell(withReuseIdentifier: cellClass.className, for: indexPath) as? T } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIColor+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIColor+extension.swift similarity index 96% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIColor+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIColor+extension.swift index 098fda9a..dcafe36c 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIColor+extension.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIColor+extension.swift @@ -15,35 +15,35 @@ extension UIColor { class var acBackground: UIColor { return UIColor(named: "ACBackground") ?? .clear } - + class var acSecondaryBackground: UIColor { return UIColor(named: "ACSecondaryBackground") ?? .clear } - + class var acText: UIColor { return UIColor(named: "ACText") ?? .label } - + class var acSecondaryText: UIColor { return UIColor(named: "ACSecondaryText") ?? .systemGray } - + class var acNavigationBarTint: UIColor { return UIColor(named: "ACNavigationBarTint") ?? .clear } - + class var catalogBar: UIColor { return UIColor(named: "catalog-bar") ?? .clear } - + class var catalogBackground: UIColor { return UIColor(named: "catalog-background") ?? .clear } - + class var catalogSelected: UIColor { return UIColor(named: "catalog-selected") ?? .clear } - + class var acTabBarTint: UIColor { return UIColor(named: "catalog-text") ?? .label } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIFont+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIFont+extension.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIFont+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIFont+extension.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIImage+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIImage+extension.swift similarity index 92% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIImage+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIImage+extension.swift index 7a298232..61a07535 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIImage+extension.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIImage+extension.swift @@ -19,7 +19,7 @@ extension UIImage { self.withRenderingMode(.alwaysOriginal) return resizedImage } - + static func downloadImage(urlString: String) -> Observable { return Observable.create { observable in if let url = URL(string: urlString) { @@ -27,8 +27,7 @@ extension UIImage { if let image = try? result.get().image { observable.onNext(image) } else { - let resource = ImageResource(downloadURL: url, cacheKey: urlString) - KingfisherManager.shared.retrieveImage(with: resource) { result in + KingfisherManager.shared.retrieveImage(with: url) { result in observable.onNext(try? result.get().image) } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIImageView+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIImageView+extension.swift similarity index 80% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIImageView+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIImageView+extension.swift index 62fce3ca..705893d6 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIImageView+extension.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIImageView+extension.swift @@ -8,15 +8,15 @@ import Kingfisher import UIKit import OSLog - + extension UIImageView { - + convenience init(path: String) { self.init(frame: .zero) setImage(with: path) contentMode = .scaleAspectFit } - + func setImage(with urlString: String, options: KingfisherOptionsInfo? = nil) { self.kf.indicatorType = .activity ImageCache.default.retrieveImage(forKey: urlString, options: options) { result in @@ -25,9 +25,8 @@ extension UIImageView { if let image = value.image { self.image = image } else { - let resource = URL(string: urlString) - .flatMap { ImageResource(downloadURL: $0, cacheKey: urlString) } - self.kf.setImage(with: resource, options: options) + let url = URL(string: urlString) + self.kf.setImage(with: url, options: options) } case .failure(let error): os_log(.error, log: .default, "⛔️ 캐시에서 이미지를 가져오는데 실패였습니다.\n에러내용: \(error.localizedDescription)") diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UILabel+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UILabel+extension.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UILabel+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UILabel+extension.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIMenu+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIMenu+extension.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIMenu+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIMenu+extension.swift index 2fa0a3ef..07b0e866 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIMenu+extension.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIMenu+extension.swift @@ -8,7 +8,7 @@ import UIKit extension UIMenu { - + convenience init(title: String, subTitles: [String], actionHandler: @escaping (UIAction) -> Void) { let actions = subTitles.map { UIAction(title: $0, handler: actionHandler) } self.init(title: title, children: actions) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UINavigationItem.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UINavigationItem.swift similarity index 95% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UINavigationItem.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UINavigationItem.swift index 0b90f3f3..12774262 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UINavigationItem.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UINavigationItem.swift @@ -8,9 +8,9 @@ import UIKit extension UINavigationItem { - + func enableMultilineTitle() { setValue(true, forKey: "__largeTitleTwoLineMode") } - + } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIStackView+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIStackView+extension.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIStackView+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIStackView+extension.swift index af8468c9..851b4e6c 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIStackView+extension.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIStackView+extension.swift @@ -8,7 +8,7 @@ import UIKit extension UIStackView { - + convenience init( axis: NSLayoutConstraint.Axis, alignment: UIStackView.Alignment, @@ -21,7 +21,7 @@ extension UIStackView { self.distribution = distribution self.spacing = spacing } - + func addArrangedSubviews(_ views: UIView...) { views.forEach { view in view.translatesAutoresizingMaskIntoConstraints = false diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UITableView+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UITableView+extension.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UITableView+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UITableView+extension.swift index b549c217..b7ed082e 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UITableView+extension.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UITableView+extension.swift @@ -18,5 +18,5 @@ extension UITableView { let reuseIdentifier = cellClass.className register(UINib(nibName: reuseIdentifier, bundle: nil), forCellReuseIdentifier: reuseIdentifier) } - + } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIView+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIView+extension.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIView+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIView+extension.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIViewController+extension.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIViewController+extension.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIViewController+extension.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIViewController+extension.swift index 5c49154b..1d3291b8 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Extension/UI/UIViewController+extension.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Extension/UI/UIViewController+extension.swift @@ -9,7 +9,7 @@ import UIKit import RxSwift extension UIViewController { - + func showSelectedItemAlert( _ items: [String], currentItem: String?, @@ -49,7 +49,7 @@ extension UIViewController { return Disposables.create { alert.dismiss(animated: true, completion: nil) } } } - + func showAlert(title: String?, message: String?) -> Observable { return Observable.create { observer in let alert = UIAlertController(title: title, message: message, preferredStyle: .alert) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/DailyTask.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Models/DailyTask.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/DailyTask.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Models/DailyTask.swift index 86d5676a..fd606a53 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/DailyTask.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Models/DailyTask.swift @@ -14,18 +14,18 @@ struct DailyTask { private(set) var progressList: [Bool] let amount: Int let createdDate: Date - + mutating func toggleCompleted(_ index: Int) { self.progressList[index].toggle() } - + mutating func reset() { self.progressList = Array(repeating: false, count: amount) } } extension DailyTask { - + init() { self.init( id: UUID(), @@ -36,7 +36,7 @@ extension DailyTask { createdDate: Date() ) } - + init(name: String, icon: String, isCompleted: Bool, amount: Int, createdDate: Date) { self.init( id: UUID(), @@ -47,7 +47,7 @@ extension DailyTask { createdDate: createdDate ) } - + static var tasks: [DailyTask] { return [ DailyTask( diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Fruit.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Models/Fruit.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Fruit.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Models/Fruit.swift index 44096d66..346c469b 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Fruit.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Models/Fruit.swift @@ -13,11 +13,11 @@ enum Fruit: String, CaseIterable { case pear case cherry case peach - + var imageName: String { return self.rawValue.capitalized } - + static func transform(_ string: String) -> String? { switch string { case Fruit.apple.imageName.localized: return Fruit.apple.rawValue diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Hemisphere.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Models/Hemisphere.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Hemisphere.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Models/Hemisphere.swift index e713bdc3..43f67eed 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Hemisphere.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Models/Hemisphere.swift @@ -10,7 +10,7 @@ import Foundation enum Hemisphere: String, CaseIterable { case north = "North" case south = "South" - + static func transform(_ string: String) -> String? { switch string { case Hemisphere.north.rawValue.localized: return Hemisphere.north.rawValue diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Items/Category.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Models/Items/Category.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Items/Category.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Models/Items/Category.swift index 77f43a3f..de1622da 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Items/Category.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Models/Items/Category.swift @@ -36,7 +36,7 @@ enum Category: String, CaseIterable { case umbrellas = "Umbrellas" case wetSuit = "Wet Suit" case reactions = "Reactions" - + var iconName: String { switch self { case .bugs: return "Ins13" @@ -69,7 +69,7 @@ enum Category: String, CaseIterable { case .reactions: return "icon-reactions" } } - + var progressIconName: String { switch self { case .bugs: return "Ins1" @@ -102,7 +102,7 @@ enum Category: String, CaseIterable { case .reactions: return "icon-reactions" } } - + static func items() -> [Category] { [ .fishes, .seaCreatures, .bugs, @@ -114,15 +114,15 @@ enum Category: String, CaseIterable { .reactions ] } - + static func progress() -> [Category] { [.fishes, .bugs, .seaCreatures, .fossils, .art] } - + static var critters: [Category] { [.fishes, .seaCreatures, .bugs] } - + static func furniture() -> [Category] { [ .housewares, .miscellaneous, .wallMounted, @@ -135,7 +135,7 @@ enum Category: String, CaseIterable { } extension Category: Comparable { - + private var sortOrder: Int { switch self { case .fishes: return 0 @@ -168,13 +168,13 @@ extension Category: Comparable { case .reactions: return 27 } } - + static func == (lhs: Self, rhs: Self) -> Bool { return lhs.sortOrder == rhs.sortOrder } - + static func < (lhs: Self, rhs: Self) -> Bool { return lhs.sortOrder < rhs.sortOrder } - + } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Items/Item.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Models/Items/Item.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Items/Item.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Models/Items/Item.swift index 6583b76c..21eecacf 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Items/Item.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Models/Items/Item.swift @@ -13,7 +13,7 @@ struct Item { let sell: Int let translations: Translations let colors: [Color] - + var image: String? var iconImage: String? var critterpediaImage: String? @@ -27,9 +27,9 @@ struct Item { var shadow: Shadow? var movementSpeed: MovementSpeed? var buy: Int? - + var museum: Museum? - + var highResTexture: String? var genuine: Bool? var artCategory: ArtCategory? @@ -37,7 +37,7 @@ struct Item { var source: String? var tag: String? var concepts: [Concept]? - + var variation: String? var bodyTitle: String? var pattern: String? @@ -62,10 +62,10 @@ struct Item { var recipe: RecipeResponseDTO? var seriesTranslations: Translations? var variations: [Variant]? - + var foodPower: Int? var doorDeco: Bool? - + var musicURL: String? var themes: [String]? var styles: [Style]? @@ -83,27 +83,27 @@ extension Item { } return list } - + var canExchangeNookMiles: Bool { exchangeCurrency == .nookMiles || variations?.first?.exchangeCurrency == .nookMiles } - + var canExchangeNookPoints: Bool { exchangeCurrency == .nookPoints || variations?.first?.exchangeCurrency == .nookPoints } - + var canExchangePoki: Bool { exchangeCurrency == .poki || variations?.first?.exchangeCurrency == .poki } - + var isCritters: Bool { Category.critters.contains(category) } - + var variationsWithColor: [Variant] { variations?.filter { $0.variantId.suffix(2) == ("_0") } ?? [] } - + var variationsWithPattern: [Variant] { variations?.filter { $0.pattern != nil } ?? [] } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Items/Keyword.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Models/Items/Keyword.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Items/Keyword.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Models/Items/Keyword.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/UserInfo.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Models/UserInfo.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/UserInfo.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Models/UserInfo.swift index 9eae37ac..98cf7b35 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/UserInfo.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Models/UserInfo.swift @@ -13,23 +13,23 @@ struct UserInfo { private(set) var islandFruit: Fruit private(set) var hemisphere: Hemisphere private(set) var islandReputation: Int - + mutating func updateName(_ name: String) { self.name = name } - + mutating func updateIslandName(_ name: String) { self.islandName = name } - + mutating func updateFruit(_ fruit: Fruit) { self.islandFruit = fruit } - + mutating func updateHemisphere(_ hemisphere: Hemisphere) { self.hemisphere = hemisphere } - + mutating func updateIslandReputation(_ score: Int) { self.islandReputation = score } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Villager.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Models/Villager.swift similarity index 84% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Villager.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Models/Villager.swift index 82c39c36..47445aee 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Models/Villager.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Models/Villager.swift @@ -33,9 +33,9 @@ struct Villager { extension Villager { var like: String { let color = colors - .reduce("") { $0 + $1.rawValue.localized.capitalized + ", " } + .reduce("") { $0 + $1.rawValue.lowercased().localized.capitalized + ", " } let style = Set(styles.map { $0.rawValue }) - .reduce("") { $0 + $1.localized.capitalized + ", " } + .reduce("") { $0 + $1.lowercased().localized.capitalized + ", " } .trimmingCharacters(in: [",", " "]) return color + style } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/DefaultAPIProvider.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/DefaultAPIProvider.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/DefaultAPIProvider.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/DefaultAPIProvider.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Protocol/APIProvider.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Protocol/APIProvider.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Protocol/APIProvider.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Protocol/APIProvider.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Protocol/APIRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Protocol/APIRequest.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Protocol/APIRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Protocol/APIRequest.swift index abf04655..e2cc3165 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Protocol/APIRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Protocol/APIRequest.swift @@ -28,16 +28,16 @@ extension APIRequest { let value = value.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) return URLQueryItem(name: key, value: value) } - + if urlQuries.isEmpty == false { urlComponents?.percentEncodedQueryItems = urlQuries } return url } - + func asURLRequest() throws -> URLRequest { let url = try self.asURL() - + var request = URLRequest(url: url) request.httpMethod = self.method.rawValue diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/AccessoriesRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/AccessoriesRequest.swift similarity index 83% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/AccessoriesRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/AccessoriesRequest.swift index 115dc7f7..f91cf7f3 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/AccessoriesRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/AccessoriesRequest.swift @@ -13,8 +13,8 @@ struct AccessoriesRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Accessories.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/BagsRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/BagsRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/BagsRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/BagsRequest.swift index 1bf5b898..c164125e 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/BagsRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/BagsRequest.swift @@ -13,8 +13,8 @@ struct BagsRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Bags.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/BottomsRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/BottomsRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/BottomsRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/BottomsRequest.swift index 50265610..31f51cf2 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/BottomsRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/BottomsRequest.swift @@ -13,8 +13,8 @@ struct BottomsRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Bottoms.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/DressUpRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/DressUpRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/DressUpRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/DressUpRequest.swift index f502e520..8d5f0314 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/DressUpRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/DressUpRequest.swift @@ -13,8 +13,8 @@ struct DressUpRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Dress-Up.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/HeadwearRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/HeadwearRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/HeadwearRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/HeadwearRequest.swift index 0fb1b337..9a4b823e 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/HeadwearRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/HeadwearRequest.swift @@ -13,8 +13,8 @@ struct HeadwearRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Headwear.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/ShoesRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/ShoesRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/ShoesRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/ShoesRequest.swift index 3c7ede1c..d1f601bf 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/ShoesRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/ShoesRequest.swift @@ -13,8 +13,8 @@ struct ShoesRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Shoes.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/SocksRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/SocksRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/SocksRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/SocksRequest.swift index aa3e1e3a..0780de02 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/SocksRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/SocksRequest.swift @@ -13,8 +13,8 @@ struct SocksRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Socks.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/TopsRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/TopsRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/TopsRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/TopsRequest.swift index ee19efa6..82a7d77a 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/TopsRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/TopsRequest.swift @@ -13,8 +13,8 @@ struct TopsRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Tops.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/UmbrellasRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/UmbrellasRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/UmbrellasRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/UmbrellasRequest.swift index 2fd12867..d200084d 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/UmbrellasRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/UmbrellasRequest.swift @@ -13,8 +13,8 @@ struct UmbrellasRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Umbrellas.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/WetSuitRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/WetSuitRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/WetSuitRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/WetSuitRequest.swift index c48fe858..7dbb8ac2 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Clothes/WetSuitRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Clothes/WetSuitRequest.swift @@ -13,8 +13,8 @@ struct WetSuitRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Clothing Other.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/CeilingDecorRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/CeilingDecorRequest.swift similarity index 83% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/CeilingDecorRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/CeilingDecorRequest.swift index 6b88937f..58577b11 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/CeilingDecorRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/CeilingDecorRequest.swift @@ -13,8 +13,8 @@ struct CeilingDecorRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Ceiling Decor.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/FencingReqeust.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/FencingReqeust.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/FencingReqeust.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/FencingReqeust.swift index 42d60544..0f23e7a6 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/FencingReqeust.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/FencingReqeust.swift @@ -13,8 +13,8 @@ struct FencingReqeust: APIRequest { let method: HTTPMethod = .get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Fencing.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/FloorsRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/FloorsRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/FloorsRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/FloorsRequest.swift index 6904be3b..d3eb7ae5 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/FloorsRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/FloorsRequest.swift @@ -13,8 +13,8 @@ struct FloorsRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Floors.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/HousewaresRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/HousewaresRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/HousewaresRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/HousewaresRequest.swift index 231fd965..e06ccf57 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/HousewaresRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/HousewaresRequest.swift @@ -13,8 +13,8 @@ struct HousewaresRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Housewares.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/MiscellaneousRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/MiscellaneousRequest.swift similarity index 83% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/MiscellaneousRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/MiscellaneousRequest.swift index f35d318d..a83b4e3a 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/MiscellaneousRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/MiscellaneousRequest.swift @@ -13,8 +13,8 @@ struct MiscellaneousRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Miscellaneous.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/OtherRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/OtherRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/OtherRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/OtherRequest.swift index cc092e3a..3e18ec53 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/OtherRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/OtherRequest.swift @@ -13,8 +13,8 @@ struct OtherRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Other.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/PhotosReqeust.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/PhotosReqeust.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/PhotosReqeust.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/PhotosReqeust.swift index 6f45b28d..9aa78bf5 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/PhotosReqeust.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/PhotosReqeust.swift @@ -13,8 +13,8 @@ struct PhotosReqeust: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Photos.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/RecipesRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/RecipesRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/RecipesRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/RecipesRequest.swift index de704827..e34d9bbb 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/RecipesRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/RecipesRequest.swift @@ -13,8 +13,8 @@ struct RecipesRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Recipes.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/RugsRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/RugsRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/RugsRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/RugsRequest.swift index 7fd4210f..b35c3265 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/RugsRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/RugsRequest.swift @@ -13,8 +13,8 @@ struct RugsRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Rugs.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/SongsRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/SongsRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/SongsRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/SongsRequest.swift index 490819d3..22018955 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/SongsRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/SongsRequest.swift @@ -13,8 +13,8 @@ struct SongsRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Music.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/WallMountedRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/WallMountedRequest.swift similarity index 83% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/WallMountedRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/WallMountedRequest.swift index f96d1ed6..0e4f5c38 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/WallMountedRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/WallMountedRequest.swift @@ -13,8 +13,8 @@ struct WallMountedRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Wall-mounted.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/WallpaperRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/WallpaperRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/WallpaperRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/WallpaperRequest.swift index 3d1f950d..48213f42 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Furniture/WallpaperRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Furniture/WallpaperRequest.swift @@ -13,8 +13,8 @@ struct WallpaperRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Wallpaper.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Museum/ArtRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Museum/ArtRequest.swift similarity index 81% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Museum/ArtRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Museum/ArtRequest.swift index 00d8e770..032318e8 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Museum/ArtRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Museum/ArtRequest.swift @@ -13,8 +13,8 @@ struct ArtRequest: APIRequest { let method: HTTPMethod = .get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Artwork.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Museum/BugRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Museum/BugRequest.swift similarity index 81% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Museum/BugRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Museum/BugRequest.swift index 3b94a427..5f7cc1f9 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Museum/BugRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Museum/BugRequest.swift @@ -13,8 +13,8 @@ struct BugRequest: APIRequest { let method: HTTPMethod = .get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Insects.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Museum/FishRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Museum/FishRequest.swift similarity index 81% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Museum/FishRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Museum/FishRequest.swift index df70cc24..e590fdd1 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Museum/FishRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Museum/FishRequest.swift @@ -13,8 +13,8 @@ struct FishRequest: APIRequest { let method: HTTPMethod = .get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Fish.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Museum/FossilsRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Museum/FossilsRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Museum/FossilsRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Museum/FossilsRequest.swift index 5050b93c..5bd81847 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Museum/FossilsRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Museum/FossilsRequest.swift @@ -13,8 +13,8 @@ struct FossilsRequest: APIRequest { let method: HTTPMethod = .get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Fossils.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Museum/SeaCreaturesRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Museum/SeaCreaturesRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Museum/SeaCreaturesRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Museum/SeaCreaturesRequest.swift index 92800c84..15e7dc31 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/Museum/SeaCreaturesRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/Museum/SeaCreaturesRequest.swift @@ -13,8 +13,8 @@ struct SeaCreaturesRequest: APIRequest { let method: HTTPMethod = .get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Sea Creatures.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/ReactionsRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/ReactionsRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/ReactionsRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/ReactionsRequest.swift index e0b84926..5c71db5b 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/ReactionsRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/ReactionsRequest.swift @@ -13,8 +13,8 @@ struct ReactionsRequest: APIRequest { let method: HTTPMethod = .get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Reactions.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/TurnipRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/TurnipRequest.swift similarity index 88% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/TurnipRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/TurnipRequest.swift index c31eb750..77aef1f4 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/TurnipRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/TurnipRequest.swift @@ -14,14 +14,14 @@ struct TurnipRequest: APIRequest { let method: HTTPMethod = .get let baseURL: URL? = URL(string: EnvironmentsVariable.turnupURL) let path: String = "" - var headers: [String : String]? - var parameters: [String : String] { + var headers: [String: String]? + var parameters: [String: String] { return ["f": "\(buyPrice)-\(priceHistories.joined(separator: "-"))"] } - + let buyPrice: String let priceHistories: [String] - + init(buyPrice: String, priceHistories: [String]) { self.buyPrice = buyPrice self.priceHistories = priceHistories diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/VillagersRequest.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/VillagersRequest.swift similarity index 82% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/VillagersRequest.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/VillagersRequest.swift index ff9ca0de..4f3c519e 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Request/VillagersRequest.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Request/VillagersRequest.swift @@ -13,8 +13,8 @@ struct VillagersRequest: APIRequest { let method: HTTPMethod = HTTPMethod.get let baseURL: URL? = URL(string: EnvironmentsVariable.repoURL) let path: String = "Villagers.json" - var headers: [String : String]? = [:] - var parameters: [String : String] { + var headers: [String: String]? = [:] + var parameters: [String: String] { return [:] } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/AccessoriesResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/AccessoriesResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/AccessoriesResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/AccessoriesResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/BagsResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/BagsResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/BagsResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/BagsResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/BottomsResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/BottomsResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/BottomsResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/BottomsResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/DressUpResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/DressUpResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/DressUpResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/DressUpResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/HeadwearResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/HeadwearResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/HeadwearResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/HeadwearResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/ShoesResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/ShoesResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/ShoesResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/ShoesResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/SocksResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/SocksResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/SocksResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/SocksResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/TopsResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/TopsResponseDTO.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/TopsResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/TopsResponseDTO.swift index 25c6e686..85f68626 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/TopsResponseDTO.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/TopsResponseDTO.swift @@ -63,7 +63,7 @@ struct WardrobeVariat: Codable { let uniqueEntryId: String let variantTranslations: Translations let colors: [Color] - + func toVariat() -> Variant { return .init( image: closetImage ?? storageImage, diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/UmbrellasResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/UmbrellasResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/UmbrellasResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/UmbrellasResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/WetSuitResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/WetSuitResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Clothes/WetSuitResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Clothes/WetSuitResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/CeilingDecorResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/CeilingDecorResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/CeilingDecorResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/CeilingDecorResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/FencingResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/FencingResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/FencingResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/FencingResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/FloorsResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/FloorsResponseDTO.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/FloorsResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/FloorsResponseDTO.swift index cb6c2434..726d22c3 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/FloorsResponseDTO.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/FloorsResponseDTO.swift @@ -8,7 +8,7 @@ import Foundation struct FloorsResponseDTO: Codable { - + let name: String let image: String let vfx: Bool @@ -34,7 +34,7 @@ struct FloorsResponseDTO: Codable { let concepts: [String] let series: String? let recipe: RecipeResponseDTO? - + } extension FloorsResponseDTO { diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/HousewaresResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/HousewaresResponseDTO.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/HousewaresResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/HousewaresResponseDTO.swift index f22c245f..de8b8243 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/HousewaresResponseDTO.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/HousewaresResponseDTO.swift @@ -62,11 +62,11 @@ struct FurnitureTranslations: Codable { let eUru, eUfr, eUes, uSen: String let uSfr, uSes, jPja, kRko: String let tWzh, cNzh: String - + enum LanguageCode: String { case de, en, it, nl, ru, fr, es, ja, ko, zh } - + func localizedName() -> String { guard let code = Locale.current.languageCode, let languageCode = LanguageCode(rawValue: code) else { return uSen @@ -185,7 +185,7 @@ struct Variant: Codable { let colors: [Color]? let concepts: [Concept]? let patternTranslations: Translations? - + func toKeyword() -> [String] { return (colors?.map { $0.rawValue } ?? []) + (concepts?.map { $0.rawValue } ?? []) } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/MiscellaneousResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/MiscellaneousResponseDTO.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/MiscellaneousResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/MiscellaneousResponseDTO.swift index 6ce582c1..c055e7be 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/MiscellaneousResponseDTO.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/MiscellaneousResponseDTO.swift @@ -8,7 +8,7 @@ import Foundation struct MiscellaneousResponseDTO: Codable { - + let name: String let image: String? let variation: String? @@ -55,7 +55,7 @@ struct MiscellaneousResponseDTO: Codable { let series: String? let recipe: RecipeResponseDTO? let variations: [Variant]? - + } extension MiscellaneousResponseDTO { diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/OtherResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/OtherResponseDTO.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/OtherResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/OtherResponseDTO.swift index 60dbdc7d..3df473aa 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/OtherResponseDTO.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/OtherResponseDTO.swift @@ -8,7 +8,7 @@ import Foundation struct OtherResponseDTO: Codable { - + let name: String let inventoryImage: String? let storageImage: String? @@ -34,7 +34,7 @@ struct OtherResponseDTO: Codable { let translations: Translations let colors: [Color] let recipe: RecipeResponseDTO? - + } extension OtherResponseDTO { diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/PhotosResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/PhotosResponseDTO.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/PhotosResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/PhotosResponseDTO.swift index 18c0887a..1d989c2d 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/PhotosResponseDTO.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/PhotosResponseDTO.swift @@ -25,7 +25,7 @@ struct PhotosResponseDTO: Codable { } extension PhotosResponseDTO { - + func toDomain() -> Item { return Item( name: name, diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/RecipeResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/RecipeResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/RecipeResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/RecipeResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/RugsResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/RugsResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/RugsResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/RugsResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/SongResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/SongResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/SongResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/SongResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/WallMountedResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/WallMountedResponseDTO.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/WallMountedResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/WallMountedResponseDTO.swift index 3e503643..78ff5734 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/WallMountedResponseDTO.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/WallMountedResponseDTO.swift @@ -8,7 +8,7 @@ import Foundation struct WallMountedResponseDTO: Codable { - + let name: String let image: String? let variation: String? diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/WallpaperResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/WallpaperResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Furniture/WallpaperResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Furniture/WallpaperResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Museum/ArtResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Museum/ArtResponseDTO.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Museum/ArtResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Museum/ArtResponseDTO.swift index 6a391c95..e81af05c 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Museum/ArtResponseDTO.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Museum/ArtResponseDTO.swift @@ -85,7 +85,7 @@ enum Concept: String, Codable, CaseIterable { case stylish = "stylish" case supermarket = "supermarket" case workshop = "workshop" - + static func transform(_ localizedString: String) -> String? { switch localizedString { case Concept.ancient.rawValue.localized: return Concept.ancient.rawValue @@ -161,7 +161,7 @@ extension ArtResponseDTO { } extension Item { - + init( name: String, category: Category, diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Museum/BugResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Museum/BugResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Museum/BugResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Museum/BugResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Museum/FishResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Museum/FishResponseDTO.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Museum/FishResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Museum/FishResponseDTO.swift index 1ea78059..e1ae093d 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Museum/FishResponseDTO.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Museum/FishResponseDTO.swift @@ -125,7 +125,7 @@ extension FishResponseDTO { } extension Item { - + init( name: String, category: Category, diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Museum/FossilsResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Museum/FossilsResponseDTO.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Museum/FossilsResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Museum/FossilsResponseDTO.swift index f775ce3a..8151d6cc 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Museum/FossilsResponseDTO.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Museum/FossilsResponseDTO.swift @@ -75,5 +75,5 @@ extension Item { self.colors = colors self.genuine = true } - + } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Museum/SeaCreaturesResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Museum/SeaCreaturesResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/Museum/SeaCreaturesResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/Museum/SeaCreaturesResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/ReactionsResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/ReactionsResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/ReactionsResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/ReactionsResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/TurnipResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/TurnipResponseDTO.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/TurnipResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/TurnipResponseDTO.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/VillagersResponseDTO.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/VillagersResponseDTO.swift similarity index 55% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/VillagersResponseDTO.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/VillagersResponseDTO.swift index 81df48e5..a312d56f 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Response/VillagersResponseDTO.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Response/VillagersResponseDTO.swift @@ -77,44 +77,44 @@ enum Specie: String, Codable, CaseIterable { case wolf = "Wolf" case elephant = "Elephant" case lion = "Lion" - + static func transform(localizedString: String) -> String? { switch localizedString { - case Specie.hamster.rawValue.localized: return Specie.hamster.rawValue - case Specie.dog.rawValue.localized: return Specie.dog.rawValue - case Specie.cow.rawValue.localized: return Specie.cow.rawValue - case Specie.squirrel.rawValue.localized: return Specie.squirrel.rawValue - case Specie.koala.rawValue.localized: return Specie.koala.rawValue - case Specie.rhinoceros.rawValue.localized: return Specie.rhinoceros.rawValue - case Specie.rabbit.rawValue.localized: return Specie.rabbit.rawValue - case Specie.hippo.rawValue.localized: return Specie.hippo.rawValue - case Specie.eagle.rawValue.localized: return Specie.eagle.rawValue - case Specie.bull.rawValue.localized: return Specie.bull.rawValue - case Specie.pig.rawValue.localized: return Specie.pig.rawValue - case Specie.kangaroo.rawValue.localized: return Specie.kangaroo.rawValue - case Specie.gorilla.rawValue.localized: return Specie.gorilla.rawValue - case Specie.pstrich.rawValue.localized: return Specie.pstrich.rawValue - case Specie.deer.rawValue.localized: return Specie.deer.rawValue - case Specie.monkey.rawValue.localized: return Specie.monkey.rawValue - case Specie.horse.rawValue.localized: return Specie.horse.rawValue - case Specie.bearCub.rawValue.localized: return Specie.bearCub.rawValue - case Specie.bear.rawValue.localized: return Specie.bear.rawValue - case Specie.chicken.rawValue.localized: return Specie.chicken.rawValue - case Specie.cat.rawValue.localized: return Specie.cat.rawValue - case Specie.tiger.rawValue.localized: return Specie.tiger.rawValue - case Specie.octopus.rawValue.localized: return Specie.octopus.rawValue - case Specie.alligator.rawValue.localized: return Specie.alligator.rawValue - case Specie.anteater.rawValue.localized: return Specie.anteater.rawValue - case Specie.penguin.rawValue.localized: return Specie.penguin.rawValue - case Specie.bird.rawValue.localized: return Specie.bird.rawValue - case Specie.goat.rawValue.localized: return Specie.goat.rawValue - case Specie.frog.rawValue.localized: return Specie.frog.rawValue - case Specie.sheep.rawValue.localized: return Specie.sheep.rawValue - case Specie.duck.rawValue.localized: return Specie.duck.rawValue - case Specie.mouse.rawValue.localized: return Specie.mouse.rawValue - case Specie.wolf.rawValue.localized: return Specie.wolf.rawValue - case Specie.elephant.rawValue.localized: return Specie.elephant.rawValue - case Specie.lion.rawValue.localized: return Specie.lion.rawValue + case Specie.hamster.rawValue.lowercased().localized: return Specie.hamster.rawValue + case Specie.dog.rawValue.lowercased().localized: return Specie.dog.rawValue + case Specie.cow.rawValue.lowercased().localized: return Specie.cow.rawValue + case Specie.squirrel.rawValue.lowercased().localized: return Specie.squirrel.rawValue + case Specie.koala.rawValue.lowercased().localized: return Specie.koala.rawValue + case Specie.rhinoceros.rawValue.lowercased().localized: return Specie.rhinoceros.rawValue + case Specie.rabbit.rawValue.lowercased().localized: return Specie.rabbit.rawValue + case Specie.hippo.rawValue.lowercased().localized: return Specie.hippo.rawValue + case Specie.eagle.rawValue.lowercased().localized: return Specie.eagle.rawValue + case Specie.bull.rawValue.lowercased().localized: return Specie.bull.rawValue + case Specie.pig.rawValue.lowercased().localized: return Specie.pig.rawValue + case Specie.kangaroo.rawValue.lowercased().localized: return Specie.kangaroo.rawValue + case Specie.gorilla.rawValue.lowercased().localized: return Specie.gorilla.rawValue + case Specie.pstrich.rawValue.lowercased().localized: return Specie.pstrich.rawValue + case Specie.deer.rawValue.lowercased().localized: return Specie.deer.rawValue + case Specie.monkey.rawValue.lowercased().localized: return Specie.monkey.rawValue + case Specie.horse.rawValue.lowercased().localized: return Specie.horse.rawValue + case Specie.bearCub.rawValue.lowercased().localized: return Specie.bearCub.rawValue + case Specie.bear.rawValue.lowercased().localized: return Specie.bear.rawValue + case Specie.chicken.rawValue.lowercased().localized: return Specie.chicken.rawValue + case Specie.cat.rawValue.lowercased().localized: return Specie.cat.rawValue + case Specie.tiger.rawValue.lowercased().localized: return Specie.tiger.rawValue + case Specie.octopus.rawValue.lowercased().localized: return Specie.octopus.rawValue + case Specie.alligator.rawValue.lowercased().localized: return Specie.alligator.rawValue + case Specie.anteater.rawValue.lowercased().localized: return Specie.anteater.rawValue + case Specie.penguin.rawValue.lowercased().localized: return Specie.penguin.rawValue + case Specie.bird.rawValue.lowercased().localized: return Specie.bird.rawValue + case Specie.goat.rawValue.lowercased().localized: return Specie.goat.rawValue + case Specie.frog.rawValue.lowercased().localized: return Specie.frog.rawValue + case Specie.sheep.rawValue.lowercased().localized: return Specie.sheep.rawValue + case Specie.duck.rawValue.lowercased().localized: return Specie.duck.rawValue + case Specie.mouse.rawValue.lowercased().localized: return Specie.mouse.rawValue + case Specie.wolf.rawValue.lowercased().localized: return Specie.wolf.rawValue + case Specie.elephant.rawValue.lowercased().localized: return Specie.elephant.rawValue + case Specie.lion.rawValue.lowercased().localized: return Specie.lion.rawValue default: return nil } } @@ -168,23 +168,23 @@ enum Color: String, Codable, CaseIterable { case red = "Red" case white = "White" case yellow = "Yellow" - + static func transform(_ localizedString: String) -> String? { switch localizedString { - case Color.aqua.rawValue.localized : return Color.aqua.rawValue - case Color.beige.rawValue.localized : return Color.beige.rawValue - case Color.black.rawValue.localized : return Color.black.rawValue - case Color.blue.rawValue.localized : return Color.blue.rawValue - case Color.brown.rawValue.localized : return Color.brown.rawValue - case Color.colorful.rawValue.localized : return Color.colorful.rawValue - case Color.gray.rawValue.localized : return Color.gray.rawValue - case Color.green.rawValue.localized : return Color.green.rawValue - case Color.orange.rawValue.localized : return Color.orange.rawValue - case Color.pink.rawValue.localized : return Color.pink.rawValue - case Color.purple.rawValue.localized : return Color.purple.rawValue - case Color.red.rawValue.localized : return Color.red.rawValue - case Color.white.rawValue.localized : return Color.white.rawValue - case Color.yellow.rawValue.localized : return Color.yellow.rawValue + case Color.aqua.rawValue.lowercased().localized: return Color.aqua.rawValue + case Color.beige.rawValue.lowercased().localized: return Color.beige.rawValue + case Color.black.rawValue.lowercased().localized: return Color.black.rawValue + case Color.blue.rawValue.lowercased().localized: return Color.blue.rawValue + case Color.brown.rawValue.lowercased().localized: return Color.brown.rawValue + case Color.colorful.rawValue.lowercased().localized: return Color.colorful.rawValue + case Color.gray.rawValue.lowercased().localized: return Color.gray.rawValue + case Color.green.rawValue.lowercased().localized: return Color.green.rawValue + case Color.orange.rawValue.lowercased().localized: return Color.orange.rawValue + case Color.pink.rawValue.lowercased().localized: return Color.pink.rawValue + case Color.purple.rawValue.lowercased().localized: return Color.purple.rawValue + case Color.red.rawValue.lowercased().localized: return Color.red.rawValue + case Color.white.rawValue.lowercased().localized: return Color.white.rawValue + case Color.yellow.rawValue.lowercased().localized: return Color.yellow.rawValue default: return nil } } @@ -193,11 +193,11 @@ enum Color: String, Codable, CaseIterable { enum Gender: String, Codable, CaseIterable { case female = "Female" case male = "Male" - + static func transform(localizedString: String) -> String? { switch localizedString { - case Gender.female.rawValue.localized: return Gender.female.rawValue - case Gender.male.rawValue.localized: return Gender.male.rawValue + case Gender.female.rawValue.lowercased().localized: return Gender.female.rawValue + case Gender.male.rawValue.lowercased().localized: return Gender.male.rawValue default: return nil } } @@ -221,17 +221,17 @@ enum Personality: String, Codable, CaseIterable { case personalityLazy = "Lazy" case smug = "Smug" case snooty = "Snooty" - + static func transform(localizedString: String) -> String? { switch localizedString { - case Personality.bigSister.rawValue.localized: return Personality.bigSister.rawValue - case Personality.cranky.rawValue.localized: return Personality.cranky.rawValue - case Personality.jock.rawValue.localized: return Personality.jock.rawValue - case Personality.normal.rawValue.localized: return Personality.normal.rawValue - case Personality.peppy.rawValue.localized: return Personality.peppy.rawValue - case Personality.personalityLazy.rawValue.localized: return Personality.personalityLazy.rawValue - case Personality.smug.rawValue.localized: return Personality.smug.rawValue - case Personality.snooty.rawValue.localized: return Personality.snooty.rawValue + case Personality.bigSister.rawValue.lowercased().localized: return Personality.bigSister.rawValue + case Personality.cranky.rawValue.lowercased().localized: return Personality.cranky.rawValue + case Personality.jock.rawValue.lowercased().localized: return Personality.jock.rawValue + case Personality.normal.rawValue.lowercased().localized: return Personality.normal.rawValue + case Personality.peppy.rawValue.lowercased().localized: return Personality.peppy.rawValue + case Personality.personalityLazy.rawValue.lowercased().localized: return Personality.personalityLazy.rawValue + case Personality.smug.rawValue.lowercased().localized: return Personality.smug.rawValue + case Personality.snooty.rawValue.lowercased().localized: return Personality.snooty.rawValue default: return nil } } @@ -256,11 +256,11 @@ struct Translations: Codable { let eUru, eUfr, eUes, uSen: String let uSfr, uSes, jPja, kRko: String let tWzh, cNzh: String - + enum LanguageCode: String { case de, en, it, nl, ru, fr, es, ja, ko, zh } - + func localizedName() -> String { guard let code = Locale.current.languageCode, let languageCode = LanguageCode(rawValue: code) else { return uSen diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Utilities/APIError.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Utilities/APIError.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Utilities/APIError.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Utilities/APIError.swift index fe1e34ba..e7088e1d 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Utilities/APIError.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Utilities/APIError.swift @@ -14,7 +14,7 @@ enum APIError: LocalizedError { case invalidData case invalidURL(_ url: String) case parsingError - + var errorDescription: String? { switch self { case .responseCasting: diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Utilities/EnvironmentsVariable.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Networking/Utilities/EnvironmentsVariable.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Networking/Utilities/EnvironmentsVariable.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Networking/Utilities/EnvironmentsVariable.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Coordinator/CatalogCoordinator.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Coordinator/CatalogCoordinator.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Coordinator/CatalogCoordinator.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Coordinator/CatalogCoordinator.swift index 6e52edf9..b091d87c 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Coordinator/CatalogCoordinator.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Coordinator/CatalogCoordinator.swift @@ -8,28 +8,28 @@ import UIKit final class CatalogCoordinator: Coordinator { - + enum Route { case items(for: Category) case itemDetail(_ item: Item) case keyword(title: String, keyword: Keyword) } - + var type: CoordinatorType = .catalog var rootViewController: UINavigationController private(set) var parentCoordinator: Coordinator? var childCoordinators: [Coordinator] = [] - + init(rootViewController: UINavigationController = UINavigationController()) { self.rootViewController = rootViewController } - + func start() { let catalogVC = CatalogViewController() catalogVC.bind(to: CatalogReactor(coordinator: self)) rootViewController.addChild(catalogVC) } - + func transition(for route: Route) { switch route { case .items(let category): @@ -46,7 +46,7 @@ final class CatalogCoordinator: Coordinator { rootViewController.pushViewController(viewController, animated: true) } } - + func setUpParent(to coordinator: Coordinator) { parentCoordinator = coordinator } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewControllers/CatalogViewController.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewControllers/CatalogViewController.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewControllers/CatalogViewController.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewControllers/CatalogViewController.swift index 84c66dae..f97159db 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewControllers/CatalogViewController.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewControllers/CatalogViewController.swift @@ -9,7 +9,7 @@ import UIKit import RxSwift class CatalogViewController: UIViewController { - + private let disposeBag = DisposeBag() private lazy var tableView: UITableView = { @@ -19,7 +19,7 @@ class CatalogViewController: UIViewController { tableView.contentInsetAdjustmentBehavior = .always return tableView }() - + private lazy var activityIndicator: LoadingView = { let activityIndicator = LoadingView(backgroundColor: .acBackground, alpha: 0.5) view.addSubviews(activityIndicator) @@ -32,7 +32,7 @@ class CatalogViewController: UIViewController { super.viewDidLoad() setUpViews() } - + override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() navigationController?.navigationBar.sizeToFit() @@ -42,7 +42,7 @@ class CatalogViewController: UIViewController { view.backgroundColor = .acBackground navigationItem.title = "Catalog".localized } - + private func setUpViews() { setUpNavigationItem() view.addSubviews(tableView) @@ -53,23 +53,23 @@ class CatalogViewController: UIViewController { tableView.heightAnchor.constraint(equalTo: view.heightAnchor) ]) } - + func bind(to reactor: CatalogReactor) { self.rx.viewDidLoad .map { CatalogReactor.Action.fetch } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + tableView.rx.modelSelected((title: Category, count: Int).self) .map { CatalogReactor.Action.selectedCategory(title: $0.0) } .bind(to: reactor.action) .disposed(by: disposeBag) - + reactor.state.map { $0.isLoading } .bind(to: activityIndicator.rx.isAnimating) .disposed(by: disposeBag) - + reactor.state.map { $0.categories } .bind(to: tableView.rx.items(cellIdentifier: CategoryRow.className, cellType: CategoryRow.self)) { _, item, cell in cell.setUp( diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewControllers/ItemDetailViewController.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewControllers/ItemDetailViewController.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewControllers/ItemDetailViewController.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewControllers/ItemDetailViewController.swift index a2c2cb0f..3f42391c 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewControllers/ItemDetailViewController.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewControllers/ItemDetailViewController.swift @@ -9,11 +9,11 @@ import UIKit import RxSwift class ItemDetailViewController: UIViewController { - + private let disposeBag = DisposeBag() - + private lazy var sectionsScrollView: SectionsScrollView = SectionsScrollView() - + private lazy var checkButton: UIButton = { let button = UIButton() button.tintColor = .acNavigationBarTint @@ -24,28 +24,28 @@ class ItemDetailViewController: UIViewController { ) return button }() - + private var itemDetailInfoView: ItemDetailInfoView? private var itemVariantsColorView: ItemVariantsView? private var itemVariantsPatternView: ItemVariantsView? private var keywordView: ItemKeywordView? private var playerView: ItemPlayerView? - + override func viewDidLoad() { super.viewDidLoad() setUpViews() } - + override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() navigationController?.navigationBar.sizeToFit() } - + private func setUpViews() { setUpNavigationItem() view.backgroundColor = .acBackground view.addSubviews(sectionsScrollView) - + NSLayoutConstraint.activate([ sectionsScrollView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), sectionsScrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor), @@ -53,7 +53,7 @@ class ItemDetailViewController: UIViewController { sectionsScrollView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor) ]) } - + private func setUpNavigationItem() { let checkBarButton = UIBarButtonItem(customView: checkButton) navigationItem.rightBarButtonItems = [checkBarButton] @@ -65,25 +65,25 @@ class ItemDetailViewController: UIViewController { playerView = ItemPlayerView() navigationItem.title = reactor.currentState.item.translations.localizedName() setUpSection(in: reactor.currentState.item) - + self.rx.viewDidLoad .map { ItemDetailReactor.Action.fetch } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + checkButton.rx.tap .map { ItemDetailReactor.Action.check } .bind(to: reactor.action) .disposed(by: disposeBag) - + keywordView?.didTapKeyword .compactMap { $0 } .map { ItemDetailReactor.Action.didTapKeyword($0) } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + playerView?.playButton.rx.tap .map { ItemDetailReactor.Action.play } .bind(to: reactor.action) @@ -99,14 +99,14 @@ class ItemDetailViewController: UIViewController { for: .normal ) }).disposed(by: disposeBag) - + itemVariantsColorView?.didTapImage .compactMap { $0 } .withUnretained(self) .subscribe(onNext: { owner, image in owner.itemDetailInfoView?.changeImage(image) }).disposed(by: disposeBag) - + itemVariantsPatternView?.didTapImage .compactMap { $0 } .withUnretained(self) @@ -114,7 +114,7 @@ class ItemDetailViewController: UIViewController { owner.itemDetailInfoView?.changeImage(image) }).disposed(by: disposeBag) } - + private func setUpSection(in item: Item) { setUpDetail(item) setUpVariant(item) @@ -124,7 +124,7 @@ class ItemDetailViewController: UIViewController { setUpMaterials(item) setUpPlayer(item) } - + private func setUpDetail(_ item: Item) { itemDetailInfoView = ItemDetailInfoView(item: item) itemDetailInfoView.flatMap { @@ -136,21 +136,21 @@ class ItemDetailViewController: UIViewController { sectionsScrollView.addSection(itemDetailInfo) } } - + private func setUpVariant(_ item: Item) { guard Category.furniture().contains(item.category), item.variations != nil else { return } itemVariantsColorView = ItemVariantsView(item: item.variationsWithColor, mode: .color) itemVariantsPatternView = ItemVariantsView(item: item.variationsWithPattern, mode: .pattern) - + let isNoColor = item.variations?.compactMap { $0.filename }.filter { $0.suffix(2) == "_0" }.count ?? 1 <= 1 let isNoPattern = item.patternCustomize == false let canBodyCustomize = item.bodyCustomize == true let canPatternCustomize = item.patternCustomize == true let bodyTitle = "\("Variants".localized) (\(canBodyCustomize ? "Reformable".localized : "Not reformed".localized))" let patternTitle = "\("Pattern".localized) (\(canPatternCustomize ? "Reformable".localized : "Not reformed".localized))" - + switch item.category { case .photos, .tops, .bottoms, .dressUp, .headwear, .accessories, .socks, .shoes, .bags, .umbrellas, .wetSuit: itemVariantsColorView.flatMap { view in @@ -200,14 +200,14 @@ class ItemDetailViewController: UIViewController { } } } - + private func setUpOther(_ item: Item) { let otherInfoView = SectionView( contentView: ItemOtherInfoView(item: item) ) sectionsScrollView.addSection(otherInfoView) } - + private func setUpSaeson(_ item: Item) { guard Category.critters.contains(item.category) else { return @@ -219,21 +219,21 @@ class ItemDetailViewController: UIViewController { ) sectionsScrollView.addSection(seasonView) } - + private func setUpKeyword(_ item: Item) { guard item.keyword.isEmpty == false else { return } keywordView.flatMap { let keywordListView = SectionView( - title: "Keyword".localized, + title: "keyword".localized.uppercased(), iconName: "link", contentView: $0 ) sectionsScrollView.addSection(keywordListView) } } - + private func setUpMaterials(_ item: Item) { guard item.recipe?.materials.isEmpty == false else { return @@ -246,7 +246,7 @@ class ItemDetailViewController: UIViewController { ) sectionsScrollView.addSection(materialsSection) } - + private func setUpPlayer(_ item: Item) { guard item.category == .songs else { return diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewControllers/ItemsViewController.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewControllers/ItemsViewController.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewControllers/ItemsViewController.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewControllers/ItemsViewController.swift index ccc718c3..574e1db6 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewControllers/ItemsViewController.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewControllers/ItemsViewController.swift @@ -10,13 +10,13 @@ import RxSwift import RxRelay class ItemsViewController: UIViewController { - + enum Mode: Equatable { case user case all case keyword(title: String, keyword: Keyword) } - + enum Menu: Int { case all case month @@ -24,7 +24,7 @@ class ItemsViewController: UIViewController { case sell case allSelect case reset - + var title: String { switch self { case .all: return "All".localized @@ -35,12 +35,12 @@ class ItemsViewController: UIViewController { case .reset: return "Reset".localized } } - + static let descending = "descending" static let ascending = "ascending" static let descendingIconName = "arrow.down" static let ascendingIconName = "arrow.up" - + static func transform(localized: String) -> Self { switch localized { case "All".localized: return .all @@ -53,12 +53,12 @@ class ItemsViewController: UIViewController { } } } - + enum SearchScope: String, CaseIterable { case all = "All" case notCollected = "Not collected" case collected = "Collected" - + static func transform(_ localizedString: String) -> String? { switch localizedString { case SearchScope.all.rawValue.localized: return SearchScope.all.rawValue @@ -74,7 +74,7 @@ class ItemsViewController: UIViewController { private var currentSelected: [Menu: String] = [.all: Menu.all.title] private var selectedKeyword = BehaviorRelay<[Menu: String]>(value: [:]) private let disposeBag = DisposeBag() - + private lazy var collectionView: UICollectionView = { let flowLayout = UICollectionViewFlowLayout() flowLayout.itemSize = CGSize(width: 105, height: 175) @@ -86,7 +86,7 @@ class ItemsViewController: UIViewController { collectionView.registerNib(CatalogCell.self) return collectionView }() - + private lazy var activityIndicator: LoadingView = { let activityIndicator = LoadingView(backgroundColor: .acBackground, alpha: 1) view.addSubviews(activityIndicator) @@ -94,7 +94,7 @@ class ItemsViewController: UIViewController { activityIndicator.heightAnchor.constraint(equalTo: view.heightAnchor).isActive = true return activityIndicator }() - + private lazy var searchController: UISearchController = { let searchController = UISearchController(searchResultsController: nil) searchController.searchBar.placeholder = "Search...".localized @@ -106,25 +106,25 @@ class ItemsViewController: UIViewController { navigationItem.hidesSearchBarWhenScrolling = false return searchController }() - + private lazy var emptyView: EmptyView = EmptyView( title: "There are no villagers.".localized, description: "They appear here when you press the villager's heart button or home button.".localized ) - + override func viewDidLoad() { super.viewDidLoad() setUpViews() } - + override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() navigationController?.navigationBar.sizeToFit() } - + func bind(to reactor: ItemsReactor, keyword: [Menu: String] = [:]) { self.reactor = reactor - + category = reactor.category switch reactor.mode { case .user: mode = .user @@ -132,62 +132,62 @@ class ItemsViewController: UIViewController { case .all: mode = .all } setUpFilterKeyword(keyword) - + self.rx.viewDidLoad .map { ItemsReactor.Action.fetch } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + searchController.searchBar.rx.cancelButtonClicked .map { ItemsReactor.Action.search(text: "") } .bind(to: reactor.action) .disposed(by: disposeBag) - + searchController.searchBar.rx.text .compactMap { $0 } .map { ItemsReactor.Action.search(text: $0) } .bind(to: reactor.action) .disposed(by: disposeBag) - + selectedKeyword .map { ItemsReactor.Action.selectedMenu(keywords: $0) } .bind(to: reactor.action) .disposed(by: disposeBag) - + searchController.searchBar.rx.selectedScopeButtonIndex .compactMap { [weak self] in self?.searchController.searchBar.scopeButtonTitles?[$0]} .map { ItemsReactor.Action.selectedScope($0) } .bind(to: reactor.action) .disposed(by: disposeBag) - + collectionView.rx.itemSelected .map { ItemsReactor.Action.selectedItem(indexPath: $0) } .bind(to: reactor.action) .disposed(by: disposeBag) - + reactor.state.map { $0.isLoading } .observe(on: MainScheduler.asyncInstance) .bind(to: activityIndicator.rx.isAnimating) .disposed(by: disposeBag) - + reactor.state.map { $0.items } .bind(to: collectionView.rx.items(cellIdentifier: CatalogCell.className, cellType: CatalogCell.self)) { _, item, cell in cell.setUp(item) }.disposed(by: disposeBag) - + reactor.state.map { $0.items } .map { !$0.isEmpty } .bind(to: emptyView.rx.isHidden) .disposed(by: disposeBag) - + if [Mode.all, Mode.user].contains(mode), navigationItem.title == nil { reactor.state.map { $0.category } .map { $0.rawValue.localized } .bind(to: navigationItem.rx.title) .disposed(by: disposeBag) } - + selectedKeyword .filter { $0.isEmpty == false } .map { !$0.keys.contains(.all) } @@ -198,7 +198,7 @@ class ItemsViewController: UIViewController { systemName: isFiltering ? "arrow.up.arrow.down.circle.fill" : "ellipsis.circle" ) }).disposed(by: disposeBag) - + searchController.searchBar.rx.text .map { $0 != "" } .withUnretained(self) @@ -210,7 +210,7 @@ class ItemsViewController: UIViewController { ) } }).disposed(by: disposeBag) - + searchController.searchBar.rx.selectedScopeButtonIndex .compactMap { SearchScope.allCases[safe: $0] } .observe(on: MainScheduler.asyncInstance) @@ -237,7 +237,7 @@ class ItemsViewController: UIViewController { owner.selectedKeyword.accept(owner.currentSelected) }).disposed(by: disposeBag) } - + private func setUpFilterKeyword(_ keyword: [Menu: String]) { guard keyword.isEmpty == false else { return @@ -251,7 +251,7 @@ class ItemsViewController: UIViewController { } searchController.searchBar.rx.selectedScopeButtonIndex.onNext(1) } - + private func setUpViews() { view.backgroundColor = .acBackground view.addSubviews(collectionView, activityIndicator, emptyView) @@ -268,10 +268,10 @@ class ItemsViewController: UIViewController { ]) setUpNavigationItem() } - + private func setUpNavigationItem() { switch mode { - case .keyword(let title, _): navigationItem.title = title.localized + case .keyword(let title, _): navigationItem.title = title.lowercased().localized.capitalized default: break } let moreButton = UIBarButtonItem( @@ -284,12 +284,12 @@ class ItemsViewController: UIViewController { navigationItem.rightBarButtonItem = moreButton moreButton.menu = createMoreMenu() } - + } // MARK: - Menus extension ItemsViewController { - + private func createMoreMenu() -> UIMenu { let menu = UIMenu(title: "", options: .displayInline, children: createMoreMenuChildren()) menu.children.forEach { action in @@ -302,7 +302,7 @@ extension ItemsViewController { } return menu } - + private func createMoreMenuChildren() -> [UIMenuElement] { let allAction = UIAction(title: Menu.all.title, handler: { [weak self] _ in self?.currentSelected = [Menu.all: Menu.all.title] @@ -316,7 +316,7 @@ extension ItemsViewController { selectedKeyword.accept(currentSelected) return menuItems } - + private func createSortMenu() -> UIMenu { let handler: (UIAction) -> Void = { [weak self] action in let rawValue = action.title == Menu.name.title ? 2 : 3 @@ -353,7 +353,7 @@ extension ItemsViewController { } return menu } - + private func createFilterMenu() -> [UIMenuElement] { guard mode != .user else { return [] @@ -384,7 +384,7 @@ extension ItemsViewController { } return filterMenuList } - + private func createCheckMenu() -> UIMenu { let allSelectAction = UIAction( title: Menu.allSelect.title, @@ -420,5 +420,5 @@ extension ItemsViewController { } return UIMenu(title: "", options: .displayInline, children: [allSelectAction, resetAction]) } - + } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewModels/CatalogCellReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewModels/CatalogCellReactor.swift similarity index 96% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewModels/CatalogCellReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewModels/CatalogCellReactor.swift index a03054e5..b4ca05a9 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewModels/CatalogCellReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewModels/CatalogCellReactor.swift @@ -9,40 +9,40 @@ import Foundation import ReactorKit final class CatalogCellReactor: Reactor { - + enum Action { case fetch case check } - + enum Mutation { case setAcquired(_ isAcquired: Bool) } - + struct State { let item: Item let category: Category var isAcquired: Bool? } - + let initialState: State private let item: Item private let category: Category private let storage: ItemsStorage - + init( item: Item, category: Category, state: State, storage: ItemsStorage = CoreDataItemsStorage() - + ) { self.item = item self.category = category self.initialState = state self.storage = storage } - + func mutate(action: Action) -> Observable { switch action { case .fetch: @@ -53,7 +53,7 @@ final class CatalogCellReactor: Reactor { items[owner.currentState.category]?.contains(owner.item) }.map { Mutation.setAcquired($0) } return collectedState - + case .check: HapticManager.shared.impact(style: .medium) Items.shared.updateItem(item) @@ -61,7 +61,7 @@ final class CatalogCellReactor: Reactor { return .just(.setAcquired(currentState.isAcquired == true ? false : true)) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewModels/CatalogReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewModels/CatalogReactor.swift similarity index 95% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewModels/CatalogReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewModels/CatalogReactor.swift index 0a037281..19c2fb24 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewModels/CatalogReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewModels/CatalogReactor.swift @@ -9,31 +9,31 @@ import Foundation import ReactorKit final class CatalogReactor: Reactor { - + enum Action { case fetch case selectedCategory(title: Category) } - + enum Mutation { case transition(CatalogCoordinator.Route) case setCategories(_ categories: [(title: Category, count: Int)]) case setLoadingState(_ isLoading: Bool) } - + struct State { var categories: [(title: Category, count: Int)] = [] var isLoading: Bool = true } - + let initialState: State var coordinator: CatalogCoordinator - + init(coordinator: CatalogCoordinator, state: State = State()) { self.coordinator = coordinator self.initialState = state } - + func mutate(action: Action) -> Observable { switch action { case .fetch: @@ -42,25 +42,25 @@ final class CatalogReactor: Reactor { .map { Mutation.setCategories($0) } let loadingState = Items.shared.isLoading .map { Mutation.setLoadingState($0) } - + return .merge([ categories, loadingState ]) - + case .selectedCategory(let category): return .just(.transition(.items(for: category))) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { case .transition(let route): coordinator.transition(for: route) - + case .setCategories(let categories): newState.categories = categories - + case .setLoadingState(let isLoading): newState.isLoading = isLoading } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewModels/ItemDetailReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewModels/ItemDetailReactor.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewModels/ItemDetailReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewModels/ItemDetailReactor.swift index e0fd14a2..7e372654 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewModels/ItemDetailReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewModels/ItemDetailReactor.swift @@ -9,36 +9,36 @@ import Foundation import ReactorKit final class ItemDetailReactor: Reactor { - + enum Action { case fetch case check case didTapKeyword(_ keyword: String) case play } - + enum Mutation { case setAcquired(_ isAcquired: Bool) case updateAcquired case showKeywordList(title: String, keyword: Keyword) case showMusicPlayer } - + struct State { let item: Item var isAcquired: Bool = false } - + let initialState: State private let storage: ItemsStorage private(set) var coordinator: Coordinator? - + init(item: Item, coordinator: Coordinator?, storage: ItemsStorage = CoreDataItemsStorage()) { self.storage = storage self.coordinator = coordinator self.initialState = State(item: item) } - + func mutate(action: Action) -> Observable { switch action { case .fetch: @@ -56,7 +56,7 @@ final class ItemDetailReactor: Reactor { Items.shared.updateItem(currentState.item) storage.update(currentState.item) return .just(.updateAcquired) - + case .didTapKeyword(let value): var keyword: Keyword = .tag if Color.allCases.map({ $0.rawValue }).contains(value) { @@ -67,21 +67,21 @@ final class ItemDetailReactor: Reactor { keyword = .tag } return .just(.showKeywordList(title: value, keyword: keyword)) - + case .play: return .just(.showMusicPlayer) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { case .setAcquired(let isAcquired): newState.isAcquired = isAcquired - + case .updateAcquired: newState.isAcquired = newState.isAcquired == true ? false : true - + case .showKeywordList(let title, let keyword): if let coordinator = coordinator as? CatalogCoordinator { coordinator.transition(for: .keyword(title: title, keyword: keyword)) @@ -90,7 +90,7 @@ final class ItemDetailReactor: Reactor { } else if let coordinator = coordinator as? CollectionCoordinator { coordinator.transition(for: .keyword(title: title, keyword: keyword)) } - + case .showMusicPlayer: if let coordinator = coordinator as? CatalogCoordinator { let coordinator = coordinator.parentCoordinator as? AppCoordinator diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewModels/ItemsReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewModels/ItemsReactor.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewModels/ItemsReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewModels/ItemsReactor.swift index 2a01cf63..4d1e1220 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/ViewModels/ItemsReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/ViewModels/ItemsReactor.swift @@ -9,13 +9,13 @@ import Foundation import ReactorKit final class ItemsReactor: Reactor { - + enum Mode: Equatable { case user case all case keyword(title: String, category: Keyword) } - + enum Action { case fetch case search(text: String) @@ -23,7 +23,7 @@ final class ItemsReactor: Reactor { case selectedMenu(keywords: [ItemsViewController.Menu: String]) case selectedItem(indexPath: IndexPath) } - + enum Mutation { case setHemisphere(_ hemisphere: Hemisphere) case setAllItems(_ items: [Item]) @@ -33,19 +33,19 @@ final class ItemsReactor: Reactor { case setScope(_ scope: ItemsViewController.SearchScope) case showDetail(_ item: Item) } - + struct State { let category: Category var items: [Item] = [] var isLoading: Bool = true } - + let category: Category let mode: Mode let initialState: State private let coordinator: Coordinator? private let storage: ItemsStorage - + private var currentKeywords: [ItemsViewController.Menu: String] = [:] private var lastSearchKeyword: String = "" private var currentScope: ItemsViewController.SearchScope = .all @@ -53,7 +53,7 @@ final class ItemsReactor: Reactor { private var allItems: [Item] = [] private var collectedItem: [Item] = [] private var notCollectedItem: [Item] = [] - + init(category: Category, coordinator: Coordinator?, mode: Mode = .all, storage: ItemsStorage = CoreDataItemsStorage()) { self.category = category self.initialState = State(category: category) @@ -61,14 +61,14 @@ final class ItemsReactor: Reactor { self.mode = mode self.storage = storage } - + convenience init (coordinator: Coordinator?, mode: Mode) { self.init( category: .housewares, coordinator: coordinator, mode: mode ) } - + func mutate(action: Action) -> Observable { switch action { case .fetch: @@ -82,11 +82,11 @@ final class ItemsReactor: Reactor { let loadingState = Items.shared.isLoading.map { Mutation.setLoadingState($0) } let hemisphere = Items.shared.userInfo.compactMap { $0?.hemisphere } .map { Mutation.setHemisphere($0)} - + return .merge([ loadingState, hemisphere, newAllItems, userItems ]) - + case .search(let text): lastSearchKeyword = text.lowercased() guard text != "" else { @@ -103,14 +103,14 @@ final class ItemsReactor: Reactor { keywords: owner.currentKeywords ) }.map { .setItems($0)} - + case .selectedScope(let title): guard let currentScope = ItemsViewController.SearchScope.transform(title) .flatMap({ ItemsViewController.SearchScope(rawValue: $0) }) else { return .empty() } return .just(.setScope(currentScope)) - + case .selectedMenu(let keywords): currentKeywords = keywords return currentItems() @@ -121,7 +121,7 @@ final class ItemsReactor: Reactor { keywords: keywords ) }.map { .setItems($0)} - + case .selectedItem(let indexPath): guard let item = currentState.items[safe: indexPath.item] else { return .empty() @@ -129,16 +129,16 @@ final class ItemsReactor: Reactor { return .just(.showDetail(item)) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { case .setItems(let items): newState.items = items - + case .setHemisphere(let hemisphere): currentHemisphere = hemisphere - + case .setAllItems(let items): if currentScope == .all { newState.items = items @@ -149,7 +149,7 @@ final class ItemsReactor: Reactor { coordinator?.transition(for: .pop) break } - + case .setUserItems(let collectedItems, let notCollectedItems): if currentScope == .collected { newState.items = filtered( @@ -165,10 +165,10 @@ final class ItemsReactor: Reactor { } collectedItem = collectedItems notCollectedItem = notCollectedItems - + case .setScope(let scope): currentScope = scope - + case .showDetail(let item): if let coordinator = coordinator as? CatalogCoordinator { coordinator.transition(for: .itemDetail(item)) @@ -179,11 +179,11 @@ final class ItemsReactor: Reactor { } case .setLoadingState(let isLoading): newState.isLoading = isLoading - + } return newState } - + private func currentItems() -> Observable<[Item]> { guard allItems.isEmpty == false else { return Observable.empty() @@ -194,7 +194,7 @@ final class ItemsReactor: Reactor { case .notCollected: return .just(notCollectedItem) } } - + private func filtered( items: [Item], keywords: [ItemsViewController.Menu: String] @@ -237,7 +237,7 @@ final class ItemsReactor: Reactor { } return filteredItems } - + private func search(items: [Item], text: String) -> [Item] { guard lastSearchKeyword != "" else { return items @@ -253,7 +253,7 @@ final class ItemsReactor: Reactor { } } } - + private func setUpItems() -> Observable<[Item]> { switch mode { case .all: @@ -262,20 +262,20 @@ final class ItemsReactor: Reactor { .compactMap { owner, items in items[owner.currentState.category] } - + case .user: return Items.shared.itemList .withUnretained(self) .map { owenr, items in items[owenr.currentState.category] ?? [] } - + case .keyword(let title, let category): let filteredData = Items.shared.itemFilter(keyword: title, category: category) return .just(filteredData) } } - + private func setUpUserItem() -> Observable<[Item]> { switch mode { case .all: @@ -284,16 +284,16 @@ final class ItemsReactor: Reactor { .map { owenr, items in items[owenr.currentState.category] ?? [] } - + case .keyword(let title, _): return Items.shared.itemList .map { $0.values.flatMap { $0.filter { $0.keyword.contains(title) } } } - + default: return .empty() } } - + private func setUpNotCollected(_ items: [Item]) -> [Item] { var notCollectedItems = [Item]() if items.isEmpty { diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/CalendarView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/CalendarView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/CalendarView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/CalendarView.swift index 65c98620..3c100743 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/CalendarView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/CalendarView.swift @@ -8,7 +8,7 @@ import UIKit class CalendarView: UIView { - + private let months = [ [ Calendar.current.shortMonthSymbols[0], @@ -29,17 +29,17 @@ class CalendarView: UIView { Calendar.current.shortMonthSymbols[11] ] ] - + private var flatMonths: [String] { months.flatMap { $0 } } - + private var currentMonth: Int { let formatter = DateFormatter() formatter.dateFormat = "MM" return Int(formatter.string(from: Date())) ?? 1 } - + private lazy var backgroundStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .vertical @@ -50,24 +50,24 @@ class CalendarView: UIView { stackView.layoutMargins = UIEdgeInsets(top: 24, left: 24, bottom: 24, right: 24) return stackView }() - + convenience init(months: [Int]) { self.init(frame: .zero) configure(in: months) } - + private func configure(in months: [Int]) { layer.cornerRadius = 30 backgroundColor = .catalogBackground addSubviews(backgroundStackView) - + NSLayoutConstraint.activate([ backgroundStackView.topAnchor.constraint(equalTo: topAnchor), backgroundStackView.bottomAnchor.constraint(equalTo: bottomAnchor), backgroundStackView.leadingAnchor.constraint(equalTo: leadingAnchor), backgroundStackView.trailingAnchor.constraint(equalTo: trailingAnchor) ]) - + let stackViews = self.months.map { row -> UIStackView in let stackView = UIStackView(axis: .horizontal, alignment: .center, distribution: .fill, spacing: 8) let monthViews = row.map { month -> UIView in @@ -84,7 +84,7 @@ class CalendarView: UIView { } backgroundStackView.addArrangedSubviews(stackViews) } - + private func crateMonthView(month: String, selected: Bool) -> UIView { let isCurrentMonth = flatMonths.firstIndex(of: month) == currentMonth - 1 let monthLabel = UILabel( diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/CatalogCell.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/CatalogCell.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/CatalogCell.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/CatalogCell.swift index 14adc33e..3f6c2eb5 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/CatalogCell.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/CatalogCell.swift @@ -9,13 +9,13 @@ import UIKit import RxSwift class CatalogCell: UICollectionViewCell { - + private var disposeBag = DisposeBag() - + @IBOutlet private weak var backgroundStackView: UIStackView! @IBOutlet private weak var iconImageView: UIImageView! @IBOutlet private weak var nameLabel: UILabel! - + private lazy var checkButton: UIButton = { let button = UIButton() let font = UIFont.preferredFont(forTextStyle: .title2) @@ -45,7 +45,7 @@ class CatalogCell: UICollectionViewCell { disposeBag = DisposeBag() backgroundStackView.subviews.compactMap { $0 as? ItemBellsView }.first?.removeFromSuperview() } - + private func configure() { addSubviews(checkButton) NSLayoutConstraint.activate([ @@ -53,7 +53,7 @@ class CatalogCell: UICollectionViewCell { checkButton.trailingAnchor.constraint(equalTo: backgroundStackView.trailingAnchor) ]) } - + private func setUpIconImage(_ item: Item) { if let iconImage = item.iconImage { iconImageView.setImage(with: iconImage) @@ -61,18 +61,18 @@ class CatalogCell: UICollectionViewCell { iconImageView.setImage(with: item.image ?? "") } } - + private func bind(reactor: CatalogCellReactor) { Observable.just(CatalogCellReactor.Action.fetch) .bind(to: reactor.action) .disposed(by: disposeBag) - + checkButton.rx.tap .map { CatalogCellReactor.Action.check } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + reactor.state.map { $0.isAcquired } .compactMap { $0 } .observe(on: MainScheduler.instance) @@ -91,7 +91,7 @@ class CatalogCell: UICollectionViewCell { } extension CatalogCell { - + func setUp(_ item: Item) { setUpIconImage(item) nameLabel.text = item.translations.localizedName() diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/CatalogCell.xib b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/CatalogCell.xib similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/CatalogCell.xib rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/CatalogCell.xib diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/CategoryRow.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/CategoryRow.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/CategoryRow.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/CategoryRow.swift index a5ba0ec2..835932a0 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/CategoryRow.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/CategoryRow.swift @@ -8,7 +8,7 @@ import UIKit class CategoryRow: UITableViewCell { - + @IBOutlet private weak var iconImage: UIImageView! @IBOutlet private weak var titleLabel: UILabel! @IBOutlet private weak var itemCountLabel: UILabel! @@ -22,7 +22,7 @@ class CategoryRow: UITableViewCell { selectedBackgroundView = UIView() selectedBackgroundView?.backgroundColor = .acText.withAlphaComponent(0.3) } - + override func prepareForReuse() { super.prepareForReuse() iconImage.image = nil @@ -33,11 +33,11 @@ class CategoryRow: UITableViewCell { override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } - + func setUp(iconName: String, title: String, itemCount: Int) { iconImage.image = UIImage(named: iconName) titleLabel.text = title itemCountLabel.text = itemCount.decimalFormatted } - + } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/CategoryRow.xib b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/CategoryRow.xib similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/CategoryRow.xib rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/CategoryRow.xib diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemBellsView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemBellsView.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemBellsView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemBellsView.swift index 234d7e31..e7beb6e4 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemBellsView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemBellsView.swift @@ -10,7 +10,7 @@ import UIKit class ItemBellsView: UIView { enum Mode { case buy, sell, cj, flick, poki, miles, point - + var iconName: String { switch self { case .sell: return "icon-bell" @@ -23,33 +23,33 @@ class ItemBellsView: UIView { } } } - + private var mode: Mode = .buy private var price: Int = 0 private var note: String = "" - + convenience init(mode: Mode, price: Int) { self.init(frame: .zero) self.mode = mode self.price = price configure() } - + private func configure() { backgroundColor = .catalogBar layer.cornerRadius = 14 - + let iconImage = UIImageView() iconImage.contentMode = .scaleAspectFit iconImage.image = UIImage(named: mode.iconName) - + let priceLabel = UILabel() priceLabel.font = .preferredFont(for: .footnote, weight: .bold) priceLabel.textColor = .acTabBarTint priceLabel.text = price == -1 ? "0" : price.decimalFormatted - + addSubviews(iconImage, priceLabel) - + NSLayoutConstraint.activate([ iconImage.widthAnchor.constraint(equalToConstant: 25), iconImage.heightAnchor.constraint(equalTo: iconImage.widthAnchor), diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemDetailInfoView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemDetailInfoView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemDetailInfoView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemDetailInfoView.swift index 947417f2..5f8bc43f 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemDetailInfoView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemDetailInfoView.swift @@ -8,12 +8,12 @@ import UIKit class ItemDetailInfoView: UIView { - + enum ImageSize { static let large: CGFloat = 150 static let medium: CGFloat = 100 } - + private lazy var backgroundStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .vertical @@ -24,7 +24,7 @@ class ItemDetailInfoView: UIView { stackView.layoutMargins = UIEdgeInsets(top: 10, left: 0, bottom: 10, right: 0) return stackView }() - + private lazy var subImageStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .horizontal @@ -33,7 +33,7 @@ class ItemDetailInfoView: UIView { stackView.spacing = 8 return stackView }() - + private lazy var categoryStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .horizontal @@ -42,23 +42,23 @@ class ItemDetailInfoView: UIView { stackView.spacing = 4 return stackView }() - + private lazy var itemLargeImage: UIImageView = { let imageView = UIImageView() imageView.contentMode = .scaleAspectFit return imageView }() - + convenience init(item: Item) { self.init(frame: .zero) configure(in: item.category, item: item) } - + private func configure(in category: Category, item: Item) { addSubviews(backgroundStackView) setUpImageView(item) setUpItemBells(item) - + NSLayoutConstraint.activate([ backgroundStackView.topAnchor.constraint(equalTo: topAnchor), backgroundStackView.bottomAnchor.constraint(equalTo: bottomAnchor), @@ -66,7 +66,7 @@ class ItemDetailInfoView: UIView { backgroundStackView.trailingAnchor.constraint(equalTo: trailingAnchor) ]) } - + private func infoStackView() -> UIStackView { let stackView = UIStackView() stackView.axis = .horizontal @@ -75,14 +75,14 @@ class ItemDetailInfoView: UIView { stackView.spacing = 16 return stackView } - + private func setUpImageView(_ item: Item) { switch item.category { case .bugs, .fishes, .seaCreatures: itemLargeImage.setImage(with: item.critterpediaImage ?? "") let furnitureImageView = UIImageView(path: item.furnitureImage ?? "") let iconImageView = UIImageView(path: item.iconImage ?? "") - + NSLayoutConstraint.activate([ itemLargeImage.widthAnchor.constraint(equalToConstant: ImageSize.large), itemLargeImage.heightAnchor.constraint(equalTo: itemLargeImage.widthAnchor), @@ -114,7 +114,7 @@ class ItemDetailInfoView: UIView { backgroundStackView.addArrangedSubviews(itemLargeImage) } } - + private func setUpItemBells(_ item: Item) { let infoStackView = infoStackView() switch item.category { @@ -153,7 +153,7 @@ class ItemDetailInfoView: UIView { } backgroundStackView.addArrangedSubviews(infoStackView) } - + func changeImage(_ image: UIImage) { itemLargeImage.image = image } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemKeywordView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemKeywordView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemKeywordView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemKeywordView.swift index c7724808..91a14c4a 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemKeywordView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemKeywordView.swift @@ -10,9 +10,9 @@ import RxSwift import RxCocoa class ItemKeywordView: UIView { - + private let disposeBag = DisposeBag() - + private lazy var collectionView: UICollectionView = { let flowLayout = UICollectionViewFlowLayout() flowLayout.scrollDirection = .horizontal @@ -26,16 +26,16 @@ class ItemKeywordView: UIView { collectionView.registerNib(KeywordCell.self) return collectionView }() - + var didTapKeyword: Observable { return collectionView.rx.modelSelected(String.self).asObservable() } - + convenience init(item: Item) { self.init(frame: .zero) configure(in: item) } - + private func configure(in item: Item) { addSubviews(collectionView) let heightConstraint = collectionView.heightAnchor.constraint(equalToConstant: 50) @@ -49,7 +49,7 @@ class ItemKeywordView: UIView { collectionView.widthAnchor.constraint(equalTo: widthAnchor), heightConstraint ]) - + let keyword = Set(item.keyword) Observable.just(keyword) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemMaterialsView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemMaterialsView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemMaterialsView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemMaterialsView.swift index 9b97ba52..5a0e76e8 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemMaterialsView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemMaterialsView.swift @@ -8,7 +8,7 @@ import UIKit class ItemMaterialsView: UIView { - + private lazy var backgroundStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .vertical @@ -19,16 +19,16 @@ class ItemMaterialsView: UIView { stackView.layoutMargins = UIEdgeInsets(top: 10, left: 5, bottom: 10, right: 10) return stackView }() - + convenience init(item: Item) { self.init(frame: .zero) configure(in: item) } - + private func configure(in item: Item) { addSubviews(backgroundStackView) setUpMaterials(item) - + NSLayoutConstraint.activate([ backgroundStackView.topAnchor.constraint(equalTo: topAnchor), backgroundStackView.bottomAnchor.constraint(equalTo: bottomAnchor), @@ -36,7 +36,7 @@ class ItemMaterialsView: UIView { backgroundStackView.trailingAnchor.constraint(equalTo: trailingAnchor) ]) } - + private func descriptionLabel(_ text: String?) -> UILabel { let label = UILabel( text: text, @@ -47,7 +47,7 @@ class ItemMaterialsView: UIView { label.numberOfLines = 0 return label } - + private func setUpMaterials(_ item: Item) { let materials = item.recipe?.materials materials?.forEach({ material, count in @@ -59,5 +59,5 @@ class ItemMaterialsView: UIView { } }) } - + } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemOtherInfoView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemOtherInfoView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemOtherInfoView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemOtherInfoView.swift index 9b9a8057..b4437a2a 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemOtherInfoView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemOtherInfoView.swift @@ -18,16 +18,16 @@ class ItemOtherInfoView: UIView { stackView.layoutMargins = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10) return stackView }() - + convenience init(item: Item) { self.init(frame: .zero) configure(in: item) } - + private func configure(in item: Item) { addSubviews(backgroundStackView) setUpLabel(item) - + NSLayoutConstraint.activate([ backgroundStackView.topAnchor.constraint(equalTo: topAnchor), backgroundStackView.bottomAnchor.constraint(equalTo: bottomAnchor), @@ -35,7 +35,7 @@ class ItemOtherInfoView: UIView { backgroundStackView.trailingAnchor.constraint(equalTo: trailingAnchor) ]) } - + private func setUpLabel(_ item: Item) { setUpWhereHow(item) setUpShadowSize(item) @@ -64,7 +64,7 @@ class ItemOtherInfoView: UIView { backgroundStackView.addArrangedSubviews(sourceRecipeInfo) } } - + private func descriptionLabel(_ text: String?) -> UILabel { let label = UILabel( text: text, @@ -75,7 +75,7 @@ class ItemOtherInfoView: UIView { label.numberOfLines = 0 return label } - + private func setUpWhereHow(_ item: Item) { let whereHowLabel = descriptionLabel("") switch item.category { @@ -94,7 +94,7 @@ class ItemOtherInfoView: UIView { let placeInfo = InfoContentView(title: "Where how".localized, contentView: whereHowLabel) backgroundStackView.addArrangedSubviews(placeInfo) } - + private func setUpShadowSize(_ item: Item) { guard [Category.fishes, Category.seaCreatures].contains(item.category) else { return @@ -102,9 +102,9 @@ class ItemOtherInfoView: UIView { let shadowLabel = descriptionLabel(item.shadow?.rawValue.localized) let shadowInfo = InfoContentView(title: "Shadow size".localized, contentView: shadowLabel) backgroundStackView.addArrangedSubviews(shadowInfo) - + } - + private func setUpMovementSpeed(_ item: Item) { guard item.category == .seaCreatures else { return @@ -113,7 +113,7 @@ class ItemOtherInfoView: UIView { let speedInfo = InfoContentView(title: "Movement speed".localized, contentView: speedLabel) backgroundStackView.addArrangedSubviews(speedInfo) } - + private func setUpWhetherFake(_ item: Item) { guard item.category == .art, let genuine = item.genuine else { return diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemSeasonView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemSeasonView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemSeasonView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemSeasonView.swift index 070a135a..2c70e2ec 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemSeasonView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemSeasonView.swift @@ -9,9 +9,9 @@ import UIKit import RxSwift class ItemSeasonView: UIView { - + private let disposeBag = DisposeBag() - + private lazy var backgroundStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .vertical @@ -20,9 +20,9 @@ class ItemSeasonView: UIView { stackView.spacing = 15 return stackView }() - + private lazy var timeLabel = UILabel(text: "", font: .preferredFont(forTextStyle: .body), color: .acSecondaryText) - + private lazy var timeInfoView: UIStackView = { let stackView = UIStackView(axis: .horizontal, alignment: .center, distribution: .equalCentering, spacing: 5) let config = UIImage.SymbolConfiguration(font: .preferredFont(forTextStyle: .title2)) @@ -31,16 +31,16 @@ class ItemSeasonView: UIView { stackView.addArrangedSubviews(iconImageView, timeLabel) return stackView }() - + convenience init(item: Item) { self.init(frame: .zero) configure(in: item) } - + private func configure(in item: Item) { addSubviews(backgroundStackView) backgroundStackView.addArrangedSubviews(timeInfoView) - + Items.shared.userInfo .compactMap { $0?.hemisphere } .withUnretained(self) @@ -55,7 +55,7 @@ class ItemSeasonView: UIView { owner.setUpCalendar(months: item.hemispheres?.north.monthsArray ?? []) } }).disposed(by: disposeBag) - + NSLayoutConstraint.activate([ backgroundStackView.topAnchor.constraint(equalTo: topAnchor, constant: 8), backgroundStackView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -8), @@ -63,7 +63,7 @@ class ItemSeasonView: UIView { backgroundStackView.trailingAnchor.constraint(equalTo: trailingAnchor) ]) } - + private func setUpTime(times: [String]) { if times.count == 1 { timeLabel.text = times.first?.localized @@ -72,7 +72,7 @@ class ItemSeasonView: UIView { timeLabel.numberOfLines = 0 } } - + private func setUpCalendar(months: [Int]) { if backgroundStackView.arrangedSubviews.last as? CalendarView != nil { backgroundStackView.arrangedSubviews.last?.removeFromSuperview() diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemVariantsView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemVariantsView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemVariantsView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemVariantsView.swift index 6dedca57..0c92cce0 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/ItemVariantsView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/ItemVariantsView.swift @@ -10,16 +10,16 @@ import RxSwift import RxRelay class ItemVariantsView: UIView { - + enum Mode { case color case pattern } - + private let disposeBag = DisposeBag() private var mode: Mode = .color private let cellImage = BehaviorRelay(value: nil) - + private lazy var collectionView: UICollectionView = { let flowLayout = UICollectionViewFlowLayout() flowLayout.scrollDirection = .horizontal @@ -31,17 +31,17 @@ class ItemVariantsView: UIView { collectionView.registerNib(VariantCell.self) return collectionView }() - + convenience init(item: [Variant], mode: Mode) { self.init(frame: .zero) self.mode = mode configure() setUpItems(by: item) } - + private func configure() { addSubviews(collectionView) - + let heightConstraint = collectionView.heightAnchor.constraint(equalToConstant: 110) heightConstraint.priority = .defaultHigh @@ -54,7 +54,7 @@ class ItemVariantsView: UIView { heightConstraint ]) } - + private func setUpItems(by variations: [Variant]) { Observable.just(variations) .bind(to: collectionView.rx.items(cellIdentifier: VariantCell.className, cellType: VariantCell.self) @@ -63,7 +63,7 @@ class ItemVariantsView: UIView { ?? item.variation?.localized cell.setUp(imageURL: item.image, name: name) }.disposed(by: disposeBag) - + collectionView.rx.itemSelected .withUnretained(self) .subscribe(onNext: { owner, indexPath in @@ -74,7 +74,7 @@ class ItemVariantsView: UIView { } extension ItemVariantsView { - + var didTapImage: Observable { return cellImage.asObservable() } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/KeywordCell.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/KeywordCell.swift similarity index 93% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/KeywordCell.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/KeywordCell.swift index dd88b167..6dd637b6 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/KeywordCell.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/KeywordCell.swift @@ -11,28 +11,28 @@ class KeywordCell: UICollectionViewCell { @IBOutlet private weak var titleLabel: UILabel! @IBOutlet private weak var stackView: UIStackView! - + override func awakeFromNib() { super.awakeFromNib() // Initialization code contentView.backgroundColor = .acNavigationBarTint contentView.layer.cornerRadius = 14 contentView.layer.masksToBounds = true - + titleLabel.text = nil titleLabel.textColor = .white titleLabel.font = .preferredFont(for: .footnote, weight: .bold) stackView.isLayoutMarginsRelativeArrangement = true stackView.layoutMargins = UIEdgeInsets(top: 8, left: 12, bottom: 8, right: 12) } - + override func prepareForReuse() { super.prepareForReuse() titleLabel.text = nil } func setUp(title: String) { - titleLabel.text = title.localized + titleLabel.text = title.lowercased().localized } - + } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/KeywordCell.xib b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/KeywordCell.xib similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/KeywordCell.xib rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/KeywordCell.xib diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/PlayerView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/PlayerView.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/PlayerView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/PlayerView.swift index 5a59f1e7..ee1c971a 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/PlayerView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/PlayerView.swift @@ -9,9 +9,9 @@ import UIKit import RxSwift class ItemPlayerView: UIView { - + private let disposeBag = DisposeBag() - + lazy var playButton: UIButton = { let button = UIButton() let config = UIImage.SymbolConfiguration(font: UIFont.preferredFont(for: .largeTitle, weight: .bold)) @@ -19,15 +19,15 @@ class ItemPlayerView: UIView { button.tintColor = .acText return button }() - + convenience init() { self.init(frame: .zero) configure() } - + private func configure() { addSubviews(playButton) - + NSLayoutConstraint.activate([ playButton.centerXAnchor.constraint(equalTo: centerXAnchor), playButton.centerYAnchor.constraint(equalTo: centerYAnchor), diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/VariantCell.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/VariantCell.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/VariantCell.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/VariantCell.swift index f1b0891d..ff7356fd 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/VariantCell.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/VariantCell.swift @@ -11,7 +11,7 @@ class VariantCell: UICollectionViewCell { @IBOutlet weak var imageView: UIImageView! @IBOutlet weak var titleLabel: UILabel! - + override func awakeFromNib() { super.awakeFromNib() titleLabel.font = .preferredFont(for: .footnote, weight: .bold) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/VariantCell.xib b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/VariantCell.xib similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Catalog/Views/VariantCell.xib rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Catalog/Views/VariantCell.xib diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/Coordinator/CollectionCoordinator.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/Coordinator/CollectionCoordinator.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/Coordinator/CollectionCoordinator.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/Coordinator/CollectionCoordinator.swift index 9a92275c..274e5f18 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/Coordinator/CollectionCoordinator.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/Coordinator/CollectionCoordinator.swift @@ -15,16 +15,16 @@ final class CollectionCoordinator: Coordinator { case pop case dismiss } - + var type: CoordinatorType = .collection var childCoordinators: [Coordinator] = [] let rootViewController: UINavigationController private(set) var parentCoordinator: Coordinator? - + init(rootViewController: UINavigationController = UINavigationController()) { self.rootViewController = rootViewController } - + func start() { let collectionVC = CollectionViewController() collectionVC.bind(to: CollectionReactor(coordinator: self)) @@ -54,7 +54,7 @@ final class CollectionCoordinator: Coordinator { rootViewController.visibleViewController?.dismiss(animated: true) } } - + func setUpParent(to coordinator: Coordinator) { parentCoordinator = coordinator } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/ViewControllers/CollectionProgressViewController.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewControllers/CollectionProgressViewController.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/ViewControllers/CollectionProgressViewController.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewControllers/CollectionProgressViewController.swift index 07233a80..7f5976e6 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/ViewControllers/CollectionProgressViewController.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewControllers/CollectionProgressViewController.swift @@ -9,21 +9,21 @@ import UIKit import RxSwift class CollectionProgressViewController: UIViewController { - + private let disposeBag = DisposeBag() - + private lazy var tableView: UITableView = { let tableView = UITableView(frame: .zero, style: .insetGrouped) tableView.backgroundColor = .clear tableView.registerNib(ItemProgressRow.self) return tableView }() - + override func viewDidLoad() { super.viewDidLoad() setUpViews() } - + private func setUpViews() { view.backgroundColor = .acBackground setUpNavigationItem() @@ -35,23 +35,23 @@ class CollectionProgressViewController: UIViewController { tableView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor) ]) } - + private func setUpNavigationItem() { navigationItem.title = "Collection Progress".localized } - + func bind(to reactor: CollectionProgressReactor) { tableView.rx.modelSelected(Category.self) .map { CollectionProgressReactor.Action.selectedCategory($0) } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + reactor.state.map { $0.items } .bind(to: tableView.rx.items(cellIdentifier: ItemProgressRow.className, cellType: ItemProgressRow.self)) { _, category, cell in cell.setUp(for: category) }.disposed(by: disposeBag) - + tableView.rx.itemSelected .withUnretained(self) .subscribe(onNext: { owner, indexPath in diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/ViewControllers/CollectionViewController.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewControllers/CollectionViewController.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/ViewControllers/CollectionViewController.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewControllers/CollectionViewController.swift index 6f8e6ba3..64349c17 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/ViewControllers/CollectionViewController.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewControllers/CollectionViewController.swift @@ -9,26 +9,26 @@ import UIKit import RxSwift class CollectionViewController: UIViewController { - + private let disposeBag = DisposeBag() - + private lazy var tableView: UITableView = { let tableView = UITableView(frame: .zero, style: .insetGrouped) tableView.backgroundColor = .clear tableView.registerNib(CategoryRow.self) return tableView }() - + private lazy var emptyView: EmptyView = EmptyView( title: "There are no collectibles.".localized, description: "when you check some items, they'll be displayed here.".localized ) - + override func viewDidLoad() { super.viewDidLoad() setUpViews() } - + private func setUpViews() { view.backgroundColor = .acBackground view.addSubviews(tableView, emptyView) @@ -41,25 +41,25 @@ class CollectionViewController: UIViewController { emptyView.centerYAnchor.constraint(equalTo: view.centerYAnchor) ]) } - + private func setUpNavigationItem() { navigationItem.title = "Collection".localized } - + func bind(to reactor: CollectionReactor) { setUpNavigationItem() - + self.rx.viewDidLoad .map { CollectionReactor.Action.fetch } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + tableView.rx.modelSelected((title: Category, count: Int).self) .map { CollectionReactor.Action.selectedCategory(title: $0.title) } .bind(to: reactor.action) .disposed(by: disposeBag) - + reactor.state.map { $0.catagories } .bind(to: tableView.rx.items(cellIdentifier: CategoryRow.className, cellType: CategoryRow.self)) { _, item, cell in cell.setUp( diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/ViewModels/CollectionProgressReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewModels/CollectionProgressReactor.swift similarity index 96% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/ViewModels/CollectionProgressReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewModels/CollectionProgressReactor.swift index 46f742de..feb9e7f7 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/ViewModels/CollectionProgressReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewModels/CollectionProgressReactor.swift @@ -9,34 +9,34 @@ import Foundation import ReactorKit final class CollectionProgressReactor: Reactor { - + enum Action { case selectedCategory(_ category: Category) } - + enum Mutation { case transition(DashboardCoordinator.Route) } - + struct State { let items: [Category] = Category.items() } - + let initialState: State let coordinator: DashboardCoordinator - + init(coordinator: DashboardCoordinator, state: State = State()) { self.coordinator = coordinator self.initialState = state } - + func mutate(action: Action) -> Observable { switch action { case .selectedCategory(let category): return .just(.transition(.item(category: category))) } } - + func reduce(state: State, mutation: Mutation) -> State { switch mutation { case .transition(let route): diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/ViewModels/CollectionReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewModels/CollectionReactor.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/ViewModels/CollectionReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewModels/CollectionReactor.swift index da55093c..e345e8c6 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/ViewModels/CollectionReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/ViewModels/CollectionReactor.swift @@ -9,21 +9,21 @@ import Foundation import ReactorKit final class CollectionReactor: Reactor { - + enum Action { case fetch case selectedCategory(title: Category) } - + enum Mutation { case setCategories(_ categories: [(title: Category, count: Int)]) case transition(CollectionCoordinator.Route) } - + struct State { var catagories: [(title: Category, count: Int)] = [] } - + let initialState: State let coordinator: CollectionCoordinator @@ -31,7 +31,7 @@ final class CollectionReactor: Reactor { self.coordinator = coordinator self.initialState = state } - + func mutate(action: Action) -> Observable { switch action { case .fetch: @@ -45,18 +45,18 @@ final class CollectionReactor: Reactor { return Mutation.setCategories(newCategories) } return categories - + case .selectedCategory(let category): return .just(Mutation.transition(.items(category: category, mode: .user))) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { case .setCategories(let categories): newState.catagories = categories.sorted(by: <) - + case .transition(let route): coordinator.transition(for: route) } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/Views/ItemProgressRow.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/Views/ItemProgressRow.swift similarity index 96% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/Views/ItemProgressRow.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/Views/ItemProgressRow.swift index d4784aa9..379354f1 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/Views/ItemProgressRow.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/Views/ItemProgressRow.swift @@ -8,16 +8,16 @@ import UIKit class ItemProgressRow: UITableViewCell { - + private var progressView: ProgressView = .init(category: .art, barHeight: 40) - + override func awakeFromNib() { super.awakeFromNib() selectedBackgroundView = UIView() selectedBackgroundView?.backgroundColor = .acText.withAlphaComponent(0.3) - + contentView.addSubviews(progressView) - + NSLayoutConstraint.activate([ progressView.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 5), progressView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -5), @@ -25,12 +25,12 @@ class ItemProgressRow: UITableViewCell { progressView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -16) ]) } - + override func prepareForReuse() { super.prepareForReuse() progressView.updateView(category: .art) } - + func setUp(for category: Category) { progressView.updateView(category: category) } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/Views/ItemProgressRow.xib b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/Views/ItemProgressRow.xib similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Collection/Views/ItemProgressRow.xib rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Collection/Views/ItemProgressRow.xib diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Coordinator/DashboardCoordinator.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Coordinator/DashboardCoordinator.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Coordinator/DashboardCoordinator.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Coordinator/DashboardCoordinator.swift index 3d3f6f0c..2fe5402c 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Coordinator/DashboardCoordinator.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Coordinator/DashboardCoordinator.swift @@ -9,7 +9,7 @@ import UIKit import RxSwift final class DashboardCoordinator: Coordinator { - + enum Route { case setting case about @@ -24,18 +24,18 @@ final class DashboardCoordinator: Coordinator { case pop case dismiss } - + let type: CoordinatorType = .dashboard var childCoordinators: [Coordinator] = [] private(set) var rootViewController: UINavigationController! private(set) var parentCoordinator: Coordinator? - + weak var delegate: CustomTaskViewControllerDelegate? - + init(rootViewController: UINavigationController = UINavigationController()) { self.rootViewController = rootViewController } - + func start() { let viewController = DashboardViewController() viewController.bind(to: DashboardReactor(coordinator: self)) @@ -47,7 +47,7 @@ final class DashboardCoordinator: Coordinator { ) rootViewController.addChild(viewController) } - + func transition(for route: Route) { switch route { case .setting: @@ -119,15 +119,15 @@ final class DashboardCoordinator: Coordinator { rootViewController.visibleViewController?.navigationController?.dismiss(animated: true) } } - + func selectedIcon(_ icon: String) { delegate?.selectedIcon(icon) } - + func setUpParent(to coordinator: Coordinator) { parentCoordinator = coordinator } - + func showAlert(title: String, message: String) -> Observable { guard let currentVC = rootViewController.visibleViewController else { return .empty() diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/AboutViewController.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/AboutViewController.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/AboutViewController.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/AboutViewController.swift index 8d894aa6..9d9948de 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/AboutViewController.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/AboutViewController.swift @@ -12,13 +12,13 @@ import ReactorKit class AboutViewController: UIViewController { private let disposeBag = DisposeBag() - + private lazy var tableView: UITableView = { let tableView = UITableView(frame: .zero, style: .insetGrouped) tableView.backgroundColor = .clear return tableView }() - + private lazy var cancelButton: UIBarButtonItem = { return .init( image: UIImage(systemName: "xmark.app.fill"), @@ -27,20 +27,20 @@ class AboutViewController: UIViewController { action: nil ) }() - + override func viewDidLoad() { super.viewDidLoad() setUpViews() } - + private func setUpViews() { view.backgroundColor = .acBackground navigationItem.title = "About".localized navigationItem.largeTitleDisplayMode = .never navigationItem.leftBarButtonItem = cancelButton - + view.addSubviews(tableView) - + NSLayoutConstraint.activate([ tableView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor), @@ -48,7 +48,7 @@ class AboutViewController: UIViewController { tableView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor) ]) } - + func bind(to reactor: AboutReactor) { cancelButton.rx.tap .map { AboutReactor.Action.cancel } @@ -78,7 +78,7 @@ class AboutViewController: UIViewController { } titleForHeaderInSection: { dataSource, sectionIndex in return dataSource[sectionIndex].model } - + reactor.state.map { $0.items } .map { $0.map { SectionModel(model: $0.title, items: $0.items) } } .bind(to: tableView.rx.items(dataSource: dataSource)) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/CustomTaskViewController.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/CustomTaskViewController.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/CustomTaskViewController.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/CustomTaskViewController.swift index 98dd0f9e..3003315f 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/CustomTaskViewController.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/CustomTaskViewController.swift @@ -10,19 +10,19 @@ import RxSwift import RxRelay class CustomTaskViewController: UIViewController { - + enum Mode: String { case add = "New task" case edit = "Edit task" } - + var mode: Mode? private let currentIconName = BehaviorRelay(value: nil) private let currentAmount = BehaviorRelay(value: nil) private let currentTask = BehaviorRelay(value: nil) private let disposeBag = DisposeBag() - + private lazy var customTaskSection = CustomTaskView() private lazy var sectionsScrollView: SectionsScrollView = SectionsScrollView( SectionView( @@ -39,17 +39,17 @@ class CustomTaskViewController: UIViewController { super.viewDidLoad() setUpViews() } - + private func setUpViews() { view.backgroundColor = .acBackground navigationItem.title = mode?.rawValue.localized navigationItem.largeTitleDisplayMode = .never - + navigationItem.rightBarButtonItem = doneButton navigationItem.rightBarButtonItem?.tintColor = .acNavigationBarTint view.addSubviews(sectionsScrollView) - + NSLayoutConstraint.activate([ sectionsScrollView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), sectionsScrollView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor), @@ -57,18 +57,18 @@ class CustomTaskViewController: UIViewController { sectionsScrollView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor) ]) } - + func bind(to reactor: CustomTaskReactor) { doneButton.rx.tap .map { CustomTaskReactor.Action.save } .bind(to: reactor.action) .disposed(by: disposeBag) - + customTaskSection.iconButtonObservable .map { CustomTaskReactor.Action.iconList } .bind(to: reactor.action) .disposed(by: disposeBag) - + currentIconName.compactMap { $0 } .map { CustomTaskReactor.Action.iconName($0) } .bind(to: reactor.action) @@ -84,12 +84,12 @@ class CustomTaskViewController: UIViewController { .bind(to: reactor.action) .disposed(by: owner.disposeBag) }).disposed(by: disposeBag) - + customTaskSection.taskNameObservable .map { CustomTaskReactor.Action.taskName($0) } .bind(to: reactor.action) .disposed(by: disposeBag) - + reactor.state .compactMap { $0.amount } .withUnretained(self) @@ -97,7 +97,7 @@ class CustomTaskViewController: UIViewController { owner.customTaskSection.updateAmount(amount.description) owner.currentAmount.accept(amount.description) }).disposed(by: disposeBag) - + reactor.state.compactMap { $0.task } .filter { [weak self] in self?.currentTask.value != $0 } .withUnretained(self) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/DashboardViewController.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/DashboardViewController.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/DashboardViewController.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/DashboardViewController.swift index fb51292e..183eff3e 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/DashboardViewController.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/DashboardViewController.swift @@ -15,10 +15,10 @@ class DashboardViewController: UIViewController { formatter.setLocalizedDateFormatFromTemplate("EEEE, MMM d") return formatter.string(from: Date()) } - + private let disposeBag = DisposeBag() private lazy var sectionsScrollView = SectionsScrollView() - + private lazy var moreButton: UIBarButtonItem = { return .init( image: UIImage(systemName: "ellipsis.circle"), @@ -27,23 +27,23 @@ class DashboardViewController: UIViewController { action: nil ) }() - + override func viewDidLoad() { super.viewDidLoad() setUpViews() } - + override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) updateDate() } - + private func setUpViews() { view.backgroundColor = .acBackground navigationItem.rightBarButtonItem = moreButton - + view.addSubviews(sectionsScrollView) - + NSLayoutConstraint.activate([ sectionsScrollView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), sectionsScrollView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor), @@ -51,11 +51,11 @@ class DashboardViewController: UIViewController { sectionsScrollView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor) ]) } - + private func updateDate() { navigationItem.title = dateString } - + func setUpViewModels( userInfoVM: UserInfoReactor, tasksVM: TodaysTasksSectionReactor, @@ -84,7 +84,7 @@ class DashboardViewController: UIViewController { ) sectionsScrollView.addSection(userInfoSection, tasksSection, villagersSection, progressSection) } - + func bind(to reactor: DashboardReactor) { moreButton.rx.tap .subscribe(onNext: { [weak self] _ in diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/IconChooserViewController.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/IconChooserViewController.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/IconChooserViewController.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/IconChooserViewController.swift index 8a121cdd..bfe18050 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/IconChooserViewController.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/IconChooserViewController.swift @@ -8,12 +8,12 @@ import UIKit class IconChooserViewController: UIViewController { - + weak var coordinator: DashboardCoordinator? - + private let itemSize = 50 private let iconCount = 199 - + private lazy var collectionView: UICollectionView = { let flowLayout = UICollectionViewFlowLayout() flowLayout.itemSize = CGSize(width: itemSize, height: itemSize) @@ -26,12 +26,12 @@ class IconChooserViewController: UIViewController { collectionView.registerNib(IconCell.self) return collectionView }() - + override func viewDidLoad() { super.viewDidLoad() setUpViews() } - + private func setUpViews() { view.backgroundColor = .acBackground navigationItem.title = "Icon" @@ -42,9 +42,9 @@ class IconChooserViewController: UIViewController { target: self, action: #selector(didTapCancelButton(_:)) ) - + view.addSubviews(collectionView) - + NSLayoutConstraint.activate([ collectionView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), collectionView.bottomAnchor.constraint(equalTo: view.bottomAnchor), @@ -52,18 +52,18 @@ class IconChooserViewController: UIViewController { collectionView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor) ]) } - + @objc private func didTapCancelButton(_ sender: UIBarButtonItem) { dismiss(animated: true) } } extension IconChooserViewController: UICollectionViewDataSource { - + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return iconCount } - + func collectionView( _ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/PreferencesViewController.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/PreferencesViewController.swift similarity index 94% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/PreferencesViewController.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/PreferencesViewController.swift index 2f4ada06..c39c54c6 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/PreferencesViewController.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/PreferencesViewController.swift @@ -10,17 +10,17 @@ import RxSwift import RxRelay class PreferencesViewController: UIViewController { - + private let currentHemisphere = BehaviorRelay(value: nil) private let currentFruit = BehaviorRelay(value: nil) private let currentReputation = BehaviorRelay(value: nil) let disposeBag = DisposeBag() - + private lazy var settingSection = PreferencesView() private lazy var sectionsScrollView: SectionsScrollView = SectionsScrollView( - SectionView(title: "Island".localized, iconName: "leaf.fill", contentView: settingSection) + SectionView(title: "island".localized.localizedCapitalized, iconName: "leaf.fill", contentView: settingSection) ) - + private lazy var cancelButton: UIBarButtonItem = { return .init( image: UIImage(systemName: "xmark.app.fill"), @@ -34,15 +34,15 @@ class PreferencesViewController: UIViewController { super.viewDidLoad() setUpViews() } - + private func setUpViews() { view.backgroundColor = .acBackground navigationItem.title = "Preferences".localized navigationItem.largeTitleDisplayMode = .never navigationItem.leftBarButtonItem = cancelButton - + view.addSubviews(sectionsScrollView) - + NSLayoutConstraint.activate([ sectionsScrollView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), sectionsScrollView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor), @@ -50,23 +50,23 @@ class PreferencesViewController: UIViewController { sectionsScrollView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor) ]) } - + func bind(to reactor: PreferencesReactor, appSettingReactor: AppSettingReactor) { cancelButton.rx.tap .map { PreferencesReactor.Action.cancel } .bind(to: reactor.action) .disposed(by: disposeBag) - + settingSection.islandNameObservable .map { PreferencesReactor.Action.islandName($0) } .bind(to: reactor.action) .disposed(by: disposeBag) - + settingSection.userNameObservable .map { PreferencesReactor.Action.userName($0) } .bind(to: reactor.action) .disposed(by: disposeBag) - + settingSection.hemisphereButtonObservable .withUnretained(self) .subscribe(onNext: { owner, _ in @@ -77,7 +77,7 @@ class PreferencesViewController: UIViewController { .bind(to: reactor.action) .disposed(by: owner.disposeBag) }).disposed(by: disposeBag) - + settingSection.reputationButtonObservable .withUnretained(self) .subscribe(onNext: { owner, _ in @@ -88,18 +88,18 @@ class PreferencesViewController: UIViewController { .bind(to: reactor.action) .disposed(by: owner.disposeBag) }).disposed(by: disposeBag) - + settingSection.startingFruitButtonObservable .withUnretained(self) .subscribe(onNext: { owner, _ in owner.showSelectedItemAlert( - Fruit.allCases.map { $0.rawValue.localized }, + Fruit.allCases.map { $0.rawValue.lowercased().localized }, currentItem: owner.currentFruit.value ).map { PreferencesReactor.Action.fruit(title: $0)} .bind(to: reactor.action) .disposed(by: owner.disposeBag) }).disposed(by: disposeBag) - + reactor.state .compactMap { $0.userInfo } .observe(on: MainScheduler.instance) @@ -110,10 +110,10 @@ class PreferencesViewController: UIViewController { owner.currentFruit.accept(userInfo.islandFruit.rawValue.localized) owner.currentReputation.accept(String(repeating: "⭐️", count: userInfo.islandReputation + 1)) }).disposed(by: disposeBag) - + setUpAppSettings(to: appSettingReactor) } - + private func setUpAppSettings(to reactor: AppSettingReactor) { sectionsScrollView.addSection( SectionView(title: "App Settings".localized, iconName: "square.and.pencil", contentView: AppSettingView(reactor: reactor)) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/TaskEditViewController.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/TaskEditViewController.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/TaskEditViewController.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/TaskEditViewController.swift index 17417d02..d2828858 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewControllers/TaskEditViewController.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewControllers/TaskEditViewController.swift @@ -9,15 +9,15 @@ import UIKit import RxSwift class TaskEditViewController: UIViewController { - + private let disposeBag = DisposeBag() - + private lazy var tableView: UITableView = { let tableView = UITableView(frame: .zero, style: .insetGrouped) tableView.backgroundColor = .clear return tableView }() - + private lazy var cancelButton: UIBarButtonItem = { return .init( image: UIImage(systemName: "xmark.app.fill"), @@ -31,15 +31,15 @@ class TaskEditViewController: UIViewController { super.viewDidLoad() setUpViews() } - + private func setUpViews() { view.backgroundColor = .acBackground navigationItem.title = "Today's Tasks".localized navigationItem.largeTitleDisplayMode = .never navigationItem.leftBarButtonItem = cancelButton - + view.addSubviews(tableView) - + NSLayoutConstraint.activate([ tableView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), tableView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor), @@ -47,29 +47,29 @@ class TaskEditViewController: UIViewController { tableView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor) ]) } - + func bind(to reactor: TasksEditReactor) { self.rx.viewDidLoad .map { TasksEditReactor.Action.fetch } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + tableView.rx.modelSelected(DailyTask.self) .map { TasksEditReactor.Action.selectedTask($0) } .bind(to: reactor.action) .disposed(by: disposeBag) - + cancelButton.rx.tap .map { TasksEditReactor.Action.cancel } .bind(to: reactor.action) .disposed(by: disposeBag) - + tableView.rx.itemDeleted .map { TasksEditReactor.Action.deleted(index: $0) } .bind(to: reactor.action) .disposed(by: disposeBag) - + reactor.state.map { $0.tasks } .bind(to: tableView.rx.items) { _, _, task in let cell = UITableViewCell() @@ -92,7 +92,7 @@ class TaskEditViewController: UIViewController { cell.selectedBackgroundView?.backgroundColor = .acText.withAlphaComponent(0.3) return cell }.disposed(by: disposeBag) - + tableView.rx.itemSelected .withUnretained(self) .subscribe(onNext: { owner, indexPath in diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/AboutReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/AboutReactor.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/AboutReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/AboutReactor.swift index 57467238..f615b2d2 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/AboutReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/AboutReactor.swift @@ -9,15 +9,15 @@ import Foundation import ReactorKit final class AboutReactor: Reactor { - + enum Action { case cancel } - + enum Mutation { case transition(for: DashboardCoordinator.Route) } - + struct State { var items: [(title: String, items: [AboutItem])] = [ ("Version".localized, AboutItem.versions), @@ -25,21 +25,21 @@ final class AboutReactor: Reactor { ("Credit / Thanks".localized, AboutItem.acknowledgement) ] } - + let initialState: State = State() let coordinator: DashboardCoordinator - + init(coordinator: DashboardCoordinator) { self.coordinator = coordinator } - + func mutate(action: Action) -> Observable { switch action { case .cancel: return Observable.just(Mutation.transition(for: .dismiss)) } } - + func reduce(state: State, mutation: Mutation) -> State { switch mutation { case .transition(let route): diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/AppSettingReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/AppSettingReactor.swift similarity index 96% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/AppSettingReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/AppSettingReactor.swift index 43a00aa4..7d2e4b56 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/AppSettingReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/AppSettingReactor.swift @@ -9,38 +9,38 @@ import Foundation import ReactorKit final class AppSettingReactor: Reactor { - + enum Action { case toggleSwitch case reset } - + enum Mutation { case setHapticState(_ isOn: Bool) case reset(_ isReset: Bool) } - + struct State { var currentHapticState: Bool = HapticManager.shared.mode == .on } - + let initialState: State private let storage: UserInfoStorage private let coordinator: DashboardCoordinator - + init(coordinator: DashboardCoordinator, state: State = State(), storage: UserInfoStorage = CoreDataUserInfoStorage()) { self.coordinator = coordinator self.initialState = state self.storage = storage } - + func mutate(action: Action) -> Observable { switch action { case .toggleSwitch: HapticManager.shared.toggle() let isOn = HapticManager.shared.mode == .on return Observable.just(Mutation.setHapticState(isOn)) - + case .reset: return coordinator .showAlert(title: "Notice".localized, message: "Are you sure you want to reset it?".localized) @@ -48,13 +48,13 @@ final class AppSettingReactor: Reactor { .observe(on: MainScheduler.asyncInstance) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { case .setHapticState(let isOn): newState.currentHapticState = isOn - + case .reset(let isReset): if isReset { Items.shared.reset() diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/CollectionProgressSectionReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/CollectionProgressSectionReactor.swift similarity index 96% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/CollectionProgressSectionReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/CollectionProgressSectionReactor.swift index 2df5be87..d9cd3fbf 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/CollectionProgressSectionReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/CollectionProgressSectionReactor.swift @@ -9,40 +9,40 @@ import Foundation import ReactorKit final class CollectionProgressSectionReactor: Reactor { - + enum Action { case fetch case didTapSection } - + enum Mutation { case setLoadingState(_ isLoading: Bool) case progress } - + struct State { var isLoading: Bool = true } - + let initialState: State var coordinator: DashboardCoordinator - + init(coordinator: DashboardCoordinator, state: State = State()) { self.coordinator = coordinator self.initialState = state } - + func mutate(action: Action) -> Observable { switch action { case .fetch: let loadingState = Items.shared.isLoading.map { Mutation.setLoadingState($0) } return loadingState - + case .didTapSection: return Observable.just(Mutation.progress) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/CustomTaskReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/CustomTaskReactor.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/CustomTaskReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/CustomTaskReactor.swift index f2facce5..2072d0fe 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/CustomTaskReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/CustomTaskReactor.swift @@ -9,7 +9,7 @@ import Foundation import ReactorKit final class CustomTaskReactor: Reactor { - + enum Action { case save case iconList @@ -17,7 +17,7 @@ final class CustomTaskReactor: Reactor { case iconName(_ text: String) case amount(_ text: String) } - + enum Mutation { case setName(_ text: String) case setAmount(_ text: String) @@ -25,23 +25,23 @@ final class CustomTaskReactor: Reactor { case save case chooseIcon } - + struct State { var task: DailyTask? var title: String? var icon: String? var amount: Int? } - + let initialState: State private let storage: DailyTaskStorage = CoreDataDailyTaskStorage() private let coordinator: DashboardCoordinator - + init(coordinator: DashboardCoordinator, task: DailyTask?) { self.coordinator = coordinator self.initialState = State(task: task) } - + func mutate(action: Action) -> Observable { switch action { case .save: @@ -56,7 +56,7 @@ final class CustomTaskReactor: Reactor { return Observable.just(Mutation.setAmount(text)) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/DashboardReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/DashboardReactor.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/DashboardReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/DashboardReactor.swift index 9f47c9cc..274090f4 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/DashboardReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/DashboardReactor.swift @@ -9,11 +9,11 @@ import Foundation import ReactorKit final class DashboardReactor: Reactor { - + enum Menu: String { case about = "About" case setting = "Setting" - + static func transform(localized: String) -> String? { switch localized { case Menu.about.rawValue.localized: return Menu.about.rawValue @@ -22,10 +22,10 @@ final class DashboardReactor: Reactor { } } } - + let initialState: State = State() var coordinator: DashboardCoordinator? - + init(coordinator: DashboardCoordinator) { self.coordinator = coordinator } @@ -33,13 +33,13 @@ final class DashboardReactor: Reactor { enum Action { case selected(title: String) } - + enum Mutation { case selected(menu: Menu?) } - + struct State {} - + func mutate(action: Action) -> Observable { switch action { case .selected(let title): @@ -47,7 +47,7 @@ final class DashboardReactor: Reactor { return Observable.just(Mutation.selected(menu: menu)) } } - + func reduce(state: State, mutation: Mutation) -> State { switch mutation { case .selected(let menu): diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/PreferencesReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/PreferencesReactor.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/PreferencesReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/PreferencesReactor.swift index 9be5fd52..abe35928 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/PreferencesReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/PreferencesReactor.swift @@ -9,7 +9,7 @@ import Foundation import ReactorKit final class PreferencesReactor: Reactor { - + enum Action { case islandName(_ text: String?) case userName(_ text: String?) @@ -18,7 +18,7 @@ final class PreferencesReactor: Reactor { case reputation(_ score: String?) case cancel } - + enum Mutation { case transition(for: DashboardCoordinator.Route) case setUserName(_ name: String?) @@ -27,15 +27,15 @@ final class PreferencesReactor: Reactor { case setFruit(_ fruit: Fruit?) case setReputation(_ reputation: Int) } - + struct State { var userInfo: UserInfo? } - + let initialState: State private let coordinator: DashboardCoordinator private let storage: UserInfoStorage - + init(coordinator: DashboardCoordinator, storage: UserInfoStorage = CoreDataUserInfoStorage()) { self.coordinator = coordinator self.storage = storage @@ -60,7 +60,7 @@ final class PreferencesReactor: Reactor { return .just(.transition(for: .dismiss)) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/ProgressReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/ProgressReactor.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/ProgressReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/ProgressReactor.swift index 579a8c9f..3f3ff618 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/ProgressReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/ProgressReactor.swift @@ -9,27 +9,27 @@ import Foundation import ReactorKit final class ProgressReactor: Reactor { - + enum Action { case fetch } - + enum Mutation { case setItemInfo(itemCount: Int, maxCount: Int) } - + struct State { var itemInfo: (itemCount: Int, maxCount: Int) = (0, 0) } - + let initialState: State let category: Category - + init(category: Category) { self.category = category self.initialState = State() } - + func mutate(action: Action) -> Observable { switch action { case .fetch: @@ -42,7 +42,7 @@ final class ProgressReactor: Reactor { return itemsInfo } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/TasksEditReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/TasksEditReactor.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/TasksEditReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/TasksEditReactor.swift index 1b6c10e6..64e84498 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/TasksEditReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/TasksEditReactor.swift @@ -9,29 +9,29 @@ import Foundation import ReactorKit final class TasksEditReactor: Reactor { - + enum Action { case fetch case selectedTask(_ task: DailyTask) case cancel case deleted(index: IndexPath) } - + enum Mutation { case setTasks(_ tasks: [DailyTask]) case transition(DashboardCoordinator.Route) case deleteTask(_ index: Int) } - + struct State { var tasks: [DailyTask] = [] } - + let initialState: State private let storage: DailyTaskStorage private let coordinator: DashboardCoordinator private let disposeBag = DisposeBag() - + init( coordinator: DashboardCoordinator, storage: DailyTaskStorage = CoreDataDailyTaskStorage(), @@ -41,7 +41,7 @@ final class TasksEditReactor: Reactor { self.storage = storage self.initialState = state } - + func mutate(action: Action) -> Observable { switch action { case .fetch: @@ -59,18 +59,18 @@ final class TasksEditReactor: Reactor { return Mutation.setTasks(tasks) } return tasks - + case .selectedTask(let task): return Observable.just(Mutation.transition(.customTask(task: task))) - + case .deleted(let indexPath): return Observable.just(Mutation.deleteTask(indexPath.item)) - + case .cancel: return Observable.just(Mutation.transition(.dismiss)) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/TodaysTasksSectionReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/TodaysTasksSectionReactor.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/TodaysTasksSectionReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/TodaysTasksSectionReactor.swift index c5198b91..55c9b48f 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/TodaysTasksSectionReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/TodaysTasksSectionReactor.swift @@ -9,35 +9,35 @@ import Foundation import ReactorKit final class TodaysTasksSectionReactor: Reactor { - + enum Action { case fetch case selectedItem(indexPath: IndexPath) case reset case edit } - + enum Mutation { case transition(route: DashboardCoordinator.Route) case toggleCompleted(index: Int) case reset case setTasks(_ tasks: [DailyTask]) } - + struct State { var tasks: [(progressIndex: Int, task: DailyTask)] = [] } - + let initialState: State private let coordinator: DashboardCoordinator private let storage: DailyTaskStorage - + init(coordinator: DashboardCoordinator, storage: DailyTaskStorage = CoreDataDailyTaskStorage()) { self.coordinator = coordinator self.storage = storage self.initialState = State() } - + func mutate(action: Action) -> Observable { switch action { case .fetch: @@ -51,7 +51,7 @@ final class TodaysTasksSectionReactor: Reactor { return Observable.just(Mutation.transition(route: .taskEdit)) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { @@ -79,7 +79,7 @@ final class TodaysTasksSectionReactor: Reactor { storage.updateTask(tuple.task) } } - + return newState } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/UserInfoReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/UserInfoReactor.swift similarity index 95% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/UserInfoReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/UserInfoReactor.swift index 430d643c..8e8276fe 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/UserInfoReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/UserInfoReactor.swift @@ -9,29 +9,29 @@ import Foundation import ReactorKit final class UserInfoReactor: Reactor { - + enum Action { case fetch case tap } - + enum Mutation { case transition(route: DashboardCoordinator.Route) case setUserInfo(_ userInfo: UserInfo) } - + struct State { var userInfo: UserInfo? } - + let initialState: State let coordinator: DashboardCoordinator - + init(coordinator: DashboardCoordinator, state: State = State()) { self.coordinator = coordinator self.initialState = state } - + func mutate(action: Action) -> Observable { switch action { case .fetch: @@ -39,18 +39,18 @@ final class UserInfoReactor: Reactor { .compactMap { $0 } .map { Mutation.setUserInfo($0) } return userInfo - + case .tap: return .just(.transition(route: .setting)) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { case .setUserInfo(let userInfo): newState.userInfo = userInfo - + case .transition(let route): coordinator.transition(for: route) } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/VillagersSectionReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/VillagersSectionReactor.swift similarity index 96% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/VillagersSectionReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/VillagersSectionReactor.swift index 277a544c..db7b6ab9 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/ViewModels/VillagersSectionReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/ViewModels/VillagersSectionReactor.swift @@ -9,35 +9,35 @@ import Foundation import ReactorKit final class VillagersSectionReactor: Reactor { - + enum Action { case fetch case villagerLongPress(indexPath: IndexPath) } - + enum Mutation { case transition(route: DashboardCoordinator.Route) case setVillagers(_ villagers: [Villager]) } - + struct State { var villagers: [Villager] = [] } - + let initialState: State = State() private var coordinator: DashboardCoordinator? - + init(coordinator: DashboardCoordinator?) { self.coordinator = coordinator } - + func mutate(action: Action) -> Observable { switch action { case .fetch: let villagers = Items.shared.villagerHouseList .map { Mutation.setVillagers($0)} return villagers - + case .villagerLongPress(let indexPath): guard let villager = currentState.villagers[safe: indexPath.item] else { return Observable.empty() @@ -45,7 +45,7 @@ final class VillagersSectionReactor: Reactor { return Observable.just(Mutation.transition(route: .villagerDetail(villager: villager))) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/AppSettingView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/AppSettingView.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/AppSettingView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/AppSettingView.swift index 753c7e77..dc121490 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/AppSettingView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/AppSettingView.swift @@ -9,10 +9,10 @@ import UIKit import RxSwift class AppSettingView: UIView { - + private let disposeBag = DisposeBag() private let resetTapGesture = UITapGestureRecognizer() - + private lazy var backgroundStackView: UIStackView = { let stackView = UIStackView( axis: .vertical, @@ -22,17 +22,17 @@ class AppSettingView: UIView { ) return stackView }() - + private lazy var hapticSwitch: UISwitch = { let hapticSwitch = UISwitch() hapticSwitch.isOn = HapticManager.shared.mode == .on ? true : false hapticSwitch.setContentHuggingPriority(.required, for: .horizontal) return hapticSwitch }() - + private func configure() { addSubviews(backgroundStackView) - + NSLayoutConstraint.activate([ backgroundStackView.topAnchor.constraint(equalTo: topAnchor), backgroundStackView.leadingAnchor.constraint(equalTo: leadingAnchor), @@ -46,19 +46,19 @@ class AppSettingView: UIView { ) resetView.addGestureRecognizer(resetTapGesture) } - + func bind(to reactor: AppSettingReactor) { hapticSwitch.rx.controlEvent(.valueChanged) .map { AppSettingReactor.Action.toggleSwitch } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + resetTapGesture.rx.event .map { _ in AppSettingReactor.Action.reset } .bind(to: reactor.action) .disposed(by: disposeBag) - + reactor.state.map { $0.currentHapticState } .bind(to: hapticSwitch.rx.isOn) .disposed(by: disposeBag) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/CollectionProgressView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/CollectionProgressView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/CollectionProgressView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/CollectionProgressView.swift index 079c570c..4286a4ad 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/CollectionProgressView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/CollectionProgressView.swift @@ -9,7 +9,7 @@ import UIKit import RxSwift class CollectionProgressView: UIView { - + private let disposeBag = DisposeBag() private lazy var backgroundStackView: UIStackView = { @@ -20,17 +20,17 @@ class CollectionProgressView: UIView { stackView.spacing = 0 return stackView }() - + private lazy var activityIndicator: LoadingView = { let activityIndicator = LoadingView(backgroundColor: .acSecondaryBackground, alpha: 1) return activityIndicator }() - + private lazy var emptyView: EmptyView = EmptyView( title: "Please check the network status.".localized, description: "" ) - + private func configure() { let config = UIImage.SymbolConfiguration(scale: .small) let image = UIImageView(image: UIImage(systemName: "chevron.forward", withConfiguration: config)) @@ -38,7 +38,7 @@ class CollectionProgressView: UIView { emptyView.backgroundColor = .acSecondaryBackground addSubviews(backgroundStackView, image, activityIndicator, emptyView) backgroundStackView.addArrangedSubviews(Category.progress().map { ProgressView(category: $0) }) - + let heightAnchor = backgroundStackView.heightAnchor.constraint(equalTo: heightAnchor) heightAnchor.priority = .defaultHigh NSLayoutConstraint.activate([ @@ -57,25 +57,25 @@ class CollectionProgressView: UIView { emptyView.heightAnchor.constraint(equalTo: self.heightAnchor) ]) } - + private func bind(to reactor: CollectionProgressSectionReactor) { let tap = UITapGestureRecognizer() addGestureRecognizer(tap) - + Observable.just(CollectionProgressSectionReactor.Action.fetch) .bind(to: reactor.action) .disposed(by: disposeBag) - + tap.rx.event .map { _ in CollectionProgressSectionReactor.Action.didTapSection } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + reactor.state.map { $0.isLoading } .bind(to: activityIndicator.rx.isAnimating) .disposed(by: disposeBag) - + Items.shared.itemsCount .map { $0.isEmpty } .withUnretained(self) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/CustomTaskView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/CustomTaskView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/CustomTaskView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/CustomTaskView.swift index 6cebc8ff..7c782a3c 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/CustomTaskView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/CustomTaskView.swift @@ -9,7 +9,7 @@ import UIKit import RxSwift class CustomTaskView: UIView { - + private lazy var backgroundStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .vertical @@ -18,7 +18,7 @@ class CustomTaskView: UIView { stackView.spacing = 10 return stackView }() - + private lazy var taskNameTextField: UITextField = { let textField = UITextField() textField.placeholder = "Name of the task".localized @@ -31,7 +31,7 @@ class CustomTaskView: UIView { textField.delegate = self return textField }() - + private lazy var maxAmountButton: UIButton = { let button = UIButton(type: .system) button.setTitle("1", for: .normal) @@ -46,16 +46,16 @@ class CustomTaskView: UIView { button.setImage(image, for: .normal) return button }() - + required init?(coder: NSCoder) { super.init(coder: coder) } - + override init(frame: CGRect) { super.init(frame: frame) configure() } - + private func configure() { addSubviews(backgroundStackView) NSLayoutConstraint.activate([ @@ -65,13 +65,13 @@ class CustomTaskView: UIView { backgroundStackView.heightAnchor.constraint(equalTo: heightAnchor), taskNameTextField.heightAnchor.constraint(equalToConstant: maxAmountButton.intrinsicContentSize.height) ]) - + [maxAmountButton, iconButton].forEach { $0.titleLabel?.font = .preferredFont(forTextStyle: .footnote) $0.contentHorizontalAlignment = .right $0.setTitleColor(.acText.withAlphaComponent(0.8), for: .normal) } - + backgroundStackView.addArrangedSubviews( InfoContentView(title: "Task Name".localized, contentView: taskNameTextField), InfoContentView(title: "Icon".localized, contentView: iconButton), @@ -80,21 +80,21 @@ class CustomTaskView: UIView { } } extension CustomTaskView { - + var taskNameObservable: Observable { taskNameTextField.rx.controlEvent(.editingChanged).compactMap { [weak self] in self?.taskNameTextField.text }.asObservable() } - + var iconButtonObservable: Observable { iconButton.rx.tap.asObservable() } - + var maxAmountButtonObservable: Observable { maxAmountButton.rx.tap.asObservable() } - + func setUpViews(_ task: DailyTask) { taskNameTextField.text = task.name.localized updateIcon(task.icon) @@ -104,7 +104,7 @@ extension CustomTaskView { func updateAmount(_ amount: String) { maxAmountButton.setTitle(amount, for: .normal) } - + func updateIcon(_ icon: String) { let image = UIImage(named: icon)? .resizedImage(Size: CGSize(width: 30, height: 30))? diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/PreferencesView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/PreferencesView.swift similarity index 96% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/PreferencesView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/PreferencesView.swift index 2c930c51..12e80264 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/PreferencesView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/PreferencesView.swift @@ -18,31 +18,31 @@ class PreferencesView: UIView { stackView.spacing = 10 return stackView }() - + private lazy var islandNameTextField: UITextField = { let textField = UITextField() textField.placeholder = "Your island name".localized return textField }() - + private lazy var userNameTextField: UITextField = { let textField = UITextField() textField.placeholder = "Your user name".localized return textField }() - + private lazy var hemisphereButton: UIButton = { let button = UIButton(type: .system) button.setTitle(Hemisphere.north.rawValue.capitalized, for: .normal) return button }() - + private lazy var reputationButton: UIButton = { let button = UIButton(type: .system) button.setTitle("⭐️", for: .normal) return button }() - + private lazy var startingFruitButton: UIButton = { let button = UIButton(type: .system) let image = UIImage(named: Fruit.apple.imageName)? @@ -51,16 +51,16 @@ class PreferencesView: UIView { button.setImage(image, for: .normal) return button }() - + required init?(coder: NSCoder) { super.init(coder: coder) } - + override init(frame: CGRect) { super.init(frame: frame) configure() } - + private func configure() { addSubviews(backgroundStackView) NSLayoutConstraint.activate([ @@ -71,7 +71,7 @@ class PreferencesView: UIView { islandNameTextField.heightAnchor.constraint(equalToConstant: hemisphereButton.intrinsicContentSize.height), userNameTextField.heightAnchor.constraint(equalToConstant: hemisphereButton.intrinsicContentSize.height) ]) - + [islandNameTextField, userNameTextField].forEach { $0.tintColor = .acText $0.textColor = .acText.withAlphaComponent(0.8) @@ -81,18 +81,18 @@ class PreferencesView: UIView { $0.textAlignment = .right $0.delegate = self } - + [hemisphereButton, startingFruitButton, reputationButton].forEach { $0.titleLabel?.font = .preferredFont(forTextStyle: .footnote) $0.contentHorizontalAlignment = .right $0.setTitleColor(.acText.withAlphaComponent(0.8), for: .normal) } - + backgroundStackView.addArrangedSubviews( InfoContentView(title: "Island name".localized, contentView: islandNameTextField), InfoContentView(title: "Island Reputation".localized, contentView: reputationButton), InfoContentView(title: "User name".localized, contentView: userNameTextField), - InfoContentView(title: "Hemisphere".localized, contentView: hemisphereButton), + InfoContentView(title: "hemisphere".localized.capitalized, contentView: hemisphereButton), InfoContentView(title: "Starting fruit".localized, contentView: startingFruitButton) ) } @@ -105,31 +105,31 @@ extension PreferencesView: UITextFieldDelegate { } extension PreferencesView { - + var islandNameObservable: Observable { return islandNameTextField.rx.controlEvent(.editingChanged).compactMap { [weak self] in self?.islandNameTextField.text }.asObservable() } - + var userNameObservable: Observable { return userNameTextField.rx.controlEvent(.editingChanged).compactMap { [weak self] in self?.userNameTextField.text }.asObservable() } - + var hemisphereButtonObservable: Observable { return hemisphereButton.rx.tap.asObservable() } - + var reputationButtonObservable: Observable { return reputationButton.rx.tap.asObservable() } - + var startingFruitButtonObservable: Observable { return startingFruitButton.rx.tap.asObservable() } - + func setUpViews(_ userInfo: UserInfo) { userNameTextField.text = userInfo.name islandNameTextField.text = userInfo.islandName @@ -137,18 +137,18 @@ extension PreferencesView { updateFruit(userInfo.islandFruit) updateReputation(userInfo.islandReputation + 1) } - + func updateHemisphere(_ hemisphere: Hemisphere) { hemisphereButton.setTitle(hemisphere.rawValue.localized.capitalized, for: .normal) } - + func updateFruit(_ fruit: Fruit) { let image = UIImage(named: fruit.imageName)? .resizedImage(Size: CGSize(width: 30, height: 30))? .withRenderingMode(.alwaysOriginal) startingFruitButton.setImage(image, for: .normal) } - + func updateReputation(_ reputation: Int) { reputationButton.setTitle(String(repeating: "⭐️", count: reputation), for: .normal) } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/TodaysTasksView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/TodaysTasksView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/TodaysTasksView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/TodaysTasksView.swift index b9e1e98f..bbd05f4a 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/TodaysTasksView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/TodaysTasksView.swift @@ -12,7 +12,7 @@ class TodaysTasksView: UIView { private let disposeBag = DisposeBag() private var heightConstraint: NSLayoutConstraint! - + private lazy var collectionView: UICollectionView = { let flowLayout = UICollectionViewFlowLayout() flowLayout.itemSize = CGSize(width: 40, height: 40) @@ -23,7 +23,7 @@ class TodaysTasksView: UIView { collectionView.registerNib(IconCell.self) return collectionView }() - + private lazy var buttonStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .horizontal @@ -32,33 +32,33 @@ class TodaysTasksView: UIView { stackView.spacing = 50 return stackView }() - + private lazy var editButton: UIButton = { let button = UIButton(type: .system) button.setTitle("Edit".localized, for: .normal) return button }() - + private lazy var resetButton: UIButton = { let button = UIButton(type: .system) button.setTitle("Reset".localized, for: .normal) return button }() - + override func layoutSubviews() { super.layoutSubviews() let contentHeight = collectionView.collectionViewLayout.collectionViewContentSize.height + 40 heightConstraint.constant = contentHeight == .zero ? 40 : contentHeight } - + override func layoutIfNeeded() { super.layoutIfNeeded() heightConstraint.constant = collectionView.collectionViewLayout.collectionViewContentSize.height } - + private func configure() { addSubviews(collectionView, buttonStackView) - + heightConstraint = collectionView.heightAnchor.constraint(equalToConstant: 40) heightConstraint.priority = .defaultHigh NSLayoutConstraint.activate([ @@ -81,29 +81,29 @@ class TodaysTasksView: UIView { } buttonStackView.addArrangedSubviews(editButton, resetButton) } - + func bind(to reactor: TodaysTasksSectionReactor) { Observable.just(TodaysTasksSectionReactor.Action.fetch) .bind(to: reactor.action) .disposed(by: disposeBag) - + collectionView.rx.itemSelected .map { TodaysTasksSectionReactor.Action.selectedItem(indexPath: $0) } .subscribe(onNext: { action in reactor.action.onNext(action) }) .disposed(by: disposeBag) - + resetButton.rx.tap .map { TodaysTasksSectionReactor.Action.reset } .bind(to: reactor.action) .disposed(by: disposeBag) - + editButton.rx.tap .map { TodaysTasksSectionReactor.Action.edit } .bind(to: reactor.action) .disposed(by: disposeBag) - + reactor.state.map { $0.tasks } .bind( to: collectionView.rx.items( @@ -122,7 +122,7 @@ class TodaysTasksView: UIView { self?.layoutIfNeeded() } }).disposed(by: disposeBag) - + collectionView.rx.itemSelected .withUnretained(self) .subscribe(onNext: { owner, indexPath in @@ -134,7 +134,7 @@ class TodaysTasksView: UIView { } extension TodaysTasksView { - + convenience init(_ viewModel: TodaysTasksSectionReactor) { self.init(frame: .zero) bind(to: viewModel) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/UserInfoView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/UserInfoView.swift similarity index 93% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/UserInfoView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/UserInfoView.swift index 8cf32c76..2f062682 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/UserInfoView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/UserInfoView.swift @@ -10,9 +10,9 @@ import RxSwift import RxCocoa class UserInfoView: UIView { - + private let disposeBag = DisposeBag() - + private lazy var backgroundStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .vertical @@ -21,55 +21,55 @@ class UserInfoView: UIView { stackView.spacing = 4 return stackView }() - + private lazy var userNameLabel: UILabel = { let label = UILabel() label.text = "Please set a name.".localized return label }() - + private lazy var fruitImageView: UIImageView = { let imageView = UIImageView() imageView.image = UIImage(named: Fruit.apple.imageName) return imageView }() - + private lazy var islandNameLabel: UILabel = { let label = UILabel() label.text = "Please set a Island Name.".localized return label }() - + private lazy var hemisphereLabel: UILabel = { let label = UILabel() label.text = Hemisphere.north.rawValue.localized return label }() - + private lazy var reputationLabel: UILabel = { let label = UILabel() label.text = "⭐️" return label }() - + private func configure() { addSubviews(backgroundStackView) backgroundStackView.addArrangedSubviews( - InfoContentView(title: "ISLAND".localized, contentView: islandNameLabel), + InfoContentView(title: "island".localized.uppercased(), contentView: islandNameLabel), InfoContentView(title: "REPUTATION".localized, contentView: reputationLabel), InfoContentView(title: "USER".localized, contentView: userNameLabel), - InfoContentView(title: "HEMISPHERE".localized, contentView: hemisphereLabel), + InfoContentView(title: "hemisphere".localized.uppercased(), contentView: hemisphereLabel), InfoContentView(title: "FRUIT".localized, contentView: fruitImageView) - + ) - + [islandNameLabel, userNameLabel, hemisphereLabel, reputationLabel].forEach { label in label.textColor = .acSecondaryText label.font = .preferredFont(forTextStyle: .footnote) label.textAlignment = .right label.heightAnchor.constraint(equalTo: fruitImageView.heightAnchor).isActive = true } - + NSLayoutConstraint.activate([ backgroundStackView.topAnchor.constraint(equalTo: topAnchor), backgroundStackView.leadingAnchor.constraint(equalTo: leadingAnchor), @@ -79,21 +79,21 @@ class UserInfoView: UIView { fruitImageView.heightAnchor.constraint(equalTo: fruitImageView.widthAnchor) ]) } - + private func bind(to reactor: UserInfoReactor) { let tap = UITapGestureRecognizer() addGestureRecognizer(tap) - + Observable.just(UserInfoReactor.Action.fetch) .bind(to: reactor.action) .disposed(by: disposeBag) - + tap.rx.event .map { _ in UserInfoReactor.Action.tap } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + reactor.state.map { $0.userInfo } .compactMap { $0 } .withUnretained(self) @@ -102,7 +102,7 @@ class UserInfoView: UIView { owner.updateInfo(userInfo) }).disposed(by: disposeBag) } - + private func updateInfo(_ userInfo: UserInfo) { userNameLabel.text = userInfo.name == "" ? "Please set a name.".localized : userInfo.name islandNameLabel.text = userInfo.islandName == "" ? "Please set a Island Name.".localized : userInfo.islandName diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/VillagersView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/VillagersView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/VillagersView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/VillagersView.swift index f3b4c867..438c06e0 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/VillagersView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/VillagersView.swift @@ -9,16 +9,16 @@ import UIKit import RxSwift class VillagersView: UIView { - + private let disposeBag = DisposeBag() - + private var heightConstraint: NSLayoutConstraint! private let longPressGesture: UILongPressGestureRecognizer = { let gesture = UILongPressGestureRecognizer() gesture.minimumPressDuration = 0.5 return gesture }() - + private lazy var backgroundStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .vertical @@ -27,7 +27,7 @@ class VillagersView: UIView { stackView.spacing = 12 return stackView }() - + private lazy var collectionView: UICollectionView = { let flowLayout = UICollectionViewFlowLayout() flowLayout.itemSize = CGSize(width: 50, height: 50) @@ -39,7 +39,7 @@ class VillagersView: UIView { collectionView.addGestureRecognizer(longPressGesture) return collectionView }() - + private lazy var resetButton: UIButton = { let button = UIButton(type: .system) button.setTitle("Reset".localized, for: .normal) @@ -51,7 +51,7 @@ class VillagersView: UIView { button.heightAnchor.constraint(equalToConstant: 28).isActive = true return button }() - + private lazy var descriptionLabel: UILabel = { let label = UILabel() label.textAlignment = .center @@ -60,7 +60,7 @@ class VillagersView: UIView { label.numberOfLines = 0 return label }() - + private lazy var emptyLabel: UILabel = { let text = "vilagerEmpty".localized let label = UILabel(text: text, font: .preferredFont(forTextStyle: .footnote), color: .acText) @@ -73,12 +73,12 @@ class VillagersView: UIView { label.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true return label }() - + private func updateCollectionViewHeight() { let contentHeight = collectionView.collectionViewLayout.collectionViewContentSize.height heightConstraint.constant = contentHeight == .zero ? 60 : contentHeight } - + private func configure() { addSubviews(backgroundStackView) backgroundStackView.addArrangedSubviews(collectionView, descriptionLabel, resetButton) @@ -95,12 +95,12 @@ class VillagersView: UIView { heightConstraint ]) } - + private func bind(to reactor: VillagersSectionReactor) { Observable.just(VillagersSectionReactor.Action.fetch) .bind(to: reactor.action) .disposed(by: disposeBag) - + longPressGesture.rx.event .map { (longPressGesture: UIGestureRecognizer) -> IndexPath? in guard let collectionView = longPressGesture.view as? UICollectionView else { @@ -118,7 +118,7 @@ class VillagersView: UIView { .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + reactor.state .map { $0.villagers } .bind( @@ -129,7 +129,7 @@ class VillagersView: UIView { ) { _, villager, cell in cell.setImage(url: villager.iconImage) }.disposed(by: disposeBag) - + reactor.state .map { $0.villagers } .withUnretained(self) @@ -154,7 +154,7 @@ class VillagersView: UIView { let cell = owner.collectionView.cellForItem(at: indexPath) as? IconCell cell?.checkMark() }).disposed(by: disposeBag) - + resetButton.rx.tap .withUnretained(self) .subscribe(onNext: { owner, _ in diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/EmptyView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/EmptyView.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/EmptyView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/EmptyView.swift index a8c5d60c..185c8d1a 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/EmptyView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/EmptyView.swift @@ -8,7 +8,7 @@ import UIKit class EmptyView: UIView { - + private lazy var titleLabel: UILabel = { let label = UILabel( text: "", @@ -17,7 +17,7 @@ class EmptyView: UIView { ) return label }() - + private lazy var descriptionLabel: UILabel = { let label = UILabel( text: "", @@ -28,23 +28,23 @@ class EmptyView: UIView { label.textAlignment = .center return label }() - + private lazy var backgroundStackView: UIStackView = { let stackView = UIStackView(axis: .vertical, alignment: .center, distribution: .fill, spacing: 8) stackView.addArrangedSubviews(titleLabel, descriptionLabel) return stackView }() - + convenience init(title: String, description: String) { self.init(frame: .zero) titleLabel.text = title descriptionLabel.text = description configure() } - + private func configure() { addSubviews(backgroundStackView) - + NSLayoutConstraint.activate([ backgroundStackView.topAnchor.constraint(equalTo: topAnchor), backgroundStackView.bottomAnchor.constraint(equalTo: bottomAnchor), @@ -52,7 +52,7 @@ class EmptyView: UIView { backgroundStackView.trailingAnchor.constraint(equalTo: trailingAnchor) ]) } - + func editLabel(title: String, description: String) { titleLabel.text = title descriptionLabel.text = description diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/IconCell.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/IconCell.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/IconCell.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/IconCell.swift index f504e553..02efa0c2 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/IconCell.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/IconCell.swift @@ -8,9 +8,9 @@ import UIKit class IconCell: UICollectionViewCell { - + @IBOutlet weak var imageView: UIImageView! - + override func prepareForReuse() { super.prepareForReuse() imageView.kf.cancelDownloadTask() @@ -24,20 +24,20 @@ class IconCell: UICollectionViewCell { func setImage(url: String) { imageView.setImage(with: url) } - + func setAlpha(_ alpha: CGFloat) { self.imageView.alpha = alpha } - + func toggle() { self.imageView.alpha = imageView.alpha == 1 ? 0.5 : 1 } - + func removeCheckMark() { let checkImage = imageView.subviews.last as? UIImageView checkImage?.removeFromSuperview() } - + func checkMark() { guard imageView.subviews.count <= 1 else { removeCheckMark() @@ -48,7 +48,7 @@ class IconCell: UICollectionViewCell { checkImage.backgroundColor = .white checkImage.layer.cornerRadius = 10 imageView.addSubviews(checkImage) - + NSLayoutConstraint.activate([ checkImage.topAnchor.constraint(equalTo: imageView.topAnchor), checkImage.trailingAnchor.constraint(equalTo: imageView.trailingAnchor), diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/IconCell.xib b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/IconCell.xib similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/IconCell.xib rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/IconCell.xib diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/InfoContentView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/InfoContentView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/InfoContentView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/InfoContentView.swift index 8e89dfe7..b654ae2c 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/InfoContentView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/InfoContentView.swift @@ -8,7 +8,7 @@ import UIKit class InfoContentView: UIStackView { - + private lazy var titleLabel: UILabel = { let label = UILabel() label.font = .preferredFont(for: .callout, weight: .medium) @@ -18,7 +18,7 @@ class InfoContentView: UIStackView { label.heightAnchor.constraint(greaterThanOrEqualToConstant: 30).isActive = true return label }() - + private func configure() { axis = .horizontal alignment = .fill @@ -34,7 +34,7 @@ extension InfoContentView { self.titleLabel.text = title addArrangedSubviews(titleLabel) } - + convenience init(title: String, contentView: UIView...) { self.init(frame: .zero) configure() @@ -42,7 +42,7 @@ extension InfoContentView { addArrangedSubviews(titleLabel) addArrangedSubviews(contentView) } - + convenience init(item: Item, contentView: UIView...) { self.init(frame: .zero) configure() @@ -53,7 +53,7 @@ extension InfoContentView { addArrangedSubviews(icon, titleLabel) addArrangedSubviews(contentView) } - + func changeTitleFont(_ font: UIFont) { titleLabel.font = font } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/LoadingView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/LoadingView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/LoadingView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/LoadingView.swift index d40b53a2..f7fdccbe 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/LoadingView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/LoadingView.swift @@ -8,7 +8,7 @@ import UIKit class LoadingView: UIActivityIndicatorView { - + convenience init(backgroundColor: UIColor, alpha: CGFloat) { self.init(frame: .zero) self.style = UIActivityIndicatorView.Style.large diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/ProgressBar.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/ProgressBar.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/ProgressBar.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/ProgressBar.swift index e3535124..b7aec469 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/ProgressBar.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/ProgressBar.swift @@ -9,21 +9,21 @@ import UIKit class ProgressBar: UIProgressView { private var height: CGFloat = 10 - + override var intrinsicContentSize: CGSize { return CGSize(width: -1.0, height: height) } - + convenience init(height: CGFloat) { self.init(frame: .zero) self.height = height } - + func setHeight(_ height: CGFloat) { self.height = height setUpCornerRadius() } - + private func setUpCornerRadius() { let radius = layer.bounds.height * 1.5 layer.cornerRadius = radius diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/ProgressView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/ProgressView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/ProgressView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/ProgressView.swift index fbe85d38..6edd9ee9 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/ProgressView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/ProgressView.swift @@ -12,18 +12,18 @@ class ProgressView: UIStackView { private var disposeBag = DisposeBag() private var barHeight: CGFloat = 30 - + private lazy var iconImageView: UIImageView = { let imageView = UIImageView() return imageView }() - + private lazy var progressBar: ProgressBar = { let progressBar = ProgressBar() progressBar.setHeight(barHeight/2.8) return progressBar }() - + private lazy var progressLabel: UILabel = { let label = UILabel() label.setContentHuggingPriority(.defaultHigh, for: .horizontal) @@ -32,13 +32,13 @@ class ProgressView: UIStackView { label.textAlignment = .right return label }() - + private func configure() { axis = .horizontal alignment = .center distribution = .fill spacing = 5 - + addArrangedSubviews(iconImageView, progressBar, progressLabel) NSLayoutConstraint.activate([ iconImageView.heightAnchor.constraint(equalToConstant: 30), @@ -46,12 +46,12 @@ class ProgressView: UIStackView { progressLabel.widthAnchor.constraint(greaterThanOrEqualToConstant: 46) ]) } - + private func bind(to reactor: ProgressReactor) { Observable.just(ProgressReactor.Action.fetch) .bind(to: reactor.action) .disposed(by: disposeBag) - + reactor.state.map { $0.itemInfo } .withUnretained(self) .observe(on: MainScheduler.instance) @@ -70,7 +70,7 @@ extension ProgressView { configure() bind(to: ProgressReactor(category: category)) } - + func updateView(category: Category) { self.iconImageView.image = UIImage(named: category.progressIconName) disposeBag = DisposeBag() diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/SectionHeaderView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/SectionHeaderView.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/SectionHeaderView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/SectionHeaderView.swift index 61bc1d9e..f2336ff7 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/SectionHeaderView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/SectionHeaderView.swift @@ -16,7 +16,7 @@ class SectionHeaderView: UIView { stackView.spacing = 5 return stackView }() - + private lazy var iconImageView: UIImageView = { let imageView = UIImageView() imageView.preferredSymbolConfiguration = .init( @@ -27,7 +27,7 @@ class SectionHeaderView: UIView { imageView.tintColor = .acHeaderBackground return imageView }() - + private lazy var titleLabel: UILabel = { let label = UILabel() label.adjustsFontForContentSizeCategory = true @@ -35,28 +35,28 @@ class SectionHeaderView: UIView { label.font = .preferredFont(for: .footnote, weight: .semibold) return label }() - + required init?(coder: NSCoder) { super.init(coder: coder) } - + override init(frame: CGRect) { super.init(frame: frame) configure() } - + private func configure() { addSubviews(backgroundStackView) backgroundStackView.addArrangedSubviews(iconImageView, titleLabel) backgroundColor = .clear layer.cornerRadius = 14 - + NSLayoutConstraint.activate([ backgroundStackView.centerXAnchor.constraint(equalTo: centerXAnchor), backgroundStackView.centerYAnchor.constraint(equalTo: centerYAnchor), backgroundStackView.widthAnchor.constraint(equalTo: widthAnchor, constant: -24) ]) - + NSLayoutConstraint.activate([ iconImageView.widthAnchor.constraint(equalToConstant: 20), iconImageView.heightAnchor.constraint(equalToConstant: 20) @@ -69,7 +69,7 @@ extension SectionHeaderView { titleLabel.text = title.uppercased() iconImageView.image = UIImage(systemName: iconName) } - + func setUp(title: String, category: Category) { titleLabel.text = title.uppercased() iconImageView.image = UIImage(named: category.iconName) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/SectionView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/SectionView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/SectionView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/SectionView.swift index 15d07bb9..136c03f8 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/SectionView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/SectionView.swift @@ -13,14 +13,14 @@ class SectionView: UIView { let headerView = SectionHeaderView() return headerView }() - + private lazy var containerView: UIView = { let view = UIView() view.backgroundColor = .acSecondaryBackground view.layer.cornerRadius = 14 return view }() - + private lazy var contentView: UIView = { let view = UIView() view.backgroundColor = .acSecondaryBackground @@ -35,20 +35,20 @@ extension SectionView { setUpContent(contentView) configure() } - + convenience init(title: String, category: Category, contentView: UIView) { self.init(frame: .zero) headerView.setUp(title: title, category: category) setUpContent(contentView) configure() } - + convenience init(contentView: UIView) { self.init(frame: .zero) setUpContent(contentView) configureContainer() } - + private func configureHeader() { addSubviews(headerView) let height = heightAnchor.constraint(equalToConstant: 80) @@ -60,7 +60,7 @@ extension SectionView { height ]) } - + private func configureContainer() { addSubviews(containerView) var topAnchor = containerView.topAnchor.constraint(equalTo: self.topAnchor) @@ -74,17 +74,17 @@ extension SectionView { trailingAnchor.constraint(equalTo: containerView.trailingAnchor) ]) } - + private func configure() { configureHeader() configureContainer() } - + private func setUpContent(_ view: UIView) { contentView = view - + containerView.addSubviews(contentView) - + NSLayoutConstraint.activate([ contentView.topAnchor.constraint(equalTo: containerView.topAnchor, constant: 8), contentView.bottomAnchor.constraint(equalTo: containerView.bottomAnchor, constant: -8), diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/SectionsScrollView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/SectionsScrollView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/SectionsScrollView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/SectionsScrollView.swift index 7b30e169..a0f7dfe5 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Dashboard/Views/shared/SectionsScrollView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Dashboard/Views/shared/SectionsScrollView.swift @@ -26,31 +26,31 @@ class SectionsScrollView: UIView { stackView.backgroundColor = .clear return stackView }() - + required init?(coder: NSCoder) { super.init(coder: coder) } - + override init(frame: CGRect) { super.init(frame: frame) configure() } - + private func configure() { backgroundColor = .acBackground addSubviews(scrollView) scrollView.addSubviews(contentStackView) - + NSLayoutConstraint.activate([ scrollView.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor), scrollView.bottomAnchor.constraint(equalTo: bottomAnchor), scrollView.leadingAnchor.constraint(equalTo: safeAreaLayoutGuide.leadingAnchor), scrollView.trailingAnchor.constraint(equalTo: safeAreaLayoutGuide.trailingAnchor) ]) - + let heightAnchor = scrollView.heightAnchor.constraint(greaterThanOrEqualTo: contentStackView.heightAnchor) heightAnchor.priority = .defaultLow - + NSLayoutConstraint.activate([ contentStackView.topAnchor.constraint(equalTo: scrollView.topAnchor), contentStackView.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor, constant: 20), @@ -67,7 +67,7 @@ extension SectionsScrollView { self.init(frame: .zero) contentStackView.addArrangedSubviews(sections) } - + func addSection(_ sections: SectionView...) { contentStackView.addArrangedSubviews(sections) } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/PlayerMode.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/PlayerMode.swift similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/PlayerMode.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/PlayerMode.swift diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/ViewControllers/PlayerViewController.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/ViewControllers/PlayerViewController.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/ViewControllers/PlayerViewController.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/ViewControllers/PlayerViewController.swift index 81a34c02..2324b0df 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/ViewControllers/PlayerViewController.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/ViewControllers/PlayerViewController.swift @@ -10,20 +10,20 @@ import RxSwift import RxCocoa class PlayerViewController: UIViewController { - + private let disposeBag = DisposeBag() - + private lazy var visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .systemChromeMaterial)) private lazy var maximizeView = MaximizePlayerView() private lazy var minimizeView = MinimizePlayerView() - + private lazy var tableView: UITableView = { let tableView = UITableView(frame: .zero, style: .plain) tableView.backgroundColor = .clear tableView.registerNib(SongRow.self) return tableView }() - + private let minimizeViewTap = UITapGestureRecognizer() private let dragGesture = UIPanGestureRecognizer() @@ -31,11 +31,11 @@ class PlayerViewController: UIViewController { super.loadView() view = visualEffectView } - + override func viewDidLoad() { super.viewDidLoad() } - + func configure(tabBarHeight: CGFloat) { maximizeView.isHidden = true tableView.isHidden = true @@ -54,29 +54,29 @@ class PlayerViewController: UIViewController { maximizeView.trailingAnchor.constraint(equalTo: visualEffectView.trailingAnchor), maximizeView.bottomAnchor.constraint(greaterThanOrEqualTo: visualEffectView.bottomAnchor, constant: -30 + -tabBarHeight) ]) - + minimizeView.addGestureRecognizer(minimizeViewTap) visualEffectView.addGestureRecognizer(dragGesture) } - + func bind(to reactor: PlayerReactor) { Observable.just(PlayerReactor.Action.fetch) .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + minimizeViewTap.rx.event.map { _ in } .map { PlayerReactor.Action.didTapMiniPlayer } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + maximizeView.foldingButton.rx.tap .map { PlayerReactor.Action.folding } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + dragGesture.rx.event .withUnretained(self) .map { owner, gestureRecognizer -> Bool? in @@ -93,13 +93,13 @@ class PlayerViewController: UIViewController { .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + minimizeView.cancelButton.rx.tap .map { PlayerReactor.Action.cancel } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + Observable.merge( minimizeView.playButton.rx.tap.asObservable(), maximizeView.playButton.rx.tap.asObservable() @@ -107,7 +107,7 @@ class PlayerViewController: UIViewController { .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + Observable.merge( minimizeView.nextButton.rx.tap.asObservable(), maximizeView.nextButton.rx.tap.asObservable() @@ -115,31 +115,31 @@ class PlayerViewController: UIViewController { .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + maximizeView.previousButton.rx.tap .map { PlayerReactor.Action.prev } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + maximizeView.listButton.rx.tap .map { PlayerReactor.Action.playerList } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + tableView.rx.modelSelected(Item.self) .map { PlayerReactor.Action.selectedSong($0) } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + maximizeView.shuffleButton.rx.tap .map { PlayerReactor.Action.shuffle } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + maximizeView.repeatButton.rx.tap .map { PlayerReactor.Action.fullRepeat } .subscribe(onNext: { action in @@ -182,12 +182,12 @@ class PlayerViewController: UIViewController { } } }).disposed(by: disposeBag) - + reactor.state.map { $0.songs } .bind(to: tableView.rx.items(cellIdentifier: SongRow.className, cellType: SongRow.self)) { _, item, cell in cell.setUp(to: item) }.disposed(by: disposeBag) - + reactor.state.map { $0.songs } .filter { $0.isEmpty == false } .withUnretained(self) @@ -200,6 +200,6 @@ class PlayerViewController: UIViewController { owner.tableView.selectRow(at: indexPath, animated: true, scrollPosition: .top) }).disposed(by: owner.disposeBag) }).disposed(by: disposeBag) - + } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/ViewModels/PlayerReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/ViewModels/PlayerReactor.swift similarity index 92% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/ViewModels/PlayerReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/ViewModels/PlayerReactor.swift index d494edd9..eb5de36d 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/ViewModels/PlayerReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/ViewModels/PlayerReactor.swift @@ -9,7 +9,7 @@ import Foundation import ReactorKit final class PlayerReactor: Reactor { - + enum Action { case fetch case didTapMiniPlayer @@ -24,95 +24,95 @@ final class PlayerReactor: Reactor { case shuffle case fullRepeat } - + enum Mutation { case setSongs(_ items: [Item]) case transform(_ mode: PlayerMode) case remove } - + struct State { var playerMode: PlayerMode = .small var songs: [Item] = [] } - + let initialState: State private let coordinator: AppCoordinator - + init(coordinator: AppCoordinator, state: State = State()) { self.coordinator = coordinator self.initialState = state } - + func mutate(action: Action) -> Observable { switch action { case .fetch: let songs = MusicPlayerManager.shared.songList.map { Mutation.setSongs($0) } return songs - + case .didTapMiniPlayer: return .just(.transform(.large)) - + case .folding: return .just(.transform(.small)) - + case .dragGesture( let isSwipeUp): guard let isSwipeUp = isSwipeUp else { return .empty() } return .just(.transform(isSwipeUp ? .large : .small)) - + case .cancel: return .just(.remove) - + case .play: MusicPlayerManager.shared.togglePlaying() return .empty() - + case .next: MusicPlayerManager.shared.next() return .empty() - + case .prev: MusicPlayerManager.shared.prev() return .empty() - + case .playerList: return .just(.transform(.list)) - + case .selectedSong(let item): MusicPlayerManager.shared.choice(item) return .empty() - + case .shuffle: MusicPlayerManager.shared.updatePlayerMode(to: .shuffle) return .empty() - + case .fullRepeat: MusicPlayerManager.shared.updatePlayerMode(to: .fullRepeat) return .empty() } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { case .setSongs(let items): newState.songs = items - + case .transform(let mode): switch mode { case .small: coordinator.minimize() - + case .large: coordinator.maximize() - + case .list: break } newState.playerMode = mode - + case .remove: coordinator.removePlayerViewController() } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/Views/MaximizePlayerView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/Views/MaximizePlayerView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/Views/MaximizePlayerView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/Views/MaximizePlayerView.swift index d2c1d925..05346e95 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/Views/MaximizePlayerView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/Views/MaximizePlayerView.swift @@ -9,9 +9,9 @@ import UIKit import RxSwift class MaximizePlayerView: UIView { - + private let disposeBag = DisposeBag() - + private lazy var backgroundStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .vertical @@ -20,7 +20,7 @@ class MaximizePlayerView: UIView { stackView.spacing = 10 return stackView }() - + private lazy var songInfoStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .vertical @@ -29,7 +29,7 @@ class MaximizePlayerView: UIView { stackView.addArrangedSubviews(titleLabel, artistLabel) return stackView }() - + private lazy var playTimeStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .vertical @@ -39,7 +39,7 @@ class MaximizePlayerView: UIView { stackView.addArrangedSubviews(durationBar, songProgressStackView) return stackView }() - + private lazy var songProgressStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .horizontal @@ -48,7 +48,7 @@ class MaximizePlayerView: UIView { stackView.addArrangedSubviews(timeElaspedLabel, durationLabel) return stackView }() - + private lazy var buttonStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .horizontal @@ -58,14 +58,14 @@ class MaximizePlayerView: UIView { stackView.addArrangedSubviews(shuffleButton, previousButton, playButton, nextButton, repeatButton) return stackView }() - + private lazy var coverImageView: UIImageView = { let imageView = UIImageView() imageView.widthAnchor.constraint(equalToConstant: 200).isActive = true imageView.heightAnchor.constraint(equalTo: imageView.widthAnchor).isActive = true return imageView }() - + private lazy var titleLabel: UILabel = { let label = UILabel( text: "", @@ -74,7 +74,7 @@ class MaximizePlayerView: UIView { ) return label }() - + private lazy var artistLabel: UILabel = { let label = UILabel( text: "K.K Slider", @@ -83,26 +83,26 @@ class MaximizePlayerView: UIView { ) return label }() - + private lazy var durationBar: ProgressBar = { let progressBar = ProgressBar(height: 6) progressBar.tintColor = .acHeaderBackground return progressBar }() - + private lazy var timeElaspedLabel: UILabel = { let label = UILabel(text: "0:00", font: .preferredFont(forTextStyle: .footnote), color: .acText) label.textAlignment = .left label.setContentHuggingPriority(.defaultHigh, for: .horizontal) return label }() - + private lazy var durationLabel: UILabel = { let label = UILabel(text: "0:58", font: .preferredFont(forTextStyle: .footnote), color: .acText) label.textAlignment = .right return label }() - + lazy var previousButton: UIButton = { let button = UIButton() let config = UIImage.SymbolConfiguration(font: UIFont.preferredFont(for: .title2, weight: .bold)) @@ -110,7 +110,7 @@ class MaximizePlayerView: UIView { button.tintColor = .acText return button }() - + lazy var playButton: UIButton = { let button = UIButton() let config = UIImage.SymbolConfiguration(font: UIFont.preferredFont(for: .largeTitle, weight: .bold)) @@ -118,7 +118,7 @@ class MaximizePlayerView: UIView { button.tintColor = .acText return button }() - + lazy var nextButton: UIButton = { let button = UIButton() let config = UIImage.SymbolConfiguration(font: UIFont.preferredFont(for: .title2, weight: .bold)) @@ -126,7 +126,7 @@ class MaximizePlayerView: UIView { button.tintColor = .acText return button }() - + lazy var shuffleButton: UIButton = { let button = UIButton() let config = UIImage.SymbolConfiguration(font: UIFont.preferredFont(for: .title3, weight: .semibold)) @@ -134,7 +134,7 @@ class MaximizePlayerView: UIView { button.tintColor = .acText return button }() - + lazy var repeatButton: UIButton = { let button = UIButton() let config = UIImage.SymbolConfiguration(font: UIFont.preferredFont(for: .title3, weight: .bold)) @@ -142,7 +142,7 @@ class MaximizePlayerView: UIView { button.tintColor = .acText return button }() - + lazy var listButton: UIButton = { let button = UIButton() let config = UIImage.SymbolConfiguration(font: UIFont.preferredFont(for: .largeTitle, weight: .bold)) @@ -150,7 +150,7 @@ class MaximizePlayerView: UIView { button.tintColor = .acText return button }() - + lazy var foldingButton: UIButton = { let button = UIButton() let config = UIImage.SymbolConfiguration(font: UIFont.preferredFont(for: .largeTitle, weight: .semibold)) @@ -158,14 +158,14 @@ class MaximizePlayerView: UIView { button.tintColor = .acText return button }() - + convenience init() { self.init(frame: .zero) backgroundColor = .clear configure() bind() } - + private func configure() { addSubviews(backgroundStackView) backgroundStackView.addArrangedSubviews( @@ -181,7 +181,7 @@ class MaximizePlayerView: UIView { buttonStackView.heightAnchor.constraint(equalToConstant: 37) ]) } - + private func bind() { MusicPlayerManager.shared.isNowPlaying .compactMap { $0 } @@ -193,7 +193,7 @@ class MaximizePlayerView: UIView { for: .normal ) }).disposed(by: disposeBag) - + MusicPlayerManager.shared.currentMusic .compactMap { $0 } .withUnretained(self) @@ -202,26 +202,26 @@ class MaximizePlayerView: UIView { owner.titleLabel.text = song.translations.localizedName() owner.coverImageView.setImage(with: song.image ?? "") }).disposed(by: disposeBag) - + MusicPlayerManager.shared.songProgress .withUnretained(self) .subscribe(onNext: { owner, value in owner.durationBar.setProgress(value, animated: false) }).disposed(by: disposeBag) - + MusicPlayerManager.shared.currentTime .withUnretained(self) .subscribe(onNext: { owner, value in owner.timeElaspedLabel.text = value }).disposed(by: disposeBag) - + MusicPlayerManager.shared.fullTime .filter { self.durationLabel.text != $0 } .withUnretained(self) .subscribe(onNext: { owner, value in owner.durationLabel.text = value }).disposed(by: disposeBag) - + MusicPlayerManager.shared.currentPlayerMode .withUnretained(self) .subscribe(onNext: { owner, playerMode in diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/Views/MinimizePlayerView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/Views/MinimizePlayerView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/Views/MinimizePlayerView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/Views/MinimizePlayerView.swift index 57cba186..b15f83fc 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/Views/MinimizePlayerView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/Views/MinimizePlayerView.swift @@ -9,9 +9,9 @@ import UIKit import RxSwift class MinimizePlayerView: UIView { - + private let disposeBag = DisposeBag() - + private lazy var backgroundStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .horizontal @@ -20,26 +20,26 @@ class MinimizePlayerView: UIView { stackView.spacing = 15 return stackView }() - + private lazy var coverImageView: UIImageView = { let imageView = UIImageView() imageView.widthAnchor.constraint(equalToConstant: 45).isActive = true imageView.heightAnchor.constraint(equalTo: imageView.widthAnchor).isActive = true return imageView }() - + private lazy var titleLabel: UILabel = { let label = UILabel(text: "", font: .preferredFont(forTextStyle: .headline), color: .acText) label.setContentHuggingPriority(.defaultLow, for: .horizontal) return label }() - + private lazy var durationBar: ProgressBar = { let progressBar = ProgressBar(height: 3) progressBar.tintColor = .acHeaderBackground return progressBar }() - + lazy var cancelButton: UIButton = { let button = UIButton() let config = UIImage.SymbolConfiguration(font: UIFont.preferredFont(forTextStyle: .body)) @@ -57,7 +57,7 @@ class MinimizePlayerView: UIView { button.setContentHuggingPriority(.init(253), for: .horizontal) return button }() - + lazy var nextButton: UIButton = { let button = UIButton() let config = UIImage.SymbolConfiguration(scale: .large) @@ -66,20 +66,20 @@ class MinimizePlayerView: UIView { button.setContentHuggingPriority(.init(252), for: .horizontal) return button }() - + convenience init() { self.init(frame: .zero) backgroundColor = .clear configure() bind() } - + private func configure() { addSubviews(backgroundStackView, durationBar) backgroundStackView.addArrangedSubviews(coverImageView, titleLabel, playButton, nextButton, cancelButton) - + let width = UIScreen.main.bounds.width - + NSLayoutConstraint.activate([ backgroundStackView.topAnchor.constraint(equalTo: topAnchor), backgroundStackView.bottomAnchor.constraint(equalTo: bottomAnchor), @@ -91,7 +91,7 @@ class MinimizePlayerView: UIView { durationBar.leadingAnchor.constraint(equalTo: leadingAnchor, constant: -20) ]) } - + private func bind() { MusicPlayerManager.shared.isNowPlaying .compactMap { $0 } @@ -103,7 +103,7 @@ class MinimizePlayerView: UIView { for: .normal ) }).disposed(by: disposeBag) - + MusicPlayerManager.shared.currentMusic .compactMap { $0 } .withUnretained(self) @@ -112,7 +112,7 @@ class MinimizePlayerView: UIView { owner.titleLabel.text = song.translations.localizedName() owner.coverImageView.setImage(with: song.image ?? "") }).disposed(by: disposeBag) - + MusicPlayerManager.shared.songProgress .withUnretained(self) .subscribe(onNext: { owner, value in diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/Views/SongRow.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/Views/SongRow.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/Views/SongRow.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/Views/SongRow.swift index 521b9740..54d38b8b 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/Views/SongRow.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/Views/SongRow.swift @@ -8,7 +8,7 @@ import UIKit class SongRow: UITableViewCell { - + @IBOutlet private weak var coverImageView: UIImageView! @IBOutlet private weak var titleLabel: UILabel! @IBOutlet private weak var artistLabel: UILabel! @@ -19,7 +19,7 @@ class SongRow: UITableViewCell { selectedBackgroundView = UIView() selectedBackgroundView?.backgroundColor = .acText.withAlphaComponent(0.2) } - + override func prepareForReuse() { coverImageView.kf.cancelDownloadTask() coverImageView.image = nil @@ -32,5 +32,5 @@ class SongRow: UITableViewCell { titleLabel.text = item.translations.localizedName() artistLabel.text = "K.K. Slider" } - + } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/Views/SongRow.xib b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/Views/SongRow.xib similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/MusicPlayer/Views/SongRow.xib rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/MusicPlayer/Views/SongRow.xib diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/Coordinator/VillagersCoordinator.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/Coordinator/VillagersCoordinator.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/Coordinator/VillagersCoordinator.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/Coordinator/VillagersCoordinator.swift index 0e137698..25deb304 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/Coordinator/VillagersCoordinator.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/Coordinator/VillagersCoordinator.swift @@ -9,25 +9,25 @@ import Foundation import UIKit final class VillagersCoordinator: Coordinator { - + enum Route { case detail(villager: Villager) } - + var type: CoordinatorType = .villagers var rootViewController: UINavigationController var childCoordinators: [Coordinator] = [] - + init(rootViewController: UINavigationController = UINavigationController()) { self.rootViewController = rootViewController } - + func start() { let villagersVC = VillagersViewController() villagersVC.bind(to: VillagersReactor(coordinator: self)) rootViewController.addChild(villagersVC) } - + func transition(for route: Route) { switch route { case .detail(let villager): diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/ViewControllers/VillagerDetailViewController.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/ViewControllers/VillagerDetailViewController.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/ViewControllers/VillagerDetailViewController.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/ViewControllers/VillagerDetailViewController.swift index d4ed2ef9..ce2e3e83 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/ViewControllers/VillagerDetailViewController.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/ViewControllers/VillagerDetailViewController.swift @@ -9,28 +9,28 @@ import UIKit import RxSwift class VillagerDetailViewController: UIViewController { - + private let disposeBag = DisposeBag() - + private lazy var sectionsScrollView: SectionsScrollView = SectionsScrollView() - + private lazy var likeButton: UIButton = { let button = UIButton() button.tintColor = .red return button }() - + private lazy var houseButton: UIButton = { let button = UIButton() button.tintColor = .acNavigationBarTint return button }() - + override func viewDidLoad() { super.viewDidLoad() setUpViews() } - + private func setUpViews() { if navigationController?.viewControllers.count == 1 { navigationItem.leftBarButtonItem = UIBarButtonItem( @@ -48,7 +48,7 @@ class VillagerDetailViewController: UIViewController { setUpNavigationItem() view.backgroundColor = .acBackground view.addSubviews(sectionsScrollView) - + NSLayoutConstraint.activate([ sectionsScrollView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), sectionsScrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor), @@ -56,13 +56,13 @@ class VillagerDetailViewController: UIViewController { sectionsScrollView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor) ]) } - + private func setUpNavigationItem() { let likeBarButton = UIBarButtonItem(customView: likeButton) let houseBarButton = UIBarButtonItem(customView: houseButton) navigationItem.rightBarButtonItems = [houseBarButton, likeBarButton] } - + func bind(to reactor: VillagerDetailReactor) { let buttonConfigure = UIImage.SymbolConfiguration(textStyle: .callout, scale: .large) self.rx.viewDidLoad @@ -70,19 +70,19 @@ class VillagerDetailViewController: UIViewController { .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + likeButton.rx.tap .map { VillagerDetailReactor.Action.like } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + houseButton.rx.tap .map { VillagerDetailReactor.Action.home } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + reactor.state.map { $0.isLiked } .compactMap { $0 } .observe(on: MainScheduler.instance) @@ -93,7 +93,7 @@ class VillagerDetailViewController: UIViewController { for: .normal ) }).disposed(by: disposeBag) - + reactor.state.map { $0.isResident } .compactMap { $0 } .observe(on: MainScheduler.instance) @@ -104,7 +104,7 @@ class VillagerDetailViewController: UIViewController { for: .normal ) }).disposed(by: disposeBag) - + reactor.state.map { $0.villager } .take(1) .observe(on: MainScheduler.instance) @@ -114,7 +114,7 @@ class VillagerDetailViewController: UIViewController { owner.sectionsScrollView.addSection(SectionView(contentView: detailSection)) owner.navigationItem.title = villager.translations.localizedName() }).disposed(by: disposeBag) - + reactor.state.compactMap { $0.villager.houseImage } .take(1) .observe(on: MainScheduler.asyncInstance) @@ -123,7 +123,7 @@ class VillagerDetailViewController: UIViewController { owner.addHouseSection(houseImage) }).disposed(by: disposeBag) } - + private func addHouseSection(_ houseImage: String) { let houseSection = VillagerHouseView(houseImage) let sectionView = SectionView( diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/ViewControllers/VillagersViewController.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/ViewControllers/VillagersViewController.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/ViewControllers/VillagersViewController.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/ViewControllers/VillagersViewController.swift index bd66d7ea..4bbbe5ce 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/ViewControllers/VillagersViewController.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/ViewControllers/VillagersViewController.swift @@ -16,7 +16,7 @@ class VillagersViewController: UIViewController { case gender = "Gender" case type = "Type" case species = "Species" - + static func transform(_ localizedString: String) -> String? { switch localizedString { case Menu.all.rawValue.localized: return Menu.all.rawValue @@ -28,12 +28,12 @@ class VillagersViewController: UIViewController { } } } - + enum SearchScope: String, CaseIterable { case all = "All" case liked = "Liked" case residents = "Residents" - + static func transform(_ localizedString: String) -> String? { switch localizedString { case SearchScope.all.rawValue.localized: return SearchScope.all.rawValue @@ -47,7 +47,7 @@ class VillagersViewController: UIViewController { private let disposeBag = DisposeBag() private var currentSelected: [Menu: String] = [.all: Menu.all.rawValue] private var selectedKeyword = BehaviorRelay<[Menu: String]>(value: [.all: Menu.all.rawValue]) - + private lazy var collectionView: UICollectionView = { let flowLayout = UICollectionViewFlowLayout() flowLayout.itemSize = CGSize(width: 105, height: 140) @@ -59,7 +59,7 @@ class VillagersViewController: UIViewController { collectionView.registerNib(VillagersCell.self) return collectionView }() - + private lazy var searchController: UISearchController = { let searchController = UISearchController(searchResultsController: nil) searchController.searchBar.showsScopeBar = true @@ -67,7 +67,7 @@ class VillagersViewController: UIViewController { searchController.searchBar.scopeButtonTitles = SearchScope.allCases.map { $0.rawValue.localized } return searchController }() - + private lazy var activityIndicator: LoadingView = { let activityIndicator = LoadingView(backgroundColor: .acBackground, alpha: 1) view.addSubviews(activityIndicator) @@ -75,40 +75,40 @@ class VillagersViewController: UIViewController { activityIndicator.heightAnchor.constraint(equalTo: view.heightAnchor).isActive = true return activityIndicator }() - + private lazy var emptyView: EmptyView = EmptyView( title: "There are no villagers.".localized, description: "They appear here when you press the villager's heart button or home button.".localized ) - + override func viewDidLoad() { super.viewDidLoad() setUpViews() } - + override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() navigationController?.navigationBar.sizeToFit() } - + func bind(to reactor: VillagersReactor) { self.rx.viewDidLoad .map { VillagersReactor.Action.fetch } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + searchController.searchBar.rx.cancelButtonClicked .map { VillagersReactor.Action.searchText("") } .bind(to: reactor.action) .disposed(by: disposeBag) - + searchController.searchBar.rx.text .compactMap { $0 } .map { VillagersReactor.Action.searchText($0) } .bind(to: reactor.action) .disposed(by: disposeBag) - + searchController.searchBar.rx.text .map { $0 != "" } .withUnretained(self) @@ -120,37 +120,37 @@ class VillagersViewController: UIViewController { ) } }).disposed(by: disposeBag) - + searchController.searchBar.rx.selectedScopeButtonIndex .compactMap { [weak self] in self?.searchController.searchBar.scopeButtonTitles?[$0] } .map { VillagersReactor.Action.selectedScope($0) } .bind(to: reactor.action) .disposed(by: disposeBag) - + selectedKeyword .map { VillagersReactor.Action.selectedMenu(keywords: $0) } .bind(to: reactor.action) .disposed(by: disposeBag) - + collectionView.rx.itemSelected .map { VillagersReactor.Action.selectedVillager(indexPath: $0) } .bind(to: reactor.action) .disposed(by: disposeBag) - + reactor.state.map { $0.villagers } .bind(to: collectionView.rx.items(cellIdentifier: VillagersCell.className, cellType: VillagersCell.self)) { _, villager, cell in cell.setUp(villager) }.disposed(by: disposeBag) - + reactor.state.map { $0.villagers } .map { !$0.isEmpty } .bind(to: emptyView.rx.isHidden) .disposed(by: disposeBag) - + reactor.state.map { $0.isLoading } .bind(to: self.activityIndicator.rx.isAnimating) .disposed(by: disposeBag) - + searchController.searchBar.rx.selectedScopeButtonIndex .observe(on: MainScheduler.asyncInstance) .compactMap { SearchScope.allCases[safe: $0] } @@ -176,7 +176,7 @@ class VillagersViewController: UIViewController { owner.searchController.searchBar.endEditing(true) owner.selectedKeyword.accept(owner.currentSelected) }).disposed(by: disposeBag) - + selectedKeyword .map { !$0.keys.contains(.all) } .withUnretained(self) @@ -187,7 +187,7 @@ class VillagersViewController: UIViewController { ) }).disposed(by: disposeBag) } - + private func setUpViews() { view.backgroundColor = .acBackground setUpNavigationItem() @@ -203,7 +203,7 @@ class VillagersViewController: UIViewController { emptyView.widthAnchor.constraint(equalTo: view.safeAreaLayoutGuide.widthAnchor, constant: -40) ]) } - + private func setUpNavigationItem() { navigationItem.title = "Villagers".localized let moreButton = UIBarButtonItem( @@ -221,7 +221,7 @@ class VillagersViewController: UIViewController { navigationItem.searchController = searchController navigationItem.hidesSearchBarWhenScrolling = false } - + private func createFilterMenu() -> UIMenu { let menuItems: [(title: String, subTitle: [String])] = [ (Menu.personality.rawValue.localized, Personality.allCases.map { $0.rawValue.localized }), @@ -229,7 +229,7 @@ class VillagersViewController: UIViewController { (Menu.type.rawValue.localized, Subtype.allCases.map { $0.rawValue.localized }), (Menu.species.rawValue.localized, Specie.allCases.map { $0.rawValue.localized }) ] - + let actionHandler: (UIAction) -> Void = { [weak self] action in for menuItem in menuItems where menuItem.subTitle.contains(action.title) { let menu = Menu(rawValue: Menu.transform(menuItem.title) ?? "") ?? .all @@ -250,7 +250,7 @@ class VillagersViewController: UIViewController { } } } - + let all = UIAction(title: Menu.all.rawValue.localized, handler: { [weak self] _ in self?.currentSelected = [Menu.all: Menu.all.rawValue] self?.navigationItem.rightBarButtonItem?.menu = self?.createFilterMenu() @@ -260,7 +260,7 @@ class VillagersViewController: UIViewController { all.attributes = .disabled } selectedKeyword.accept(currentSelected) - + return UIMenu(title: "", options: .displayInline, children: [all] + items) } } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/ViewModels/VillagerDetailReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/ViewModels/VillagerDetailReactor.swift similarity index 96% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/ViewModels/VillagerDetailReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/ViewModels/VillagerDetailReactor.swift index 0e8b182f..2f620dac 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/ViewModels/VillagerDetailReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/ViewModels/VillagerDetailReactor.swift @@ -9,31 +9,31 @@ import Foundation import ReactorKit final class VillagerDetailReactor: Reactor { - + enum Action { case fetch case like case home } - + enum Mutation { case updateLike case updateHouse case setLike(_ isLiked: Bool) case setHouse(_ isResident: Bool) } - + struct State { let villager: Villager var isLiked: Bool? var isResident: Bool? } - + let initialState: State private let likeStorage: VillagersLikeStorage private let houseStorage: VillagersHouseStorage private let villager: Villager - + init( villager: Villager, state: State, @@ -45,7 +45,7 @@ final class VillagerDetailReactor: Reactor { self.likeStorage = likeStorage self.houseStorage = houseStorage } - + func mutate(action: Action) -> Observable { switch action { case .fetch: @@ -65,13 +65,13 @@ final class VillagerDetailReactor: Reactor { houseState, likeState ]) - + case .like: HapticManager.shared.impact(style: .medium) Items.shared.updateVillagerLike(villager) likeStorage.update(villager) return .just(.updateLike) - + case .home: HapticManager.shared.impact(style: .medium) Items.shared.updateVillagerHouse(villager) @@ -79,19 +79,19 @@ final class VillagerDetailReactor: Reactor { return .just(.updateHouse) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { case .setLike(let isLiked): newState.isLiked = isLiked - + case .setHouse(let isResident): newState.isResident = isResident - + case .updateHouse: newState.isResident = newState.isResident == true ? false : true - + case .updateLike: newState.isLiked = newState.isLiked == true ? false : true } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/ViewModels/VillagersCellReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/ViewModels/VillagersCellReactor.swift similarity index 96% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/ViewModels/VillagersCellReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/ViewModels/VillagersCellReactor.swift index 5e6c9b7f..3e06d0d4 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/ViewModels/VillagersCellReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/ViewModels/VillagersCellReactor.swift @@ -9,30 +9,30 @@ import Foundation import ReactorKit final class VillagersCellReactor: Reactor { - + enum Action { case fetch case like case home } - + enum Mutation { case updateLike case updateHouse case setLike(_ isLiked: Bool) case setHouse(_ isResident: Bool) } - + struct State { var isLiked: Bool? var isResident: Bool? } - + let initialState: State private let villager: Villager private let likeStorage: VillagersLikeStorage private let houseStorage: VillagersHouseStorage - + init( state: State = State(), villager: Villager, @@ -44,7 +44,7 @@ final class VillagersCellReactor: Reactor { self.likeStorage = likeStorage self.houseStorage = houseStorage } - + func mutate(action: Action) -> Observable { switch action { case .fetch: @@ -64,29 +64,29 @@ final class VillagersCellReactor: Reactor { houseState, likeState ]) - + case .like: return .just(.updateLike) - + case .home: return .just(.updateHouse) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { case .setLike(let isLiked): newState.isLiked = isLiked - + case .setHouse(let isResident): newState.isResident = isResident - + case .updateHouse: HapticManager.shared.impact(style: .medium) Items.shared.updateVillagerHouse(villager) houseStorage.update(villager) - + case .updateLike: HapticManager.shared.impact(style: .medium) Items.shared.updateVillagerLike(villager) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/ViewModels/VillagersReactor.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/ViewModels/VillagersReactor.swift similarity index 96% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/ViewModels/VillagersReactor.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/ViewModels/VillagersReactor.swift index c9b7fda6..b1f513b2 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/ViewModels/VillagersReactor.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/ViewModels/VillagersReactor.swift @@ -9,7 +9,7 @@ import Foundation import ReactorKit final class VillagersReactor: Reactor { - + enum Action { case fetch case searchText(_ text: String) @@ -17,7 +17,7 @@ final class VillagersReactor: Reactor { case selectedMenu(keywords: [VillagersViewController.Menu: String]) case selectedVillager(indexPath: IndexPath) } - + enum Mutation { case setVillagers(_ villagers: [Villager]) case setAllVillagers(_ villagers: [Villager]) @@ -27,27 +27,27 @@ final class VillagersReactor: Reactor { case setScope(_ scope: VillagersViewController.SearchScope) case transition(route: VillagersCoordinator.Route) } - + struct State { var villagers: [Villager] = [] var isLoading: Bool = true } - + let initialState: State var coordinator: VillagersCoordinator? - + private var allVillagers: [Villager] = [] private var likeVillagers: [Villager] = [] private var houseVillagers: [Villager] = [] private var currentScope: VillagersViewController.SearchScope = .all private var currentKeywords: [VillagersViewController.Menu: String] = [:] private var lastSearchKeyword: String = "" - + init(coordinator: VillagersCoordinator, state: State = State()) { self.coordinator = coordinator self.initialState = state } - + func mutate(action: Action) -> Observable { switch action { case .fetch: @@ -63,7 +63,7 @@ final class VillagersReactor: Reactor { likeVillagers, houseVillagers ]) - + case .searchText(let text): lastSearchKeyword = text.lowercased() guard text != "" else { @@ -81,14 +81,14 @@ final class VillagersReactor: Reactor { keywords: owner.currentKeywords ) }.map { Mutation.setVillagers($0)} - + case .selectedScope(let title): guard let currentScope = VillagersViewController.SearchScope.transform(title) .flatMap({ VillagersViewController.SearchScope(rawValue: $0) }) else { return Observable.empty() } return Observable.just(Mutation.setScope(currentScope)) - + case .selectedMenu(let keywords): currentKeywords = keywords return currentVillagers() @@ -99,7 +99,7 @@ final class VillagersReactor: Reactor { keywords: keywords ) }.map { Mutation.setVillagers($0) } - + case .selectedVillager(let indexPath): guard let villager = currentState.villagers[safe: indexPath.item] else { return Observable.empty() @@ -107,22 +107,22 @@ final class VillagersReactor: Reactor { return Observable.just(Mutation.transition(route: .detail(villager: villager))) } } - + func reduce(state: State, mutation: Mutation) -> State { var newState = state switch mutation { case .setLoadingState(let isLoading): newState.isLoading = isLoading - + case .setVillagers(let villagers): newState.villagers = search(villagers: villagers, text: lastSearchKeyword) - + case .setAllVillagers(let villagers): if currentScope == .all { newState.villagers = villagers } allVillagers = villagers - + case .setLikeVillagers(let villagers): if currentScope == .liked { newState.villagers = filtered( @@ -131,7 +131,7 @@ final class VillagersReactor: Reactor { ) } likeVillagers = villagers - + case .setHouseVillagers(let villagers): if currentScope == .residents { newState.villagers = filtered( @@ -140,16 +140,16 @@ final class VillagersReactor: Reactor { ) } houseVillagers = villagers - + case .setScope(let scope): currentScope = scope - + case .transition(let route): coordinator?.transition(for: route) } return newState } - + private func currentVillagers() -> Observable<[Villager]> { switch currentScope { case .all: return .just(allVillagers) @@ -157,7 +157,7 @@ final class VillagersReactor: Reactor { case .residents: return .just(houseVillagers) } } - + private func filtered( villagers: [Villager], keywords: [VillagersViewController.Menu: String] @@ -174,27 +174,27 @@ final class VillagersReactor: Reactor { case .personality: let value = Personality.transform(localizedString: value) ?? "" filteredData = villagers.filter { $0.personality == Personality(rawValue: value) } - + case .gender: let value = Gender.transform(localizedString: value) ?? "" filteredData = (filteredData.isEmpty ? villagers : filteredData) .filter { $0.gender == Gender(rawValue: value) } - + case .type: filteredData = (filteredData.isEmpty ? villagers : filteredData) .filter { $0.subtype == Subtype(rawValue: value) } - + case .species: let value = Specie.transform(localizedString: value) ?? "" filteredData = (filteredData.isEmpty ? villagers : filteredData) .filter { $0.species == Specie(rawValue: value) } - + case .all: filteredData = villagers } } return filteredData } - + private func search(villagers: [Villager], text: String) -> [Villager] { guard lastSearchKeyword != "" else { return villagers diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/Views/VillagerDetailView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/Views/VillagerDetailView.swift similarity index 89% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/Views/VillagerDetailView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/Views/VillagerDetailView.swift index c1f699f7..44808b9b 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/Views/VillagerDetailView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/Views/VillagerDetailView.swift @@ -8,7 +8,7 @@ import UIKit class VillagerDetailView: UIView { - + private lazy var profileImage: UIImageView = { let imageView = UIImageView() imageView.layer.cornerRadius = 100 @@ -18,7 +18,7 @@ class VillagerDetailView: UIView { imageView.clipsToBounds = true return imageView }() - + private lazy var backgroundStackView: UIStackView = { let stackView = UIStackView() stackView.axis = .vertical @@ -26,10 +26,10 @@ class VillagerDetailView: UIView { stackView.distribution = .equalSpacing return stackView }() - + private func configure() { addSubviews(backgroundStackView, profileImage) - + let height = backgroundStackView.heightAnchor.constraint(equalToConstant: 270) height.priority = .required NSLayoutConstraint.activate([ @@ -47,22 +47,22 @@ class VillagerDetailView: UIView { } extension VillagerDetailView { - + convenience init(_ villager: Villager) { self.init(frame: .zero) profileImage.setImage(with: villager.photoImage) let items: [(title: String, value: String)] = [ - ("Personality".localized, villager.personality.rawValue.localized), - ("Gender".localized, villager.gender.rawValue.localized), - ("Hobby".localized, villager.hobby.rawValue.localized), + ("Personality".localized, villager.personality.rawValue.lowercased().localized.capitalized), + ("Gender".localized, villager.gender.rawValue.lowercased().localized.capitalized), + ("Hobby".localized, villager.hobby.rawValue.lowercased().localized.capitalized), ("Birthday".localized, villager.birthday), ("Type".localized, villager.subtype.rawValue), ("Like".localized, villager.like), - ("Specie".localized, villager.species.rawValue.localized), + ("Specie".localized, villager.species.rawValue.lowercased().localized.capitalized), ("Catch phrase".localized, villager.catchphrases.localizedName()) ] - + let contentViews = items.map { item -> InfoContentView in let label = UILabel() label.numberOfLines = 0 diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/Views/VillagerHouseView.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/Views/VillagerHouseView.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/Views/VillagerHouseView.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/Views/VillagerHouseView.swift index 673d128e..8438828d 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/Views/VillagerHouseView.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/Views/VillagerHouseView.swift @@ -8,15 +8,15 @@ import UIKit class VillagerHouseView: UIView { - + private lazy var houseImageView: UIImageView = { let imageView = UIImageView() return imageView }() - + private func configure() { addSubviews(houseImageView) - + let height = houseImageView.heightAnchor.constraint(equalToConstant: 300) height.priority = .required NSLayoutConstraint.activate([ diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/Views/VillagersCell.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/Views/VillagersCell.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/Views/VillagersCell.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/Views/VillagersCell.swift index eba1cd2e..12a5563d 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/Views/VillagersCell.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/Views/VillagersCell.swift @@ -10,9 +10,9 @@ import RxSwift import RxCocoa class VillagersCell: UICollectionViewCell { - + private var disposeBag = DisposeBag() - + @IBOutlet weak var iconImage: UIImageView! @IBOutlet weak var nameLabel: UILabel! @IBOutlet weak var likeButton: UIButton! @@ -26,7 +26,7 @@ class VillagersCell: UICollectionViewCell { likeButton.setImage(UIImage(systemName: "heart"), for: .normal) houseButton.setImage(UIImage(systemName: "house"), for: .normal) } - + override func prepareForReuse() { super.prepareForReuse() iconImage.kf.cancelDownloadTask() @@ -34,30 +34,30 @@ class VillagersCell: UICollectionViewCell { houseButton.setImage(nil, for: .normal) disposeBag = DisposeBag() } - + func setUp(_ villager: Villager) { iconImage.setImage(with: villager.iconImage) nameLabel.text = villager.translations.localizedName() bind(reactor: VillagersCellReactor(villager: villager)) } - + private func bind(reactor: VillagersCellReactor) { Observable.just(VillagersCellReactor.Action.fetch) .bind(to: reactor.action) .disposed(by: disposeBag) - + likeButton.rx.tap .map { VillagersCellReactor.Action.like } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + houseButton.rx.tap .map { VillagersCellReactor.Action.home } .subscribe(onNext: { action in reactor.action.onNext(action) }).disposed(by: disposeBag) - + reactor.state.map { $0.isLiked } .compactMap { $0 } .observe(on: MainScheduler.instance) @@ -65,7 +65,7 @@ class VillagersCell: UICollectionViewCell { .subscribe(onNext: { owner, isLiked in owner.likeButton.setImage(UIImage(systemName: isLiked ? "heart.fill" : "heart"), for: .normal) }).disposed(by: disposeBag) - + reactor.state.map { $0.isResident } .compactMap { $0 } .observe(on: MainScheduler.instance) diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/Views/VillagersCell.xib b/Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/Views/VillagersCell.xib similarity index 100% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Presentation/Villagers/Views/VillagersCell.xib rename to Animal-Crossing-Wiki/Projects/App/Sources/Presentation/Villagers/Views/VillagersCell.xib diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/App/SceneDelegate.swift b/Animal-Crossing-Wiki/Projects/App/Sources/SceneDelegate.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/App/SceneDelegate.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/SceneDelegate.swift index 87acb7ef..d2111f3d 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/App/SceneDelegate.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/SceneDelegate.swift @@ -51,6 +51,4 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { // to restore the scene back to its current state. } - } - diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Utility/AboutItem.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Utility/AboutItem.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Utility/AboutItem.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Utility/AboutItem.swift index 0d76fd20..d8d8c89f 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Utility/AboutItem.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Utility/AboutItem.swift @@ -12,7 +12,7 @@ struct AboutItem { let title: String var url: URL? var description: String? - + static var theApp: [AboutItem] { [ AboutItem( @@ -47,7 +47,7 @@ struct AboutItem { ) ] } - + static var acknowledgement: [AboutItem] { return [ AboutItem( @@ -64,7 +64,7 @@ struct AboutItem { ) ] } - + static var versions: [AboutItem] { return [ AboutItem( diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Utility/HapticManager.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Utility/HapticManager.swift similarity index 98% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Utility/HapticManager.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Utility/HapticManager.swift index 192caa89..172446c2 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Utility/HapticManager.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Utility/HapticManager.swift @@ -8,18 +8,18 @@ import UIKit final class HapticManager { - + enum Mode { case on case off } - + static let shared = HapticManager() private(set) var mode: Mode private let impactGenerator: UIImpactFeedbackGenerator private let selectionGenerator: UISelectionFeedbackGenerator private let notificationGenerator: UINotificationFeedbackGenerator - + private init() { self.impactGenerator = UIImpactFeedbackGenerator() self.selectionGenerator = UISelectionFeedbackGenerator() @@ -34,7 +34,7 @@ final class HapticManager { UserDefaults.standard.set(true, forKey: "hapticState") } } - + func impact(style: UIImpactFeedbackGenerator.FeedbackStyle) { guard mode == .on else { return @@ -43,21 +43,21 @@ final class HapticManager { generator.prepare() generator.impactOccurred() } - + func selection() { guard mode == .on else { return } selectionGenerator.selectionChanged() } - + func notification(type: UINotificationFeedbackGenerator.FeedbackType) { guard mode == .on else { return } notificationGenerator.notificationOccurred(type) } - + func toggle() { mode = mode == .on ? .off : .on UserDefaults.standard.set(mode == .off ? false : true, forKey: "hapticState") diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Utility/Items.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Utility/Items.swift similarity index 99% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Utility/Items.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Utility/Items.swift index 44898d56..e8e7e4c4 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Utility/Items.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Utility/Items.swift @@ -12,16 +12,16 @@ import RxRelay final class Items { static let shared = Items() - + // MARK: - Private private let network: APIProvider = DefaultAPIProvider() private let disposeBag = DisposeBag() private let networkGroup = DispatchGroup() - + private let villagers = BehaviorRelay<[Villager]>(value: []) private let villagersLike = BehaviorRelay<[Villager]>(value: []) private let villagersHouse = BehaviorRelay<[Villager]>(value: []) - + private let categories = BehaviorRelay<[Category: [Item]]>(value: [:]) private let allItems = BehaviorRelay<[Item]>(value: []) private let currentItemsCount = BehaviorRelay<[Category: Int]>(value: [:]) @@ -30,26 +30,26 @@ final class Items { private let currentDailyTasks = BehaviorRelay<[DailyTask]>(value: []) private let userItems = BehaviorRelay<[Category: [Item]]>(value: [:]) private let songs = BehaviorRelay<[Item]>(value: []) - + private(set) var materialsItemList: [String: Item] = [:] - + private init() { setUpUserCollection() fetchVillagers() fetchCritters() fetchFurniture() fetchClothes() - + networkGroup.notify(queue: .main) { self.isLoad.accept(false) self.allItems.accept(self.categories.value.flatMap { $0.value }) self.setUpMaterialsItems() } } - + private func setUpUserCollection() { currentUserInfo.accept(CoreDataUserInfoStorage().fetchUserInfo()) - + CoreDataDailyTaskStorage().fetchTasks() .subscribe(onSuccess: { tasks in self.currentDailyTasks.accept(tasks) @@ -59,7 +59,7 @@ final class Items { self.villagersLike.accept(CoreDataVillagersLikeStorage().fetch()) self.villagersHouse.accept(CoreDataVillagersHouseStorage().fetch()) - + CoreDataItemsStorage().fetch() .subscribe(onSuccess: { items in var userItems = [Category: [Item]]() @@ -73,7 +73,7 @@ final class Items { debugPrint(error) }).disposed(by: disposeBag) } - + private func fetchVillagers() { networkGroup.enter() network.request(VillagersRequest()) { result in @@ -92,7 +92,7 @@ final class Items { self.networkGroup.leave() } } - + private func fetchCritters() { networkGroup.enter() let group = DispatchGroup() @@ -118,7 +118,7 @@ final class Items { case .success(let response): let items = response.map { $0.toDomain() } itemList[.fishes] = items - + case .failure(let error): os_log( .error, @@ -158,7 +158,7 @@ final class Items { } group.leave() } - + group.notify(queue: .main) { self.updateAllItemList(by: itemList) self.networkGroup.leave() @@ -169,7 +169,7 @@ final class Items { self.networkGroup.enter() let group = DispatchGroup() var itemList: [Category: [Item]] = [:] - + group.enter() network.request(ArtRequest()) { result in switch result { @@ -371,12 +371,12 @@ final class Items { self.networkGroup.leave() } } - + private func fetchClothes() { self.networkGroup.enter() let group = DispatchGroup() var itemList: [Category: [Item]] = [:] - + group.enter() network.request(TopsRequest()) { result in switch result { @@ -547,7 +547,7 @@ final class Items { self.networkGroup.leave() } } - + private func updateAllItemList(by items: [Category: [Item]]) { var currentItems = self.categories.value var itemsCount = self.currentItemsCount.value @@ -558,7 +558,7 @@ final class Items { self.categories.accept(currentItems) self.currentItemsCount.accept(itemsCount) } - + private func setUpMaterialsItems() { let values = allItems.value .filter { $0.category == .recipes } @@ -572,19 +572,19 @@ final class Items { // MARK: - Internal extension Items { - + var villagerList: Observable<[Villager]> { return villagers.asObservable() } - + var villagerHouseList: Observable<[Villager]> { return villagersHouse.asObservable() } - + var villagerLikeList: Observable<[Villager]> { return villagersLike.asObservable() } - + var categoryList: Observable<[Category: [Item]]> { return categories.asObservable() } @@ -594,23 +594,23 @@ extension Items { var userInfo: Observable { return currentUserInfo.asObservable() } - + var dailyTasks: Observable<[DailyTask]> { return currentDailyTasks.asObservable() } - + var itemList: Observable<[Category: [Item]]> { return userItems.asObservable() } - + func updateUserInfo(_ userInfo: UserInfo) { currentUserInfo.accept(userInfo) } - + var itemsCount: Observable<[Category: Int]> { return currentItemsCount.asObservable() } - + func updateTasks(_ task: DailyTask) { var tasks = currentDailyTasks.value if let index = tasks.firstIndex(where: { $0.id == task.id }) { @@ -620,7 +620,7 @@ extension Items { } self.currentDailyTasks.accept(tasks) } - + func deleteTask(_ task: DailyTask) { var tasks = currentDailyTasks.value if let index = tasks.firstIndex(where: { $0.id == task.id }) { @@ -628,7 +628,7 @@ extension Items { } self.currentDailyTasks.accept(tasks) } - + func updateVillagerHouse(_ villager: Villager) { var villagers = villagersHouse.value if let index = villagers.firstIndex(where: {$0.name == villager.name}) { @@ -638,7 +638,7 @@ extension Items { } villagersHouse.accept(villagers) } - + func updateVillagerLike(_ villager: Villager) { var villagers = villagersLike.value if let index = villagers.firstIndex(where: {$0.name == villager.name}) { @@ -648,7 +648,7 @@ extension Items { } villagersLike.accept(villagers) } - + func updateItem(_ item: Item) { var currentUserItems = userItems.value var items = currentUserItems[item.category] ?? [] @@ -660,14 +660,14 @@ extension Items { currentUserItems[item.category] = items userItems.accept(currentUserItems) } - + func itemFilter(keyword: String, category: Keyword) -> [Item] { let items = allItems.value return items .filter { $0.keyword.contains(keyword) } .sorted(by: {$0.category.rawValue < $1.category.rawValue }) } - + func reset() { villagersLike.accept([]) villagersHouse.accept([]) @@ -680,7 +680,7 @@ extension Items { currentUserInfo.accept(UserInfo()) currentDailyTasks.accept(DailyTask.tasks) } - + func allCheckItem(category: Category) { var items = userItems.value let allItems = categories.value[category] @@ -693,11 +693,11 @@ extension Items { items[category, default: []].append(contentsOf: newItems) userItems.accept(items) } - + func resetCheckItem(category: Category) { var items = userItems.value items[category, default: []] = [] userItems.accept(items) } - + } diff --git a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Utility/MusicPlayerManager.swift b/Animal-Crossing-Wiki/Projects/App/Sources/Utility/MusicPlayerManager.swift similarity index 97% rename from Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Utility/MusicPlayerManager.swift rename to Animal-Crossing-Wiki/Projects/App/Sources/Utility/MusicPlayerManager.swift index 86fcc279..9e40d3e4 100644 --- a/Animal-Crossing-Wiki/Animal-Crossing-Wiki/Sources/Utility/MusicPlayerManager.swift +++ b/Animal-Crossing-Wiki/Projects/App/Sources/Utility/MusicPlayerManager.swift @@ -13,30 +13,30 @@ import AVFoundation import MediaPlayer final class MusicPlayerManager { - + enum PlayerMode { case shuffle case fullRepeat case oneSongRepeat } - + static let shared = MusicPlayerManager() - + private let disposeBag = DisposeBag() private var player: AVPlayer? private var timer: Timer? - + private let isPlaying = BehaviorRelay(value: nil) private let currentSong = BehaviorRelay(value: nil) private var songs = BehaviorRelay<[String: Item]>(value: [:]) private var songsItem = BehaviorRelay<[Item]>(value: []) private let playerMode = BehaviorRelay(value: .fullRepeat) - + private let playerProgress = BehaviorRelay(value: 0) private let durationTime = BehaviorRelay(value: "0:00") private let elapsedTime = BehaviorRelay(value: "0:00") private let currentIndex = BehaviorRelay(value: nil) - + private init() { Items.shared.categoryList .compactMap { $0[.songs] } @@ -49,7 +49,7 @@ final class MusicPlayerManager { owner.songs.accept(newSongs) owner.songsItem.accept(songs.shuffled()) }).disposed(by: disposeBag) - + currentSong .compactMap { $0?.musicURL } .compactMap { URL(string: $0) } @@ -57,14 +57,14 @@ final class MusicPlayerManager { .subscribe(onNext: { owner, musicURL in owner.player = AVPlayer(url: musicURL) }).disposed(by: disposeBag) - + currentSong .compactMap { $0 } .withUnretained(self) .subscribe(onNext: { owner, song in owner.currentIndex.accept(owner.songsItem.value.firstIndex(of: song)) }).disposed(by: disposeBag) - + isPlaying .compactMap { $0 } .withUnretained(self) @@ -80,11 +80,11 @@ final class MusicPlayerManager { } owner.setUpPlayerTimer() }).disposed(by: disposeBag) - + setUpNotification() setupRemoteCommands() } - + private func changeSong(at newIndex: Int) { playerProgress.accept(0) elapsedTime.accept("0:00") @@ -105,29 +105,29 @@ final class MusicPlayerManager { } isPlaying.accept(true) } - + private func updatePlayingInfo() { if let duration = player?.currentItem?.duration.seconds, let playTime = player?.currentItem?.currentTime().seconds, !duration.isNaN, !playTime.isNaN { playerProgress.accept(Float(playTime) / Float(duration)) - + let durationSecs = Int(duration) let durationSeconds = Int(durationSecs % 3600 ) % 60 let durationMinutes = Int(durationSecs % 3600) / 60 let durationTime = "\(durationMinutes):\(String(format: "%02d", durationSeconds))" self.durationTime.accept(durationTime) - + let playTimeSecs = Int(playTime) let playTimeSeconds = Int(playTimeSecs % 3600) % 60 let playTimeMinutes = Int(playTimeSecs % 3600) / 60 let elapsedTime = "\(playTimeMinutes):\(String(format: "%02d", playTimeSeconds))" self.elapsedTime.accept(elapsedTime) - + setUpRemotePlayingInfo(duration: duration, playTime: playTime) } } - + private func setUpPlayerTimer() { if isPlaying.value == true { if timer != nil { @@ -146,7 +146,7 @@ final class MusicPlayerManager { timer = nil } } - + private func setUpNotification() { NotificationCenter.default.addObserver( forName: .AVPlayerItemDidPlayToEndTime, @@ -170,17 +170,17 @@ final class MusicPlayerManager { } } } - + private func setUpBackground() { if let currentSong = currentSong.value { try? AVAudioSession.sharedInstance().setCategory(.playback, mode: .default) try? AVAudioSession.sharedInstance().setActive(true, options: []) - + var playingInfo: [String: Any] = [:] playingInfo[MPMediaItemPropertyArtist] = "K.K. Slider" playingInfo[MPMediaItemPropertyAlbumTitle] = "K.K. Slider" playingInfo[MPMediaItemPropertyTitle] = currentSong.translations.localizedName() - + UIImage.downloadImage(urlString: currentSong.image ?? "") .compactMap { $0 } .subscribe(onNext: { image in @@ -193,7 +193,7 @@ final class MusicPlayerManager { }).disposed(by: disposeBag) } } - + private func setupRemoteCommands() { MPRemoteCommandCenter.shared().playCommand.addTarget { [weak self] _ in if self?.isPlaying.value == false { @@ -218,7 +218,7 @@ final class MusicPlayerManager { return .success } } - + private func setUpRemotePlayingInfo(duration: Double, playTime: Double) { var playingInfo = MPNowPlayingInfoCenter.default().nowPlayingInfo playingInfo?[MPMediaItemPropertyPlaybackDuration] = duration @@ -229,43 +229,43 @@ final class MusicPlayerManager { } extension MusicPlayerManager { - + var isNowPlaying: Observable { return isPlaying.asObservable() } - + var currentMusic: Observable { return currentSong.asObservable() } - + var currentTime: Observable { return elapsedTime.asObservable() } - + var fullTime: Observable { return durationTime.asObservable() } - + var songProgress: Observable { return playerProgress.asObservable() } - + var songList: Observable<[Item]> { return songsItem.asObservable() } - + var playingSongIndex: Observable { return currentIndex.asObservable() } - + var currentPlayerMode: Observable { return playerMode.asObservable() } - + func togglePlaying() { isPlaying.accept(isPlaying.value == true ? false : true) } - + func updatePlayerMode(to mode: PlayerMode) { switch mode { case .shuffle: @@ -278,22 +278,22 @@ extension MusicPlayerManager { } } } - + func next() { changeSong(at: 1) } - + func prev() { changeSong(at: -1) } - + func choice(_ item: Item) { close() currentSong.accept(item) isPlaying.accept(true) setUpNotification() } - + func close() { player = nil isPlaying.accept(false) diff --git a/Animal-Crossing-Wiki/Projects/App/Tests/ACNHWikiTests.swift b/Animal-Crossing-Wiki/Projects/App/Tests/ACNHWikiTests.swift new file mode 100644 index 00000000..acf0eeb8 --- /dev/null +++ b/Animal-Crossing-Wiki/Projects/App/Tests/ACNHWikiTests.swift @@ -0,0 +1,8 @@ +import Foundation +import XCTest + +final class ACNHWikiTests: XCTestCase { + func test_twoPlusTwo_isFour() { + XCTAssertEqual(2+2, 4) + } +} diff --git a/Animal-Crossing-Wiki/Scripts/SwiftLintAutocorrectScript.sh b/Animal-Crossing-Wiki/Scripts/SwiftLintAutocorrectScript.sh new file mode 100755 index 00000000..9014c5c4 --- /dev/null +++ b/Animal-Crossing-Wiki/Scripts/SwiftLintAutocorrectScript.sh @@ -0,0 +1,11 @@ +if test -d "/opt/homebrew/bin/"; then + PATH="/opt/homebrew/bin/:${PATH}" +fi + +export PATH + +if which swiftlint > /dev/null; then + swiftlint --fix --config ../../../.swiftlint.yml --quiet +else + echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint" +fi diff --git a/Animal-Crossing-Wiki/Scripts/SwiftLintRunScript.sh b/Animal-Crossing-Wiki/Scripts/SwiftLintRunScript.sh new file mode 100755 index 00000000..fc715069 --- /dev/null +++ b/Animal-Crossing-Wiki/Scripts/SwiftLintRunScript.sh @@ -0,0 +1,11 @@ +if test -d "/opt/homebrew/bin/"; then + PATH="/opt/homebrew/bin/:${PATH}" +fi + +export PATH + +if which swiftlint > /dev/null; then + swiftlint --config ../../../.swiftlint.yml --quiet +else + echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint" +fi diff --git a/Tuist/Config.swift b/Tuist/Config.swift new file mode 100644 index 00000000..91234648 --- /dev/null +++ b/Tuist/Config.swift @@ -0,0 +1,9 @@ +import ProjectDescription + +let config = Config( +// Create an account with "tuist auth" and a project with "tuist project create" +// then uncomment the section below and set the project full-handle. +// * Read more: https://docs.tuist.io/guides/quick-start/gather-insights +// +// fullHandle: "{account_handle}/{project_handle}", +) diff --git a/Tuist/Package.resolved b/Tuist/Package.resolved new file mode 100644 index 00000000..dd5baf0c --- /dev/null +++ b/Tuist/Package.resolved @@ -0,0 +1,60 @@ +{ + "originHash" : "815fe989940a913d4e8f71cfd1c1b3aae3614813a871c19e59a3ac48c9d9bb4a", + "pins" : [ + { + "identity" : "alamofire", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Alamofire/Alamofire.git", + "state" : { + "revision" : "e16d3481f5ed35f0472cb93350085853d754913f", + "version" : "5.10.1" + } + }, + { + "identity" : "kingfisher", + "kind" : "remoteSourceControl", + "location" : "https://github.com/onevcat/Kingfisher.git", + "state" : { + "revision" : "3ec0ab0bca4feb56e8b33e289c9496e89059dd08", + "version" : "7.10.2" + } + }, + { + "identity" : "reactorkit", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ReactorKit/ReactorKit.git", + "state" : { + "revision" : "8fa33f09c6f6621a2aa536d739956d53b84dd139", + "version" : "3.2.0" + } + }, + { + "identity" : "rxdatasources", + "kind" : "remoteSourceControl", + "location" : "https://github.com/RxSwiftCommunity/RxDataSources.git", + "state" : { + "revision" : "90c29b48b628479097fe775ed1966d75ac374518", + "version" : "5.0.2" + } + }, + { + "identity" : "rxswift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ReactiveX/RxSwift.git", + "state" : { + "revision" : "c7c7d2cf50a3211fe2843f76869c698e4e417930", + "version" : "6.8.0" + } + }, + { + "identity" : "weakmaptable", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ReactorKit/WeakMapTable.git", + "state" : { + "revision" : "cb05d64cef2bbf51e85c53adee937df46540a74e", + "version" : "1.2.1" + } + } + ], + "version" : 3 +} diff --git a/Tuist/Package.swift b/Tuist/Package.swift new file mode 100644 index 00000000..0e10ff8a --- /dev/null +++ b/Tuist/Package.swift @@ -0,0 +1,34 @@ +// swift-tools-version: 6.0 +import PackageDescription + +#if TUIST + import struct ProjectDescription.PackageSettings + + let packageSettings = PackageSettings( + // Customize the product types for specific package product + // Default is .staticFramework + // productTypes: ["Alamofire": .framework,] + productTypes: [ + "Alamofire": .framework, // default is .staticFramework + /// 아래 에러 해결을 위해 Rx와 관련된 라이브러리를 dynamicFrameWork로 설정. + /// error: failed to demangle superclass of DelegateProxy from mangled name 'So16_RXDelegateProxyC': + "RxSwift" : .framework, + "RxCocoa": .framework, + "RxDataSources": .framework, + "ReactorKit": .framework, + "RxCocoaRuntime" : .framework, + "RxRelay" : .framework + ] + ) +#endif + +let package = Package( + name: "ACNH-wiki", + dependencies: [ + .package(url: "https://github.com/Alamofire/Alamofire.git", .upToNextMinor(from: "5.10.0")), + .package(url: "https://github.com/ReactorKit/ReactorKit.git", .upToNextMinor(from: "3.2.0")), + .package(url: "https://github.com/onevcat/Kingfisher.git", .upToNextMinor(from: "7.10.2")), + .package(url: "https://github.com/ReactiveX/RxSwift.git", .upToNextMinor(from: "6.8.0")), + .package(url: "https://github.com/RxSwiftCommunity/RxDataSources.git", .upToNextMinor(from: "5.0.0")), + ] +) diff --git a/Tuist/ProjectDescriptionHelpers/Dependency+SPM.swift b/Tuist/ProjectDescriptionHelpers/Dependency+SPM.swift new file mode 100644 index 00000000..4babe1bb --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/Dependency+SPM.swift @@ -0,0 +1,14 @@ +import ProjectDescription + +public extension TargetDependency { + enum SPM {} +} + +public extension TargetDependency.SPM { + static let Kingfisher = TargetDependency.external(name: "Kingfisher") + static let Alamofire = TargetDependency.external(name: "Alamofire") + static let RxSwift = TargetDependency.external(name: "RxSwift") + static let RxCocoa = TargetDependency.external(name: "RxCocoa") + static let ReactorKit = TargetDependency.external(name: "ReactorKit") + static let RxDataSources = TargetDependency.external(name: "RxDataSources") +} diff --git a/Tuist/ProjectDescriptionHelpers/TargetScript+.swift b/Tuist/ProjectDescriptionHelpers/TargetScript+.swift new file mode 100644 index 00000000..0796da4c --- /dev/null +++ b/Tuist/ProjectDescriptionHelpers/TargetScript+.swift @@ -0,0 +1,20 @@ +// +// TargetScript+.swift +// ProjectDescriptionHelpers +// +// Created by Ari on 11/11/24. +// + +import ProjectDescription + +public extension TargetScript { + static let runSwiftLint = TargetScript.pre( + path: .relativeToRoot("Animal-Crossing-Wiki/Scripts/SwiftLintRunScript.sh"), + name: "Run Script - SwiftLint" + ) + + static let runSwiftLintAutocorrect = TargetScript.pre( + path: .relativeToRoot("Animal-Crossing-Wiki/Scripts/SwiftLintAutocorrectScript.sh"), + name: "Run Script - SwiftLint autocorrect" + ) +} diff --git a/Workspace.swift b/Workspace.swift new file mode 100644 index 00000000..9d64b4cd --- /dev/null +++ b/Workspace.swift @@ -0,0 +1,16 @@ +// +// Workspace.swift +// ProjectDescriptionHelpers +// +// Created by Ari on 2024/11/11. +// + +import ProjectDescription + +let workspace = Workspace( + name: "Animal-Crossing-Wiki", + projects: [ + "Animal-Crossing-Wiki/Projects/App" + ], + generationOptions: .options(enableAutomaticXcodeSchemes: false, autogeneratedWorkspaceSchemes: .disabled) +) diff --git a/graph.png b/graph.png new file mode 100644 index 0000000000000000000000000000000000000000..b04fd44a3733fc1b97d621346a2a6c03b0ae3fda GIT binary patch literal 81942 zcma&N1yqz@*gXmsq7u?bNh^(XqmqIkAl=>Ftw?uwNOyOO14Dy!cgN73_l*9&|61R= zcinqOXNmBx^PcyK{p`KZ5b#Ax6y@2gX9x%gDB@y5vIq!|s1Xnl8=pP_-#N&?=K=pb z(UA}pLb!+j`PrNsg@EuHL0stlSEuCNIcK-8Yg6}!gS%5yJmEh5-zxSW(7YFZ`KY$x zXIS85Lp8sB{#D_$sA+Mr%1M6lvTU_NkP5CFmi7CW;gs(Y^%rKp3BE?Gpk_&M_wY>C zdmZlmlQinr`K?PoZ34?ipIQ`4{UF!G?74fw?g%Y(5D6 zdu4p;M*i=j0235#}rYJcnF3Ra8fB1{g zHaZzSAkvDn&%AaHIwCDV1pAWZlOvgsvFZ)~d6&%3Rc|pYRx!y*-Np5LpVfgOR0-6x z+gDCI)=w`Gbz1}ASBdR_on(c8J6g2fI*>DK+y44dxj1^9Nfb-CTjuiD##@mYQu_zARRwhOtQjPcg(lN~rO-Xtw%y&MV^gFoJC zd`>DRnK=a^s_pIR#PLxt^Oze(mp9k7O@t?iMKDXIR(ema<{9SeTZ z%a;*(vj5K+p``woCLxLf5byv07Z(ko3JQh(X;NI;rEMGb@?3~iFEhfy@<0+dW;&7F z^rYFHL)7mmbKJPIm*z*3ZD5_9-}j;1|M13WmLrLD9J!>&cgKF`p}XjZ&yVTu@jj&A zh9%H5o#~Wy-sIKJa=N?WGGPz*5 zo#Hp$6TaXll4?X~IAN-BzIn1awIC*mKtTb?-+*M)hIA@2dd~)_a4;i^=uk1E=wJq4 zcg$!(-c8C`>HVJ_fcg`ySQPl8{$!tT zNX+h(rIL-1RJ5cPZ)y+wO?|IxvIckg6>)ekVlVWbG5NHyc?~e%(2#88sT-9HNKKhLk$9KYTV?x1ue!uAb zok_>7&}TkN-}dLY{!MDk!>MNNwWiy!TnAtwR@ilkLolDb68DQ9IM`$*zmyfw z%aUU^Q+u*d#Oj-Qv-L?gWq*S8cD6fZv0L-wAIrWU<;O{}=G1>%%v`D)IU-bRUn-Ao z%Cp>K$de!-U{J%nPUFyF#n8c0_YE|H+xXGV8KrJlr#miD;ti)#x5Y*8AX;<3YxPt= znajzK`>W!^c{O=x#ggI2y+JKa(st@sy^;o*WSysIAkPbg1_L3(WEV62Oynd~k}ST( zcKfauu)ndVpn<3I={m0=1;zH~rt$cPI%kzA6Q&`~xC1R1B@MVWmfn83A2?@E8uIa> zeN#GNyv;1rSelD;=T$#}D% z%R8Tq4nOXcdoJ37?O zwlj`bL)f$z{H;4|e{dbNlvMiq-o0*>eRC8=;}$a-8**-{J^hg0wU{UM2M@IEVcc&y z36I$WoPW(DclAmptND7-ne#s9V_X{Ni>tH;&XpmT_}jP3VbH;iecx}ThZ{wcNNG*8 zH#<A{?d?#vONNKDAFrPs?90w}W%@6EYp$Oe*9?dT+Qhuvau9@+3V?(h{G_Q9b9 z^b6*_E&d;&slfBX<%&3As}}{i|6N44$?$J7I0f1K9piB2&D7q zR65&ETdG*tB^iFV;-HHfC^zt<>HL)i$M!5_AL(x_xwa*jtZd~DgTzb|*i3QaG(GB> zJs~9X7LB-Pby_o#w|V@%$3fDcqd(pz_e{6YO0^wIuC+}^UM?e&D)5)KgpPX zuO%bHkOxWq_Y(UG=J|i$mdXCdP{2=wVnDV3d;Py%EcU!Vg(t4sbOPg*2d)|C=)O&LPL4#i~ zI{G!${Y)7ejQ`Qb=3RY#{jBSLv)e%%(pLoq5uUH`AV#2eyn-PJ32{dzClgvUY*E4A z2sIXSpENXxFE20QSA(U9f;xWxN&kq?V(3n z{cLS)y1Kiyr>l$+uyAoJ?Y4%+elKt3rcq%%i-?MXTpX^zS20Yse!}N+VpQn(8XlJ6 zJ$TrLqpk2#8?eXe$f&4%=bK$g9HN4QUjVB2JNm60LS8|EPDdbiUz$K#QxmU-^BT4r zKS@GD!s`0E2nNpW^?9e>J0h4P#ozT9{;n4f)@va$5cmOE(i$&PenG&#>z_u&%p7sJ z(#hg+@ed$d3jd zvLoF$fQc%Qbt4;}o3Rs+xE;K26q95%INzHC+Xbaiq*DE?ataiKdslzIeqTIuFabxX z#ax5%f0Y#b1u*PlEF7Gp4qQ!yGRp;iIIG2BQ1hR&*oY7%PM3&dkO{FINakuf9arT& zo7B}aG_2h+^@C{dwcdMtNJsa)J5DQCqBFm`LfV;YJP%8}d8cx=H`jZ#)(et>O{=hY ze%;;O9dJ^F2TJJSlNbIDdGM{1g~)(g)0j((^|*FL6&+MTZ2!Ex_Wyd zD~CcoapTlwpKSbSajN-S~SAgbEHxN zr_4efoL+j~UoTw3EIr||!smB$`l_2R9sN~Nu~MhwnfejaCI^l6q4!j^=;E3lmMO~v)Q@`W?iV&Am6!F+hbfIo~n;# z3oR+{e>}0?NO3&s6u4uaUP8F`i-#i%@4>H!L#P{d<@P({VuOL%5^)vo*Jq&6u7Nc2du?sfC~E2THY5_gcK??{sKqi%R`CIt z)UrxST?O)m(_J8LYEj5tEh< z`&SghhX4YObFMhBSA;;-*FM{%vIjGmVg zRS@IR8uJ-EUMH)@S2kqV@*rPsmq#FCAa={AF67wnxBa|M_7^m<-@{>I)e4YAE?HPL z;bufUt1$-XX8ry|wst5~geRGb?{rjd)_y{rPPL|J?sPBQch-WVP@y<5nnArn4_RJb z9zd~A1i2^xONcLusUqfYcrL^m;qqCcdc)?Y=rV}Tx-Wr+)=-9UFcA;?^b#vA)-&s~ zDZ@&`!BhthMqgIOe}D$k`}jG|7X=01{{SuhHOMf`>i*;3F4+eAG?o&5i!?1OEG+y2 zkLjCfX>)ArEzEKVHCMRCa$x|l$9jMQ&KFC5nM9#CV(DM}`;$0CT@>gvn&OFg9MExb zJIk~o{~=AX$JG{50d6E5?W&#usrqUpqUSqtfCNLm_gJA~rN^xc1_nk3kyH@h^={>? z$2APzBqpPIMtR@WsHjwZ#D=$6CKzB55ACbq zArQE~M3c*vS_4MITC(jxfCHx}Q1vXv!xYb+JyU9SsrGdw%nS?+1o#j{L5EuOR92vE zJ;5+l9N=UoQNiCGGJqZaJhb`QdVjmmb=ZyxDy{I%+qc@kz9FjFbW`%4&)R}M5qo)aZ z`)mNn;S&^GZenWM-PNVFJ6Rr){<`4l-^48ec*{k0G z6_y4Mg!7ReC|T(CSmBI4{#UN6ZCbC<^CB>$a=}oReVGM%~Pf!b0TSGCC4q$t-oyYoYF)DqMfana!tJ*9X%Ep&hIdBe#5-Gi01>;V4rpDaw>mz&tj~nLGdpJ)UMg%C)S)yAFp4k27 zurt|l-nj{YjGEhF2dLGt6!3qusR|#!$sF=3@-WmJ9rr_{8TtnY4aW-PQyGvZ%zqdYs{culCkne}_3jr?p!)j`1)DOdUeOgDD& ztKx257;LcLA;W$j%b@;AU!O9C$I)OkPX=syb11WX%Isg-voe9r#9gwI4;HOgWAJ@} z|N9%_Lnkl;Gl`^<-q6s%aZt^EOdik(^68~6W(K?$6@XQNefm7dl~qys^x?yU++>?i zS%$(Oy3EYX|FbT9v#Be^00HaPVpW}h+cs6E{cvh(3S_Il>1^6mGKoDzn*Y)p8Iwwg zhmdQ)Y_5TAxKgJ(k`fCGORI7Uj<#8LTa)Fw;!;wf|7HaY(DPwtR(aHu?ZQ&1PPq_I zlY{nDg+2hmSVawIAJdY0s_CVw`d)^{V35H?5R4@|Zjdy>PI&!O)3IC5&;BIqf|FYg z3&O3ft$#(3)eN>fUAxi@!Z0>I4tN*36z`!B|J7!uksl`Z^%+bT9*6&f38EAkb#?JE zw2A=_P3O+ueNeW00#e~Y8dpNq{ObX09viz-?rX&1~ImD`JxbPju)#|K>`xt z^rx_-AuvqfF5Y&Kj|2FqtOX4XiEF)aqU*&<4R&ueN;yEM@@o&ZdV0z~`b#o=Kmc0u zKvY#*+_>PyOmcsL#4&625v16Cb~@^& zR&I2l2Lvq8ffEM3-ftZQQ@l@<#JxRBJSu}Iv`ZS}#S@Ul=K%9o*Vf97hR7WDX2sRi z2*La#=irEgGaD$rVR(Ez-ai85@dDg|`zvbIT0ud9e^{767ESkbwJAQA4F#NiT%4AA z5@l~rm(rFtMN&${f&ukJR#x^E@A~m20vz(5eqN=XX|Oj1RSOth61zDd0e{K%VBr5E z+rt&=ii^z{0mMkEti13Yhc zG$YnPU93-=maYMsp>=a{C=>i8>l6zcJ0dO)S6m5j^gt_4cq#s`ktC*TuoWm03UA)N z1QvW&BXnF1CsG94^}eOT(iR<{)jmlQLVx=_S1#9i`~wMXeMppq68-5x7kOBj^RWS3 zYf(}qhR4Q20jLgwa_HNgsss%72GA$H)vkyl&DK=F2ZVTpA{3$$61st0gQw>bbW>hl z-Xa`%d!paM$s~bgQv@-e%b!9;#+=Vd(C3UzzW{_~64ijgDdz1W)g_Z@^HV^blaPv% z(x<2A69OI1bD$G{mX(Ez5<7c0?lsW%ysYsA6Iy@1$=PmiHUW$Z^cPPM@qji4p$WCI zBQuAr*&KpWV8wg3eCR~BCb8q^l}84j%tGCCrd8zOx?w%vYf?{lCPXnXwIqWTzkGp{ zK0pbbnl<`IhJpoO3zlj$gNdCEKr=EPL8;b)Xl-rHuTPZJhAuEH%n-yqB3<$n`#l&v z(je1l{1>kQf2W|LdIv~H*OzdaOc7%XxX)yaxy?mdoKtS|^L*Zw5vWx_Z6Pk(`MGsF zC5=xXJ@Df-C|BB?Yvd?xxuStL(FZ%&42Vbqw>{0yM5$$Xbe`e61gHJx^SaH9pbYdB zv1=PGVYr&C1m%1Nn-O($;bZE z)~`lN#IqPmW#UdCC=|wgdDA}UxX_<=cS2pHVDJ0v$q(MUixoJB|Hix_uDk2N(|R>l z3QyzAJKhM?m0y9c)7;PS!35>W`ipd9*YKkcl^?$LVjlrnpRsIB5e~vBcYvu#QprW_ z5UZh{9Cnf@a{W=jLiJOwv(k>ZZg>GqiS2U0++$oOanxHbr- zIG4Qt0WmDi*WRC$5cPOR^F9&i{nRgSyvIz|M&+dS!MOQ0#C8|LF~3;eNvyj94FP9J zzOH-qe$N@|UiU78LfhrgNt5u-}mBKt~;NAg%`i43J0%tsu za|l=j(NTZJm`R5jyKc2g{gN+1-SGg=7Ld5nWPB|kRl~!>Z-BQ!S2<;tm6LM>RJhHw zajr0PL#Q#Z3Dj)++3M!@o;1t6V_}(Uc6G!e$K>LF^y59Sa==i8^PEo-65?WFi_vmY zz!U&tfs%>}3~Hcj#Aak|mYvqmuj`isX%mZ|AVS;Yz*sYebgeF4Qh{Ou|Ir5P08K<0 z7-4Vr8RdAg!M+gM5hTjAJs04M_5$9H=&B7Z9mSIQi{gs`U+ z+`xj0({S0+#>8Y#3ISi`qmW~M>j=WtWltin6}VYK0~}T?ARsLdkUKDgtY^$?wcjN$ zCH2QkQsK}kp~L=&)SWA?n~y1g3Z)cnoclic;4EJ1mgiY?Dk6-S6xU&EY51vYc{*0_FifQejzh|GRn4P4h6TN`+_T;8{xJ=pvY4zEbna{8TmNx!m2pRAA za}$6b3To=(^(0GTSvFyhhAVAiKuOiCJFuHB*OP`&#f4C1)ztcWVrU79pUN&&E(fy= z7*&({`S|!a@e;cLWkWLvKO~{g(I)C7sGaG5jH~tw3_z9Wc!bP%?dpzm9V=l19?_YY zOzTOTv-K=+Q{?_`|GsNrAk;yuvk1hHq4`7>K7FmN%c=0NjW-Gk3zb{kob}#xf!iKl zxR%Hq4=V)!GU}rT z7jFE(GeiIl;P;gk@xY09bbOrsvI)rp6;6pGg$%@KKpjG{Ec89Yif}}R5ABJ^) z1bT1PRz^i-dhu9RUH!AL@Z*wg6E(K6(XWbfGBN>;;~~AUoB}8|toBdVBp#AAb2$Yi zw>5W4dq*c`TDah+#6vDC?v#kZo;Cp<`|VLZovh3wm*xm}*Mnm4lt)K4phT@3)#^+N z^54*Q!W@sLEyIql1q%7jEcZ7oI=9#_DL;%HId1i z?Pl+ylB4l1-~BSEjaszRspau^Rx1Qxm=Ag|cAPVXH#U z&Rhf>7JA3){lLVn(CtKZ*q?sCH1Ob=BesnE9FwVKb-b8FMO3U2)fjSsHR&=DsVs(M zJC|g8=QoxCA)Vwy*P=P0U?LqNDoH^buLyf-e>UyPZ~Z1W^YQJRn6XqP{XaH=|c`?B+VV1a1$n!2p#}Q|{ebBXI~mngpi^CHd$j`8dJ< z#ym=jq3{dgER5j<-}FPlq>9uvLuj8Vn(Q~AGr$aR&`lVz=$IB$TzWWR988U##s24_ zJu`-1ApPLZ{*dYY>j&T=)b3u#+`S(A{#u_{AiJ8lN3Gf$)ud`&01qUsFQsdC8v=5~41Ox@?PL^q-_<8|S zmOE6yhZE$pyKAQ5aj8GRy;DR&1WfOoygYv}Jyv)P&n>{PpQ^Paxjx&=wp-BnB=PCZ zTl(y(CNDwED0ylqrxo`u#iThWOd%4cKxlwz9l_pD$mKyfSv=WifB|EtqguHzctA&m z8Guw}Dege9-k_T_#IJ%-miU=7$#^H&zK;_|zay^@X(k`f!6g1O zzkJ@s-W;0JG%Zd-W5yp#O!E8!cVGNpX(CuMdGnzE!h9-2@N^l~_rUk}*Nb3XSkNqVIKPopkBc7Swu{XFc_^{QC`1r4I-jE%Q zRJ+@dVLdCiS^ES$0`k~3M(q)32o{XlVBP_$yfxn;QhS1~oUh$r|1KiMf{M0ZGM56= zIDl#x^D{*UNgC3(Pm1x81x(rU+Gp~ZPfx;~I1F&{~3HeVI-n`~vKNGT~K^{rIJif&h6 z^+-Rygn=8~T(Wgm=d^f`efTR~YI-O!*A(|WsEcTqrsz?Zsg1LWPME%Eby7y6$}@Fh zhq0?kWiURVVmFjrn42@XXw+f+KET+w8CN!}o~re>s7(S&`T!gd9-Rhao6R?IMH<;a zIX6?I1s#%q^eOSErl6s3XqqUsj2{?$1_v) zjZZD-4v>PTBz;*@tCWzonAy2`%(6PB#l!5wapcZf#-%{_dG!YZq%f{!OJIsg%lW;N z+rWUVwu1I$=~PC=v?@E>-rU5vIILMifRZ?~n7+i}WsyV`=dMG8zW#8tq4d?s&LA*T z@qqmRY|swbxJ_VILri8?+X3Ag&>bO3&#LlDO+baBJY)HpoA8~F?qtUz$8{srdTDkZ zdl#i#U(_Gv@q2a)v~sJI052WJlwrBLjrnW1_RJvCsk{R&?9pUqSVe7Bv_*G7aPKF5 zEfR@4^-e$JMsn~`fP$iOgTrv+U1Ela9L&Q#Pv zT1HV(@Qh_+4Dd>kN(ToQ8H|(1DFZz615P9)vMfK5si!1bW>(9)+`7qW^yduI)I`gd z7i0xy`?wxH@d_s752jA@@csLdKkdM(1mOOc>2+fedt7L@04LU<*HpDw0mxYAyUPu@ zhJD3bW4$6mTzBuW-k&5IGV{4;4qC>L|3WM@*Hwp*FZu99GBC4|C3V+(a)m#Adg$>7 zZHKW@*)MAuKYKpEuMQ%Tw_sPOQ)BH1k0(~**FdN_xORO6znH>%RT4;<6~_0~w)wxgu^wTH9BXZdd^EC}r$ zJRD|SuPlbyyCxh%820)Xx>h9^b=Uh6MAz)$jz{PHIVxJ(cv_H)e$-16+pij;sHN=a zdg4p`9`_wo&u+BOc4-3~#K_DUfD$&JsUdRU1Bb4_o&c@dbg>+yr>~Frhm9qQGc9Sx z?~ICrCk4@1{F5MI?t^qDf={&FGu2_a<2QoEWf#s|t_&`Qv=(iw33vz0ZYV=Fsi^ z3mr$~jkCVRqCIuI_*5a4V1qS&72fZ!ReK6AbsXQOnK9}tg*H3=AO&+NY}ynD2S;}8 z&}Jipt?yEs1Jgy1iHawL|7`$0aVwpG#%nACQ+*W8{kI#HUVLsUUnFHd)61lJi%~o~ z+ns^{LqoO7!o4F0ZeDuaUIB;h1w3jc%Q|KTERJ+4ke??MA_iIS-jR=O9&QAavykGX zzzCB*EHQO3pgkV50Ht~~mTIGb6<40#o_Dd1#-?!z^x7+vN?L@Zemv^Sf&G>E#&^F2 zHm)upk}C*l2__kyXwPpO61Yeq@wyqR)GX>e30p6t9#pBhp zNo%nECM#Ilp|JOXy&=897Abv_uZ-6m@7ER$(Hh9FGx!R^V9n1vnH*JLvT$G@{E16K z*u>h=5_G|EmrG6#$C6g~KsT3Stw-5D%tjiER|vIdr^G|8>|E0}tWKJ<7jRT)oRU@O zU$3C4k#7KF7z{J0jXFba!unyjnHIW`(sMD^+ z0OwT>_g2($mZ7ZMTrwGSmTU^Syxl~TMB$d7u_!;gOTIUhhNDrv+D%mhvOY}HQkvIB z@=Tj0iHnUkL=$Z*WX@#0HfTbG$1Z|BE-r3jQw>w=B)V+M4CwS556>T`zn7Tc_5dZN zh-IeX05QO}o*q8^B07eZ>i)+O-PSN17BCv@9HGJ<_#5+Ibihf90L-(ysR;C|2 zzQ#*vG}bI;4wJhzH?*hcDVW>MvyoAf3t}`%9)Zpjz1UCwU1yO}=c-3ya)W4*d@dio z5a2J?`DZ=uR)D7;Iw-}$Ac&SspxrxwUg-JsXubl$wddm~E<01gYw`{um&k;#xdE(( zbM5i=n0h(fpDEho#jF$k!%&JNADnw?(+KO@3s(>CE1=|GL6mUOPRZY`RQ zN2tsizEDjN&HPs>1x`#s*R`u@Z!@)Ic?NU01U46S4`l1qj zTV;7Y4ex$^`Mx;~p@?2gE_?(sYDeSpYijXe$#|t&x;6vKmc7{BvX_RH7?zc+s>Yek zc_?`DJT%Q7CT<>T_Sn2MydEYu&`0t5#3cIF{GWKCtLmpw8g` z-U;fpHg0>Ao?YgjT)jQTyRPe736k_xUO$xCJ}mECBX#;E{B?s9N%^omIevMyBC27S zku8EhU+OA{N`%3C{?5U$YQ8}1E4^|>R@?2x#f6wM3|PJ42?^o~3JO`v^0)iU%-4RI z;D}0{g3C~j3v^&k-(V&efhF2tfrkE_^+%CW->Ye@mdR{R6l_!E{ zSKjQ)7e4t1S5JM?fA2s@p2@8||FUXu>|DUJ#V{%RXVDb3RWw%EX}%atn{_oNr{i#X0tovnJeAYUIqN@ThX8^@qX50rTkfG8k4rk!}q-3e;(o&(k3Zvos!7X90?w>n`V6wHz|sU2cSby zym#LBh#Y@t3|~UQjqc3hLc2U(@iAu>11Y5&2B2~Xrb5Oa-_aDqDj}T7L>}d z{uLI+tX=EXZ$d$!aTB9u;c6EKoOw|t=dO#ISjDUa09K0DhoM8^2RP7Fd!86<@ z49)S^Me|+K=9l;eOZ5*CDqC8~oKGN22AC*7xw_8zjY|kHbz7G`N@9EWQqP^p#jitB zP5lAIls3d0Ik&l`)34(Vy@tYH~vymB3md6G;q^XE${;^pw{@RVC%Rog$~Fm@sxA<6J1IZ}MOeL7z^= z36IBQos5=$Hmw!YP8=?OL}j1T4nM8`y}Uk+{dQ@%Xo!D9R2azaKK0kL83k^MvM;r{nP_E z82Mkn@ACio+Z6>6`5hBgns1~}@XgxR|1cet5&lj>ZmEboQ>ca#dnzrV=d^(}4lC4B7uVOTN3JW- zM3cnRf8E(sAMPr0x;A~s7xu}_bxuQLsxD-$L*MDg`<%0#wvU=-CPSt;3KK`mS0ql( zD-JEU9TYmRu78mj9y!L972Djmup^=d`3U*Nd^Z*c6h?%xPT^0gKrh*FL#T+W!-4Gs zrGBc&U3OXB-51-@l4=CR5>0LB_w#ir)z>s#QvQ^HtIFW#yVdBT;jZdcD}&!`8Md~| zOU107XKHmWiRIF~B5-diqiEk7W_qrGbbvI&SqHIlg{U2c2jv^iI9=ay7U5tj@^3@& zP02_VD8G0X&FGI-u_ z($l6$m80hLs}B$bjeh}yP-$h|^JpCKF0^{v!&fE`&F{nZQG8X_oK>zXXH~2N#CCXI z!KS_sI`90JcT>~|p+?s^oqu*$Ve{O0aKPZmRRYjE_x3|#V^`UwQj_-^4EVY{tB0xTeQIn2Q1iiY z5z>bBehr+TTGH`FtmGso>-X*D+t;siPbWB*1;+5zd0tvpM&gq|{z!F4tO0gxTZ?;m zNU59fhdi^5U8*rATQS*wR44KFmf=}}dW2=`Jnuf10*rp6s^|pA+*4#iDmisdoZ1?R z2@%uPARI$C7tlFXzm%uHEPd13$4ET87h3LO_54zhq_!4vtmootQ#++df~QVKqJoPr zl`Z<~gtF|3Le6#VQ5$Ia0YN{y~JUh88Q;3&j!0o1`#OvsGWX4UtbFH6fXOUGfZfwn=U6SMF) zR!Ck=4aPhGL9Vi?Y#h!9D7ekyKT`#&6XU>UCGJWvz{If}O;OXBs&&mQMTV+91f@6B zkMD<%$$>Ipj9!R5six4Oy0DvNsKcvxzBB(il_o8%wq>dt2p^kBjEl=}sSyl!0$)cD zdY~{~r)h+B3tAmHV{FG@&aHR}Hwy0HbJq{DH>6=~=jVtQB~89zwb(LCr_40uG2+yE z?2|1Xt>$#atD{A%R3}}p$4y8*9g!8?Pbe8Yzj3rq1@xQg^oY+PWIjJx{@qN+Fe?fe z3(&Ve6~QMsxl|i8J^Bpm>p}J2nilb?mg%Co&dqn-c2nyenLD!qKtW(iH+*8u?6)5S zpha?EZ{FuI&l%IsOo}9I;-OIkky#0!aS3cUF1D+c-E3vtr|@D2|06ka)ZPH+0Bnk> zds@x)a-4$)*#`oQNd}<7-Q!Reu32vT>6o!{*BG>ocP{(+4hoJR*d9c=Tjs#kml* z^ggGBPIG}u+cPHG+lHis%Y?M;>DUlxD{M-o#4{rn;3HRYtIx5=zRuMQ^!;7Gum^O0 zYdL+Q*{zD~*Teg>gWEmyT7F%#N~W-D%)*mP3q}9@5!0=qslMusNvAtyveQFQ&4}j!kBQ@Z8N@GjIg+nR1tsk*g;d?Q+hYVmX+*Ri3sO( z>Ybq`9Oof>(iIS>de8(R#y<5-&}DBRy;-5%VUV=q!9|ZHS(v+`24plWZiJjU)b#p% z_0nE|>153LtJ7`YY*or^EzZ%#T9T8wEg~A-Oc$TTM0rJBQT5#{?86(v^@z13#5(IQ zkSOT-9X~>?drRWZMzNmBJ#lhu%z*Pgz5Z1XeFW@z!K~y(Da>ULzK0<*P3pqH1Cfb8Mx3WOV3pS)R6*vy2gO zR+@ii2Bted?Ic7VKyc?wpqR~MS8&+cl{2k)QPM$0wp1~}z~QBo?xdD2OiK>dy)-?r z5V9@mQuHHt!fo(pLfTRH*>aaI64eIUgoYG9X_Vo(+u-T3f=CU1RLVdmExYZpS1G&* z*Qc#GZd^ux zdH~-dTa$yOG7f*{ZX$slcxQy8Fok$$N5axM%udF^%43U`G_Pju`HPhDT>yh_O=N;G zuAUzjuc&8}!?o7~S%NiiYSoMkm%9~mq)M~PD1?B;jhkvh&eJdS;f0!0LCACI>Y>`C z1Vf7eWAu%xLx&Op$9rUGfg#4^QDl_dwerR3NVOWr5Y+png72!5(+w2Q31XX0Cc1}OrAN46i2ZC9qhQB2!Y6WH|rxQyZhxw)Q|fxqF`;!aqG@Sg4XXxh&G!i@hz{)03n()s3u z^yZ5U1XI%!Qgz2y@3DBdp~`kjSaYL;kxRUE5P6o@v#|kMy<=j)ds>g{b9zLHvu~zX z-VKCpTR+YmR|q0?DL&XB?e1Sq)FvHXmtc@{EuHx$RF4jp&7*9D)?K>s0LIDaIqi0o zRZfauj;cEqvl8rdZO103M!a4rj~HwI?5NSx`C_h>*R5)H5PZzg$`$o|FO1|ZvxCK} z*&q@c6FiO`+d#F?_tqG@exXKzr8`ir%Woz54@aWj6wNQFt~Umn^yS<_{D3guN=X)+ zFNuUe9S=;W`wWsD2v!!9`)19B5oS5A{&Wwb2Inf;JhQQ2>hG@^EoYw)dbHk*4p#Wv5rVvLPb4|-86hylr-%l34C|?m5-Pq% z5X@D|oOOZ2j7mj6FlJj?t_V{JIfA3{cx-F2nODc86BM;5o~TS~u(KoQUj7sgsm>Q5 z%s~;DWzNX{2P?3p9B`$Wl!abd9W z(t|3rY^XAbD^d#~k7V6_@vyW!_0Q=9!rjkuSjFe}H{U-}FYz+ZIQ_PCWb?EVxLAC~ z>auj9K6gCJ*YVzExZKLv`2>W?6Py5^ZBLf!MOF=%(lowMW+}Cs+Z03nm(ZPJo@lhTA|EhTIe0>ez;A4aef?o$9Z&@|L*8 zvJB&ADklZptz6`(>!rXbadj9R<&;J>6u zfbp`}4!90D4_voMQ=Yq3rM`V!&ub^vT@%`1bn)6@-i}m&NWiOF-d@tp*?0tTEP_>v zsivf0uk8B4;i`7+sjx+5L>wb;$h1-N&cbc*y6Q(!{44!zcm0fw6qXuh85G8buwyDwgzq@K4QdJ}Z(@k-yApO5A^e z|4Ta7eTbDcGjlng)e=_l>!)0zi+a@rYR#J1pfUgbBf-#)_U9XEJ!sN|UW~C?!or_( zYvcU5WeMgZ+}k;(M4yv-bGq>Ha~<~0SX(q790a6FacK-1Q@YHnC1`1Wo>?m!_lQ{@ zn$Vd&RJRS1O--@>N{Xq1tC_cpjwIGAB6_U}kEoY~th+Mbb!z8hWBWwKfqYTB)~>=+U~qsFyB!T*XGYB}tbJH=o0V9s zrg`mE#HDxC1O2fpcf=Qe%B?_XQ#Kdhcj2%Uv2nfGXJ60EKq|EVN5OU6=xn=KO~B+0 zqvi#DFt>V=cyJAGg8>hZ`+E;=k4Kp{$)aXRNv3Af+(*e_y@gzVdaSDUNz(93bU0pd z&uVag7SYL%?NlysSv`Y^nO{VlyvodT(5;He!s#9tb7c z_ZbmNOpJBJ;4GsFIoP!RPvy98jEX)KpYYNS=#|an1 zvixT8352gF!`F~0Q9UfHhx(3_!jeAc$YbQ&$?;t*6i-1#uM6Hj7h>AByU?|+aoQ0l zwh8}=`*|^}R+5mYp|9#0TG8w%tLeq+d#>a~YgT)F6prBMs2oAmW9ZVnF;HD*>+8A| zrRs&=grL~No*LQIg(g4G>y3gO>)Mcyf=xrA{e#0Jlp{235qPJ5ZZ)kJ3djo#eJgii z97ks*eUppi?)>b!>p!phQ`RU(X!he2D$=J#)#(Nl?ceLn*^tY`VT*6%|lG6i^zGR+JQJB&4LfySr0B zq>+%24gmpaX=#;`?go((@S?kfy-uI^dH1*XcOM>lqi~%uGplC(f8)y|%jG+BE;l4~ z6yEj4K;*V5M=Y8(%5$~Q`MCc}rWm2X6aN)&v7t1<9EX@^cNX60`w{AuZ`HBM7^tfg zG+BPeLB;&6)Rb_ntyZF}FZnEq%$BR6gZhkMuueYbZ&7Ak^uS+c8{y0dBQJJfC zRmGF4SZh7pscJ}xUH)Am$hA1tO=iLLHkAYJ`Q@QXW;6p+ZQ1v?0%>0{aVCBmOtqdBfGgz0|JM&1$@N?r&7cJf>D=XYTc0ze*W4YR=X4do%Py0lDf+&6 zNBAw*W&X*8#k^Mg&V1$3HF0^BB87wk!=JMYg%eSko$)4iX%TsbSZkB%zmI7!(~d!F z-MpWo_HmgaotBx1fEOp=;#@Q3VY(z|5>e>(!~wpK8=q)^YBqnNgOG2;<7{*9LyeTd zeD?Eqo#PoEJ6boEBc9=geJ#-mo-a~$U)9BQS(h!hi^I;kY=QRB$AhOgeKvgImM_y) z6}%PattnLl5iOj()~4lSeH3Hf0ZeiC zQ>4K77A1%hmZ5wdfeSI2wdaAn`qL(znh-o*oG0WuuVv)b zDx2b}T{lf(@kJ?xR^;!br@!hjvE@5=d-KdyW$R}e8uBiDCR9RuJ}j>~(%DH%umlF8 zEs+=<=SgNjx49*?2-pJY)V;PIA zC=kLJ(AUJTtZekuM%1y0bnVk7nS1UGLH^%|8;k*gZ?J~1Df1rmCW}A0qd1`wmtz#1 zmPP-}d)VSEvE_wCRB>Ke`+!`|sr&wjY7K~e>h9Ot7Mt_c)S0#&o)Yh$E(@hS@|t)d^28X5(d$;krl-={ z$D_H-8|=_lH_TAtI*!tHr?FCN&3sGe+JSmD_H$X0EM$&@BpJsam1)l#WYt3O4PzvV z5Zs=0q-Cslu0+mAv(B?t2p0lNYaW)-yfL z46d-w_}wHft|06DG^B53{5oai!*Z+{P3oK-i`Jz2dN`xZqxQyj>eZiH$3_J zhRJn%Dv+gK2!qle7k-O~pr-R*`B46L$9=Pm&CPPm+s4P|aUDuHRF2!Z z60~##|M`JnL&^?J%82jot!P{&Zuj32MNZcE`ThGOf80!;=-VAaq*M}8|MTG@%kLKd z=ilJR*=gWM|NEtxWHjD?@4>%67H$H$8|1eP1__z}`FZ$KF*@bH|3K-VL(TQSAAlh( z;qbp7fSdH^U{OS4eS;=cv|+VewxEH2od4kn_N<^Qqp(wom8;Mzwo)Sv6t2iEJn5VY z96=094{TxA$7X+q^VA-j$eh^6Zp!-Jq$5gXSBTU(v2n^%BIch>n@>-tJDR%jqfGti zpt`BZSb`S5B>h#yhwf&3=zVwE z)jR&NC1`BVR`$md&ktq4eBex96-HNxUSBI)3K<;{F<_k0?1&ze{5h`v?b@>R5H~fY zM>d6)J=e2_?dyHkkC!yjw4{jN^|bg-VA+pX;7B`V4L(okyER;vQx-S!-a9T{d8heN z$uKt~3_Ah7@_OS-V^H7dfx7H$x9Hh~qK5B`$*&elQPF$Z^hB9iAI00Z1i5cGI2rLQ z8ts`4UsrlqZ;m*`O2(eJ2J@=5p>k*2H*(Y+pXY_1d|6R2=}qYfzD-quQ?0G*wNC(^ zePO10b{@s&S(+G@l7Px-F*a1Hioq)EY+xuB?DDDuV3epgDA%2y3|nPCmve)ueYAC!GH* zzxX-I@@WkGGJGm=r!nYd9unLA6i-PK4=a0~0PlP7ggHBd-qTNB@~_~P0YZ<|i0Io? z3GD8y_q6OTvzc^%)my1T`GS$vY#1%-2>D%QHSryEArrOEkCLBR8=>N)V>fvEotkEF~x4VkT5CR+-u{~Xa2PNgtGJDZF%8s+oA@;q6@wC4lG)K7P zi`%&MZF73viP@nAL$WPw34#(M&|jyx|4tlVcfp>0kLxANOlUMy>x?iyK<0t4SAJ^O z(LZ`@JbV6^I=bU-WMAdfk4p6)r3pWt68)$ov`-8l55G=IOC_WD+b5{wb+ge|8}?tU z$##k1g!tFuCq51EtdpIUUhN1x7@~NK7fgpq8+~=YBaq{%;Qh4w@5B`-UdrJ~%i+nI z9Arn)KmBI+c8rY}3yYjRn6kAM{}zRey*&$v1ffScno>CM*S4EojTUi(CM?zW6)$Bf zfW%Six~YT6AVL0-ot+&UAFtS05}Wi#vR;Sj=Op)^SH3Fgo1ck(l>I4H$LDnkU}PKb zHYXir=f0+;o*1K0r~K^`dKTsGv)4Q?Gb$Zb{K!d1M`caWZoeN5yp#X%NGLJ#DWSXs zHDy%i8Fpfeutvah5i!mjDty1%50aeucS1j6_{Rh_(Z5@_kB(WV<>3jMuJ^^qd6Efw zRk&d}H8pX4eRz~sXxpqjZs2v#hj#tp1@@KxM>o_(`Dhz({4$&MJ5xULNQ>@qUn|!MDhkJQ zO_rbi)A9MnQD%rrdW?83CN1l1wLskcqWl&G^Y7T`Mb6lL1+qC9bVL4%=6^Eng|@HG zi9|nVAN_->C3SJ&B?oO|M^B%rp5SG8*U~5ndHLI*cY~*?`+G~%5Hu+;7eG72YAxu_ zb$YmIds1xKpksmh^J)J$gbwE-%sKQ;m&G?5R)eR1*wBwe`8XPIlKFSNczO~y*}BZW zejLgeW8jo-yIWnEW6x(UtxYof?7220&U5NS3*xuaJ5}r<6_U*F+bCr3NMvKsDGa|b z5V?by8NxA%9{<)#HplBnN0*_TJ|)~!&W8`Lznl0hFE3XUCF5p#ejG9f0T@twzM=LJ z5s5{lBIQA*PHSkAZp^MXg8IDT zY_#f};Dp^SB#I{L_1iW^Ml6nH=20b801X7-?nqWOb7c6hsL52cyY?ng=D1-FS;IWYE% z%i~YupvwdS9x9@FwPn>IDp}w)sI43v9Xmj_2qMV(`ud!yo!#Am%2J=BRau`-MAi@T zOUI4+T^TD5qDd-$T(bW1Xgsp_GP&Cx4In%NL=5J2zoWn2pfG|_0`+O%G8G{f$KP}* zT8!b-OP>x;#j_Pevg98`VdUq}?~YMarHDL`U`?bYw)}gw--5-kG(n@GZ`~o2{su=f zLHWcRos#xd2ee;ywJd~TFl9la5HMo{+NWoKH|;oK?SY+u$pW%IS~|Mip41O!$+Me% z)Rpx*XWjz)`}-gw_&&F#j|%Qv7FJgNczjHR9lHx2Jp2Dl}Z=TDkdO(VU7a}6wvTzkG(ON)G zSC%#Eev~+9#M!E^2~)=u(VN&!0cyv@ut& zT%OQFzeJQ#FAN}DiJ&t6SmHi_W zn)SvM@d&zKkq(xbOv%t3uh6Z>sWL%btIw}p`F20R@A}jAK1P*Cqk$ZXC1VRto|l*j zu|T~jMT@7duCB&-7qrwI$=J{y4vHt*7|ft%-vP6hb(aM@&Lr>J%rP})!bNaoi%sXK zCgwz`vo%uzq!C?>F-}G|4p(T8vVo0jfDAF7u;3}Yk0?#k+;c|fFeoPx^}OALaeS0G z_0ccCTkMIdOKF}P`T!?+1u!7(sxY8_H~=|;S?}wmpWdg|fX1n{QWpw7HwU3}3dq~L z)A*7>>?{^Th`@dra#OxH9RBPA@X`kftW;R5J1bd{2o) zp4Q;c0!V`61N{v|DL$Hk+|c}6CRXP^N(e{<#G%C#{w3G0T?1?Hy2=_MaPG!`aptI` zYz%GqfFfvo84vNeE{w;RwksJPt<t(f#Pe>@pZU(WHaquJVBK#1M^EC zz!xABl`D6H=l@h#xVD4V3y3ygwzWaT2Lu*2H&9pCIl04&S@1<=+EZ{O?XD`kVQ|!KDY6SUZ(le@khQ-8{y zWy)G3Xy_wYd4$KeR^C_Uwrx<YtuD~kQMFS&(Gfhc{?-UfqMB4wLs|&0anPU{!<1rpnEqkf zfT01aHf~hEQm<4EWW-5MeGRKQ$q0theIfkW7eE;RUt@;c4>!}*1F$*nK!9-vYy_Zl z2DwvI_<$+}_Sqi3wMzYaO*Lzx6e9gah<30_Y`)B0?}a1*Fpl}oX7D`g$nC&1UU1?j z;;>49B{i^F1k4W5+ywOTpN2*9p9BNIO%?TSQb|s(zle`63E(Bf6h3Dxz47lAHhcQ>@M!Lq&nIV2YX|Ps`n|!IjM}xaKmjo$lZgk&4s%KU&J7@P z(Bfh++e~vJl)d@wFaM@7bUTPVB3@2jG1n#uSh3Z4wf#ay;I9)tu57H}bTVWb!5f+!Hi(b-hfU(NJ1U9sFDdsI<%8K{uJeJAp|v%)f` zC{>d}^+N*xQo>;#chxCLI++8>uEY0QSTo3!L0+H6=UIUx{OF;1_ z3!OR1OxTIt=K}7H*SoU;mSuoD<;gQ(6Y?MZLQ8wKBa!CuhXEvPU%@ivIIF>k8dG!G z2Lm%CRF9cHM*l{JZ<+>eMHZ~ZHn@yjc%S(ri@@BR%^Zp>l}B^aC6Iwhv?@bG~mO#?$+ z{w~8?bIl>`3rW2^11Yh@1VW^L5J-e=<1sCa0Vz(9Fv>2X15(D03iBbvSODb&*7Rcp zz6i_!HyEsA;AM2efEr+wQSsFjXC-Iq&!F1(AH?+69k zf-MSCYw~W83SAmspeo&kfCNik7nP11DK%5*eR;@$dDVq$)R;lI5AF^GZxKP<^X z*Br9=<{Q);rr+Gd>Aey0>c3_PW zL1>XM3^`8Bq6ixaht)euG9jnTMkQn|-lB-e&xacpL&pyq*Sqi1KY23Bonqq*@0}GKZgI_T;w!$dN9W8WbBDGO{v`yKfpC3C z@NO}Z+5eXOBsDw_5RTdbH1i#k&WtP+w_!BHSZLPg;xE54yg$)!;#P34l{gCt;xINI z)qumrem4CTo~s-FL>7pQJU%c~UIRS{{5vd5sz@GRGRy5q9Wk|ssC%iQz48tga!i; zHAeuU?w#t;z&5@_G#)nMM#SmC7 zf~tl32r{MI8g%~6S=#87OHko?sjZy~hN?w=B@zr3;H%^>HF%hbIU?^RZ4(JW2T=Qn z5gq1^C2zK=-aXsx1FEwEQQBxXOur*wP3ILCBOFA?NG-^safL3y2eS%uVtPTQkHvd{=GMf?`u9xhBNMA;peVcvs9!Jh)*9wIq+$e5++KGcYMkb zL_2K=;tXPQFlo=++05=vYQb#2hCrq%EOT$E| znCiE#z#`EHcoFh6q;LladNqi zs#fP+>9vKxf@KtG*SXk3F5v(Mo(%#`cx;0IBaNYQWF-Bk zQ-;0kdW1s`75@=#Qc4kl5qM_0G`9z&o>hg0-T(qA5zrW2gXlyeDUF4i z673h-GU#vUzS<5L&2S=Oc>2(vV{nxnFob9j@sWbVErIzwCih>5{{^fu_^@^^NUD$k z`55?oJur0Ow1tAbKh4t6K|C>$(JsO8WFTE4vER0LVVl`%oO!fZy8s?Z1~JMFhzsXG zU1LK))g49<66s|BC;edaIe!KGRQNEyUL;ThTv!btC)H{kvXLbDgy_Y35Ly>RfKZGn z`f18eTmz47j8(Z(jWEZI0;-cmi4rEdH?n3?w zW>{nTZe)AS$)5ru0dHP`(}_Oz&_Y{;_hw(CHSM+#9wdD!Q6|?NhMPT9%G0AE4M|=A z+3g60f!mSol{gX@1G0Nvi!BK(h8jieAI4A!&6mdS$q5-4!>5o3ibGKrJnR^Etc@dk zwkQgPx|NIuja~fdkrZdY(2>Rd3ILwc)dE1BL;mkS*|7&U)!JX+&jIqB7ntGJ1DaI; zvhH4#1`_5psA@^KGF$yuYkm1C#Z5kS9P6e!d`ZF64bA*)Gs9gZysARR@RS(d0AwymvMvKXr_S~TKjL#T=pBiY^D#y#GoGfba=V*A#}h3BYr_6GUkRr0fBeGLL44MGm8`v zZh3E^LDH=b*$*tmLHf?dJbQ)irdPAoVL)n$Jx6~0ji_5T(yl<#Nj(oT0r36IH@wO{>Fh;X`q?6#Mi7<%O7e+mC4A?Y6Rs5)lJ%-7Y8J2u_jF%H!P?I? z$54FuKC`j$e-m~HLtYwWl1L>mXUs~6P9yw!+!X6Yb*>?pH#OipJ zb@IPy`^h^o<+W4?&!zH-ZsA*eAMM$NoQji@l2l5p;Du%m&_f`v2UCYwWb^{=>GBKt zllA@x(Qvj#lvB{A%bk#`kg8fVrN5HF_!UgoeBJMIs!V&I_W>J}RfeSH_aDPMeYMOp zE2s>8Q6EL2E(7HYCqpB?DWo_E9M~S%TpE%tv=rpoLt#>jSdPtAOUrE;E<0(e1Fz?-%hlybZb`m^uheKM5ZdAVd|Od$^+ zu`RojjRR)XfF*)A%4Rvri2q{sH^%Apf{{)rv2_4@&aZvJyj)0`HE|JWnby0fE4EnI z(R|=j5W@gr<}l*lD28og@POWluUvd@WZ`9+LbU?h_xXpBQ~Vcm$mAW$ zk(Nqi%}%C5CFjVd_d@8+g(@tcTob&FarFpdvO2D^G|TV)m}f`r0>4cKPKjV6tWU7d4EtS*czULS_Q&+ zA3(-?c6(C4BLrxt_9M!w<^=CJB>~6DRnl;fG^$TpE=MmykNsxmYtYyel{GB zCr5$d!5s5|c!Cn^iv|J3>xC?dxDg`3t@G5;5^vT?8TZ6OGxf?fI=VXA7Pf&>{dv-A zW#1!Zqgz5{K`^>&>AOMcyZ7%$GMbXpKZb+>jhq$Y1jNSwOH-E9EEw1V0X!z` z27!kKi0yq`GkZ;5a%86>vK8YR8tgzkd{pqMusD++cle~pi6ocrW`j&**Q!XaqFvn# zedrq=9+DUGTZ@Y(=dN`?9fj>4pdHHO;=!21K9EiI!nRw|xoeHqU)GES$?T+2!SueM zzUAi4Ly7~u8v&n6O6bVn%5NUt4i|w957-mA6GF}3lGz9V;DZSI z%+??51W75r2V7B7v~Z}0MZP5L0$qmCHLsu`tGM`y<9&5htE#4$w)SIwAHK#Dk2~v5 zyBvS^$9rf=O{nhrkq31I&wObAr1%--Oz3=rwjqKsi~QQPYA!aDVSQGEeg?HYk3u*L zC-u#c(`Q%TAtR9z9!{AteRe%F7n)`pRz0iprh(V;W2N>DLHyNJuS!LN+9$?ZHE>3@ zTIbpMoejg&lV?xEgmopx zjRJO;)E(*UU~0vqOqR?L>N&SlVbN(Bber6pk?rAAG2t)?s@oB}$9~Tv|tgl z1BLAkxx4eHa)=*bL!k+dHbC4Igx?Y{I1ryfDg}r_PP<>10586)s2E;dOKdBR4V&=w z{JO~v_G>1JCYn!?28l0WiR;7W{f7MvoKn}ZLUF{J526&58wXJe=jZ22Tx7ha6V`2LPA=Z%~>p z2EDT@uQ>l>8!EfDs(7So(1v5KEWut~>WkF%GAs|R>tv#-IJp!36-;JU>3k-5q783m z5+;~n|Ckdt??VSW*8_8=G>5*-n#(>&r6siWOurXQ$F<=zOPi=7e~I9W-T3{DRHp~q zf%|#KwZu}?5+9ZR7;NW^*;sX<3?=SBr$^L-SgE;4x^1zAqb!y;rAPW*D)<5QR<~-n zxE7ag>FMcH9%G}1KM48}a##^I2i?jA821a?hO`fWm4tMn%o(ME6adUu$vY1=aw-bL z^8du~>2%YQ)jXl9c|ukrL*S}HTz8FB<+CQiw9B;uiMgT?%(&v0ne-p>KhSTTPcu4b z-*9>RMh3mOu(`>$0Vkzubj(kQ_)l|CNmB>@Rbrcxn5d?(csEsiaH&A=eGEh(UzVG>ZpWEU(ML%IO)?fDTN8S*RH~L00Q-fq78D`(D?d+ z;otFO4~yCvn?!aci~)5Wl)5J&gfy@Cfxh1j{&1qg9Iwu0<70hcEZY0`O751LDPK4r zn>dsgx-rsDi}I1j_)?ls(Itkv-5~uEWV*nSyp<4cM1&2$U_=<>j#BW?!b%m>lo%+1gF{a|(ZNxKmrvl&#C2hHs*zv(e=71??r2OgP4ry$2(!67e5Y=Dg#D|a0$?)I%4o7w|v z#gFG=cilPIxJ=NvXwjMrX&rWo7V+z#Ij5sE$u2Q$T>AQ2TX)|a%BY=Y(ER7Ldaoi$ zcH8=JJwcGvtlIG3@I6{K&>Cf(WNrE*dfjIs0vB~p=b2nbh4zf7C4u4f0!CNiVsQFEQ zeY|!jW;0Q(g7;g`1sNr=szlC*&RmDyj`qe|BdD*2wqD2X#l7l5L;3HCnpOCA0ubxdpZo9hC4|9)%*CGe}s6 z?7AQIx;73mYzkrwG)eS@=oIpJ$RHj7(QzfB^YPi z@9Ml?7a*vva@|<{Gx3SeVSn1%y+@5ky??qF_v2{AiECxYtpLdo=LI!3Pho0 z0{F&0^xx0rVng-((K6`k{BBnbUuW1IK}&3D1(5%jW3g%nNcqi4k4xQu`J%h6X2%~v z1)DZ*oE54}!uCOn)EZ28C-CR5?HTf7l(X85hUNXeOEsz{igA-V{hUIE(>^<$W!>)6ylHGCQ9`AXp zsuXcT4>Ult4No`*ZouqV+qnkq?@!OJsw?8@DQ3r4MxGZ^o(xL@)hF-<(bk_ zN5p~j3*-#avo;X|Q=oEI) z<>A^Kl7wOO(4ASulce0I8uo4d^} z03hfMAa#6nrfqLc z(7FdL?1)z4ow5GsnaRB7Yb^uvzFyTjZ&37sL3<+btoe3fJ9-HXzRby%XI2NJyT;+^ zC0^fhYS<@}pEl7YLjeRfU~UPVy+gKly5d#g;F$-Bi`z_%^P4m>|A0uAa+W2Org`Ym@8^6F_`qsUe3EXGxs%heq$jAn}A&NmQ?$)o@@UTymC7e z8_$y1nY-C znzhwI2*5IJZ2F<+JDA)0zj2z6}B8>9l(%W(pT)WQWi3hb~zuipFn3+RvAmy6$uzzcfi_vHB2E z+PoL`WK=$-#8A93V*WCB=q^DSV`{v30&Bi&v5zwUdr)X)kC-2*hXne6^#CvnaG zbTfa&nb|nj_u|Yq(U>G!Ez&?-EDH`1Kn^52!zfqr$X$ZSp902eD;eQrqhpnnX* zAa+ca;BO`{xO+v9EY@hh+kj<=I(5VVQnrtJ~WSNy?bl-IXQ}9oW;chHTi` zrQfZxlGt-h+p?_uU?qn9Lz=*zxPanIx2V%z`Z`;jB%Ta4WD#&@4?3s^jFRkF6}PEk z#qY>wgC-4=!%EfH&E)%cz4>3(jcO^+c^%WAdAQYCjG}&2CP6^PP@&1yYrI_e?O59J zEjw*y#blKXNo=#ZpM#!)355cA@aL}d#CAQ`=1u4K&TF?`e8OtSpwUpNvP-~%>HVcA zQG!L=gz8C5sd#em8vSDQRZf*V8y-ff{oa+sCyXsJ9Dg1#(CSgl+x%l(pIe4F$2On0%t8}2;v0b+ zHU!ClAD82AJJ`eOn#L0fHbiE#6#fs=3L|xHrzQRrsY-VOzCk-(!h1w0n$?0{{!=TY?+}`EAgB36%L0?CElE49$GP&DkN_4M zw(5f6Fna;kfEvpK+&-(AQ{mfh8oM!_yvp(ZjNXa1Hs`+=*k$z5{)^WFCT)MF7IXg` zo>Xo}f2Pw`1}mMNSVSdD9y&G+WpXO#SUcWF;;Npuj})Z5_G_Pn@%WzXeiP|`&B#Vx zPFK#Cgte%~+MwZ3M7vXX*P$?noaflu5?}9gbEjU=d$#M<-q{=}Qt|{54)=%UUOXVp zqP=68&pa1t9L-*LmJt}U;igCs8ex|l4%H$-u5l9*r`k9l5|WGFih%VF)<08PbR>8U z>*hb(p4rYO$LAD9(n;h!v=H8`h-mEVJ~6V0>t>?PTZWse+8dY9iT&+r1>OPif99eBhGH+vsC! zWw}eP!r9oWac^WgrhiV-nzHs=M25GqW&~L<-XoTNPMs4iF2tN~B6$maL~3=8BkiUh z+oQ!={2gL%NL|~pS>K@)=)2_!2m6yh(#wjeZUn-1myQhIz7o=Tg%k~oHQ(W8%A)wh zSTj}2iT1|VRBrH?TiNewY&NQ0AxJ9bZyQR)dlScZC0d&97K5_2y>Zj=LejadOH=;f zoZr_rxBO&md9%nV1CiBVmARKWZkjZIL(@(E_PS=m*UqpnO7w0+=i2Y37*4KsE`NflhZgT7f1X)H5186%ZDp-EwL$kOAfUrE%d7P#Qh&cSxGI|RQ z^EC#>HEH_aDebi0X;DaAbYV{G-eV0m8O?3;x?Ukg|Fo%rs$g1+s-1l*Pk2V~h9Ydn({*wj%_k2N5Ck@u2wG2+f_XU;oPh| zIzOJ5g7T~(w}bZem~I6re_Qx*w!t9X4u`>UE~hxUEk=nU+BZ%Uki#`Z3+A$ut?UQh zxGHoBI;m-8)4GxEW%AUN6~=Hpb@FLZPZ@KOf$GG4?rx8mH42fsLX&F+L_0IASQ%`{ z&K7dMHpKM1kf^^z+4`89@vICbfJfDebb)_oxg%`%oem7l~)VjzM7G0zCFOb^Jqssu{OFp zTI!A08=~9K-h2ZiU&IsMy!2sMtut>&G5iVDcY!x=IyE-kOW)99|MHz;$u-nV(@ zIZaH4a)$&C=Kb1$z}x$AMK!G{h0McAqdX#Auea_igmy|WjJoH%e9d#mFzS-A$s?-9 znI9?N8om^`YBhA(SWXplvE008125qc(%S(?wzPH)d@1UC^5Lu5!5Mj>3Tvq){-Yts z0aff=j15XlI@e9C=OGiFNrkWaW>139qw(+9ePdZ9>3-!wAJccs)WNLn>Cq#UP9{hC zlX<0VPd7P=ny@CN*1>mDslMy(t*<@D`z;q9Xc}D&(rO5i&b^VGQsTkG@mpNt+FJ$I z@if)%8|M4BzL~n#s=bfuYDZ`LLdl;rfmW+4H@*I?W{L8PnAr`vhZri4R`KqtZOXNW zzt;>9y{VgHQo1X}a5u?#MAbM^RC7$w)f= zNcVXbueoN_dY6RGA=TfEM$0)dML&eqAykVqrN8cFyVr#)R0&v|R^*U2Z)H{OrFA=) zaAF!2izydP$6=>Nq$+jq>#qN7MH8m@x>3Qlgkq37vwE=Fx{9^V8Y_MwPJVVSsB^K2 zI(q1}t$dOhSHSQzZf9e2bH}r7GfalCCt{6^_vo*mlqNU!+ZhE*?T0m?1$DYTn?y~! z#~Xb_*Hbltx$vZm|%6)rio-Wf~R zD4k+cgE9JiblRAg+5Tp+M+_DMW+P!;Q&St$*28k$LR}a)ZW#P{M|lSIk)JrNh9bFg zRln~#E+?fT16^S7{W9S_l5dA}GRR*sN_PC3B)&CCX+fjvjI$gSe){S2Gn z_sR-3rBNy>9jWlF5|Xq8DkR6(*>ov7es}apyS_@wX8U}wNE9lKt(z=^3SV56K6{pX zDY@LZv!W{B#GTV}fnO$8*`SJNLRYOvQr6Z zgk3wRAj)|0#GPH2&c{_Axtf|QN%oW)`HVJsC>_tI_0?gYFJZF%e7bY=05ALf6PbHF z?i)ARScV?D8$=PsEPYQVtv@ab$SB8Fv$BI@*vskiK2OX|E{BJ`5|W)<9c>yjx7+|H ztWu;AAd_q9VIqj@|L}2K%8^@pdwu2VWB%k5qH?ibS}xW^y>z`c>ae*wqS@Od_%CZ} zNJB)ve>#%?L|{?z@bMUpPP=o+n7!d(I4|d#pm*c4X(7%d{YL%nCVPI&49qpI${;#b z0XPZz@}EnhbYUh+WAY-FS;=H5%L^~;+%BGb8{f3Av+>$|Q62Rvm3WP*Y)jM3{?KH9 zv)2&Ke(6dM$z6iDfGr^w!8i07`qo=T|HAX^(iAEAkGmw`FDn71@x<@lGADkj(!-! zalM#{B5wwMZ`CIrDF1N3==2u9R6e7=9A2qHLnnjkYWBi=Cqcc>SaTdG7Q~vbsFt-$ zZ>&J;x+(Qq^77ZIy2z)Twi@a*sPdW0tu~jC59K~xBhLq?*3Rq}Fm#C0x~cx&`I4o| zc&Q^pgM1_Tt0J0bnad7+plASlO(AMNi#MbC<t@5YO-T#G$}92O=HMl5P-e;U6y60_U<<;mA{`tTJI zK3g!&Y5dl9L?o)aB$fe;4+qaE)itprgTs40X%`0XUNWs$5A4s3_ee#c|C%!7DkAR6 zFd)0B$g1I#NL+*E9FAUbr~G|KLG|vpgv()();i9=0_S(ys_F=*#LXsk&v)*D#uzzY zuv&OKcuSs*|4DSiwd_g@CMWEzrBE6DH73Ta7Om63^CqqUsrB1K1}s0arRg}0?qJSb zIU}SX>4;pdNueJa|f{g_`AYx$mC-ZCLVQ zJs$eW9!pI)Mf0Yw?bdfIS7!J916oT=xQg&&9!-;iC03X*9Go+nuxRfZpQ!IwU>W{? zx)F~)d+vSS5t5y3#oO55UErEW6s1&c9;JbKah@DFC>fQ4frVuREe3GHd^h6x`y(oT z%uISVHKBj~LcTzplIxRuE`2arx4FlE;`~Q!>{oGRj*r*rSeQCzpnFqKmaCg>@tTWq zR##qy($2yh1(%Lf3JCf)R(#MKC3RhXuPrtb9O_pPAJ6sQqBpt`%St1fd`ipvgg&D9 zoAyL(X-9b>^DMJyYvcpf_$~@ApG(ZVE}Zg{^o%Yyr(|tRr#h@fPQ)M#7}qE@eQ#3g zbfNG&EUh^ZkAxF06cotk??3r0;neXkMm-7h%V}>yEIVcgjSF7Ba?P#E;>*r>5@0jC zBGTv0%&%=<_MT3~S49cVizKG$mhUiBs}YeBX%%R2y`I?6dogLQ@X`tEEsp*xD{A7J zFl+bL>Fq8GLMxX>KJOa=O5bDigXrHjcl;g-u;SMisVE7woPV%-*RARzGR%QbHz#c| zdrqRTqjMP?c%<%6w1A3(o*g2;L=si&rSL~5%(eN%XEpf?Z?}|L_&Lf3z9iMH$B_vH z3@r&!zIS+e>yV^!b5O?6k$d2Wv6SS>)#n~HX-tacZpLn`L`&D>a#J5ni?zZsrT;j1 z-H_{<$?F(`>y4Z#t!#dH49rQ#toziklx;Rg0-nEr1NZZ2P$nx@;@DC_EA`K=^!joH zEhVKd9QdbFtTmA{xhR7g33#f0%*Yql%;x9mo%52l{qKc5GF&Sb6ze14>-9 zf;RH=x@8=%?Rc97b_pEGs%?j8$fl``9@?+yM=1gJEG()WGU7(zuN% z7vPvp|DZ9SNNS8Xazp8j^G0zd4)rUX4tXj5{r;lMWc}{X{d~%K*6ZtzwPn%cp9Y); z?56Xa`w8XzN?SU7r<^qM%Yjvr)$P~+L)BS8Wwk|X+rkzRR0Qc15Rh(AKw3Z=M37dx zJ48yPyFt1^q+7a6x~02Q@}C>e{l~py9338Ge|zt5tyyc%=PkeS_14#^eaGURxpi8s zy`E?0+PKgOu9jDKsXL?aqpVVyoB2$HYV1_0Y8){gX8`z5UI#v##bb}d>X>uE$;GNm z{GSqsLh`*FN{?^u+^JJ9egRQha8z4_MZ-V_MVPxlTEKS;Q?ByJUF%PbB`CV8n1EII*cKN9Q`YJkhN8eoYgT zm#Pm7sEpdUp5t_APwdOg>kFs%7IBr=HoM}VHATtqPA$_s*mFF9C}-?!1;1UPJm{+1 zdL-Yy1`F;{Lx}abIsH4^Ey}ri1FUHRj94Pd3aSbQy89 zPod+Q72#+eMaC=?#&Kjs8C4-7V@2sx17xJ;weo~IOI!I&7W(4k$G6)c1hh9}9Ay~) zkT3nQ08KT7RjfPy zBk#^4u%^Rv#^vhL?y)WI#wvGXpavV~$z)~wWK<)Bwsd<7xE&Lr3&%0(8MM)vXX-+~aH>*E`QVFlahP4MQ=u-)xH$%8 z$Tt{g?747T;wMY9_389hO}_74$`gWPR0TB@wG@@l|L!3_NUDOGjhdYFj3*p>P7e=~ zoTRlWHAVtIEmH5v&p0eEq=qwpz)r*v2*QbIr@~Mngh^t*BB%Q9p?LE<7S&r%2OV(W zPkV{8Zsg~LzxK>?74a%J%ch#i)l{G6-=^H&l>d8m9s8aRW!Gly5T?KAT)PsR*U&Eo zL-DGJOBR<7?v?t{-O{lBb9|#Yvw5b-vDjo`&dPTB=rn$EcyE#Bdc)m}M@Ep~O5`{O z79Qlx!QYrl+-1u(7?P7!7-!MUUE}19Yp4#;d67STG!@Ho)PGiFLVG}Br3KE)q3((e zu(Rn~_bRFf$E#~$i$tJd3V&5 zF8gx6(Gjcf>7J5%f7<%W`m59GC;IyWg5-;jR=YejbjjzizpdC8#Z*g)pKtzBiu2l* zwVU{TWvrjWw>)qfUd74*%iVS+R(wO6rZh`f20s+*5MSUT@1Ane^KwiOX-S9k9J-0vvBCW8%Md>-TM& zBhqTTMz5{X^dk+eipM0JF9wYr)eB!vXmBoxv znMJ{u{|fn?vBGEQ3CVlRnCV^Z2R`OL!KN!Ax38R%aGE9t-nu#`<}_Nrq<*ly9%V$7 z=M`+1EBl*Grgg^YZGc5%OXPTwHm%0i^`{uu%k-?gpAwMM3ADDZO-M){9UUP(iaiB< zXs+7Fy)CyQ3bs~FG|H}9%q`eC&chF~y>uBeQVCu2vla)kouTF?Ryk|$8&yuK5627NWe4{2q9;L-2hlHa(rA{uF^%{MKosKG_&-tgiV(Sc8pTVyx6%x^lFjy~o zc!WF6*xS19eN@*gq`jRU?D~>tA2ZY}Dd~$1pPgMKzDyfSxMJM7ot)MfEO9~C z(zUZPi0sx~PWi$}Km6o4B14K1)G^ty74ghdyS+N)j`+Jld{WFlsZ!mYi`^QTc7d-Nz0xs;sH(i;#8M-tHfx@Nd^i~Gx(1Cz^Iz}&JLH0D| z?d1j4f!Iv8(flgCx(IE1h`*-i@g(|{mdgfJC^Y@is5P9*T!`7k=if-1wKbP9J$_`W za1vbJJN9%Q>n+uv`3E`+nL4{80$9{Ea{75aJn{QC@XJ&@Tc)SICiTIIC{}l=P`x!B z|G=hG)o;3U^L2jc<;}LtDo*ptW0a|!8C2z$#4hIr8Hma<3|&gf$<41xLYeBunYl}W zA>sNRP3=!)+EG}A31_}EQ3=5m5p33EQo=KT0~c}~V-wv370vYT85!CKB{h?DP11{u zt$o9=pa!MMCpyaHrd@px{cH-Ol56>GPkz zxK83amiQgTpN_1*TDL6zBumG%;I2Q>J<&{p9y@9IwWp0G@6+?(5)0^Jf^<6@wDe~b*KI*X z>y@itWO9>fI7bo-+am#VmqPRYqXb#X!}*WQ2M3-_AI;F#7OEnQ)*TI3qjQ#ee2#@_ z2U*yzd=(>_@@%u)TueDdYGGUO%i(x2=1KOlo-QVGU$eH&<@%a*GQ4NBn(z0p@Sl1r zQxfJn+i)C}T2$yh>zR-(9PBL4;*vKj(s9uH*twwe^Eo%1DPNQq1WdC%8eD!W0^+yZIJBGV(hvB3^TuBMr?qGe- z@);hzr|YO~gMTu^3n+?7gjf|SH_oodu*qc2gz)%ohOO)9J!68#D@*ag-L3vG4J-DD z3R{i=G69Ve@=~fAUDEThu*Tvh(-L;(E7?D%s+2p)eItXVC@3R>Y0ee~Pu6({P|&_h zeGh0`oOoH<7tlqWS=Z7PVbh!(cwMhGCil*GY<4An=Yh5E5~OvH7RjfgbnKsHo0|-l z3oMtDT9kcQQRC1!ZnN1XW=Q?k8OjyIn@rNsYRo!iY&oM9*oNYp(fWMUuaEmWZ{d19 zpPx9r#Fv?3E(^aPqL@s@woBGW=k4}qQ6UoeJ8DM?D3q^9g_%&UU3&qgZc8nu7tcHpl#X zuSn(d7*Z_-wHgEt+^WlZJ5tPVt=6U%+qa&Lowong65pw^=U^ma54Ncb9IIU309R6` z>`zL|vg3^*=jOF1{ZJ!Z8mjZ~R;Yc!2VBC~O5P+pv<?Kmb?$0YW?Kqa+|E4M!2LUB z3(xwyZ4aqFRPtdP?wfJbnA;WYI)2Q0&K-AQPr|-E5T>7hBcE@W8*@;Vd5k_&Ncwmk zJ9RdSjr-ZG@nCt1(!y>V!`Q8uR34^Y$%%BKg=sGfxg+vsNs15eG7>u{FAMAk^ptx& zOur^~u9m8e%1k`j63ZxS86Ya5(Bisf!xeAFA?E88|b@0Rn4`54i<$4hN_Y zzKy5h9F{br;)XMMvVLj>1CFd5*&H1_#V0}O4&(i$(KO@&nGa$V2WNloQ0}}KUas=- zz3;o=m9E;C@##U@t=U|cv({K?yOOh=mA^D|9HFbKwWpKg8%qa-eN7GzxWlddafdm6 z42@%wyNT5VS4kggpR z`>}{h^qzRHK5Wc?Ck62ozVX56=7&kclK|D)5b#U03aC&e(;UflGPdiYIea#DY^h~S zW0~r8j|~OqIb~|Q`W$}*9#q)8C-RaWhA?RDSu)Q*+@5kaR~d2)*UK2$lPi8b@lLWe zbd0D#gf0Kbid0GBvuPUu| zKS+oNFJT?V?VYG-3?F51JaJiDjcG46iCFX98L_;Sr-c6;m3$@tj`0+pin*Q2E%wZN zF%9l@a|s2MXOU|GYvSPEF+}@gBpvelF!LwmtduNzeayln`Ypet9OPdr9=Ci7YrSFW zBgg5ryWj4n2>SC7b9nR&pXCeQ^T+S9HD^YG zbe=qU&^~K>^f?`mn%^k%wEp*)#pNdksNPJS$pBlOSx;hZG&czoU5E_}+b-2IW2c}W zaIh|5jpjT%zN|74(38bL2o z6XGz-?;#XHCoU`!>Ozr=HEjK>(}PFRW{Qeo@NO`R9u~K3A+4NYv6|H{_ftz$ZT4rG z<|agg!UI?vEtb zaqxzXRvi_RT-?}3-E8YoZKmv)j-c!M9!xQ8Y5J5l*D0d!i_ESZmu+S&!5g%SXtm(DU`XTXx2j|S$=)S#Z^`hh5Me`!^RoH@d5*u0*B{s32u-%TytXj3C)0SEd z4JO~*2WhSsu(rrJ-h5%-O`FjZ|4zian9n_<*}I@S}6D#DG*eCDLe@d@Q@Se7hdi#b~YtOqi83hB^ziD5$`z1dX{NP-B z=;3AYWDT{7Ewp1w{lHSemeYd^MeAY2bMrg9#Dv|s;>wRbW-5xu>kmIVwl>e;+xg{h zesDj&EO3Rqb#KwY(sYmPak3_yxT+P5E@35Uy|=u4&TagK-s_%M-K)tT1nPy{h3cN$ zvO7ne#D(gezp<>HjIiO%T_DN@O53aK(ycuEDFLZ0Z`BHWxSHdLNgn~d{0ZEvU%5zC6l0s#^=Z`2v#5Ng`cl{t*V-)q9`$HVI1+gRp7u{nU zSshd;o>;VIe<%!eyTNd{YD~uN^fzP#4#c2_02 zQqpt0$B%x`ZuJEYR_>VO`6a?cX9Pv!Ly`vOaf!juI?LFjJ~7>*Ady6`FZ7rXUP-aL zmFQ6_bG_`utR7aVsA)YjCy$a|Z9i`1JrJkQ!B2Qe>CEHHey9}|^XA4{c-D)A;=69j zwQ1a@fis%VPsbbcRTUJfyE%b|Uj>1O(MkdT#`!f>4-b#L83 zezH6L-d~3QS*pqs1#vt3yu}M~)H9Lq9Mgg5d7Y?#DJS6qRu}=1B6qyxqT*RiKlh4(tJ7T z%-!%z&wWa$jt;aKBlt#l2dmFQU~rMyaBOJ0?eVp#z`SV*zk#>-_{sOLYFt~%3X=RBKwWpUmug1mB}&)o4kdWA9vRqH+qk%@VyV?8iX{>Ei_82+8MGfY@k|U0 zvmj}6vgBbber~vIt(!SmDe9A}RNGyj62yrelGJJZec>Bw0Qz|IaYah#150t!S$hl& z%+clmV#OkTEV;}_$-gBwpapKK7GToo zK`kUlF=*G~-x9GA!a4SJ&})7H#Y%(&W90EWemGhjEM+Gg-^wVB8|+HR7mcCSz*TYI z9;}ahe*2~lQ0_Nf&u{X2kOpGF?;F$u90nObTv}R!-&cMJbwrP2GXH~LKCF0gwVA|$ zdOmVQa9_&d4~PZ6&bkuZ^g(aA1)VL-(<6Ghq?DB3Xsb_t|4%m^Hk&EQyJEwJrQNg5 zlrIDYZ~on-K=YjGdf5sM!aV`bUUA(6$PQc|GeF)6v#HI^&6`MzUBQ3PQlqz?gogP=>euLW%77~Y>Dj)=q41yz?QawKkL%JxC%O>`GTpZ3P z2S(NZxojhXc7<=+Wb@A}BM;=6Zc?W>ou4Jl!$aNs@1eBEN=!(|$hK>4;QvqKA>HZm zfeugzCQzXs%q()z9ysy@_5*-M4`B=s7-IXDtZ=n2-9)fW1tCQH`}glf-y!qA7R8b8 zB=rfQPtl7|Cp^Xp)L__D|M;Cj0dxQ;yu&MGCo=>0(!tbJ; z75w<|;){!mu&C(H#fy3cua!|)C(nlC+N(wXrYRsk2m@jZ*nx8>4ilPI1^O>*NmH5p z9z^vH>#m?Hh4uHa9}mpwhV+{&WLtc*+?a^LAQvy_Y=w`MpPfK``EfJ{i^cbNFn3{+ zLUH&07C8mKXk7OtTaRmKnR{E7*0rP=W9l=;dA@zBgl#iar>eMqF9wyM-23;TEQN3mpvSmxc zm4EdF-Y!~rluw=OYLPlVw*w>r+7b39WeXHP#|p2QCY&)wvCc;=ru=XB7eZFvpOlSu z`i` z!#=9sd!Wk}W8d$3oVK)@OQ@VkCX+}aluaU;3_rgld}Q?iSFyA~AYxb~qCq5LxD}cq zt|YoCSN5D%_lP*R@Tw#~h-ta|@^dx5aHU-kr`la7T)Hp9L1gj$x|Jtylm_#=xZ8mB z)d|Ftl9inD$kS5zLlYR(M`qa8W1Kd}b1D}p_nMQWh)x|m`;X9O5{VjB`Mj&|LpoRM z(C3;V8*3*2k!MvLvw`dmsrDUGGAalnq6eZ_Wj~P!8WA;pn38dGmU6lExui3u)PD1W z%F*aE0C9*52{pg=qJI9|yDzZ`A=3_5d?L;-UakE=Kb0thhMz<_p~@$p?S6QPr|i1S zdujVV2t)aaIz%Cdd@XQC$D3^Xo;H2kJx$rgmaG?nvY*KEv#uoeyT|$62j2N~&Aanf zAbyD|C=9*!`ZOm|y?u7Pu`|9++I~)Wj|ZQv#pE`PmzlAmJXWPfa{X(eB^=7vgzJVY z-BHS#nC!w`W`VZ9TWX$@d;HXjX4QH{8A5Nn8}eMyln3C5m5X`iu!aFnbd-=Qh~^5? z1g8BtB*pfBO${set}32+5FT&5cx?qCmnj0`*}4k8>{~q&MQ}zQCfqJjdsf$kXa{oI1f*KAJebX zv^rPTE>gE-eKCZyPU70}sd?o3^cO8f4n0Q>Ekh1HO$sed3hoA}k;=A?^H4pymNwRu zmdoq=(}kQF)}269%!=-7;p&zfq}L0!KX<{ zNs@9Zw?4~I5>oODE4v2MsG$;FA$7ejbn|{NwEGdtP!Te|6iJi&G9druC+?)k6FAbp zj@j^t=3DFghoR+8Gy`lDImRYs3cTWZ!O>SZk{_+71VG4GLerx>V0FoXW$eB}203>3`F<7e)UnADIk5c^HJWvM!6nzD>K{1;qJA+A1`f6Q^Lwj)0DD* zXqxo$W&eARYUOVg%Y?#Y0pDd~DxU@r5x%r2Dyxu@I<~rnmZp2w(5p%zNMkT@6)f4n zDszEAIj*RWWu?HowaH8jl>T;0o$UQt_Nc4m9||~ru)ZI{5#MDl=RnOz3A=L_DDT<@ zufl{#t{ojG_N2Ydl(~k262G-o(=-_N>kk^t^g{0)$+Kt8JGn;(%jdN7Q6r*nY;D;q zZTHk$0!cB~vO|aUQ~n_<0G#lQf+D`8Bs?$>y{me<_6nSZ0t)>5;M26UEdJEN8U2KK z)6W7vGDL)u*}O!~1ckpHR46h#rQJBDh%R60*XiO?b>nEcOb{lrDIa?pC71qkfPcE~ zG@>z%GdgE}Pe*F!#I#JgkUOz>nCp~c2#2Q2M$4)+t$-ts?fv2!s>JUub*m2r!*rvo z;gQc4`Y1^qxvM^&p5DB9^H&9e#9y&Ser+WshBxvwn&vt4kCCyK>mC@C-s?|Y=pFXX=_xzVcgfNiOVb$HpXFxR zof8BJ-@1oN!pIm71O#>q-$bZ3);Bi(P8P+So}T{d9+W1%&HQD+iTs)} z{y-lA3_CytQBsW?Ntv_9EL?8Y&HKHCdNoVQd zBH|K1Joz?TD&cK<6jQE9a=l<;`c`?yz`aDN8HiNcV zUE;igL6NQA-GSN6p6~jaP8t1_jJgMV-^-r6k2HlH>sXcIqoIA4O0S=soMfn$%X}R# ziH3&ur&QqDwQJw|b#L9gNkBkw>5b2d(7RA5eU2JccR=ifMErmspYr8cKa^%-%96_@ zUs6(576XuD2q0DD9*K3c+Rj@^$(IlcN3j?o*mWd)cP&aZH04ENd%NGie+!9-0FA5a12AVVV*9BCAz|Su z2$M9x6e4*?pR@!WfQWO+wTw#V9*ak_*1$67^laHdfFv;Mg*;DHRTU;-?S9>oc|y;} zL%3cE1lkq2zOV@mT z1hBh+(&`2R64qRFCX3yKjwf4!Dv(6n5fQsYLP`pg>}&vcxg$7u2JlWIVqy?{frBo{ zyXgMqb>av-e|BME2hheB>5}W?JcnaTgyIjRw3lGzA>Ew$<$M)*Yja;PE>o|8+Cw7b zTw~_FZ!jyo4-c(jKcuIpQ$JBW?oXE{N3x)J)PK1Uxw?i%DKKbl=0fCOV6RxNl0k;0 zf?$fD8kRUiHVQ2ejUb0HRBWUgB_eWZb)qr~G9Wi#6t77%kOs9Z_Gg9(iOW1d($!_+ zi*$Fb889UjK-Qb8b-NfAo2oE?3j%AA9vHKbiyi`~meccF(IO&C0pw+6vkoRFTSdsO zh}hneva?4*UTWk)c$4?(e-{*zk$IS}-7($4GMSW+kg#+gNlPySQ2PV?Yb0R@NPDBt z(@}G&D`TF)AP%w#X>(!oc3@y2D`4`yo@Z9xK}Ag|DCiqigXe3!NU?c25b26P#;giI zJ~&^bwIBW4=F~x%;w~O%IIw1?78YP8@1zDW(^y=#1;urGzX7Y-h44(D4?qL7cntd- zR$~z{a_OwB_WyHfj3-Z;HT<|5dCs=(Lv#Pd!r`SBPYr^hKm=h9iY8=4L_|ZCb}T@- z)`6j*3DjIg_@pLCl59X=<(+;+OG^td&R{%lK)p>rm%rnGz2R;Q2~KB`JFqCs7x zQf1@fJerRm**@{Oz&)EmD8fjlzqqB0b}jekus#B*o~X1l1CtpL9WAD-O9{FS+R!;P zfx1xvtWyaX>%*s3(!27KD8N5F{26;g{d==3XoWC1nD+W#CZAq?x@P3+>bg1b&d3It zHDo7%iPh-_FJaiL6LuR~02s#MvJD2zVsEBAt&xY-DnL7{(cqu`^#Bwp#eW zrJh76jT}o?9j|jh&0MKsfS)NK+IVMc>oV}AY%l5r=>PUc6X5lQ#l*zC?pct-szHNA zhJ1#-Jtwjjk-`iyu}gy&W{|)CpS8_1#?;;x;DogHrAsf37H_;(6qJ%eFD)&_tzvT# zNWA<@pV{vJT>ar~6xzyNbT3TWdC09V%$TTu&4&*)Ur@}~MnVuOA`Gttg@iODy!L{q zKOYt#9Y9#8psWSp{f&fdVhV~|-|NB#!Pi|1YMGrA0s|=e@0*M%2XiGPEQ~dGaGE&R|K(r1*kY_akw)SH*T--G%F9g?3{Q=b746rpx=;*c*vdPKF+&_Q* zj5=As*N2!4Zd0QhP=Hxx-g)~!y#NF!Y*OjL2!|AI71>VR)lN=E9waw;IpjdZ4AC$E z*Wm+1c|df}!^+zC{$WgU1W7?ld;9F5s#9g!$^&A{k`_(+S<})qsJ8J^Uwo^^x58l^ zgGR$F-0K1q+qaPFPXQl70tIq4qCyiP)|lwW-3kkxiW zaJcOc6LM3tdp|NFSN;Fj_7@^SxRBmYS$rWep#$^#@1Ea6T#4u@oc!H+OBsTcvfv4# zKYzYt zIf&D{ySwESQ(=(Sj$mCGmN|$QWq55u!0RgrTpK^Ug}Ln)D}K~+ED_g`71PC zHk)mde4VZoDB@%(6@G(V*c%j_hQ}38O!wq2h!1ga0+H7oO62_mPjPYI7#sh%s1-)@ zUF>%nI)Ghb!wfOc%vG>RC(78^#xGBaZqpg@tncjA8jB8xDWpp&3{!({(sN@ z>g?V)zrA$hyZ0%hvWS@ka4m<`@4YD72xK-di=tMloQ#SfUlms zb^G?V$X!^wAgv@VDfuU4uNXx;zm$)K3jJC<&4pnq;g>C@I}otbh31bga1SL@?oSsd zt9i)9qdx$k8VUg~Nl39bfs{-f))v8KS2U;&mf$-3`d3_3kE>A~1B4vvkFLe5{d)zT zfDb(Znz-g%Ysd-wn+rqq7^E)bkO%{0D#Sm1q5w4*bx70XIy9aHK&P z!3Bcs!D%G*fhreZ1nsD=8)e|V5xKA#WdH8i)d!a&6d=O^u%B?EI_59>;4VWEdk%>E z+Cc4qV0#PZ8}mR_6ZzPH;E%QN*PU~7X<;J$M={@0H?ie~*WUYYhmFA=MQjMbTlW$B zc5>@~g#*ALhIgqdv34u|6O@UcD;0c&dM_#@0!AKurlvoI#4oPJbn$a7DGfJwEKtC` zfidL?1pp%t;+wTLBY>LXbHA$wwQ6vgh;R_-CAEU{ufSC*--g>p$Hs02%_(r8m#k95 zaSIhaS~RbG#1JNeO7p+yYVlI6)0qtfUm)vxQB!7g>0Q!90t_5h|E-xO3_QF}*s!1l z!^P);x@T!^FtXgA3GfoJ>`%kP!-$v~f;>-?p`?8+_YS-X(96fhl;H?s8CJ|?NcngF zwG?^RtgQnELZ{18DQXiDV6u^F33rwZ>FRi83LJOD=%P15gH zL*!KmA@Txch0*ew{_X(5)iiN&NCy5@&i{GDMFNE8k0|wk68+cSrCr1(_x&+vR|Gi~ zSh8Y~jGnHp*HH1f+u=D%0r6jnt5O~q8tUGlj>vPRLM)8f4J4odla7@vwY0X$2{m_5 zZ|~I~Ew?=RzsP0&vuA`Ci?jQc5D7ZyR@Z|XrUHm(A-?@GBtFOm>g)Ltc{Jz_V>O*c zgb~Q;=z8F}ILLxpq~FyV7HiN)z`r4cn5(Z(2J+4@;w)+kiu5`%@{`lk0A$kw-+=kw zre*hscrF%EQUX;Q)ZtD=w2|AH{ma542+QFv7QHK60$~4QU9nuqBZUM6IJeDZFm+5B z!_#vyQ6T2bTOcuvC@VXWj2u2}(TEq#mHnSDz7TDTkB{g4I~#<2C_B!7kpyJbCBV^s z0;MV}EG*=q!0g#^R9Mmy6DQVG4@1sONoftM0D_hqQ2EGyqIjAixXQ{BZ<^in)6Mux5Uo+c&Sf z)QnEutR)rA9n1%*G$`7DhomVUGra>Ugvic=FxiHqLR8$=*4CvE4J04wBfJrv6i_xO zHr3n{6%pYj3NVIT9M*LPNacO~`gPOt$(POZ)o~kZnYqeeTN|s#nq+oYNC@3;l4K=F z$vt{iKVBwF-M{?$`Jh+jnnh`)QdW^VW@e#oveLml{lagz)4uWS*!-zedWfXq{jF37-^AmV#&was@ibiwv$1tth}| zg&nLjR)LYQ04HC#0p#qL;Eaus?&r^+hhS~n0ZLv26a?hV4FfljVAsy$K0X4FMnpWw za8S(<6)TX@&|r?jz#YMgFDTdzpM*dI3K>-LIf!u8t*^_6-@LrKnrB@XA-1XQ;qO9D z3>k(Hf@kWC}jTZOScYa zdm^U-h=7rjk`lXviiQU9ea_8GuxvTuunO5nGBPqhK$js;X8MzyqN4D#hu_Y#B%guw zWY)W4UkE8^oda-HK}QJe6ubd)_Tb*yIa4UX)c-(zh2~3mkz4AN?CzS!Iv#yOEGwKj z1S}d~Bb?%mM>AXKoP!j<4zTHv-sA2>12`Q>6GAE~c!<&*!Zm>s1+2%Li9O+;)7&7E zJ3OB=W&8B$6NvT!zmSR2`E85>d_2(qAxGu+FjXqZ5hEgVeROT=lwPXQgO0VHB1=u;qGHxG(tgb#0nq^u339eGOGmk{^vb_Y`mgu;NZ_6vcGLzSTf zjEb<6jx9RlPBafkE(oCesgl%%Bp;t%mOiw0i?t&f6wrbOiACvM{K>T->&6IUc>?F2t;K2w@G#|ldOe5f{b5P>@0oJ3F zZ2JTx6G6i888j};*(u^>DCZ!|(ScBR zobp)gF{%d$;9c69QkTmN5hD4WgIaX^+7;HAPSiH`GQ5J{9~sm7b!8|Y!Px*0$mG2& z;Ksh|9(%%CnE};w5J!C8qZa)b_=`krJ#|W>lSRkT06br_yb68+b`x$@5tTuONb<7z zP$X~s%iO`MYojv*`|oMO4l*6`X!TCT-_u|^R`X2w;&I`yJiHBj2ae~7i5f}6`T}G@ zYK+)3lY2c)1HG@&J^6`JPv1lE@5)W}UWA=tOZ3DQKBDqV2$4#(qAtc`ncEI@)DpO+Vq zl0p_46$Od`sp;tyXZiiQ4Tgp4#fo{O`XEL7T<)o5YLFy;nh|#4?L-y7SGnYnvIenX zCAPTMe5}`J4vLHv5fHczeG$m9VQ8p;oZP^tb3;{!J=yuLIKSSdRZG+CYD7#0@|y}M z!+D~T#%IYGj(e%wIHMWjs&Wn$(@Du&HdF`e< zamkfeC-E<0Kio8W=F0PMKB}y4RnNqnZN2EBDO*blNjn)v3k5}ZkhGBa8=pA-s19wA zq-lXcN~maQYHKG*J`-2o`~;f}j?^?Dp#q&2DMiJWnybfb*53m&MwIN&h(~3}Kv%Wb zKSeqyMNVC+`32?dlVDSCN)&D^4!vgyc<$7Z07PIG)t5-}$q7Bk%aCg8kXz`BlO!XS6qX_GJVHN$G!t0{ zQUu~K4fKfle;g%nF)1B17+=$`y0ku2rMvfc<~Xze>9420e{Q?w9bW12X!7b`69~78dmdD7DG)C8U}4-=_(^ycoIfN zd|w_x_y%$Y1JeinALz-$-N9W4iFhg|*JsIn4{hsi*6P`KN9j|X+B0KsM^+e^_-@FU z(f3CE=Kn8 zHT0f{PwCJTAZfgB+{wQ391-z@`i_LQwzfPol#!vVdlUB^43EjH*pPzT{p<;G@R&YR8FuZnQIYIpSq3Y|&IEhlu zuP6km!V;yM**R;_Y#W`N3S&}>LmsS8r~A8p{J9V(FW!iGS8WUBy|o;`ognQhe$p*sTHQ#hW(7O9%_ z>|GO}38L?d=FfS>mm~f<=dEDuTS4EqqLBixGX!2o$}thFB+@=i8Jm=OHaML{qof{;7sfq+-l(YEOR>X@+NYn09*~QMT)9F=F)ytFMbaCX6&LI=Z4z;fQMIz*u6>SW?+n#>rUbAXDzZ zXnP_v9L?&`Gn1o|nf&9=bAg9`>La^L%H}<;5dixsN(^-$#oq2s$* zg6{2yKGV>*e9ppMiey|ad)V|A*zl>EY#(_#-ID|_6v_= zWQbmo1)zQ7A0c^2pqNcEn5GdfERplJsp9S5XszE?OAc42UfiR>_rRf9R#wTt#nX*8 z%!t9WR2pA3_=$GYtvgLdjPu-no>t)(es=Lz3@r*}O*wGX{-y?~RdAz>F z9HW6kIPLZOHJSXTrhPK1NhYP?u@7o__F z|HzPOlbRW7o0j8w>Y$hN{7N}`%sf!I`Pza(6*q&NnA!&ux}2dNfpcnpQO7}J$Gq)U zvYe3#(oau80(zN6bZ0N6g3u*^b#3fza8oc$>?B3h``?OyLt$y2lH% zyJK6-KCzg^Dx7^%0Kd39pf_^QdFj)cWcYgz1N%YEx&HARf6Fogkkk-JaeJ-D$z)Mj z$@1H?yL8^78>&=FyG#=wzDiK7L{uMf&{S>fPC(!;O}UYgnZujej|hVuNV+<7!I~_A z12c&0m#nBV3JO8g6qXbE`je0@39oHdS_V>XeeuP2U#4zGE#Key-Fda5A~O)Q6kg~J zWU1KDnn|Ja2=#28c$+md#r__#=M`dE1JD#oU@k%yv<1f* zbf12c`i~bC56$5f%JQm5wU2Z~G5G{q2{!izk3 z>FOY_sEC!GXQOzO523~-l_N)<6}`w3VtLr9sG`gIr12hwVr?Z)F}1EMI!a> zWyhN%GX(Y<=O62yuG_lw8|t{#b;e{e?*t`q(qIRQ7pe5>Z4Acsv2)p*qy-FG%5T4x zy&7ZTcTtJBHdO*`8lW#s2>o{4$S@OBIM#24IpHj-gtIw6EDXeb)8o}vypK2gb|s(` zC77N7hQ}Emfbq(~9WdkiJXV87 zjmPtNGQfsh3BLpUIt?w8`29lh`?9Dkoy9f_lCb=7` zUSyAY7Pq$s*R)P1k2V5CN$*N9(=&I}f7K)|6`;1sizQLC?f4w6G0kruZ*1S`DN^or zl^JuAWprplGk)YjOogR=S%lk+M;`1fgZpBEif~qde|{)<#rb7iG;1L_M9I-bdFPes z78NH8gKrkR_|3?$pLL8oIFu&JAUmq*KfI} znUxH7mLB|Zj=tbF7Fh^-3=unrm3e{~ z%E*w|I9VYP_p3x1qMGktJ4eRZ_3X^GttcocY+_Z2sms(ku9p*wQM>aUeaniT1UlD(Blh zyO!>Z84Pvp<-V<3^g-%W=1(*%1|J@m(ps2Up?n$A$h3gZ9G*AG6Lc9B4Qdh$8WqfM z5{#ibGK=ZuTT#)KY{iO9($V}GaE`;_o%e~XF(sf0ju>JA z@5KQ6<4CCc-%INk(w^0PK}>%2>p(tzCIkC|GpTJrMRrfC$D=~#%l7eT5d4<&d}euKV1|1} z071GJOXO;y^{GO|MSvn)%8DW`h&HCp&%@o>m zHKT9mq_bc|b@K1nqt?&jX>TlhtTJKo*~JpG#<)NWc}*;|znOHeKV?j6A`>xqA5)ja zE=7*cq^A80{SymCdOzm-%EX$vrU8ataiGQPNp#3vZD()9Z9PbaYg1 zx3F3us1FU5vp916S4}Z*fzmTlEkXJZTDrOx06-5b&*7T@O=34r%-uEqtUOsfrHU#` zs}bBY4cc!{$Eyxs=Z)k4dUSIN_1a8Zfkg-}>-XTw@A;ooNGkqiJ|7Q;Vc`X&(6+F`KZAY)i3g!k6ct zgkCgW5i@^~0c03wl1*)QbZ6;dbc)^WZn6yad1;}cMUlOl`QN(zYNPjGHa|WfQmD-P ze^kA9JlFmAKi*Yc4Go1TiIh>4QHsn$l`gWy z-}|$!_wRH2UAO+Zl-KL|e2jDM=YGz)pC|sQQl+P}*G)LGP1FsN(nb$ip0hS;*710C zCj4pI7!y|8(z|oii1B)U%PUc8PVMcMd0`l>yYJgzIYAKH2$zaBpB`)~SA3mNRzl~L zQ_?gLS8-G=qN#uW=ETB>i4Vt&*ZcVo$dK8-wJGrv=D!`~ch$e^vPrf2X|mnH3gPVo zZA0()`WJTYrim{yGmY7nww?VU-+@vp&+Pgp26Jm4N|~M2-Pr->?k;HazY4os#6g$P zqUo8HHAa1*!@WAHo%5 zq|Fos^KD8Kc5Sb=?-ud5zQ*t(maC$;#V~bW_z8y-y{{$DC2DW7#H^`{4>7)$h&zFS zli_@JmY^CLF#vqTnl~XaG5X!RQ%z9}qMj<(@kdTVK1idbbH4V-E<{{uRhx94%t;$j z9G^bF^!l8Ay{oN9E6RNP17@m_Ef-ymJ6Ek4vgA=rSv(ca%x*eY{gNSv*Y?xi^3L0L zlZ$+oet#)<*g_ph@^#KIy7`^_Le~&ifdqY^?HH4oG3mcasZPFbmwBGIQax+;YFo<8 zqRniTyVEI0R`yPw=A(%{i4yuCiRdzZ(KTnWOLO6oo%^2uzShk|FqQdNPrUq~TTMogiO7F9AX+2? zt-h=Dp{%MZ{~LdDqpa6aBJNDQs6F|0>MxkhmjZ%=(c#dqJB&PL8R*$Rzaw07OF=;t zut`v(N^Np2L*T&@2dap4)6d&IRtFO;^C!>y#Gfb(1J8P0M#ccb4j7Ti%*z0N&N&6v zUz6h+5NNc>m<6BRG{4SBD2fA&|D=Pi@Z3eJELk;=EK8*x?0-UXGOQi~-;K5ogGg`T zsKYNr__9sADpzI)$d5fezRM~2?-ht=Kpizo9A2Z!8<{ULBq2b>qBkW7xd#vyN6o7} zFai#KfP=*lSQ8>?hWS+u!GT&k- z?}AuhSbqRR`r_-G&c4*~?s{>G0k^|q4Fgm;c*5y)bcG&`!x})4puA`g38+ubz#o_Z$rb)bu%M`g#vt;4g`J%sQ8Go5xu>M`zr4N5AJW z$bgAi*2L5UDC#um?$8Z#vb)TJH3^VWHBl ztwm3X@B3d&{OB@|V?Wixwr!l3h=ewBS|~}Bus*fB>F8SX;FW~f%9`~V_8f9g(Q8Vq zc**x!73-#IlsASjcWH?=4h{!O;4uE@AJ=4=1Q@jbFe z7C#4MxYJ{Gg=}3O0yVbV(G5~*n9jUxG+(gDVt&?11Sku^gh*$y@+aaxT%}U`Q`rKU zGqPh!rPm(bm^;Ur6o@tHKF{V5Ki)Iz);(99vuR<}=m z6wO_n5y5u8@!i1i!MyeM*E9KRv%iv2Hh|0h^FF^JSA34R+`SGA);uB*8ytj}G?RdUz+Yjc+wtMb~BpGFr8Z z?HY|`q(XJ50>jotYAakN{RAg6+v{ZU?vYpy`|tU%sM`T5Gy!+Qx75|tGF(j=O!F=n zaG9yg3#k_ET%X+Iwwjp#GBq*ubKBkE@Sy73Oil&u_g(2<1uA7seDKE2=3wO}_f~C7 zIahN=TJVyrd+W$ZVVy49RB3LTPj*GYTH-G86Q^S3-?P%}{rDiR6}N)R^2jZ!y<6XO zj}Hc_?Odsk)n-X%1G;YR#lHMlnyYy)f%wjui+`uT#1*&J>hxwKL@PN|Lt09#T~7PKOyC*5wP-U7 zU2inKYQHUe&wRqy-symj@%vrb851cD((XWM(MZTD{}*xz;PZo19swjKpp z*@qHw+F(4lY5P3w>{J;aA8#0qAg^jUx<+={wQEmi$;y<8#--K)*THv>x!ZHfbpjT+eljlmW-m7*!rmG5(;(5zv&P0l9jAT2sRR(n@%I!m{)mS#ylPTU9 zS0&qAsCQJkU3I{f@-*47cf-s=ZYTMlr0n*nTPR8==70aj;O9TNc+_VhJ0D#(PG0(Q zS4mgy&WD?a1L-z5R;zs-grfkJnTt2@o;yja|0#KM+I{@>lFKpZz* zJnFM1n8M5gMx{n^PS%W37TOTP=MUFGc^ zTWF_$YqM@ioqn%d!7`aA&X4=utA~IH$iOMyl%kFkEF7=m?Vkayc^9S;Sw8DW+CR5T}$_E zW=%3)YB*+vhYGE}+I>V^dRUy{sQulMe^d&84^(z`p)ml`x!d%6JkC3vs~Z^ecG?Zw z`LkrASo~~|Mf>RbfM5=@52^T#mPF+b4o4rE2iMMLd~3fF+7-BT^i9Wr&Vn&36qNbR zd(1C#XTDhP-bqoou)C#4&8fSwjc!pXoJZwWXX{$~EBM9XTO+>ZvGV03iKC;roj3nF z`cXv;0M|uD7Ex=c3Mt>*?^Tgp#&6QswiV_V_*Gq;*8ghEnqXsp+jcefKIxV%81TI3 ze4|#)8-?F$aw36c^>jJYL-m))^UetE*%*!}MaeZQ7fw(X;fV|K{F(>tbV0vk15(I?10_^`erKFy*W8=v((P?fA8hWk9X z>%r4vf~Qh1C72?#JQ8GPw48q?oY%Q(=MUzS^DEcoXb%Y7{xx#QU)gz4fsMwmp~`ua#3I;C8?g08Iw-4Juq=2`ADn@?x&Iaa=4q)W@_s2mPu*B6tnv=|uk7!bK*!^UpsQXII*tybRs z(jGD2{;ux#nY~*|zUR6#<@koWk3_$a$TKjp&aJ6GX}P10hO$VGS$a@(%IG-FaNNxD zdHS;FN^ApfGpurTzRJEC7%-CgQy z*e`2lGuQEH$9utv&ugl$BCl?&C*{7?lntucva<3zp<95-;ZaFKvD>vL`wfoHjAxG; z`lZCUU!2fZlkM7Xaavj`y3=BvA-LFeXj-KpBU_qj2M5#HUm;yS1IHq01WqSeh{<$M zsHzL{ef#*dQ=eA#R;lZR#L9h_v*hRe2FiB+Du_rd`F?g@H)qOYydMWH>SOGP?;Rfo zo*wqpzVXLbKL7eiL%HoPsupm^Viqfl19ZNmua74bK3FAHwp}H?uQj}#;bYv4OTBRc zE1!29E}UuL?PKe@6=DP(c(8gZC~f*({glL-n!e5PK$;_d=f1tcml&u?S;a>tm5h1w zTJWpgy>&?b^p3d4UcGCcGNfPs`I$8Tz@T(I`#(T^mMCyXDjeneVGpMBP_W9)hbr=ua5lcC0)-p77 zoxf6Bd*zySCpbQ}2kM@u>2j8-mM$CLQ@(stVpRNvG){#Gb->N}WrO??q zUHhgx)eMq3HW#GoK3D&Mrx8~SEx3m4lc&7juB#^|O|p+I7oE6#ipI%(U)I#jxj3U} z=2vd|B98JIKCd1d&#mMu?D$BeYv}k$e=diR=h}#}C6e#u8>`74B~|f1)J1)^YQ4UX zPI*2#%!sfQ%mtC-}bvj7<+~c0skE|eAft&GyX36n4P-D|)9*hW%0gEP&^sT9B z%IKx0M?K$yI;mgB4s<`)6@E!%0_;}8B6tKd7uPFB4(xSb?Gr!xv&t_getcwv!cwhI zb9&8TXC$4`k01?G19@APk`RUNlS9jlMQY3{Hd$&#XN0`wA{+XEqD@RQIr{1w`>PXs zPW-7@D!m)0lw^--boSGEBP-u$oU2e9?p<%Y?lt*H-_n+abo0$K#hnvfHmvs+zf}sX z>*~_pYq&(`rr=O_z2>C9=a$@irq|<{AA(?FpW*+QYki*Owsos#%;tU$8(Ef<{@y?% zf}I-T@1)Y-m5%G)aJmsx^Q}{}59zKnO_P7dFS0s@om#anG}TgI`RUfVyx&9ACrs9^ zy}Ec>6fgoaLe?G1-rM$y`&U(kJ|JDHdBD`1&<1d2f37P#$wm$~y>_?3yxi5Z%kNix zR&}JE?297&A|rjpV#bz5_>lJSQe_)ipKp}0KIJ423v7DK=lj^SVfEcN;<)TXM{Ejh zIz%tF=a@IXHvRrA(~9i)o%p^+s^^R}9v?I(IRp#Lc%SZn>almbz-{IeX(cpHho>b9 z#!0plq2F~S*46ocbynw|?y>mgTIlq3?yZ26>Y+aelAa!|GF9kJT0!b3gx~%gDAwm5 z+k7eaii4Z(l#18|Ga-&eq9%QRwr^m=X0|u=UGm6>s;W4VjL%;ZS2r@7k`s&umra$5 zR{B1C;=gE5p`mzTjxN&l(;-8bovTRF_DeljnfG_JlWd^)km zox|xGZ->J^EAe6ZX5FD*z863Il0DgI#y%3Yk1s@kE9r)w;i2@E8DyGpax}&L4|z4p zgj7`j6Pnc3b)x-U1r^CWEc*%3Agb@O4-SV4J*=lXPT}!|jBnM9ublC)57LdZ71H_5 z+IIisT+IBC{dV^~jwk1B?cPmgTkY`KP@DMT9aFp0yu#T)i8VxM_)KvMU)@5S@qObN zdi4&)>azf0zS^}4OSg*TTncXL-^!k9>eah7uAKy^DdQGre1ax}kl9`-3o{}S?sdx_EIl%#)w)6BmQjojTeoU>fzypN2PVSbZjo|TPWL#UFSem;Zax5!P?QV%ni5|O#BDdVoPf$T=tLu}3CcZgk8@KO$ z^~hFnf6C*_D?TbwK<)D}m3#7e>gPGvWQwOD`(_6~54J`ezr#QoL4{C=jDelqH`FZO zgH&+kVejvy99;v0<<+5KTKmC+@7ZaD*a_H=LIkedLS4hwz0Jli zBp6h~LO<0Ou-Kd0F(LuGnwaR}&ONCc-0^W}wFCF2IK{YcV4Dq2K{+`I=Ow;FZVEM- zpYBq`GtDj)i}2@8KOh|As~vmj0@`J@Y|=+}R?NN+r5e%wv3I+@;f6GlZ-r?i$Jb2R z)I*)r9nY?MSvGgH_y5?KqgL-ytDY{i{q6WkdB@lVHI|c7G1?{d)vS1!sMyDxcbT3t zA6@+rO&KRC@k;%Bis{QlIZkGwP*PT-)s{A=byM+wsfJ=*x7Q>~!x|&O#U3zOHNNM^ z{vDUPOmtg6?TF}5e_BEHk&1+qsb2EETrJ;P;(gP`D-G4xm~O-m=Nz@mi2EdrD~%-l zP7}6>ZWW1`E_c2I(O*n7Z#wO9=~R(OX>t8dr-`+|V>)BA+-b~Aes779_rC^pG0khd zt@}yo=-v%z=(Q5J#O|gT=h8cmVQJ-(;*JW$q%x2i<2Kf(s+BR{*e8Ahi?wFf>KaKo zVwZ0UL_zE26y!}y=em#j?Oq8!Gqu9LNrZpz0x)al z6X3OC)q6v1CfbM=Nwd76SF~rBtsT%ll806blmpx#J0{`VnPp6c35>K}&R?=NGP#%H zWO+(c+r*a{LxnyH)f%k~UOwj1qf&!gYraE-pFi!HIJ3CBkacD%uxiBItk&(jhZ?8e zy{R53JL;Joj<_CaNNqhm0m?|a5Yd`FjEAN=yOE9N&&ry7GG%v)tZ&tiq^H~J#VxyA zbNvn5_;X^yZrLfyhrOndDYUM*d{5&}Bk7i&&Iiwc<=?iA^}Q&QI<VC{YbEt8(EZfJuAdH!# zzik!ma!hYc^y|%}4td{b6dH4ID4V;dStp7zgsT3ka${I(|{(VYvI$ zdPef=3+)@vqy4NZS-c$sA$I&u4)m2l2*=z(85Ig<%uden-6Y`4(nYGVi# zI*5TcF=F2RXkQsbhxs*YL)-+b5k00BC_ak1TL?qs10Bf=wS!Np2DB#HQc%=;yeVqe zMmIc={*eCGCi?>n9{a>c_5Re{qbS{*PAI~(E8Bu7rf*lXBk1qM#6+@VuaFqHi)O#C z?Ed5^h%292_KF}E_9gT1c=R8+FDR9wlyQGn8y&gg&;`I_5jq+k`)`29Z(nR5EJyF6 zl$jYD%2GXuJ`(4@eI!quwICTo6wTH}3Pnb4Od1eK86_E_?u;mTHYPB9LPAtr9Ai_I zbuGA0(Nxrk=Kmds`NUZyrs)H|6q;O8C^L)^_Z>z<=7eF236WMveRnFK`ihH68fx6r z2t9F`$cRx{tf9ewbb}p1?GycAP-n>9Sn5LM4igIe{ywz$K6J6*8aiLd)B%Xk{ceWF z!@&RF?*~E3!DY2p<6FAko{OR0mu$hmWE|rY`dL0yByzKN7cX^aDJ&gD5aKk|2`Sht;ytU*BYm&KUo{*jTuP z8P^m|I_QumY8TN&dfslj+nL)V3_H~HtHtx!;^Lws`XE#-tFijTLjP6!dh(CX=$EKu z<+R7xh;SmCWc2kELcmvlzEfJo!h#b;yjuE*9SB-@>J4FqRMs$5%!GEa%E^q%516r3Q(2I)? z)!Vn9lNWaS~Rn8+CR_EbT|G^%gSj_fAjd@{m1k~aQ+H+ zeP+W(^?sjQ(ULkUKpB{smsbZxd1!`FP$qP8IP{MyPPk8LyHc8Yy`7`1x`BZ}7lVWZhUk6hbNFOBuBaq`tfJA|*xx()-`^_*G~ zH({dJjcC}O{Fd$QH*@1d=dmrZN3C_ox%M_Cd~QoTjM{~3sq{DE>7|lR+)jBe^yE?X zkzLLGizrvVG&y^7Vor8qL3Ut4c4|R>WD#W^Uw)V$+~p?wdFVO+nn`7t)qa0wnc=5L z%|7a$TU2qx=_ZQ#3)k901L)o{+>X~$eeJ<{dPn8kkRuT$i0s8*i?teaE-+*9kqFzk z$jldNYH}|h_MSg_Sij9*=ZjyIqW^nEdI1j| zpD%gl48pEm;zhNf0YySuuY^=w5BV+?(t0(k{t>30bq6=q1>5WvTI*<(zI*5hI?wOi zE2^++6sW@eC&n2EbKj#S>?uk`QT9ck% zRVg*0ATcMo<0%>@+pe-FH=}r#i{+e+k^BXeix~MSkSL`8Za>)G=j)v6P0PNIjU54c zJ+08b>Cr|M^|Bl@OElg8IErHnisT_pQ3XK>LXs*-)p9qw9pV{#(7TgiH=_=<#@d!S zXXXKDD2%YXtnSIm%3=;&nQA;kxd$#z2OWo~@0H88W7pG*`+AY9GV&x6kKCi5o9}*Z zKK1#FD0%Dfx3XAyO{EHFrPG{Ahh}v?g`h&Fe?RK5HgH+tR&pdDW3<3tyaQ&#)-lk!|vwT8Okmw)MgPY5}e_-962LV=Y^CPhEF3 zn)`fnmJu>Ml1}TnW{dwCnm@Q}{Q#9@33m1gb`Rd!-aln`A9brdlb+7%uF_SPMxGn= z$5s>Vq|ghDlDB!i{vQWbmtip=MtMg0GK3gGt`9<0pi+}#p>yq0xHQ^Oh@#J*T4~CL zmmCkrmqET*tJ{p*EN5py*`x1cCU$eJNBot%x9=7UBnwe^tWGaZ4}H1oa<#GVV#zYo zysquml&8D2Dkl*KN_eGF#jWuBzwvSqw{r8^7boc{ZP8CYcA4jKhF6*9WQ-U_xDqRLMX&QDeiIW{#6mby$+ew z`&7Jl_*XxXP8Cm(*O8F+vCHEQt%r4{n;-qrARBpT*LFfT1{NbWJ^kG8cZtcdc?mDy z4(q=@t5ho9Djui$R4%3Tou|6ykwDA6mZy#GW(s1mYv!C`xO}ai;b6MXxGHOws^?o* zFV0Z*%i%o}4^TI!)TYYkS&*4P^m!AHfa9q<~l^ zX8%{O#q@12Ub43bw0jvEdIJq~fPakV&(Bk2Pbb);N0Atn{%avNm`c_BALv^Y{u)p6 z*dNzuUhrK(QLzb4Gp43z;kIX8j!sM%-W7aa(fqi=s7yPDF5_O-xkSZxhb$K){&jGp z!86Lyi!=L22S}h?>~KKS#`TjyQLnBp)1!D_k_C0znhLhgpOO?m^GcojCEPdAkfA#- zzFZ{B^Y}ZRX=G8MKJH=sEs9c_lV6sXV^_rIm5rw|Y%XZ6nWY2^;;P*OUpFmB@u!CZ-k%@PS8 zV_)E%I1>kFmol;hT5I&)=}vXk`*h07a6IAu_S?xZ%1~SISB{}@58Zy9<*S=nJ4%(; z|4A<1qU1~J)zvb+crGDe;VY#4&K(Ij|Kzcj8__Z$EBg_ReV^;=uQE+oKK>6ep1;XM zqYq%ZK7Ol2I7;^CHyvLKJg(iyafi+oM?su^N-xG&x#l`KUAuR6waulAV9ov>C3@I1-f%H)6A`IZt>kdCB;=cZI#+Z%7Ga^^sZ>z*4a zi|=ov6IMQfqDb8r{cnHz@??`*4Y{b%$f}Y;iEE&qDvlqwPw+jTh;paxhqVzPd^7YA zuEg7Y+40((N7BmbJesfo=5#VTpmg}B&uu4O>~}`*OqE#{8OgsEyfoX_o$IM8% zbr_3751KX?H6&?HK=R@F^XKYP(o0VW!5*E;y(p`}kwG_Y75dL{YUY7nV%ptv_j18X z51=Vi3yD7bTqjNWgYp^W6eT_Al6=T-@<~%_FgO{wB+Z_N^%W7>Mu6oD7qqfe25jCe!h-%>bNpu7_HB9U zIbC}=8`UESvQED{tH?qz%Jtf|CLaWs> zhK7bbLu?BMBn96aoR+^=5n8WvHLL^=0Yyv+Yh?q5)b?61D&_baLeUHJ{)SP&uh&y( zj|XGsEj(YH{+s)nEaK7w4lg=P^b!3+Y6Jyjh=Hwwfwv~h)4+x z!;s77vJ0BthTj)VYZDUC`{fJ?U8^%{`2lu4_U^sw!`x`p>B738eNqR-2(XtTn+UK& zE}Fi+CTZP-riH@@^P!J0bkAk&D4pZaN7p17J_2(S(UI$pef@aQt0_wJpkavqxj+5d zC;s^x!5nyqHZ?+F5Eb{*Sf7DP?*Tl?c#BSSN!fhk6eHULtBwdTgp0gMQ|eY

)+CM=+CD7DoO{izD={A3zS)RxCShgzOLf%QR(J0H3 zh@=e~Xc~kz9f5GG3hn2~j075E(-+Zo*pM>WX0!J_Q0+H*el7!<{&F_N*R+1&Drav`YV&y)Ui$ z>`M&Zj1ZhgDFtC7VI&xNW7$r#u$1a&$lbi@KPuaQ;w2%!K_$Y=OQ=tP;!rNIJxiz* zV6nfeKb0S)E$MAUvs`Y!CoBBd5FTF>^_G+0(p)iPkKf3gbviTe5-N6*VLUHkhnab~q9Wlwh^3k8%E{2Hr4;j_sdo82;^G$+RJDzi|FWK* zUbF~*3>-|4%cc_?HUt^Y7JqB@a=MKdzZ^;3nRd5@DKRN252ytdrI83#stBPbBJc;< zas$8;>RzxG+d5H%NeGA_bY3477dk=a@d2+#O-+r6n(DBCgLSkBMgHYKwV>OhyezG( z?D6w&3!78l?Nz@H{odTHGBHWddvpBpvpxSBoentsTD;<{g`I3IV+%*toUT`d%tphB%B`h9DaI(#O#_j$%)5j*d`~=^a@>j{#8|Z$AV4C_u(CNg?aDW zFLUceSgEy7v};&cTgMtSMxcb$9Wl-80xmiCm0!Qop#sOIUicY5zKuJG1&+Oysty7B z&xv8w{gab*IK3X;-g=O=$@)Fg^XAI7u<&qWMV>URvK{>V{DW@2bm(hlRZ4z?yBWrB z?}tKULL~x%rFCkZBB$XQ^Q=ai->dOKuo5nB4{cQ<;!g{`eV+A0Z2Mri;1!(sU4cwu27(TIXD z^1PKBsnET9_i&%Q*98UD(D z3eqrydnGiAu=Nr*Zq%#wizK|yJY1A!8GX^@%57XmZ|V!t@GZk^6($XlLNdOz0)%=C z;klqZ#}8qUVYZ2=m(clys1nhUF*`p`G;2$S^9Ih3G-g2i2)rUI{TC6j(%snBXwU9l zr*S*PoSg+BcC|3o6@(0XFiv3Ax2`U7$o86;oWbvxwY2!}CTIFFJ>38r^t!b4MLQ4D z@cb{@nK%;&FIqi&H_<(LM9`7PD66wO?kf*82H??DGwxF_#%Iktm z-c(4R3g>tuB5Z<)CEO=xZol_appQ>i@v1%+7IQ+35zCm{(1^?nX;of&Of z`=N!?4{;VP{668fFj3%3nvS?tkmAUOeOD#46;GjJ9XK2W>j(3`QgH{jh8WSmkMx>2 zq~8nd$RU#k%W{~@@BnO=L51fb;5Vxv=J8-!658-c6 z#%vX&Jkq*E8MA-?elF9_uaoZDPu<-5CMP9vGU`>trC4CM8^SK(1Vl9%^4Lxu#@G0n z9SD385K!*&d!9}u$ILr2lCHpRW*B;rz`AjcT~Fa*aL_JX)AGwz!!3As5U;3>Pk~O_ z!0>P-gyrf{fSv|-hnwo->Epx1#T779vPp}obsz%(7iv7=Fk6Z=DzQ!;KmJhA>DK{D zN~NUzofEj?4Gj%v?qt`QT!7~87brRkZmwHpw95Junr}dVq7YHUhY8**TBKwNtm)Qk zy^eBrlkVJ?pmNh;EohD%gG>s9*u<2?cZDa1;Wp44T`RDiT7kg*Dzv1IaAb zWb5hEr-#{OzFvW3E5uIl))Yh+0EjT+96v895I*Wb&iu^F>j6Wy zHI$^!0S7^W_d`a;0A3e+EArT5%{pdd1bJ`^8ymgm*z3x-Zy%(kg?v%IN!NiPhQE&z z?C!o3R|A?;FVU;+7I!14IbH7tL41P?tW%44=ZZHV771XFxJqABH6j5o`uh4l;lvsZ zt?tfJGd1NL9~cl(Ri%M=)0z2R<<+5?nR~BRjU^z~1(Wpyn=pjTs6OmkrrGyStkP-j zhL`46RyvT>R4GCqFQy$FpaMtZK3k%RPERPM9=EfHpq?!1sq*r=j5~C=0zs{~6}| zUfthFK`NS{Kn8Wv*B6X=tcLd@$)FF#$=tlWgETaf3JL*vHEcFH6Wh9d& zaGZG@7Ea+zT;R2nBKnna=^?7)4(Yz&7cUN21t~DA7C8hGydUf)V3;|!n~;+|$}PHY396m2Cbl$h$#d^CB?tkWQ7)5KhbxJ4?J& z=+mSm)|R(Y=eziR+FUg?<^(wNDkvzp-4G6uym-CZSEOnjFT=y@QHwv?o=S&o%*l%v zl^%N(KwCgGzJ*is;}%s_)%y?``nj;63pB5qYyJpy;SCP@>CpeKLRxb2nOE!@4Fu$e zK_d#B7#N-q4p=Fv9>*^R=i)YI-)OjOTnJ)Qi-wLPp_~ZS`0BYuKFIo%_4d+nb92M? zrDbMv-8qZ-EAbGFxZptf^pobtvNBf);Ld_xYx`E%I)!f;2LA^YssN1j_0%eR8d4Ce zQftU%37I*i_o~&X!okDGV!$ggc?^GFO(G#zqOj7Rjkc-7hY`4w$g`pWi|7V|CjiF8pUCpI+b5n)}gBj&vB5BPUGZG>*1lHzW#nf=C+hIwNQR)UNH!# z18UYa*gv9(Z549AX&D*k?QUmPB67G5=|W(|<4}r4I+2js%~UxH(86hF-`~gl2gJ;B ztU!rO8KNHOE@pz-6;4^T5sBR0wdI)+LZ%ymKbO(hXE<-1HscE2-Q9I+uRDs6za-or zfI?HzgJtUQf;Vrr@bU2x;@MC49>J60YXS&;Tqp>ExlVE_9)Hs^b{{g<=GNA_P0?2| z-lnXZv6aMSI+GamGTxpl1CR#}K6!mp2i1Si z)e1#cLcj~coBcI`ti&J|Vu7qjzli_#wVKsLKM`!zHmC~1*7gq#RbaXRq%pQ;XJ-$y zrB)uIq->56Cp~xW91r%y+bo_Mx9Z}>i#Rum6a0YdnTAb|fsubL&uFArDMH7)9PK6d z(FSgAXJ>#j0%_OkZoLpGB6n*$c^P7Gwo@u#n+SIb@-Tj%+?{JV`*9xowT1=;%D@3! zlakUyH8z*wmxu7M{ZJA!H|K!Dp#Buk@p0Ncd-mXD;G>S?4w`+>pCu@h-2D7=1d@&v zG@T|h4#>*704?k)O%7sIGNkQ{P0WD!saNgUHHv8GT`*h zXFfj846eIfKYfI&A;hnxUUO;v^^b%gqQzJF89F`89Uz2zt00YAOn$J@k;+5SO83=&_o!DsAGGUis|&6ktiHC1nP;n z>%)f+)E(nvZ@czA+gI)V#C>8C}rZD2qT_$C6Xr(y063Jqhd4cmk#wM%49Sdd^u9yu=X1 z?*rc-;$<_E9gZ96Lr0d0d zJ$11B9~*@>_kKj0R2*j$9?yk=RDgo?J>o@d13~LxnPwLk8R1HsV#Kj1I@5EBSEaHK zFV4+rW7a_3>kCOWRd7ddVFQSiHBwXwHC3r3#M7dDpg*VAnRv_}DLFmDaq=Mr$woFO zUm&GG$7455b57TOEl>BHIUf*2&H+Vu~3a(p@Qu@zkkn z`{l@&3D1Q|KXA1kV6O-vU@Vb!NL&vd|Upc*4Ea1KR=r z?;09<6yJ0usg>-&0ojx8?@8p!{^IZQ4dM>NT0o|97Gsb=JB&iY8j&A{;EcZHS(jCa zz-c6K3*lm5f-_Az{9u;|5mf4nCWg~ss!~76990GziH>cN(0G}DaZy+>P99scw zuI%lNMDnZkHDwq9d!et57Un02bP(hT|M65xfu6p;#PtBGe+q!2s-^~bx_#%)fteZh zM^Em5`|Gry?X)}jjxg9Lgoy=;Y6#~erU2~NPxCA&D2PCjAA#3z=UbnKMMqc?-D*Ts zMB&?F^KK*sjGJ*%A3b^l;SUdVxd9j-yx}C`Z%s{2H$_&se?m%q2rfWT(I{>bV_Wd1 zejy=*{5Lj()9$(=69N^;Oh&hiJ@fR820$C?f+F&Cp1b~qmj{+F|2>8ZNCgW65fY;c zQ5MC31(K1Gf#&{U1Y4U3rop`pv)%lvjjSJmKp@x%aaTp>hr@tUe?moj(pcU*&tJWI zrEP3XQ0-3&3i#q>BAG5;e1*la=KU`4FQt-_5|_!h7l=$F;TI1=hY#qCAWmT?jRM;q zlps525Adsu@;%(q5kx^1kkCuMpy*bzhXLo2c~ja`Jn(O*^Ugsm<|Xb!VC2n%R8-O6YNqGm@Z-#!duCZ#{lDbHwx~#v}nr`F_9HO8IpfgF5Pr#ZGsSTP- zmQTQf-Yjw6*y&gqm}5V$PXIuaaqXcz^Df&q;Q}K)ebjny8QS=%FBpm9-!Z&6(9iV8 zcJ7kfFk9Cu1~ZANf!-=9Z*dI))j1tke!BO6mz5J>(|e!fNAs(8*tiqGj67c`&X zOog}Zrk|GnduF~SBjH0#vdFbK32#qv=+G=6;+}81x?8r;XN79612Ag!fYOxxProhUshgC#I_;Bl7aKJB|w4^xKV$7W!8lc zJ?oq)cXF5*8Hap6JrR!5{PFS8I=;;=WejJZV8L>nB;(|vB99n(0F16Cl1G6?r&S=; z1D$9hlYl!=Jaqv&+VG9hN=byG*b)BwKesg+uyN;`bSrZ*Jpyg{mrW85mH|2>Fw2P( zkMX^jCL)Yf%&xtAW9?>o7QkFdvkg$SPT=r6BI&vgEr3&j5`?CmacYqmuu#2PXD`dC zQ$Mg5Lomp=*ROW&g+?iq|DloX*v?s6Rz_5J+WjK$X>Rr-I+8IMVC}umR8LWXYH1r&w<+Z1v=1OqQttB?l9ZsX73dGI2dche(4k8Ws<-iWZJlAoc&lJA)DG2ga>=u>%Ca zeq=;{;X)vO7m?7tg1J6;-}?_9Y)&0!^7p`Pv6%eEx!|yI)|Zungs5LMH~*l+W&Z|~8IM3VwBW#WwjOTAk30UPiCj6gW#s^MF-5p@%9OHS^J*(gXe9OvM8 z0eo$L@c6^@v*dV~6CklrW8Rc&p#w&<7W=f6GZKRMhj@Hqa4O7$e9DCg@ZPZUM2HGP z^`5;d#IVyRfJCZ0ce-{)#OEUsjb_1**i7XdvtvN$_wU~) za4>Woo`UyXzr!FpbnQ<7_$;3u;*JEPh+V~<&a)mPBM4pu-`jWWXin7-`s112a%4b@ zU06iqcDn9vRP7PfopS|KP5f}aD&5wvmf}%%`@`}B=xhrN!)zo-`UuuFzeu0k_ zGn@m$lt-XKNgD5@D8caYKPuEr=Q!WmD0Qv`2FeX6Or#rOgtl(|xwQ03ufz8Rdx<2=1r;OhmbYeIlhqQ0{FfvSzR)GLo7z~R1 z84*b#BqZJohfhLz_QiQ>@7#g{lnq%{8DjuMeJHm9Kxm-4sSXNEWMoDV(<2Z45~KAn zPU%jzi5B926j6{Q?V)&BDJ*imdMZcwD@C0ABiEv{KKqwo8~c9zcvd8`ZSoim5`X2@ z)w>Z9gC=BgRL1}|n6_M~wVRd&mB^o>AmU0ygFQFZaPNsQ1#!znabydE%vH#(qGH*k zxA>UrCs}ORVa}}v1|w^dI(OIp@BzX0``ioGW#{yn_8lGNQJc4bs3B`r%yGvOcOJ^w0EYU;@? z<;CqVNv;vjEY&7I_IB`Ph+gUTFf}7_<91KAlb#Z9J`A=AtwuUr@SP9xK1IR7_T_O} z5!d18FYahYi;{M%GNsQ+4pIbsPoJlc-|~JW>2uxFI+JZ7?VI@*#5|e|^L3aHVtgP_ zlJ2>_>1k=)y(6e`KfCi)kF=!ZUZVI7!+u~(RWc1N+Gmi)(nkUvLD2`4`C@Ouy^1Ea zo)B?CGJ*SY%2Zi!vJ@R@YH&crJzkQC-q4*MnIwvrm$;D7y4T<7H3u)zCV za{WEZkNjQzm=+IleJHTeYnb+Tcl>5f^y$CTqakBRFW=a0x?>)_PFaE7jdfdGt zpCaE>SMRM}-yL71kg zsT2aiFGg8JvUbuybr-$ajlYoOSr_6`BAf*dUYhBZ!3v|a0Oz{}Ddl|YG2zRXw>0w4 z?}bU>vdinI4db)(!5Mo4pnZyBXy(V}u{e1Tl@um^{;*H3JN9rPk#ZiQ86$lyKy-&ffvBh(PM#!Goe#uM*)0$TnYu z*uaj+Xev$bCZSIZ{cBVXEECh25XSr&Nr?$WC_TI;DM?sdgrddi1e*<@p)h{=iktv3 z*9n$7*Li~%1`A}B)l}yNTz6=v6DsM0!^4<4aKCmrQGuoS*ElO8ihA}g7u{K|8^2Z( zn!3CCpFXe^Xe{5!>ZzQb6;OW2mdmy<=YvkWg#hb`8@HEUEefbms4}M5=u|#WFb}WR1qobCusBd`svfB zLFSbB79FEfyPyMhX_J?$m81f#4HKeM+&w89YJ|*4RH;wVjh=DOPt2w8YxZV%d*r$# zx1V{(=h^uk+6_l?U+V~`JpQ=fNX)v0!`X};3k}*K$i)Rz5)o1XvmeS2UJsN{U_f>j z9C}-M3z@Kj(BFWQKC#Ptp4F@ymPt}yp9#bckmSJBlv;5u8 zu{b&shIle6)vY@$AotSgBVSjCXDSUJ2e7&%(_TC87j}DTtKj*r@{Su~(bAiE0W7%^iz%!ld7sXzzTv6PY z&7yX@Mos=AbLtq#(b2nN|E2j`+8OKFyYD~d6>nXxteFcunKL12$>-8jsfBU5hxaZo zIH8OTUOF7H^7ocS;b)yvf9>b4^LT-BL~#g(f_j7e{N!nsFugY&^gKcFArJyGBnG7o zJ-Uhz^e$51w6wJ8jm59zSj?VMHfFD_8C&g<8eC7Krf1$9CUKjv*ZXwUws?2Utgr7| zPrA*-ciZ0&cjq4}ZBnwRZ6iC%YACPaq4KY7n`gT3MG}RY^vmVK`<50dc)p!7&n(J| zE{lrTTFX-R83j;d7(xat^UufTX0ojONk-3V-BOgIa#7D5Rwm+f5VEr`UYHX}!2{8+ zkZ%RAlT}LM)!Z!K5Fu~_ygI=Zp@;^oVZ?cZ2IP9vK74qCBnxuD2s>SKa<~Nr1@AjJ zyq*nt_CU`d2e9q$HjO0V7=h7G(49cBC^# zL_{3g>O~AOJ9_k}mB2B27Mva_w{4tm2YlK7yIJGM`S=RvM7TE3AWZvzm0fu>ly4iB znv|uKHI$?wgQ7&Tm9=I{XpFHGk}Yc_ThUKsEfI$7OQmdsvJEC%M2xb8tYa%Jwve^& zev98Z-#_0upFf=QIC$Xqv!E`+cs;75Vo)CyP*4GBTuC@5~2pyV9`%|nL70x3$R zt-XT*v>_lVx(A-J6}Z@$XdbW>lI_^xFVNT?>gxf?^fq!qK^lzymres~G4%+l1mS#R zO(@ie1qc9&U1mV4$^hS{sH7ymghyZ%f&_GJ+=9-i;-qCxW0ZII5ss_;d)9}>hW;S25i*K>*~I~L}X3-@#6vf8KmouJbG}= z4`TJU{!;Ov(!P3%F!ncCXp+&xUWRxN3E`$%h_wWiEmBI_Ywhkzd>Ix!BIeH?E&4kW z8T6__Ojn$oE&x;kn-^;w1ZfQogCONKDfftgnp=lWN?rq}3aRH#IBEsB7Luu*g~eTf zP$6dmuIvN!FteP2fdLZsS1<~TiZVeAzvhO;GQ(*2BX0!(3jl*`K$~Hkr>$uoS+M@R zpRBmW*CX!n8zs)F$uTe~G1?`+x$PctW`IXBzX;#^vBc1K%eKUd4u3`K(>E)F15`+@ z!-=;p^ItW5?hG#G-aOVmN4yiSV}IrIw_Ba%b~W)el6zz+4BrD$8UEeo*0+7JTl50%;!x@Oyaf48?Ae%QvC z_}pvLw`{I&@y3%e%f2U5M8*2>l|2@7zq{F8TV7KQxM!)P938AOC>XY^Pi=og5CaX3 zjs}oOANS^g77`8Q2Vk`kaPr-d1@r@TZAm;XE)F~m{+BWi*JP|33MjCSk&#z@DNwcy zT~uEc&|y9GoE;lAR-Wjf%+)Qel1rLR`#6@2$P*+z!sOx7NoV?*@=dt=epD;bV}6p0 zw{D+BV=4+Q##xE0wxqylRF`2*u?lGl%zI&}EmWJn&LVBowX>DsgBhg>0grgvC67@7WXca>MI z@5J<*5Nq8(;duKl)@1(RgGlT1JVB^z!QRHqfZJxpE(6WKGrGXcV*4kHpYM|GFYUwr zoR?hg>d~(&bQ(>?pQ?6Im@pKx`Ieb7Nm;z%b*}Ddw`JC86Mivyc7rg@oRmu}=sX|& z*B6+uamT7c`YW%sV=}E#m}uDgdRi$fUL`r#L4SqZ6r`qv;*FwO<49R}kup#%tfoCb%lsAD{A+|h`xCwn> zFrRnjU314)mX4Y)EY+PMNRj*t4w%+V)eUkH7wz+Y4@OY9QDewSzv;FH~K6`i=91##5 zxKpQd44*E>!UWkeucC+4z^z#}fICgfZUlp10*J4yjOI*DRL3rqHj@W z$K*MoEe=}pc2C#4o!z4e{oJT=PAzDXGqbFTQQrv>_mkI|`~xlc|788G8 zHOLyAtKwc+OWbR*S@MvCtTa8Hv0%38jazPB%D_dwn8`y5q6b#P7az+J3T$xQH1ov= zdT$m=OJAv%Ic^hrcX~a{n{IG+aiIeqZv{9QqDZj&co?ZN2}LU3VvE@-3?39Q`^4JT zyfWb!Ru&t)S#QdFo~%N+K-+Qc^6#>sk#iOS_2b!Mxl?Xx-l(R5A}hQ*o1v#jnl^u< zp!f6edu?a8K1e!FHnWh<+gW6$YRV$J4}<<*7R)iucEcXcqzR_1XYAXi8-5{YkwO{= z#ol=cgfTncJ%j1=)%OJZ@XpyU;dRA|YeO%tyqPN)4BR7Y(=PSnQ8lyBo63tzpK{B1 zm+I$t8h?#nnDaGKv(Q4BYDGPawaS1bXZp4bFYDBYUPdoP!^Oe_tZyi$!v5^OTI&rU z^dh34!NA3FAJ(&mk}mP3htN!o;hvt&lcNQ9dEsdt0>Z0FdTkk%e!tJZq?0(j)}B%J zT;V-0HSdcW;Ucge^6ApYE^}j61gU#YfKg@7Py-G}hMuStImy^%WK3SX<|Cgv9C$$j(kl{wDn{r>Db)&Di>Z6#4jSOs&+=}wfm zriia@Lqwsa@nJmnm-*A<^RmoaX^qwmRF>Ek4WTMQ?uP~*uE(qI^Q=tz7}SFGximM`m)h`UY&U#7^!jWkSK;{8?rZmbeT-|99$A`WO{oP8PX;K92^Cjs8yO*f z+RxlpA>+yYC*D?N7Z70mqLM#$2^5nNE_Fe6!e|kW+RIYT$3Lp$c+ig8?mm;!@@>SS z>lK@h7KF(-5K9-tadRnhv5l15z2X|l2ualB^HeoR3-;RXVnM>0ZMyX(vKSUl&X9tb zv;}%zRe+Jkle^mweUeSn#f9z^QXg$7LPSD;Er?y`Z2w$JiEsE+xHKpH)oT2?uR42U z#Xv3%H^K_!DTV7;`Jel&&_f$fhQW&6=pp#q|NSDma_qUW+>{@Wl2h5~c^j{%?}Kbu#@lMp|~#^L?auJxD=M+cB{7UzUImUBLyr|zcdZi zfv;Fw*V8oyqy|@oiN+Yuv?r*&iZHXDR6i?)^d9@T-5{2NFT`}Hxjc>Vml3X~@dwFU zj}ZMr3g2pU5sg6vYF25qxWm!WaqO`EHeKAIb0UU#^q&{huEJpw$g+Uof)Yyx+6jsp zr_H4qWC<9f5@Ksw@Gf^zj{AF~AslkHO?eI3c$=W9LJvl#GgTlxb4$U@`KwlY&eD!X z`1Gk;6-9(eaFFui&NS*o#_k{;4SCPsc-g8%##TM>LFJ9lpX)DPP||??5aj%P>Dgnu zRNIf9+~~MWMkq}M%eiWpdPy-h!91TwPs-p3+)s8ufcxfLyp=X$B+E_ nUt^lDHIDM{jjD Date: Tue, 12 Nov 2024 22:51:32 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=94=A5=20[remove]=20=20:=20=EB=B6=88?= =?UTF-8?q?=ED=95=84=EC=9A=94=ED=95=9C=20=ED=8C=8C=EC=9D=BC=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Projects/App/Tests/ACNHWikiTests.swift | 8 -------- graph.png | Bin 81942 -> 0 bytes 2 files changed, 8 deletions(-) delete mode 100644 Animal-Crossing-Wiki/Projects/App/Tests/ACNHWikiTests.swift delete mode 100644 graph.png diff --git a/Animal-Crossing-Wiki/Projects/App/Tests/ACNHWikiTests.swift b/Animal-Crossing-Wiki/Projects/App/Tests/ACNHWikiTests.swift deleted file mode 100644 index acf0eeb8..00000000 --- a/Animal-Crossing-Wiki/Projects/App/Tests/ACNHWikiTests.swift +++ /dev/null @@ -1,8 +0,0 @@ -import Foundation -import XCTest - -final class ACNHWikiTests: XCTestCase { - func test_twoPlusTwo_isFour() { - XCTAssertEqual(2+2, 4) - } -} diff --git a/graph.png b/graph.png deleted file mode 100644 index b04fd44a3733fc1b97d621346a2a6c03b0ae3fda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81942 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 nUt^lDHIDM{jjD