Skip to content

Commit ef36742

Browse files
Merge pull request #20 from PhilippeBoisney/swift4-support
Swift 4 Support + Improving research on characters
2 parents c9eb53d + eed7601 commit ef36742

File tree

56 files changed

+618
-2209
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+618
-2209
lines changed

.swift-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.0
1+
4.0
Lines changed: 349 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,349 @@
1+
// !$*UTF8*$!
2+
{
3+
archiveVersion = 1;
4+
classes = {
5+
};
6+
objectVersion = 48;
7+
objects = {
8+
9+
/* Begin PBXBuildFile section */
10+
3716D6FC1F861A4100E78F74 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3716D6FB1F861A4100E78F74 /* AppDelegate.swift */; };
11+
3716D6FE1F861A4100E78F74 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3716D6FD1F861A4100E78F74 /* ViewController.swift */; };
12+
3716D7011F861A4100E78F74 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3716D6FF1F861A4100E78F74 /* Main.storyboard */; };
13+
3716D7031F861A4100E78F74 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3716D7021F861A4100E78F74 /* Assets.xcassets */; };
14+
3716D7061F861A4100E78F74 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3716D7041F861A4100E78F74 /* LaunchScreen.storyboard */; };
15+
3716D7121F861AF800E78F74 /* ModernSearchBarDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3716D70D1F861AF700E78F74 /* ModernSearchBarDelegate.swift */; };
16+
3716D7131F861AF800E78F74 /* ModernSearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3716D70E1F861AF700E78F74 /* ModernSearchBar.swift */; };
17+
3716D7141F861AF800E78F74 /* ModernSearchBarIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3716D70F1F861AF700E78F74 /* ModernSearchBarIcon.swift */; };
18+
3716D7151F861AF800E78F74 /* ModernSearchBarModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3716D7101F861AF700E78F74 /* ModernSearchBarModel.swift */; };
19+
3716D7161F861AF800E78F74 /* ModernSearchBarCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3716D7111F861AF800E78F74 /* ModernSearchBarCell.swift */; };
20+
/* End PBXBuildFile section */
21+
22+
/* Begin PBXFileReference section */
23+
3716D6F81F861A4100E78F74 /* ModernSearchBar.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ModernSearchBar.app; sourceTree = BUILT_PRODUCTS_DIR; };
24+
3716D6FB1F861A4100E78F74 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
25+
3716D6FD1F861A4100E78F74 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
26+
3716D7001F861A4100E78F74 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
27+
3716D7021F861A4100E78F74 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
28+
3716D7051F861A4100E78F74 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
29+
3716D7071F861A4100E78F74 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
30+
3716D70D1F861AF700E78F74 /* ModernSearchBarDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModernSearchBarDelegate.swift; sourceTree = "<group>"; };
31+
3716D70E1F861AF700E78F74 /* ModernSearchBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModernSearchBar.swift; sourceTree = "<group>"; };
32+
3716D70F1F861AF700E78F74 /* ModernSearchBarIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModernSearchBarIcon.swift; sourceTree = "<group>"; };
33+
3716D7101F861AF700E78F74 /* ModernSearchBarModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModernSearchBarModel.swift; sourceTree = "<group>"; };
34+
3716D7111F861AF800E78F74 /* ModernSearchBarCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModernSearchBarCell.swift; sourceTree = "<group>"; };
35+
/* End PBXFileReference section */
36+
37+
/* Begin PBXFrameworksBuildPhase section */
38+
3716D6F51F861A4100E78F74 /* Frameworks */ = {
39+
isa = PBXFrameworksBuildPhase;
40+
buildActionMask = 2147483647;
41+
files = (
42+
);
43+
runOnlyForDeploymentPostprocessing = 0;
44+
};
45+
/* End PBXFrameworksBuildPhase section */
46+
47+
/* Begin PBXGroup section */
48+
3716D6EF1F861A4100E78F74 = {
49+
isa = PBXGroup;
50+
children = (
51+
3716D6FA1F861A4100E78F74 /* ModernSearchBar */,
52+
3716D6F91F861A4100E78F74 /* Products */,
53+
);
54+
sourceTree = "<group>";
55+
};
56+
3716D6F91F861A4100E78F74 /* Products */ = {
57+
isa = PBXGroup;
58+
children = (
59+
3716D6F81F861A4100E78F74 /* ModernSearchBar.app */,
60+
);
61+
name = Products;
62+
sourceTree = "<group>";
63+
};
64+
3716D6FA1F861A4100E78F74 /* ModernSearchBar */ = {
65+
isa = PBXGroup;
66+
children = (
67+
3716D70E1F861AF700E78F74 /* ModernSearchBar.swift */,
68+
3716D7111F861AF800E78F74 /* ModernSearchBarCell.swift */,
69+
3716D70D1F861AF700E78F74 /* ModernSearchBarDelegate.swift */,
70+
3716D70F1F861AF700E78F74 /* ModernSearchBarIcon.swift */,
71+
3716D7101F861AF700E78F74 /* ModernSearchBarModel.swift */,
72+
3716D6FB1F861A4100E78F74 /* AppDelegate.swift */,
73+
3716D6FD1F861A4100E78F74 /* ViewController.swift */,
74+
3716D6FF1F861A4100E78F74 /* Main.storyboard */,
75+
3716D7021F861A4100E78F74 /* Assets.xcassets */,
76+
3716D7041F861A4100E78F74 /* LaunchScreen.storyboard */,
77+
3716D7071F861A4100E78F74 /* Info.plist */,
78+
);
79+
path = ModernSearchBar;
80+
sourceTree = "<group>";
81+
};
82+
/* End PBXGroup section */
83+
84+
/* Begin PBXNativeTarget section */
85+
3716D6F71F861A4100E78F74 /* ModernSearchBar */ = {
86+
isa = PBXNativeTarget;
87+
buildConfigurationList = 3716D70A1F861A4100E78F74 /* Build configuration list for PBXNativeTarget "ModernSearchBar" */;
88+
buildPhases = (
89+
3716D6F41F861A4100E78F74 /* Sources */,
90+
3716D6F51F861A4100E78F74 /* Frameworks */,
91+
3716D6F61F861A4100E78F74 /* Resources */,
92+
);
93+
buildRules = (
94+
);
95+
dependencies = (
96+
);
97+
name = ModernSearchBar;
98+
productName = ModernSearchBar;
99+
productReference = 3716D6F81F861A4100E78F74 /* ModernSearchBar.app */;
100+
productType = "com.apple.product-type.application";
101+
};
102+
/* End PBXNativeTarget section */
103+
104+
/* Begin PBXProject section */
105+
3716D6F01F861A4100E78F74 /* Project object */ = {
106+
isa = PBXProject;
107+
attributes = {
108+
LastSwiftUpdateCheck = 0900;
109+
LastUpgradeCheck = 0900;
110+
ORGANIZATIONNAME = CookMinute;
111+
TargetAttributes = {
112+
3716D6F71F861A4100E78F74 = {
113+
CreatedOnToolsVersion = 9.0;
114+
ProvisioningStyle = Automatic;
115+
};
116+
};
117+
};
118+
buildConfigurationList = 3716D6F31F861A4100E78F74 /* Build configuration list for PBXProject "ModernSearchBar" */;
119+
compatibilityVersion = "Xcode 8.0";
120+
developmentRegion = en;
121+
hasScannedForEncodings = 0;
122+
knownRegions = (
123+
en,
124+
Base,
125+
);
126+
mainGroup = 3716D6EF1F861A4100E78F74;
127+
productRefGroup = 3716D6F91F861A4100E78F74 /* Products */;
128+
projectDirPath = "";
129+
projectRoot = "";
130+
targets = (
131+
3716D6F71F861A4100E78F74 /* ModernSearchBar */,
132+
);
133+
};
134+
/* End PBXProject section */
135+
136+
/* Begin PBXResourcesBuildPhase section */
137+
3716D6F61F861A4100E78F74 /* Resources */ = {
138+
isa = PBXResourcesBuildPhase;
139+
buildActionMask = 2147483647;
140+
files = (
141+
3716D7061F861A4100E78F74 /* LaunchScreen.storyboard in Resources */,
142+
3716D7031F861A4100E78F74 /* Assets.xcassets in Resources */,
143+
3716D7011F861A4100E78F74 /* Main.storyboard in Resources */,
144+
);
145+
runOnlyForDeploymentPostprocessing = 0;
146+
};
147+
/* End PBXResourcesBuildPhase section */
148+
149+
/* Begin PBXSourcesBuildPhase section */
150+
3716D6F41F861A4100E78F74 /* Sources */ = {
151+
isa = PBXSourcesBuildPhase;
152+
buildActionMask = 2147483647;
153+
files = (
154+
3716D7151F861AF800E78F74 /* ModernSearchBarModel.swift in Sources */,
155+
3716D7161F861AF800E78F74 /* ModernSearchBarCell.swift in Sources */,
156+
3716D7131F861AF800E78F74 /* ModernSearchBar.swift in Sources */,
157+
3716D6FE1F861A4100E78F74 /* ViewController.swift in Sources */,
158+
3716D7121F861AF800E78F74 /* ModernSearchBarDelegate.swift in Sources */,
159+
3716D6FC1F861A4100E78F74 /* AppDelegate.swift in Sources */,
160+
3716D7141F861AF800E78F74 /* ModernSearchBarIcon.swift in Sources */,
161+
);
162+
runOnlyForDeploymentPostprocessing = 0;
163+
};
164+
/* End PBXSourcesBuildPhase section */
165+
166+
/* Begin PBXVariantGroup section */
167+
3716D6FF1F861A4100E78F74 /* Main.storyboard */ = {
168+
isa = PBXVariantGroup;
169+
children = (
170+
3716D7001F861A4100E78F74 /* Base */,
171+
);
172+
name = Main.storyboard;
173+
sourceTree = "<group>";
174+
};
175+
3716D7041F861A4100E78F74 /* LaunchScreen.storyboard */ = {
176+
isa = PBXVariantGroup;
177+
children = (
178+
3716D7051F861A4100E78F74 /* Base */,
179+
);
180+
name = LaunchScreen.storyboard;
181+
sourceTree = "<group>";
182+
};
183+
/* End PBXVariantGroup section */
184+
185+
/* Begin XCBuildConfiguration section */
186+
3716D7081F861A4100E78F74 /* Debug */ = {
187+
isa = XCBuildConfiguration;
188+
buildSettings = {
189+
ALWAYS_SEARCH_USER_PATHS = NO;
190+
CLANG_ANALYZER_NONNULL = YES;
191+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
192+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
193+
CLANG_CXX_LIBRARY = "libc++";
194+
CLANG_ENABLE_MODULES = YES;
195+
CLANG_ENABLE_OBJC_ARC = YES;
196+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
197+
CLANG_WARN_BOOL_CONVERSION = YES;
198+
CLANG_WARN_COMMA = YES;
199+
CLANG_WARN_CONSTANT_CONVERSION = YES;
200+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
201+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
202+
CLANG_WARN_EMPTY_BODY = YES;
203+
CLANG_WARN_ENUM_CONVERSION = YES;
204+
CLANG_WARN_INFINITE_RECURSION = YES;
205+
CLANG_WARN_INT_CONVERSION = YES;
206+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
207+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
208+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
209+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
210+
CLANG_WARN_STRICT_PROTOTYPES = YES;
211+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
212+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
213+
CLANG_WARN_UNREACHABLE_CODE = YES;
214+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
215+
CODE_SIGN_IDENTITY = "iPhone Developer";
216+
COPY_PHASE_STRIP = NO;
217+
DEBUG_INFORMATION_FORMAT = dwarf;
218+
ENABLE_STRICT_OBJC_MSGSEND = YES;
219+
ENABLE_TESTABILITY = YES;
220+
GCC_C_LANGUAGE_STANDARD = gnu11;
221+
GCC_DYNAMIC_NO_PIC = NO;
222+
GCC_NO_COMMON_BLOCKS = YES;
223+
GCC_OPTIMIZATION_LEVEL = 0;
224+
GCC_PREPROCESSOR_DEFINITIONS = (
225+
"DEBUG=1",
226+
"$(inherited)",
227+
);
228+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
229+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
230+
GCC_WARN_UNDECLARED_SELECTOR = YES;
231+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
232+
GCC_WARN_UNUSED_FUNCTION = YES;
233+
GCC_WARN_UNUSED_VARIABLE = YES;
234+
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
235+
MTL_ENABLE_DEBUG_INFO = YES;
236+
ONLY_ACTIVE_ARCH = YES;
237+
SDKROOT = iphoneos;
238+
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
239+
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
240+
SWIFT_VERSION = 4.0;
241+
};
242+
name = Debug;
243+
};
244+
3716D7091F861A4100E78F74 /* Release */ = {
245+
isa = XCBuildConfiguration;
246+
buildSettings = {
247+
ALWAYS_SEARCH_USER_PATHS = NO;
248+
CLANG_ANALYZER_NONNULL = YES;
249+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
250+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
251+
CLANG_CXX_LIBRARY = "libc++";
252+
CLANG_ENABLE_MODULES = YES;
253+
CLANG_ENABLE_OBJC_ARC = YES;
254+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
255+
CLANG_WARN_BOOL_CONVERSION = YES;
256+
CLANG_WARN_COMMA = YES;
257+
CLANG_WARN_CONSTANT_CONVERSION = YES;
258+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
259+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
260+
CLANG_WARN_EMPTY_BODY = YES;
261+
CLANG_WARN_ENUM_CONVERSION = YES;
262+
CLANG_WARN_INFINITE_RECURSION = YES;
263+
CLANG_WARN_INT_CONVERSION = YES;
264+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
265+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
266+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
267+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
268+
CLANG_WARN_STRICT_PROTOTYPES = YES;
269+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
270+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
271+
CLANG_WARN_UNREACHABLE_CODE = YES;
272+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
273+
CODE_SIGN_IDENTITY = "iPhone Developer";
274+
COPY_PHASE_STRIP = NO;
275+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
276+
ENABLE_NS_ASSERTIONS = NO;
277+
ENABLE_STRICT_OBJC_MSGSEND = YES;
278+
GCC_C_LANGUAGE_STANDARD = gnu11;
279+
GCC_NO_COMMON_BLOCKS = YES;
280+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
281+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
282+
GCC_WARN_UNDECLARED_SELECTOR = YES;
283+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
284+
GCC_WARN_UNUSED_FUNCTION = YES;
285+
GCC_WARN_UNUSED_VARIABLE = YES;
286+
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
287+
MTL_ENABLE_DEBUG_INFO = NO;
288+
SDKROOT = iphoneos;
289+
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
290+
SWIFT_VERSION = 4.0;
291+
VALIDATE_PRODUCT = YES;
292+
};
293+
name = Release;
294+
};
295+
3716D70B1F861A4100E78F74 /* Debug */ = {
296+
isa = XCBuildConfiguration;
297+
buildSettings = {
298+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
299+
CODE_SIGN_STYLE = Automatic;
300+
DEVELOPMENT_TEAM = 3BBX8TF58T;
301+
INFOPLIST_FILE = ModernSearchBar/Info.plist;
302+
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
303+
PRODUCT_BUNDLE_IDENTIFIER = com.cookminute.ModernSearchBar;
304+
PRODUCT_NAME = "$(TARGET_NAME)";
305+
SWIFT_VERSION = 4.0;
306+
TARGETED_DEVICE_FAMILY = "1,2";
307+
};
308+
name = Debug;
309+
};
310+
3716D70C1F861A4100E78F74 /* Release */ = {
311+
isa = XCBuildConfiguration;
312+
buildSettings = {
313+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
314+
CODE_SIGN_STYLE = Automatic;
315+
DEVELOPMENT_TEAM = 3BBX8TF58T;
316+
INFOPLIST_FILE = ModernSearchBar/Info.plist;
317+
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
318+
PRODUCT_BUNDLE_IDENTIFIER = com.cookminute.ModernSearchBar;
319+
PRODUCT_NAME = "$(TARGET_NAME)";
320+
SWIFT_VERSION = 4.0;
321+
TARGETED_DEVICE_FAMILY = "1,2";
322+
};
323+
name = Release;
324+
};
325+
/* End XCBuildConfiguration section */
326+
327+
/* Begin XCConfigurationList section */
328+
3716D6F31F861A4100E78F74 /* Build configuration list for PBXProject "ModernSearchBar" */ = {
329+
isa = XCConfigurationList;
330+
buildConfigurations = (
331+
3716D7081F861A4100E78F74 /* Debug */,
332+
3716D7091F861A4100E78F74 /* Release */,
333+
);
334+
defaultConfigurationIsVisible = 0;
335+
defaultConfigurationName = Release;
336+
};
337+
3716D70A1F861A4100E78F74 /* Build configuration list for PBXNativeTarget "ModernSearchBar" */ = {
338+
isa = XCConfigurationList;
339+
buildConfigurations = (
340+
3716D70B1F861A4100E78F74 /* Debug */,
341+
3716D70C1F861A4100E78F74 /* Release */,
342+
);
343+
defaultConfigurationIsVisible = 0;
344+
defaultConfigurationName = Release;
345+
};
346+
/* End XCConfigurationList section */
347+
};
348+
rootObject = 3716D6F01F861A4100E78F74 /* Project object */;
349+
}

Sample/ModernSearchBar-Sample/ModernSearchBar-Sample.xcodeproj/project.xcworkspace/contents.xcworkspacedata renamed to Demo/ModernSearchBar.xcodeproj/project.xcworkspace/contents.xcworkspacedata

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Sample/ModernSearchBar-Sample/ModernSearchBar-Sample.xcodeproj/xcuserdata/Philippe.xcuserdatad/xcschemes/xcschememanagement.plist renamed to Demo/ModernSearchBar.xcodeproj/xcuserdata/Philippe.xcuserdatad/xcschemes/xcschememanagement.plist

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,11 @@
44
<dict>
55
<key>SchemeUserState</key>
66
<dict>
7-
<key>ModernSearchBar-Sample.xcscheme</key>
7+
<key>ModernSearchBar.xcscheme</key>
88
<dict>
99
<key>orderHint</key>
1010
<integer>0</integer>
1111
</dict>
1212
</dict>
13-
<key>SuppressBuildableAutocreation</key>
14-
<dict>
15-
<key>37877BF81E6EA9300043C563</key>
16-
<dict>
17-
<key>primary</key>
18-
<true/>
19-
</dict>
20-
</dict>
2113
</dict>
2214
</plist>

Sample/ModernSearchBar-Sample/ModernSearchBar-Sample/AppDelegate.swift renamed to Demo/ModernSearchBar/AppDelegate.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
//
22
// AppDelegate.swift
3-
// ModernSearchBar-Sample
3+
// ModernSearchBar
44
//
5-
// Created by Philippe on 07/03/2017.
5+
// Created by Philippe on 05/10/2017.
66
// Copyright © 2017 CookMinute. All rights reserved.
77
//
88

0 commit comments

Comments
 (0)