From 142f77c61b4481849c634847dedbb3d5266bfdd6 Mon Sep 17 00:00:00 2001 From: Eric Kille Date: Fri, 28 Oct 2016 10:18:32 -0400 Subject: [PATCH 1/8] Renaming from stylekitsample to stylekitdemo --- .../contents.xcworkspacedata | 7 -- .../StyleKitDemo.xcodeproj}/project.pbxproj | 79 +++++++++--------- .../contents.xcworkspacedata | 7 ++ .../StyleKitDemo}/AppDelegate.swift | 0 .../AppIcon.appiconset/Contents.json | 0 .../BlueBar.imageset/BlueBar.png | Bin .../BlueBar.imageset/Contents.json | 0 .../BlueDot.imageset/BlueDot.png | Bin .../BlueDot.imageset/Contents.json | 0 .../Assets.xcassets/Contents.json | 0 .../Diamond.imageset/Contents.json | 0 .../Diamond.imageset/Diamond.png | Bin .../GreenBar.imageset/Contents.json | 0 .../GreenBar.imageset/GreenBar.png | Bin .../Pattern.imageset/Contents.json | 0 .../Pattern.imageset/pattern@2x.png | Bin .../Star.imageset/Contents.json | 0 .../Assets.xcassets/Star.imageset/Star.png | Bin .../black_button_image.imageset/Contents.json | 0 .../black_button_image.png | Bin .../Button_Blank_Green_Icon_256.png | Bin .../greenThumbImage.imageset/Contents.json | 0 .../Base.lproj/LaunchScreen.storyboard | 0 .../StyleKitDemo}/Base.lproj/Main.storyboard | 0 .../StyleKitDemo}/ButtonStylist.swift | 0 .../StyleKitDemo}/ButtonTableViewCell.swift | 0 .../StyleKitDemo}/DemoCode.swift | 0 .../StyleKitDemo}/Fonts/Brandon_bld.otf | Bin .../StyleKitDemo}/Fonts/Brandon_blk.otf | Bin .../StyleKitDemo}/Fonts/Brandon_light.otf | Bin .../StyleKitDemo}/Fonts/Brandon_light_it.otf | Bin .../StyleKitDemo}/Fonts/Brandon_med.otf | Bin .../StyleKitDemo}/Fonts/Brandon_thin.otf | Bin .../StyleKitDemo}/Info.plist | 0 .../StyleKitDemo}/LabelStylist.swift | 0 .../StyleKitDemo}/LabelsTableViewCell.swift | 0 .../StyleKitDemo}/ProgressViewStylist.swift | 0 .../ProgressViewsTableViewCell.swift | 0 .../StyleKitDemo}/ReadingViewController.swift | 0 .../SegmentedControlStylist.swift | 0 .../SegmentedControlsTableViewCell.swift | 0 .../StyleKitDemo}/SliderStylist.swift | 0 .../StyleKitDemo}/SlidersTableViewCell.swift | 0 .../StyleKitDemo}/StepperStylist.swift | 0 .../StyleKitDemo}/SteppersTableViewCell.swift | 0 .../StyleKitDemo}/Style.json | 0 .../StyleKitDemo}/Style.swift | 0 .../StyleKitDemo}/Style2.json | 0 .../StyleKitDemo}/StylesViewController.swift | 0 .../StyleKitDemo}/TextFieldStylist.swift | 0 .../TextFieldsTableViewCell.swift | 0 .../StyleKitDemo}/TextViewStylist.swift | 0 .../TextViewsTableViewCell.swift | 0 .../StyleKitDemo}/UIView+StyleKit.swift | 0 .../StyleKitDemo}/Utils.swift | 0 .../StyleKitDemo}/ViewController.swift | 0 .../StyleKitDemo}/ViewStylist.swift | 0 .../StyleKitDemo}/ViewsTableViewCell.swift | 0 58 files changed, 47 insertions(+), 46 deletions(-) delete mode 100644 NoPythonDemo/StyleKitSample.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename {NoPythonDemo/StyleKitSample.xcodeproj => StyleKit/StyleKitDemo.xcodeproj}/project.pbxproj (87%) create mode 100644 StyleKit/StyleKitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/AppDelegate.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/BlueBar.imageset/BlueBar.png (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/BlueBar.imageset/Contents.json (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/BlueDot.imageset/BlueDot.png (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/BlueDot.imageset/Contents.json (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/Contents.json (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/Diamond.imageset/Contents.json (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/Diamond.imageset/Diamond.png (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/GreenBar.imageset/Contents.json (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/GreenBar.imageset/GreenBar.png (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/Pattern.imageset/Contents.json (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/Pattern.imageset/pattern@2x.png (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/Star.imageset/Contents.json (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/Star.imageset/Star.png (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/black_button_image.imageset/Contents.json (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/black_button_image.imageset/black_button_image.png (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Assets.xcassets/greenThumbImage.imageset/Contents.json (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Base.lproj/LaunchScreen.storyboard (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Base.lproj/Main.storyboard (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/ButtonStylist.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/ButtonTableViewCell.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/DemoCode.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Fonts/Brandon_bld.otf (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Fonts/Brandon_blk.otf (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Fonts/Brandon_light.otf (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Fonts/Brandon_light_it.otf (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Fonts/Brandon_med.otf (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Fonts/Brandon_thin.otf (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Info.plist (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/LabelStylist.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/LabelsTableViewCell.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/ProgressViewStylist.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/ProgressViewsTableViewCell.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/ReadingViewController.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/SegmentedControlStylist.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/SegmentedControlsTableViewCell.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/SliderStylist.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/SlidersTableViewCell.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/StepperStylist.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/SteppersTableViewCell.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Style.json (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Style.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Style2.json (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/StylesViewController.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/TextFieldStylist.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/TextFieldsTableViewCell.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/TextViewStylist.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/TextViewsTableViewCell.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/UIView+StyleKit.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/Utils.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/ViewController.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/ViewStylist.swift (100%) rename {NoPythonDemo/StyleKitSample => StyleKit/StyleKitDemo}/ViewsTableViewCell.swift (100%) diff --git a/NoPythonDemo/StyleKitSample.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/NoPythonDemo/StyleKitSample.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 587bfaa..0000000 --- a/NoPythonDemo/StyleKitSample.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/NoPythonDemo/StyleKitSample.xcodeproj/project.pbxproj b/StyleKit/StyleKitDemo.xcodeproj/project.pbxproj similarity index 87% rename from NoPythonDemo/StyleKitSample.xcodeproj/project.pbxproj rename to StyleKit/StyleKitDemo.xcodeproj/project.pbxproj index 51d612a..02a73bc 100644 --- a/NoPythonDemo/StyleKitSample.xcodeproj/project.pbxproj +++ b/StyleKit/StyleKitDemo.xcodeproj/project.pbxproj @@ -7,12 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 2908BCDF1DB818020012C924 /* Brandon_bld.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2908BCD91DB818020012C924 /* Brandon_bld.otf */; }; - 2908BCE01DB818020012C924 /* Brandon_blk.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2908BCDA1DB818020012C924 /* Brandon_blk.otf */; }; - 2908BCE11DB818020012C924 /* Brandon_light_it.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2908BCDB1DB818020012C924 /* Brandon_light_it.otf */; }; - 2908BCE21DB818020012C924 /* Brandon_light.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2908BCDC1DB818020012C924 /* Brandon_light.otf */; }; - 2908BCE31DB818020012C924 /* Brandon_med.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2908BCDD1DB818020012C924 /* Brandon_med.otf */; }; - 2908BCE41DB818020012C924 /* Brandon_thin.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2908BCDE1DB818020012C924 /* Brandon_thin.otf */; }; 2908BCE71DBA61360012C924 /* LabelStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCE61DBA61360012C924 /* LabelStylist.swift */; }; 2908BCE91DBA61BF0012C924 /* ButtonStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCE81DBA61BF0012C924 /* ButtonStylist.swift */; }; 2908BCEC1DBA621D0012C924 /* ViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCEB1DBA621D0012C924 /* ViewStylist.swift */; }; @@ -38,6 +32,12 @@ 298DC6121C92073E00BB0D29 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 298DC6111C92073E00BB0D29 /* Assets.xcassets */; }; 298DC6151C92073E00BB0D29 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 298DC6131C92073E00BB0D29 /* LaunchScreen.storyboard */; }; 298E3BC81DB56D7B00B54DD0 /* Style2.json in Resources */ = {isa = PBXBuildFile; fileRef = 298E3BC71DB56D7B00B54DD0 /* Style2.json */; }; + 29D6D0F41DC3931700C8C831 /* Brandon_bld.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29D6D0EE1DC3931700C8C831 /* Brandon_bld.otf */; }; + 29D6D0F51DC3931700C8C831 /* Brandon_blk.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29D6D0EF1DC3931700C8C831 /* Brandon_blk.otf */; }; + 29D6D0F61DC3931700C8C831 /* Brandon_light_it.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29D6D0F01DC3931700C8C831 /* Brandon_light_it.otf */; }; + 29D6D0F71DC3931700C8C831 /* Brandon_light.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29D6D0F11DC3931700C8C831 /* Brandon_light.otf */; }; + 29D6D0F81DC3931700C8C831 /* Brandon_med.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29D6D0F21DC3931700C8C831 /* Brandon_med.otf */; }; + 29D6D0F91DC3931700C8C831 /* Brandon_thin.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29D6D0F31DC3931700C8C831 /* Brandon_thin.otf */; }; 29EBA4911DB69EA500CAFFEA /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EBA4901DB69EA500CAFFEA /* Utils.swift */; }; C406E7BC1DBFFF59004865CA /* ReadingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C406E7BB1DBFFF59004865CA /* ReadingViewController.swift */; }; C406E7C21DC0F63C004865CA /* TextViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = C406E7C11DC0F63C004865CA /* TextViewStylist.swift */; }; @@ -47,12 +47,6 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 2908BCD91DB818020012C924 /* Brandon_bld.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_bld.otf; path = StyleKitSample/Fonts/Brandon_bld.otf; sourceTree = ""; }; - 2908BCDA1DB818020012C924 /* Brandon_blk.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_blk.otf; path = StyleKitSample/Fonts/Brandon_blk.otf; sourceTree = ""; }; - 2908BCDB1DB818020012C924 /* Brandon_light_it.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_light_it.otf; path = StyleKitSample/Fonts/Brandon_light_it.otf; sourceTree = ""; }; - 2908BCDC1DB818020012C924 /* Brandon_light.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_light.otf; path = StyleKitSample/Fonts/Brandon_light.otf; sourceTree = ""; }; - 2908BCDD1DB818020012C924 /* Brandon_med.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_med.otf; path = StyleKitSample/Fonts/Brandon_med.otf; sourceTree = ""; }; - 2908BCDE1DB818020012C924 /* Brandon_thin.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_thin.otf; path = StyleKitSample/Fonts/Brandon_thin.otf; sourceTree = ""; }; 2908BCE61DBA61360012C924 /* LabelStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LabelStylist.swift; sourceTree = ""; }; 2908BCE81DBA61BF0012C924 /* ButtonStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonStylist.swift; sourceTree = ""; }; 2908BCEB1DBA621D0012C924 /* ViewStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewStylist.swift; sourceTree = ""; }; @@ -72,7 +66,7 @@ 2908BD2C1DBC11220012C924 /* ViewsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewsTableViewCell.swift; sourceTree = ""; }; 2908BD581DC24A5D0012C924 /* DemoCode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DemoCode.swift; sourceTree = ""; }; 295D21781C9214AA001626BD /* Style.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; lineEnding = 0; path = Style.json; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.javascript; }; - 298DC6071C92073E00BB0D29 /* StyleKitSample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = StyleKitSample.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 298DC6071C92073E00BB0D29 /* StyleKitDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = StyleKitDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 298DC60A1C92073E00BB0D29 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 298DC60C1C92073E00BB0D29 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 298DC60F1C92073E00BB0D29 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; @@ -80,6 +74,12 @@ 298DC6141C92073E00BB0D29 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 298DC6161C92073E00BB0D29 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 298E3BC71DB56D7B00B54DD0 /* Style2.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Style2.json; sourceTree = ""; }; + 29D6D0EE1DC3931700C8C831 /* Brandon_bld.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Brandon_bld.otf; sourceTree = ""; }; + 29D6D0EF1DC3931700C8C831 /* Brandon_blk.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Brandon_blk.otf; sourceTree = ""; }; + 29D6D0F01DC3931700C8C831 /* Brandon_light_it.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Brandon_light_it.otf; sourceTree = ""; }; + 29D6D0F11DC3931700C8C831 /* Brandon_light.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Brandon_light.otf; sourceTree = ""; }; + 29D6D0F21DC3931700C8C831 /* Brandon_med.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Brandon_med.otf; sourceTree = ""; }; + 29D6D0F31DC3931700C8C831 /* Brandon_thin.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Brandon_thin.otf; sourceTree = ""; }; 29EBA4901DB69EA500CAFFEA /* Utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = ""; }; C406E7BB1DBFFF59004865CA /* ReadingViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadingViewController.swift; sourceTree = ""; }; C406E7C11DC0F63C004865CA /* TextViewStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextViewStylist.swift; sourceTree = ""; }; @@ -102,14 +102,15 @@ 2908BCE51DB818160012C924 /* Fonts */ = { isa = PBXGroup; children = ( - 2908BCD91DB818020012C924 /* Brandon_bld.otf */, - 2908BCDA1DB818020012C924 /* Brandon_blk.otf */, - 2908BCDB1DB818020012C924 /* Brandon_light_it.otf */, - 2908BCDC1DB818020012C924 /* Brandon_light.otf */, - 2908BCDD1DB818020012C924 /* Brandon_med.otf */, - 2908BCDE1DB818020012C924 /* Brandon_thin.otf */, + 29D6D0EE1DC3931700C8C831 /* Brandon_bld.otf */, + 29D6D0EF1DC3931700C8C831 /* Brandon_blk.otf */, + 29D6D0F01DC3931700C8C831 /* Brandon_light_it.otf */, + 29D6D0F11DC3931700C8C831 /* Brandon_light.otf */, + 29D6D0F21DC3931700C8C831 /* Brandon_med.otf */, + 29D6D0F31DC3931700C8C831 /* Brandon_thin.otf */, ); name = Fonts; + path = StyleKitDemo/Fonts; sourceTree = ""; }; 2908BCEA1DBA61CB0012C924 /* Stylist */ = { @@ -173,7 +174,7 @@ isa = PBXGroup; children = ( 2908BCE51DB818160012C924 /* Fonts */, - 298DC6091C92073E00BB0D29 /* StyleKitSample */, + 298DC6091C92073E00BB0D29 /* StyleKitDemo */, 298DC6081C92073E00BB0D29 /* Products */, ); sourceTree = ""; @@ -181,12 +182,12 @@ 298DC6081C92073E00BB0D29 /* Products */ = { isa = PBXGroup; children = ( - 298DC6071C92073E00BB0D29 /* StyleKitSample.app */, + 298DC6071C92073E00BB0D29 /* StyleKitDemo.app */, ); name = Products; sourceTree = ""; }; - 298DC6091C92073E00BB0D29 /* StyleKitSample */ = { + 298DC6091C92073E00BB0D29 /* StyleKitDemo */ = { isa = PBXGroup; children = ( 295D21781C9214AA001626BD /* Style.json */, @@ -197,15 +198,15 @@ 298DC6131C92073E00BB0D29 /* LaunchScreen.storyboard */, 298DC6161C92073E00BB0D29 /* Info.plist */, ); - path = StyleKitSample; + path = StyleKitDemo; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 298DC6061C92073E00BB0D29 /* StyleKitSample */ = { + 298DC6061C92073E00BB0D29 /* StyleKitDemo */ = { isa = PBXNativeTarget; - buildConfigurationList = 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKitSample" */; + buildConfigurationList = 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKitDemo" */; buildPhases = ( 298DC6031C92073E00BB0D29 /* Sources */, 298DC6041C92073E00BB0D29 /* Frameworks */, @@ -215,9 +216,9 @@ ); dependencies = ( ); - name = StyleKitSample; + name = StyleKitDemo; productName = StyleKitSample; - productReference = 298DC6071C92073E00BB0D29 /* StyleKitSample.app */; + productReference = 298DC6071C92073E00BB0D29 /* StyleKitDemo.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -236,7 +237,7 @@ }; }; }; - buildConfigurationList = 298DC6021C92073E00BB0D29 /* Build configuration list for PBXProject "StyleKitSample" */; + buildConfigurationList = 298DC6021C92073E00BB0D29 /* Build configuration list for PBXProject "StyleKitDemo" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; @@ -249,7 +250,7 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 298DC6061C92073E00BB0D29 /* StyleKitSample */, + 298DC6061C92073E00BB0D29 /* StyleKitDemo */, ); }; /* End PBXProject section */ @@ -260,16 +261,16 @@ buildActionMask = 2147483647; files = ( 298DC6151C92073E00BB0D29 /* LaunchScreen.storyboard in Resources */, - 2908BCE31DB818020012C924 /* Brandon_med.otf in Resources */, + 29D6D0F81DC3931700C8C831 /* Brandon_med.otf in Resources */, 298DC6121C92073E00BB0D29 /* Assets.xcassets in Resources */, - 2908BCE11DB818020012C924 /* Brandon_light_it.otf in Resources */, - 2908BCE41DB818020012C924 /* Brandon_thin.otf in Resources */, - 2908BCE01DB818020012C924 /* Brandon_blk.otf in Resources */, - 2908BCE21DB818020012C924 /* Brandon_light.otf in Resources */, + 29D6D0F61DC3931700C8C831 /* Brandon_light_it.otf in Resources */, + 29D6D0F91DC3931700C8C831 /* Brandon_thin.otf in Resources */, + 29D6D0F51DC3931700C8C831 /* Brandon_blk.otf in Resources */, + 29D6D0F71DC3931700C8C831 /* Brandon_light.otf in Resources */, 298E3BC81DB56D7B00B54DD0 /* Style2.json in Resources */, 298DC6101C92073E00BB0D29 /* Main.storyboard in Resources */, 295D21791C9214AA001626BD /* Style.json in Resources */, - 2908BCDF1DB818020012C924 /* Brandon_bld.otf in Resources */, + 29D6D0F41DC3931700C8C831 /* Brandon_bld.otf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -421,7 +422,7 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = StyleKitSample/Info.plist; + INFOPLIST_FILE = StyleKitDemo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKitSample; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -433,7 +434,7 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = StyleKitSample/Info.plist; + INFOPLIST_FILE = StyleKitDemo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKitSample; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -444,7 +445,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 298DC6021C92073E00BB0D29 /* Build configuration list for PBXProject "StyleKitSample" */ = { + 298DC6021C92073E00BB0D29 /* Build configuration list for PBXProject "StyleKitDemo" */ = { isa = XCConfigurationList; buildConfigurations = ( 298DC6171C92073E00BB0D29 /* Debug */, @@ -453,7 +454,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKitSample" */ = { + 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKitDemo" */ = { isa = XCConfigurationList; buildConfigurations = ( 298DC61A1C92073E00BB0D29 /* Debug */, diff --git a/StyleKit/StyleKitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/StyleKit/StyleKitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..43b69e3 --- /dev/null +++ b/StyleKit/StyleKitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/NoPythonDemo/StyleKitSample/AppDelegate.swift b/StyleKit/StyleKitDemo/AppDelegate.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/AppDelegate.swift rename to StyleKit/StyleKitDemo/AppDelegate.swift diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/AppIcon.appiconset/Contents.json b/StyleKit/StyleKitDemo/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/AppIcon.appiconset/Contents.json rename to StyleKit/StyleKitDemo/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/BlueBar.imageset/BlueBar.png b/StyleKit/StyleKitDemo/Assets.xcassets/BlueBar.imageset/BlueBar.png similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/BlueBar.imageset/BlueBar.png rename to StyleKit/StyleKitDemo/Assets.xcassets/BlueBar.imageset/BlueBar.png diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/BlueBar.imageset/Contents.json b/StyleKit/StyleKitDemo/Assets.xcassets/BlueBar.imageset/Contents.json similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/BlueBar.imageset/Contents.json rename to StyleKit/StyleKitDemo/Assets.xcassets/BlueBar.imageset/Contents.json diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/BlueDot.imageset/BlueDot.png b/StyleKit/StyleKitDemo/Assets.xcassets/BlueDot.imageset/BlueDot.png similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/BlueDot.imageset/BlueDot.png rename to StyleKit/StyleKitDemo/Assets.xcassets/BlueDot.imageset/BlueDot.png diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/BlueDot.imageset/Contents.json b/StyleKit/StyleKitDemo/Assets.xcassets/BlueDot.imageset/Contents.json similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/BlueDot.imageset/Contents.json rename to StyleKit/StyleKitDemo/Assets.xcassets/BlueDot.imageset/Contents.json diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/Contents.json b/StyleKit/StyleKitDemo/Assets.xcassets/Contents.json similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/Contents.json rename to StyleKit/StyleKitDemo/Assets.xcassets/Contents.json diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/Diamond.imageset/Contents.json b/StyleKit/StyleKitDemo/Assets.xcassets/Diamond.imageset/Contents.json similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/Diamond.imageset/Contents.json rename to StyleKit/StyleKitDemo/Assets.xcassets/Diamond.imageset/Contents.json diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/Diamond.imageset/Diamond.png b/StyleKit/StyleKitDemo/Assets.xcassets/Diamond.imageset/Diamond.png similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/Diamond.imageset/Diamond.png rename to StyleKit/StyleKitDemo/Assets.xcassets/Diamond.imageset/Diamond.png diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/GreenBar.imageset/Contents.json b/StyleKit/StyleKitDemo/Assets.xcassets/GreenBar.imageset/Contents.json similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/GreenBar.imageset/Contents.json rename to StyleKit/StyleKitDemo/Assets.xcassets/GreenBar.imageset/Contents.json diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/GreenBar.imageset/GreenBar.png b/StyleKit/StyleKitDemo/Assets.xcassets/GreenBar.imageset/GreenBar.png similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/GreenBar.imageset/GreenBar.png rename to StyleKit/StyleKitDemo/Assets.xcassets/GreenBar.imageset/GreenBar.png diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/Pattern.imageset/Contents.json b/StyleKit/StyleKitDemo/Assets.xcassets/Pattern.imageset/Contents.json similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/Pattern.imageset/Contents.json rename to StyleKit/StyleKitDemo/Assets.xcassets/Pattern.imageset/Contents.json diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/Pattern.imageset/pattern@2x.png b/StyleKit/StyleKitDemo/Assets.xcassets/Pattern.imageset/pattern@2x.png similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/Pattern.imageset/pattern@2x.png rename to StyleKit/StyleKitDemo/Assets.xcassets/Pattern.imageset/pattern@2x.png diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/Star.imageset/Contents.json b/StyleKit/StyleKitDemo/Assets.xcassets/Star.imageset/Contents.json similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/Star.imageset/Contents.json rename to StyleKit/StyleKitDemo/Assets.xcassets/Star.imageset/Contents.json diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/Star.imageset/Star.png b/StyleKit/StyleKitDemo/Assets.xcassets/Star.imageset/Star.png similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/Star.imageset/Star.png rename to StyleKit/StyleKitDemo/Assets.xcassets/Star.imageset/Star.png diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/black_button_image.imageset/Contents.json b/StyleKit/StyleKitDemo/Assets.xcassets/black_button_image.imageset/Contents.json similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/black_button_image.imageset/Contents.json rename to StyleKit/StyleKitDemo/Assets.xcassets/black_button_image.imageset/Contents.json diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/black_button_image.imageset/black_button_image.png b/StyleKit/StyleKitDemo/Assets.xcassets/black_button_image.imageset/black_button_image.png similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/black_button_image.imageset/black_button_image.png rename to StyleKit/StyleKitDemo/Assets.xcassets/black_button_image.imageset/black_button_image.png diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png b/StyleKit/StyleKitDemo/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png rename to StyleKit/StyleKitDemo/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png diff --git a/NoPythonDemo/StyleKitSample/Assets.xcassets/greenThumbImage.imageset/Contents.json b/StyleKit/StyleKitDemo/Assets.xcassets/greenThumbImage.imageset/Contents.json similarity index 100% rename from NoPythonDemo/StyleKitSample/Assets.xcassets/greenThumbImage.imageset/Contents.json rename to StyleKit/StyleKitDemo/Assets.xcassets/greenThumbImage.imageset/Contents.json diff --git a/NoPythonDemo/StyleKitSample/Base.lproj/LaunchScreen.storyboard b/StyleKit/StyleKitDemo/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from NoPythonDemo/StyleKitSample/Base.lproj/LaunchScreen.storyboard rename to StyleKit/StyleKitDemo/Base.lproj/LaunchScreen.storyboard diff --git a/NoPythonDemo/StyleKitSample/Base.lproj/Main.storyboard b/StyleKit/StyleKitDemo/Base.lproj/Main.storyboard similarity index 100% rename from NoPythonDemo/StyleKitSample/Base.lproj/Main.storyboard rename to StyleKit/StyleKitDemo/Base.lproj/Main.storyboard diff --git a/NoPythonDemo/StyleKitSample/ButtonStylist.swift b/StyleKit/StyleKitDemo/ButtonStylist.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/ButtonStylist.swift rename to StyleKit/StyleKitDemo/ButtonStylist.swift diff --git a/NoPythonDemo/StyleKitSample/ButtonTableViewCell.swift b/StyleKit/StyleKitDemo/ButtonTableViewCell.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/ButtonTableViewCell.swift rename to StyleKit/StyleKitDemo/ButtonTableViewCell.swift diff --git a/NoPythonDemo/StyleKitSample/DemoCode.swift b/StyleKit/StyleKitDemo/DemoCode.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/DemoCode.swift rename to StyleKit/StyleKitDemo/DemoCode.swift diff --git a/NoPythonDemo/StyleKitSample/Fonts/Brandon_bld.otf b/StyleKit/StyleKitDemo/Fonts/Brandon_bld.otf similarity index 100% rename from NoPythonDemo/StyleKitSample/Fonts/Brandon_bld.otf rename to StyleKit/StyleKitDemo/Fonts/Brandon_bld.otf diff --git a/NoPythonDemo/StyleKitSample/Fonts/Brandon_blk.otf b/StyleKit/StyleKitDemo/Fonts/Brandon_blk.otf similarity index 100% rename from NoPythonDemo/StyleKitSample/Fonts/Brandon_blk.otf rename to StyleKit/StyleKitDemo/Fonts/Brandon_blk.otf diff --git a/NoPythonDemo/StyleKitSample/Fonts/Brandon_light.otf b/StyleKit/StyleKitDemo/Fonts/Brandon_light.otf similarity index 100% rename from NoPythonDemo/StyleKitSample/Fonts/Brandon_light.otf rename to StyleKit/StyleKitDemo/Fonts/Brandon_light.otf diff --git a/NoPythonDemo/StyleKitSample/Fonts/Brandon_light_it.otf b/StyleKit/StyleKitDemo/Fonts/Brandon_light_it.otf similarity index 100% rename from NoPythonDemo/StyleKitSample/Fonts/Brandon_light_it.otf rename to StyleKit/StyleKitDemo/Fonts/Brandon_light_it.otf diff --git a/NoPythonDemo/StyleKitSample/Fonts/Brandon_med.otf b/StyleKit/StyleKitDemo/Fonts/Brandon_med.otf similarity index 100% rename from NoPythonDemo/StyleKitSample/Fonts/Brandon_med.otf rename to StyleKit/StyleKitDemo/Fonts/Brandon_med.otf diff --git a/NoPythonDemo/StyleKitSample/Fonts/Brandon_thin.otf b/StyleKit/StyleKitDemo/Fonts/Brandon_thin.otf similarity index 100% rename from NoPythonDemo/StyleKitSample/Fonts/Brandon_thin.otf rename to StyleKit/StyleKitDemo/Fonts/Brandon_thin.otf diff --git a/NoPythonDemo/StyleKitSample/Info.plist b/StyleKit/StyleKitDemo/Info.plist similarity index 100% rename from NoPythonDemo/StyleKitSample/Info.plist rename to StyleKit/StyleKitDemo/Info.plist diff --git a/NoPythonDemo/StyleKitSample/LabelStylist.swift b/StyleKit/StyleKitDemo/LabelStylist.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/LabelStylist.swift rename to StyleKit/StyleKitDemo/LabelStylist.swift diff --git a/NoPythonDemo/StyleKitSample/LabelsTableViewCell.swift b/StyleKit/StyleKitDemo/LabelsTableViewCell.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/LabelsTableViewCell.swift rename to StyleKit/StyleKitDemo/LabelsTableViewCell.swift diff --git a/NoPythonDemo/StyleKitSample/ProgressViewStylist.swift b/StyleKit/StyleKitDemo/ProgressViewStylist.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/ProgressViewStylist.swift rename to StyleKit/StyleKitDemo/ProgressViewStylist.swift diff --git a/NoPythonDemo/StyleKitSample/ProgressViewsTableViewCell.swift b/StyleKit/StyleKitDemo/ProgressViewsTableViewCell.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/ProgressViewsTableViewCell.swift rename to StyleKit/StyleKitDemo/ProgressViewsTableViewCell.swift diff --git a/NoPythonDemo/StyleKitSample/ReadingViewController.swift b/StyleKit/StyleKitDemo/ReadingViewController.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/ReadingViewController.swift rename to StyleKit/StyleKitDemo/ReadingViewController.swift diff --git a/NoPythonDemo/StyleKitSample/SegmentedControlStylist.swift b/StyleKit/StyleKitDemo/SegmentedControlStylist.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/SegmentedControlStylist.swift rename to StyleKit/StyleKitDemo/SegmentedControlStylist.swift diff --git a/NoPythonDemo/StyleKitSample/SegmentedControlsTableViewCell.swift b/StyleKit/StyleKitDemo/SegmentedControlsTableViewCell.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/SegmentedControlsTableViewCell.swift rename to StyleKit/StyleKitDemo/SegmentedControlsTableViewCell.swift diff --git a/NoPythonDemo/StyleKitSample/SliderStylist.swift b/StyleKit/StyleKitDemo/SliderStylist.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/SliderStylist.swift rename to StyleKit/StyleKitDemo/SliderStylist.swift diff --git a/NoPythonDemo/StyleKitSample/SlidersTableViewCell.swift b/StyleKit/StyleKitDemo/SlidersTableViewCell.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/SlidersTableViewCell.swift rename to StyleKit/StyleKitDemo/SlidersTableViewCell.swift diff --git a/NoPythonDemo/StyleKitSample/StepperStylist.swift b/StyleKit/StyleKitDemo/StepperStylist.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/StepperStylist.swift rename to StyleKit/StyleKitDemo/StepperStylist.swift diff --git a/NoPythonDemo/StyleKitSample/SteppersTableViewCell.swift b/StyleKit/StyleKitDemo/SteppersTableViewCell.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/SteppersTableViewCell.swift rename to StyleKit/StyleKitDemo/SteppersTableViewCell.swift diff --git a/NoPythonDemo/StyleKitSample/Style.json b/StyleKit/StyleKitDemo/Style.json similarity index 100% rename from NoPythonDemo/StyleKitSample/Style.json rename to StyleKit/StyleKitDemo/Style.json diff --git a/NoPythonDemo/StyleKitSample/Style.swift b/StyleKit/StyleKitDemo/Style.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/Style.swift rename to StyleKit/StyleKitDemo/Style.swift diff --git a/NoPythonDemo/StyleKitSample/Style2.json b/StyleKit/StyleKitDemo/Style2.json similarity index 100% rename from NoPythonDemo/StyleKitSample/Style2.json rename to StyleKit/StyleKitDemo/Style2.json diff --git a/NoPythonDemo/StyleKitSample/StylesViewController.swift b/StyleKit/StyleKitDemo/StylesViewController.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/StylesViewController.swift rename to StyleKit/StyleKitDemo/StylesViewController.swift diff --git a/NoPythonDemo/StyleKitSample/TextFieldStylist.swift b/StyleKit/StyleKitDemo/TextFieldStylist.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/TextFieldStylist.swift rename to StyleKit/StyleKitDemo/TextFieldStylist.swift diff --git a/NoPythonDemo/StyleKitSample/TextFieldsTableViewCell.swift b/StyleKit/StyleKitDemo/TextFieldsTableViewCell.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/TextFieldsTableViewCell.swift rename to StyleKit/StyleKitDemo/TextFieldsTableViewCell.swift diff --git a/NoPythonDemo/StyleKitSample/TextViewStylist.swift b/StyleKit/StyleKitDemo/TextViewStylist.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/TextViewStylist.swift rename to StyleKit/StyleKitDemo/TextViewStylist.swift diff --git a/NoPythonDemo/StyleKitSample/TextViewsTableViewCell.swift b/StyleKit/StyleKitDemo/TextViewsTableViewCell.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/TextViewsTableViewCell.swift rename to StyleKit/StyleKitDemo/TextViewsTableViewCell.swift diff --git a/NoPythonDemo/StyleKitSample/UIView+StyleKit.swift b/StyleKit/StyleKitDemo/UIView+StyleKit.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/UIView+StyleKit.swift rename to StyleKit/StyleKitDemo/UIView+StyleKit.swift diff --git a/NoPythonDemo/StyleKitSample/Utils.swift b/StyleKit/StyleKitDemo/Utils.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/Utils.swift rename to StyleKit/StyleKitDemo/Utils.swift diff --git a/NoPythonDemo/StyleKitSample/ViewController.swift b/StyleKit/StyleKitDemo/ViewController.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/ViewController.swift rename to StyleKit/StyleKitDemo/ViewController.swift diff --git a/NoPythonDemo/StyleKitSample/ViewStylist.swift b/StyleKit/StyleKitDemo/ViewStylist.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/ViewStylist.swift rename to StyleKit/StyleKitDemo/ViewStylist.swift diff --git a/NoPythonDemo/StyleKitSample/ViewsTableViewCell.swift b/StyleKit/StyleKitDemo/ViewsTableViewCell.swift similarity index 100% rename from NoPythonDemo/StyleKitSample/ViewsTableViewCell.swift rename to StyleKit/StyleKitDemo/ViewsTableViewCell.swift From 1212c6099a5a72238e748dd6bd2b9a7e8908f291 Mon Sep 17 00:00:00 2001 From: Eric Kille Date: Fri, 28 Oct 2016 10:31:20 -0400 Subject: [PATCH 2/8] Renaming from stylekitdemo to stylekit --- .../project.pbxproj | 75 +++++++++--------- .../contents.xcworkspacedata | 2 +- .../AppDelegate.swift | 0 .../AppIcon.appiconset/Contents.json | 0 .../BlueBar.imageset/BlueBar.png | Bin .../BlueBar.imageset/Contents.json | 0 .../BlueDot.imageset/BlueDot.png | Bin .../BlueDot.imageset/Contents.json | 0 .../Assets.xcassets/Contents.json | 0 .../Diamond.imageset/Contents.json | 0 .../Diamond.imageset/Diamond.png | Bin .../GreenBar.imageset/Contents.json | 0 .../GreenBar.imageset/GreenBar.png | Bin .../Pattern.imageset/Contents.json | 0 .../Pattern.imageset/pattern@2x.png | Bin .../Star.imageset/Contents.json | 0 .../Assets.xcassets/Star.imageset/Star.png | Bin .../black_button_image.imageset/Contents.json | 0 .../black_button_image.png | Bin .../Button_Blank_Green_Icon_256.png | Bin .../greenThumbImage.imageset/Contents.json | 0 .../Base.lproj/LaunchScreen.storyboard | 0 .../Base.lproj/Main.storyboard | 0 .../ButtonStylist.swift | 0 .../ButtonTableViewCell.swift | 0 .../{StyleKitDemo => StyleKit}/DemoCode.swift | 0 .../Fonts/Brandon_bld.otf | Bin .../Fonts/Brandon_blk.otf | Bin .../Fonts/Brandon_light.otf | Bin .../Fonts/Brandon_light_it.otf | Bin .../Fonts/Brandon_med.otf | Bin .../Fonts/Brandon_thin.otf | Bin .../{StyleKitDemo => StyleKit}/Info.plist | 0 .../LabelStylist.swift | 0 .../LabelsTableViewCell.swift | 0 .../ProgressViewStylist.swift | 0 .../ProgressViewsTableViewCell.swift | 0 .../ReadingViewController.swift | 0 .../SegmentedControlStylist.swift | 0 .../SegmentedControlsTableViewCell.swift | 0 .../SliderStylist.swift | 0 .../SlidersTableViewCell.swift | 0 .../StepperStylist.swift | 0 .../SteppersTableViewCell.swift | 0 .../{StyleKitDemo => StyleKit}/Style.json | 0 .../{StyleKitDemo => StyleKit}/Style.swift | 0 .../{StyleKitDemo => StyleKit}/Style2.json | 0 .../StylesViewController.swift | 0 .../TextFieldStylist.swift | 0 .../TextFieldsTableViewCell.swift | 0 .../TextViewStylist.swift | 0 .../TextViewsTableViewCell.swift | 0 .../UIView+StyleKit.swift | 0 .../{StyleKitDemo => StyleKit}/Utils.swift | 0 .../ViewController.swift | 0 .../ViewStylist.swift | 0 .../ViewsTableViewCell.swift | 0 57 files changed, 39 insertions(+), 38 deletions(-) rename StyleKit/{StyleKitDemo.xcodeproj => StyleKit.xcodeproj}/project.pbxproj (87%) rename StyleKit/{StyleKitDemo.xcodeproj => StyleKit.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (76%) rename StyleKit/{StyleKitDemo => StyleKit}/AppDelegate.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/BlueBar.imageset/BlueBar.png (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/BlueBar.imageset/Contents.json (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/BlueDot.imageset/BlueDot.png (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/BlueDot.imageset/Contents.json (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/Contents.json (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/Diamond.imageset/Contents.json (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/Diamond.imageset/Diamond.png (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/GreenBar.imageset/Contents.json (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/GreenBar.imageset/GreenBar.png (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/Pattern.imageset/Contents.json (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/Pattern.imageset/pattern@2x.png (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/Star.imageset/Contents.json (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/Star.imageset/Star.png (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/black_button_image.imageset/Contents.json (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/black_button_image.imageset/black_button_image.png (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Assets.xcassets/greenThumbImage.imageset/Contents.json (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Base.lproj/LaunchScreen.storyboard (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Base.lproj/Main.storyboard (100%) rename StyleKit/{StyleKitDemo => StyleKit}/ButtonStylist.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/ButtonTableViewCell.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/DemoCode.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Fonts/Brandon_bld.otf (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Fonts/Brandon_blk.otf (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Fonts/Brandon_light.otf (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Fonts/Brandon_light_it.otf (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Fonts/Brandon_med.otf (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Fonts/Brandon_thin.otf (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Info.plist (100%) rename StyleKit/{StyleKitDemo => StyleKit}/LabelStylist.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/LabelsTableViewCell.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/ProgressViewStylist.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/ProgressViewsTableViewCell.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/ReadingViewController.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/SegmentedControlStylist.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/SegmentedControlsTableViewCell.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/SliderStylist.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/SlidersTableViewCell.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/StepperStylist.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/SteppersTableViewCell.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Style.json (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Style.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Style2.json (100%) rename StyleKit/{StyleKitDemo => StyleKit}/StylesViewController.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/TextFieldStylist.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/TextFieldsTableViewCell.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/TextViewStylist.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/TextViewsTableViewCell.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/UIView+StyleKit.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/Utils.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/ViewController.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/ViewStylist.swift (100%) rename StyleKit/{StyleKitDemo => StyleKit}/ViewsTableViewCell.swift (100%) diff --git a/StyleKit/StyleKitDemo.xcodeproj/project.pbxproj b/StyleKit/StyleKit.xcodeproj/project.pbxproj similarity index 87% rename from StyleKit/StyleKitDemo.xcodeproj/project.pbxproj rename to StyleKit/StyleKit.xcodeproj/project.pbxproj index 02a73bc..61fc405 100644 --- a/StyleKit/StyleKitDemo.xcodeproj/project.pbxproj +++ b/StyleKit/StyleKit.xcodeproj/project.pbxproj @@ -25,6 +25,12 @@ 2908BD2B1DBC11120012C924 /* ProgressViewsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD2A1DBC11120012C924 /* ProgressViewsTableViewCell.swift */; }; 2908BD2D1DBC11220012C924 /* ViewsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD2C1DBC11220012C924 /* ViewsTableViewCell.swift */; }; 2908BD591DC24A5D0012C924 /* DemoCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD581DC24A5D0012C924 /* DemoCode.swift */; }; + 294526981DC39852003AF49E /* Brandon_bld.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526921DC39852003AF49E /* Brandon_bld.otf */; }; + 294526991DC39852003AF49E /* Brandon_blk.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526931DC39852003AF49E /* Brandon_blk.otf */; }; + 2945269A1DC39852003AF49E /* Brandon_light_it.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526941DC39852003AF49E /* Brandon_light_it.otf */; }; + 2945269B1DC39852003AF49E /* Brandon_light.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526951DC39852003AF49E /* Brandon_light.otf */; }; + 2945269C1DC39852003AF49E /* Brandon_med.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526961DC39852003AF49E /* Brandon_med.otf */; }; + 2945269D1DC39852003AF49E /* Brandon_thin.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526971DC39852003AF49E /* Brandon_thin.otf */; }; 295D21791C9214AA001626BD /* Style.json in Resources */ = {isa = PBXBuildFile; fileRef = 295D21781C9214AA001626BD /* Style.json */; }; 298DC60B1C92073E00BB0D29 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 298DC60A1C92073E00BB0D29 /* AppDelegate.swift */; }; 298DC60D1C92073E00BB0D29 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 298DC60C1C92073E00BB0D29 /* ViewController.swift */; }; @@ -32,12 +38,6 @@ 298DC6121C92073E00BB0D29 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 298DC6111C92073E00BB0D29 /* Assets.xcassets */; }; 298DC6151C92073E00BB0D29 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 298DC6131C92073E00BB0D29 /* LaunchScreen.storyboard */; }; 298E3BC81DB56D7B00B54DD0 /* Style2.json in Resources */ = {isa = PBXBuildFile; fileRef = 298E3BC71DB56D7B00B54DD0 /* Style2.json */; }; - 29D6D0F41DC3931700C8C831 /* Brandon_bld.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29D6D0EE1DC3931700C8C831 /* Brandon_bld.otf */; }; - 29D6D0F51DC3931700C8C831 /* Brandon_blk.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29D6D0EF1DC3931700C8C831 /* Brandon_blk.otf */; }; - 29D6D0F61DC3931700C8C831 /* Brandon_light_it.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29D6D0F01DC3931700C8C831 /* Brandon_light_it.otf */; }; - 29D6D0F71DC3931700C8C831 /* Brandon_light.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29D6D0F11DC3931700C8C831 /* Brandon_light.otf */; }; - 29D6D0F81DC3931700C8C831 /* Brandon_med.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29D6D0F21DC3931700C8C831 /* Brandon_med.otf */; }; - 29D6D0F91DC3931700C8C831 /* Brandon_thin.otf in Resources */ = {isa = PBXBuildFile; fileRef = 29D6D0F31DC3931700C8C831 /* Brandon_thin.otf */; }; 29EBA4911DB69EA500CAFFEA /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EBA4901DB69EA500CAFFEA /* Utils.swift */; }; C406E7BC1DBFFF59004865CA /* ReadingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C406E7BB1DBFFF59004865CA /* ReadingViewController.swift */; }; C406E7C21DC0F63C004865CA /* TextViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = C406E7C11DC0F63C004865CA /* TextViewStylist.swift */; }; @@ -65,8 +65,14 @@ 2908BD2A1DBC11120012C924 /* ProgressViewsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProgressViewsTableViewCell.swift; sourceTree = ""; }; 2908BD2C1DBC11220012C924 /* ViewsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewsTableViewCell.swift; sourceTree = ""; }; 2908BD581DC24A5D0012C924 /* DemoCode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DemoCode.swift; sourceTree = ""; }; + 294526921DC39852003AF49E /* Brandon_bld.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_bld.otf; path = StyleKit/Fonts/Brandon_bld.otf; sourceTree = SOURCE_ROOT; }; + 294526931DC39852003AF49E /* Brandon_blk.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_blk.otf; path = StyleKit/Fonts/Brandon_blk.otf; sourceTree = SOURCE_ROOT; }; + 294526941DC39852003AF49E /* Brandon_light_it.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_light_it.otf; path = StyleKit/Fonts/Brandon_light_it.otf; sourceTree = SOURCE_ROOT; }; + 294526951DC39852003AF49E /* Brandon_light.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_light.otf; path = StyleKit/Fonts/Brandon_light.otf; sourceTree = SOURCE_ROOT; }; + 294526961DC39852003AF49E /* Brandon_med.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_med.otf; path = StyleKit/Fonts/Brandon_med.otf; sourceTree = SOURCE_ROOT; }; + 294526971DC39852003AF49E /* Brandon_thin.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_thin.otf; path = StyleKit/Fonts/Brandon_thin.otf; sourceTree = SOURCE_ROOT; }; 295D21781C9214AA001626BD /* Style.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; lineEnding = 0; path = Style.json; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.javascript; }; - 298DC6071C92073E00BB0D29 /* StyleKitDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = StyleKitDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 298DC6071C92073E00BB0D29 /* StyleKit.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = StyleKit.app; sourceTree = BUILT_PRODUCTS_DIR; }; 298DC60A1C92073E00BB0D29 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 298DC60C1C92073E00BB0D29 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 298DC60F1C92073E00BB0D29 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; @@ -74,12 +80,6 @@ 298DC6141C92073E00BB0D29 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 298DC6161C92073E00BB0D29 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 298E3BC71DB56D7B00B54DD0 /* Style2.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Style2.json; sourceTree = ""; }; - 29D6D0EE1DC3931700C8C831 /* Brandon_bld.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Brandon_bld.otf; sourceTree = ""; }; - 29D6D0EF1DC3931700C8C831 /* Brandon_blk.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Brandon_blk.otf; sourceTree = ""; }; - 29D6D0F01DC3931700C8C831 /* Brandon_light_it.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Brandon_light_it.otf; sourceTree = ""; }; - 29D6D0F11DC3931700C8C831 /* Brandon_light.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Brandon_light.otf; sourceTree = ""; }; - 29D6D0F21DC3931700C8C831 /* Brandon_med.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Brandon_med.otf; sourceTree = ""; }; - 29D6D0F31DC3931700C8C831 /* Brandon_thin.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Brandon_thin.otf; sourceTree = ""; }; 29EBA4901DB69EA500CAFFEA /* Utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = ""; }; C406E7BB1DBFFF59004865CA /* ReadingViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadingViewController.swift; sourceTree = ""; }; C406E7C11DC0F63C004865CA /* TextViewStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextViewStylist.swift; sourceTree = ""; }; @@ -102,12 +102,12 @@ 2908BCE51DB818160012C924 /* Fonts */ = { isa = PBXGroup; children = ( - 29D6D0EE1DC3931700C8C831 /* Brandon_bld.otf */, - 29D6D0EF1DC3931700C8C831 /* Brandon_blk.otf */, - 29D6D0F01DC3931700C8C831 /* Brandon_light_it.otf */, - 29D6D0F11DC3931700C8C831 /* Brandon_light.otf */, - 29D6D0F21DC3931700C8C831 /* Brandon_med.otf */, - 29D6D0F31DC3931700C8C831 /* Brandon_thin.otf */, + 294526921DC39852003AF49E /* Brandon_bld.otf */, + 294526931DC39852003AF49E /* Brandon_blk.otf */, + 294526941DC39852003AF49E /* Brandon_light_it.otf */, + 294526951DC39852003AF49E /* Brandon_light.otf */, + 294526961DC39852003AF49E /* Brandon_med.otf */, + 294526971DC39852003AF49E /* Brandon_thin.otf */, ); name = Fonts; path = StyleKitDemo/Fonts; @@ -182,7 +182,7 @@ 298DC6081C92073E00BB0D29 /* Products */ = { isa = PBXGroup; children = ( - 298DC6071C92073E00BB0D29 /* StyleKitDemo.app */, + 298DC6071C92073E00BB0D29 /* StyleKit.app */, ); name = Products; sourceTree = ""; @@ -198,15 +198,16 @@ 298DC6131C92073E00BB0D29 /* LaunchScreen.storyboard */, 298DC6161C92073E00BB0D29 /* Info.plist */, ); - path = StyleKitDemo; + name = StyleKitDemo; + path = StyleKit; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 298DC6061C92073E00BB0D29 /* StyleKitDemo */ = { + 298DC6061C92073E00BB0D29 /* StyleKit */ = { isa = PBXNativeTarget; - buildConfigurationList = 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKitDemo" */; + buildConfigurationList = 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKit" */; buildPhases = ( 298DC6031C92073E00BB0D29 /* Sources */, 298DC6041C92073E00BB0D29 /* Frameworks */, @@ -216,9 +217,9 @@ ); dependencies = ( ); - name = StyleKitDemo; + name = StyleKit; productName = StyleKitSample; - productReference = 298DC6071C92073E00BB0D29 /* StyleKitDemo.app */; + productReference = 298DC6071C92073E00BB0D29 /* StyleKit.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -237,7 +238,7 @@ }; }; }; - buildConfigurationList = 298DC6021C92073E00BB0D29 /* Build configuration list for PBXProject "StyleKitDemo" */; + buildConfigurationList = 298DC6021C92073E00BB0D29 /* Build configuration list for PBXProject "StyleKit" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; @@ -250,7 +251,7 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 298DC6061C92073E00BB0D29 /* StyleKitDemo */, + 298DC6061C92073E00BB0D29 /* StyleKit */, ); }; /* End PBXProject section */ @@ -261,16 +262,16 @@ buildActionMask = 2147483647; files = ( 298DC6151C92073E00BB0D29 /* LaunchScreen.storyboard in Resources */, - 29D6D0F81DC3931700C8C831 /* Brandon_med.otf in Resources */, + 2945269C1DC39852003AF49E /* Brandon_med.otf in Resources */, 298DC6121C92073E00BB0D29 /* Assets.xcassets in Resources */, - 29D6D0F61DC3931700C8C831 /* Brandon_light_it.otf in Resources */, - 29D6D0F91DC3931700C8C831 /* Brandon_thin.otf in Resources */, - 29D6D0F51DC3931700C8C831 /* Brandon_blk.otf in Resources */, - 29D6D0F71DC3931700C8C831 /* Brandon_light.otf in Resources */, + 2945269A1DC39852003AF49E /* Brandon_light_it.otf in Resources */, + 2945269D1DC39852003AF49E /* Brandon_thin.otf in Resources */, + 294526991DC39852003AF49E /* Brandon_blk.otf in Resources */, + 2945269B1DC39852003AF49E /* Brandon_light.otf in Resources */, 298E3BC81DB56D7B00B54DD0 /* Style2.json in Resources */, 298DC6101C92073E00BB0D29 /* Main.storyboard in Resources */, 295D21791C9214AA001626BD /* Style.json in Resources */, - 29D6D0F41DC3931700C8C831 /* Brandon_bld.otf in Resources */, + 294526981DC39852003AF49E /* Brandon_bld.otf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -422,7 +423,7 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = StyleKitDemo/Info.plist; + INFOPLIST_FILE = StyleKit/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKitSample; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -434,7 +435,7 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = StyleKitDemo/Info.plist; + INFOPLIST_FILE = StyleKit/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKitSample; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -445,7 +446,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 298DC6021C92073E00BB0D29 /* Build configuration list for PBXProject "StyleKitDemo" */ = { + 298DC6021C92073E00BB0D29 /* Build configuration list for PBXProject "StyleKit" */ = { isa = XCConfigurationList; buildConfigurations = ( 298DC6171C92073E00BB0D29 /* Debug */, @@ -454,7 +455,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKitDemo" */ = { + 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKit" */ = { isa = XCConfigurationList; buildConfigurations = ( 298DC61A1C92073E00BB0D29 /* Debug */, diff --git a/StyleKit/StyleKitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/StyleKit/StyleKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 76% rename from StyleKit/StyleKitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to StyleKit/StyleKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 43b69e3..7c5bdc5 100644 --- a/StyleKit/StyleKitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/StyleKit/StyleKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:/Users/erickille/Documents/TonicDesign/repos/StyleKit-Demo/StyleKit/StyleKit.xcodeproj"> diff --git a/StyleKit/StyleKitDemo/AppDelegate.swift b/StyleKit/StyleKit/AppDelegate.swift similarity index 100% rename from StyleKit/StyleKitDemo/AppDelegate.swift rename to StyleKit/StyleKit/AppDelegate.swift diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/AppIcon.appiconset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/AppIcon.appiconset/Contents.json rename to StyleKit/StyleKit/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/BlueBar.imageset/BlueBar.png b/StyleKit/StyleKit/Assets.xcassets/BlueBar.imageset/BlueBar.png similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/BlueBar.imageset/BlueBar.png rename to StyleKit/StyleKit/Assets.xcassets/BlueBar.imageset/BlueBar.png diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/BlueBar.imageset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/BlueBar.imageset/Contents.json similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/BlueBar.imageset/Contents.json rename to StyleKit/StyleKit/Assets.xcassets/BlueBar.imageset/Contents.json diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/BlueDot.imageset/BlueDot.png b/StyleKit/StyleKit/Assets.xcassets/BlueDot.imageset/BlueDot.png similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/BlueDot.imageset/BlueDot.png rename to StyleKit/StyleKit/Assets.xcassets/BlueDot.imageset/BlueDot.png diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/BlueDot.imageset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/BlueDot.imageset/Contents.json similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/BlueDot.imageset/Contents.json rename to StyleKit/StyleKit/Assets.xcassets/BlueDot.imageset/Contents.json diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/Contents.json b/StyleKit/StyleKit/Assets.xcassets/Contents.json similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/Contents.json rename to StyleKit/StyleKit/Assets.xcassets/Contents.json diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/Diamond.imageset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/Diamond.imageset/Contents.json similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/Diamond.imageset/Contents.json rename to StyleKit/StyleKit/Assets.xcassets/Diamond.imageset/Contents.json diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/Diamond.imageset/Diamond.png b/StyleKit/StyleKit/Assets.xcassets/Diamond.imageset/Diamond.png similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/Diamond.imageset/Diamond.png rename to StyleKit/StyleKit/Assets.xcassets/Diamond.imageset/Diamond.png diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/GreenBar.imageset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/GreenBar.imageset/Contents.json similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/GreenBar.imageset/Contents.json rename to StyleKit/StyleKit/Assets.xcassets/GreenBar.imageset/Contents.json diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/GreenBar.imageset/GreenBar.png b/StyleKit/StyleKit/Assets.xcassets/GreenBar.imageset/GreenBar.png similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/GreenBar.imageset/GreenBar.png rename to StyleKit/StyleKit/Assets.xcassets/GreenBar.imageset/GreenBar.png diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/Pattern.imageset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/Pattern.imageset/Contents.json similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/Pattern.imageset/Contents.json rename to StyleKit/StyleKit/Assets.xcassets/Pattern.imageset/Contents.json diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/Pattern.imageset/pattern@2x.png b/StyleKit/StyleKit/Assets.xcassets/Pattern.imageset/pattern@2x.png similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/Pattern.imageset/pattern@2x.png rename to StyleKit/StyleKit/Assets.xcassets/Pattern.imageset/pattern@2x.png diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/Star.imageset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/Star.imageset/Contents.json similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/Star.imageset/Contents.json rename to StyleKit/StyleKit/Assets.xcassets/Star.imageset/Contents.json diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/Star.imageset/Star.png b/StyleKit/StyleKit/Assets.xcassets/Star.imageset/Star.png similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/Star.imageset/Star.png rename to StyleKit/StyleKit/Assets.xcassets/Star.imageset/Star.png diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/black_button_image.imageset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/black_button_image.imageset/Contents.json similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/black_button_image.imageset/Contents.json rename to StyleKit/StyleKit/Assets.xcassets/black_button_image.imageset/Contents.json diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/black_button_image.imageset/black_button_image.png b/StyleKit/StyleKit/Assets.xcassets/black_button_image.imageset/black_button_image.png similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/black_button_image.imageset/black_button_image.png rename to StyleKit/StyleKit/Assets.xcassets/black_button_image.imageset/black_button_image.png diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png b/StyleKit/StyleKit/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png rename to StyleKit/StyleKit/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png diff --git a/StyleKit/StyleKitDemo/Assets.xcassets/greenThumbImage.imageset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/greenThumbImage.imageset/Contents.json similarity index 100% rename from StyleKit/StyleKitDemo/Assets.xcassets/greenThumbImage.imageset/Contents.json rename to StyleKit/StyleKit/Assets.xcassets/greenThumbImage.imageset/Contents.json diff --git a/StyleKit/StyleKitDemo/Base.lproj/LaunchScreen.storyboard b/StyleKit/StyleKit/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from StyleKit/StyleKitDemo/Base.lproj/LaunchScreen.storyboard rename to StyleKit/StyleKit/Base.lproj/LaunchScreen.storyboard diff --git a/StyleKit/StyleKitDemo/Base.lproj/Main.storyboard b/StyleKit/StyleKit/Base.lproj/Main.storyboard similarity index 100% rename from StyleKit/StyleKitDemo/Base.lproj/Main.storyboard rename to StyleKit/StyleKit/Base.lproj/Main.storyboard diff --git a/StyleKit/StyleKitDemo/ButtonStylist.swift b/StyleKit/StyleKit/ButtonStylist.swift similarity index 100% rename from StyleKit/StyleKitDemo/ButtonStylist.swift rename to StyleKit/StyleKit/ButtonStylist.swift diff --git a/StyleKit/StyleKitDemo/ButtonTableViewCell.swift b/StyleKit/StyleKit/ButtonTableViewCell.swift similarity index 100% rename from StyleKit/StyleKitDemo/ButtonTableViewCell.swift rename to StyleKit/StyleKit/ButtonTableViewCell.swift diff --git a/StyleKit/StyleKitDemo/DemoCode.swift b/StyleKit/StyleKit/DemoCode.swift similarity index 100% rename from StyleKit/StyleKitDemo/DemoCode.swift rename to StyleKit/StyleKit/DemoCode.swift diff --git a/StyleKit/StyleKitDemo/Fonts/Brandon_bld.otf b/StyleKit/StyleKit/Fonts/Brandon_bld.otf similarity index 100% rename from StyleKit/StyleKitDemo/Fonts/Brandon_bld.otf rename to StyleKit/StyleKit/Fonts/Brandon_bld.otf diff --git a/StyleKit/StyleKitDemo/Fonts/Brandon_blk.otf b/StyleKit/StyleKit/Fonts/Brandon_blk.otf similarity index 100% rename from StyleKit/StyleKitDemo/Fonts/Brandon_blk.otf rename to StyleKit/StyleKit/Fonts/Brandon_blk.otf diff --git a/StyleKit/StyleKitDemo/Fonts/Brandon_light.otf b/StyleKit/StyleKit/Fonts/Brandon_light.otf similarity index 100% rename from StyleKit/StyleKitDemo/Fonts/Brandon_light.otf rename to StyleKit/StyleKit/Fonts/Brandon_light.otf diff --git a/StyleKit/StyleKitDemo/Fonts/Brandon_light_it.otf b/StyleKit/StyleKit/Fonts/Brandon_light_it.otf similarity index 100% rename from StyleKit/StyleKitDemo/Fonts/Brandon_light_it.otf rename to StyleKit/StyleKit/Fonts/Brandon_light_it.otf diff --git a/StyleKit/StyleKitDemo/Fonts/Brandon_med.otf b/StyleKit/StyleKit/Fonts/Brandon_med.otf similarity index 100% rename from StyleKit/StyleKitDemo/Fonts/Brandon_med.otf rename to StyleKit/StyleKit/Fonts/Brandon_med.otf diff --git a/StyleKit/StyleKitDemo/Fonts/Brandon_thin.otf b/StyleKit/StyleKit/Fonts/Brandon_thin.otf similarity index 100% rename from StyleKit/StyleKitDemo/Fonts/Brandon_thin.otf rename to StyleKit/StyleKit/Fonts/Brandon_thin.otf diff --git a/StyleKit/StyleKitDemo/Info.plist b/StyleKit/StyleKit/Info.plist similarity index 100% rename from StyleKit/StyleKitDemo/Info.plist rename to StyleKit/StyleKit/Info.plist diff --git a/StyleKit/StyleKitDemo/LabelStylist.swift b/StyleKit/StyleKit/LabelStylist.swift similarity index 100% rename from StyleKit/StyleKitDemo/LabelStylist.swift rename to StyleKit/StyleKit/LabelStylist.swift diff --git a/StyleKit/StyleKitDemo/LabelsTableViewCell.swift b/StyleKit/StyleKit/LabelsTableViewCell.swift similarity index 100% rename from StyleKit/StyleKitDemo/LabelsTableViewCell.swift rename to StyleKit/StyleKit/LabelsTableViewCell.swift diff --git a/StyleKit/StyleKitDemo/ProgressViewStylist.swift b/StyleKit/StyleKit/ProgressViewStylist.swift similarity index 100% rename from StyleKit/StyleKitDemo/ProgressViewStylist.swift rename to StyleKit/StyleKit/ProgressViewStylist.swift diff --git a/StyleKit/StyleKitDemo/ProgressViewsTableViewCell.swift b/StyleKit/StyleKit/ProgressViewsTableViewCell.swift similarity index 100% rename from StyleKit/StyleKitDemo/ProgressViewsTableViewCell.swift rename to StyleKit/StyleKit/ProgressViewsTableViewCell.swift diff --git a/StyleKit/StyleKitDemo/ReadingViewController.swift b/StyleKit/StyleKit/ReadingViewController.swift similarity index 100% rename from StyleKit/StyleKitDemo/ReadingViewController.swift rename to StyleKit/StyleKit/ReadingViewController.swift diff --git a/StyleKit/StyleKitDemo/SegmentedControlStylist.swift b/StyleKit/StyleKit/SegmentedControlStylist.swift similarity index 100% rename from StyleKit/StyleKitDemo/SegmentedControlStylist.swift rename to StyleKit/StyleKit/SegmentedControlStylist.swift diff --git a/StyleKit/StyleKitDemo/SegmentedControlsTableViewCell.swift b/StyleKit/StyleKit/SegmentedControlsTableViewCell.swift similarity index 100% rename from StyleKit/StyleKitDemo/SegmentedControlsTableViewCell.swift rename to StyleKit/StyleKit/SegmentedControlsTableViewCell.swift diff --git a/StyleKit/StyleKitDemo/SliderStylist.swift b/StyleKit/StyleKit/SliderStylist.swift similarity index 100% rename from StyleKit/StyleKitDemo/SliderStylist.swift rename to StyleKit/StyleKit/SliderStylist.swift diff --git a/StyleKit/StyleKitDemo/SlidersTableViewCell.swift b/StyleKit/StyleKit/SlidersTableViewCell.swift similarity index 100% rename from StyleKit/StyleKitDemo/SlidersTableViewCell.swift rename to StyleKit/StyleKit/SlidersTableViewCell.swift diff --git a/StyleKit/StyleKitDemo/StepperStylist.swift b/StyleKit/StyleKit/StepperStylist.swift similarity index 100% rename from StyleKit/StyleKitDemo/StepperStylist.swift rename to StyleKit/StyleKit/StepperStylist.swift diff --git a/StyleKit/StyleKitDemo/SteppersTableViewCell.swift b/StyleKit/StyleKit/SteppersTableViewCell.swift similarity index 100% rename from StyleKit/StyleKitDemo/SteppersTableViewCell.swift rename to StyleKit/StyleKit/SteppersTableViewCell.swift diff --git a/StyleKit/StyleKitDemo/Style.json b/StyleKit/StyleKit/Style.json similarity index 100% rename from StyleKit/StyleKitDemo/Style.json rename to StyleKit/StyleKit/Style.json diff --git a/StyleKit/StyleKitDemo/Style.swift b/StyleKit/StyleKit/Style.swift similarity index 100% rename from StyleKit/StyleKitDemo/Style.swift rename to StyleKit/StyleKit/Style.swift diff --git a/StyleKit/StyleKitDemo/Style2.json b/StyleKit/StyleKit/Style2.json similarity index 100% rename from StyleKit/StyleKitDemo/Style2.json rename to StyleKit/StyleKit/Style2.json diff --git a/StyleKit/StyleKitDemo/StylesViewController.swift b/StyleKit/StyleKit/StylesViewController.swift similarity index 100% rename from StyleKit/StyleKitDemo/StylesViewController.swift rename to StyleKit/StyleKit/StylesViewController.swift diff --git a/StyleKit/StyleKitDemo/TextFieldStylist.swift b/StyleKit/StyleKit/TextFieldStylist.swift similarity index 100% rename from StyleKit/StyleKitDemo/TextFieldStylist.swift rename to StyleKit/StyleKit/TextFieldStylist.swift diff --git a/StyleKit/StyleKitDemo/TextFieldsTableViewCell.swift b/StyleKit/StyleKit/TextFieldsTableViewCell.swift similarity index 100% rename from StyleKit/StyleKitDemo/TextFieldsTableViewCell.swift rename to StyleKit/StyleKit/TextFieldsTableViewCell.swift diff --git a/StyleKit/StyleKitDemo/TextViewStylist.swift b/StyleKit/StyleKit/TextViewStylist.swift similarity index 100% rename from StyleKit/StyleKitDemo/TextViewStylist.swift rename to StyleKit/StyleKit/TextViewStylist.swift diff --git a/StyleKit/StyleKitDemo/TextViewsTableViewCell.swift b/StyleKit/StyleKit/TextViewsTableViewCell.swift similarity index 100% rename from StyleKit/StyleKitDemo/TextViewsTableViewCell.swift rename to StyleKit/StyleKit/TextViewsTableViewCell.swift diff --git a/StyleKit/StyleKitDemo/UIView+StyleKit.swift b/StyleKit/StyleKit/UIView+StyleKit.swift similarity index 100% rename from StyleKit/StyleKitDemo/UIView+StyleKit.swift rename to StyleKit/StyleKit/UIView+StyleKit.swift diff --git a/StyleKit/StyleKitDemo/Utils.swift b/StyleKit/StyleKit/Utils.swift similarity index 100% rename from StyleKit/StyleKitDemo/Utils.swift rename to StyleKit/StyleKit/Utils.swift diff --git a/StyleKit/StyleKitDemo/ViewController.swift b/StyleKit/StyleKit/ViewController.swift similarity index 100% rename from StyleKit/StyleKitDemo/ViewController.swift rename to StyleKit/StyleKit/ViewController.swift diff --git a/StyleKit/StyleKitDemo/ViewStylist.swift b/StyleKit/StyleKit/ViewStylist.swift similarity index 100% rename from StyleKit/StyleKitDemo/ViewStylist.swift rename to StyleKit/StyleKit/ViewStylist.swift diff --git a/StyleKit/StyleKitDemo/ViewsTableViewCell.swift b/StyleKit/StyleKit/ViewsTableViewCell.swift similarity index 100% rename from StyleKit/StyleKitDemo/ViewsTableViewCell.swift rename to StyleKit/StyleKit/ViewsTableViewCell.swift From 8fca1eac77b77734d17b29facad142e6fd8c250a Mon Sep 17 00:00:00 2001 From: Eric Kille Date: Fri, 28 Oct 2016 10:33:54 -0400 Subject: [PATCH 3/8] Added a seperate demo project --- .../StyleKit.xcodeproj/project.pbxproj | 470 +++++++ .../contents.xcworkspacedata | 7 + .../StyleKitDemo/StyleKit/AppDelegate.swift | 22 + .../AppIcon.appiconset/Contents.json | 48 + .../BlueBar.imageset/BlueBar.png | Bin 0 -> 2929 bytes .../BlueBar.imageset/Contents.json | 21 + .../BlueDot.imageset/BlueDot.png | Bin 0 -> 2137 bytes .../BlueDot.imageset/Contents.json | 21 + .../StyleKit/Assets.xcassets/Contents.json | 6 + .../Diamond.imageset/Contents.json | 21 + .../Diamond.imageset/Diamond.png | Bin 0 -> 3772 bytes .../GreenBar.imageset/Contents.json | 21 + .../GreenBar.imageset/GreenBar.png | Bin 0 -> 2877 bytes .../Pattern.imageset/Contents.json | 21 + .../Pattern.imageset/pattern@2x.png | Bin 0 -> 6703 bytes .../Star.imageset/Contents.json | 21 + .../Assets.xcassets/Star.imageset/Star.png | Bin 0 -> 4535 bytes .../black_button_image.imageset/Contents.json | 21 + .../black_button_image.png | Bin 0 -> 30305 bytes .../Button_Blank_Green_Icon_256.png | Bin 0 -> 5478 bytes .../greenThumbImage.imageset/Contents.json | 21 + .../Base.lproj/LaunchScreen.storyboard | 27 + .../StyleKit/Base.lproj/Main.storyboard | 685 ++++++++++ .../StyleKitDemo/StyleKit/ButtonStylist.swift | 141 ++ .../StyleKit/ButtonTableViewCell.swift | 26 + StyleKit/StyleKitDemo/StyleKit/DemoCode.swift | 58 + .../StyleKit/Fonts/Brandon_bld.otf | Bin 0 -> 89928 bytes .../StyleKit/Fonts/Brandon_blk.otf | Bin 0 -> 90892 bytes .../StyleKit/Fonts/Brandon_light.otf | Bin 0 -> 87228 bytes .../StyleKit/Fonts/Brandon_light_it.otf | Bin 0 -> 78892 bytes .../StyleKit/Fonts/Brandon_med.otf | Bin 0 -> 89536 bytes .../StyleKit/Fonts/Brandon_thin.otf | Bin 0 -> 90808 bytes StyleKit/StyleKitDemo/StyleKit/Info.plist | 54 + .../StyleKitDemo/StyleKit/LabelStylist.swift | 134 ++ .../StyleKit/LabelsTableViewCell.swift | 21 + .../StyleKit/ProgressViewStylist.swift | 87 ++ .../StyleKit/ProgressViewsTableViewCell.swift | 23 + .../StyleKit/ReadingViewController.swift | 41 + .../StyleKit/SegmentedControlStylist.swift | 130 ++ .../SegmentedControlsTableViewCell.swift | 21 + .../StyleKitDemo/StyleKit/SliderStylist.swift | 95 ++ .../StyleKit/SlidersTableViewCell.swift | 22 + .../StyleKit/StepperStylist.swift | 129 ++ .../StyleKit/SteppersTableViewCell.swift | 22 + StyleKit/StyleKitDemo/StyleKit/Style.json | 200 +++ StyleKit/StyleKitDemo/StyleKit/Style.swift | 309 +++++ StyleKit/StyleKitDemo/StyleKit/Style2.json | 1159 +++++++++++++++++ .../StyleKit/StylesViewController.swift | 124 ++ .../StyleKit/TextFieldStylist.swift | 138 ++ .../StyleKit/TextFieldsTableViewCell.swift | 22 + .../StyleKit/TextViewStylist.swift | 130 ++ .../StyleKit/TextViewsTableViewCell.swift | 18 + .../StyleKit/UIView+StyleKit.swift | 28 + StyleKit/StyleKitDemo/StyleKit/Utils.swift | 64 + .../StyleKit/ViewController.swift | 24 + .../StyleKitDemo/StyleKit/ViewStylist.swift | 164 +++ .../StyleKit/ViewsTableViewCell.swift | 21 + 57 files changed, 4838 insertions(+) create mode 100644 StyleKit/StyleKitDemo/StyleKit.xcodeproj/project.pbxproj create mode 100644 StyleKit/StyleKitDemo/StyleKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 StyleKit/StyleKitDemo/StyleKit/AppDelegate.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/BlueBar.imageset/BlueBar.png create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/BlueBar.imageset/Contents.json create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/BlueDot.imageset/BlueDot.png create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/BlueDot.imageset/Contents.json create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Contents.json create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Diamond.imageset/Contents.json create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Diamond.imageset/Diamond.png create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/GreenBar.imageset/Contents.json create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/GreenBar.imageset/GreenBar.png create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Pattern.imageset/Contents.json create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Pattern.imageset/pattern@2x.png create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Star.imageset/Contents.json create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Star.imageset/Star.png create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/black_button_image.imageset/Contents.json create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/black_button_image.imageset/black_button_image.png create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png create mode 100644 StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/greenThumbImage.imageset/Contents.json create mode 100644 StyleKit/StyleKitDemo/StyleKit/Base.lproj/LaunchScreen.storyboard create mode 100644 StyleKit/StyleKitDemo/StyleKit/Base.lproj/Main.storyboard create mode 100644 StyleKit/StyleKitDemo/StyleKit/ButtonStylist.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/ButtonTableViewCell.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/DemoCode.swift create mode 100755 StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_bld.otf create mode 100755 StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_blk.otf create mode 100755 StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_light.otf create mode 100755 StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_light_it.otf create mode 100755 StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_med.otf create mode 100755 StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_thin.otf create mode 100644 StyleKit/StyleKitDemo/StyleKit/Info.plist create mode 100644 StyleKit/StyleKitDemo/StyleKit/LabelStylist.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/LabelsTableViewCell.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/ProgressViewStylist.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/ProgressViewsTableViewCell.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/ReadingViewController.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/SegmentedControlStylist.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/SegmentedControlsTableViewCell.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/SliderStylist.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/SlidersTableViewCell.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/StepperStylist.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/SteppersTableViewCell.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/Style.json create mode 100644 StyleKit/StyleKitDemo/StyleKit/Style.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/Style2.json create mode 100644 StyleKit/StyleKitDemo/StyleKit/StylesViewController.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/TextFieldStylist.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/TextFieldsTableViewCell.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/TextViewStylist.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/TextViewsTableViewCell.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/UIView+StyleKit.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/Utils.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/ViewController.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/ViewStylist.swift create mode 100644 StyleKit/StyleKitDemo/StyleKit/ViewsTableViewCell.swift diff --git a/StyleKit/StyleKitDemo/StyleKit.xcodeproj/project.pbxproj b/StyleKit/StyleKitDemo/StyleKit.xcodeproj/project.pbxproj new file mode 100644 index 0000000..61fc405 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit.xcodeproj/project.pbxproj @@ -0,0 +1,470 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 2908BCE71DBA61360012C924 /* LabelStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCE61DBA61360012C924 /* LabelStylist.swift */; }; + 2908BCE91DBA61BF0012C924 /* ButtonStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCE81DBA61BF0012C924 /* ButtonStylist.swift */; }; + 2908BCEC1DBA621D0012C924 /* ViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCEB1DBA621D0012C924 /* ViewStylist.swift */; }; + 2908BCEE1DBA62680012C924 /* TextFieldStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCED1DBA62680012C924 /* TextFieldStylist.swift */; }; + 2908BCF01DBA62AA0012C924 /* SegmentedControlStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCEF1DBA62AA0012C924 /* SegmentedControlStylist.swift */; }; + 2908BCF21DBA62E20012C924 /* SliderStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF11DBA62E20012C924 /* SliderStylist.swift */; }; + 2908BCF41DBA631E0012C924 /* StepperStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF31DBA631E0012C924 /* StepperStylist.swift */; }; + 2908BCF61DBA636D0012C924 /* ProgressViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF51DBA636D0012C924 /* ProgressViewStylist.swift */; }; + 2908BCF91DBA89240012C924 /* StylesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF81DBA89240012C924 /* StylesViewController.swift */; }; + 2908BD1F1DBC0EC10012C924 /* ButtonTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD1E1DBC0EC10012C924 /* ButtonTableViewCell.swift */; }; + 2908BD211DBC10A20012C924 /* SegmentedControlsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD201DBC10A20012C924 /* SegmentedControlsTableViewCell.swift */; }; + 2908BD231DBC10BE0012C924 /* TextFieldsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD221DBC10BE0012C924 /* TextFieldsTableViewCell.swift */; }; + 2908BD251DBC10D60012C924 /* LabelsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD241DBC10D60012C924 /* LabelsTableViewCell.swift */; }; + 2908BD271DBC10EB0012C924 /* SlidersTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD261DBC10EB0012C924 /* SlidersTableViewCell.swift */; }; + 2908BD291DBC10FF0012C924 /* SteppersTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD281DBC10FF0012C924 /* SteppersTableViewCell.swift */; }; + 2908BD2B1DBC11120012C924 /* ProgressViewsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD2A1DBC11120012C924 /* ProgressViewsTableViewCell.swift */; }; + 2908BD2D1DBC11220012C924 /* ViewsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD2C1DBC11220012C924 /* ViewsTableViewCell.swift */; }; + 2908BD591DC24A5D0012C924 /* DemoCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD581DC24A5D0012C924 /* DemoCode.swift */; }; + 294526981DC39852003AF49E /* Brandon_bld.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526921DC39852003AF49E /* Brandon_bld.otf */; }; + 294526991DC39852003AF49E /* Brandon_blk.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526931DC39852003AF49E /* Brandon_blk.otf */; }; + 2945269A1DC39852003AF49E /* Brandon_light_it.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526941DC39852003AF49E /* Brandon_light_it.otf */; }; + 2945269B1DC39852003AF49E /* Brandon_light.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526951DC39852003AF49E /* Brandon_light.otf */; }; + 2945269C1DC39852003AF49E /* Brandon_med.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526961DC39852003AF49E /* Brandon_med.otf */; }; + 2945269D1DC39852003AF49E /* Brandon_thin.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526971DC39852003AF49E /* Brandon_thin.otf */; }; + 295D21791C9214AA001626BD /* Style.json in Resources */ = {isa = PBXBuildFile; fileRef = 295D21781C9214AA001626BD /* Style.json */; }; + 298DC60B1C92073E00BB0D29 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 298DC60A1C92073E00BB0D29 /* AppDelegate.swift */; }; + 298DC60D1C92073E00BB0D29 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 298DC60C1C92073E00BB0D29 /* ViewController.swift */; }; + 298DC6101C92073E00BB0D29 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 298DC60E1C92073E00BB0D29 /* Main.storyboard */; }; + 298DC6121C92073E00BB0D29 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 298DC6111C92073E00BB0D29 /* Assets.xcassets */; }; + 298DC6151C92073E00BB0D29 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 298DC6131C92073E00BB0D29 /* LaunchScreen.storyboard */; }; + 298E3BC81DB56D7B00B54DD0 /* Style2.json in Resources */ = {isa = PBXBuildFile; fileRef = 298E3BC71DB56D7B00B54DD0 /* Style2.json */; }; + 29EBA4911DB69EA500CAFFEA /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EBA4901DB69EA500CAFFEA /* Utils.swift */; }; + C406E7BC1DBFFF59004865CA /* ReadingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C406E7BB1DBFFF59004865CA /* ReadingViewController.swift */; }; + C406E7C21DC0F63C004865CA /* TextViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = C406E7C11DC0F63C004865CA /* TextViewStylist.swift */; }; + C406E7C41DC0F81D004865CA /* TextViewsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C406E7C31DC0F81D004865CA /* TextViewsTableViewCell.swift */; }; + C446D61D1CB540CA00EBC929 /* Style.swift in Sources */ = {isa = PBXBuildFile; fileRef = C446D61B1CB540CA00EBC929 /* Style.swift */; }; + C446D61E1CB540CA00EBC929 /* UIView+StyleKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C446D61C1CB540CA00EBC929 /* UIView+StyleKit.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 2908BCE61DBA61360012C924 /* LabelStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LabelStylist.swift; sourceTree = ""; }; + 2908BCE81DBA61BF0012C924 /* ButtonStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonStylist.swift; sourceTree = ""; }; + 2908BCEB1DBA621D0012C924 /* ViewStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewStylist.swift; sourceTree = ""; }; + 2908BCED1DBA62680012C924 /* TextFieldStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldStylist.swift; sourceTree = ""; }; + 2908BCEF1DBA62AA0012C924 /* SegmentedControlStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SegmentedControlStylist.swift; sourceTree = ""; }; + 2908BCF11DBA62E20012C924 /* SliderStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SliderStylist.swift; sourceTree = ""; }; + 2908BCF31DBA631E0012C924 /* StepperStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StepperStylist.swift; sourceTree = ""; }; + 2908BCF51DBA636D0012C924 /* ProgressViewStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProgressViewStylist.swift; sourceTree = ""; }; + 2908BCF81DBA89240012C924 /* StylesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StylesViewController.swift; sourceTree = ""; }; + 2908BD1E1DBC0EC10012C924 /* ButtonTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonTableViewCell.swift; sourceTree = ""; }; + 2908BD201DBC10A20012C924 /* SegmentedControlsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SegmentedControlsTableViewCell.swift; sourceTree = ""; }; + 2908BD221DBC10BE0012C924 /* TextFieldsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldsTableViewCell.swift; sourceTree = ""; }; + 2908BD241DBC10D60012C924 /* LabelsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LabelsTableViewCell.swift; sourceTree = ""; }; + 2908BD261DBC10EB0012C924 /* SlidersTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SlidersTableViewCell.swift; sourceTree = ""; }; + 2908BD281DBC10FF0012C924 /* SteppersTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SteppersTableViewCell.swift; sourceTree = ""; }; + 2908BD2A1DBC11120012C924 /* ProgressViewsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProgressViewsTableViewCell.swift; sourceTree = ""; }; + 2908BD2C1DBC11220012C924 /* ViewsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewsTableViewCell.swift; sourceTree = ""; }; + 2908BD581DC24A5D0012C924 /* DemoCode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DemoCode.swift; sourceTree = ""; }; + 294526921DC39852003AF49E /* Brandon_bld.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_bld.otf; path = StyleKit/Fonts/Brandon_bld.otf; sourceTree = SOURCE_ROOT; }; + 294526931DC39852003AF49E /* Brandon_blk.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_blk.otf; path = StyleKit/Fonts/Brandon_blk.otf; sourceTree = SOURCE_ROOT; }; + 294526941DC39852003AF49E /* Brandon_light_it.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_light_it.otf; path = StyleKit/Fonts/Brandon_light_it.otf; sourceTree = SOURCE_ROOT; }; + 294526951DC39852003AF49E /* Brandon_light.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_light.otf; path = StyleKit/Fonts/Brandon_light.otf; sourceTree = SOURCE_ROOT; }; + 294526961DC39852003AF49E /* Brandon_med.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_med.otf; path = StyleKit/Fonts/Brandon_med.otf; sourceTree = SOURCE_ROOT; }; + 294526971DC39852003AF49E /* Brandon_thin.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_thin.otf; path = StyleKit/Fonts/Brandon_thin.otf; sourceTree = SOURCE_ROOT; }; + 295D21781C9214AA001626BD /* Style.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; lineEnding = 0; path = Style.json; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.javascript; }; + 298DC6071C92073E00BB0D29 /* StyleKit.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = StyleKit.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 298DC60A1C92073E00BB0D29 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 298DC60C1C92073E00BB0D29 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 298DC60F1C92073E00BB0D29 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 298DC6111C92073E00BB0D29 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 298DC6141C92073E00BB0D29 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 298DC6161C92073E00BB0D29 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 298E3BC71DB56D7B00B54DD0 /* Style2.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Style2.json; sourceTree = ""; }; + 29EBA4901DB69EA500CAFFEA /* Utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = ""; }; + C406E7BB1DBFFF59004865CA /* ReadingViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadingViewController.swift; sourceTree = ""; }; + C406E7C11DC0F63C004865CA /* TextViewStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextViewStylist.swift; sourceTree = ""; }; + C406E7C31DC0F81D004865CA /* TextViewsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextViewsTableViewCell.swift; sourceTree = ""; }; + C446D61B1CB540CA00EBC929 /* Style.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Style.swift; sourceTree = ""; }; + C446D61C1CB540CA00EBC929 /* UIView+StyleKit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIView+StyleKit.swift"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 298DC6041C92073E00BB0D29 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2908BCE51DB818160012C924 /* Fonts */ = { + isa = PBXGroup; + children = ( + 294526921DC39852003AF49E /* Brandon_bld.otf */, + 294526931DC39852003AF49E /* Brandon_blk.otf */, + 294526941DC39852003AF49E /* Brandon_light_it.otf */, + 294526951DC39852003AF49E /* Brandon_light.otf */, + 294526961DC39852003AF49E /* Brandon_med.otf */, + 294526971DC39852003AF49E /* Brandon_thin.otf */, + ); + name = Fonts; + path = StyleKitDemo/Fonts; + sourceTree = ""; + }; + 2908BCEA1DBA61CB0012C924 /* Stylist */ = { + isa = PBXGroup; + children = ( + 2908BCED1DBA62680012C924 /* TextFieldStylist.swift */, + 2908BCE61DBA61360012C924 /* LabelStylist.swift */, + 2908BCE81DBA61BF0012C924 /* ButtonStylist.swift */, + 2908BCEB1DBA621D0012C924 /* ViewStylist.swift */, + 2908BCEF1DBA62AA0012C924 /* SegmentedControlStylist.swift */, + 2908BCF11DBA62E20012C924 /* SliderStylist.swift */, + 2908BCF31DBA631E0012C924 /* StepperStylist.swift */, + 2908BCF51DBA636D0012C924 /* ProgressViewStylist.swift */, + C406E7C11DC0F63C004865CA /* TextViewStylist.swift */, + ); + name = Stylist; + sourceTree = ""; + }; + 2908BCF71DBA887B0012C924 /* ViewControllers */ = { + isa = PBXGroup; + children = ( + 2908BCF81DBA89240012C924 /* StylesViewController.swift */, + 298DC60C1C92073E00BB0D29 /* ViewController.swift */, + C406E7BB1DBFFF59004865CA /* ReadingViewController.swift */, + ); + name = ViewControllers; + sourceTree = ""; + }; + 2908BD2E1DBC11310012C924 /* Cells */ = { + isa = PBXGroup; + children = ( + 2908BD1E1DBC0EC10012C924 /* ButtonTableViewCell.swift */, + 2908BD201DBC10A20012C924 /* SegmentedControlsTableViewCell.swift */, + 2908BD221DBC10BE0012C924 /* TextFieldsTableViewCell.swift */, + 2908BD241DBC10D60012C924 /* LabelsTableViewCell.swift */, + 2908BD261DBC10EB0012C924 /* SlidersTableViewCell.swift */, + 2908BD281DBC10FF0012C924 /* SteppersTableViewCell.swift */, + 2908BD2A1DBC11120012C924 /* ProgressViewsTableViewCell.swift */, + 2908BD2C1DBC11220012C924 /* ViewsTableViewCell.swift */, + C406E7C31DC0F81D004865CA /* TextViewsTableViewCell.swift */, + ); + name = Cells; + sourceTree = ""; + }; + 2932CEE21C93691E00F83F34 /* StyleKit */ = { + isa = PBXGroup; + children = ( + 2908BD581DC24A5D0012C924 /* DemoCode.swift */, + 298DC60A1C92073E00BB0D29 /* AppDelegate.swift */, + C446D61B1CB540CA00EBC929 /* Style.swift */, + 29EBA4901DB69EA500CAFFEA /* Utils.swift */, + C446D61C1CB540CA00EBC929 /* UIView+StyleKit.swift */, + 2908BCEA1DBA61CB0012C924 /* Stylist */, + 2908BCF71DBA887B0012C924 /* ViewControllers */, + 2908BD2E1DBC11310012C924 /* Cells */, + ); + name = StyleKit; + sourceTree = ""; + }; + 298DC5FE1C92073E00BB0D29 = { + isa = PBXGroup; + children = ( + 2908BCE51DB818160012C924 /* Fonts */, + 298DC6091C92073E00BB0D29 /* StyleKitDemo */, + 298DC6081C92073E00BB0D29 /* Products */, + ); + sourceTree = ""; + }; + 298DC6081C92073E00BB0D29 /* Products */ = { + isa = PBXGroup; + children = ( + 298DC6071C92073E00BB0D29 /* StyleKit.app */, + ); + name = Products; + sourceTree = ""; + }; + 298DC6091C92073E00BB0D29 /* StyleKitDemo */ = { + isa = PBXGroup; + children = ( + 295D21781C9214AA001626BD /* Style.json */, + 298E3BC71DB56D7B00B54DD0 /* Style2.json */, + 2932CEE21C93691E00F83F34 /* StyleKit */, + 298DC60E1C92073E00BB0D29 /* Main.storyboard */, + 298DC6111C92073E00BB0D29 /* Assets.xcassets */, + 298DC6131C92073E00BB0D29 /* LaunchScreen.storyboard */, + 298DC6161C92073E00BB0D29 /* Info.plist */, + ); + name = StyleKitDemo; + path = StyleKit; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 298DC6061C92073E00BB0D29 /* StyleKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKit" */; + buildPhases = ( + 298DC6031C92073E00BB0D29 /* Sources */, + 298DC6041C92073E00BB0D29 /* Frameworks */, + 298DC6051C92073E00BB0D29 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = StyleKit; + productName = StyleKitSample; + productReference = 298DC6071C92073E00BB0D29 /* StyleKit.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 298DC5FF1C92073E00BB0D29 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0720; + LastUpgradeCheck = 0800; + ORGANIZATIONNAME = "Tonic Design"; + TargetAttributes = { + 298DC6061C92073E00BB0D29 = { + CreatedOnToolsVersion = 7.2.1; + LastSwiftMigration = 0800; + }; + }; + }; + buildConfigurationList = 298DC6021C92073E00BB0D29 /* Build configuration list for PBXProject "StyleKit" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 298DC5FE1C92073E00BB0D29; + productRefGroup = 298DC6081C92073E00BB0D29 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 298DC6061C92073E00BB0D29 /* StyleKit */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 298DC6051C92073E00BB0D29 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 298DC6151C92073E00BB0D29 /* LaunchScreen.storyboard in Resources */, + 2945269C1DC39852003AF49E /* Brandon_med.otf in Resources */, + 298DC6121C92073E00BB0D29 /* Assets.xcassets in Resources */, + 2945269A1DC39852003AF49E /* Brandon_light_it.otf in Resources */, + 2945269D1DC39852003AF49E /* Brandon_thin.otf in Resources */, + 294526991DC39852003AF49E /* Brandon_blk.otf in Resources */, + 2945269B1DC39852003AF49E /* Brandon_light.otf in Resources */, + 298E3BC81DB56D7B00B54DD0 /* Style2.json in Resources */, + 298DC6101C92073E00BB0D29 /* Main.storyboard in Resources */, + 295D21791C9214AA001626BD /* Style.json in Resources */, + 294526981DC39852003AF49E /* Brandon_bld.otf in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 298DC6031C92073E00BB0D29 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 298DC60D1C92073E00BB0D29 /* ViewController.swift in Sources */, + 2908BD591DC24A5D0012C924 /* DemoCode.swift in Sources */, + 2908BD2D1DBC11220012C924 /* ViewsTableViewCell.swift in Sources */, + 2908BD1F1DBC0EC10012C924 /* ButtonTableViewCell.swift in Sources */, + 2908BCEC1DBA621D0012C924 /* ViewStylist.swift in Sources */, + 2908BD271DBC10EB0012C924 /* SlidersTableViewCell.swift in Sources */, + C406E7BC1DBFFF59004865CA /* ReadingViewController.swift in Sources */, + C406E7C21DC0F63C004865CA /* TextViewStylist.swift in Sources */, + 2908BD291DBC10FF0012C924 /* SteppersTableViewCell.swift in Sources */, + 2908BCF61DBA636D0012C924 /* ProgressViewStylist.swift in Sources */, + 2908BCF91DBA89240012C924 /* StylesViewController.swift in Sources */, + 2908BCF01DBA62AA0012C924 /* SegmentedControlStylist.swift in Sources */, + 2908BD251DBC10D60012C924 /* LabelsTableViewCell.swift in Sources */, + C446D61E1CB540CA00EBC929 /* UIView+StyleKit.swift in Sources */, + C406E7C41DC0F81D004865CA /* TextViewsTableViewCell.swift in Sources */, + 2908BCE71DBA61360012C924 /* LabelStylist.swift in Sources */, + 2908BCF21DBA62E20012C924 /* SliderStylist.swift in Sources */, + 2908BD2B1DBC11120012C924 /* ProgressViewsTableViewCell.swift in Sources */, + 2908BCEE1DBA62680012C924 /* TextFieldStylist.swift in Sources */, + 2908BD211DBC10A20012C924 /* SegmentedControlsTableViewCell.swift in Sources */, + 29EBA4911DB69EA500CAFFEA /* Utils.swift in Sources */, + 2908BCF41DBA631E0012C924 /* StepperStylist.swift in Sources */, + 2908BCE91DBA61BF0012C924 /* ButtonStylist.swift in Sources */, + C446D61D1CB540CA00EBC929 /* Style.swift in Sources */, + 298DC60B1C92073E00BB0D29 /* AppDelegate.swift in Sources */, + 2908BD231DBC10BE0012C924 /* TextFieldsTableViewCell.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 298DC60E1C92073E00BB0D29 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 298DC60F1C92073E00BB0D29 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 298DC6131C92073E00BB0D29 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 298DC6141C92073E00BB0D29 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 298DC6171C92073E00BB0D29 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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 = 9.2; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 298DC6181C92073E00BB0D29 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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 = 9.2; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 298DC61A1C92073E00BB0D29 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = StyleKit/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKitSample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 2.3; + }; + name = Debug; + }; + 298DC61B1C92073E00BB0D29 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = StyleKit/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKitSample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 2.3; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 298DC6021C92073E00BB0D29 /* Build configuration list for PBXProject "StyleKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 298DC6171C92073E00BB0D29 /* Debug */, + 298DC6181C92073E00BB0D29 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 298DC61A1C92073E00BB0D29 /* Debug */, + 298DC61B1C92073E00BB0D29 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 298DC5FF1C92073E00BB0D29 /* Project object */; +} diff --git a/StyleKit/StyleKitDemo/StyleKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/StyleKit/StyleKitDemo/StyleKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..7c5bdc5 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/StyleKit/StyleKitDemo/StyleKit/AppDelegate.swift b/StyleKit/StyleKitDemo/StyleKit/AppDelegate.swift new file mode 100644 index 0000000..83c20ba --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/AppDelegate.swift @@ -0,0 +1,22 @@ +// +// AppDelegate.swift +// StyleKitSample +// +// Created by Eric Kille on 3/10/16. +// Copyright © 2016 Tonic Design. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { + + Utils.copyStyleFileFromBundle() + return true + } + +} diff --git a/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/AppIcon.appiconset/Contents.json b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..b8236c6 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,48 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/BlueBar.imageset/BlueBar.png b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/BlueBar.imageset/BlueBar.png new file mode 100644 index 0000000000000000000000000000000000000000..a07fd5d55183ab06fb8f27b2c9a1fb804a354195 GIT binary patch literal 2929 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 b1s~NLm+^c0*}_?X00000NkvXXu0mjfRMC(% literal 0 HcmV?d00001 diff --git a/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/BlueBar.imageset/Contents.json b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/BlueBar.imageset/Contents.json new file mode 100644 index 0000000..a73f3c4 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/BlueBar.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "BlueBar.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/BlueDot.imageset/BlueDot.png b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/BlueDot.imageset/BlueDot.png new file mode 100644 index 0000000000000000000000000000000000000000..4ffab83682385abe7c584e4fd1045b53642a51c3 GIT binary patch literal 2137 zcmY*adpy&7AOB6mEVRjGuIFbKA~p*rvyIJm4!PtA5n{HbG1skZavqnKN95jxj-r<% ziAOFwsc@Q06nd#VVaZ&2P87L>Zj@)Lr{{UTuh;kc{e0fv&*%OAe7@g5zNfssepZ9) z!2tkJb91Hn$aj;?2~(1o06KA{w|^l503?v(8^90n^dK-}qpcaN*l@PBAUaN-0RTh+L2gE~ z`3z7H&5hv^1SIsA2!h<+gt2JwO9(%TgbwiZ23=wk*r1)Ytu+o!hJzqTOkf=*_|Sg( zmM-^5=p%f7907|>OiZ*++-)735P`LEaB#rl@K`+FN*-aw6UOiv0;?FF$ybv9@X**i zW&$UU&xwrzH+dQ1u}AqNGeE%yvRL~EL$akJxM}9dTnnF(c-dP--LEos*9lxRuN0Tx z^#tejM1=ue8gY}<(@=)_{dK_|VwvNzp{&bapAxVG1Q{RhkdH!ExjF`c6#>VV`TB2$jn7QRjf>i z8*|T|Wg~+v`@)~PLK!28c6bPnMtH%wpcG$faNGP@?T(n|OAr3)Ovzr&W7Q>pi2n4h zV*Z+9Yk`ii2(*PE_6+dGv!U&^c$W}O`ro+LX8vuf)x(7?dE~Y7HM|dY2XFFig%o%1 zhHA390u-sz9dDrAc4%Ohrr~4zvZ37{^Bg0~MmN9dobDSqM4LIuk_D~3@VT^V^wgpF zYB~g@zM_lly7L)UeT@Ycjq3jY3bu@U^tdRfZ@i+Wcl=)K@nu=%L5-9HXYQgVfTj(u zTOkHgsq7mBMcL1YLtfF(7&&#VX$!0TvvtazeH4fu!b-L_|ImMIbgaiZ%QQ~YJWa)% zI&(i5BUTSYR!00*ueDQpBD&WfaZcymaGiQ{{|Cjj$@&W$=Y;#rxB5ZD^du`YXRRRh zRhLho)Pjb@xw+8DKQ6>#<~jt~H>Yrz<>}=xJNH3{QlvyLCu6{C)Fck?e`6)TqWa)! z(%2fs02vRn)V(Kda(FizJ8+<_;M4o)DNjru zWw^VjHs9ZRw&A%}*%i|9rnjL-;JG%=3E?3;*K7nceNcSyeI|+=X7S6Aq{H7aKjN;P zfVSkwTc{e7RpCtZ3l=@pV7O96YmFIXT9ns5MPo2@u9)e*?NSoobUIf(MHYXIpbcK; z)&OwPZZ*buLz-qAzOHab)DU>`2j;0v-vN^@1)W`8O89LPFPEKF=n6PJ2t6J85CTV` zR{VTsB+km@x3H0sy~@I--|}7y%P2c>rvYcwe#0~$EyI}PdZy>Zn~I)oYwh*|{S|}{ z_D$H1c;fb;G*drCyfX}d@eE!zAdx`H7AmvO<18ReH^w(I43U4n7!&`dfHru2Uu&eyT&r)se>eno^ydk#nOj1nQL*6+O9of&N>2$Ydk( z?Z%Uu5z4savzkogm7YU9*DQeaU`>%ddh6j*^`2)b0kiC%w4oggF1J6T?_kRVox`EU z?#UTvUm-+SCh~n3+b^%ipWe$LO1+ zKW3fwl2YK+bvt(_Nud1(PRP_Fc7aBT8r@37DX?M8^qGFsfn!-{Ck!~9PS@ipfC{W+ z0)ikxB0JBUQdgiugIkoC>j9S8Q~6Oj&kr%Rq_paCRH0f2DvUkpPPpgF5{j4n&Rqj3 z^ej8>2z4lM@R;63Pr>_-!?Q~nx@8EIiC!)|)d;YYX6|YmS~RxdE^en7Zu!tFD|A%p z?y;9Fvey6ZIX46;$VWP-;;wKObSuno<(Ue*&tESrR1+NRR384* zd?4J$be+69(W_0Oa13ZeTBSxUhnrq*u|OrcPCCNodoV>hca3x$xdq0$F-h!_>mxQ? zq({O9gL1ek$m1fq{Vu}ti?5+u_GBGo zB2FMk9jIVOAlpf%+a_s{HHY)}-h5cHpgpVug9SrNqVxr{nl!1!i`JiQm1O+mZdT;c zkf7F^VV@rDJ<$1h>|Ud|ICun|EF|Ep(%_eaV`*LnIqYWuhwy`@me|0yy7p;yOmi})-!;pIb literal 0 HcmV?d00001 diff --git a/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/BlueDot.imageset/Contents.json b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/BlueDot.imageset/Contents.json new file mode 100644 index 0000000..97bac46 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/BlueDot.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "BlueDot.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Contents.json b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Diamond.imageset/Contents.json b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Diamond.imageset/Contents.json new file mode 100644 index 0000000..bb81aa0 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Diamond.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "Diamond.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Diamond.imageset/Diamond.png b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Diamond.imageset/Diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..c680326f470c684e9f52de9bfe652f88e78bd130 GIT binary patch literal 3772 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 bKTqoeJmW-}b+lsk00000NkvXXu0mjf4=Qxc literal 0 HcmV?d00001 diff --git a/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Pattern.imageset/Contents.json b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Pattern.imageset/Contents.json new file mode 100644 index 0000000..faf34ee --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Pattern.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "pattern@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Pattern.imageset/pattern@2x.png b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Pattern.imageset/pattern@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..49a35421e657c8eeb0f53196bf2fecb9364835c9 GIT binary patch literal 6703 zcmV+~8qnp5P)X+uL$Nkc;* zP;zf(X>4Tx07wm;mUmQB*%pV-y*Itk5+Wca^cs2zAksTX6$DXM^`x7XQc?|s+0 z08spb1j2M!0f022SQPH-!CVp(%f$Br7!UytSOLJ{W@ZFO_(THK{JlMynW#v{v-a*T zfMmPdEWc1DbJqWVks>!kBnAKqMb$PuekK>?0+ds;#ThdH1j_W4DKdsJG8Ul;qO2n0 z#IJ1jr{*iW$(WZWsE0n`c;fQ!l&-AnmjxZO1uWyz`0VP>&nP`#itsL#`S=Q!g`M=rU9)45( zJ;-|dRq-b5&z?byo>|{)?5r=n76A4nTALlSzLiw~v~31J<>9PP?;rs31pu_(obw)r zY+jPY;tVGXi|p)da{-@gE-UCa`=5eu%D;v=_nFJ?`&K)q7e9d`Nfk3?MdhZarb|T3 z%nS~f&t(1g5dY)AIcd$w!z`Siz!&j_=v7hZlnI21XuE|xfmo0(WD10T)!}~_HYW!e zew}L+XmwuzeT6wtxJd`dZ#@7*BLgIEKY9Xv>st^p3dp{^Xswa2bB{85{^$B13tWnB z;Y>jyQ|9&zk7RNsqAVGs--K+z0uqo1bf5|}fi5rtEMN^BfHQCd-XH*kfJhJnmIE$G z0%<@5vOzxB0181d*a3EfYH$G5fqKvcPJ%XY23!PJzzuK<41h;K3WmW;Fah3yX$XSw z5EY_9s*o0>51B&N5F1(uc|$=^I1~fLLy3?Ol0f;;Ca4%HgQ}rJP(Ab`bQ-z{U4#0d z2hboi2K@njgb|nm(_szR0JebHusa+GN5aeCM0gdP2N%HG;Yzp`J`T6S7vUT504#-H z!jlL<$Or?`Mpy_N@kBz9SR?@vA#0H$qyni$nvf2p8@Y{0k#Xb$28W?xm>3qu8RLgp zjNxKdVb)?wFx8l2m{v>|<~C*!GlBVnrDD~wrdTJeKXwT=5u1%I#8zOBU|X=4u>;s) z>^mF|$G{ol9B_WP7+f-LHLe7=57&&lfa}8z;U@8Tyei%l?}87(bMRt(A-)QK9Dg3) zj~~XrCy)tR1Z#p1A(kK{Y$Q|=8VKhI{e%(1G*N-5Pjn)N5P8I0VkxnX*g?EW941ba z6iJ387g8iCnY4jaNopcpCOsy-A(P2EWJhusSwLP-t|XrzUnLKcKTwn?CKOLf97RIe zPB}`sKzTrUL#0v;sBY9)s+hW+T2H-1eM)^VN0T#`^Oxhvt&^*fYnAJldnHel*Ozyf zUoM{~Um<@={-*r60#U(0!Bc^wuvVc);k3d%g-J!4qLpHZVwz%!VuRu}#Ze`^l7W)9 z5>Kf>>9Eozr6C$Z)1`URxU@~QI@)F0FdauXr2Es8>BaOP=)Lp_WhG@>R;lZ?BJkMlIuMhw8ApiF&yDYW2hFJ?fJhni{?u z85&g@mo&yT8JcdI$(rSw=QPK(Xj%)k1X|@<=e1rim6`6$RAwc!i#egKuI;BS(LSWz zt39n_sIypSqfWEV6J3%nTQ@-4i zi$R;gsG*9XzhRzXqv2yCs*$VFDx+GXJH|L;wsDH_KI2;^u!)^Xl1YupO;gy^-c(?^ z&$Q1BYvyPsG^;hc$D**@Sy`+`)}T4VJji^bd7Jqw3q6Zii=7tT7GEswEK@D(EFW1Z zSp`^awCb?>!`j4}Yh7b~$A)U-W3$et-R8BesV(1jzwLcHnq9En7Q0Tn&-M=XBKs!$ zF$X<|c!#|X_tWYh)GZit z(Q)Cp9CDE^WG;+fcyOWARoj*0TI>4EP1lX*cEoMO-Pk?Z{kZ!p4@(b`M~lalr<3Oz z&kJ6Nm#vN_+kA5{dW4@^Vjg_`q%qU1ULk& z3Fr!>1V#i_2R;ij2@(Z$1jE4r!MlPVFVbHmT+|iPIq0wy5aS{>yK?9ZAjVh%SOwMWgFjair&;wpi!{CU}&@N=Eg#~ zLQ&zpEzVmGY{hI9Z0+4-0xS$$Xe-OToc?Y*V;rTcf_ zb_jRe-RZjXSeas3UfIyD;9afd%<`i0x4T#DzE)vdabOQ=k7SRuGN`h>O0Q~1)u-yD z>VX=Mn&!Rgd$;YK+Q-}1zu#?t(*cbG#Ronf6db&N$oEidtwC+YVcg-Y!_VuY>bk#Y ze_ww@?MU&F&qswvrN_dLb=5o6*Egs)ls3YRlE$&)amR1{;Ppd$6RYV^Go!iq1UMl% z@#4q$AMc(FJlT1QeX8jv{h#)>&{~RGq1N2iiMFIRX?sk2-|2wUogK~{EkB$8eDsX= znVPf8XG_nK&J~=SIiGia@9y}|z3FhX{g&gcj=lwb=lWgyFW&aLedUh- zof`v-2Kw$UzI*>(+&$@i-u=-BsSjR1%z8NeX#HdC`Hh-Z(6xI-`hmHDqv!v)W&&nrf>M(RhcN6(D;jNN*%^u_SYjF;2ng}*8Ow)d6M ztDk;%`@Lsk$;9w$(d(H%O5UixIr`T2ZRcd@KoQ#r8YEgIkn93cK!k8X5lbOF zgd?FS_TH>-)_k*PzS-xFk8^F`bD4?mUh`P9p5LrJ=iHlQn5Jo^?ba}y`pRnc+OS@~ zHjU%iVHlpbpQph(467Blun+nm4Vu78jqGzfY%x71-#OR^U24jojEnp#e@R9@r}9*P z_y73j-*R`?@_)y`bJKEq;~o2Xd73`T^NapKaB<=8W^;bEUSBb=d~t^7GT;L80j>zp z3ea(hcx?j)dME`JvF`^!hw1ceF|Wxl;%j+o52F;RI8=%2{wIipY+8UaxTHSuQR7V_ zD#JQobAF8V_Ari@&)mCrZJx~l|D$18fA93^AFqe?CCCj;63XdBY5i<*T0*A*7YjyN z(KQ0Pe+Peq9hLmTIt1U}CVYda{FE)kVX1Zhz1SV&{7Q6uX@Qoi%(})zN3jfbf zefo+e{?bxjx6f4&5!PKHd(`s8oFg9|wY^6z@5mh%fk$ocQOk34t?>Qiv;X;bz;*!q zd!PCIg@a-Bws=!j=%zVZF|~q=0zD2|;k805f6E?GxASmUebpPI`=8#TOTpLpKFa*x zpH{Cw`>*$}4R*sn^@V4i{qwLIUaSFTuYCK**4$pT5U+Z^*1^Gke8pArS`bolV>%e?N0EP%dHZkg zzxUE`=eg&;xt`WPU$8gX4j&dC>qhbMV_3OO1}n71L{h)Kil$)d{z1@ z$u0j{>msmipM2&JK#90&*p`2?{U3+%TbpUvygIHOk*MT6Wr!C0^NB0h70?R6raa34 z_dwqm69|e1fO8IG_PLI^yy=0^12)sT zgHvZ$YfnF6K#JL-ADxSM^iBEG&P`bJ^Aq3&34mE>wm7lO*u;cslNqRUV3--0$xHamoKQ9-KA6AG|Qd3Li3>0kX=c zoJd`-PPp*zx~}rIf~!2elM9}!3Z(qqe>>hMIse1-!sh-bPM^W62hD4dUt1h(6=ZCh zbKqd#_m`swk>^_GC+aDspjTd@%2n(tXDWUx$vh-M2SvNN3-VEmy8pm|Hwl=;d(M>y zwB~NbGpb3Xkx%2J4&Tz?uk(M#D*VRowB8^LeK%j>G%MS-9>pZ0^3p==XoV&?LD6Un z?TgzI0T*4yB-2Ei&!MkP<*U7vO?gZDIH$5PR(Z-rc-xhA4s5dpH+xB+uuK?dNs-~;OXgpiGu3TqLEpR?O&OMmx&|MS1O_taC{@^A3+ipV>zGWvyqRnu09#dshDpUrjE*OFgd zNz4GsP+K2nOj+IkR6&X`w(@fv^KW)SNJ6<+vi&613P(kmZWfv zRQa`HYXVw;?*98bHGM5CZ|Hr@e{qLb0N@0}Wv4ad2sF}~qcua>UO`&=TGDhK{_yW- zu%;D>c9VAh%Qt!}AB-ER#=kv&{P~Z7r^)4=7b8|V7_Wd)fM^Ac=OvYCXrTtkV;?j$ zozM;B+d|bo)d2B_`Lip3_rE+KRYE0yGOXCE3Ei+I@0@;+{D&*ewy#~F4~-Oj;R9{_ zRLFjyV8lFMd)Q}v-m`tV{E(~r)j!2QWE|SWzGMq*vPM5h)t_DY)&B1P@y~zwmL}ps z^Hl-1s(__`ikBdd-)sPI{6=T~^WGBDI4>o?pP~6%q2fGM`k3tNpP^A_+y0li=e8a+a5yBHOy5uj3vT)Ah3Ms0Wcx?6=mVX z&TpNJmmk95N4`Jz8}`w5&UgRkn1uN3Vg5JwPoGYJUx2jv#Wc^(5&((_!Ed$~GHkz< zQdZe8LD9Z!n#wz&-pPbLh{zvx#r7*$s_14gbzomDPiIQVmm?D(6WxF0*lUdErHtos z$p2=t3eO6itmQl2t)8EjQQlkU$+^e1KryWdFuDBmfUrx}b-&;#9Toz(vRCZGel$|> z=la?2{sWi@R7C3u&i`h#-?XCY1%IUihRGcs<$10OU{z5S(5eb{o+a+% zyiwGi*0}pW=Nz%p{I=qw@qHBekADyEHBc4QSBk^094&)giw7bEL;y)}vVvFqav)(Z zZ4C0F0o<3*#ifGi0qXvj1%|N&MXTdoUJ;AnMt;T^Ys^ccPayyPwPdt384}02kzq=& z40!c%F5AQIl02@Fk_Th!U`gJYCmu_uu2a&-vfn zf6Bh4$to5>qsb0q@DY`mDDj8_SS+gyVV{{H6HNtBS6ruUv%T{c-)~PU!36tJyiU~e zaEC{pLv#GWkENkcX3rWhwn!P^V?WBP5GLy~tk`ve zX9E>vyyKcC?hZlgA9`#b}D^3p#mD~Ep~N~ws-$MBN|@ji4^gT-_oFqR&K!v zEm7+*$e72SiXRLy*8Mf&oojxoK2Le7_)+4+@}u(e-Uk`9odAJ-tXi%^?U`rMt6u=! z|9#890e=2h{F)U8Np}o{C;Oz?(y{2mpZrS2KIl^G{?8=~@hOkLM=Z}Z`=m=TeUfua z`L_?P_NN8WDowanKvYA1m4_`Azm`xbiO|D6zTYb>WQNAYIIK!)+MO5*i7MZP&QI(j z=rODOs=oVQz5!1{{_Wps-Tt*?1ponbePyr!#cMwlZYdmZ`AXNg)zFfb` z;uzHP%h!p{@Jx2k_(MzxN*ZL~5nJUC7f4ke z1aS^L>>EYv{(H@MlKJ0^_ScdR+>p4KRP3oLjv<6qGsqNv>?J6D-79jaoHn5qQ7dYy zt^tWbLh+#PRIyDVZ48XG9rR(E_(R#L;&lIyeg4CT*7!!>83O!-4vGe#ac)VN0$Krz zJr9dT?5!%O0hDt=wh4!?JTL5b{}G+t8*{x+`S%a4s9b138>?8DkjDZ-a)1KRKvbaE zN?Dowyuw$%Sc>}-B1L^dD-o*vrYC?o>O*~pQ%=#fK7GK@mz_da_kYeA;-QVPWBhG> z-|`>-9^O6Ed`CP4*nmUVeb@YK@we7zN#0X_T~~XQU*9NtU@Cr7z&Yq*9~4dX`Rx2` z@we7zN#0X_T~~XQzx%IO?7{z*hJXEryD0x65W%fqS#m`%9tIiw?1Qo)DQsGCH6dC+ zxHnPjkOwl+FRm<65&1F9`)VP5?f!d|{vYyhe=T|H0|Vljh?Rm=04CZ%(W)zj&2w&H z9bu(RENjybfr&Y(D^DzC#pS93SDz7R8>qFmJu^?((EUF&zo{B+!ACpZ<=2i!pa1a# z{8tO!9oFkFFCn15nXmb&diyCkv=YIB`Vp_lTaaPI$ zA8oW1W0w!v6b)*v`;Q>RID~-MV4w3p4e#Pxnw#qgc)eo4$Gp*3P_zo51Z!M(U=l@P zhdr?9h{Ar##47u_e9rm00~$a@Q+vs~ZGYGkcE*P>LPk)$ATMV{e@Q;v;eks1?tcs& zbIpJd3r{Bh)3m;6|DV=VzZlo6ZwCvRyl7tys0QFH|C&A+Ad z#^&DLzg$1~+)KADGcTrW5D5x^kfjVDHYO{U*e6A@`N0tD?DIn+=89$;d5yq4`+-JA z$`0!o&_+xE$8pYwrGD<6X$i=*mkg8*xz;#Mn$P8Zu6O^-_&?G7PpjMa|M90A1FGSh z*MED#{#UJUYXw6R4{O-VJxhFC+g1@#;X+9TwT36a67iM#1W@8Ny=ayExHs{O1Xf#6 zG__yl1*StDx?fpUUd7-2e{A_5$JOf>&wu?|06Y@))~|kd)gbhJOcv;iU53r+kKym!`t=Wc#yPZgfZe)gL`Tv)HxSFAF=IG0D3z{6GOiPwraUsxaqtvnL#{l07aQ|(jE zQeSP)uKcCEw*6|~uKU$K9jkm@FZG>d|1A=K9metUcfawq>v^^TenVq^-G^T zzh13gwOjgG!{zf9s;32?dZn&jaSHf0Aac{{ek)xnU#{>vG<*G90#G!)W2?UIKZ0aG z93Z@eGa`dj+1@OzPj9(;1k&B~btX002ovPDHLk FV1n${S`q*N literal 0 HcmV?d00001 diff --git a/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Star.imageset/Contents.json b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Star.imageset/Contents.json new file mode 100644 index 0000000..53f77e9 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Star.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "Star.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Star.imageset/Star.png b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/Star.imageset/Star.png new file mode 100644 index 0000000000000000000000000000000000000000..9ec187b6a02c158a66fd23bff62189315760d9b9 GIT binary patch literal 4535 zcmY*dcRU;F*N@m#bx^HcT8)y#79>WE+BGY7Rn62Wf+A+CMXO3tt7@fotym?ZirU1w zi5R!8TD3=PKfU+9zxREg&*yobbH2|x-|so+&nL#n@Gct*Hwyp&VAIjoFgd%G&$c2H z!`ZoDwDcRGb5S!;0{|-DupT+kpZS80+9n17K#&Lk5dI7RI5>mC7XSdX1OTw~;4Jq& z0Kny)*=P(00B9`T%#eOa1ARqDFAs>rBd>=}kU$UbvkU+L9;kR`dN}zx2nKpQ_ViT@ zLgVUJ2!#d&1V93$AznT%P)P*^1*n7+R7whb76JBs>gneY2=??9{)gm$cr=`R9ev!q z{oK4f1%LB8JoG~QA%ui}3;lQfQ>UMs^ZzP&`u^M2S%c8uFHlK{1oXe$XQ}YtsNy{z zH>We@-~7sw@V_JfANH>f9Qs@Q{}l62r+=eottzv?q5mD5GK>D#Tb2L-`=pMBnwcy8 zWct%rw&r}DYX>PL7qXjDO#!&ZX+ev*N@Jw({T0^Ow}n@2B;J2Kz0h7C{;UwB{eyp- zoh=b$Z1luY2f+1C)B7U_cEkjfm9prUR#1&rlwO+*J`U~2eCp+BeL9SH`H}V^U`>fC z-mWyFKEsZn1!z)xGI%th0v_!<4 zHC;C9M!X8g!3m?^TFHIW^LhR5P^LX2*=4Pb!>k((X4Gru1nc&N+RcJ=0u2LUJsquQ z!HBOTQ=4$v)|l?wIQrtzcLnZomM9>+uBvjCcq1kY6q~jClT0mPE1}H{H5VNnk@{Hi zxLov{d;>(U)A04YT|SRqz~uc;W~{J}mSTJBo0^{4t& zEyOvpq6dTP4v;h3Wr0Nu>v=LQu1}V`NFb}rVio&pGkd_b{c_XPuF{r=?L^Hx*0PNj z+{O+$EHao_dML->lwRuHxa<^j(=YWZ|#s zIoRCU$2Ax%sry7p-ZrGVTf!+7t|yUJ(<*Hj&2%r(Hu^!AT;SASda2n>s&9(#P<4TI z_oMJ>0kyJTy1Cy25Iv!Tv=lT;d+vhWHWWD+SjoNM)wxtFRgg${`+lFT?_RfyoJizl zF2_$sAXq!{!Q8Bo@`cd`FBW*>wdHwEdV8Ijv6|L>kF#++YO98ir^eBm4cUaQiWZyt zp^o4Jbn~|Lzw+#T`EKZNcU_hwnI_PBbN|IVx1uSja(;Sp z>~WdrysG@ICNmaTq!28nNBp}B^hSKc(KWpi^XZLs8MMKpCzYz*uIEF-E#Qp;tQ6vw zh7Ap0xtB-!a02td6Z&DW(_^)(iVh-XyVx5d7mnxV%`mW?Yo|wbPmi_{@`PWzs7rkQdaKIfgrb6nC4*f;my1jn0ti!9>LChQs*>9R>$PK!&C6=R; z_$&Ad&NHa~3pJh?6eLjs%mLZV5=RqWX|bNGn43{Z%SRW5#-W+M3h!mL~UV$anBG7~@Qw4;vmn|a)}+`y;RbK_)3k zmd&xun0aiERrF169#L9xUAJz=zOSIcZl_v94d0~ByObGWf#CJ*FM3Ipt@%|;?sm-J z57wsC*SM8&S?8vEdP3}KPaS6Bu%$2W0oiFTJo5_5NQB(JF1*s^?0|@QW_P`}l+a2S zhiZ{yxf6IE1UF1>+pdDKzrWx9fwcIJL2D=Z;;VB&-3~@OqCGj`#kFtOhaq>`^Pc~8 zD3917j%N$-E0>B6)ePlN%BgDhoqxmW9y*TmvR0q*us5;rjemvA^EY@U11u%I(tI5< zm|8pH{-daY{p&X1lFr4Vg4Wxj+mtBs0qsZV+;ayJPUJ;_i!w=;QK8@8$2%|zUdi|Q z7|7yl%9fWea~>hW^X_pwY!UP5G-n{>q$_Naq$El6fHgfQhQ6O`bz?u%{bcdv&mr)O z^C}Ja1_vEm5m#X*2WCf%o9&U#u?bNyf5VvVTy+kO8^`nVkx{2pxvI^#BE?K@5g$3; zJ^v94jGVhRP#=!gQ#Gw4=6gOw0+ZiV8TWN8aZjiihb*O(LBlrQd|`h)JR>=(Ga7k& z49i_%W6FsSlGVL>HCulbGdE+Z$BoKMLT#<&N|X))k(ODeywP93MVLvFOK`CJ^g{Pv zZ~`1)j-~=!+6~Xs?j17)YJyO%B{6K?Aux>mizX!3&Ff%6W8FeNAtouUD?4C#ZP*Og zxN`ICSkzsSU|DLyZH{as`X-vPW#bu&X~jkMKlv=SY?D@|ROBih4fHU?V z^iMkifRT@eRh#~u$%SVlMb9s!2Pbj@Z$xxm(e#yOEcB-7U+&ElE{WlxSJIl^04i}k z0n+k9zA<`E;O8?`rb%13`bhT00F~TWoaH(Ah#SEmiY)Hk+X|@RM8D?0b`U&}6F&;x zDGQ3L0_~_FTGKBv1Y#EwwVcM096{WCp8_5!J@ru}RC!H{E*noCt_ofrmn0(Y6gM?PvZ$TY_;S)<=ayRUrPl>6Dq!-Fh*3|I_-TB7f3sHptv0VX_-$oGGWq-Cx$zZL4-d^J z`6y9+I)S3QoJKE`7Cs}6C*oqN>zZ?%lPg>d9+=(|l6y?aq4DW@rFC(T9Dd1~ z$+ezMUozrew@-n%P;|tjjK216=6un_VF6qhw7L|}XTPE(wI7>KV=IS~ zb+!^!_)$|Ue-H_O=_Ot!cCKRV?#2F0G6e_>5&51*;E1Wh_r`dc_O^D?sb#g`Fa?bK zi<+${skD(Xkk|{dsK#NgovGTE!oGe+$RtCBnrz~`86Uaup~_Mda!5Bftr(j$`eu+2 z-Pdz=q1}aOBKm$utk zE!EK)qn_pf2v1GNdrBs%p*?b5SMBife2rWSI>d*9WEXfoky*#4Lx;Vp?){D~gP&40DM}gDa!NA6ioxgu(@Ke##LTuXV((Rh@4WRdF<*p76?P(2c2ZMj zfnjih<$G=$T+rgut68vY;zFCJEiyr6i!Y8=JB(S62VFezW&OpsP0qkk@^yF-P7c*Ix%Cy!ml za)h%|FE397$-#|bffI4Ibt;tM>4Gjwe`~`;ITF7fYc-APo7)5yRyVqOB)eSE5cQ$) zs};}2WRn%mNo_H!)weqxpXhD<%G9rSh@5USDCeuZyxTt4Cu&)8~++bfRUETi$WwyS(6>SeYx z0T{q+*E~m!$;#WP3sxz6Vv>(jWz3lW*vsB!ql9i%D}^cCf4Pgw?5oz%66uH?`b$0d zP>IKf)Hi(=*3P?I$h>2!l2)?r&@cb@>2C+in{d&xhlY2s7La3~cLe!Cm1 z?``Mq7XQ)hq)b`r#WHU?$PeR!8t>TI=bcM?8%V$oD>{(%8-D+7LmT7MLDr-vl;%WV{Ic_Fc~%)nb`RZ_^;Uz@DM{%& z3Tt7Cz@)jQv3VEve}>3fd}v&seN9>iv$Ts?w%%grO`{y(z);NA5QcW3=nca7y5Q$$ zSp0^@15{a&t||>kcuHAj>{GyD#(3=rlz1AR$>?h5tf9-k6MTpd-sKH3Id;~h`b1ct zM*l>oW|RG!x$b&IyOdi8<_0W`kE5H`9rt(a5OpWLG2QqHEp1k09rpd7jd_^jorX6u zm%iY}k z`A^W@kYyLB|Ec-F%UUEEzw)hnPl8Z*S_GIHb1d@`FAg}g#mpvUEn9ILvLfp2ZhfgO z%|71urB!c2<=wL^u$kGDbM&#mWryrjLRR^LJ8$tf?k;k9E%II^75Jl^?3nq2JsJMc zXF0}NO(X3*hRWYow%$FAKFJk!x6NAn?8@AXprWbhb$v8;t3(W9YDZI_vv0emxE$Xf z(Rvq;e>y+wt_}lokvmhF9~cc0AZk0d)VQA>!F0O38yg9 zrUS0>W(qx?H_rOhSzlzksb2umk^$(*1z>?w3=*tX22NZYPGaFkrLPa_`|_t&Jw3Lo z-yozVp6P95N;%S}IzBltiCOr`HA+N8UO&e&(;c8XfMnXiG(Svcqy5!rIoU=x=FnHP z+#hHl0;&VBtO&njvl`>RbxFpD=9vOmupG(N(BLvzG_ZqqF5sOJr$dHU!z@_Fi$-NW z%&>pCA_d@3C>4k2HJ5&!@rkufkTmVAs^Bco+;<-4B2VDJ56X8#wR}%_9>d)8lPjTJ QzyC~hGz~S%?>vb74{jryssI20 literal 0 HcmV?d00001 diff --git a/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/black_button_image.imageset/Contents.json b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/black_button_image.imageset/Contents.json new file mode 100644 index 0000000..4606a3e --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/black_button_image.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "black_button_image.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/black_button_image.imageset/black_button_image.png b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/black_button_image.imageset/black_button_image.png new file mode 100644 index 0000000000000000000000000000000000000000..c1dc1657176e0a75b1d2e2edbcfdfbf07ec96375 GIT binary patch literal 30305 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 literal 0 HcmV?d00001 diff --git a/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png b/StyleKit/StyleKitDemo/StyleKit/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png new file mode 100644 index 0000000000000000000000000000000000000000..4a2fe711a93c417939355d7ca00416b4f1e96f9e GIT binary patch literal 5478 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 SU;F<3%~Vm;P^gu&2>TZ( + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/StyleKit/StyleKitDemo/StyleKit/Base.lproj/Main.storyboard b/StyleKit/StyleKitDemo/StyleKit/Base.lproj/Main.storyboard new file mode 100644 index 0000000..a185392 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/Base.lproj/Main.storyboard @@ -0,0 +1,685 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Just a cast away an island lost at sea-o +Another lonely day, no one here but me-o +More loneliness than any man could bear +Rescue me before I fall into despair-o +I'll send an S.O.S. to the world +I'll send an S.O.S. to the world +I hope that someone gets my +I hope that someone gets my +I hope that someone gets my message in a bottle yeah +Message in a bottle yeah +A year has passed since I wrote my note +But I should have known this right from the start +Only hope can keep me together +Love can mend your life but love can break your heart +I'll send an S.O.S. to the world +I'll send an S.O.S. to the world +I hope that someone gets my +I hope that someone gets my +I hope that someone gets my message in a bottle yeah +Message in a bottle yeah +Oh message in a bottle yeah +Message in a bottle yeah +Walked out this morning I don't believe what I saw +A hundred billion bottles washed up on the shore +Seems I'm not alone in being alone +A hundred billion castaways looking for a home +I'll send an S.O.S. to the world +I'll send an S.O.S. to the world +I hope that someone gets my +I hope that someone gets my +I hope that someone gets my message in a bottle yeah +Message in a bottle yeah +Message in a bottle whoa +Message in a bottle yeah +Sending out an S.O.S. +Sending out an S.O.S. +I'm sending out an S.O.S. +I'm sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. +Sending out an S.O.S. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/StyleKit/StyleKitDemo/StyleKit/ButtonStylist.swift b/StyleKit/StyleKitDemo/StyleKit/ButtonStylist.swift new file mode 100644 index 0000000..b1a76f0 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/ButtonStylist.swift @@ -0,0 +1,141 @@ + +import Foundation +import UIKit + +class ButtonStyle : Stylist { + + typealias Element = UIButton + + var fontStyle: FontStyle? + var borderWidth: Int? + var borderColor: UIColor? + var backgroundColor: UIColor? + var cornerRadius: Int? + var normalColors: ColorStyle? + var highlightedColors: ColorStyle? + var selectedColors: ColorStyle? + var disabledColors: ColorStyle? + + enum Properties: String { + case FontStyle = "fontStyle" + case BorderWidth = "borderWidth" + case BorderColor = "borderColor" + case CornerRadius = "cornerRadius" + case Normal = "normalState" + case Highlighted = "highlightedState" + case Selected = "selectedState" + case Disabled = "disabledState" + case BackgroundColor = "backgroundColor" + } + + static let allValues:[Properties] = [.FontStyle, .BorderWidth, .BackgroundColor, .BorderColor, .CornerRadius, .Normal, .Highlighted, .Selected, .Disabled] + + static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> ButtonStyle { + let style = ButtonStyle() + for (key,value) in spec { + guard let property = ButtonStyle.Properties(rawValue: key) else { + print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") + continue + } + switch property { + case .FontStyle: + if let fontSpec = value as? [String:AnyObject] { + style.fontStyle = Style.serializeFontSpec(fontSpec, resources: resources) + } + case .BorderColor: + if let colorKey = value as? String, + let color = resources.colors[colorKey] { + style.borderColor = color + } + case .BackgroundColor: + if let colorKey = value as? String, + let color = resources.colors[colorKey] { + style.backgroundColor = color + } + case .BorderWidth: + if let width = value as? Int { + style.borderWidth = width + } + case .CornerRadius: + if let radius = value as? Int { + style.cornerRadius = radius + } + case .Normal: + if let normalColorEntries = value as? [String: String] { + style.normalColors = Style.serializeColorsSpec(normalColorEntries, resources:resources) + } + case .Selected: + if let selectedColorEntries = value as? [String: String] { + style.selectedColors = Style.serializeColorsSpec(selectedColorEntries, resources:resources) + } + case .Highlighted: + if let highlightedColorEntries = value as? [String: String] { + style.highlightedColors = Style.serializeColorsSpec(highlightedColorEntries, resources:resources) + } + case .Disabled: + if let disabledColorEntries = value as? [String: String] { + style.disabledColors = Style.serializeColorsSpec(disabledColorEntries, resources:resources) + } + } + } + return style + } +} + +extension UIButton { + + func applyStyle(style:ButtonStyle, resources:CommonResources) { + for property in ButtonStyle.allValues { + switch property { + case .FontStyle: + if let fontStyle = style.fontStyle { + self.titleLabel?.font = UIFont(name: fontStyle.fontName, size: CGFloat(fontStyle.size)) + } + case .BorderWidth: + if let borderWidth = style.borderWidth { + self.layer.borderWidth = CGFloat(borderWidth) + } + case .BorderColor: + if let borderColor = style.borderColor { + self.layer.borderColor = borderColor.CGColor + } + case .BackgroundColor: + if let color = style.backgroundColor { + self.backgroundColor = color + } + case .CornerRadius: + if let cornerRadius = style.cornerRadius { + self.layer.cornerRadius = CGFloat(cornerRadius) + self.layer.masksToBounds = true + } + case .Normal: + if let value = style.normalColors { + assignColors(value, forState: .Normal, resources: resources) + } + case .Selected: + if let value = style.selectedColors { + assignColors(value, forState: .Selected, resources: resources) + } + case .Highlighted: + if let value = style.highlightedColors { + assignColors(value, forState: .Highlighted, resources: resources) + } + case .Disabled: + if let value = style.disabledColors { + assignColors(value, forState: .Disabled, resources: resources) + } + } + } + } + + func assignColors(colors: ColorStyle, forState state: UIControlState, resources:CommonResources) { + if let colorKey = colors.backgroundColor, let color = resources.colors[colorKey] { + self.setBackgroundImage(UIImage.imageWithColor(color), forState: state) + } + if let colorKey = colors.textColor, let color = resources.colors[colorKey] { + self.setTitleColor(color, forState: state) + } + } +} + + diff --git a/StyleKit/StyleKitDemo/StyleKit/ButtonTableViewCell.swift b/StyleKit/StyleKitDemo/StyleKit/ButtonTableViewCell.swift new file mode 100644 index 0000000..056f626 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/ButtonTableViewCell.swift @@ -0,0 +1,26 @@ +// +// ButtonTableViewCell.swift +// StyleKitSample +// +// Created by Eric Kille on 10/22/16. +// Copyright © 2016 Tonic Design. All rights reserved. +// + +import UIKit + +class ButtonTableViewCell: UITableViewCell { + + @IBOutlet weak var button: UIButton! + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + + override func setSelected(selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + + // Configure the view for the selected state + } + +} diff --git a/StyleKit/StyleKitDemo/StyleKit/DemoCode.swift b/StyleKit/StyleKitDemo/StyleKit/DemoCode.swift new file mode 100644 index 0000000..bdbc432 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/DemoCode.swift @@ -0,0 +1,58 @@ + +import Foundation + +extension Utils { + + + static func copyStyleFileFromBundle() { + + if let relativePath = NSBundle.mainBundle().infoDictionary?[Style.styleSheetLocation] as? String, + let srcDir = NSBundle.mainBundle().URLForResource("Style", withExtension: "json"), + let destDir = Utils.documentDirectory?.URLByAppendingPathComponent(relativePath) { + Utils.copyStyleFile(from: srcDir, to: destDir) + } + } + + static func copyStyleFile(from srcURL: NSURL, to destURL: NSURL) { + let fileManager = NSFileManager.defaultManager() + + if fileManager.fileExistsAtPath(destURL.path!) { + do { + try fileManager.removeItemAtURL(destURL) + } catch let error { + print(error) + } + } + + do { + if let path = destURL.path where !path.hasSuffix(".json") { + try fileManager.createDirectoryAtURL(destURL, withIntermediateDirectories: false, attributes: nil) + try fileManager.copyItemAtURL(srcURL, toURL: destURL.URLByAppendingPathComponent("Style.json")!) + } else { + try fileManager.copyItemAtURL(srcURL, toURL: destURL) + } + } catch let error { + print(error) + } + } + + static func downloadStyleFile() { + if let string = NSBundle.mainBundle().infoDictionary?[Style.styleSheetLocation] as? String { + if let url = NSURL(string:"https://dl.dropboxusercontent.com/u/26582460/Style.json") { + NSURLSession.sharedSession().downloadTaskWithURL(url, completionHandler: { tempFileDirectory, response, error in + if error == nil { + if let srcDirectory = tempFileDirectory, destDirectory = Utils.documentDirectory?.URLByAppendingPathComponent(string) { + Utils.copyStyleFile(from: srcDirectory, to: destDirectory) + dispatch_async(dispatch_get_main_queue(), { + Style.sharedInstance.refresh() + }) + } + } else { + print("\(error)") + } + }).resume() + } + } + } + +} diff --git a/StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_bld.otf b/StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_bld.otf new file mode 100755 index 0000000000000000000000000000000000000000..d70c281048459fdba23cd8ff9f09386df64ed9e5 GIT binary patch literal 89928 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

5@$ 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Ŧbwg0>%6#JaK2y4?7ke&naHGfj*Oi^wK4(Qm}Q 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 Fe*%f=JV^im literal 0 HcmV?d00001 diff --git a/StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_blk.otf b/StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_blk.otf new file mode 100755 index 0000000000000000000000000000000000000000..936deceed9e9491b2851f18896e99732b18a5fd4 GIT binary patch literal 90892 zcmce;2S60p);NA=mz`Z^VO7Re*mZUnuqz-aiZvE2*n4jX2q;CVqSR%V-nLLwRK$u3 z7z_3qjU{$tqKPFMqo%7#yo*EP|I923N#6IK-~00Wi#v1cx$WF@PrEZ=>eLBHic*mf z^%yo{geLBs*c&0cy9nhy9yxKslor|NCnL0NJ3>bSM^2eGv}O3I3kYp2Lx^lSVTy-W za__JVga{2nXkkFO|FT0~>uy8dGlWE+h6MQsz8vz)Jjgo=zuqB`AbxGL1j4_H0(JZQ$gJ&z!s3h)*$i;RwWa}aq!|2TLW zL~unB3f$|qXF-brzagOz+C}Kx*3W-=`+hU~kCis*HVnjtNWi7SKd57)_(KQJ)o*6M znQoKLL$c;s3%o*TA|l|41jKK|uSf)eqkfhnOq5YwnBp%!vbi3 zLStBnx}d3zVH?yIB{hacs0A`NhDp>0ZE6gQQ6F@uF)Tq2=y_wrG2ITi3+o!gEs=}xabvg@qHM@vk;@XILW4tM zG@S#wXuNv#=&MyGd)?4zjlU))%0DnD+&^lmCUWt=8phv8_Mc~9&Hp?BAu%z_`gwT7$H%*e z#04&njEISL4~Ps$!%!qzh7wQ|3Pr&v1jQf?>Wl&aBQ>xadca>_2rYsV8Z-*|qX_s5 zLeUV5gPIZW_Jwy4)Qo~>1agOzAt(&~G|gag<+=Q5_(eg@AQT8CheDWx7}yADB*Y`3 z2VA-3C>GutC=&){0?<-48REf^%EhDp)E8?{{@jm#eBJ*9pDXotlz;Bc-}~a$tS{4{ zFHz9T(8iu~^W+I5;@&;pYh0oH9Qs51G5jn90>p5BWJ@6}5-o=3`_1?Jl=>%DdCh;d z#vDe)0EYEL9`F~>|G5LCI9TWO+GZ`2zoxDV{C zeyBehfCj>;@BtbO`(`NYM_)7?jewDlLVjp88iU57acDf86%)}U*aK7Gq?m@LqZw!> znuTVgIcP4LhvuUNXdz$^f*rC1=5qxqL+eo;I*-nw3+NMc5nVx_qr2!!bPqj1KcMf? zPjG7dK?n$f5E3H7hENg;q8*_kf{7AhIT1yK5`n}LqBRjtgb@)$A7U_(1M5>stR*su zJR+ZnAxuO$v4N-{iiveZED=W-(RIR>m_bY@3W)VYG?7ab5(^1`Vk%IN09fmFXfq)t z77+o&Y+?>ElbA(h6B~)H=rpmCSVqhz77(6<7ZE}P5p#)ogdX-o0^rChz?e*wjdD>2 zoU`RbC0c{_qJ3x&`i|&J3?haS!-+A(NMan}M@%64BOBpKn1v{qO%d$uWOM?ZLD$h| zFzUzX1$sp!6Gq~VKq=@WI48IuxF<9VtAs~|CslgYFPhdGg+`@u(R9@G(Dc*zYL;md zG})S6&a|_Ob4O=)=c&$foaeg;Tu7G|E)Fho7ln(;rJKtrmxV4t9WGklu!1*lpluDR zKqt{zbOUDmEA$O|i7>SJTHpw6ehh8ie%EHI>ZOL(IBMEyG<=(V`8H!TsmGZD6K)y}l&6_u0BlKny{LaJgDfFNPydT0F{Q(@wAFB}hz2Wz7f4}|vEiUch z1nvoM_lMISc6iwP;lPLe9`^d`%vZXv#(uT*E8yh5YX4Qo2WuW=KQJKlU@`oX9z;DD z_Mq#7&R>2m*+ll>_u4W5u?v2u;dc#wPk_C7Ni@LTg9!Jt{u2lUb`ZA{w1hqSKm2Pd z4KQHW@;mphWfuWnad;UCnD-lC=U~9gSir9WVjAG+P{7(uVg-=^m}&yN4FY_K2b}bW z^-d(xh#9ae!eL*;!_G(moXTj#sW?TEkws4r})%>=$mgd=LAD z+bv(fe#r(5SHNE3c1mZ$39vT=U4m2KGMq}+fP&owO7|&X-)C@s-2%FI8_ugcC=u`= z2|WaCe1uZa*JvfW58U} zg|I{02pQT+*rV-43sgn4L^}xww1a4cYKS(dnvkR2z@zUc7<7P8ql1J79U`33VZsF+ zAzaZhq60cbbb<9gLv%+U6Yl6N;RdJjRXD$IpiKmYb`dnHCECKS?BBR2C&2#nLnnw% z=qS-19Va@XkBDyk&Y#QEfO$Y|LV(UB5vf2)GKj^*`nS~j&3@Ru|KcBkY=EmJh_?Tl z*W$9eSz4lcIZ@xn4%N36)VCE{XdAX)gQA^H`s)ux?G)d%XvcW9I@WIGV+Zs*$0CzJ z>RSLwZwF-C4ajppAi!gQ$j$+R8VtjWfrZn<L572k8APqo9 zWrPFa2uRTth*%%O7f8`GAacQgnk!&%c|ZWx6I+NXqL!#5juNMcE5t40OX3OfGx3`M z2}sx=Z3K+KRp2J*CFn00A{Z-}ESM`;BnS~i2x0}R1bRW9pj5CMa@~8ZDYGnj=~y3Km6( zVny+yR8h7lPgE!>6;+CMh&~h@7M&8E7hM&7Cb}znB>GPDLSzyBL6W45l#^<*GwDeV zAV-iB$ysC|8A&FPX=D~zNS2Wm4*FOXNr>*S~89r7;ukbF#jOa4S!!~$_E zu~OVw+*3SIJVHEGyg(c-P84T~OU2v8b>idV%i;&(ml7LETZxOrP2wXNBgvM0EV<_% z5gQgZY;tTwXpbI4dJGBo4~UA47_ulTC@yG7RA@x7e?V+Z(2&UB$cUh&Lx%IQVb*6r zXjDLK_~Njj6~hAjq0+Fx$Qb{CfS`yNUq0>&ko;qY^WouExWjq4!`~GgZiPFt3Diiw z#K?CgMgo5x?r#Myz$NQCRm%8z_&UfBo?M7DmFaKKQ?AUbeMm12w!co^~qPB+^q5xK7C44 zZ>9tU1%`%&`A=z9XewWAYO@q>RlGchOoh=-CXs4!weSxIym<23g?-H-QS~O9a0w5!`H2LYj(&z{G^|MML@N z3AMrxwZeniVL{Q+OO`ZMSlSHE(%`6|polP#i9-WG5C$|4<2xDFtV|fdh~V=g_`HZ_ zc@h4c;wCC`Sx8W%wcSX*E0N7tB(e!NqIft_Je;UzaH9G2=%!9aH{wQgvqCX^wU}lp zR@@jG15*&o4?fn~iCDf9vD~7?Ht$KSbyDK_*5aF5i+_t7@jNOdH031l2`l*uE8i`J z-{{aKix(`0{|iF7M;KqqJ-~k%Uyutlf#72tacBzohsE&Su^c|7FXfB3JN14#W5WV3U6g>@qIjHz+K|pM%-6Z?6gALBZDW zkiLA<&|%9${TGLZ_V)Dh=^GRs14tVa6c`i{JUk*eG-7dRL}*OHGXJQUQ2(&N(8Ums z34$pO164_AfPYwYEYQOkP`E%30%HSW!Xj5f)gXX8!e_*Yl|fOF?lGX*2!dx!JQt1u zeFzs@92pzMy+Y%-Saj$L?g>;r0^UKKP6^%-p?pOi3iK#4oCCxMI9S#I4~`G=5Un8& zC?DeBS_3?2K4^u`2l)p05Z^{bEZ+jWIQZO)hYkTAHuvTr!<&Q4y?Ce)u)>4@4-wuR zDuygxuypYP4m-KWBJK@wNQH<$x9a{@T;)PmWaUE5u$7Bik&_F(!%i;Jh@M=~ikMu8 z$IQ2ZCWws)2pO=BKw^Rx$MBfM$9SzA9}P(W(!uSFXdsB7i3@ioKzK)ofZ-lV~T$+V%nodN)WH4TK%YLwf|Y zV7MSy5D6^hIl&#Fi*T?oLzpYPCVVAiZMp-~7Y@u`f=wDQdu71tov``H=9LXA8YCJf z8VQWu_oNRnXny2m(w__>LxBN%E*>f#DUJ}wii^Z+#6L+skj#`UmV`_4Bqfqc$s@@V zNrSD8t%L16+r_p^Y$I*sZ4+&e+CH%T+SX$GJJp|BK_yZdR6ezZs-{j+=cyOe8>x-7 zg|v-SDRq@jlFpX~OT(om>3ZoVX|1$QdO>oKg@oreUN>O zz0N+@V1VZvTz_clJNqH^^*dZDfqhMdmK^lJ%DjlljTU z%Vxlwr&$bYfM%=nK>G)AdfQ(lsMfpI)SM+BMgZUX)#8 zaFWRlnZ?;A16KaxSX5|$8cPm4>P;E>srpWn96O)Y6>76HbWWl3GND>grjx9!4Hl3a zN=i$M)U{uV@Mf}hfM|u;q+h4RLUN6%tW2+FFV}mE3|YD&oidHo=?+lr<=?$U$$C@r z8YRxaI{9a2>T|ZQNcuUhkh9$}%{pLD?1fun2i#p{@f3Gw*cLuiLl^Pz=~IUJ&iLrM z%F;#b4T)r$b~q!g!7t?OT-=lGd7i<&a8Eq98zl{8_AK2I7#J277`S8U9<}uN6?shM z&1txe5_fw1%S+sjZFzp+4)uVY;oEjAwr<^2d;Zg@8D^DPx6W)VIey!*(3rn2#VFYr z-v6Yll64={sWWSb(Wr-^>Z{9Ymij9~BBBEPhMmmMROyOVIv3D#$EOlSnU| z*?#8m;))ovdQ<7virtFi3wMs161FT?m64I9GitYlI2zLm^9_X(gQ>WvRJpE1o1B=e zO;ksc(!G`PRU3}2ysX5ckIr2Ga>~wr+ti_@sl~;L5_3V>o^R>#gMAFE{1oN1%RRnNb(Onp4Tkd&rK(dyF{&fRj9(r4*IMmT0@i}XglL|TdG z$yxEY-7tyCZ@USqrOO+trP!n=MEyXj)qN2hg^%-$dMq!3(61n%JX#Lib zZQB)R=haS{9TKP0suEKRGmR-5gB^>s#yptpqM|j$Ym{r(Xya4#E0Yq`9oQBk>A(xY zpKq%%!K~&RO=iU|ajDjvoUO`EP0n1Yl;R%y=UaCZ;DR8`RQNszfEdj^*+m2j+Z!?8e4i zRdGR4NwzumzGGI2wlFPQlAV^Ak)%vX%-^WSt#0KqLtyJ9QW_q+S>bYVS{YTW+CoZ0 z=f|%w8OkIAeAw#mN{ABD2C6+w8gEeaDVk%W7J)dQaN>Z#!TD2-Y zHQ$(_$}ptm>-915j%nKLRFhT`U%oxDO8N2OBWF*A?HzAYOXU+8{9}DLQ6e*iOxI_Y zP}0l-Q)Z#^0a;$OdaX`94tKhQ)uOc~{hF1^0WfG?MwXf-*v^^y>@-8Vle7cFu4~hQ zk&*owX?v=^E9_cnVBFz3%4rMz64KOJ&{boGL?-rSq@i((0~f{A?o;7$0~v0Z(UjCO z*V0PfotaCf>9nbt>XaoSXN1)<#j zVFMHpSwKOaKO>#PjX$AcJ40VPwO*cP9?!fW*BXqaY8)W0uB@yw7iVP`sY)`9hC<`f zFC8ma2X2_EoUwRuM7%oTfQa60$jUUNCQ#B6?J`QLO;bw`au`jX>4v4Zch+v+qFS?9 zBsDR_hiR1XOr^Xu#i%RIF&dq&Toz5caBt}oC7x@gLfGg$(n`p6)fTD$qMHCui3IhCB1X(z{O7%*7&L;wtr93&kcpJ zJ5Gv=G7I%8)|=F4W@f0_PGX%Qy;yaVq@QhEo0^cYB5l>u73*@<8AbYBy*511F;kzH zQJ5)#rJPAcYonu=DeB5^z(xiXV2VLV4F@iSP4t??U}36>2gv`y7LnpO}f%t zqe)V}W?SU}W!>(j3l}a99j>0jV}p;FTegp&qqhzM9a<2)aL%|xx$1O7T8>UPcC4db zmy>GHNo2`7bJ7~+X|lM;P?!&7p$EG&4%cDEIfrsMg*)Ju*oD4}=ji0w#l<-#N`Cp& zuzd7UH;SDgrtgNvEeQ;a+5Ta+3Qu^8iobW|TYp8ir(|U66iOPiQkSdFyZZ5g5|g1Q z->fqwu5nB^>#}tjl9(04r@AP5os9TUC7n)TuT(~AqHq?8r@{H^MW28jlg5uUWVA!1j;@Dt3(6 zi}?*Yg#E-=IQl2nA$&=CVz>$)=FUc;^%xvWS=vL9Z@461^6=$*uXdi1Y&yKA>ZAe- z`#fP?S!us6umI_RWcu^t98Kw^xh9jOV*T#z`;;H;3=N7*j!ceMPxNFvv-2i>Ad#i& zXN6Btj6F3Jdtk3CcfNl-@Qj;^wIiiCIv01saFD_TcalzJupyg~uBkq|X_K+IAkUO- zNZjj~WzrRE*N^N5$cx_v)}vir2{59uHXww9pC; zWe42Z<(k_ve{Je=RmDr}bm;J!4Tge}%+iS4jv1>{jfoi&?`3QOD`gKWuxn5Z^>8dD zjcTCe+iS~ePpylKTNWEXYfkj~Z7OLROm1&1mp-(T04yEHSZt+V3v2L8IXfGBv%T?b z`0EXS@P=4#b~gM$Iy+nSs15FhW!N5fg||Ix&vs+G!m|bcmf;q-t4fOHUHB!G?ixSzEGc>qh1J)v0M~)pSL|mi2Lal{Zh` z%T*T{vdx)A3-&su8@0K*bjhmJxX4&#Ov2id1hq6P-<)ZL?M$vO*|;WE&6@C6I2j)j zttm;{xI)P~ka}%KMy8sLVyi@Wt+*_;Bw5AUl1XW)$#9l*Vx;nmCysye$&BM;xs~XW zLrEVGWJWzBPuFhVx4$MV&8TWH^V>{1mcmj%TWK8Lf@wS$tJ2~fKErOXf83-;nd{<2 zN-D26U|L*kHkGKq*y7J_AK!iS$l{Gr234MTgJI{Uy^7=0 zca9!6ZRyNKyJFYtR5{|zoXJtM6jIh`ZBop2cp0_QdUOHJG^nH=@~M$gAuFRwj#9uI z%^BdBkzSB$&`Xln?v6UE#ImPfVn!{EVc=|seLPjn?Hi-ip#(dy0?c&4G)z=4%VFr! z%({igPaLQ_eqzCa88a6yn4ywg5kq@y5_Xk}eW}NQZ}<9Q7YFHP?qCvs)g6nzK6Eix zRSIXOsTigoCy;g2lc5ZoFq!EgPBWD-vIRB42M*K%Zx>txd=!urDSoQOJ#WD*Ou=5# zMGPTLi>0IvTXCCjaT}@J(t(U;8anV3J>0rb>A=Rwk5jKrwbbW8~89Wd8innu97Cp5S}K;o~RAU(g2u&uTFZICctV zb8SrAx+Th?Q+?nN%*anK1O{1qV^JKo#gn1j&+&v*n~|MTlTC!x3bYppW#m4fLv2iO`#!5@miX>|yrGSUU(yDTt!gj;m=+x&@^+iS+5}<-} z(F?Zkt@GzT`)s`Q&e1D}K9>SVGnZQo=&NNA%*voRF&vCuVkrT(Oa%735O84V1J*+{ zlp(SaszG3}192WzBO-@DwFvA=U@s&JY|w`Y%${HwNBa@lLlDIXteHfKEqIB6QIn`Z zV6`GPB6JWDm0~b25<3LwFe0iEIu1^N1Q^NDF+|h|z}iTBh`{bh?6Cn`C~-gpR(mj@ zgXNDnhR{cdI4%LpHgOK2j}dX605ceI5rKaJg79SoZU)3B1Qng#c`x;Izm2!~JFhc3I*z0oG5VK?v4cFs-8d;Oz#cYa{@B=OZMb5ZGA-QUa{3 z0($`pCj>2pV1wn1(8)+3M_^wSv?0J6D*(5|bR=*>V38Fl2(ZZt+99yU3c$TE0|`_J zEVKeO0t28xgTQJma2A3ES-6@uYc;4TEG4}lkfHX=bUIWeN8V03R( z0UnQ>B1i~UPFrwg8Hr{S_QYZ0xnR5Crr;~E7ghh~1Q2QLSxgc^8 zd5Q*##);;OGDX)&njB8*$#29P#oHuOiBh5hE81*Hh@?ugSAuQrZ5i7Qwoh$eP)^i5 zYBzP3dMOo1$4Vzi4@uA3A-fiKK6WGRjCQ*~Df7mDroF%Y8v8Bw-`oFW|3ape4Uv_| zYFo%!C|k5|QPkqA7GJmcu_bCLY&o*!=$89h9&3qP#kR_5mD}ovRzJ6@cOV^FIe0k? zcbMW3>X1qc=*4s>9Zl!Z8|Z!X_12SG&ul%r_1xBxt#z$STkmN7s5O?imG_os$=Avc z$vb2@> z^+okJY8IS2dTIPLJ2ZPWhn>ebPj(J;j&U|RZ*u;|rGrbT%VAeL*SW5j+YfBNu7jjQ zVux29!#YNGOz4>1v9#lsjwd_$bgJk~bzadqv-9fCRhA}imunYKIr;$H`Gnpt!ua8-2%GBc01JVOt)*@XLaA%{k&T%x7lt5ZU@~ix!rgB z!#&mgtou#(NA5p+*m`vI=;JZTBhVwnBdUkEN6Q|LJ#u@j?NQa^pyvmktGr0BZeGz| zM|!GyX7nuRS=O_n=Y?L9UR`=k>80(prPpu0-gt|>tGqw-KIMJY`-%6jy?gbJ?tQe6 zU7x9aw)-HTDLy4WSA1^y-1GUy=X;+QJ{F%heZBko^_|x@qHk*7oWAD1>-+BQd%o|z zzAyX!(U0n<=-0iUU%$ouLi#P~x31r{{=)w4`*-TUsQ6&e;OTzTCr;N+-!uKw8EA&*jKUe;%y>Do|I86Hr_Nk7^Q)OJX1-4dotVWGShDdP06UI#X}K9ti;}; ztK*n*VC^T6RX9piny)QRQLZAj+Vu1sbr`!s1S0m^j8x@H64D`KDP;8L8K{*!1NA8x z&3cOlPG(lZ0egeIa9X|zAmd(SEF{ZtA65|exAfc}6`;UWTp74Sg`LHRSDajI%rfaq@=PUXA2ez%mu(nv(9($%2s!OBSt}4$jEphtj%;wE$=HybR-d~9F_nh2xT~%0GvMI87=oZIi z#rjqHI9+t|(&RYLr;a8}e2fK(XWqA1QbpfpTl;x`Flo!ez5ePAaiT0S{VbPdCbR7o zxCn2Q$8HqSx0i2^Utguzvaxb^-H!0kDWfBDRrE7ZX64K8-q@6@!fjc#C^vlO!0C&2 zA5qEJQ9Onn0|Yxw8qG#izWNC6DOz2qElF0k=U15Z=9gHuVp1Hj8+R4r0|S;)Tm+N= zU4`2>%L~0lY333JlP0XWfI%g4o7G%oNrNgiPpeH+WcC*63~9z})q~|b+}LgkwtJX+ zpJgh2woa>4$nq>Uarn1*0=wK6f@I_qIetL$};Fj0_LNAnW>I1QHX0L%>lL9v$VInd>}G;*RkY zDf3Rl6CJkUs6n^sliTit5aWMLMORd9EXh^pcnzAIl9ra93!2A@Xh)N_G~Z;DY~S+a zI#wyLXvBxJRrJa63m42(%QEo@+?u$AM-(zFFtn42t$4C<>w_%DoJ?)nEKkZbrkgW^VN6;=wVkErk5lsyO8PWdR?|!hF7QI4iXFkaCc$lOa{9j zXYd)^oz-A3`dQTk2B%$M@O`Wn?wUtopEDH4(!1e~!V{m$!#7`>{)-Z8Uj2ew;kKSX zuqw6hE4*kN^EGF*_{@i5FN#-{tk|H!?&PHp7fzeHC}7$g-y@*kDoV@N>&K3BOaVP% zS)xRShgDI#u`8a6mBQT%7~HlZ&TQWW6R4me81QERs~Nzkd2xMFhj?2UW70Tk&E!e#!ca%F@@E)+!!} z3o}ib`6_k_CP2y*i3;-zO@)xWHqn%vu3}%ZA)*YBmGz1YF{sRovVgGI!5{GgBjP50 zAjeO~fdT;L?5Phm9Ec_xY{MnpXiV~jB-zcX3i+xv>18Greu@1>MFmABgQ7@m$S`FT zKodAblx#{&U!~|J&MZtX1U=srR>V$W2~lQtCM>z^8}8t728jua@MLxX?x4e-^fl}b zN6;(4ZcsVU=K=A%7Gg)m^DeiXS^1FWTFltZ>n~nc*6oZ8Q`6VRu&Tv<6#n8=P9UYf zTEv}B^2x7>aM*$!!S>P;gjoi(ehhtL3yzkv0a(S3#$(2-iZelKF0Q)g zSYXx{YYQc;@^p8OG%9cu9E)lkjDudXZP_71qdX=q4=;J7!UG1v-d>?!8n0E;54J=v ztev7{i2+?;l;~qBH=+g)>PpELQL@?0c}fV{I~S_K%LfjRxgdY80hMEW z+zB$EWs1|IWa1T|8v*+hFbFGf`ytlC28O7`A7Fp16?ULx7B{F`164Q06AytP@4=oN zV2-qLYC*gf?_t*hE@5duAUd!;i`YH5h(j_dPc&sqlBtJqAbU`<^J%!f7qQY{K$+)N^JY%msqW~gmHCbV5wXxo)xw{a#@PGG)0weO3g{vjU2@(t<#D?Erl;u z#BGeLpAZjo*_Ym3&d|%2!7O(MovP&+-$UUr=yYjG+>W^V*}%Rm+`mztoNd;YDq+mU zCXOpQfG>#hNj#9fEut&*1*QyxavdmKia6uc0DK$r4zd?S^g=6}1l3B-=CW)xE2{4$ zGUtGH4A_?pEm(Qj#0FomTd|22U(iQt3o{@iU8~dPsAU#+=)pP)rpt>C3t+^#dAYeN zi@L#CMDNPZH)R!Y3=^;<_1@g%+rhkHac&Njq31TZT3U;uVDi$_)Uve;N?_JFu&`8`CfmCWhd!%N5R**O?6QIh;#* za4xyRgq$ehmYBfj^W^#hu3N=mV&qrx3fRoc4C$PS(Fv?=pwm>deH#doo@D!42vJcs z*mAfmtC3OG5k`Cvj>v8DWUV=|T#3~jAWr|*8YTu%r7b%j=FF67;Ih`5SFhHp*~Rz) zUVtx)%FJ3Y>aiWcIG>RT?bw1XGlyiwV9YE8W2TPFTA7}hY*OR->}B9pn}Y*{NR1KemBXyuUztMW7g&~1G~iAa{sp4vm5!zv-@ z-^Z-rPIw$zCfDVIjR}tUGIPmlP%zJgBi@*u4ukDNCZ(q)6{@ZEa382x3-u`MZE=mm zkK>7B7Mc7J2}carg0Kx(RRnAoSZ&UV`3TTtO&OrcB79s_l$BnjS7wm z;6oqAP7N{ggVi;M4%L80Fa$J$p|yupvNM|)>@0M%wy=SskLEMb-$J9dSa}#IoV7Mv zCpM-mE)7*`JVvn2YRu%x57yKiQqhNxFtSw?fp-B6XG*3!MZxK%BtRuEoK8K>Wjvme zN6V}CZ&#3m)IaV?(;O6lUuwV!PRiY`GGp8c8+>CE5-9?C7>!~3P^1F^DY+_-jw!JvEm4mFxIa@xH3< zdk?NV%X|;V$#n6ao!e^;Rh(shgBTd>$noE^El17`iiuI}4GyfBq8u|XczKk1ghF@ zC~@!aSW(Y;V{_H?7b&|$C7C*NniA~k;3Cs#(gc++{iHobf49mKBR^DK3wRSe547Zf zH=LHdd0T)scX{)I^V1Qps&|(fOI3g|{E;c_*W5}^f0sM&Voz4oyE`jZVJ1g@s0QFx z2hTf84P#`cv|n-HE21+aTagBH)&(p)ZQ_aRVD0S5$lNK}#gaISJJ7$WZGbkxAyz~h zOhrXNwI*9^!4;t+nFJhF+rcpfu1DMoCTf$CjcQpJO7h~DJB zqAYUCJyBt{z7Pm&3m|walZ(}0o$1H6VTX#6wZ@g@O4$o`XA(ttGBN{52!IQ6Vp}84 zFB`{vGnDZHy61p1MXRmeA)CmwDHLad8P7ZhvS-WcM6!>V6>>HmcbfN7uPV+loAQba zt8zEw)ksV_vo2pXd|kk)A1~#uS*^G^arg2PRiQZdtD|3(r%Xyv-&> z_KuuQ*;U|=V@%DF(1Y9S*-rD=bOqe7SmX;{LUby~j_K)&Nn)_>nQ~P0;7u6^ljbXA z>?By`*9YT?bEkyo*qT!2FtuVl1=Q3XGb6Ctfgbz-50;y>WqGDz$%eAZZQGQU>rztI ztLfC(UE5=iDIZ>ao~t%++ubiY@ zT(w@8pT=40LB+#!lNpxvt`r|)J6YDtHIy}(9cEdtVP;Xd?J-~(-h55*`S>BhcBfJA_D!b5fwi7`9G!II;FdtYpcmbr*5b=c63pXC! zBybo!q2dP?a}?7bj;<3G$&AJOZ3Zr@e*+z2bANv$|Ia>c2kS}E{_?7QM-`lrbIi<{ zV`gt(w11_FJ@7mE*0=3O{Q`MRTt#JN#fHkt4e>EC@o_Qg4;muhI=n#-z{-oqBr{+o zcCd^BQ}64)`P1$56lLcOpXtLHe;ZaYU%hpzyYyG5x+{Nns=H;TZi7>uY%~S`vC6W6 zo9w^v+4z9P^Is*ewRmcnzn1;Q;_2L!_z944;MGBD>e&@Yw`HJw3574Q>2V;2@|?Uw zE#$Vsefxh&TkwNSd5?|YpVOP!FMgQ+pz87^qcN{cXB>FnQEyDn)#)W+!82FR1$U}G zPcdBdx&JK|9X*<`WVhM~R&1m3&Rs|FqAAsyBo{^w+0lvfobl#7XF%X!M}Wg%2RtBL z1yVzd<+U?2iJCy@4Egqsn=a@;5{A0O~N7W3P|=& zR5bDERma@t*4m4{?LmFPt?@IM!P}lq#p0oNbP6;avG}$O7-v5 zRrJ9K1~g5bbC_>M&YpEOXc)44maPclRk|y`wNhTUV#6V9Vhx|aW47t zTs1Rzfe1%)j3uX1xFVhzv5Tn$#~vIEm4Jry#AQ}gbOQz5Fv{Z8&>oiU9}>E8;&qO? z{Zr5mUUz1ASV>e>{QXSoEAYTYf7T0BrT%-xz_irnngKli86bOTDqwp+>HugU zhk4Fv9PTAC)d0NiFTg+h55Q~w4E*Nrm4IveQ{MyG-f1XsrNz^gYKpeD9*^%5e&%T7 zTIOOV1sVNa+-X#U z+_22-1Z|wmV>lppq0k(jxc&g7;jSm-oW&y>i$Z_;bfzr6BSHEYK9V_Vxyr99n+EC$ z2dhpCJn&#QK%?N+(u1yRt}Ic}amP*;=c+AUAcqiQy6)c`10-FOJF|GkTaQ!~?gf7R z-#o)a)wax(Evg1vamw<@%y3XGdO{-TLjG~}3ai4u^SsDE4tXH{9T=C7IsYjv{E*`I zdqonn3wzMN{}XzlISna*XzY97*}qaC;coR~_+kGGANSc$k(kn9{6>#gyX#qbG#RQ2e&VH^x_3)KIHB{sQw?^ ze*isM4g>m7PE+OpnzEuKCJ4IovLl0&Sx-4_d0+DSzfrAS#X&G19gGyGjdK7I&uj7- z`Z*rgU3gq_R&kV%g^h;O9(hE2hAbbXj<5Ze-o}hmRcEvyeU-TB* zU4Zr>#~d|MKm&D?6W1Wy3~w{9D#ah(;AJ+hrIF3S{qzV3Bm!oq{$;$w7udV%G?foM z_~8rgE|KaNa4l{Zr;3eT7BGY3iGStXL2EbcDBqyQ9m>EEV~1T8|M7+qXjkzs54l|m zfzKZTKUoEO3!iv=F}^AuBvKIg_XA^$Lks2U`6j&y6yruCuf-j0aT67gcua$vNMB$C zJ;YklWHNvO8BYRDJeV$vla$~#n-140ven+~Q&A?#df;D0^nF7%+?P=%z+DWuFXh4h z3OU~Rsfhjwl%b%$=X`C`(?A<)IsO!+;Et3<`_PqYrkFK@M8*kxO{&@zmVrP_;=_2Z z@+o#sz@CX5SJ{KYA(ml0TiL8M?q(SX0RL<4E*@7O%6H(uhmc(#3VZr(eGrQN*D7Xg zu8#$#>L1kFVpmJce^d>uwY21>=^yOkVoOU6GoQguKhHQZ<0sHpA4&ytxHo9973>7?A7+J|BWoM_7_^%74>o#i9)o=>ozlUv1g;rD zdv14NaL1vQGuW2%vW6y(KohI}!6pvOV=h?KK<|zK$9KRJnz{~j zj+?saH$K1b15MX0{xUVFzJ@N{AhfUbIh*x;s#e?$XU9C)4o%nj*v2D9g|DW$c(s#RG z{NR2hh^`aBbmR$A@CNES$gOp$VBd*LeQyI#b?Onu(g%lulK1aU9CY2_MiDxJNyBYA z$H9fOw%DH2n>cI+{{vUt1GJX;*`v zeW5nP$=83%o@tvB3{G*z6kSGg#309v%1?s>!-ljlrhZ6lE!F=J26eN=IzgFir7E*z62Z zp46Q?z`#XiPz5?ur}0iuY58$EZg<|A&e&o2Tql5zZSxq;nnwTNOwGlcVBa??`XGzL zEYQ67Tmsp@a@p&EKVCxJ;r56dw!3oY@GF@1sXjPt1XltpSbI6_jn_OIv%U)0m{WxZ zDt7HM8goFK8ds6JHh!btn8IC6t7X8|u{cki2Z~lBTqNvyrvpoQb!A1JFZcO2PDTG3 z8xs*QO|jQvFW*vFS+P|~zuvMrZh5{MjCCpX9W~5K=s8CL-(A3bJ($0MS+9W$n6C%J z1x(9HxPbY3u=N6_8!PYS@mC^ML3+%v#>k+UI{hx3|) z)4;*09}I9BQmt_62Lqhf0Ov`)2TW?}5)J~1T{D=NvyAH&w1D)Uw66~9C7FW(1*;&|+;$n?K zFz!0KQcdv!?8u=RSA0_*1I6jx{is{G6HMDRn6=%W&B{h$M-9W3+?&bSCF$+`sD*eK zoV@4Z;4K@#XYGW8cRqIZ$DREFORn{!z#9SP?wKE-d+ttSH>Tk+ohS{j7tG=9unxd1 zvr_@+%jU+|Qj-4lor2J^irGwpCgWdNXK%!ZGgd=wI1|nF5_bmit9?8eWWh|@MF*tm z^{Gbr>;Gt!#mhOp+^?MA`1*Z>wXU2!kiQw%ynR>BDD2+cDBK5}p*r9pe=`cVWqXOR z+j|&=kJ!LEj)K+sgjY(!0^Q)0l7BNE!kB3Q*=Arl0=} z$kpFV-&0z3OQx;>5?*N>J!f6F*oyBQs%B<|i*PJAFwW3EoMA7Cr-kiewyY7!9>b=n zwrVAz0~bIk`L_<>{k)E{xuqKJN4Di~`A=y^tX)&^DDW!u-L5TEbFykS+BI-OQIipF|SDaTfoNA zU{?40j%_(~UQl$bYSms5{Y40cmozMu(~mhc`R+Z?1bR3DyE?GyB&O1Oy^Q`6I(j68 zVo7`truy^u0P@yS4_8G$ai!kI4EPgnR^CSA@h2Llg2GOjRAmMz4!eLxlG%0u-}e#%2;1T7oqUEzQwKy#jVX0QhcSft|4=a*3t%y>DN39IYP^D(;QuEW+_i@yM1D9F(B>&|WELU8acPwNFREu91 zzrI{SN1eKL?h(g~9P7_^bnV8@Q#Cn;^oP9&o*}p;jKr z8ppsb-hcg>k6Ft>v$utmvAg2%0bo*k0{`92Ps|k%?G;{Nkf(0ikpUmsA-{WqrI_x0 zpA{?#PDxHsvI1a=ZQ!d5hq;et z&~<D@zSdGixON11i&%P2e4m^U~{*;}YPlgjZmOn`Q{j#SE}bX3hx;E7?}@&;TeC+Z_P&FLuqB>+*_upQs{m zX#}4r8qeiE4*=gf0Q@! zOH0hSQg5A~Kw?pGBX}35u}Z`6F%A)kj}I_HPX^xwf#1)X3?5VXI97qO`M-6W`oR*< zHThrH$DWpWXXb5nxFy|_fbT8z6#j4Bw{U+;Drcwl1VcG10{c4H-0>-}_N@Txd{M(6 za{AzZU#f zxaptt@cz?K&6y=|IpomS@Zqe?Q;gphKjpCbJdpdjbB=ar>2AH)b}9g|n*-qugZ*g^ z)A+dtZcO(}Df*|}aUXjRn+~;9^!>jyJswBZ7r0X6zqIf=gz;b27jOt${Kx_tgyKi_ z1@OefETBJtSA7AzKxlAv_#V!&laMeQPVS2L;8e;vL69E&spSOlkDT&VGk__tU(Ki0 zZ)r+9ZUL!~sD_=0FIaZMKE%R$GnWFsa~4s(8H@(UEg%|xVF4w@@%sG`s^1TxcWEm* z*_0lPhgdk3MJmu&PMEJRv?kUUHYE({`3gU<)?rcRN=abCmr)$umn zfycVmn>itt{oBl?%u>cThjHKpvy-^1=X=ic|36jmmvBpq*o%8!$2~8?=q)MN>aJy-;Lpk;ghx<+aLB_gj3c?9j;usblVQN`Sb}^?S7!x|Mv8PT8QnM$vT1`X-`XcK;QM8PKK_)0!w#J8FO+9 zxGeYK5xb0=@2eJX;NdvDPGI)J{hr1O+xc4O0W;mWTDw7mGp7v%u0i$Mx3#wefNOXI z58?b@c7}uEh`%TLGC z<-f2VA|D1m(dWUHwWhB=FSnK(M2XmS?C`(T9gG)zO4dcbRp+#Nj>QjXm%F7OEFGYcC;o;3eF3>@HbU9UuRmi_hcY*u=5+;15N(?*@kT zAlKtE5$*@Uez<+JR@(om73`Tqu479@to8dgGVILeVaNKhxDAk?E}+c!5#Aak4<4mW z%ug>#bxK%&c?NC)A47WZAQ#EHdVUlx2bEYa-(a+=VEm56} ztBabe2#JhaJj?fBQJQLHak4HwN%AAyf2>`*(PUN?6y)XQDz1eeil3#J6A8ZEBe%`1 zJgSi4Z#hqHryuiR{x`xEMF&jKw{a}4mLF*NnB-jjxGU_h!5{q(lAqigw+bEgQl1f_(68AoFduy#0edFYES{R@JCD_gtN6)-gxDAvGV=&uK|XS*w)uLBy!rwfo@O zHCbt^)y9mHe1qZ05l53bhx6s#vc$hMK-s>Jj|<#3gC?Hfd6$3snri_oe*6)m-vSxX zc=wTeG3UlH&-aLTJBxJrCY?!nm0WFJ4PO=w_(8O5ef5qDiZ90>8>eD>`%vGp9p#s= z{eSG8349Y(*Z*g_lh76@fl^3{h-@MP77#>0A4NnqQ4tUoSrily*@XgaDQj6ufwHe6 zvM4Ah0i6&gy{v`yNylXi&tfA1uPs;Gdz&+|U-U;X?tC7FBY&ON_#?z!8! z{>zq(AMZ9s&oD3 z6Etsj_+cerSqI;?ji$2#$WzZ4-#Chx@-7S`ozM&1e^>l9#J)#csV*~5u zETy&~A$Ad~ocHYu-7s-W+{VQH-9i&$7tTyb*u6Vc80Of7?t4QQe-yW6!iRhJ^34ps z>A5>Jb{&u|L#e2-@5GH;%HBj9`!KT)etig~zhC}DnMqZtj1PpX?ES8q zlDzSo?-&xg)ynP1I&M8YFq|FD+qEEQ>c9M^E}gz?S$y1__%P)izFi?I;B~(X>rQ@^ zQuPnlcK=HyHmCaV!0_Jmgtz!jW_ftnxVXq!k*5B95wu5Jdm%4lf0EK*j^UmAi9Z>= zV0x9MQx;55jGwij%KO>AGho=fs#*Zj@KO_RQB$W(iHsaKe$b3DDGkNPe8DsJ!8 zodG|2YU)A1$W!m^{WxsL`n6j=-r0{(q*E5g&7F7rTxbHD`X|i|SUs%c?j}{$O3hlT z#$HQ$E`A|=5Y@2VZ*iNrhkHB_5VV;_-sE_e?xFDeiCy)8w^C-3(c$Ixq+@jrTDV>A zOSs&d80FO+JaN!*Kc;mu%U0Rct20>Zz(g$!TTadZW1SN@p0d^1;irsHl6@D=o3wNs zMevK6I%O(b=EBw2SaS9ny91|)P^Xpr#!VV0b_c$rntflb#bk)JeJvrXUXJRgP8{8G zNnV!wy~SGza#S~bv3Aw6<>3oP`A(V>KRv$chpd!INC;P2_+K5k^}#+b5+YVaJ(x0U ze8Ov?GbhfSoH#3B&Wg?PE30lyjC^}Wc-*Lj!EIjc^Wrnx`yMl`J7pL%Vaf7kimyuFc zi}QZpE;v4a^rNyiPCP4nv~qH^d?`aYneP2VgihIbJ=_pue9#!QPbYq6`XoQ+>7_9rwFJ46c+_lwTyY6KN zKJjt;Db4(#`V>=lzv)wFOrH@>*wIIPQ>GgB?j)$eMx*7%qn}IPl^-%uJa~nA(Garl zA>BTmC^lU*B{&^ci;|6xN_5omR94#cz>>(ZAz!q)5j=K)(`b0Z$WjBX#5=SSuRTJ9 zwhG5Y7Ru!0kfJCh=xw$XM2$6$xbEG|Sj*{mcQ0^hqtUEoO^`LRzF)k;?kh@dG9TC5 zlX>UsMTU?)y&uvk;_eGyo?3sZ!fxg1=hKvW;`Z_Tm2&Hv8Pz0px8awORQK-xlTfOA z_Wxll)lYTGYV~`A`@z)nlrt3^O~fN7XivOePTgwgtefJ0n0<_*#`iv?EAl?1vqp`s zu+0-(WxW<)g|&<#z{(Kj%iwe6?K25IXcIEGj-~I5o+ZLg|!v( zNoD5(oW^cjaS!@?)D- zV&+VoHZ{7+fX95*x7;x#l;(cD?(-GvAw~FzZ~aETG&LqZYCe(76~AoD>)D@x3L)|7 z%CWbNAzd~Ycd60*(R+h2D3e;0-*@qKaBtvi&TrDbPc;hE4s7(TB1odtLXbk-XV<7{tC; zg10oM?8?uGey_6ApnR>?M&_RAEm8i2tB5jPcSo}El;}<4o5p8!&*+{tKFg+}1MCO( zV?ZfPv@L#~CQSr@WIQP>iXovN;*8hN_-VU+Pxu9OaCCsX@)AD0m3od29@@G?MCSU8 z8Mk!B8Xc}#jp%cZ6X)cVv&w+8-YH5$LzC@~STio{oxj+$aM6sJF-yn27aF^G%FMCR z0YhGTd3?{RJxA}@wRZM<@oU4Cng`j?dlL{F(~&qz9u+m0*`)mI=hLRsxMb1bVh{Q zn9o;~2(^*&>a{DIPMi#1v}pGHm<7Y%51qJh(v+y^fSz6dHMm{XhK)Y`u4lM1z(=X+ ze{$cYt(K}8mwUI{AFkFQykqliMrEytg2`N|REUsOX_ z6@8O+rpS20AdhGL&eVysqgGDd6{%Etc~wnT>AW_7D64eZs&(9}bT$aLrYKUlG)TZ( z@y4Y|@{h%~C2O083BeH}D^o<^1Qdn937+s5D;+0&l^|_`MSZO#aze-J^@yC%tDq!q zf^SLO1m#(=g-3)h*u(yv#$x|Y2R~}Ds&7KV!o(F}C;eB8xZNhTs#4BZ=^$2N6OE*g zzp`B2M%Vij_VZk2`d@^A*zE}|vfHB{BI58yW$X2gVz`yiBBE19N0&)hf)Nq)AzAs> zpv0+%JS&42l&l$^tn6L);j|4SKB%HjQTF{JN-!b7_YEHsH(>e5D#|J~z@V1nnLtbn zlv5k2z&EI^PU%q+1BnP@?iffP4&z%9)Cey~i4@!Ky(?(}4hR$5$gzQN^S6qGq-Lmr zH$up|(`!MIuHo74Bq&mkz3f~q35v9rph!IkigcWyNQ++PabM~#Qj;Pm(#gLyC{m9N zx-VFWCW0b;K~SU~)V~Odbe5nh>h zb%~DEJH+0bnT9*@nmYOq*0ocDSY7kgPU8Sa%o6qwVB=y8?Tnu?q2!3!Wpu>!XTlwi zbJ!XAIN7_~_n>IU!cmIh10xN2%!|6=j)D(#N?FH*e!3ZI#4_EU>4v(yI$yrL>qvG^ zufxrn_3Bc`lw0Xg;_8(v6GuMxeAI~1qodXklc&0BAa3P$!vW2OZLSM?S*^F#c=d$g z4~{tyUhVB4nGg`vOO5!%SUWewYF=h|hxhBE8!<2xch0H>Fb_&p4elVdveGr#d(Uu# zsFT~Q!&Yi*gQz$)f{L>qi8kC`NcvB8zjVuP8Q?x>xEgUx*XIpgKME)+|IkGPt#iC7 z&5vQre!jxX`pz#QepbR9F`2f+cd7gM2(_mlv8<QVZ|Htqz?MX%$^oTX*vVddT6gHytEr@D(93aKjeEpD z=uY&C{=_J{FJG=OxVtVbbwP=%b{O}3eTPnV(o_%CqXp9sd|>!g*N!RM=wnP0Q`2-O zsc4>hSl3w>6dnED(GQG!&P_Bj8YLM-ZI!OQ@Im(*LeAf)I{OE@E1L~V`tH|N`E~8w zvLXX6v2IS(6X6?6R~^;nFlky%U$463QR*a!4oXQc?`21wt;QoadMtEGP42qE@SARS z?Ghc2mSQz_q0U{|1^otswSp%SZL5>{cZW);Hv>52|g zx9`8ttec3t6>=`>CA|KqSmS5w)@^eyN^D=UD6zeN$ahhS|I-;a)+O%pXSV8GRH^Bz zEm14PH;s*}{Ky8Y9AY@{zkAcx-CNg%I(31JWV2RTOb*tNvAxH;iRbpMjD z<#!xcCFBwX5%YfyRi9d7{_lZO^MCztdptqkwfV~G^ai@=lV_!H{FTn)cjx_be>v|rDo!b@%3@cgNomS#r#sY&SZ}dCifK=+7Iyiq zoV{t)g7A>RQ5$tig+`ZEdC1Ty(L+tjR#D^IqqH|IbN@rCq12l?y8dgOv1s#e=M|MZ zug{)Lgpicd6-kPVKeMSYH=ZUq_6yZ|>FA*DY1P5p%5dbz_xpsvCRhh_T0t zm9;EnX~G)y#Zj$|AseC|)v?F8sV?OGsNTBQ6$ewK8^pZndu&?KQm|rSr>@!O##$s< zCX#$4kz|la@{!bAN94j37OHHLSgE4j|ICG*#GK;h72La-TZeGx=H9yA4ym?IyMx6l zC1qI3J)5}aE$;cCx9%t967!~;m`wekk#?_GuCh}%n9qJ9$2KBMQQ{$OM5dJZit>?I zuJV!Cv>`IzttEJ!&$n)!;DR!?B!Sp*p|nq$7e9Bwq$O2CHn$mgc*^|9>652cQCo5H z*Ob^fld7zGEk1gF?4o&9g0z(`{TZX-^^DrW;3^>}M17o*;%FU!ZQN%ioasSI58?3_^-65m(KO1VtJ&~e?+G#36?N~eM9#PtesXyf*ZSGI}<16L< zU(Mi|w0kDeLHPCbpZ3FI<>^0}0Ng1i0C)b*1fb`~TTK8e-8?gZ%41>*aMH~wz)90| zZ9S2LJo7@;2I`_0IBG6XwlDBgk1y~q`9}c%D5KP7*{c5F+TF{`md)K?Hqen!QE?ge zgh<5mm!&#V6w%uIcNHySFqPCuXOK9-i^GU@_x;Gg!f0@2ffexJm}Nf=WU;9 zJ~MsdeYX1S_et_``G#_K^CjOazNwtWT*c4iSHo|o-`9RQ{=@yh3aB5@DBzKR?E%RF z1!d}#Ni4IZ%zI@%F0)TpURPOHU3Z_Z9&6l&>*$r}uIY;Oq54+(NgUO;O@B$BQr4%e zKat-%lzpje@3Q^N4lFx@81NsLJ;bqmN}wsQU0|2MR|5wG4h|d^I4W>LU`*ijz&U}5 zfqMcE1s)IlF3_wU!{-bt7i0)(67*Ei^BlhSYS8OJgMx+zjR=YfnjSPSXl2l+LHmM^ z2AvDK8k8248+1L`k4W+jf?EZ*5AGWLQt<1+ql06E7X-f_yeasz;C;bIg1-ws8~kJN zW#Y`|1=IU1SGHV*a+S+fFZV#Xh;omVYg4X6x$fm&D)(Bs*UP@I=SO#0E?pH$*$WVypZ3ir?8nVp8fJ^6VOMukF=0 zHo7~{w+=I-H!PYoKOug>s?S2*hY+f*@R z(oiff`8&craS{n*Zv=k&RiFwENh4fEL)FWDC>oz|!lV}srl+x9Mnm?YXxC|1KkTj3 z$IecOonLjA7{es)pl8jdez@_*V$dC|8y(|bHoBt~hu3&Ub;=S!(Y$VsQlo6 z$1`O5xmxhfSNtYSik>(t{HXmV-;G9DB?V%%UV3p+2Q%hgLCIiUodrU6;)R15CSxoP4q4O#!ikLH!u8z z%Gq&yqqFOZ%@JZx>iev@&Sq=G?)Q~oL(79NT>f$Qo+S%SeYPANe)ty~BVIg=;ncR< zg+y*Ku8Mnqxwg@+cfScE-wa|J?f7eg_Hcd9&%7`qbCHBW20F7 zLf|2NqBtIC5~rjpQE`goh{>+7M|n|wQ5kUJqcKWfwTx0GBxTPA!>IW&t4xk({8r7M zzbd?_qW`Lx`J+tNpYa_I+u@kcksalc!FJn>=Ua zYL50~Ol59B-1ej9QwLsdZ;Gf9`BKeE{G!+gH#=HZKL*ZL0K{Q0U%$^;nRv7D94Hzxh86y?1RGSI^i`kq*E^bu!RXpbguG#-&inlp zhA(s{{5QqS9+PNlwx`dvAKk}6dburK%RY^o^)QWzikbFSSbLg~m_(DZ36iw(+yBW{ z%egSkQr6cjWrWJL_11d(`x_w`G@?8_>8OBTsn>iqE^qj#n z#gSSw1M=o7wRb9$!t(uh>{$F>JV7Mq%@naGzw&1h&g5C9kf^vP)_lt8g8s@Rwf4@M z;xvOv9L+d=@QmTp2L%v$k`oQSe|Ospb)SrjjtXmerDvRJs{cDtU0(m!__)aSVL^X1 z8rRjo^w^#L7W%Ju1jZ4Iy!AolDTd!uiPrqN(!x9S1*3Xo2x}15`w_3NwSg#gH3k^f z8p=~yejl@~%Am?w%~@z)FDprrlUsfH%34BfhMeEJ_UrvrnmDO4L=CF_gzD4s>le0; zy^f6I2+ddRVtnp|=ujM1wZwdS8!;K$*^5LL?1BbuWYpkh-I@a*<`j7W5HywEQ zgV$dV>)q$AzJ2;^{M-~YiNp97=s5m^iMSFQOK3?BbMq|A)=p957&ya?Bk02a_y{`D z9++mbF7P*FYctgf1~DedKBRaZ!CYSxhp}oQE(tEFH?S#A@1Hnno<6!iw%{IvvQrJx z7KsT9KSK%j{jsC*C;tURD>t?Do8f5S`-Jgdelb{VmV4N)H}kzm%wm|7at1b}bn;a@ z`3IdhtZx-RK5_DrIaSiuF{7+kIFzwr6D5FfCFSp}sa8QW@>-}msCX3oC&l@(ZS-oN7>XCy7j~qE@ z@QBqLOnSD7bJQ7IRrJ5yK{>?uj1etl#Z4VYT`i!v5P$LuMgrYzFgWUF`Nwe>TJz?i8J`TMa@Qj_=>~<%wRKUVU@y#JKQY#4eE_Mt~ik zP6JOXp-SbC&Ky1Z(PR7;I`HvM;X#w4IHPdCTlC#tMD$Q$9~1o%j+#n@euW{5gHm$* zmMosLc44@(ugKRoLCk2k&}PqAEGokGNBXI=udiV8t+xMYqgq?3?I+HEe3Dy;IIq@L zYiVmr-E-MWExkeezJ)ujI4`pJMX^cBeU9WK?&Ww&h;y!AkQOi*t+g?vSSCgBJD~XF za~|TkXeHM zY;6>4x~6jG^Sm#942_>REphVPfJNh8U;AuTwPF*7MCp($XDbH>in5c$pwE4A528M@ z`-?A+^xWOK>q|X5cm3j}FT;aMT%A#D6VWTaNsT$-!LK==;rdD|mM&esV(GXs?~W5# zy4<8!ny)hI5B=t}ntQcM^qf|sf9zfFYpU%GV3(iICM$BiBv zJzlS*&Gq8Z1j=F)_zkaO^YR<`)0MSL974>*K5nP_K0O#qDGI1sDgUWriu!TH&*-7 zs2AS*eeRGG`kX#Sy*~%hFPU!AFJHQJ#qy=&-W@Y;+`IanAAY!X+nXEv;lvF!?A`wP zzP-J-cYpEK-rZmP{MCI>?Z6=kOU5Q_TLdK5l1+tBUWHOvPWXJf=2a^V2;_1FnySr0BI6 zq3(d{_4Ufz2DL(dO~!T}OlEIUL%rQ!39?#o4gzcCs==E5jWz~pE74fz#ak=un1^b} zL6nNFXs)7@^$cS_uiWdcAHVRU;d?k=dAAVNil9`#HdI zVn`H6M`EEjbu{YZI3PS)PwXE~2sOHGhF3Gh)b<`+12l!!Bf z^wCyMT!_e3p3XhVn}<<~%7sb=S>Kxo@aVfqPo%2~dgiPf>MtHXCX2Huz4z$7UX&Vh zmZAH=pts^Im7)RsdX!{zSMeZVLWlFDC_WFP4vDVwz0 zr1J7rsR>t;{FPMR`zO*Qx{AH}N!`3wOZR$R=Gq=S1olcby?vx^GXIv>yK?xwo9vRh zc@L55dizQ*cpJFCBmWNNx`O*_N_FL*dH(lO2a%_D6lIztRrKoQD&(NW%JM*|C1ozp zwY*nZp1*~^8%T9Hr?M*Pn#yar=Vz&k{J9h=_ml3GznAo075H9~8p^UOif41M)^m_IgVSkk3fLJuFVJG*(v(oUY;JWM;LfykP;O~aZCQGgqa0UDTviaVm@zTRhFIl_aN3Nq? z@0SDN-Is2z3chM6FRreU8g~VMe-Ec9*IC}-Fy$BA?jcnK4`>`0JQok&B9MXKSo6n+f@Q_@Ss;iY+*yG1!xG`gPNeOEb3$wXa}AHPk`4ve~aHF@F-{r z{!RD!EQWWT;2>PoIM`9D;WL@P`*4j#Hli)LU6i!5w5?h@MH^MRz4%k^z!RouBuOVN z^Xe&i_kDNRAgSUT!}`A^)fn{Jh#^u#$wxH!E|=sb8KkPE{#8k;CY6)CI(F_*U24#^ zbI0mZJMF%*++K35Z?IHBsw{<~119Mn?N=R7^O5{{ULdJMq$*OlRKxR&m*mT##d=A! zaTTR7sk(HpRI~4E!~07=YM)oM&(wZH-X1Jjw9h>4)A9PS*ZN97i%&T~`>Zf%;2W>W z)ds!YcaU5|`>Zo$w>{KwJU+Gm;HdsY-uV(7p-LKFe#L{=fP3)4nPBG)VQO2&tv?gw#QLUg{sn8_zjXf_pHsUJeRW?;{{67$->-PCv7Rgb zl*m^;$wAZN%E8~-^}OeL)^pADTz__7@!z!jXp`Mn&vU#wVFNqxo$S??PcN@_=-V|p zRZf%B#-2D)rPs``|d`51>X9xK-pB?2N`0OM% z=Cd#Lq)TZOHL_a~ga9kvv)+Bfl$eW@`3h`4f4oyzN%sarZjz{#5=< z-Y$PG?~r$LSoat5Zh6nGzT@sO+v%qE<+Ssv}`CHeFnI((=UrhQh|K5M@0QcAKSd4rVevIBlPd8q35^eZu3q;Y zYtZFwt7sGag><*A6PAEe=4Y~WpqlqO?{uFAKJ9#7@mcG0*7srGuD-o}-}H_3P4r#w zd)W7+?@xY`pU$tHUxMFh|62aN{df6W0vZI22v`$vzD%VuUCJbsxuSbqH(z&F@1x(W zx0gK}_(b4@px!}ig3AUs4IUA^H8{Oo5R>k^$~nq6F5j~_(<&XV>{I#i%8`|~S9XN92#pNgTScnU zwaVHmg<%cD-V9qC_EXi+s$Hwjta`XwK(!Xt231>8?WD1S@pkg_{sb2SbE9#|i82ixsx8Hxg{^Rwh)&KT^iVq|- zDA!>2gJmDgX?U{H*2eQ2pM5Cwp`H&ddgyFK#fYvEiz3c8so11zllUgzHZ9w zyP95a*0|Y#hy5OI_;CA&r#*bQxli-Qn@?+gxP?!P$6G|T*xTazBP|{o^T^gmEG_G` z?A3C1%ae~*dbHQ0YaUH+71pYIs}-#-wGM0Drgcu6iftZm6WL~a8|!2B9_#nmy2sKV zulM+%$2UK2{a53EMgD6qL~QlM%qM<&vi_5=Ke_hF%(gY#zS1`8sa8*ocxvNQSK67{ z)oItbUCVZD+jVKzvt7S-L)wjLH>2JBb}QPgZ+Ebr_30WG)UiXyn2!59{@m%|PNO=l@APBm zvYlIX9@=?L=hI#Mx;)(F%`R)Zq&{2!*~DiZU4yzd?Ao^LfUcXn+VNM)yFQXCxXe#X#=>x9&Uv@f|X zNuTiBkFEkK({+wfj!IGvdY6mGWR>blHtx^od%ILdDs-Kd16@UOIoCzGyemhp=yJ#p zxGtkLm3ZR+RCy{>9zEp=r9Aa0Pl%^HI!}3uDbFR!lj|wZ72(lg)hhE=Rj7>!{%(%` zc5xN+)&;zEK5uL1P4(m)Le55VuCKkRop!V$?^2$+Q>io8bYoWT|biMJZX|ilj=z$?zl>+vME(IrLt41Y~HO{YVJBk>3&3#DkaOt zPYZzu6<&i3lRG&~27EJUm>85X%qqn3Jm@f?*DMbx2z z8n93UsiZ98dHJ52uu+#)sEI&oBFs~l25O-!Y$>EZ?bJkB>d`<>m0V8VNR`@qctLauvQO4dpJ+Uq+tYT6-6j z6xp5{wv!^28cxw_MQ|<0bzRD(G*-0D?o!FgLQdImJ%ajqlG=33#!AY|q)g{|7AcFT zWRt=zn<}KP4NHTNjgB0$$swOs&4+T7S1wP< zfdS$vPK^P*$$>YMid_mh=8|JB`9DdmcX4HLXEt|Un9b=OfIsS8P+PwG5U7gDpu)a=icM<>cdiaf1e%4ziy$g_jFvplGv z$*YLEam&n|V?H@r$T6K9wOS{Kd@YCacbkJ`)ym<{MelijK5tOS`xo*&QUBr%a(Dx) z-~`Vs;F*Q!AQoDRptMi&OBbZ^Jf-U4I>VjG8W(aYy_NfHaM3L>D+~_A773Y0z_aGA z_0l8gP;2wgQC-)#y7n0gR%6wAUNmW#;w0We=qO^si zE~XqdQWt8a6?LqVy7*7(*v?yIkxNM(XOV-Q9P+W>A_rkzf?-B^EZa@?7Q@~`4|@wr z)rXC;xUG+yxeju(lA9Gv80=b1E(<*Tb6^Rb*iEOW9dMGPc(W27{-ovf3BPMRMAIzP zLJr)^rT#>IHmsAoRS~+8_X};i%9F0~B;^mZEt@yb<;_)|lt=y9c~aglw5=RvE+nTy z^hH>mEM%2Vs%xYYI$|Y7lE;1&39cY{J2vDxZ=Ft=vSg8vVAnC8cZiaw@k}#1YQf*IQ%AxI!XMhiC;4|5*I{zoN^Zi>I42!*9hZ*N zE`9B~D4lWbAor_Ml54m06S#~&l0jW%i8=(?_#e!`P>*$ZdK2ogD)o4;?Cshk`?wCs zzOHZOvaXY~Fm^fEbwn=b%EAY*P)ecicKHF=?$*Cx@fRhifXt1Q(8Rkwg2bMrcDnEe zZvDungsGG$o%bz3|D5C`ENl)V2W7EV!LHB9J(9da zyDu33HSJ3wCDTzd8A+9;WF|`HPswCTki*kY@${=aU1J(gKdo7dVsb9@NId~3z5cttppccbCJk0B=Qv!IfX=aB9S9V<5Q0` zYJ1+f5~Xa+JBMlSEW4H=krhZ}2NF4rM0O#OV{(9NG4)Z5MAlO$UsERqyp>>TfoyW^ zrC!qI^Z0z_kcRNKM6C;UW>9L;wulxqmy)GZ+hyD>7IlQz&y$5eAX=>qt&YO*Ve;{O z((!z7ApeTy8SniV=_4k8z^$Lp>_V`8piwFhYas0*XHC}o$@*h3Uglu0uhD*pHp_{<%hFN{|Ae-U`l!Jj_faQxfspt^Tt#cw-1Q!*&7{sC zwWzP_q`pQwC%nZ#?yP~f-p8+Xf!nLk@T6Qq%3M!M;c=x=$HFJNkD9Ct+;``5H+4ga zMJcWDSiF}){toiDc;2fd|9na&^0$*>6)955Kb?{ZODNteMH|J&%f+4sY8t7)YCEjP zzo6fBv;UDpPHs*#XZ-RJerqi~46~a{J@9LLOHCy)YM6yhuwWCir5BN88zlK0WgLVg zpNE;PZ^%G+d8+#z|&XX8Xij zVvUe$bJu)QSxJ@3TZ*>2h?F_J->qvhmlRe~WRv2i2W~|#|15=I$S+d}ITRygJbVzNmSj+rl#!J({ap z4n;7uz>|Y0d5P|bzM#;Zk{pD@OXnc;Cq*m0&|Oi#!cWO2hhJ-jkmcvRyM-Jql)+5O zY|S$h+F^ll8E{*8X8GhG^tVJyER;cLiIW^IlfxczDA00v9%=Q!dcQ>9QRF7-U-)^V z90lZ(OD>tzMJ9D2`ly-YBD8Y@xd?^`D~# zqlkAEnlHQv@gDiSM>g+~#d|RN0&Z%Lcn_gH;yr}+oFXsLXA(>k+HUu-paxI5$xkt| zAowY4#1&ErUp1dpqK75qC;Cj+sRJ=8P?=vv-%9l7nPqgRqHOM7mS{fG*G(a6W$j}6>? z%D+BF@=p%`Q)5Mc|LD`-pX1##@1K-^Hsbf6sG)NB$M<5Temh3l8{hkO#wqW7H1U6D zioZU_`PXy!dqzqB$)#j$)bfkbe?u zXWsdY(EmU6R@pPca(6Rn`>ERl;2<~zem%4H_txXxdyRj6w(NgH4tF+V_uqQ=f6q+g zUn%L=cQ_|1W@+wzPV}#o^xr#s``=Six4%)A(br&B9F=FTL7TL!|J2L>WWD@nR}=j6^#9a4j{p0sG5&eO z|Na#<|MzA1*VhdFZ^+@VuMrZf6vRrOyIW!OpGqx!6NluB&v=)mmtWFm@c-%xtN+yd z|J&ux8gp%BnOJM?S=n)S>$m<|>bqN)76el+dzf;&E84Q?VWhDV$d{F;ceWNTM@wmA zU%XgFe0L?jyHvGV3H&-M31+Y|WhPHfWL;@B=H?c$dgj-wk8ZBXYc0hwv$sfkQW`FG zA!QH#^%8r>d-L5L z3S7Jb7w<&xay{!NbKqj`|F^X#rd}KrKqi9n0irL`S@GA^Sdip zVQBuJu4479d&S0yeQ&q3?zJR^5BAJQOW~e-_Z7SA*uznSy(NEGN>&B7VbyVOt~?J* zSJ^Y}1kTv-Ak8=qkm%8Lq-IGi3ja;gbOE|eyB9}UUl1m+OX+SRZJ-O5q zxv&=3msRLx`Iaa-2}!io7Kx2Tihd5w=V~B;oW{M2RCEyb{+IzOMQDQ=I=+wZy@71YIrtp zu!wd&3<)j1g@j7C>$7;*#kAlfXnpmx>#b?m1$!3LuD6xWNG~9{AjwJe9B=7mxx6%; zcK$xvd6WErG*NCOJ@0AfpQW9Do_79O*uR)|{(0K@=V<4jr=5SEcK$iq`Dbb8pQD|B z{x(;J>ou+fva|BHdUNv~gzxbZIhL#=zw_1L|G%UZR!y{Ve{I$KKRLKp|Np1!p@Jq& zUslcEzC^`bNpY!t429Up!oO)Z#9ylqVI%K;$B&o;|NC}Ch;^>QleSQ^zusdZ_O1Te z9t)LOsM32ZivHK^*bud>@@C1r*`4h75c^}$}=y(4_Bq)otmG<;sw53al zn))W~X;a$M2jx2SgBwZxX;1snZ|*~T+K2YE4{h5<+S5L?r~PS9`_rEGp*`(Sd)kNg zv_I`>AIf_-J8}M_t4+-m(PveNNuRa-atgk5IdDJw7}NEh0so#|lljybJ12SS5C7wDrDxT^9(32eht|E{RID5*i8+(1?V}a39z1W@$g?8@-ciZ>7eb2vIzjs^eKeNJj zzK8ms6r#nxqj5Lx{&%JjToZkjJKuNxcSJw?JK~W2`yx^N&+m}F+xF~k)BQay*x!@O zAGd?@YY}*467k>J?Q!nc<;%6gOIC8K8#;kicOnfx-QKq}fNqMf;W&~{c@x?>)>qbG?-7A5^%5idjR z>nCQIwin+W$)XLuQ*YYmk{rZtek)#AE^9SKJOQzrza$3{3!@||f!NJ|7BAYpn_omb zb6aEgPX3Y=p5hsIRx|&ka9hgTVbPt}m6-9pJ$VSb zEyj56oS}E0vV_xj{>&1s`0LNUdwnV?{eO23cWxB|V2bdXf8U1Od7ko12Q_QlURvR0 z_kG28sDC}(BE47OvT}VwLM!#G(z{xV@OJlXzxPrtui97Y9u8&SQW9k$@wNfHw|c7scH45^_oUBZAJ9m8BG^8UDNc#X5Tiu)Xdz> z(k!o;<6*Cd%ROv*cv(gl3vwYW;zn|m!0(cR9>dwD=a_t5B zlCB@<4_*gvfB|42coVz@27$puWE%qBChwu(9WV?G2T>pz#DGa)30Ml2f#qNYSP52v z)nE;H53B|I$@>5}2o8ZGl<_Dy29ATT!3ppU_!fKzPJ-{jDewdDavGcgXTdpeo_sHW zi~M~FB!Qp6WpD)~12eb^u9Jro{0v;g6_bEWoGvfm4SWD2K*S%*C;nJI@yGJzGC&9P z0KZa;M;64@Ky0r{pfU&rBC2B;_f!SdfDxELIH(Tp0X4wApeFa<2Wo-Zpbn@D>Vf+~ zBO=c=21Fm0i3%n+0gK816xScXX>bOd1?RwdZ~?G;Or{=W>OrO+Wa>et9%Sl4rXFPK zL8cz$6zXD$RFgh>ZQA=f;C@gaJV5NC23#KmjX)Fd1nqxY#_66y=h_kLs68Xh&tk2+ z^7nIGUjW^>r#r3v%iQ0WeEWg^;C1i@7yt%>H^EzA5E$&bAPoT{NHY?Q0;9ng@Gck& z#(_vM9!vleK`fXIrhutn8ki1dfH*J{%mTB)9Ns6M>s*ik=7ISj5iA6Yz+&(|SO-1; zM|hW`;21a#z6K}2H{e_F9XJWT2dBUf)Xiyd2Al=wz?qqCvX{D0m;A& zu7VWm^BPD6Y2Z5b=>$Im7x7^wAQSb@3wQ$`;0yeKKL`M2fDY(ES?(w5lpF+z!77&n zB8E`~5CVwq3{#6>Y7tB=f~iF?wFssb!PFv{S_D&zU}}*JC*%hJoRHxJEL7wrTz}*_ zycvOp$F|UU3&1Zb`8CER~ z4(7qZJgi$9Jj{cKd5moa!NWXwm#un+8~&JKWs;1E$3YZ6iRK0xb& zB`U-c*|0=5ERhXMWJBh8NNopF+kxEkI2oxXxz<9{ODsn{{=R8Fa(-bw8uOd5AT1d| ze*z}71tnJGX>5?NBptBD9l^8A#i8%)29ATT!3ppU_!fKz zPJ-{jDewb04bFhG;2iiX)+-ZPW&sPx1Nop3Tt}u(@H21`K}`a8X4NcMGz%6j1B;e{ zMa#gVWnj@VXp8e`i}PrU^Jt5Og|lGctXMcJ7S4)=vtr?_SU4*d&WeSzV&SY~{887-P+ zJjLJmDYVh~w9)yr(fPE|`Lxmbw9)x@WI4mIllj=meC(cr%~P;>+0vtERD19d|K1F? zfRDj$um|h~`@nwgJpc}ZL*Pr&d<71J6mSisf;6y>Cl&LgVu{$LJjuzEoan3#owcL0 zc3OTrK4uzE&XS%Xw+^5qvh2jQGjQv#9gm7KL72KNVc3N*ct+$=l+fM6kr}ehedfREe?X=!@T5mh8 zx1HA8LhD_^^<21~3)geudM;egh3i>xJqxa9!SyV7o&(Qw;CT)_&w=MT@H_{e=fLwE zc%B2#bKrSN^g~Uk;0!nm&Vlpb0w5Yc9)lf^!H&mZ$78VLG1&1K?05`z zJO(=+gB_2-E~k;Fh$){37e9fKL~+I{JwP<&mdx2d!Py&avG7lUcHn9Jt@cDBeumbf z1B~bhI`MaB@GR-Na?f*IUjW_s`$ewZK~JRJi@aavyT1IpALtKW2XBA@U?6xCyafh< z5}$PrW!Xor)q8kVk>U%{_=6-(Zm>uX&5kiIWi z%yUk0AO1V6y#{Nq!P;xE_8P3c25YauS~ILQ!&)<}HN#pntTn@0GpsekT27||DIkqJ zvw21i&*01n*~%5G0gJPxk8W7-FxL)q?J(C4bL}wK26JsN*9LQKFxLiiZ7|mcb8Rr!26JsN*9LQKFxLii zZ7|mcb8RrU2<8^S+#;A;1ak|qxrMN|P>YRj;Yv*svAd9n=A7OEY#z^KV08hk&VkiAusR1;=fLVLSe*r{vtV@= ztQHaY?XcPos|#VZ9ah_6wH;R5VYM9_Y{LfIV6hz*+hK7bEVjd9J1n-tVmmCh!(uxu zw!>mOEVjX78!WcLVjC>B!D1UMw!vZ>EVjX78!WcLVmqw0!&+pH?KNY2&*SYo>7zOE z^qut2oY>;ic=}HIXHKaRXab(#-nQ(>dx~8u?YKV8EJ1tMc8^`og~>U;vdc-ovdhBT zPlw6Hus92wd>)(3Dk$(ecmoUo1Hqf%EiecSc5TAb--K81q`&8+zvraC=cK>qq`&8+ zzvraC=cK>qq`&8+zvraC=fsP5(!X=kzjM;RbJD+a(!X=kzjM;RbJD+a(!X=kzjHE< za2hY(N&n7C|ISJO&Po5yN&n7C|ISJO&Po5yiD&Ml&*r4hCOjE4T4hG7%xIMvtumuk zX0*zTR+-T%Gg@UvtITMX8Ldh}tCG;FB(y3Ctx7_xuAo&{(5fV~DhaJhLaUO{swA{3 z39U*(tCG;FB(!QfTD2Xm+KyIj_p}GOXjCrRl#BM{qCGjD_8|8T+JhuCCkf3-LUWSP zoFp_S3C&4DbCS@UBs3=p%}KhA_TZPEdKeM>tAc942uvUxR0sEf8sJ_~6R(3cHE2#T znp2FXWT7cpXi64dxf5;4MO$*wmRz(Y7j4N!TXJaw7SaYRqz$lO|1D^Z8LcsEwtorf zPI1o<;50Y`&VqB`Jh%Wj0|d=ULUWSP9L^*J)IFM$gytlnIZ0?v5}K2Q=9sbn7Hq!- z4KkxaX8Z$RJaHWmel>j!G{=VhSMjlnrIvX1k8*ti|F|vEd5ZpRJFf1&@l`Y@*X?Js z>aY`kcLvYWnsnv*9M>0s7RNN1@WAQ1R7^@zsm*)r;}fi>3XP_W(Eu4uLQE?kjK@ z9N`^~f@9z~_!^u5-+*tyci<%W9-IQyI&9B{?YXc$7q;iZb}MYR!uDL)o(tP^VS6rY z&xP%|uss*H=fd_}*nSnZUxn>gVf$6so=Y2&`y0PKhdRmyR&c|Ir#{7LV+Gvr_TzJD zLvm?Da%n$uX+N@QKeA~*vS~j!a~sI8!3%f;AK(l8fIkQTWq=OoL0Rq(1VP|dBX9<6 zb|pY`a=fBKydoP~U_%RRXn_qau%QJuw7`ZI*w6wST3|y9e%)79X+Koj50&;qMJsG* zg$=E+p%KD||7}0@rVoD_%{X1khtEbE{;cnsi#Ft<4Y_DTF4~ZbHsqoWxoAT!+K`Jj zFctoeL?WeHq z+hOvb`SmMd@=BPz5+<*N$tz*^f0Y|OV)@!L2LWVo@xpn(REmz82$ zPqI9AU9ej8RIhqiZU3D)xdK>P080yCDYl$)+{wJ$R?52#d#no&xJrV0{X#Pl5F*us#LW zr@;CYSf2vxQ(%1xtWSaU$#^=+csj}0^JMIKGWPr`_WUaLJQ;hQjHi=~r<07QlZ>a6 zjHi=~jZenLC*$eZV7(32+h9FoI@FmRT&J#_;Ah~%N0xx>O2&RC^{ z05td=&toz9{JDpbj9pH~E+=D`ld;Rm*yUvGax!+Av%mp$f?ZCQrsG?u;ajJ%J|Y;_ zIq0PpOLYKa_tO1b>w^c_>(hYigP;*$UY*`5o(Jh3#)oZzgjzCB^dkOlchD1Gy%$pN zOP>8efABhZ0}KEI!JFVMFbE7L!p0ErHu(+(?|@-oI2gfmMuJgbG#CTk1!KWD5DCVE z31A|KB26@i0h2&1-%SQnz*H~|Ob0VS9GD4af!SaV?-|c^E=U0LzT5ID0zL*?sk?39Q}7ws z4n7Avz)r9Wd;xY-zk9%5un+8~t`C5N;E?Mwj8kEp3gc85r@}TBZ$ibJQ1K>Iya^R= zLdBa<@g`Kf2^DWb#hXyDkqS0a!A2_B$O62H0=$U=yomyOg~iOrP+zd*6f8LfLo#8A z6^3vkGJoICmDwHGVTB!>L<}19eG{%tX%U(+rtmN&Zo$cUEnQRSspVm}oG`@+OH^1Q z>`f+8&qV5(NIes&XCiegQnw;?D^j;2bt_W0B6TZLw<2{bQnw;?D^j;2^-QFmiPSTZ zdL~l0B6TZLw<2{bQnw;?D^j;2bt_W0B6TZLw<2*X61O68D-yRNaVrwHB5^Acw<2*X z63;~9nMgbniDx45OeCI(#50k2CKAs?;+aT16Ny`qxD|<8rS;Uo2Cxxq0w02psFTfL z3-}mprGB=7Pr+wkJNO*z06W1h@CDdS9qs{p!9K8``aA#*fh>#enAtl{E`||K z7~zBwP9&`&X%$JUNLoeG#YnmsNf#sOVkB*)1$5E^I%xr&w17@pKqn(*R~ae03Ja{* z9VacHla|j(%jcx!bJFrTY5APAe2f>tk{@8n542zkOtHZf3rw-V6dO#jz!VEivA`4y zOtHWe8%(jlluVei6{cjsl*2G(7EH;c#ZqXo6k05W7E7VUQfRRhS}cVYOQFS5Xt5L+ zWP?FA7-WM%HW*}sK^7Qffk74+WPw2z7-WG#78qoKK^7Qffk74+WPw387-WM%HW*}s zK^7Qffk74+WPw2z7-WG#78qoKK^7Qffk74+WPw2z7-WG#78qoKK^7Qffk74+WPw38 z7-WM%HW*}sK{gmU{D4OIt+sj!=S@3=r9bL1%qb6pjj|z z77WUSL76Zp6Gm8&ehSi0LHg7i(!GRqFM0fv9Hg6%bn}sJ4${p>y7@>qAL-^J-F&2* zi*)mmZaUIEjC9kGF7r>EWces*I!dqIflrcygmaK^4ie5m!Z}Dd9|`9p;d~^VkA(A) za6S^wN5c6?I3Ee;BjJ1`oR5TakZ=wX&OyRCNH`w}=Obaf0Wb|r2Qxq%m&m)`0iGTJS#iuLB=|_0-P>un}wmAA*ml zugzc!_!w-Z?zVwX!DnDQ_#Es2JHamS1=vmf?g4wjKCqv3F8+k#;)LPDk1qNL!3x zr+akSjI^_nwi#((LE7KrxjOM$o%G#u@Kl{h{`OY5z0JKt!8>3W7!F48oRMG@7!AgN zcfnXN4n%_SU;>y3q9}JXhyjy8EZ6?*$Hqy^V`q@Z78|h~w{cNP4jr6mTem2t2M*3!?Z$|oNq;E$0SCIY{q<;nJUqSlc zBmM7@{`Yv)PCRNS9<>vX+KET)#FKX7NjveRop{ntJZUGMv=dL-i6`yElXl`s=io`_ z;7RA;N$21#JMosCc*{<_WhdUUQ}zS?AOMsBI-mz|Mec=Nc^SMyE5xoQY)b}xCMO=N z6OYx2$Lhpmb>gu)Wu7hbY?)`vJX=ly*`&$EbJzq+ufWnPj2@`4)DBD2U}+jG&4;CF zurv*ZroqrO7@7t{?JzVAhUQ?8&cV=B7d z9roE_pB?t4!M-%umj?UNU|$;SOM`uBurCevrNO>5*p~+T(qLac?8}FJ`LHh^_NBqT zG}xC0`_f=v8thAheQB^S4fdtMzBJgE2J_NjUK-3xgL!E%FAe6U!Mrq>mj?6FV4fZ3 z*3#o*m}dVV)i4*X>`o4LCkMN84(6SM zdFNo>IhdCU^HO16D$GlTd8sfj73QVFyi}N%3iDE7-W8a41?F9Wc~@ZGMVNOH=3Rt& z7hzr@%qxU>g)pxe<`u)dVwhJ9^NQ)qsr2Pk7^uQP6$Yv>P=$di3{+vD3IkObsKPiE z#;Gt)g>fp3Q(>G6<5U=@!Z;PisW47>!cIJ4r(6vffeD0z>fjzw1KbPX2sY5YGUH~i zU!~VC7%Em?s4!H8p(+ejVWDunMoQ9GKP2n+cD%d9scRGGmV-cwKSb+L<@>T z0u*A}f7&JuAp~3lAqfx?0(J-q#+I=jW{B}xwsocZ;ObuAdnK9e=l9#)t9vE6*fX@# zNxWyi_wJrOd-m-4eb4W_etUL&Pks2J7&3lz^)`VeA7}kVg zO&HdM8EqZ4Yny1Ez#A|6u=xN7W;rm+fmsgBa$uGNvmBV^z$^!5IWWuNeeW&i9&+R! za^xP~1K+}E(I6229qjGEU)J{D!dh#C`qlb{tR!$P7UtF*6 z*Hdsk1=mxsTjs-e(DNuUH?Z!+7W1gt#d!Hi_Itr8a2n7ChxL!LI?TuHDzF;V5zcb` z?=+Toi6yS3qKeQ}gsvjSVpe$F%t~uFvSMqKX(9f*%}wlY1-J0tIoN*=_Me0OGCq)@hnUfPKF(20^SPdJ^q%Igxq=Qs02oHz4&5NPPoR zZ$#>iNWIb4fl;Zql7D-UdPwu|E>eFNslUru{HIF}Q-|(AS4!C$(BJpeS0ta%YpS`X znro`{sF9;ajvAS@-AupB8}*a-5XAm#>LF3T^|pGd{hY zbrp9Kau+LB-N71H2e|%q@N4iJ@LTXEI0)VXhrnS#-x6-L!Hssf(GD-#;YB;VXlJd+ zcDT_FH`>XY`^lU8;YJ(WXonkZaH9=ww84!wxIwFjw0r?_t$B;`eTA^3Z?_7Jcz8 z@E~{yJPf4GavdSBBjj~@RLM~#N0sPDZ$>Oe5AQ-poFcSu67=w*^zcs60*cYbiCx5K zQ;c3;j9y=iUSEt}U+nj2v?)TbFG8;`La#4EuMf*w^6Dw@G}sIFk#Em{XTfveN8owz zWAGF3Q}6wyu$Aw~ovj0i^P`^qdugjy)Vs9=P# zm?1_5Ba8|jr_Si`>x?eyj04me@>WZNIj974PzmOs63js*n1f0%2bEwBD#097f;p%J z7I1^~X9p+LY|X^~*Wk0$Rb}fWHOzfWHG@1!FDdzJ^~LxEK5*_$P25xF58G zuY=v-8{h%b@J;@|1s((sfrr5(;8E~xum@a>1>ScF|DWJ{;BoTl```)i1MnpHA^G+c zcpB^l7hZpKQGaw%e{@lQbWwjCp#C^O{c(W$;{f%?3F?m%)E_6PKO)p0kxTY5m+WKy z5A9{rG$QM3tyP2A)hnlH}9*k#Q6!m1KK8lu)qUED#`7FJJEWLy*y@V{ige<*;EWLy*y@V{ige<)T8O=?g z~z|Bn{WkbA!^aGc;%;w_r9zKKO3kLAvod?ozhW!)xoRhO|m^7uBSO1XB zjpByfI5E6W%xAea>W;X)f#Rm|O~6y*X4#YU6H=nnvvP+MoM)_>>?K^P>z8D^rY{W64%nA9w8^64xYDn8z#_;(EXEjgMSB}(&Sr&3c-qP?=OK5UTq{cJ;Pa7eG zg(nGr3f=P_dHlZ0SMJn{MiLGkL%QOSJX{fp#JQXNb9ZlJ3~R!Te9K}p1qV6JJ4J9a z3sZXdJ&x~NoF8W93^|kfEGf=#%zQ~+WYvtBt;sts*d_OqT-PTOBNjnYN)5*u{TD_> z;ChtQb4E*-$Tv(X`o!Oh?!5AiaorH3V{hI5i)h8%d*n%imJ2`)faFj4Vwf!7BJX3!VGxwXYBuL7M zQ_?EAEc*$~B`LqYkDia2UuGhP}dmH@+hv>9U#-zAw45(t&|t#{)?e-h(t?Pr#E$K}>Tas-;-8o|I$B zF*!FtT3LHTx{-FK02ho&S>=zLD)Zo)Nh68<%=+)o;X-@Jo~k1**~G~S!|baDO^ zDU~;F(VlXa(7$w_!{=q?aVIHAAguzYDT$E_CGLHcm-~?-tEZ96$H^Bou6v)UB-aLs z>pq?zOGakwL?bbu>HdrRIKI!5Pp{+mA|=L`eJ<&`!&3{}MSt}hR#+glQB9@j{eClz z92my8U(0V_F8#tB(HR3iYp@+Dj5q&Cw0^K@-k)O?d*i+h9suanVB`5u5$CJHvHVL} z@s7!%LZ{l65c%<=Rq)vdj)C1keY_Yr>VumwZgfL$1n~@T?|c{d!xP=ggV@|B+3Nz2 z1wKK18vpabk@uggbwp$2JO8=zLwnCEoRdwZTo4NBXpQQf*D%!H-VsbFbb)_<{%Fjs zf9B=?gZ%sV^5ZxoWotBc&SwG%!O{HG_o3gJX$2eoYo%SnI`|xY9IOUg)yF&S|56XG zlU-y@i6ZtB%u(nD(?%U_5cT|$cTRq_OnEI3ku7&uz8BQ1@N!64s^K$)klKRwh8~Ls z%y;Ll+qBiw!_|4*^y82;7ck26*Z8F^nCC{%jNQ{Re~_4Xj>1h^38I(sx1i;aAGf#f zg~GPo-^f#GlMLnfc`rx$l)hdYMn{FQeJ|L8=b=Owx-l9<+d5wUcM$I(a6s;s9~t}{ zl9DmHi9YvA0J^5o9Ul!9>`8q{oPG{#?WjJv^U_|;jL0uF}}(gBi4S)_sHjD79ynGs6K#cvE|68T3O3acv{5(*V~~NgS3Ira^+;s(F{u%Jjlq9`D~L=E zrW0CnB_cJH)?qL5PdNxSxPH(*~erj~z~YrEWEaeZct^PiRT!mxAhujQA7R7wt`35MNQ zJfDDzW;XTTNFXompM{C{SA-H>I#&PFc9JcpCFvRa^%pe=qcw)Nb9^5!BuA`|P*}g? z7nJrex+&k~%AJ4pRKj}v5xp}ABxU3Ib0oN%{ z>K{s_wD?9hB;uFTar$Sh9v2pRGVf*&t*!MyPD&DILH$LmpEzl$dv_a`e!qPZq(xh2 zUi($rnb;ZWNP+s~!ianWe(~Hqjl;S!x{Z@>kUx1T^zu^m{&B7rJy+O%ke*adpZM|0 zeTZXR`lDFC6!GR{BjLVi_VYc_A|PMIHCUX4I4Z#&WHRfTT}C^j3RiAw_<|^FHDITC zIbT5gjQNzg6L&q=4`H1$f~>s*-HEHTyX+V39Q$Xu#rCgo zOY9@KD!a!%W~=RC+iPp=X?wZwPiC{w(P_rV;7b!MRoyp z9+No|JG&C>vS#xhWDWLMt7z$5X|CcMw;#vq?T@j8*@ng34pMz5?`?jS@2Eax{+-q3 z-oXCl2;Xn(G+n00{LVPozC^HjiDB=;8fsW_B(ZGCnjt%lXPISZ+cI0u^HlO2bM1W6 z+rZOE`g`m#dy*%R^oL1#)Fw&uLh^Kq=4mmhoQ0EIUxuB?3cmI`nU>mGEdDMxSCIPk zSZS5gqT5JbUyEcUueTzBTd)FJiha*^u9Ih9sn5QOeBW#8_~KkQR$9l9!M`Dca`Ow) zw%&A0zLRS5-3&{EjyK$lZ{8!dX1w zwMeTGSH^RGf@l6Du7WSq{wb}}PvPdkt?RM6+l-rsgm2(`88_lC!+xg;i=HjGCD=jT z1Ut9ls>!Ka$f-}`YRIo!N&9WMmDohx4kN@8a<%4Q9XYs*C%6OGz&pHu!PEUExnQwr z`!dh_6&Nzf{Jr@Hp7(3mGEFh}!kDSNW%~fn`%T<5?Bf5K=Y52)=@zq^_J8oa-@#2X z-!47KHb5Wg736h%;)V#2K?O z_Tx6r{`)ooKZ|%5TguiupA&!rCQytSwg7T4imC zvUZBHwn$k!87;L9eh7ExDt8wtcc&?L=O}mQDR)E4-70jzpTl@z@G@m^nKHOe8N5ar zyg(VeQW;#I$KYBR{4n_<3~qqI-+|4--BrrnwaVQY%H8?O-G$2CS<2lSxO*5z3TsQ1 zwNsU~70TKrd8{o~)>>GbqCBu>AJR%=A2>z1TLgFc611{*uCjKKvUZxXcDAy1jM5#n_ReC`FMXR?0NmR6xasJ$40Q z5EXlDv73O3Es4<>G3t%kg9nqh&KXovZti{W_q|VKX4kdb+H0@9{%hkuaiTvGqa-9m zU3`ZR_dHJYnu<{UN`!PzMvV6lI6LKTEJ9oMB2?fyB4E-G*T_>B5n8_WxtLS%gFtkwHrq62FdzEW#Z=sHmXG(0T1oyoPuZ&Z@{i%^tccWt^eYAJND4cDs^rqNPi|JwBW$V*sU8+Jv_h2PhP8zS0?@{L}Y7!y8s zUaV)^;C7zgUApw~oRjG37Zep0y4W*5I?8isbm+X8&?qm@!4VOje96V0F`S`>6Lv!v_~`?oIZ(nA`Jo^b z1wWx^F~s7bW)yr6h3`iqX_u%tV5G4&*d+M-x#PFib9~|5D0S=Lux6F zfOs_YfGf8M#lg2H8uPJV6CgepQX`;F%pdyV=*b`Z(HH9eXZl>J52O5J>A&`+Q=Ps{ zhQ7o=FT-nl&dpO-7!mi~<-cgx6KZmE5(K}o{49h3#Ylc+3m`2Tg~8{4H{btFssD*p z&ij8_V~(R@fy4Tu&hV4K|9AnVcv$r?e)eKvCcJ>-qG9}hTmw(^*H!q$51d4GoB>GC zs8+f)r9Z*Nq3C7o%=MZny4RuF7 zP*0HHyj&~!8d%|x@%Y~UUQJ7hl0=MuCAZA8WB0y>W_qRZ$Kx{AtCCAx?1 zqlf4P`U$;+Q{y*6KoEqGAPFZzLCA@wgp!y`bcM}(KF3+Z!>AL=FM6+^J+G+*|cUen+uv#&0U(iHJ3G)H&-_A(A=;2?B=1Z zF4=!)1;76eZF{18bP}CIH(|yfp(p4K!qDbBfjhMMCA3-bvCSmq8&9dHyJu5RPrl7Q ze4DYJNp;!`fHtSsw%HKc^!V6j2;V00`|rPhhtTg^;r9akK7}5*!1rVLM!$hZ^4l_m z-q*bU@qNYnuer3x{@f>gdp(}?xYgsHj|V*N`?&j~vyaq|#ync^Xg)%ZT0Uz1Fz;d7 zLo-4T!{B$t!O;J~z!mo7zxns6G|+%u%kSJjmz@KA#qnh{aNb+sP9NaQIN&b>F$s8d2ym^ASVANM zr&@t;LxCR>fG2}sy_XZoL?G;nNZ1z%urm^Yr?j;^6_3^sdb9<&iQ}naShqt&BiJi9 zVD0X~e&Ke@Pq1IO-EtT9OB!&v9QF#gQ`!<9z`gU(S0Kx;z^QZ{B-kyGbhm-~zJc@W zYmj>ta9-U(%YhG8pvSP`Ny+ywwGsrY6szw%MM>&WE4e=eyMKx$G`W>xC?+HZY5o^&V zf4bT^a3))4vqCJEg+D$Y>`-#SAA0a~rK}Rnl7-S<< zsD$uDM~G&qlxU8Q5-reiq7^ztw1f3NOLRnE5?<&W(FrX;*WmoViMA3n+Dk~$0ip@) z%6_$b(jWHcNOXc|gN_j`Q5n%1ogq5#JAXPa17?7?uEIe}J75KaDG*W$9;+g(w$jHqs0A5}LIR5uaY8#}Qr*`MF#zgtZcs2BfHja3kD-C)$Gy>qQI&Ni+#$++5(yB`~&3*#8@e?ZhtP08vaFBTf-l ziLZ%!#1F*J#9ILpP_RE53m8EQK_@|XK|jG@!5F~=!F0hK!8}2fAWpDMpb=yWRtq)= zb_xmwWrEX!3xcbHuLYHY?*%^#SfNPRKqwWege`>agq?-`gu{hng#p6Z!Ue)b!USQe zFbyQmdf^ws{lZe=Dd9QcW#LU>h48-cx$w0RI|-b`P7R%!IyHA{>*Vd!-KnQjAE$v% zzD{GDCOHK=ML5Mdt#nFv%63}kw9RR+(=n%uPPd&NIQ{5kCq<-$l#wmSHl!EXlN?Nr zA}5p6$T{R(GK!2N6UZbojm#vCJ6h%oW z8Kt7yQeCP3)NpD%^*I$nMN^4XGNq@C)EX+E`hq$@l~AXsi_}%>26dadLse3bsqd*D zsh5;pBoH+eDMW2W-9!UK!$lKCvqX`i`*>F6etD74&%ea9CU~AbccN` zILtwJ#3xcC_!1*NmKXu*d1R1-tly_%esh9iM)E~R#)e0PgpPF3ANjG~NC)LnpQ?c`m&ax@dfHxu-c4T2ox zgF^Y@!H&;Qw1WBm2Y;jz!pB2+HVEazaMk13E0m`j`mtcBgYMiPQ9+#DCMJ5}ywGSzyU~1CqU)|m^e5hk;pxQibYkkzS%9VIBwD6>h>hgF)0arYYCrPOZdPW2|Oz# ze#%MY6PEH7mVR7{k)y)rhs_Fu|Fgomj|je$S8&imz91L)M1qfT!r@aOC?b~cE|>D5 zX)f&OJs09f=G%uK2N&mt!hP2r4Hy5|B`#7sXI#)RP(JaK@TfC$UeJZQQK;e&e?#HR z+q)~Y9K9ek3MLk4EDjwO7ZdHs=n(~WlSOes5kU(V#zZgSgB*wP0pO;fSlDG;{?O2f z*dUH(w?5tdBSYsp!h`$pNke=Wh6ja(hxhF2-Mdfd;#gqX*wB#BsJX+U=7vXwg-3%^F8Joa`W5FE4#loWFVz{sHcrLa$dmgE}AN8{k8H8&Pq53-HC!=e~IA5a4NZ-yCK5 z=IC-?JXHudXhMLe2;Uql&I_BhAZ!-Lo!rM9?i=Ee3Xvdg)q@nw5>J2TF$oelNs*VEKHSMOfE=d?4um`+h^zRsUc0?G5@g7|>uu18sx!2J0IfY*5mLSYqV>kYpQFOtJyWjb)D;G*PX6=TuWUqx|X|s=laz3mFusrY(ugk-LOeR zWy2N?+cxap(5K<>hGQCj*6{O&GaJs4VW)?f>}Ay$jRvDfcCImr)*3z7234d%L+cfK zO0P@P>s4%nc3PcYn@VRV8FWUS)$AcLPzGa`!Jxtos!T?MNoVp%$<-Tm##D_5>(q-S zAEughI=#*#B}u0>XiYi~+@Kw)HyG0l3W?03Hyg4n&Ku2ZiVv0QI^R%S&%a~MQe|0n z23=N?(OqLu>(kWEiJBF2!lqe%@KubC8<}_z#KWa|~h-RxQ2RK}!PYiB5$kNIq%>Tss)%d&#gYm}@& zB))d!;IXsgHfE@{Gw7YgGVF8L zY{)e0%^t~{be5DfU782myQ^B44)r}u$p(!vJ=^FZIfGxz*crGx>y4*l_{QFNMtfT9 z&)8eFrPqnt&@}>l4BwzE=Cd?=1Aoz*5!Y7f0aa$;CO@25y+LU;n@xFgyj*1N!zkGx zDk)8us!9;0Wa)C1cn~|DN=+U#os}rqAuNNNRdqLnCm04p-H(N|5AYwL| z(ydyP^OvIr?Q5-IXRtlsXSzy!?_$~c+atI6>{N}>eQ4~ z?x{&8tyv2zvzjuQvdjk6Gu)NT2EIwsGHRVptylGDyOCjPR zyH1$IPT&8C>tV|KIqSrd-8!)(9;-F2VN9f$jL^B(@qbESCLiRd$XzR0nx zR+?eorCZZ;+|#pxx%JN4r1<1WMd;kkC1OpcL1R^{h9x&!R?>-^Y4(svjFa^;U8YfQ zROC`7LzXE^h5hVr$t(){)x0IOS%x$d)jS~6 z(=#$u>@fRtQjERQW$G+rnpt6l*)W)aTz&k6%%pGw_6eyuMH?xzG0Vaw+ht_7A;XfQ zWwe?!b(*RZdyPz|STVjsiia{5@d5_t;4z{#xfz*jRJawJM`{d4y+yH`%E`*HYE^7& zyqbKz<3{BxIhM43%1V@MCY7qys8vU6V4FP0VWJn6LprwY>(fCcUMox08DaE!l+m1F zGN{(m>~q#8+r*8`q{4eeX4pQ;Rn(9`tu8~KrSmW+XXy>;#w?H0og}LfX$^XlQY^&g zHL_*-hBaLoC9V|VHTVT-HR~+NibzTeLIVWba`rO21YahNdLRhN$vSnaS%s}^6)BEk zmaJHwkhpgFMim>-c+=Xv4VzZvB`jGEX?c()F4i7fK21J9cH!KpWos=Oe4l)ROjW{yOtCv&J@{BemQ-&zeOd^SvBL(5Ctpj>&4b%>s5OFtKwM6n$;?U*e>9= zbxkX(9WBLcF8^Z?Z`rl;DQ4-e&{vT)S{!&kp76{l{W1 zDlT5yv1yaaYzEn6OkV4*wdm4QG|tNw&xxO`_-xuP+d|btd`y&=v1Q%cK^4s>%!msM zR~0OuzsXP0Z$eatN|UD3W@?PfK<1kDmMoCDrCYBnDy*U2Drp%=-RvofHe)9aR7oG; z^DkxPqN43bcAir_DIGCDRkOQ|Oj`EksYAC<9bTDcQL^<#F-rm$Oi)akzUPukylb^g zZPr?q_C8bT4au}QRasLnld^ZHrpPsPO&6G?WulbhOd3_w{=E|^)>xEcUD|BF?uuUi z70;fXFMoQcI8bL$iHEZz?>;TYl?7Omke}f8tT>}e`l2r*{bd4871yN8n$gx|cca#v zX)!uWpJy<3FMAW2MZ+kQD799fny%6AUe=X{r6uGFnnNoAybtX-^TIakZY4Wsw@{v2Dzfg)- zF~nJ0bpxC5;ZB)RXVO|Tj3$rE7s+v#zn%9&0n)z*C;OkyeH3t6_0?sQDFfuN2b?RW z)C`^0W8`S^!szY?J8&|&8z+;!_Vqe5S~X^@R-2J((t13{PO_<|qi$EqO`K%+eNet& z@>ylg(3)VG{d4+Ei1jhje( zR~EDR>}c$wz^ZQ_V8OkSS4VA9WoBe#%B8Q)bF7 zTBy}pwG!$Xb>?)X^!l%?5@GA~-3zkYpw{?hgF z@k^J+$FE1W# z*fk~gb(&*{*|1N(cSn9f!H)R(;W3GG^h&m+)6A%?dv|QyaoV6dt>3tCp?rSS;+aYb z-YH|d-C^Bu7u?|W8!W~0mXBDf)o}m#Wy(Fkg@LcnZOSzoEPAUt&ppiy`e&MRw{SL< zbz!&3i`BB+%SmcM?(rVn$Fus#vyV9VtT2am0V zQ`V|CYjfSxOh7ixIdl~(nZ!1bi&rv(LBh8cWgATvRh~!;YnwocW#^BTp8e|cy;CN~ zECew$h4DQ&wp^LHTQ()StTa=#F8hlehZKc-qJw8eMg_w>A6ktir*H%Lt+0!O{HIQz zFzWdHvXk3(7);98(c{9Vu1L{mq#87)B=;g*h2w)1-Hwu1+c zZX0$#oxzHsA$>Ab+LVmc z9JRAp8PA=s?dX*v;P-m#dcVP`a-90$4X(FNX@V(DSEc8XoK#Si7l10rP#F- z7HO51bWo1unRz7aGLu#zNl#+Lc}r&PS3zI~&bL zf6uz(E~>*$tjrg5!_RTxElgnW8fr~RF5cfr68 z>|_`smm9HHCZb0raaJqmggmi*U2>cjN}}}Rw_5k zum;qn((0z933M`Zin7L=QfqW6s^y~8EKRP`PErzV$uEOR;!bi_1*)DHHzwJ}B8eBh zj1wD8o$B`TWPTfj!?By zbDS1aRuk+UE8iD!l4fGKpB&G+Cj+fZBUZ#wVo*FRO4AmG6Q64107iUYQC>W)vr4Rm zqgpB6n0xZ*J^7V|JELNjE?=yatXO?~W`*KSC8zV#y?Cdhy_eiqhS*8VYSG!q1NoZ;y)o6dn6dWZhvM#jGlp7T5HUrD_c+ z*@_LII>QxRWp7yBlN5KP^SDll(t&9X@7+^yc>dlwAq(cu3E8ut0EB}7xrLi_O0h;` zW5il5lOon_WW+PhtM)hri>d9j__VF$?5UEO69Z<>nlxdS?Tk`9=)%~F@{1SCE5=?N zG;rM5flBe|l9Ds0jzF0i(7%@ngg9NM&opYx3KQHRjBryCCl{u`@Q&rv;;mB@-A7LZ z&W57LV2soOp?DLMF3#G-h`AevR;=c32I76;*wsy}VKT&r-*q_b_Mmt+UL<{l-NZ?0 zCSA6|OmTPBOqC;dJ6<@uSo)|yOj!=l%V09KKtVJHSTDitRWVK|7K2W=fD{{a7KM1q z%9Tp|BR40zX*iHlb2yoB1jfig%cnJ{SIRlnYybyrT0RY0_cYrDg@I3&B1LCy+ zpnd{8YrzfltrNH-5bp>8{fQbOI4yuj0eS#Vp5U>81OW4Yiv%YyVRw986fm?x~F#%2p0`SI7MFI~5jtBxd0j>ywrU;x61PlV_2!RrTV}d}1 z0QeSog5NL_G!ug3grF4yHzV+$09PeI&B5^j42&p_Knn#y!fNkG( zdgAmik|NuYfn*+ekbFhW7I})=i84j6ME?@iIJa=_>>TF2&^g)puJhA+i|fVLOR0Af z%%N^{GrB81fR3P-(?8I!=^8NurqS`@wc---N%1%Jh4o$PPpKbL-&DV({+;^2fl*Y` zz$8JEh7v}imOPhKxlk@jmtihCm({L9*ZQuF!Fbujb%1NG>sr@st_NI?yIuwJB-5}* z!;uXixb=4H=jQ9SSL!ZJk-lz}*eI#d6WJ))6j`V&R+b_=D7!8DsWECiqVcrG35^Yn z4>x|(B(OejSP)550LntsO!m}bm;<`8q5xyd|XSY=1$ zL}ipxtz4~qqoP!dYN9G!wM3P!Dpg%l-BtbMDfCoCRy_~%?CDL*u1jE)D}-#{MypFWz&{kEl0GR-g0S6Q!A%d-C8YbmCHJF-DO4|K3r(zwR@l5AK`VuYbP>{loj`43H1V8L(@>vw?zv zvVlzodJG&eaN59>fm;SX9n@t|)S$gSl+Q|^wLU)#_8Xi&L^#A_$l@WFhrAn7Gvqhl zXx~S^-}-((w9(KpL%$t1d6;!r#qdtUHN&?KzcoTJV$_J@5hWuo`APkn`}Oe~?Kj(R zk>3ix48M(jyZny%UH1ECWc`uM$hIT9jtm=ld{n1VgGQN0<&C;N>e1-VqkE5z9KC#W z=IAY>_m8%X{$b4cF&oG18uQ(lU&q!P+jMM)u|3B|j9oESKlbgo>Em|#)Bbb)AC7N2 ze((5817Rfh6ut&1VD10%k8no>LaneA)y}cvDc6{Eo61=hJ4;q14LWQ~_Q| zS~K;QRE7E^!}h9;>maT<$#evDR0Hbh6DoooMRwy4#~At{bzrxQql9}>k&rIIa+Zk4 z^^2<;6dz9@P9MQtcHz#)gcokf)+F5?g#{XC7Ku`Z#WR#nNbYtDum(#(3R-jb7(=WfY?L)_?`F{-4iNqIYF_E}FYTrG=|4r$_XLILi75YIRSy2jx{c>1A(TtvF;Bpz{s88mj>z=0RX zm8-_DWu&%~hrlYr#>xU_m7GyYkDdhG>da|gx0*Q-F1G9o**4~2V@{iLq|O4Z3p6eX z-jiHtrxLKOfOujv6yXfp%Oc?uJXqH5Mo(P-`Q75HXO%y<1_efIwR)_}vs!f7sTPkG zZ^)ACJ09JYgCPlQZRRw+L9K|VIP;xKo0+VY4~rWTI!?*X#xu#ghaX>gAip#5wkInN z>@i%KHnQaN;^}$I+=qq^^lvW5<8YiTIVUA2IeYHG`Nf%~&SwfQJgzL95a2s-%8)Q6 z*p%XA-(EfS)qW+8WEYbDpAQe|t>`iC(mj=gHPrIoS3LVkCRTr*KwPp3@%h=o3?ISC zHsPV!GR}OFsmfdqwne=)(*ui4*yTrDD#xX)%a5$ctW4GE!H}K4oK&ZS@lJv3ExX^6 zO_j5$eOj{hmMJCU?Y>}60dDTJSBU%Cy=2z5bo!g`0?ZshVfHX(8%$|dt--_V%+oVq zTLmb}Lu&;)ok6Yh=oXOqhHOKp0^4S`^ggXNYSQ&u4^6UOla*@Hdpw=kWujKEPc>>h zOz>ezGaEg=JDuK=^r9tiaj$qh<}e-$EiW$;;^nwA7&_JgR5b_>66G=MAUyam!wzPB zM75VTA4F$44Cs|P^8`W}H9 z;p{J)+S1i6MOL*jRk@sEyR!cQaA1Z~|y_8;(7#qKF$!66Y_Qc1zVcnDO;x(0SKiunA1=oWnrF0^c z+5n}3q0}D?z1K6CeFyLY8Gg$~l3?UA=E}E-jOiA&QOTagWARxWKw5w;jF6nGHmbEs z_AMJrrUG1`m8Xl;Svo7X>3d@DV%(>gz%F)yEQ4l4oHA(1zFk&Xl0|1RDe+qzNm@;S zh{-cWrZi)!3CQ4BQf*S}lH{=>T_(U*N_>_LV9&B+Nq_^@I=SRV@;&>DLO1MFITp;Z zCDIB!3vZWg1VgGRTXj}+6ZhYY-R1X3f7zOqOzfGV)M@mZ9CeP`JzE2SkI^|Nr|A4s z#a&xqpsF?7FSfn>Gm+Y$&Q?mFMX)+q+=j%>TQ+Riyd`mcY+T~fSf#}NUGhQvQ(;>4nl0M{%r-jl@#G7KiyLEqZ`@EtYle#_V)MiqV~tYee4K!CVLQ|o;ca-8&@9PDVVIwQnH_k z5;Wny-ilu1uDw=CVi|iv0?`7_u~@KB+kiQ3Zf}p^@5_Ka%cO7o85~35#!v2Gr=P~1 z7`jmm-i z`DE|zBgVE@NjA{Lnd8D*%(W*6(|-T$?km@nyn)`hbiKRIpvll^oj>;<72ZPuw?@wV z?!yDDEwJzXTM<*vIsjJly7lgL(A8E7b~+fsICNDqjg|z{aH$uzVI+76Y^=*g_-rxp zwv;pWWa2Us0N}i|4Y`&+j0!;Dv%MKfF4rylx>8|VsA7jIKNR8H2~fp8sZ{9COHO^QnLB%`RhHP=ny5L#lNog2TKvz53>XCGf9OHMQDv%$6` z%?A`3F87!O6Llt7;#GKN%}=B{%backxYBIS;soGK`%h#>W=5tGlK^c>XKOM6-i6xP zMnewRVw(d5YD@>W0!0#~)u(}cWP@wok(}vX!OpS2BTZ>~0RECF&RHQ{CFw^?0H8U; z12nB+N&{g^vyR|*rO;Pg!!HC*!lOjk<@Iaa5WBQ`#k#841so&QG?n3Zc(~~0g8}VY z_wL(HC9#iSed6(G&LCAwvM$WOYp>C=Q;CJ_7&6sl0>6m8lr<~I1fZlCPbRU)$){ka z?j&yy%V5mUW$fpaEfTz?n%G8XF>cb6of&EVSVnqs5wz5I z2hDNP{yff}q|Sk52Dsb^4j+^7MGhdI!d@hGaF&`NC&ysn5Z-8DfI0Xc2tGYvtP4J1 ztfSdd4k;dqOKV})1t1jEsem2@vG?Gh=>bfJ&86L;QF(^VZnqKr8Od<=)FFmlBYW2Y z_Yq02!vPuyll)sSXYLH7@)!ws9^#B_nI_AuH^G5uHJh?w?iN+|g*64A0yq$X*8onC z3}a6f0;vcFH?;SO$5#`GBlecEEdaU#nykXZaRwgFX24(oXH{$gxY}w3ZVtmX=q|Vc zDD>xO4l16@+Q?K;1acG-&CLD8_E=dmXD9I+S1gu~yXwXpH$^lR-mM#ZVqZge6mPxQ@s|*JK?#X19!dPuJ z4|3@9$wm0PV&X_iC;CIhlR$G5EnPmG0eFYQD-#{fvNuE-(+dZ&RPW9#t+X|M{?)Cg zw~qv6DA`z%^w=keR3(|u5T!O;Y!kMmB|U(_!4A2lka%SizRIJ!GAjH^OJjz5YCC)> zgkC;l7sE3ClbQ3BB%aQsv7spAh}536ic!uejeoyL<`vwVw&%kla5E?Qg5%vY%%|oj zi|{gb8mZ0(4;S!Au$pqfS%=l&V7vf(lO}8Wnq);31&$4%6|>=NXVO0L11)wIFj~1y zIEInfQT}qqhSP00#U`x`r>!R2g-XRYhrvM1&KH4%v?w=%!Z%;EL%&s%uUxmrcH$ew zH-#Uw%}P+bAR9YPzsVAP0wye5r7Vq^xqY0X?~G~7lT_MbSbTFjcs?jral`ltnk$BB zlvZ@6r6sdziJB&k6ys|)VMj*t9S<88;U|aT%E7UcP5J_hcgvD{F7l#)I97ru91)(~FI&3#aP&1rJ4P}rxh{w= ztpEuB89?}w$BSvV8vvP>-0-2LO8_D*`8$YIlARlG_ku(1Gw^gVzy*=>bTJyh?*|XD zHwK}YZrR7Af!7b)nti}wqOf0D;RmDz976Um>Qtjjl0}1P>;j@OfD?_hWaAE+*uPe$ z))>`R#dcm3H>%(;=*JyI8A{xc?MG^ioK)IQS&bG82$NQLB35EQ(gGqT6=bj$G&h}! zrGe8NP1eJmNwZD^(q<8rs#B{0R8g@bNr{c!lSmWZv?MyC5Z^8&2GEjl_R>yz#8?{k z$Da6iwglq-ZsC3QuuR9i+nB;|*#~LAaiCY@MTO@M6O}ksW&tk;lf^m5y!Yw_#ep4* zmTXkTZrvSOs(5tlIpAofbc@EgGTU7P-U?c^bFyZ>-&n=`s2v-Ysqi?u3!K*S;0UnkhgIr*RzIu9Z7iQyB0Es*B!X# zxjTIGk~g_KeDlCH&t1*?<~g$wzjcxgrz_bpHX2;Pwo|zoW;3V{WpKchWgjX!CI0|^ z2JV|vngnKq_x;FJeF=kaR)@-h|BQyR!)sQ^faTh7zFLE7+Q7MIVIvOU8D%u5#M;*t z2-h?oPTz;yK>Vulvxmw%G5cuM+7GRss~$s|_1a80jo?@XuS^wt;XNo0Tzj6J6GdIh zBN)jD28--RTQUC&YAY_a591ob;}ibBtH?OZ-pliUWl-Tm|F7zg zf3pY4#xwX9n|T1wEQyV;?pfjn?XJZwLJFjnyxKShu2^mH&{*ZD)wHyDQX zq~I?is{h%GNOg!)GX_7;D8@y*aVe;nM5#TdOo)j!vKSiAqwr+#QtE;O@kF=^b!8{3 z*m+>xV=Lx~H~=h$-cOaXMKUl07)0A?Gp8IGa48-@;UO>z4={uHvfTF&FjxFImcDa#;Uh`qedvZ|7xJ8wTIN)ISI)Z# zFN)nDcTGVE7E5d3X8RkpC~;1(ze7w&-vBd8k%=v^ z-wrO10OA`(R*>1sMVJD|$5m9)s`OPVmV$dNReQ&!76C8nKrI`B5VJ95;Nt|IP$%Si?N$m!|^m!&_l_p23t_%7(JaH*bBB`q03W8E_Fo`a%4K#yM6 z8V6ogfq4M8eSe*!QROfhU<&TK6nJNFN&x=7EuAgOPS0JXWbfm%6z=hW^9k3PJ@nv| z3Jxeb54QDS5}$*85np>tdL){*Sffu%HE2DI;1kCiardr+g3mo6!&E;Iv zzt)Ig8}_4dhXK3SNdZv+C-*9b7Z0^24?K$#5386f9DjeX zgW$3D$o>{I?hA_DCOhdz-RX^;PVskn;a#1Yp8X=Q5= zv%ENZ0ei1<6b&>|K(narpS_j6M+e3i?*9yKQ{Ax@WB)q&L_9Av4(`uMa640MZ+ui* zTx)3Y<{n2VrSS*%TMTPe_U1g4wN4~028~#){FA8U{ICJ(TF)a}H7zLVe#44zOBiRM z<6Ui4#f_!KCI&adzS}nIwOf=mH6m?nY}#VZ+}8}$Fkd*$KA39QruO-*n2*un_CR1A zY~=S_E`#e=;ep;vmzvLcnfV8+4)&~`05u(H*e{{h*z>%4C~Vk2mJF^Q#8GX{YYm)X z$nD}0+?3N9E*_J-}Kx6o|Cu0-+HxDbUYux{zUsZsCiv8^F&mU}5 z?p0XWp20rsB5s&}vQ}+=3w^)IPY7qla>IdDeM+Uz@Z6!a^wqNW1zeT?kPQ^^nccVo zkObZY##vHUQ`u`WSF3O_ZY1gmst5lRrV*~d6Q|PaEDX5$q=-^7lU6H1_*JkC3u)XC zT+}`XN^T`!=fkf2{;xIlkq%SeD?nu=4pZMqETk;pq#wkT)~xwp@Eh2!6>spXV}HZ% zxU;2h0(ZQm(VP_iV57s_QIbaUN6E)D6@QpOK{!mRN*{4s?J8%`vy1=nG=U0mntY_9 z_;=??8Vv^=UrburipJa-SG&*B=&#}4R8@-U70gSnMZERuOs>cIb$VQNw*wr=Y|H^X ztfabQ0`YSxZc>2PlnQ^wRvFvoM>q@Hz@eNF7CHgWqBDmMZdtFw?JO@af!oUML#Hvx zy17h^kBF7^>BKox_kE6KO8X!%9dJ`B`I8kAKZH5UVsHqUhOdKh@*o%|uPlpej_oxw8DiRxTf|8#x*MDVqJ9M`}{!zLbEt%epp#ZA?VxIOGh;FLg|Rxa$% zU~_dooIQVQLc|I75kT~B^RC&4H|MhOmIN?9mVxnc~t zm{b^55;rQJ55-R;@#X6c;>v*m0m^M!!D#=!oD`oMMEA!dVWxL-df32%)OZYgf;t4% zaJz!SBI(0FJ*WsHm!*!FH3&8Z40s={G=MeuAy|X^asP2NziM@iz2GJM4yZd)U@dtI z@KgN8lc`&1Hm(BRsV(GF4u#Ir{&~%xtS;X0{K*yJWTRYyRjs z+l+RuHDyigqpo zF4O@c{{0v@T=L3b0P92jdkc73ovul+S8|bEaG0?1D6aI)8(pvRfQi>B!g|+Z^ z=QK+rnDN}>tcr<`44WeN!Ovy)O2iT#;2VjSHp4@w^lgr>emJjzH z>m>Ic%g3KCtPb>Kpg1oLKGb;U2{o!+xf-*f#yd~0#%!qZOTIsidsL5xLBI2aQUB@* z!-m>E<(c%G@|zsUQ8Ro0zQGLku1*N#>E6wxE30aAKy}_P8^W;RHJO7M9`H!Ok^h8w zbiL=v04~BYyrUSvJ_*c6T!eQ=o`M5JLmBgjt1TPA-)%WWgQY_F%Pcq~Sd|5oU8Tp`InqciOiXrqCX|;X;?_69MFZA_Wdvo&tMiRM$oY} zoBvwyBzQO5gnw?c3x=x#kQvI|6~3_v=iAGhgKArI?XLtPt`Q5a71|1~HEN0{0gTgw z`MT!bUyCg`#I+Mi(nXPH02MjsKUlYf`ZkM;{*UyWusc|j8N#oTSX+=iXt zwmpWyeb}%+ie_oWhgS`paAs%m!%U>zPFD@INuP~jq_5%~{bc(99QI?e@JF6~Uy88o zD(5bvH*r^P5R%-LTQr`;M{0WmsATV;TBj+42JYMGW`oDIeWau$Hbj>3G@R}K`tLD-oeS`og8+DO?DM0m>~xQ^9Mw4vt0>t8PY&5^J&sb zDC&)$z}|cTd$SS*6y$fkv9Hy@y@S_jYct9f4re>obZTA3It_2d&&+fryVGrSN@N0fX7ZKu_dUk;4`ANnOoLjqJKrpVN;@}gsYB+ zjoUR!!8&oT+f{bAO|q+^g)IGS>PSU5 zc=yi1d|UbD>`%Yq*KaVtMDUKMtZIl&`h7TUHXOQiN3mm5a+*m62XCgq;w-JOZZcT4 zmK1}B^qCnPDZOn;*Vdw?(q}P_rTuq6;#c;3ST;v4-kR`Nq;ZXX zjVJT(YU4(BD{x#iuT*hJrQ7k6vz$(q3~2bd{j&8dcEy*fok!PdRhc5`8^A83SiieJ z)Z&^astW%AY<|!Ba;yfvaiBd`dlz!sbN12VlH3yMN|3Y@X?rsf9(?XwEVz7WZa?La zE(0fx#cigvmP^Zq2Fx8961v`$qD(acXsyvKaZl3ii>**Rx?lW8g(Ymu(*?!fU3PM#cHq`H!NYt{@o13}QI^wbO3g^5Z*d>5KpN zf%-j6JB+oQw=lf^qQP-l1?c;y7wg<>Y_{cGkjy&J;^1&Q0A7)Mz=4wkws|jtUByBy z-owG#3piN&!4r5t=G^x=z}mCJ0M^D8AZXyR517(^oAUwC7RumnU;vzbf`hXM0-Ws& zaJG$uvlr9H05Kl-4}dW|s`r8Y{+|oJ3&0|1wIe^f|{tkrxk~=7&BzI6k z*)k}*63UkSUD+eN@JcR9Dxz=NvN)NMWaDeB_;)q%RvgNS6KG(;q5ssC{Wt`q3>5X| zE=^Fn7&;RVr1$?_X8=U*0OF?@#Ls>ZKTxe6T#atp;A*tN23IJkyDAAPpGf-K+JmqF z?o&|f_J5or@F8r{fqBf|rr<5~4IB0;C6PBy=$(>NDc=dbQJ)qi!V!8DxL4o9Ka#n@yMzUGW=;64H_e^*3zz08Q{!}tBIGP1lGvL76&R58 zWiovIaU|~4w`FBFYDW?PBl&!KLTDuXO^byLRQ7<%3Nyn$EyOv+(w9~`6Tc#HJo}0o zNPijzJlR~nA!{{&SKK%rw4pWBD)4e&Kx3ikUkhn)7fY$$0u0suX(A(Of4_Q5D`ru3 z{{-Tez0{Lg^sX_4s+hibd7ixNxh9cWvc!Ip(?Cvgnz&?1 z^?ELHwz?1^dG=@5h#z@g#J6}2T=GqI5wItZZQ>uRi~hl$m1lo?h`7nA<&wPWTM(?i z_4kJSIt3@&_a9)S-~!9vE|Nfm_<#tRT)l2Tgz(_%b$~b~fr;N|6wMNL4cHzJfy)MN zW!HerV2Nriq!jQe)!Lb0nmQ1VM*)Jh%%0bQQCIJD#1>XtIxwuC{cbsNqg;rQ{ca#c ztIKMm)n#BqV>@z(_PhkQTf7bA(XGZq;gr7KlQ|`l{9~RACygd15Qhqchxj{g#T{FQ zD$+=5()!NqEtkMw2l(d#o}k|lKUE2TVw-V`^UqNnmt0BQsl>v2SaeTl58VwO+ey^7rc)TGa1*&VW>Z2vgcUEb&N_*YnR`cZ}w-X5Ei zEy))56f-#1>YS64gZw)y`p-IXLiGyw+wwwwPGr#oe7gi5mutZxm<_W>+$D;ugfGD; zI0QTd!{Ew7lvN4O+ZX+N^(4|Bd6%$NRaOb{9(yErA0N>eDn~f#a>=RxP@Nr={O?J# z1C#C&H>!j;zTj3an~!h=v$!}k1BtBHsU3jd70G(mhQHh^>q~cHyOPNoL#kCFF?0EI z@H81lkl2$BWV>=@`Q-U!GDoStG|6UxD)@(*I1R4=ho#1Nh0NY4m8oe23R3DZzzKst zrN4yqm$m6L;oU?l;$OIx5Ke5b^$gn=FS| z)bgfxcnprf{Pp<6o=u`;lUP8M?{4<|9)C{y5M5_OjJBzKv@v3nm*`eL+OCFJQQ{?r z==a`sjr{Sh8SZz@(BFl30X@D!1{U2<3yRTx^wK&}7IG`u#7&OuP3rD#B5kK9juy<5 z-#yv(`DD-+TaSvW z#}5s_e-wVkVq)T4d&%ZT&GDJ_5KhMKd8EMu5AA$*(VN!S-{?Q6N6@V)Pl!s-TSevP zjt*=Y^gyepTQzv-+j-&Ei1>&Zk<)zWug^E%xw_lhxFHW9f9rpfniw7;l1UfVHomoT zjok1M$3pVA0;kQzw^5|exK~~ddnx$7Zr`3h{mtRjm8++YTOJY{6+a_3e%^w>*tnT< zr^Wg#A3kuwkl?y4?!8$qisv;}(ee59vX2_Hu{v++vr!C85ch2iI1|e2`eE#zTQ!z*F#-c`qfPIX_~&8pqT8l;U{ zN3*!6$a~M$36DNCc;o=)WRKe$juR_aGdnEqSc_r&+HN&3z$rmAj?F$}qt0wY3R`@p z;XExSc)lSfT5c>zX1C64!yYyX;U8^!98T5dvB-T!NGFzs2ds~uF@trqk%oXHQ4IJ_ z4{4^&V2OKkF@xXcPRAjc{#(S1>9kfl$#vsAK9A*FHD9)fh39mk#UnKBISM`!F4OTz z(-s=0;zGmfe<@qEV991Yj?Z@Q3EVd9(Clq%cJ~X!nc9r_xcLhLbk^?BYHICX3HjU-8xe2aY?v87D=a){+??^zuUkL2;5g3e zzsK#LFcy{?mLHt=#q2MAme2Sk z>O-sO>nbv8Pi=r9JmIy2-v?zM`{r!w-Y2HcwayElJ0~`F?!3Uc^Je1A#AoTmPP-Zh zYaR{n*Zd#);F0+QLtfZu+-!(>EoRJ%L30MY-s+`?eEhp>2R1q?>$?Dikr9341fxB| z)vDGv0le8?ZUSi5*OEq?{Z%>wAuG?XwBLhqU&m^kS|Y?O8feuGqm3V6WU7k>%-SIF zIOHmO{SD5G1}+XhmlfHy;9 z?e(u^Ah|T?I!})F8jdzz0Xssw7$3NDm)Vt;uk^HR8E=&FjNZm>!~jh+#7N5whnH5p zVHBbZ14pG-exBO%t~lCm6Fv0gPClFeJJIYq+r`+T)M=J^IlofWT77&?^+l^it@Wa- zE5m0m{n8m_sh_sje6MkpQEb(YQW9tNk{B=6uBmSKbp`wG2B89QVY$#CUEi`_AVe(k zTI`KaM|PM#X^4zs=gAw3S!iHjS;TCweHO7>FXTIocH8wE%y-GX<@yHmjchgF5b#Ex z==GVUZBKTYALw~9q^I0vp2sfpV{(`I0DYHv-ba=JeXRB=>@IKjb&r$B58}C}``7K; z_P}$GcBJMqizu%7p+)?aFpMw=-znwH-WJK0^Nj@g&Xg zdALDjlG-nj(Mx~6&c-X^TMMZ7=i&ZP^J8ij-^y~|B%X$+ERfz1BbjONW49^4M8<~C zij1rkim%~W;Zs?u!4Ld*`$Y6-RYy)$a)<(-B2ke<(1M@iVP_i6jouPRVGn@2a%v#GNmV^7Vwf8=`Kc4O6n>-J| zDIq8@-OtkEr54fOwdU?B!3G-#8|`dBcX(}4SIGU7o?pn}CK0yZ7!$!hV9T02pjv&m zlgn5Ot_L2{>fgc6V#|wG8s7LYl&=+GBto+qE+06K|FxhX(O+wZKf3<>$1Mq;LB}<( z%XmMq>J8w3_Y1pPx?03QeOyfyw`~@a80x-lp}DP5O!^SFfo?~CVa8Zopzbj|$t{Eb zQ}#}4#h`WSdihCj&)&&={2;EWx*uqN)c~xm^jQDx`}b|%zJKqI{*OQQbpJjf{zYLM z9W^$p!fS(Aw84|oxYd0BiuMJpq1qJ_Yn?lH<{Vlv3vn__GcnR9D&o;WcLYB$;fpWV z#IBB8&JwPDEPM129fD3hx2ww?y(#FC&srzc9~bdTc$a{W#{M#Yo*%?Tzkv1ThDM_4T^Z6`JvKxtK)6cE`_IupdM#oNz zpE@rvB7Q2|_Ia#Zo0r-I-+J?wHf!`dULWhimiDm1L-9B=%MBEU-#1A zZ1)=7+1|od`s|OI|Hm)-Xt#Jb9D1M8aY$eGn?IA$OV;N4xR?C;iRjy<6;t&7OO&Eoo_V3RP(;mT6N(m8NT~5xAM2F)dm&@n@;6DvAAOFy4@!D*&HeBoz!^M8Nr)!wD zUmK?F^YVYlCz>2?n`(7d7?0w|ZEIAUbT%rTS4jUA_j zXf*@f4RX=Pz$W+@x@K{7@~zq}hN5h*k3V|%lT|@Gp5N55=kNiutkaB9b7uJXx78ZZ zbf5gGr!Cg}ht3L!G5(bU3H*C&rg@f~ea+$CwBG}@K8QeT5N>4rl3}?8)>DQpD_(u! zh2g`V?*Gas(bGApVA`zdQQ@J1xP_k)AK|mgcx2c1&%YeH=E0C&$3<24$db)>-0jo) zuJ);ad#yp7arYYojO{fXHzLC?g+JSB%9^adBTfGnvPfJq+|i8|_X9)c8FznW{v8jr z*E_7Wep>UYGg_<58Lf0s8{*$53>JvnB@LFWvEnFiY>oS3MzHf7=r>hYgr-i{Ug^~PfGIV1va>;Slr-Ky)q?Em(+x1q%S>H7V#(k@d=|EBi(D~w;3 z?=t$gwOd_9FPgafZvMUPZFKumzr201>h{H2W?!tjeX&aW(#CCH>Q~6V@YbvL#VYMf zv~FK+ddA}DB-?2CEzR2^#%*S*Pp&mO5t=6#X)ygc?nC2K^teLfb$_<8b3^o1eV-pX z-NzX4U8t)S(HhSO;fC-f7Q#gt1J;EOm4C5=e4h0y17WvpFbjis9*fl4*NuLuf zKaaQ#*RS}beb?nt;m^1&T5Jbo*ME#ibV_TU2xPSyUlsQS}IhbRYWC`wJ&pTUusCO_K+GM9qwfo8~j| zoz1U)7JUB8eZm-`du-qZ-iEyGdlL_A9Txib2xGZ&?ky@j~Oq8 zGFjYKmig16*Bs+++iofEMC0So*_JS}x;XSYN6MRx0jpdE|E)n}X$$8Y9hH7{68D<7 z?fDjp-tEldPZd4$zG1Y8rcGns7f;Jb+TLo(IJ@WOB}RP;T)e#{V2hryYct149EPp; z4)`uMX5ZtMC$?F_bPjEK(c);o;_A$^Sg|eOr9D5JeU^o@C;pmSk+og{AMe3k@w2!q zPR*3=id$UJ4DI@txhoDeOr8FoC1BMa$obYD$hm4y895j4k>u2qOnL1xbN0@xZJU0$ zbm*bG8a~qY-WCIn#LTez4>eY2x$uh30q?Z81gyT-GR!MrL`TcO^X7onZ7sk3>u@oX z+3(+sfTM9{usC8Ui)~mg{vNMbtG{BT>lJI;TC^!5td4~TeJXb z7GO3=F4*|_X%_(}?zKGc<=RM^EM74qxW^rjjc19b?x}CG^wg(+)qV9%{_DQ_l0>5J z@hw*`bIwLGEYP~-;ey01sa7}UP{x4cz^MBEMy>U-Zi`Gy) zD5qzcOVQ_N<+m@z-9MjajnkhQELhF(^C?>W{&3OmcP431=##W3elbaV_5RN%X{TSC zq@Au$(tcAmN&C&!N!lTD4iK*%?uom=-=DY(n{Tf-Uu>Rl&<@V`F8e}1b$;c|#x16m z^P+uy*Kt;oub+Kl4f`$TodL>n=||YYY3&1XxolJGan5*8wKu02N2wRo4E2hK%DKHS zd#v}!@x0r!vFF2{V?1|zrg>_WZml#5kHQ(1a=of@M()F2gS_m98iodjR)$9mhYZPv zT#i?}(|dvUBJa&UReWCdiQrV)c|Oa1R{Pj1SK_F(>Xo0ZytMLx%0)&Gqpz{5@lj)c z<7>vr#&?bDjk}Cr8V?%J7z<5`$;Wh?simodsf($H=}}W3(_qtZ(_GU+(-PBaj$_+u z`popD>7ePbDaCZwbjg%u$}?T@_3$_iNwp@l~Aao9|oVr}%mKnf!wNZuYy?ueo14zYc!g{T}n{=QqIbIlmYE zCiq49E%00Bx500l-!8v>e&6|}_+|Ln{4V?1{jT^|^7rxg^RMn7$oUWT%6l06`BoRJ zY24crK8lN-!}$s^VRI(WoHVWHfR`DcihK@F?4r%dxiPVLrqmAyn>sUcdM&MGvk1;y zi;k!jH#vIRoEaPrW|EFUe&L6tA|63Z+w~Kwj^8c(^<#gm722Q?vUO?sEg7a9xz+FP z0`{yo5lsu}Qr~U;-JN|V^SmeyQ;Un8A2A04O;|wsl znZabZ%V=T+iu9B38m@b$Y`6}mR&2lJR2%-+)#~n+!+v%6)c4+6O%-W7Z)1Pt&(98V zwWOzNb$_MtjAJYl%c${x&A{uf4JkgkW=h_t0QU} zH+j(TUO}C{yq}G}{-;l!P4BUxIWCI~&kb3yef#DQ=0=CSxp3XsuY&WxIhme1aP5To zA;)69SV<#*F)o&0gVA(Kr)bDqR@Klf(`??voCY=B}|!pN2!E zM%qO=ZqrU&l!GDBt1MIThGdF~<6M&1(D|;J(kY?O^=}{Cr2VmMIkS0i)3DI_a@KZw zJWhDs6Qw>&Uw>j_8~1c*h$)U!74+enpF1fqg>h(7Oz>jE+~~RUr-j@t8fS>Rz2-BX zJT>?Y17}TzMTBUI)^K{{%!sK*)9-gyHKSaQ^7|cM({Hy^zmV-zG`6{E_RI%dfw-T;8;1ftf`y@m8_uDI?2lm{GB6 zL!u30GUA>W7coC9SbJ*+i+UJEA2{8hP0`MKnb@$DXEJ}eor7QcbMQ-l4u0AGfn^wn zzN}rdaf9pNm*>#i_GZm%M@LafKf=h$5k{tW7;B4(4LPuZQC0>P7JGA4WF$NKdKh9O z`QuFkM;(eH#`4 z-}Q-k+`RB5R(m(Yl6mu%gg9z=FA1MF&RW{dFfKfNTu49?BXf513h(2&^9}|rAGd7C z)31%3GTDls;aSsS#(sd)E2iV(d}eJvkal$MGhMCC>T;;ttKQ)pVq$%Pb>&QC2c%Eb znwUTO;De8re=zpdSI3SW_3GFUKC=41VQ~bC$64Wy(|~vj$G9+o6FqG{JIgti=kVSg zU(XMjJDZ(@`l(D&@>HgexFeY$L?dz()k}n_s)(!=Yxgm zc#5bKVjuOiW$HAxbieAYnR@nW(Ph}i55}_iNzOD)o)SnBro~M2F|ktEb<~Sl>n^+= zEsT$kjkmtV`hb{evpIFD&fE@P3rmo=*ZWxam63C-v%TlWe6{NPAkoxYSdM;OJeL!t z;%3L-O_wli6Szh5dQ|If)tY&Cd*bzR9PKh=`pjuTZ+K6Oo*6g8x+LPW*SiJzA8l_m zagNZ3=I@SvJRkp{)eVUs4|=9k$G(jl^! zxnVy3G3K~QxMXI5L9O&Pf>C#|jGVL<)wO#xzgz2R0a{Q&3t`Cr?yDt>ts}Hglqc+PG>^D6YqPyXx~{d4*(Ke|M8r*tv;K~Y%dXQys6vEdx&}nbJECc_hYE_jrXJFB5G0Z1dbgRdUME2JA-I36JN|N zg62idiC`aO>D{HXy(W6&gn7Po!$!0C(ca9fw3)ZRx%`igpHkR)rK#71@aeCA6#OZ!vgX?_$Z3Sw(hJOPJdH0J-RYBQ z{o3(watP$K_}MH)d^<2YW)^G2eBRT~($RZ&CJq9n4arGg;$g4(vm?=7dC-;C*?Ve? zJOtA$#+6MrjN4(MgUTWx}^D)fv&&F%6h+< zF>wnP2S&%T@+{hC@kGuv!jbeu97#`@_?jtRuRQ9Tw7KjJyeHQDjqgUfqiQ;+9ZV2I z6Eav^u+g+q81&<-v|#f+&kpYX{IK`mp2Wb?Oa_+TWMF9)oc5XU_VzKmgVVmzE9`NO zUgJ#q*-{})r_=XK-)-7Zr9>i&sn5wVcG-~;%En^Z)Vu(J2#yL?mGI-V$I&aO( zUk97?MMk^yMMfm)=1>Avt7);m8_RUQo2w=EuE8YT7EIV=(ii7+Av?#y zwmOVkX@IYY0A9>r%Ftz~ZrdUbZ}v2?ftMj5llNeY$t!A3tZCaTTgCCMuYCNf@g za^)!wL%L7xr?dkW^>O76)uG&@Tv8rZQ#pa?jM7Q%q}2C_PFAH;1b^pmEme75amqw=*cxh8SeSC(%93J>jV7Wo9lyIXYzcAa=&^~@$opK z4EC6%RPqc}Zu4la)bVKK)X0}r?W#ORnro?DNQ19Zj{~rR)P_n&b(M0LdQs`Fexo$x zdXIVxv{Y)Vhm~7Y8|NE+uC!P7J4dOj^}oA&Xgte(HJ9fvag|{@a2>5QChofG1>#(& z_ZnV>4#ig;!~K_)AP&6hEw8d%6v|%DyUhRZz;mwivV>knvYg68me~cRtqxgs zzXw^a@&KBX0Rg8M@^tWvSz4rFEHHIqJ(>hm`T-JS*k=d-y?lPV%5UbUsK< zlmTu?e&`<=)a<*sI(vp>sy^rVQUI_jpu-4{!qB-=%X&^6A%*s5H`fCb?DyoAV_6 zss-=hp7SR+&T>5g4gvZ1VdV>_UGlPwo9cS~`70b&COO+&$yB`5yWCure3i(PSLb}4 zyOO`Zh8%tao;A2iZg)`Xb68koo#Ug)*J#o`Mrk6yqwC#u-gkxL5>f}GK3&8{{2tI1 zsVC*3>xCg95_S2#E_yH>+c#agn-k+Y>JZ8;3Q%kCyF@+WaKmGi z(o=m}X~davofVsNHwWL{2^y=fQck0k#>xeBYoXFXDdK*S(v-9G?gUM-ont)*aKzhS zj^)dsyap@NJz8N$CCo|_k2Tn*7nEhX{zx15J#l6!y*a*UIq4bXT;vg_1bdi>BOK0rr1X>ZkVk)|C71zvf$qQpo(4U^WA5w2>XW3UFZu6J z`E}6IL~R8JALeg<b>B>f8TSJ9#m?3nII-KhmQPESAst@_5-9e^r#~%1ufjWA#?$X8l(qZ>ywu z^FBX92Vkv2l)CO;JQOcZFf=LtN;RbhbzU8Gr{0i3V}>e8`sZ2w^Wt+OUwK){);|mM zPdf|ShbTYEPt`~NtUlt!7Y3=dN4zp*gj!estUq$>%cIqX`e!r!v(+o3pBt&R*FQVz zpWR3CgW6mF?5BSY7&BvSDsTwa1iAr4z--k@tNuv6<`@J4L71g6V z_f%>S|P`as& z`RuO#z-JHI4IWt7CVW1^L8OPlSalrvKlIZmK98ue-1!0fyha_bPEcQ0*Q%_^RXmd$dJ*WwVXMf|j&wt~$6~FqMs!VbgO9pX}uH;%Z zUAwC)ZRs-%P@Yu=ssq$#)q(0Db+9@_eNG*!7V(q{6J(eUN^d?@^+Wm=bOyK=0JG#@ z9O^%S&+q2ET=|TO9KP2}PUTm5rvv{LYQrP?TV#FES{bRRdL7_% z)y@a$cHU*LrR~D{VDWX!qhCFgN<&7C8Kng2pLO)l+g=(vdL*28$?5t}nHvKZ-=+OE z`KF-pfsYM-{LtIz?#kKJ3Eon=E90dlP`i4(=jrQN)3c6ev}byyhLu`Z8eC~L^SRBu zdV2Nu8tyg0E81&?*FLWl&V8(8XlS_4(AThpdEI8-BfS&6i+!5;jP{x2bCCJm29<|Z zUTLgk?8vDwyG^Z46McP|ZB6i-?03k&r~f4X&Hi~+8dT|5CB8~})dp3ctNLEmlhqnl z>tAg_wIkJy)jL$5T>U_RM?j;1;Q^}y3To7^(YHoQjS_R9xrO<0^JsIdd9C@7IkRTf znq6x~)I54qotsA9v@_5c*eh^BU`nl;wR+W>S?lv!KLy5PD{5b~)Uyn>EU~0oYg?bPF0?MS=7m^8x`#{*Ia|lSPWL)9>m0b*aC7IIXWo3M zu7BNLb>r*)a7)cw`rWeVmLKW`)f-rEdA*aj8gFfV>&RP|+-AM)o!f(MUwHe$`aYb- z8c~1W9SY~LPP$|J9rgw-8Z5iB`kkS7=H9jS?(l})@2PpubN6g$q%>;P=(R>`8~xb0 zZsUQC7d8HY^HV!F32(BqNpaIgO@}vK)-<(Q|7J6rt!S3kyms@x&10J%Y*DF2+ZGdA zY-nM>x9z&g(m;b!pvYVwcrj3cB9cwQtwgx=!r6u(y;yx9Qy$ zbUV`Bzk6p+Lrv)s)Z_6UD|@8(wD#=RGrs4cM+}d&e`Mk#36JFVs^4pHuXlPCJlguv z-Mu^X?%I1;?~%P{_dfnu9oj|JoXeH!&T~otT78rAv{K8NuLL_wlv|v+%B}Rb?f{LP zc}i2R%|I__lJdCod*w-Iw(>OLKILALvrx(8ehxK$E_H>CHc%d#NK8s0_b+p=m@6$Y zr$ebp2oI$O@2Kt6{>>>clTRD(c97R1@|sOv?WCiGyk(QO0`hi|ycLi)jeKP*S?F;N z=RVu8Qw54at-<&}J?AC$R_BlE?Of|SFJXypC5AgdBSJRidOx9iIWvhZiP$t^E25-I zi18vNl}U`%iSZUnDS%SCjZ(^_gfg*9X6FS;s89(a-pZsljnt;=Wp)$2;6Q$<<;>z& zneseRF5e#D{E?@U2>TsReofx;cycdK=JDhYJekRp$)qxkRHl*2OQbSQ&vQ%XNm6@~ z)TPOGt@AuF$rRX$rR;s##F9fS`NZ-gvE&hpWJDe@oKsplkCR84zdUM#0CFkcUyB$T zIfc>^E7%JzJ?_kKmqan8P(TUPgDcf2h1)0vE2VG`JgG+c+Oey?NXbmO)pTCr-Ita2 zd>=@jJ&FGc-%9vq=bLzjjbzPztJJRV3XdGW1;uvbX43}NSPu^zLX92OJ1jM?sf z{<8i{ak*b)OofEW=a&FyDQ`MKo{C|%536?!>Z_E5d}CP*g?bEydc3YwYggko5vHIjywgS((o#$?rheTU~#1 z6-uQVuu%F|(4PE1%(WM>JMxfqYLQbS`zBjT$STF_z1WdDY;4fKr8ARRb2@ zZw2z550m3wgnk@62@jsu-zzoZGLrK^a+Qe5;@0vYBv(n7Ts6{_NsMQS@ho=5L97m9 zb&!iv@+HWLESFr~Q0z`;F|kYOWDvWZSc<7ts}Q1ExzMgOmAFIXk|vuTDv6kKU|1d_ zKQd%BLhdExUf!LDiPj#8Qh`GSLG+ zLR8_GYM?9!viu(=O})s)&qp ze?LqqyKIe(SPF@yfLNq;uo1f8FNXFYCBCG@gluIhEWFVQZY7O(fTp0C^ILZ+GRR8` zsW^!KmXd-*ES{>Dsbor?WDBjX8c4@PY=@P)`A73ObDrwQBM>?bg3w4>m&8sol z;e{+0$wX2~>2AuWrRwL*Q>!^Mc*{Aprt?enCQ!@yHFfG1>eMgQ zyV27syuHklNIfj%?S;H8hqPw#wjACjEnE)im6EVA8u=5}?FzAGQNL6n9o2vwXG!Z>N-u{r=8!&gn-Q{h*vj_E z$)y=zG}!&qkJ65P~%ND%1E+HwgoTpHfd+`DH|Jd zlzh$LjlMdQWZZd-Jj?u4gEiCwv@*}o$~>#y<~)y9oJA`xNSlrvr7j1-{MzKF?5(ah z%6eAX0*C$vf29&n`|`9OIju_?Zbfc)09P7iU4NMnyRmMUvC}_d3ofEd=i!bkWDX&d z33-W-HbUCmA#H@DZRgxf$Xr6^5b`V`ldpy>duKW!^9d;}hOB$?30X|YZwXmM$Xr6E z>LE?M)4{u>He8=d8A7&;WE)50=@R`tg1ph+Kyr0Sb6LAo*7mNpshv=t5-N}P$o7+b z4|BAX`Ta<@4qB)&hRX;&*OrU|-%mTV9e=gw^GUs(cOP>~DpGn9oi`$>v9R)9xG@@O zy#_a?z{(c1I%LXyDZBFR20eCai)*=IE=1}La=)Lnv?EM=(mjxpE1(4;%Us4%Of0G7 zDB}h>!rr1qu9C|nbOxa>UJXfZbVgiXda||_?$UD*LXZO!sju?0koIyZl?;~b`1O!x zH$xnxHlLC#;oVu-hZ17RMc%n?dFK*~%yTO5caY}-Qk{oRTtO$Upc8`hEMt zW^Ce}IlME2cb+DXC$BPAvLxv@LQ0+bWyrF8W)M6Rfd##r8fy=AEYj+yO!5NcV2Cz^c?S&{SnzmqA%svKx$J`R|Ql9t{9{qm+_jq zp1)8<|)(Z!}N# zqRu1RlhhNkt&>AtA^RSe^!m@;ex)YLq$WyNYtW9V=S-m{I!#SkNFv8QX%9=m?L+MgEm&&R8W zC=FQ0(m)vso(C_0VcvT^Q;rRo1JU;bLk|H=rsYjpmf z82%}T^0PI6oezJ$h4uH$#{4(MB4_I=HZ%0U65>BQ!}WK({R`?MIcr<-`L(~}?SFoD z??3x?Uqg4Fd}(BBWdj!9d(VA$@yxz+T<)FJAY+1@}JOh)VZQ_ zxc|SF+P`rFQI*YR`xx`*>MnI8eQtJsdB^eb;K8cC^Ubvo4@)4bh)x$v+`~YsJ}L z)4+ds*_N$>`D?4${`X>$Qv7S{^D4fw&sBI}!A}!Xd zG09y@tn(t4y5#V;(_SgVtimz>Vw~y#Y zRdiK+KJA7-|K2|zQuYF6D^}2=lY1iMy7kMf1TTfpaxZoz{2F=DNA*?4QCGc8U4@q` zp8my}ePuj#)SJ{%-Ke9+D+g$!eZyXuL_(x0_1P~opE|29_0&3D?NH^Zebm@W5bur1$Km1#ed5M zQe6cfE*Ic)#bY@~EY*nR9I;d*mUE0Mm+fVA?PEN{+LT1zU&wB){NMRi<=JBW8P|?v zxi`2ankIMVJKkuy2IQ<`%=Z(v@Z0zih z?wFRXz%z`w{%gFU{ayaZ{`3Ae{yX+r|B<@-k394D)xv*YOn6uLWsmet&vVSGM8^7hocPsrOMSngueihD#%)_65pW1hlUeYa7y_um|jpm#0eXV8M{YTn0 zdC>mQ@D2x*#ma4@y#Z(fTGO}aK>MyEGU~*d?9O;8=tA4BEA>lvWcw(;^~MvyV@SOZ zfA{731aj`jvroZ*{Vp$y7q#7U_bbZcOL*>gM;83a0q-04ukK&5%4`Y3XYMVA3!2F4o-lRr1=y`CXXrL zG)M(!z*%q(q=EAwo%~+_7r`ZvNglI7F31D8>Sb!CT zfI8r2faekQ7H}IL!0-#CHUM{myPTSOH)sg($fGuPURIlcrU2g}YIE>5={U;u82AAs zg5%%>I0;Sxyq~GbAO)NTso)Ga3(kQwa2}+?n-7(GjE3A!&!IlJ6Wj&vhB*zn-UAwg z=AaGeKp(0jUSB#f-q4xeU|0OOJj&R2Z?2Eg=kLSceUVN-81fX>sC^$x0{Qwfdac}~hr0h=ISDo=!R92`oCKSbU~{JK*TkP|6@0f=1=T=x5CCf7 zj}FhOus0j_X2afW*qaS|vte&G?9GO~*|0ZTt%t`V#>HW=z$c1;y?L-V5BBD%@CK%4 zs*AWL@!n*R0#1Wea0Z+O=Rg`b4`f~|DPGPMiqW}3?dM#sK84@3(PekAis#^I9z4y% zI-Y~8d2m(oG!LHU!P7h}<~g{Ur?jB9yO%ofK4j2}a%@f9l8^ndj<4{{DDWy64aR`i z2s0Lp1LMI2@H&_X-T;%pn_x1S0zwHB2ExHq5W&4^AQD7@>0kz!31)%WU=D}|u^;wCe*Y)zRkL9E7fi)|{ zniaxat?2Nj}oEV@)n&O|q~iSy+=StVtHuBnxYjg*C~-nq*;3valvuSd$A_lMB>SRjH?{ zQcqQ-o~nulXQIKGXmBPPoQVc!qQRMHa3&g@i3Vq)!I@}qCK{ZH24|qb8E9|@8k~U! zXQ073XmAc1oQVc!qQRMHa3&g@i3Vq)!I@}qCK{ZH246sfFQCB}(BKPba4s60iw5VS z!MSK~E*hMH24|qb8E9|@8k~U!XQ06uXmAD^oPh>spurhva4s60OMR4!2Iru`IcRVW z8k~a$=TILNQy&#m9~Dy{6{FF)XmmarosUN6qtW?jbUqrLk4ERC(fMd}J{p~mMD1v_ z9gVi5(RMWYG8%mujlN7>R6<=;LS0lsT~tC{BsDyjx~PP@sD!$xgu1ANx~PP@sD!$x zgt|y-e+Js0f%a#h{TXO~2HKy2_Gh5|8EAh7+Mj{;XE5&PMJ;Uv_kvc`>aF3;8vb4j z)`9h4C---O-QY8@hiCSJePBOWO)MqEQleCa2lq0s*9uQltw9Gk)RFt0Kxfc}*t()2 z-9UG^)dTe8??=F+{N0;p9^={v^aW2~J^Jz6Q(XJ=UDj@Eh<`0u2iAj~yk{5K4L$>V zz+SKq><3?wh6CVha1eY04uNmMVelO|0=@@F0c8vSO5k4!{40TfCGf8V{*}PL68KjF z|4QIr3H&R8eq!V3kc$k_vUf=Yn$hrcE8w*>x{z~2)1TLOPe;O}Mldl~*-hQF8L z?`8OV8U9{|zn9@}A^a_bzlHF(5dL0uqq-y-;11b>U*ZxQ@0g1<%Zw+Q|g z!rwypTL^y(@zQk}i*y-_bQz0u`DZm$BfdALE!70zl?+Z7!07_@Nz%v&vDzO`#Ls}i zw9~LTaQ!k|FM#U>aJ>Mo7r^xbxLyF)3*dSITrYv^C2+k2u9v{|61ZLh*Gu4f30yCM z>m_i#M7>0u`Je!f?trPuSjP<7T{Ee>U@J9Y2X8&%@Sq*qR1ge}t_$u=N<$GXv|Hf%VM5dS+lfGq9c+ zSWixN122IQ;AOn7js!8JX9el`1gr$Bz-q9E^z8-vz<%%*X*~eG1_!}6;1Kv090uQk zBj9^*6dWV1KY&DV9Gn0r$>S-I3{t>pkP6O#v)~*^1Lr|HdAR^Cf=l2>${+(|QZCsb z7vzHiP)Ipl21Wc{%y+@n4jiBaXrPoby8?a!PP~pPK*isi2k-=yfEO?TZ{Pze10yg2 zU!L~^{-6rpN~?lupgO>#JgiQK)#NBu94OXYY>NHrL2CLIxbsDTrgVkxU zIt^B*!RjAj^^dSx`rH2zR_DO#99W$Lt8-xWF|714tn@K@4Y{y79ag8q>U3D04y)5) z^Iq7zR~-P0pQWvaKXlIL60kcNb|=H`Gq5`ycBjMcbl9B^yVGHJI_yq|-RZFVH0(YN zyHCSzPG|vVz*%q(q=EAw9b6(#tcse;J8WF@xaM=O0G>@n~Ncog&okAXg*Fa5nIuu=Vp>nY;zkA06J z{x!tE7OVs7!A^eP1$Kkaz#iVa7wiN3!B?c=0Qedl1mA!|;9GDQd1I~hTAPt-c>1fmia1mSrKXNYvWP&W<@~-WG)eihSJFwLb z*zJJb4%qF0-4598fZYz*?SS15*zJJb4%qF0-4598fZYz*?SS15*zJJb4%qF0-4598 zfZYz*?SS15*zJJb4%qF0-4598fZYz*t-)>$c5AR(gWVeJE`r@fu)7F$7r|}^>=v+F zz-|G%1?(2ETflAsy9MkPuv?xakq^7`VRt_4&WGIvu)6?u7r^cU811-WKbUzy>~tXv zz666W!C(gr{=I&&0|q-_umc7=V6X!QJ7BN_20LJ|0|q-_umc8Pg0Yui>?LIpOijW* zU%);uQrf_n4%pU?aJdt9OWNkH%uIHpw(d^Lpa<>i z9z6wHpMkAIi1#@#6g&@J0K>qGU^sXQi~uj=1$!ijAq}6ChA+UE;49K{0DKJ&f^Wbf z@GUqDz5_?V_W&J-t;w)88MY?F)@0b43|mjb*3*B`_9nvCMA(`LTN7cc9k$wGYawhc zgq4M`vJghvVPqkUw8Ka{jI_f@JB+l$$ZQyy4I{H*WHyYEJn1CwB2Ha0Q^hNZwT&aeWh;0!nm&Ve*=9;5^M^VrCI>|;JmOM+=hjOL<;*hUA8 z%Z72K*hbkBF2yz$!n|UbR|xZpVV;0_0_NqxykeMF1oMhuUNOuohIvIWPr$q)m{$bz zgqwNAFz*V?D~5TcFs~HmmBPGIm{$t(N?~3p%qxX?r7*7)<~d-V;|4A9QtW6ccC-{b zT8bSl#EuqXM+>o|g|M_3mKMX(Vpv)TOABFXAuKI~rG>Dx5SA9g(n45T2ullLX(22v zgr&u>v>28a!_s0{S`14CEETX+U{eJ)RbW#EHdSC#1vXV+Qw26vU{mv8X&x-igQa<} zv>28a!_p%C#EWdMIUpCq!VCqd*fS5{ z3D|K6g9Qv0Fj&A~0fPk$7BE=A;361Y1cQrUuz(75IT)M` zgR^095eybESioQbg9Qv0Fj&A~0fPk$7BE=AU;%@(VQx0e&6a&@#_sB2OKyV+4Zz*b ztx6NF_p&>qH8X7;@NnPJxe?}Wg1MWh*|T8pX1CoGuve6`o5`>@0rn=t-elOj1NLTO zH|03aMQU~%3{HZ<$uKw>1}DSdWEh+bgOg!!G7L_J!O1W<83yly!MhmyDP`=Zl(C;u z#(qi}`zd8Cri%2Al=wKpHp?(ka6W;3BvLuGwP&n+0qZZd)vV#TF;S#axzR# zfXN9kIRPdoz~ls&oB)#(U~&RXPJqb?FgXDxC&S`oSiA%F?tr~JU~eXNHxtGt!Pq1i zn*?K%U~CeMO@gsWFg6LsCc#)amUI!uUWBn1VeCa(0XA9zHd+BTS^+i~oCJfDU~m!) z7PJVmXyazl#?7LQn?)Np3pO8z&Bw9JXK3RVW1G*=#w~{3Ct&vp*quxZAxk|5egKK! zI5+{Ad7zD(1^W|Ve*)}Jfc*)uKLPe9!2Sf-p8)$4V1EMaPk{X=u-|9YT;5^hn#VPt zdj;shDzxDwnqWs0?6h%BXo4LL5NJRS8jy;AfekK%y@jy12pe34 z4K9MkMXfwd=LtsTbNVe3iQdQv%w-PT~MO`*M`)CcIDawk`2q!ebOlzTuE?ltGy znpJ)sX!CZYUE2vJcIMiJ-?~x@bmMoum!>R$%^EEcIYW8T-3Gn{n=iuVRM>n0Tb>S^ zvthHGq0GgWYuIuPTdrZtHEg+tE!VK+8n#@+mTTB@Ig@FF`8Jr(DHLD~c#ZpG!8kA; zOaQNgiQo+|3A_m=gDD`CFkv7ZOa&3#n+7656qpWXfSF(xm<{HDXb=nHKs=ZW=7B}T zu^7Aq-UaW0_rVhI0ayw?1k1ojJii=#4E9i#d%-@iAACjG8~|T~gWwx*2z(0;gYUo* z@I5#Rj#2hMfJAT{oB$`0$tgfP6b(#415?nz6f`ge4NO4;Q_#Q^G%$s_Bb&M-o4O;L zx+5En)MzDXde2k#I%SXZYEKiHUIs<{?&@i3w2CxZMH;OljaHGIZM}#_UPL1=qLCNT z$cq(h*Iz^%FQSd9Xk#jxn2IK*qKOx1&tE_jFHo;spgn(yx+R^uC7rq@ow_BRx+R^u zC7rq@ow_BRx+R^uB^|9RKf{_!J(5d3lFR&roMn~0OB-5fLkn$ap$#pxp>-G0IvZMN zL+fm4oeizCp>;O2&W6_6(7Hd|*2j0M7b9{;a2q9hP0Khtol=upb~k%X$~3Jp-<$B9 z)V6!kl>4xKtr(SSjZ~lFet&HB%j~!v30~p*DDWy64aR_qYl8!AaG(tiw82p!ZHOV= zH`0g&r2Q?h5WEc*5$|H~4tN*52i^xuzz1L{_z)}u<0U=eXH2Je7(!F%9+umpSnmVyt#GVl@4F9#ok z72p%F608EN!5Ye8Em#NEgAJ6)MvwqDfz4nG*b26R?O+GkNxAI;yTNB*4`sL)>;wBj zxiOGm^mvd5y_{5fIjPJ&=CfAHi&0`DV73}5+K{3RDGH=$Ly9(}XhVuNq-aBm0x8;% zVjfc5ffRF);vuBCkUn?;5)?>KAVGly1riiU(1rwUNYI7^ZAj3D1Z_yrh6HU$(1rwU zNYI7^ZAefcL4gDX5)??#h6HU$(1rwUNYI7^ZAj3D1Z_yrh6HU$(1rwUNYI7^ZAj3D z1Z_yrh6HU$(1rwUNKha_fdmB-6i84YL4gDX5)?>KAVGly1roF&K^qdZA;CN(n1=-O zkRY>ZU=3xk7OVs7!3N4>BS-+7z-F)oYz5oEcCZ8Nq|A1K-QY8@hw|GC_JRH2bIS4y z@FnAXlsytlL1HOL%%;48#8Qx03KAvGkfW!)rSOF3%Kw?EmtiY{z z`;k}{68iy(twUnP>^2{S)QXT=5mGBcYDGw`2&okywF0D8fYb_*S^-ikKxzd@tpKSN zAhiOdR)EwBkXjK^D?(~TNUaE|6(F?&q*j2`3Xoa>QY%1e1xT#`sTCl#0;E=e)C!PV z0a7bKY6VEG0I3xqwF0D8fYb_*S`kt!LTW`wtq7?VA+;i;R)o}wkXjK^D?(~TNUZ>= z6(F^OU(vh$NNqn-+mF=tBeg7~mW9-^kXjZ}%R*{dNG%JgWg#_YqQFkdZ5P-LJ_CCw z!@Xc1*bmB&>J(D0mz6~`bn96XQoD@QSo229rVVzwE7o!d;hzIT!Smn+Fbup1hJ%;D2=E&5j0NMscrXFH z4km&(z$EY{m<*T6zbOS9MU<5ZrRJ}miy#axy4Gv``*rG%_ke${Q#V>mlZX@(kzyiJOss$v@hnnIM2d+> zF%c;yy7ea${mE1ZFgq+yA4QMosg=-ED`96G?G>bziL_iR^&0SZ*=oJ=EA^UipS2n2 zR0)!jy*0VsCYj#aNqTF^^wv(&TgyhbGU=_A&|72VO_@t?t%TlM3B9%R^wv%?_K;3* z?L57;6nblE^w#7|a+Z7KEgQXbpqCEx(t%z&&`Sq;=|C?X=%oX_bfA|GM&2|=-ej*W z6YHCa_07ckW@3Fa(bbEcn7=--UIK0CEx?F6nqGl zf$}Q^SCEfSz)G+RtOgs%^G1*WHi6Ax3)l*_f$d-i_~rVfWO{(f^Z=9T0VdM}Or{5z zOb;-b9$+#(z+`%W$@Bn|=>aCw13XC&@FYFJlk@;j(gUPF&;3&%nZHxOX^;xefV1En zNCW3VI(fMOE`m$oN79}FGT}uw$N|ja(hGEtCc>4=ponLRxhJ^VfdiBP4V1#0E8r*K zWcFJDDq{^Ez!OvgUcdmnfe)w*jKBnZdEOsXp)F7qR0jdTOzpycH}xhE2x`&0`=hhy z*G3Yv=>cZb1I$M2SUIncCT7zE%%%sJO%E`e9-tfxKaU2M&XrHod@X zdV$&W0<-A_${C-N|F6As53Z`X@gH{Yuuer$~H_5$uT%FU; z?|06)a@8`J89FDpkBB8^*T9Mo~+k0S1$HU-dy=Q!eSTR|2d#G>M`@_ zl%a;acS5_M-O$N4PZ3(T2(4R$)-6IG)kGiFL?6|}2uBQj$G~?Ce8<3d41CAHcMN>T zz;_IM$G~?Ce8<4|>Fl2p;5z}n6W}`mz7ya(0lpL9I|05E;JY1sw}bC?@ZFw3qqsj*e&9CHyT!>(rEi#3EV zhC=)r=KDRUiQghnGsO9wtms|FPH4+GDRvn>*fP#|T}G-&@hMC9DbVv7gx~|RU>~|BwGqG-^U2b`;4IUFoM!!=R%^H6mjp>a90j@ zRd5#~opt0@1$R}%is7yb?yBG}1a~1g3&B|k&O&e&g0m2ug~)pyd9Q=BDmV+lSrwdB z!C4iYRl!*mTouDrF+b*ax6r;c<`{iNjJ_g9UlBtua?pz$^dbkn$U!f1 z(2E@OA_u+5K`(O9iyZotC>nDVjX8?O97SV})2GDgQ{wa~ar%^Q`jl?^ly23Y<*jpY z%;1weW-z$!ZE)S&|8CvejcC+iTJ&b#s2drbYGiD&nK$Z2MyMLmv|AXZYNU^7WR$9r z@x^A|svCK$-b<@~kXHRDt$H1;`aW9qdNk=SH0dyJ#9`iu!@LoPc_R+U-c4!B( zdJuXDdKh{HszG);pKSO_k9*3TQo`jx4)=xvvKzpEPk^6Jd z^Uw>>UY@~=&`a2dlrwuXAF9w<92t*n9Gu~1tYmP8dvJ#P^HCA@20!2DVb@tx2vXgAc~@$IMh|I^Sj&>rYn(s~Yh9(n-^ zk>hLR_!@ecXM2{kh)K7G5lfhJdD}aW884aDSi(r+1?T}w39qN#4bX2R?(yK%7Nuc*6(0gQ^ zLJxXR4|-1zZ^Q}oo&>wN^fk(nl{cQTG?VwrgzK?8T4)TKAYjGeaNl;Lc;yFf+9+`=)TaKphFbaE3vtyiKXUHN4KRIY zpy`t*yIQ!fx-V+(+3qXuKU~%=@!f`93B0-38dKi)ge&5#G?zQMqh79fG2-%^GrXo} zs7Xr{ea$X&X*}DQ%lrgSu8sf3n4>*~Lvo5belB9Hn3~kLJB55&|7-FW{CikuJ)j~f z6aQcv6tb>GF|Wu10a7OfM_w(Hm4l~of<@BMTnHWHU(J$}IHYupXX?;?NLsDLS~T@{ z+@r*!Qcv{06u!N9@)P`LYx;hAq$u@C)|{);`XLzh(2vXs$$DNKAz9~m2It=A9)SM_ zP8TtTHR8k?T$zFQ>z(_Ad%wHgeI5?G2tP^aE$(>&&kA^AwcIHymQQd}tN2CgxYRF^ z5p|i*qm)15{Yp$E(@dR?@ZExR970F@SPPPikirK%i<9bC@`}5Mf4%R^F`G~=snzpl ztnD5WeudH=poD_o+N%p&Dx9% zd_*Ia_^I2U^jy7v=+hPq_})w3yH6!8Jjhx$-%XJft#)j4`{DfhmGN{H z`&y?}laf9Q*}K?WBom}vXin!Rd0oDHQARjSdlccjG1GHpZ}LCdI!g;pkC(c}dZUks z|K7AD?GKawh02ZA_&)F>DJlXLP1phPgxjbkA5gOr@XekI(syu|^dWdcoxV08y?gSS zJjZtGV}|Ei3XLCo`yhJxW7IIQcJ&?jp|45CPWOFE{G8Z6?|1J$p?#)rIT{%Xr@A1R+^i+pgpMV32^%A1TtM{-=U&lL?^nShu>C;77OKBb3g`wVW_jmE1*^yLS6GMW?b ze{WE7(FopfUzhxdiT-dHEkpF9bno?y9quz)u94b)9^hWT2T)9*i>J5AltnN~tK^|o zb2zHHMgoNP`VMVzq*XYg{iF2n+v(r$<{n>DqJKx1)4b2{;n#?h+aIYp4tw}}n$%9} z$AOeqFYUQlv-R8Y#4uEwf55U(@*_J|K}w8 zkhJH^lO{#ce`vY+SL1SRp$EdpyRyc!MiqwRQ}lspfRr4fu=rPY)W$`*xl=X6NH4*add6 z&A03D1@=?iDI|HPF~o_blW^T&W@+t`F0{Dlrpi~B4v^iHBlDFc93r& zG8n2d$)OBm@glXE$Y&O(8D(RcSdPpp%mSpgi2a9i&0=#t^>PV54?E+fXkjbR&nB2l z%%x_Axg3j~5_1*43~8<>jqA+qq_T-s@>iHgO&w<@H6YvHBHM9h59O;chwMVT*hEFP zrc-2VxiQ@~9m`x!>h(kzqb%yk5&)N~v;?m6UrLC7uNjW%w-eoed9j@!44M z%;WBI{4hAFfS(2U5%9B!U6t9amoygRN11c+x$IqV9#7)@6rW?@Q!J{Ns+Hyn_|4<| zr_aH85I-LKqLuLfd3-*WPpiP$h4@L>C{tb02<)x!-Ju-yQ7Bl*?WQyW#gyb|gEC(?|Az z!DnS>2eX%Y6EJ@@ufs1pc){I%5H}vo)xj@&m2%}B^Ddl*vFMr#4%^^V5LgHX<8a!^ zlP=;(8#9CFn1hwpC_9Q%8FTGfoOLw@1eEbiCvo=GWINf6vr}vd=U&aUWo9n*g6BpJ zsxal?W1%Uui|is(V9&N^nrt_XTc6g?%NXT6zeH`onkvc1|~ z&H0hn*lP%1Yp*5zC9pLOY;C1f+w3+o5`^tDQ|*4c-%Ph}+5_Zu&>o~bhwLG))Y@8p zt>Zkdanzxs8net-6r;lxqr;KsSVB^_iWR9N z6{%9oX7h9fsblz_M@*19UwxM1wM_9kSMge|c+FP4&QZKBP`nOH!|PbZ>j=eb320rx zGZUm1DpKhv_E7SIM=Mq4U)ouGIfr+6Krc+FM3 zj#j)5RlH84_J0+A1+_C3wIda^vlO-S6t!a%wX+qq^Vz-N4kRboEd#q-kcwcp9PHi) zz6G^&6txQ!wZqa-J62IULQz`+YWKml;I&Zknx}Z3oQBtY#j99?cEB(DzQ8X#zkv8o zYzwESP&>EJs^~0LbXF)jOBJ0Jiq4!gbe4n8I#QtZ_K}yP$SYOkRVeaG6?qkkyqy04fjN+v literal 0 HcmV?d00001 diff --git a/StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_light_it.otf b/StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_light_it.otf new file mode 100755 index 0000000000000000000000000000000000000000..d2f8db4455dc6ff078bb83840b093f1a120e29df GIT binary patch literal 78892 zcmcG01wd5U_y2t}yvO(k#uo^J-bL9n~9JFp7@6{Vy`Okk3l1Vj|UZY89wHP^0P zJJ#5+w(Ac2aQA=S8&ur*et-W$VcxrOZk>DXIp=fkjGr=PJd&a$Bu1Tw3>)SxJ=yFL zLhcfT^uvZv7(e+;+tpDB6>LK&OFw*a;9$d$C0h~7t3k+R*Z9f4{;M-WLlGjp5km8W zBZ8u<+T`Cw$h9#->ra22-zn< zoqZ8O%cF_c@Q4Tx_(MeoMTCAU>+llZlYpKrIx05q&m!cHklPE$_eKO?6roj_``gc} z-}hG}7W3)o!q*p0zy18P-yhq>1uh~af)R@NRQQ29E?$3V5fVTBv)`ZY;sU6b`R6@n zrcmHDLK6@Hf02l|OpHP#JRB9J!Fz`DlXwLE_#INEVzEdhb{B~X5%QgYyl3(C`JWL} z1NfG_Ig#k-A2*4)E?&ecZ-h4Rd4xs8&xkkl38ALMRK7>TPk;F9d?rvs)W7ywgxt{h z+GjCphi272yC5af);^P{KH5_IOrfTzxc1o<^*~o@pCzaf;Zpltug)`#`VmcP)7{WV z#N^uN26g(-Q0Rjg5ia$hkE@6!(0BfsKt9CRwa?H`QRCWYF`6Xe$H$j(K|Mt=wa+9{ ziuTk#Q+3i^QKaa6ZMp=t6nC$Eu2<)oMk~ZKYt!A3kN9Toa|6^IR@m8AL*(Joa!6Ek zVocbg#c|$kgWGxgckbNFdqJZ2h@i;G&{*$;s7UXCsL;hRp^-k`gTlkTg_5z}F`==c zF$tj|K7(U|B153i@R+E$(AZ`1p<@J6BjbX?!-AbefJQBe-rj#J-dkw#Z^_D;+2rWi&z}0P0FmS0i?2yjz zuNOQmfD+zl1PVft@Glg_!dn8=jD*hs_zZ=bG4MAM`9R7b6b}Eq>(J!O^ZBvx8v`{% zQ3#YA49`5pkXlN^;XMj^z?WNw;^EU9jd|Cvk&qJvbi<%`b$jCM$A`V>4K@Eeb-vWw zF@9M3?>*`CFFlzmj3^d*<(v(E#{6Jx{AcI?K_9%KCOy3QjpIZ3m1C$bA{TB+e7Y8%p1FIVa1CUu>Z0RMPW0!W(6%=!L?_T$^eN2v6Z94O31MjScaaCQ`3ban z_g$Mw%AdUD-X7jfy}gAtdkJmEc_-Crb279!ySB}S(5C0RHbaCqi9i4R^9zLj+zP+v z;rBW8pgw#)g-`ScXfJ=PMCeV;o0o6yzPZJxJsr>gg-@TSflpgK?f$gi)80?JJ~{J5 z`((_MrB9Y1^rYpJ){pZZr#`kK^mrlsu6`Wzc*x`SkJ~=DBiTxI7WP^+kk|*mr{MQG z{C*7z(N6^Eo4oSI|2ls}B9R-syNMdW9{rb}_oaab>{?;x{abBxK zC5)htl?Xgl4(nD-G={x$1J>>V>=%BwyoUY4@0R3xkw?GQsh12aGS_OQt8a)MWe1_JdFVG6~IcV}; zdJg*G3#3CYQ5yOlWdNrd(YMG1ypsuh?n`t=X3)hg=vVX`vVu&rqiSSB4wQ{Jlm+^2 z4yr-x(Vu7?dP5*0k64ci2nrPvu4pqM;rAWdPPn0+gbeK<+|e$gKH5z*KzoTsXb;g4 z9RRIzKcPTHpwE{PEUF+>sFLtTRYWs%m}riU5G~L#q7^zxw1f3NLv%!+5I*QE(Fsnj zYjCcAinbCo+DFLILE4ZwVSBgUF>M$ zqHz;()4A_|@A7*N+0^S){ibaFhDV#mY-@ym2BIMJC9rjxfIx2zBD*UH=b<2e13|-G!e0)7NSm~uA)AoL839D zNut@J1){~GNKw3KrAQ~r5UmsCi*|}iMaM;_MCV0UMYlu`MPG`(7ja@&vAb9%Zj@m=vF@hkC=N!0@3O`v%_YlagUdFTeJ)2`F1Xxu z`P}8Di-U9}Wu$^^LAD`%$nNAIauhk0oJB4m7m<-8!e^3-9qZE{iYD@W1eW_v81ZoBqLPb%DR5E3x%v3H_NbRBy zQkB$6>H>9@xf?`GrMMuVkg@=TWbkZOBuHHx|J_hxc%Xh>Lic+liJg{BDArqoH{SH<6N&=eSLpfJurXD0%MP6YDn z6Iiz=fzDA+6Iz@0zO`u~VWD6qhQ&@>6cdyXI^%uL3?X5rP+{h~*$Z+u6C^Yf^o|XJ zoaBQ-h2p`^zwc=U3;hp%Mn#%Gqv|(3PmVD-!jdH(~@jF#?^KI&@-%^w{^E zjIHI3*gA#cglchhQk=XoI1Z*DUKo75vlH<`C*t`B@5>*g#Yux_&?!7DWBk=XrUng@ScS5#tVn{4?*E^LU;L; zw@vfU&ffD+!pMg762`&5^F!f3>yCzhf7d1crFPEvN9RC=#P`CZ&dm8h7wW!36{q+M zfDeCvKWI5>X=o%&EYOGz9U31K<;>_7367Oz@j>B1(a|wc%Y{dt!-NOmrl2_3Wqf`> zXn0%@PqRy}uHz#@7df8?^%9Z>4~Y&7S{N4A-Os;guh7^yVA{CQkkH6QLn9Z3MJ^1B z42w&Q4vL8j3knYjTL|xQp)kea;5G>h4hoNr2YDC=E*R)RNPKWyc+?808VZz$^&B>A zMQBWvPaJqTLg8L2Z5aMC{T1h@kE6up04vjAT2yPsSA%n1HzNgMr6Fu0(|iF`453QJP5S; zPo6S-@^twRfhs&WX~Kg*5k7fVT)c4J(uMPQ?&SY0;6LFVQsD(=6gGS4!Z=|~g*U-} zCcG|AgiXxzXe@}Ppx~vUAUJAE*1o?l%O`}s&#q+>A@zNsMe$+bvB0+B?+U(4`LIxU zXap~%Y8&GV2`TRjg+_+J;UaV`G~(Uk0ywloYljjV6BZT1AG^SOAwt3b?lAjLZp8my z`#-qb2LIIu`GNQFUvkkNUfpa57X2plgzyF(__V04s2`|%3q;`}HCTyQ++Cb5-X|^* zKLmwrtjlVbWS5gJHDpV&7uk=TO$L$6$ar!EnMocbzoZzd71e?2O)aH9cV%6BxGr#A z=(@!9f$NWw1`>rtCGnH=luVIKmxN2AB(aifl3Vqf)$3ZXN4Pj6Oo2pwH6ZOMRt%rQ@YDq>H3WrG?UM(qd_a^oaD9^h@arHy5}1 zZVERqHy{Kn#tP8y36{=hRMdu0%bF0L9$3$yljO`BTJK6WE*6Kvh51o>%P^LX-&0y zrW6`&DXE53PtMOzV@TC!>OIX#nL2Y?mf2JKWpA6#T*!JB(i>@m*|Wp9q{*0?NE;1l z2EB@_-%f8x-OPGQvzlaCvRTz@Jch(yQ&rp;(vV@&XEEEUoJ^}VRmBah9&?&a*E2>+ zV>B94RW;H#qezV*b0CX*;#CS9;%Gx|Vl$Z+HEl@gOKewgoe~~#E|_I-n_saD?zCBT z&Jm!e6R2dv9C}>MK$24=cJIW|3`b9Vg%z71djM%0&uW=?e^#on8u`&l@@@H*`-^nG z=a@^|@7YZ%ligr4X0A1R=uA4JQ7cK*u2`@%IOprJ%=nn$i76_hE<NTn~#a4W?LddKmO3oyjPXex_KPbAITL z3~uoA15CdfR@wZRYVd)n2X1&>Ir%xRclE@)RFg7GXERytS?fHq)@iLqlO%n@@h)7K zQO*2(FD!UAPxaiR_fDPIx=CrVrdjpowK*O-t3F+$k*rM$o;jKsI{o4!Og#Sl z*@?YNld@D6oy};s*=-(HtI2AxO17*FDH+aik{0c_W-2KjL|IH`^AXmXVN9gChSYE0 z?ApF*w|TGU5nFiKL}tpOx#=okRinwcZmq{8V2ie&^nH2m(9Y~^<=W09=dpZD%nW8q z&=IRnm7J|J==CWn9vTg>fKIY{-LYxcna^(>!OaU)7aViQ?zHrn_-ZFQpUMuU58`YR zccIqhre~~EJ?HXBU8c!sV|GzFrfj=G<%8Fe-|x8l3cGs!((hp>B^OU=7Ss9~sp1HJ zMdI<)ol~QGaiXr>d{xqkC9zdIx7o6Dl{SmnlI^uF&6;9R>XX#T%b18|n~J2APTP)^ z&eWDHJj1l7ui%!7edeu&2bcr-2}=wreOP?rLgPZy%6!XyNfg&yA;qoC3a%ShPNwM1 zdOK4{SuG}uN#$@WW9=zSJf+tebw(98j(bj~Qf=^a(wb^8>6rv7#i-F_s-*k%C94;B zEs9&ZFgiKgu2br5sTPecS>vHIr0Yx?$tvsC5nD6PSelB!BwO-8bKL>k4}xvx@_NL^Ych$QJI$_x{op~^Z>9-z!- z6Fh!Q8%zdfF|{3!B`q0xvw>MdNe!tph7V>&g(wuwU)w$1kg1Ys(_p+Q2>RRZUS!ZWtl&udfjigu7ZO`<5bp2RmZjLHds{ z`laWFGQ(z!Z@XI6e$C$T*BQ$`#mwbZ_i|MCbM_uN${fp|)i+7iFDZP^3`V9{M_DXY zbUYgeYhchCRsLKTQftW6+Ze80lXaAN51YD=g{jgSoLNRbOQz_+s#io!qa`w1hCY#% z+AT(_hDoFhx^yTg{iO2n8N2FyR#4GAW>#FZQLoy4=}b}8`Ycn1J=JQ=@kp}(H>HNG z;i#!AICqH@m!_BFvOV~4IpKKuvG{s!DUD}ScrqT2hv7)vhodmd`K!3uly)&ahr3Hg zP+Fa#FPo-?)!Rc^xiZBeTt?z3%4)OpqBHEkBzm)!;i9NR_%Mn6D6D$LxpHl}nOr-r z6E{F5OITMDc%Q-O&O_{7pt|aac8Z?_N~4=YkEmHja?%x}Ck$aGMU`w`rPAAUsXG1Y zBoDnl4dk6fYTA*%Em@+EjtyoOsJHI3sAMT=CS5jjgDTmyY>{5INFTm< zJ~KaIw<%R+H0#rihGZb3OHH+CB~oe@EzQtdr3!A$vTrB8Wb7ZanYkG@gIS;9+1?&_ zVH0Mz;2s{?*Jka~n>HbL7Z1q!?80|;Ylg{`VKHs=ux02>TE>TyOytJI zsN%V=`1u>UJW#^{nW~v@L zz9BOx=_;0M*<>bbOEVFLT~e3FzZf>^0F4F=C7Q5u6zqZ*f4 zG4l)~?MlnKu~w;BVOa%Qh0&Jj`LYOa!cFm2FWhj-kDMF)lW;WGk|Xa9eE#g(vCa9) z3~CZLk{j14P@QDZ8O%u%+!7Zl22Q&4C6;{s-OJZyK5b_wN2aR`#z7rgFfw2XgH^gt zp)Bc2*IEpDYdzou&a~PjdAX;q z++toF7&UUhoKd~{s<`dkCQ_!@Tv)Ire|27BoO*d&V(!XKD%oIK)|%cBMoSYME@jDT zsYS<1x6vz>CnhGO(_Di$%M?Cq7K8*cOP1y5u2$)-+H`|%?J5t@b_^DsWaavz=ql#% z$t~>B62%5ACVyUkyz&N9Ruq-EPL-6PjnPLe=ae4O!u*Ye8`tJa73M(t2>#YU&*HuX zSuuh8TrrdTj!a{Z;_v2wmZM9cWyy!|S7jiMW>Z-k*o+*~o}q`?=XVnDd0GB?PbFMQtha1L?0q?c89QxhwjIJQwcjGJ?TgZfu@gX2e^VF1O@pyL%o z?#-JnzfYFo2nE;hR4eQT|0I|OW+MCF_U$@+Mtq_&jXDF`-ME)03v$dB z&^8P?9>#2gNt-I^w2<4xHRY~)N$0H$2@7H7$Lz1rsid>%i$xzZSN2a$v8sC3dpKyO^iMUzeyKx(n}qNS@=jRSR9FU?3#mvSA}vQo3zEY(B8DNJuv-E51AFP zFHaS$RT*rc>lma3o40OSvjN5;Kk*O8iuA&+(gTZe z!$#8mVYopfX$}RNk~LFRhKG{bnNn3|9w|M#m?aKW;63GHX#(C-hF?_?Qpy@iXG*PR zm?l`^qx)%KUK21cZbNCtlW-22jh0L)X-m}$Me}hZQVNno4~E1(Y~D*q%L~eJR@JIX zxkE}?GxXA`>W*qD0YD`JaBeX~C-eYl5DjLDRD=#7fa6dRLi-VsMxcWTz#;$x36l#S zB4#H5_C{q0l@LTW0{ENAsfVf%ApArj0w{{uj8G*awzvXzNPu_YFe3INbQ}S62M9Pi zhKK_qfD(yf1fU{O;sQV?Q9%ME59m0+dc-k=P9x&D1Ym38973NU;yeM^7I6_l@Bo76 zD+po;h)V>Zox~LaKrrH(3qW7QO#C;~u}fLOyUMEvRkpeyk^0njEvF+ltR zK)3)MqHPH6Mi3AoYR3l|5&;ODK*T^q3`J-wA_j>79Y#A4+KA9D2ilg%JA4dy>QeUDks*l|e{HbSJQAg}AkNxOl2K6ud{RU8cD# zaEWxuaoOeasml|9>J(%IX(98-U1Sybj(SmRsB^ATSFL2IWSpc}QYASmIVJf)QeBU% zC#~mEFS=ef&CuiNS#+WFBWW{fCut99KdC{w4*Wl~TVuCoZX?{5yPb9W((Om^?*zMt zyBplC?)Tka%T%(FvU#%IvZDG;>vyi-uYP|0pX&eGK-QpXgN_a28fY7Q*8n#p8oD=Z z-q5$9v0-|{yoNg(o@)46!`~XYG-4Y0HTtyCA96xY%RS`X|?5!E6kIo1Do2LZfUx|>G`I2o7S*2>&rME#|ja)xy%UUdv7`$G2SCa!bn>t){jLZne6Vxm9ti8?9cn_G<0hdTHyl)<@ek zYBRS@SQ~4b?QLGQMQy#>c4<4Y?XtF(wmaJ%ZhOD&kL_Bto6s(*owi+CyPWo&+xKig zp#8@7N7_H{Kz3-~VSI=49iDcm?%1%Sz2ncF+&eYzG_=#aPPR^`Iz96td^~-EeG+~0 zeXjew@~QS!_zw0B^bPin@iqG9``+@c>FnFNxbv&dfA~rL8v1$q`T7m_o8&jgFU&8_ zFWGOG-vz%<{T}*#<;VFq@Neng(|?%%6#roV7=N38iT@q{nlA2LlwEwgEa(#6rMPRy zuHju*biLcntJ~OamTr07wskA*cC_1_ZohPQ=`Qcyyn9^t*F6sOBzo5GxxD8Wy$X7_ z@BOrov2UBcA$`B@H?QB4e!Kde=y#*vXZ>#V@76!P|F;8r4_G!Jf57PhUkvOxaPz=@ zgV3OPgRFx^gFOa^4n8;dm%+acb`1V~aLwR9hM*zChO7-}5|AEnYbZT5W$1T9{~R`c z*v4U>4(~g>|L_UJ*A3q>{Oa(BBf5>4I%2_y=nrsnGX+|9#^?G!R(SDKGAz(r-{8Lj+z)a zF?wR=#7z_TPdqY=uIV6y|J*nkCrW-$O{ zW(}Zg#*brTgjAE!!pOcWOu!5F;8A;Vrkc2tr${nb40gr}&GYByDLjqDt*I&8WHQNM zHe|iaI1L$}Q{eak!`9~PVSnlb9!1`zY@pIxc_nEubp@{hXM@qEVf6Fq;am#IwW6-R zOVc^idM40mI?$!=QB%25WPk9WIE`rDD`91BQ6+m6JYi6mr$N5#8Al{wxAJQD@?&b^ z>%%znsCfTpimasaao8n!C5Jpx(m)wzY&Nrw&BKWN&HB?lOnH4Z{%D6%<@#^)e$4&$ z6J1e6PBNHL=_bp@t>DPiTT?S7>C-CvSd`Y{T5H5W=`@CvG?jiK$+gss_U`B9cYe~# zMam%VL@#Sd)v8UNI=ePgqg}nmBSm9PG3zBb3ZGL9-8Hx5rq|gja0XhH!CGZ{7Ix>6LjW#|;=3&`nuvR$Msp@riQ2)XeGA=0_ACfi5gaE_G09Tv0+?slb=3 zPL_(V;5LdLrv`tE-CtvruDsdStheg3?VcOfWm)w(TAOG8AIQs(_P%)FWlgiBD8Uz{MSB1#<21ERTm(-(LR7>uS)&Zr&5S4NFockK8=(z});ek3m8HBRQEDm}n+N z{LZMN#7f&?&(rpb^S7CcJ7&)6)qP4punNpMqvE^Ur>~YMaThL}Oz+vc<%n4)uPbF- zPA!wa1Rg)k@;;pp_*&L?QbP4E;N1!sL+~=XkMk8LmW#E)QM8X^NCGa0Ei%C2qpjU8ZOa>Do-4r%98kv!~k3o}Zsu)e?AFb`tkUz+=kr7-%^V z`zk=02WH;bpWTWFkho)i*0jM%o9jqz#RGZQ5Lmz~&$6)`AOxKfXd`c4;7*i`8=ZWg zD19a_-Kt2;S-B;fHCdFI$!Tkht5%Pj7ojs~^lAC5HQ9srTieZ&19T-`Sw!G^cx4#N zjZc0+l-?7UZp&obTUpzBMT)@!Zpl2#4DR(z6|Si6McT~+ zCZ}4H*74f=H&v5+b5ytH9O1KcE4v(8LBR4ZWyI-ne5X=;I)=p~x$%k)K`*{LoV_bu zRYI#|c`#0S8F6kEbSb>3p=d*g5vtMEW{iHjpsbVj}2E7jGIX|VEQ$Q}Ea<6h+iW*i~~-VYPGk)KE^$q2re z6=1Jr=yI3{E(G%UZSxij;Y*~}mPm&ZGGKfK{sBjjHZz<*UKy^IREy4{g8aVZ{L>BudWA1{V2%LP0Gx07O&(q=Sgnr&GdJSUHE}fOtY39xOS~i z4SIaz#K$}GRr4&{7N2Esz!@BmTi{vXSMJ1xaTS2c>A0&Zyl#U6yWhL}`L(Un3>nI3 zZX&5p2^lhg854Zw5qNfKhgwZEXJvR$dKs=L$NMT8Ic6S@+Y)z7{sP>gcn*adfBOZN z-<@AIZKF#5<>j4c!0qv3%!M{eF3_JfahDV&cpnc6-Kv~7#AkSbkBXbmJ%e+rf=`tH z@aWX+0UZVo@m0z8(!}NCZD`pdS{6YQEohmrbuX6VGvx#{RR}9)&dOAk<6|T)>d10M z6l9V3EoRaB)P1*vznNDSuq+$(!$DK%~gQf z0-~ybvfEAB8LBG$2yf(`kQ$pgHH+Cwtv9c;0Fb*KKgSOIfVA4ubCQ?{DkU{to1)^r zsp38NPS)Hsi)(hlMY!< z!k&ccnd(N>@=|$pZmuF3P&mFtd65h(A1`LF;z`~D;J++Kj5Wq3y6G1gJgnU#H?e3r(RBjQ7C zSV1_qDku8WGCQyyjBrv8ze)twrz!LqCWDP%1hbjP3nkS<$gGWY3KK6=(3_Tny+`b-`$+)ibiZGe`7-t!u-0`9Y0jkaVa91zMhJvfJhxZ`9xG^gYm;Nzq@ zRi8-5g4a~50dgwtK4;{##dEI%JoXh9VbAYI-|IeNR&cti65nt(wwwpzLTWzGr~P^kjJ#q_ zQ_42*KEKLNtjtNP1>T?yV&N^FSd zVb15(O-bCCKZ%af0%F^k0+fqxIm6tsZw*z$v`{11{~r%oN$torP2H- z?;gN?eOdX7A*}3VA&I+TkM%CKAggCK62p>bAH!J;J!@)I&9vNvDH}U zxgoFW#5LyP&Xcq?Qvi)2-eTdWotVL60#~k8m9Jc~V+u2P*4$M|s*F-nUT8I%b;`9c zq!Z4j+Jo$~8q8W{GNc`MI&gPairdn%%3_uWk-&PwKUKNqg9Ls@zIGuMZ7=ox(iwpKxM=0I%dCR(}0bH(LH=EGjvWgokW)mU$ zC?!=Z2s?fOJA$yA#)7b;W$OJbVQI3H54EsbRQMxc2VU4c<$97j6YnFXm zdo?W4m6eT7FU2=YiC(O11Xq^uyG2cWJbVJnMZn(sy+TcJhg{NF-0JsD23j_zwg7HF zVmu8<-m*hy4iUGpMq$-wWteS}9Bavy6U?4X(TN*W3HdvhmNAcxzDie_?Jz~=RaqWj zv1RBrl4RY&kyDw-gdH1Kt2QS_>tepf1jp-s(2}FH64t#rJH$~s0oFbiUMAC!ylF3P zyN|$S7kE+w9GiLoQ_$7*A?W}l;mf}_Q#fPYARx}e84;IK=;4frgMc^>XGENY`}mKJ zivJShHW1L1lUb!lFL)gfJ2Y$b%)sG6TNWQkQq~Y}dOBm>9A4GIiluS84^-|eF5kU5 zB5ZDWNRWz4s9EWZfHP5i{F@9<<-!l*Ij04k)X}X3dVZ0MRs==|PZ;mz$6lzY*p;uc zS*)gXFWCqh{^R+M!!XCSiY311h!fuM1ht@P;tI#2zs`AWS%;S+s2RPN{{9Y>#Mf@O zp&iW~*6B31aTy2k+@sM6)!i!_T{(`kOXNp!MSx-oTS>|vn$2lu=E1|gmp@fmEE#r# zc{$9PNtdD3NoGwQwWvSCDLa6f*%nX3ogl!k|7RB?r(HEqX5MZ_N66%uZW=fku?^cKI$a{qB|Ux*@(zMX6`c9rkXCvdr0RR^~bn;Vk0r zQBa=5`#_D~N0s1Rbv1hDN`X?3%N+~;I-afcj{O21`(`q|wRYLA z+=iMCZ$}37Y!6_6&yQeTC4O1SFKPd$Jk@12GZfzRJA*-uBj?fB|8Fw~M-x~S<+$6P zaO~em{^Xhv?qw^E%o?$fe5oQ}O zMar)`b!$qOlCe4!?D&-&Mbr8G&mr>{O7*aliuEimA~HCr)^` z{y9D0nq+)`1gi{}RZsrw`r_sXSb*LMJoc&h|AWD{<;_i4`~Qj67QxRb6m&ehp9BiQ z*H7g||Iy0B0SOBEb)XGA_oHAG;vp~u*a`n?80NmY4V^jWG$B9bH6T7_4&Q|!(e-4O z(~K;qz~03jKew7pyeBc$nhIFD&fv+hgUaz)r$&{qhn~$nnG>rs@;(vIOmG}RS+nQv z4W#TVu;6#x!ROV4Lw@@|cL!T*Tw&Av@0*Eu?qis%|C5S^mz%wB@F{R(BY8O3ru+Vz zZ8|%F#Xdg*)8bEfc%Q5_Z1IMt@Dep%ZhC7jgNc$1{nN8wUxPHf>O6gqx1t?W9GZU+yg=T)_WNU-nT$uM z>*Nfp4*078`CILM)%}~%-wP)=nEqtR_h9^grpQh@I{DGsl+hkjSnx^J&-m#9uID8L zjw}CP2ae0W=O*6&{w%%aDQ+P+9&kfW4ddi}!-D&v_?KpM9*8}7!NgN>f0}FZrjjq< zOnWUPwQwfEnRI#&_>2kMwiCUH%I*WQx17Wx{s79bo@e>MFM`Off8;hN)>n z>5kK>tH>1azh*PIKb%~5NX`X}C}_cA@4uZ*c3L=_Ag_sVI6+Z3obX;=dtvd5e>|O_44h7o-Iza~?6hzg!mF{) zX=tZ!Id$O6pzuPT_A2PWP_a*5XzwRVHkDv6}FzNm@9_|SG2gxPS!W|vsYenZfw-e5)-V6=Af4@;}YDPO>1r_qd zZE;T)->W`8oqq4c!C&y69XW&nYX*Z(%UKk|!JU&dpVmZ^k&ymDAbA)m_<8!&aRT8P zj?@2iokzawA1?HOX)#bCUkt`JIF0I(!Y9_atn0=z7p{8^RxP&G{OL?=h^_{k2P+&C zpUKO?F&GJs!SXy7-*rqH22RP+lyfxiGdv1etA^9Jz;XbvEW-+M0!Fh2E?5` zZO3&~RhSgm?aQanf2ryK*Ey2YQqq!?oNUD~j^Ze$U*OGWs`vgJPzcf-<6-r=YJ}9w50J4hpR&V%Rlcsp7hw_ zTGCe?6x?Y6cXO`uT;ufMds@Qsp{C$*f|8A^Sm=cOE)X4!ufPs`0Xy*S455R-emLcJ zF7Nrp<8bvnHjCd91He63+UVe~AtiWhx%?a43sk`HnAx+yHafAlbjN1Z1@rMe>vC+? zw2ic8y@$bO%t(PtSIg(d%whV?{q(6_m5$3JaXYUIQw|MP%75YNcjH{Rk2)V2^e`E) zk=2Sv8!ueE!yG>tv3MZoxtb%gRNyYI6=Dya9^-F@u(urbKb$lun6&Kl&2;Q3dSm<+C8w!z1-CWSeebr$5&s*W>+X*}?E3M-b2L#@^49Nt`6hFD z_pJAqiTbm9;4%@GZV0~Q!wdp z-r3*ak=ELn0~EN;`L<53W0wP(2QN6d7JnE_N4=q@*U7nVV3*dE*Gb`L7(jYPkkwCM zTCdMw+tqBYTjGTJJ@p~D*M|cIk3E0P5L=_ztu@!`Rs%==b~sVQSpBaDN@C4}x;2&- z69q z;kL&V`h&P{9zfu;fert;#NURx`Tz^@_B_6T>8D}JCIH^H!PSTyxbw)3gY6s(-e_x9#<~<{>09VxDK~U0?yskpLoB-! zv>5W5!Mum`cL1;ZXqD8p5NBI^>_!~_~HD)bG~I3t2Gbzs=1Sxuf7_mi?d zps3%vgHOY3t-TGju~&^~9{Ud%2Z+ys(BXf|8G-$p(R_wem66{CY^3rnHgW?`0R#4= zV4?v=gFTtmz-B?m2q?2YJtv2Z1jXmOljAGx47wAHRW({1D_LpA7)qTUywJUk_!EvIh>1 zqK~rpoPp)G)f9}P@mYYG_Ln=3m5cY|0g5(Pdp|jMX7BM*WzeQ$3(hj9KiO8eMFqEd z`KYNpkpKErok6k^zQth{Gi|~CibPe;7i2mm=0*bh{#?wKR4YmeeEP`cB8VZ{sW2p4G*+V|sc@UFnEC3_F)UI2 z-0CFgmg1{e>h<~Ps-awiUah%VQOdS&#)8HM^S6o0vhcSDzpEZg;z3(4K6}j^s|+6r z_e{y&6DR*X-QTO=%mUcBSS{~&RoJg+jm?cc6;^eaath@2u2 zIlDmQK)%zQ!$ZI_I}V*#1D!bDj(+Me^LQQ)(0|Yz?(En$lod>~vLr1C@$6p6* zg!YA3Uf1Z#e*4#Uoq2rVgD0;rb!G9{e{b;}-J*9*y+fCA3qu{O8HYL!HKU!Gcob;< zlWvQ9v3QB&{ybol0qapfu&9~b53s}F0w0rqhK7(0&a#xgoebt~X(>bz*sP=J+4Q-h zQy<*SMsJ6?I6DTj-& zIjZD%?J`5Snq%Q2>@{Io`y|va8#WBCaYQbN@4;4_|S4~|1i#taa@Ou+A@w__gudc5E$Attwyc^ax zpn5AjPUD?d&Q$MeACR}B94B~Xs#r@+E0>+5NrP5^8Iyvc-V-|-Ziisr6`M-gcy)}D3upo_1zWc{-v%{-2<%NeS*6T} z4~73ih=d=-Zyx#q@dPf|(D-x3md%^CZ(6-U9jjKysB>2psOE5s6eHkrO=}ur;_R6@ z8LGpM_JWUIL+RiLLgV54aV{QmynaA%;wtQSUkpLOK&Vh4v^*AiqRsKK^;S(hRq0l5MNAJyNWCqfswel{_!7A2Tts^3e4QMJGyC`?qb|X(_Rv z^~i=Rry6DjxH0q)vZ|S6Ojw;574IqIVjSW3iAT@GSmp><>?i=^Jqe6=18=;iW@qG@ z^777?@3xxlmJBOgrq1?&tNUqMgQV7`mvOOR01-bw6F+k-8^%s>MBFDne|8JV6+0rF zzJR0+@lIa=klRehoTBr2UqJUJZ`(2mj)J#sRqVDvTbWj9CL7cdU7AK{D?fg-QZ~-n z)NP=i;aKLhv&@oh>n@%C#;YoEb6oWD6;W`NVKW3+I`1+>)BHsS_~w*+7QSsIc^E6) zc_?`%F8T1zLo_|V&V>hvt#y7;4_I$XSv=g5C=o_9d#hp^ZA%Q*jvO31_%&s(gs=Ay zRIJx)X-Cs{S&pJwl}yO2Ik=Yg$3D0fuw)A{#F+T(f~X?A>;Z8fc!|QxG9Vk?a8G!h z#lK>b=i1g~{8@>6z!!=@gduzrj2#XQ{-)Ot)eMQpQPw_m?XC1NR4Lpx5*#Gad*}sR zDanntv#SA1GU>7yJO(f$o+3U`hJP=^Icj3(dW9yn2MbuyBCd>&Uj*uA%AS=8VaApG zmzVT>cjLVWb()8Z#(?Y727q^FF2qfbr4HcKckM0aQib+b@i)%k`>{p?boD#Qbp>Pm z3vNYO^*3dWP8?3E!V8bCIWB*Z&ryn1E0dEUwnp!{Hv963?-@+}c=xx9p@))lRq~s8 z8$LaL&+Ch!6)j4YgLck5blL0Dkw;j1`Qy39|Ha;UfJafaeSaolL)e9o5Ehawn+2qb z(z~E2O%N0jQNV&C*bq?ZAdrwoNGBj5Dn+SMq@xfK6{I7*sgMK+B&26&H?!-0zcZUa zP*m{o{a)Ya60ZMFc6QF0bI$$0@6+#-fP1J!_IJNOKOlK__^e3wZatpTN^RC#_2}@# z+E->x3HHyJII-9B4+OQ^Gw9;$!Ixj%^>WvsR;~MYYK6C`@Zj*Iuo>au-pUKgY-8sY zgFZVHbYSbM`SXGoOj+^X(rMoQ=~ssBdcAv4ucwAhof16a?ufO9}Q)%1Qz$uu~UZ)radU>gvbQb{0Gh2-OKLQ_xoa2)?xIj-}FAU{3J`w z$=}qsnhtpR3|3ocOWu?bwuD#BN-;|VjVzwupag7?_peucx7zOC;Q6Lm@%_Nq^x(ti zHhlj6%GJS%Lc}Y@O0%trE1M%Kr7Xx*L@m8~lIfW%sK78}uKD zu_OPlK2)meeoUH~VA`No!&4MpUK8t1XC*~h2J_42m4kxS>SOiu)o!eO zX`;L2wfVD&&pr9l8-saOq^I;&rg>h;aY?hHEo@fP`L9cgW|+?u=H-7Ra>k75 zEOhi#!*$VKuPEXCI4c@wTH?1b)as|AdQ>bO8?{EYxnk~ooibNX>Cl1NX7?7N=m@m*LKHjTfP3-0CrZg z7VP~w0ZB>15yQ}wfOT7w54^MO>y&`m=2;O*VaWjzNvzC{>eoMD*qWze2fg~r&VZFU!~bqrP?Hm7$c7_kB=%GTd8qgo8lKHED2UNdCg+0CfiiFA8KN^ zhEjKnBDMz9Fdf@H>S?j;ZPv`h#1C&Qd)qUx=VvT?djS7A)zpUuSYD>{7@>6@lT4p` zO@C|Vh><}rjnzk#rzqj&tvSjbYuTN$uhly&^1STaXfX?&QzM zHa#;vJ~$~fIhJiq$pN#IquC_jy?EMFJ35f0MlIB~FC-0&8EzRayhbszkJ~6nNU^Q= z8a?yf$k&4-UKrVaXlHMqx?*hBpe;)OV!HkZTNo?SS$W+~A2%P-X^wNWRq5gS@v2$Z zsf=Tr6WIF}3_V&_rmeI!87CJg7NZj2H9@U{hn>aWn)y3PTLG6SIKa9#+;z-N(<#-( z?ijJHxAbPxSIQbCONZjK&0(lmWGr?8M5}w%ChW3dg9Ce4MtX%rgiU7+ad-84*t07{ zKehEFo@QY7hSEuVDqGQDtX|wPBbC$eULrg--HIOWJVdHru(z^Iwj;&+(< zaF|{wK=Z*dgTCm`(7wfyq6oM#j(IuUnY->

U3qP@ZDv_^0|F+xqXZsO8=J#V?T9!|WG-ak#c${K8Umu&svJCC)>i z>VwsF)k^+SjwcwGn#E({X31YZJC$>rb*()umz|a|g{Jg`38Ueaszn>}?JYZ)lF1Tr&JY2)FG~`=}jfn0H=No;Ait(!PkN z+VKgvtX9HB5F1wm-%n=!ab!YZGo>QGRA!}iGCo|V&W%W5R-5gterjcYicAQd$+u~t z5s}d$G$PaS$L6Q{gh$L^WH!(TM{NzyXKlKAzKSyZ>}zNJGn6lELyXJJqI1ZCe6>c5 z**{nD!1H8jcX3+jj@Sx6;D?pDbw#qzBgT9dnzR|B=3uF*>Uj7g#uPV@St*Gruv8E#38 z3iMf_wA!|0+gE^H4Hw?f$Ecm((EDsWu~FV-t724+tIs4wCd9?g31q7xyVJwt#je`+ z$_1sP*sLBC9~ieJW=^D70N|*o4hoHk=6_&x`Diva%!=@SS^a*7Swyx%dBSL`s60c5 zEg>c;Fs6JAyV$}K)Z=X17n|Cnr$vp&8DDf*Qlzp@?HHi`thQ&}KmEs`sL?Z~B}B2Y zeS)gPN7fg5T1~je(y}OOdAwwuQQC^F?(+A{^DD=+^$x;y6-~Ef^D^amjU3ryMFEUp z@w@pgb7y^LeJ}ni&r&xz*E7qxS)I~<-%iE*i0Sk9 zUw?YKWh`DGJ?pC#`+NJ?T84bC>{_er{#-6p8XK1=U39h$UdgkP=CSqk#ZTF3&{XY8 z)0M5p&D9r2uwQGW;;%MUx|uGV`HY4jUPIy|*%(g$Ae0T?-cR-D^k!F6leXK=4YMp~ zDD@MiyYAe+v@fokvQG?Zzsd3rv#UNkX=5l`#O6C~Xz`|#-2KN)2Ub4Ue2V31M>$>N zDMS0=QCHIa+G(!;kP~Pa^o_~%O9*CzQuHO@7`0hEvM)7-`m^tEN2>wv}~I6+REom z5BKT);55raAz$_0$98`u*tl!f=B+8F?aN>2H{J47*h?=CG(G#)mT!_QYVG>Q0VBj; zyJl_Ly2G@6mHUYoc)~|%?sf|B^%mvYR?n}M?yR;s{y?_!V7k&zc~BXtKAhKWW$^Sk z(clSvk2N)MA<0o+j#FASNKkutM|&-r+HY4&`csCJv%JvlrXkU!I8)5R zH^LWQ$`)lSt2+?G<3;>W`?M>?(I;PTPTYO^`fXEl8lkDV*6MeK5Jvd zCbjpJFFsnDG%IdlVEp2Uq$!`WclOJG#OPZ*C{9s#j2RIT5j8Gw#`u_s58m=t+N;xz zYHej39x=ZV?i6dQU#OGRZ91QBEJ$|yskq?wQ?Xz)cV@1$2k>^!YRYjhTo&B)ELqJf z-CmK(sl;c+qw4+mtO#T>EXJ#i;{Xm`uqmaUCyB=G#bVT#p2uHcz4J{s7F{(r7U!eP z&2PA|m^$7(e2IA+4kiX*&D?G*4h<2hyWz)T@E4w!{suo5rLS>Q)~flju)bs7oM03l zEP~hTg)<9iKstmQ3#AHvEC#s!SX|m;zVsyDN*q~OHAfao&F9R$ZK1T0N7_QWn0wk5 zZPY8vXyUp(H`2^?`@&nQzdt`r-^UiZg~c>4($*EN9G|wf(3MK96*9XILybMmokN!O zK43~%`JTS5Xll=2Eh~+P>Moi)K8e zB~tzBBV%v#X8jS(L-OufudjaGG{9^2Nu45TZpvdUaSQM+tu87(bY^bm?l-+C?LWgj-$=A35Sx@|N;Nl6ah=hZMV%a>ko2+&^W9Ph+*^ zV*Q5?i`MqeUgma#G*)cbVSFNV)6gxZFBdPxS;||F^&R&7d!bR$Y^BkdvVN}OwR3?| z$@|#sk$ZcZ`n>pD-%!iCYQJ?n>UK!#(>nwmXc$5_@fB2Jw=^Q zBdyCPZ<>7)6y zwgrnGG_P^@pnKXnVuWV#(C-+bU}1zF|b^e=r z<@AjhwI(Ft+c27_h(ft^7DWLvK5=LSI~-ti!j}q8Yim^)sEVJ|6^Zi`~BUM zA0Mk7jAb_byPr@V-1&rFeMEVL={A3*wKgRuzHCwM7n5?@{Uzdl$+VnyqmOdGHZgaK ziMjg9soPD=mHu?QiMc2y<`hZH%ym$rmW!FW{paLtrs9H>{W1E%V)h631j;~Lz^mqv z*|s{fmCdug)P1wdmwxf)ONCAPEr#`R>nc`Uk(>};v6AhXstOr3B9ASzIZ# z(iNY2J}rFO`;6wyooPOEeHL)yPKwWNA6w-rm1|b6U%6T3M=C#Bc}(T0l~-0?Q#qyb zxyqOE_-gYl=Uc(o&$qd6Yu`tGpY|Q(JJ|OX-x0oJd?)%w`zH9#@tyCx(s!fpR^RQu zCw(vaX89KRdH7ZK3-qhy*TC;Szm|UO{W|+SP-uL^+Z;9Uu zzx95b{ZjnC@!R8f(C@V0CBH1cJU^@7FL;oxT%~H2zzMS_Ep|^N$Aru*Gm)%K05j1X z>|>0JkD+(3RK7mjyg(lqHYbXXNoaVWs%z8yd{|;6|AbG!MdtX(z|4las5mhfL&jBoAH-ferwPZKKi`s64A8y@^ zP_h*vc>8x^6TfVIF$w9k~YByF!i<5(NSNDAIQShv!q@>sdE0i|_5{0`d zwL6~Q+^*l*oESOBq};=3PgmW{4v(?L!EzsSGz~Ss39Xfm$M(JT%*J5+z(pq|efU8@ zVyWMRo~xUga4*&szX@Y3hOkC@15TyBHmVOR2437+^UM(Zw|Qo;P)^zs-c+T07P?(M zyT^|$)e71w+~6(o#-h`y7Y}cHtV7KQTej}@{Qh&n1{Tlt5R2!&Y^paLaJRp|8uD>i zoOf*bC3BW6i(f?(eCWynrl(#S{%n{f^38c87f$n@QGR;Vi{qw0<86p;V>T2;SVXm1x16Wiuv;7?TZrgn6P_k&!Xsc&wZrIXxua zvPZqYj@nE&Ei8tqUc;TQm|d&P`u+8>hVEwfMn;2i|Cc)tm-FQ_Nc@AT|LSNJ4ou1POCUDqA-?fU@dRZ(fS1N@V_wHZ2YK3LUC!depY5Hc* zCyN%9E+?PI%yDFy<>W(`vz$CRgXQGgZY(E%V)U@rg4c(>v+yYz2^=I6q0N)UPSS-j zOdHEo*|sJ7Oh;x6Z9df!AM$$g^QLBx^<$*0?bPkh95CS>GQv3L2rJLGuP9x4Ud6rg zyo>sxap0S)_9a_(&-(K7gQo4DO_`BknW$FOy)$m$o6njIiQ+7Qx^A~jceL7k;my_N zJAb{}d|~NobIxGmSg={RH)Ak;c9O-`6<;)l8~dd%*#rJ?Z?vJW-v1MJM84wQ5c$ai z=1JyRNy1;C=DF*+WgO%1;m7*N^oDrvCE5Zc!_3IAspA7U6eyhbtie`c=0>}2iyVjL zecdaO{q^%>NLzSppsHWpQ>n60Y2dANUZT`eYAel6O0zt*w%Yk!F9GXhtFX0 zAuMWgfZM^Vh=cJoF)_=Q5Y^X9k-o>}!ADAvxANRF#%^1womn=+*ljEIxsjIfYS1^T z?&9O#s!{kZ^HEgo=nDD378~wt=@yC+zF9Nl69NzJ)jhub_-hwUY-;Gqu^(d&k30EB zisjILmV=1VyeQUYOpj(Zr2AvK?*~4zuCaU$Hqy;kmgDcB&+ zWLjw!Cxwg=Tdr<%C{yCi6Ps>1mPzS1Q;}?;*Q@MMo>8AsUOTXQyfQ?spj7Zr-?73t zHaT=*ue>db@mRcw}hst6n&vO2XmgM76o` z(?yFuUAkz@+i#Be}TKM|>Qtj>7G-GEEt! zOCFc-*1JJ9A8gfX*jpbi9~bPy(q(^^8EiHi_OK~HEJpV~^3!tTJ0GulZ?manIr^)t zx?w^4ksC|Se^sBjy{*lEovHC?9p2X_tFmq|{D}(tKtFv(4CkS3;cS?D_3n|1Pn6Do zFitT}tz&ebX7#Dr$2eZC`bf71)A6^6`pwYP51)lsmGa*yy_Q;*C~cGXr+oNfQeYBO z{qaFDb9D*K$HfMZOC0jatldkLmH|qyWevV-YzhmD>R^tVfMds~gy`U`>AN0hrSm&# z(}0k!n_o+c@{TSa7Wwq>(C!>hbzsMr`#!QHF%PI6PZi1L56pWbWBtRATa_AF=N04W zXLj~o5KNUEH}_BB$R6SEGpN(p_T6d)F{J&Du|wkX zTaE>t*?%VM$1P9xXx^)DgXzIc?YwFH`S>wKnjP$KOP!wbWRIYlZTmKS@bOJ)v}QTZ zkHe~P9l>E$QDI@0-qG6zerNI-!ud__e0<~lCeB+dIlpP*+_i6SGhNuFb=j$=hKlgG zyfTG*u~k?cs2AoqCmI{k!98q;bq29oQZ%UJ@iIMgO5_5wSaYeZ%`|Yf)JIE7&X#(2 z!raN6Emg8Qoo;5vFnwt!Q;c5R+_Uhi&JZRJ0{m6C)etdWZ@BGH-R}+V88qLm3rCr6 zxO6&$ZZ0aBg1{@2n0g(o?$J4Fdu>tn2o=c}Yyr!GiA=?Dq>=;ffqtW5$>4=#zPAqYx1-xy8 zQ7N)D>f>mn^D%v~a`<~6SP~;>E+x+WAV5rfM8ynJvqQ%$d)3tI^=?z9Tf#$Th9pLEAlyevAj1sbZTapM z{evC*sQQW2TYdQYpk{Zt9$5_@1#V?4(Co|{KwVC_O8KrrUvi&MOk9!sd8i|ETK3N8jI{@A(kq#-w%l7s zsbERmXly*_B8w!aUQ}8twXS^GQZ=j7T2m#~Vj1`b(H>{Uh?1TiHki|#9_;wEs-Hx$ z1nc@}v(tv@9Jd%7$+24J6V0mEY~ymhqr39~-K~usAJwxl6NiC@4~*eaGeTzLY!Qd_ zVs%K7-K$$|)}&qkCZew*&4zNzvgG^y6q7hlO$` z=Hnc_w9)MIr9Nq%{xTax4BF!0Ft4dm!hD6k3HSOh{6=q3O~xiuUL4%dG$Y@pwcu$zK{++F+pT7TA!I>ckVO3D7h?N{ZnkUq+O)Hm=dvA_7^E8G< zx$^?(aEl|VJ`8!~lNU^FAMYn9W6*WysY$zLUo@X|+hK>^iStvbEXFyDobcTee1cPxED_LiLv1#wot&cxYyPIKZfbjdw zF^xW6$?=AySqTPh(f$?|?X$0su1%PGAw7%s#lcu2A-Di#XKqM|Q#^z5;|~{nykP1) z!`TCz5Aod2C)+>PwWYy5t>8X$&7dVlG(`x%40tLbltzwi?(| zloVsY<@p9N+i!5Ui?@x#9!?bFC2XJen$B@p+2dpb+a73M1kRmE8-ry!frj|F6PX33 zlixnpT=j0+;C_Q~1jnx(S*<+H!%44k7T4_M5QPi`es*%TA(2&z2H_aHfa9~0w6pFE zlgvp5Y@tTR&1Mo3_B_vgzyyPA)G6%ZZY|hp+U4oanO2Tcx)=W2Jf? z16-Fpx=5WpW=Riwe8#mA2mq`3zFq1pOJJ<)2acQSET>4FJ^dtu$6kJS@q0tQb6Azf zbNr@C_wdg49`mJv9#2b;cs7$>@~G%?aDG;6In$-eEhJfPBK4D7xc1AZr55t5t{mA{ zdS3p9aNm;mW!kll{1MkWk}vmt$#XsFYpJfZ)76oq%IZnGNN)JXGevuk`0M98r_dH<*gdB^d+BYC%S|V2=+fsPk%dt2tj)%-uaOsb*kY@zX$^y>8t-2cT z1ozyi$+ZF~4}!G6ce(ZoUY2rGj^$bSiH^ckS1PB+`O4i(xGMN6a8O)b-)r0z{QW(A zFIi;Z@jbE-+}7Yq(>N}8E-*+kYF8KKCV1aUx~~Ma&M1T*ae0aySZ3APZk2)9l_J!ZMnbH26UFkNF(G` z(j>0+!65Ls+=ge{NKeVaPU)nc@=H=D(3L|0p8-RppQV}_>{1g6$X?R0Qg}3%YGNNB zr@VF2byp&X6ZYjq!pG(3h;JbGFG!W-5UG-MRjMUrkj@EGE$oAz#~^96r$rhqKPWvb zU6G#P`iY0P)B>2~9GBDMEvc0}TpHowlsajMmWIlQ(DBu9X08-K{+r3oT+e#6<~@zE z&#idZW{%yfFAczcJu5xo8X`cM)$w>rs_F4s$@MA8!()xq#p5YgF>s3CJf}-N;74nZ z2T1n;=?P8-d{K^(y2_i7;ZAJ&PRUcgMA|-e{Vd>FQSua!k0ED3UOID(-{Z1fs^HlM z?!YyVedy?GQV)+-*xxR$2#-YaVUUa-q0}*-k}v8Z^!;ft6!ZX3fL7pH@Fti928zGs z0n#*NH-R!8&AEZ^fti%~7~UDpZ#6iuu@>^v%a2HvdCtglzC05M>hqi*&(-6(_B{6x z&o$t=`+2Sf&o$w;osYuB?i}3stu&Ro$4I^NGj%|1>VT@$0YAcrR`8)Nd}sw9 z>QaVL@F5Bw42KUxko`bTIFuwkrz~EUJN6zLH1pCwkSC?(O?T@0t>4D7suc zA>B9$v9eS}GD-oGspJ<~Du>O`!#`iiU#cbrQd;gX9`My$GEgh|NmZrlQjlbpf``2H z?oes7_PJgA-1W+ck#9-gYoCX-&*Q`1d1;7rR{KoXKC_3v{_0DTZTQF`!=+!ur(ABt zn77`M_1dSe_E~M@JFkq8YiOUfwa*5l_(5*0eYVs-+rRtzh+%Rk?X#Qq+3Vdgqu!PK zYM;+)pD&CSpZRI<+M9xKXuxjvY(urN%*p#<+VFyKfSa&rJt3tE)ArnQd_B$^r+Ma-5o5wCXM2} z&1oFy$%&)d)8k97V@s~1k*s(VM~8~5tS`A%{MC2wlJAX6uKh}`6HBfOIYU!~=P*v~ zy1eANlzX4>xBC|lc_ExWE1#3k%RkCL$v?{%@6ST^KrR3pHHA|^}raJGLq~3GK$XzasqemL+4h@ zdFYlH2 zaY*a|j)*-ZAC`~EKiuvfPcP=_6!|N8r~I|NOa4awR{l=jE$_MAJ<9$KEU+inDIi&s zwuHXQQjGi>pOalyK0P=-w+dI<#qir#dJq=9AiapidO?0s9xT5kzbp@tUy+B(*LX^% zL`9e`NQ4tq*zp+z6nw_ex*&LyxXc-nu(=hGoA(b04>fKRNkoH+q`>glo(04|_9l>t#@77O| zdM~XM#4pwOCZP!d-BX`>c5-V;jt#)BmB*sVvB5$^6+@g>H6tj){WOK=4{v$))ch%n(Vd4%T~U5`Qhc4me2LB z?cK$DiucY6)haw!VR3~c`hohn`doeGA zj?Z?V)XFU@_pcmNc^4}I8Z-01)c3rf-mjD2M89=@XPKk#R%K_ElU1_(JvisJv40o; zf&QcXBm5WmAF3)A znu~)w1WyUxY4Nahu|!zDw-ndxR5POHfttm&8r14vE3DS~+8t`|zNgPUXYaAqXo%@CyzWZQVy##2m3k@l1M0t1|3HI*4Kf;zy|>)G-R_OLcV8o^QR_y-8!c{h z`aYlgy4*MMzIFFqzQ4x(eeaLDKjr?y#`iWJ-1ux`N0Xo?eVRlx+1@0-X@jOOG)->0 zubI@Wb+h5k7B@TH+^2b$=3|>LXuhj?VT+&^{aQq{*xn+wW!0ALTgJ3p)2eB!zO6>L zTG{GC>uRlgwGM5)wRLuzI&B8FNocdXjiYVzwy(8a+V*_A;C6%CEpB(Zy-)i`+fQk~ zvHj5pdOa}lf#naJ>`<}8BOS(fSkocBV^GIF9V0q!@0kB!g9l%DF!{lK4@sP&I{KkC z4`p-;>eQ!GXs6|!j&`y=-0k5}56^k{^dmu!w0)%iBhNkZ@*}T3GUAb~ojp3=*SUS? zE}bWK-q`tCmkwQC?h@4{rK@k(Ze1sLJ=86r+r(~#-HN+Q-MzY3?B2ioLh4~Z*Ji1T zD_8P&6-(7!*Q7v~O}fXWNOk$%5HxkEQVXsvx%Q#e-p_Sb8sI9B2D!4N&$<7D>u2ex z>#B6tWtXn;dk%V*hjlG*rAb!4dq_q?Rs;W&?@HC)Rh3*6NL6`Pbyp!d$(2l6%JWFM zLdvg_a*^VEQd~%i^GPiS9lMHU!pL=8nQ~p)_4Vj?*LP*f4P4peqbVW#@MJ&oGe`@4 zjnJ8dzD|Bc4ArGvdOmsNuYm7X;7Ojd$+Jxg;yo2e)z73VUAt4=bxsPrgRF4p@3XhcNOtoRg-=ntav}l z@&{6SlwZ&C{W@>S0lC<@JgK@UKdf3sQfzcNv|M-M>A|GXL+ZqDgJFj!u@;nkQ}|Yq zd!0zpVD5@ZW1tBXFztp7d zllR#PeTC2&TFDI3-glDFrwE+|SM*Yj>le7?LI_bi6e6Rzh0;gOF9w6epVEL{pqnOV=e* zDl9@S@4U!6FQG9`-d8|=g>IZ9zcRWZlV2IB$s*5kL-dojJ*8KhvTlj(Xy@83JwQ9* zAxf?jsdwi)i#!X!tgypGp|wJ$A_kGStdbb4#E?r2 zxq??xHu{t1Q1u({-&hUBv3#>oVm49q~$tN6Cs_H zwO~pS=_w*)j+9M$b7=JyY8q;%y;_MUDw9h;VCHY3DQ>0;mI_S~7E9D0PI}I6Yfwm8 zDWUIdBl)G8n%*#t)$_!l!;8QGXkDNk1LlRm&0{P zuEa=&AETRsN!47ZNj7Pwr>~WO+q!fm zmwkAnTUS)xTv$>9g}hy`PUuPjJ@CqK(ofV$l!+NR1p{|JUm*F?4z$b*SI)Ih#_W#X5W9}pD-*jcSEB9~_N9^}%GzxOg~kYbolgv<7BKrZ z8mdV5pr78P$!%Awz;!c!2ZMXizoy7q#QG3Vb%LYr5;#rlpKGxXqO=C1%?Djy^QJ|l zb&+&}mX)vvKe@Ie)e5||4rvY|%@)#J3&|cVDUl-5orPpCBiYMxAgwT8-Y#ks!5hIi zVbO);(s-L_d#Svol(#<;b46m-5wkZjS0uI~S|k3XyEOUhPQ z*h{20gS6%nQ!QfhC#Jeu+Nv@SVuE>fU{_tP^+;!ZSk?e$hjt~l2YN0X+l}@>p0$V6o_>wkN$VS=KI5<2C%3ljHxe)K5wSf zP0HeWonCP^&*w-lBY~mFQrJZi-d%pSJ1oCTH_DHio;+28g|)E;b?v4Y#nlvktGIvep zZmm{<6K;L7BL%x=-CC6B>;tZ2q*k;5E|c1ywbTk0mGWM&s4VXl@_2yMIte9spGl}I zVx)&SD#54PlXO)l$lw;^Z&TGD1{ zhg2V;R66lK(PkAX6LH(iq%4O}r706u(rqChfb;H@Wos#`SW<3 zVe@6FfHB=dX(F|>U8XG{o0wCp|Ldv!&qpo)jln&7`)@h?UFC51Es?)xbo!qZ%iWEX|6hIj zpEJV$Z%TeU>+#Pilk$w>WYE4n%c#^@Ms381Xz7T}<^OPY=0BU;`8V`mnGyTHTWbGv zvuyvyTz1a!pEY~`}i()pCTo4@%t)a_=w|C`J3&gad`a^vnp z-QC=O>AU{hLb1A>xk7e~u?C?#bDoc~2B8IWie=}TZ?126h~GQ0L#r#h^aitA>V9_p zG-EAEb9RTdVC_yzR#>(IgV;HHlALsWI{C$$YPjNlX^$hc*f4-Wce8~)~n7W%r?(m7|bUZm`t^X=DKl*;knP+~>P|DDpfyA=(k`TA#vy8CrEB42kO zs-j!RS$*POS@rAnOSi1rkq5CN>W^0L+}Zk`n@_pl&WtpcMgEm#x%uXYSiRhdy?cMQ zZs=ybJ|&i`5-hGk+`2!A+f3YzMci1XDp)#Eij`P_@y96=tN1KhirnSSs)dqwdHun= zs+GK_@*S4qok-`#YAK|1{tx55@#O!?x~iHbGU-Se_oA$NQNnG0RaRwdlU|hYQ`9E+ zQk(RUJ*gf1qzC2u*(2YKb>Pj}m)Zhf4K3LZ+lrO#gV+y!lALsWI+&{_Rr?_{T z>ls!={&}tP=T8V}|MhiVqGl0m%IX}X`Tn`3QCZ`>jtIio)+aQ^yROuS{F>a`xWy4hAO*X;J>vr?rybmDG&d-q5k?R>Hk|H z?|w~prMp-KUV!Dj%1)8$*j@LU`#WDd{zrYmo4pOaX7hi$H|Ay!PxQVdtnlx}ccWjx zQw`bw@}KUBDRA$LA-0bgZ4x!o-Y0?8H99{)MaTU$C+h`?9w8Jc!W>6RnCG8xqF|3 z*hBqS`g4DM{aIF)Ma{r&r(eoxbcPTthqJA10MrntKn%io`;zgD(?HT8eDr-;8# zEB@zqZvOA>8T#+EPIA`_&DWK;6y(v=bC>6F-ACp7m7lM#D1}S)uweI6J2VGv*dg43 z+OG>WM>lGa?%1%dOZ_choBz5#nk-}hiI z*a!B51K=Py1P+5E;28Ni4o-lR;1oDb{?34N{C*z%2z~-TgA3pyNCjyioqS&cm%$a_ zApcJA3vjsH1yz7QFyhmq8o@uRv_2lY6ii;0&0RIR*d5&*un$mX2dmr)%p1cPJz?l403!$s>4Xk{YbYXwOJST8g^r6Uw3wQKg!=d!IMa}FZZ6}`ZVZIDGC-m zPiYJx>?>d>7zSPiuYuRW8{kba9K1z6Is(M=o^N^2cVIWzL;T-^yQnX&z`gw4i0gfzF=zss zf#%$A#kDobMw&Lb7<~4H1`~udk)P#Cyge|7%&!$1LMI2 zFcC}wlfipn3YZF}5hetLg6SZPd*L7gM1m+V14M(FAO^&OIFJAmK@yk+lEEDCK9~#U zf%(Mw0ayS&1RsHq!9uVIECx%!C*V__Uka9i<>Y$>SP52v&%kQRVGURd)`9hu$p)|y zYyz9X7O)j;17CnI!FI}R2S@>5ft{4$*I*a;#&t}tgBGzfmi?$U_M_U^k1G7D+X}F~6|lV((6(H(Ef;MoK-+TBwp_H$inisVZC13+inbMC zcZ<_nZOe`1?Hg5&Q&x1{c6ZkP6a3 zI=BQbgDb#6-kjhU;KJL71Y}n(8kma)=AwbQXkacHn2QGHqJg<+U@jV%iw5SRfmSro ziUwNIzydU|01Yfa0}If=0_r~vf90Psfvhl=4)F&whNAsZaB!66$QvcVxc9J0e9I~=mZp<*~x42O#0 zP%#`ThC{`0s2C0v!=Yk0R1AlTu?z~9LBTR8SOx{lP>f|L#xfLR8H(YU4UXC1m`$c< zf7|-|IaiVVJb0PD_z*CU=l-NVm(TOuWpD+K4aC|g)a`3wSqALNfKi1ost`8WVbc|u zbOi=ohe20ikFYSQSQrHhqhMhaER2GMQLr!y7DmCsC|DQ;3!_k%uZ2k&Few8jWx%8i zn3MsNGGI~$Ov->s889gWwq(GT4A_zZTQXov25iZIEg7&S1GZ$qib7aX2rCLY^SCHIwBzGOjT}N`)k=zv| zcNNK9MRHe>+*KrZ70F#ia#xYuRU~&6$z4TK3X)Qgl!By$HAqELsYognNfpX3GQ#u{ zm`9vxTrZ)~a{CCa)qS7zvK-_2xb8Jt+%+mLu3XM{O_kAA>lxFlj|lWNMVscDmexqF zvDh47z85c(6U|}fIP-$wdciG&9}MmlJTN#c*lHI9JYv4VP)?L}4PJ=fZ ze9s()FYPCHOFaWCkx6Zlft9dh9qd?z3@pMGEW$M`K`z!m6YHP(J1yZ1G&lq8%s@Lc z(9R6BGXw3kqn&m%&W;vkphX#IQ3hI+ffi+;MHy&O23nMX7GfiqfyvdJOTk< zSbfuC=c5HqO3;a|b)pSUO0k$ybW(cGk~&tU^sH!tu%Ulu-Se@j`PkHaY-&E5;6xLg zXo3?>aH0uLG{K1`IMDP9)_-Qcfi0L{d&9&fnCD zcp^k2R5U_GBUCg(MI%%+LPaA~G(trqgf~hn60{;gD-yJ#AvQF`hKAVC5E~LLMxw1sNBhg|Re`3tp<{`v~uY&qp) z*YdGz`Pj95>{>o{Eg!pk|} zoP~t5kZ=|f&O*XjNH_}#XQ7u4^wNQSv|}Ib*hf3Hrk&c-j(xOaABE03u#a}^qXYZs zz&<*#j}Gjk1N&HneJsL07GWQYu#ZKsCKJ|V!kSE2lL>1wVNE8i$%HkTuqG4MWWt(E z^t%ZCE<(SH&~GdHZAHJW=(iR9wqje0{!+^dPju-0e)N8S8NE+~Eos=+A{dcYMz_;o zMw%3ZZrjmqI}FK1w{vNYIcP@}z!LRWZ7C-#5$z}ymZ-2qg(WI1QDKQ%(vDJLi3&>` zu*5;_ry_kP(s!c&xwN5jX+!1GhRUUN=b&}xpmpbRe=5%p#KHve*sKUVTuY< zRG9L2w6E^O7W}$>rNR^yrl>GQg()gbQK?N;+E*%!QK?l`Sfj!km0DGWIV#LiVU7xO zRG6c}92MrMFh_+sD$G$~4)ZGD?%G!>%u!*E3UeGV#{qL3FvkIN956?PISy=)0~_SP z205@n4s4JE8|1(SIj}(vY>1PQ&M1x6Q(#|iUX!NVTu!`T!bk* zuqPK`$_1EmjGDp*Thgg1il`}6Sd&AW=?b>x3by46w&e=8zmUsA9yDcF}3>`MyvB?bGEf_+KB zzHG<7Y{$NA$G&XGzHG<7q+nlCurDdtmlW(v3ic%h`;vlvNx{CPU|&+OFDclU6zoe1 z_9X@Tl7fA4!Wt*6alje}tZ~2)2Mlq*4kzqzzz!$uaKa8J>~O*kC+xTgJ1)YGi?HJ& z?6?R!c3@X_U{`ivS9V}mc3@X_U{`ivS9V}mc3@X_U{`ivS1!Pe3ozpt%s2)sj=_p! z)KWIuZZ_I(Hrj4BSaK1Tq{EVQSdtD)(qTzDEJ=qY>98anmZZaybZV+1YN{e?sv>Ht zB5Ep?no6anQmLs_Sd;^ca$r#oEOJnD6;X2)QF9eha}`l@6~U-0FzO06={ju@!K`$c zl@7BmQi~N)ixp9e6;X>7QHvE(ixp9e6;X=`o0X2ux=wrKIt)yQf$7pB7|1y@Foje| z%|RD>gWcd}cdn0u9x$jUSGTPy?emq|DlrZ##sf;nVeK%m00w5mz-$;OMsrj~b5uri zR7P`DMsrj~XH-UKR7Pi1MrTw;Q&dJ%R7O)&MpINqQ&dJ%R7O)&MpINqQ&dJ%R7O*T z{mO%hc`z{#Cg#D!JeZgV6Z2qV9!$)GiFq*bc4Gp0Ffk7%=E1}~n3x9>^I&2gOw5Cc zc`z{#Cg#D!JeZgV6Z2qV9!xB?UpM=QqHlO>e^A&f(I32>y}I2v?cIzilpUwF!%92$ z$__K_Fw+h*3t(me%q)PJ1u#>L)n>!YY?zr1GqYi4Hq6Y1nb|Ni8)jz1%xsvM4KuT0 zW;V>shMBjH6uJ9=Ij}JYHs-*_9N3rx3yWc4F)X|Q3opPzF{YaX3v*y$4lK-pg*mV= z2NveQ!W>w50Tvd+!eUr>0Ty16=3)cwu+Rz%6_a~XN7fEPAkzdORfj?kaT_Y6YC4x>=Kq&qW+esyQLkh2gZX5U?P|VCWH6D z6fhM`BTNVg1=B$o_rgI0hy+n!28aeTK@5lmaUcOCf+R2tB!fBNeJ~f$&VZqI7;1;1 zb{J}hp>`N*hoN>DYKNhA7;1;1c1EaGMyORrs8!mQIkYWvXj|scw#;EPT46L=VKiD{ zG+JRaT46L=VKiEiwt+9emtZ?(v;(AoufR^q>uazJd_(WI4mDg|KwX24QGZkWQTB{N zQ%@kNLrCh7W)JGq(`^9mMTU*I-Uk|kCZHJ*wxSi+*0gup;9s*X`rn>i9vxguq>i)$ z27=q^^Jv110b{{9Fdj?*6Tu`f8N3IkfT>^_?+F2+U^)onUO0#Vksu1p0MTG3hyk%6 z4kUm?kOXFdWH1N359We-;BM^6r#!zDECb8Q_X@BQtOB2b)s({;uokQX>nW2BU?bQB zHiIo-E7%6U0AGUbl-mxF0=@z}DZ{V9F7OTbma_Z~?54L~2h;`iKz)EbX!V|=)q4sl z7IN~H&UFweat0p!qF;^_g>@JDW<`otq-aHoR-|Yx(Kjnn6thBmkzxT-Jc<-oA;sU* zH!BjfB0(z>v?4((60{;gD-yIKK`RopB0(z>6c+r~`esFfRwQUef>tDGMS@l&Xhnin zBxpr~RwQUef>tDGMS@l&XhninBxpr~RwQUeg4Vm#H!BjfB0=l#%n0p8f_stRUL?2| z2^Jv10wh>~1PhR00TL`gf(1yh00|Z#!2%?B6bT+hf=7|yQ6#tu39dqdtB~NTvi(3L zW<_Erk=RKjW|c-Fv6D#bgVfF-wKGWV3{u;Q)V3nEtw?Pv zQgfhp4)l(G59M0Oxmj-M{fP8_)TH+^(o02poLQ;qn;m@80*j3{+vboNeLN~4Km3>XW>f$?Ahm2RO1xy8DARI)1NDu{P zfM_ri#DG{32NFOcNCLA!GMEG22XnzZ@F`ddmVxEuWd&FXR)NpJYVx)QtOe`9dh)pe zYy_LYX0Qcp1>3+E;7hQbve*Gqz*k@=XGl)R0Sw^8yoO5R4v+bDS(R?k7b<)Gej zP;WVqgbhj9kc16M*pP$`N!XBt4N2ILgbhj9kc16M*pP$`N!XBt4N2ILgbhj9kc16M z*syvIS{V*n84g+*4q6!wS{V*n84g+*4q6!wS{V*n84jdoLuxjpW&aD{>y)O^2X}5 z$B{*kBZrnop*A-EJl8v&rFx5Wi~u7^!zl1Jcn7=-rhyO;3Z{ek-~+G#d=FW3k6g9G3oI0O!ZBj6Z$Jq}KQli(CM zP1&3Q=lK0R_!0aBeg+r7MUV>8KsvYtE`uwe?A)s8JD1L4g-^^LX!3uE)S}Z~~kJr@(1&23~klFP6uKm&b;e*S?wfX5yQP{XjZOK@WVf zU~L$iX-`|L1EtZCHeE0N?hT#v94_6Hb6=!XBt5oB+{;6Cj#!0z?!1 zu{U8|e-kMm6cDZu6!ARmONsN@B+lHB?0`Mr5+^FiO*tQS0PhoPnY8hGtV1!@L9Cai z{lm8(SyiEDORy2nay3vL1c0WTo;v{R zCnPeA7={tUFfF~OD2WT&{dU}M$NhHNHw)h^e6x^t(Z70*vC3cf2O4m%A)wx4Y}3K+ zbUh63L76nn zoolr9(%@PeZM`&F8dEr&Z@vzmwP7o+Q0v>dW% zIb_jt$fD(tMH?}VHewoW#5CH7X|xg3qzPamm;@$+_rMe|6-*<|As`e?2VvX`2N56= zM1dI~8q5SSAQr@dc=DLQH4!9%Ss)qA0q=vkU>=xHx;_94z=z-?@G)2j7J_ zJVw2EjC%1H_2NP5#e>v~2dNhiQZHVlUc5-Xc#*jnJ2k$Y8sAR)F^zU3dC~e-|Bh1s zJ4*dOHA?+&&*a~p$^TBzM64plLm6npIAVLo14YkcHGi)GYr#6Oo%=gL3it~Ax@S?H zSiUEg@2TU&?8#MP$|0sR*l`s*u42bk?6`^@7c&i4iTx_EUnTad#GXU!ImDhr>^a1K z2K#&l`+NrbdhS3C!eKp-2SSiUn%{~b=XzlDnh>6KjJQ+tXR1P#Ah+F z=942w+4R#}`h$OrvasH{^Z`=HI*roMl!KFRZir9ThH3Xo?>I}t-To@d2kuECKKDCZ z>7=)a{c6^zCf@30$?tiW;q_Ln>ZzuV^5L+lM2!s|y z0*ZnPh{^Rk=l}nE|Kbf4mpSRZ)BoOkX3m*!&dlx1KRwKkJ)Xk*J;-_T9#zqQitj!{ zlEuj=CEg=mnSa{s3b_N+vCsWu?S3(_HL-)AK7Q=+6lHHgE|L%ZPYsVn+JfiA!6EI( z9UxJOe2)Dti4*2gYe`<=ej^YySOrtIKum^R*2UsR^LlY^4Bf8eMA5KAc~v( zej5AxhrT=AZ-MtM(xt?8(sF3&P3r%On!g>>Z_&OdoyMWpLJMNr12(KQ^!G7R2cGym zu{*IoqMK{nL&FSXm??;L(W8Bcd^kptw^0DfEDl5pq3B`|9iuDhp92q`0iqNS0X=~O7UdOr0~$r(-QQ*QEd zUNV==Sjz?}(C!h)_<29pzL)1`dQyY;-n9NnmSXS4-+QB3Px7;FY4qE_d!|qAyp(sF z3;pxtt=em!cT&HGf7_+yiN60MHV=c(uzeZvQsO#)4O+ossm%_Jm4xlU4-?VgWV-&9 zYN6nb#0sJtF*+_5T?YB;pW*TM*y;)q?sux4{m+X-v^obik2SHA+8K#ds`UzlHQh#E<|Feu@qWscd11A zgI>}ArS((u?ZlCOizCsDo7_)CE}zSVj~8Ky5!&^g4t<VF8d_Q*;{)vw-KG)>a)-!CiDqx@UCh&i9 zJ_!+aFXAwh%~Voi9}0ZV8nERpK3v`SVjuH#h55<%$@lG{9b>$>&xj9KO5t~=A@R+8 zjQvJ)Dju_oHa?!a_fB4_JvD!cUg2*Qq#>)aP4R ztD7ZD`ChnE*0B1vmKC&TSv~th4#}U|F5Ek+U0S5`k#b##ROn(|sg?Q|(x6Wwjk+Fb zQqBs{X6@Gf+M?g-L7l3HkuDw3<2qeWATu~mYZP^{^RDw)@vCFqbrRQFd1SSb^~oDp z3%r?HJ;=$&56c2sMBP@&E3#GgNuTUz9q=@3erKuWdAXq3ny&>~Nd1a+0`;*P?Dw({ zQ|h3e!0Kvzz^oG=WK+_3#Jp6`Dqf>Br``*ZCRr>?&|#iy!E;+=o@|qTSuF>s-zN9shj_6-KB0!~(rdny zpUs!@yZKVinJD{bD6WMNYW{_aFZW7!n6bRju19m!>H%XPHG^+{{TVeJgcn2F?J^DOMY4JnY@ zkwX3h!X0?wPNbOi+PgR}?{1`ob=!N`rEo7&$=dCGoMC!DQjO0ZfVJ63EuNdhiuPQj z5iiZ7?vEhN_;NmNZ{BRdn~Skv3DU}m6OUup6Y><6J}u8+>1uh7E6>XdSo$KXu9@6# zxduzuB3bgXti#gvvH?ps%4=A<85tq3%NyAHro4l_@6tkJXrYg2-H+u{82pSqFXLqg zy(Le+l-=0-t#o5u5407+TR-+5kU_2-mE&0Y18dRcFn9(_&$9YkMLYk7rPg0+XlapJ zRn3-(nxi>VthqW?8g(25G(kX#G;67rN`aPX9qaA&+9WOX7}`x+;iDBku9Yh7)K00? zDLO@J=tEOwf=<(ET8XRBB~q_Tb*YrKRx?Go&U!g0=KMGqFu(g3& zZPbnY2a0a(mU8XU9;wznx|gzgIR~~t_vt>a^l2Zj_H!C+flsTEFYzLPq^NiB9#tDV$5 zC$-W^tz~b7oeOe~{SX1KRq&cas~f3BPHKUZI>JdUaZ+=g)Gs>mdn;5Ian`Upm!-~Sy>r>-T-H06ZO&!3b6MqFwp-*wgE423kDaQ{T$?jj@65G1 IbJ-$)0eM($(EtDd literal 0 HcmV?d00001 diff --git a/StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_med.otf b/StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_med.otf new file mode 100755 index 0000000000000000000000000000000000000000..113eb2459d731ceeaf8ec567f22e11a6e92b3745 GIT binary patch literal 89536 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 literal 0 HcmV?d00001 diff --git a/StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_thin.otf b/StyleKit/StyleKitDemo/StyleKit/Fonts/Brandon_thin.otf new file mode 100755 index 0000000000000000000000000000000000000000..eeeb35242f38713c1fe39ca9acd21d3a17cda7fa GIT binary patch literal 90808 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 X@Krb7Nh&Xkye{$*o&n literal 0 HcmV?d00001 diff --git a/StyleKit/StyleKitDemo/StyleKit/Info.plist b/StyleKit/StyleKitDemo/StyleKit/Info.plist new file mode 100644 index 0000000..25bf339 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/Info.plist @@ -0,0 +1,54 @@ + + + + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIAppFonts + + Brandon_thin.otf + Brandon_med.otf + Brandon_light.otf + Brandon_light_it.otf + Brandon_blk.otf + Brandon_bld.otf + + + diff --git a/StyleKit/StyleKitDemo/StyleKit/LabelStylist.swift b/StyleKit/StyleKitDemo/StyleKit/LabelStylist.swift new file mode 100644 index 0000000..19b3fe2 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/LabelStylist.swift @@ -0,0 +1,134 @@ + +import Foundation +import UIKit + +class LabelStyle: Stylist { + + typealias Element = UILabel + + var textColor: UIColor? + var textAlignment: NSTextAlignment? + var attributes: AttributedTextStyle? + + enum Properties: String { + case TextColor = "textColor" + case TextAlignment = "textAlignment" + case Attributes = "attributes" + static let allValues:[Properties] = [.TextColor, .TextAlignment, .Attributes] + } + + static var textAlignmentKeyMap:[String:NSTextAlignment] = ["Left":.Left, + "Center":.Center, + "Right":.Right, + "Justified":.Justified, + "Natural":.Natural] + + static func attributesForLabel(styles:AttributedTextStyle, textAlignment:NSTextAlignment) -> Dictionary { + + + var attributes:[String: AnyObject] = [:] + + if let fontName = styles.fontStyle?.fontName, let fontSize = styles.fontStyle?.size { + attributes[NSFontAttributeName] = UIFont(name: fontName, size: CGFloat(fontSize)) + } + + if let tracking = styles.tracking, let fontSize = styles.fontStyle?.size { + let characterSpacing = fontSize * tracking / 1000 + attributes[NSKernAttributeName] = characterSpacing + } + + let style = NSMutableParagraphStyle() + + if let lineSpace = styles.lineSpacing { + style.lineSpacing = lineSpace + } + + style.alignment = textAlignment + + if let lineSpace = styles.lineSpacing { + style.lineSpacing = lineSpace + } + attributes[NSParagraphStyleAttributeName] = style + + return attributes + } + + static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> LabelStyle { + let labelStyle = LabelStyle() + for (key,value) in spec { + guard let property = LabelStyle.Properties(rawValue: key) else { + print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") + continue + } + switch property { + + case LabelStyle.Properties.TextAlignment: + if let textAlignmentKey = value as? String, let alignment = LabelStyle.textAlignmentKeyMap[textAlignmentKey] { + labelStyle.textAlignment = alignment + } + case LabelStyle.Properties.TextColor: + if let colorKey = value as? String, let color = resources.colors[colorKey] { + labelStyle.textColor = color + } + case LabelStyle.Properties.Attributes: + if let attributes = value as? [String:AnyObject] + { + let attr = try LabelStyle.serializeFormatAttributesSpec(attributes, resources:resources) + labelStyle.attributes = attr + } + } + } + return labelStyle + } + + static func serializeFormatAttributesSpec(spec: [String:AnyObject], resources:CommonResources) throws -> AttributedTextStyle { + + let style = AttributedTextStyle() + for (key,value) in spec { + guard let property = AttributedTextStyle.Properties(rawValue: key) else { + print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") + continue + } + switch property { + case .FontStyle: + if let fontSpec = value as? [String:AnyObject] + { + style.fontStyle = Style.serializeFontSpec(fontSpec, resources: resources) + } + case .Tracking: + if let tracking = value as? Int { + style.tracking = tracking + } + case .LineSpacing: + if let lineSpacing = value as? CGFloat { + style.lineSpacing = lineSpacing + } + case .Ligature: + if let ligature = value as? Int { + style.ligature = ligature + } + } + } + return style + } +} + +extension UILabel { + func applyStyle(style:LabelStyle, resources:CommonResources) { + for property in LabelStyle.Properties.allValues { + switch property { + case .TextColor: + textColor = style.textColor + case .TextAlignment: + textAlignment = style.textAlignment ?? self.textAlignment + case .Attributes: + if let attributes = style.attributes, text = self.text { + let attr = LabelStyle.attributesForLabel(attributes, textAlignment: textAlignment) + self.attributedText = NSAttributedString(string: text, attributes:attr) + } + } + } + } +} + + diff --git a/StyleKit/StyleKitDemo/StyleKit/LabelsTableViewCell.swift b/StyleKit/StyleKitDemo/StyleKit/LabelsTableViewCell.swift new file mode 100644 index 0000000..bfdf05c --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/LabelsTableViewCell.swift @@ -0,0 +1,21 @@ +// +// LabelsTableViewCell.swift +// StyleKitSample +// +// Created by Eric Kille on 10/22/16. +// Copyright © 2016 Tonic Design. All rights reserved. +// + +import UIKit + +class LabelsTableViewCell: UITableViewCell { + + @IBOutlet weak var label: UILabel! + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + + +} diff --git a/StyleKit/StyleKitDemo/StyleKit/ProgressViewStylist.swift b/StyleKit/StyleKitDemo/StyleKit/ProgressViewStylist.swift new file mode 100644 index 0000000..483db89 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/ProgressViewStylist.swift @@ -0,0 +1,87 @@ + +import Foundation +import UIKit + +class ProgressViewStyle : Stylist { + + typealias Element = UIProgressView + + var style: UIProgressViewStyle? + var progressTintColor: UIColor? + var trackTintColor: UIColor? + var progressImage: UIImage? + var trackImage: UIImage? + + enum Properties: String { + case Style = "style" + case ProgressTintColor = "progressTintColor" + case TrackTintColor = "trackTintColor" + case ProgressImage = "progressImage" + case TrackImage = "trackImage" + } + + static let allValues:[Properties] = [.Style, .ProgressTintColor, .TrackTintColor, .ProgressImage, .TrackImage] + + static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> ProgressViewStyle { + let style = ProgressViewStyle() + for (key,value) in spec { + guard let property = ProgressViewStyle.Properties(rawValue: key) else { + print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") + continue + } + switch property { + case .Style: + if let theValue = value as? Int, let viewStyle = UIProgressViewStyle(rawValue: theValue) { + style.style = viewStyle + } + case .ProgressTintColor: + if let colorKey = value as? String, color = resources.colors[colorKey] { + style.progressTintColor = color + } + case .TrackTintColor: + if let colorKey = value as? String, color = resources.colors[colorKey] { + style.trackTintColor = color + } + case .ProgressImage: + if let imageKey = value as? String, imageName = resources.imageNames[imageKey] { + style.progressImage = UIImage(named: imageName) + } + case .TrackImage: + if let imageKey = value as? String, imageName = resources.imageNames[imageKey] { + style.trackImage = UIImage(named: imageName) + } + } + } + return style + } +} + +extension UIProgressView { + func applyStyle(style:ProgressViewStyle, resources:CommonResources) { + for property in ProgressViewStyle.allValues { + switch property { + case .Style: + if let theValue = style.style { + self.progressViewStyle = theValue + } + case .ProgressTintColor: + if let color = style.progressTintColor { + self.progressTintColor = color + } + case .TrackTintColor: + if let color = style.trackTintColor { + self.trackTintColor = color + } + case .ProgressImage: + if let image = style.progressImage { + self.progressImage = image + } + case .TrackImage: + if let trackImage = style.trackImage { + self.trackImage = trackImage + } + } + } + } +} + diff --git a/StyleKit/StyleKitDemo/StyleKit/ProgressViewsTableViewCell.swift b/StyleKit/StyleKitDemo/StyleKit/ProgressViewsTableViewCell.swift new file mode 100644 index 0000000..0ef476c --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/ProgressViewsTableViewCell.swift @@ -0,0 +1,23 @@ +// +// ProgressViewsTableViewCell.swift +// StyleKitSample +// +// Created by Eric Kille on 10/22/16. +// Copyright © 2016 Tonic Design. All rights reserved. +// + +import UIKit + +class ProgressViewsTableViewCell: UITableViewCell { + + + @IBOutlet weak var progressView: UIProgressView! + @IBOutlet weak var label: UILabel! + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + + +} diff --git a/StyleKit/StyleKitDemo/StyleKit/ReadingViewController.swift b/StyleKit/StyleKitDemo/StyleKit/ReadingViewController.swift new file mode 100644 index 0000000..1085dab --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/ReadingViewController.swift @@ -0,0 +1,41 @@ +import UIKit + + +class ReadingViewController: UIViewController { + + @IBOutlet weak var textView: UITextView! + + override func viewDidLoad() { + super.viewDidLoad() + title = "Reader" + self.setDayTimeReading() + } + + + @IBAction func switchChanged(sender: AnyObject) { + guard let theSwitch = sender as? UISwitch else { + return + } + + if theSwitch.on { + UIView.animateWithDuration(0.25) { + self.setNightTimeReading() + } + } else { + UIView.animateWithDuration(0.25) { + self.setDayTimeReading() + } + } + } + + func setNightTimeReading() { + self.textView.styleTag = "NightTimeReading" + self.view.styleTag = "NightTimeReading" + } + + func setDayTimeReading() { + self.textView.styleTag = "DayTimeReading" + self.view.styleTag = "DayTimeReading" + } + +} diff --git a/StyleKit/StyleKitDemo/StyleKit/SegmentedControlStylist.swift b/StyleKit/StyleKitDemo/StyleKit/SegmentedControlStylist.swift new file mode 100644 index 0000000..8ec627a --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/SegmentedControlStylist.swift @@ -0,0 +1,130 @@ + +import Foundation +import UIKit + +class SegmentedControlStyle : Stylist { + + typealias Element = UISegmentedControl + + var fontStyle: FontStyle? + var tintColor:UIColor? + var dividerColor:UIColor? + var normalColors: ColorStyle? + var highlightedColors: ColorStyle? + var selectedColors: ColorStyle? + var disabledColors: ColorStyle? + + enum Properties: String { + case FontStyle = "fontStyle" + case TintColor = "tintColor" + case DividerColor = "dividerColor" + case Normal = "normalState" + case Highlighted = "highlightedState" + case Selected = "selectedState" + case Disabled = "disabledState" + } + + static let allValues:[Properties] = [.DividerColor, .FontStyle, .TintColor, .Normal, .Highlighted, .Selected, .Disabled] + + static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> SegmentedControlStyle { + let style = SegmentedControlStyle() + for (key,value) in spec { + guard let property = SegmentedControlStyle.Properties(rawValue: key) else { + print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") + continue + } + switch property { + case .FontStyle: + if let fontSpec = value as? [String:AnyObject] { + style.fontStyle = Style.serializeFontSpec(fontSpec, resources: resources) + } + case .TintColor: + if let colorKey = value as? String, + let color = resources.colors[colorKey] { + style.tintColor = color + } + case .DividerColor: + if let colorKey = value as? String, + let color = resources.colors[colorKey] { + style.dividerColor = color + } + case .Normal: + if let normalColorEntries = value as? [String: String] { + style.normalColors = Style.serializeColorsSpec(normalColorEntries, resources: resources) + } + case .Selected: + if let selectedColorEntries = value as? [String: String] { + style.selectedColors = Style.serializeColorsSpec(selectedColorEntries, resources: resources) + } + case .Highlighted: + if let highlightedColorEntries = value as? [String: String] { + style.highlightedColors = Style.serializeColorsSpec(highlightedColorEntries, resources: resources) + } + case .Disabled: + if let disabledColorEntries = value as? [String: String] { + style.disabledColors = Style.serializeColorsSpec(disabledColorEntries, resources: resources) + } + + } + + } + return style + } +} + +extension UISegmentedControl { + + func applyStyle(style:SegmentedControlStyle, resources:CommonResources) { + for property in SegmentedControlStyle.allValues { + + var normalAttributes: [NSObject: AnyObject] = [:] + var selectedAttributes: [NSObject: AnyObject] = [:] + + switch property { + case .FontStyle: + if let fontStyle = style.fontStyle { + let font = UIFont(name: fontStyle.fontName, size: CGFloat(fontStyle.size)) + normalAttributes[NSFontAttributeName] = font + selectedAttributes[NSFontAttributeName] = font + } + case .TintColor: + if let tintColor = style.tintColor { + self.tintColor = tintColor + } + case .Normal: + if let colorStyles = style.normalColors { + assignColors(colorStyles, forState: .Normal, resources: resources) + } + case .Selected: + if let colorStyles = style.selectedColors { + assignColors(colorStyles, forState: .Selected, resources: resources) + } + case .Highlighted: + if let colorStyles = style.highlightedColors { + assignColors(colorStyles, forState: .Highlighted, resources: resources) + } + case .Disabled: + if let colorStyles = style.disabledColors { + assignColors(colorStyles, forState: .Disabled, resources: resources) + } + case .DividerColor: + if let divColor = style.dividerColor { + self.setDividerImage(UIImage.imageWithColor(divColor), forLeftSegmentState: .Normal, rightSegmentState: .Normal, barMetrics: .Default) + } + } + } + } + + func assignColors(colors: ColorStyle, forState state: UIControlState, resources:CommonResources) { + if let colorKey = colors.backgroundColor, let color = resources.colors[colorKey] { + self.setBackgroundImage(UIImage.imageWithColor(color), forState: state, barMetrics: .Default) + } + if let colorKey = colors.textColor, let color = resources.colors[colorKey] { + let attributes = [NSForegroundColorAttributeName: color] + self.setTitleTextAttributes(attributes, forState: state) + } + } +} + + + diff --git a/StyleKit/StyleKitDemo/StyleKit/SegmentedControlsTableViewCell.swift b/StyleKit/StyleKitDemo/StyleKit/SegmentedControlsTableViewCell.swift new file mode 100644 index 0000000..334c0e9 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/SegmentedControlsTableViewCell.swift @@ -0,0 +1,21 @@ +// +// SegmentedControlsTableViewCell.swift +// StyleKitSample +// +// Created by Eric Kille on 10/22/16. +// Copyright © 2016 Tonic Design. All rights reserved. +// + +import UIKit + +class SegmentedControlsTableViewCell: UITableViewCell { + + @IBOutlet weak var segmentedControl: UISegmentedControl! + @IBOutlet weak var label: UILabel! + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + +} diff --git a/StyleKit/StyleKitDemo/StyleKit/SliderStylist.swift b/StyleKit/StyleKitDemo/StyleKit/SliderStylist.swift new file mode 100644 index 0000000..792d311 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/SliderStylist.swift @@ -0,0 +1,95 @@ + +import Foundation +import UIKit + +class SliderStyle : Stylist { + + typealias Element = UISlider + + var tintColor: UIColor? + var thumbImage: UIImage? + var minimumTrackImage: UIImage? + var maximumTrackImage: UIImage? + var filledTrackColor: UIColor? + var emptyTrackColor: UIColor? + + enum Properties: String { + case ThumbImage = "thumbImage" + case MinimumTrackImage = "minimumTrackImage" + case MaximumTrackImage = "maximumTrackImage" + case FilledTrackColor = "filledTrackColor" + case EmptyTrackColor = "emptyTrackColor" + } + + static let allValues:[Properties] = [.FilledTrackColor,.EmptyTrackColor, .ThumbImage, .MinimumTrackImage, .MaximumTrackImage] + + static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> SliderStyle { + let style = SliderStyle() + for (key,value) in spec { + guard let property = SliderStyle.Properties(rawValue: key) else { + print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") + continue + } + switch property { + case .ThumbImage: + if let imageKey = value as? String, imageName = resources.imageNames[imageKey], + image = UIImage(named:imageName){ + style.thumbImage = image + } + case .MinimumTrackImage: + if let imageKey = value as? String, imageName = resources.imageNames[imageKey], + image = UIImage(named:imageName){ + style.minimumTrackImage = image + } + case .MaximumTrackImage: + if let imageKey = value as? String, imageName = resources.imageNames[imageKey], + image = UIImage(named:imageName){ + style.maximumTrackImage = image + } + case .FilledTrackColor: + if let colorKey = value as? String, color = resources.colors[colorKey] { + style.filledTrackColor = color + } + case .EmptyTrackColor: + if let colorKey = value as? String, color = resources.colors[colorKey] { + style.emptyTrackColor = color + } + } + + } + return style + } + +} + +extension UISlider { + + func applyStyle(style:SliderStyle, resources:CommonResources) { + for property in SliderStyle.allValues { + switch property { + case .ThumbImage: + if let image = style.thumbImage { + self.setThumbImage(image, forState: .Normal) + } + case .MinimumTrackImage: + if let image = style.minimumTrackImage { + self.setMinimumTrackImage(image, forState: .Normal) + } + case .MaximumTrackImage: + if let image = style.maximumTrackImage { + self.setMaximumTrackImage(image, forState: .Normal) + } + case .FilledTrackColor: + if let color = style.filledTrackColor { + self.minimumTrackTintColor = color + } + case .EmptyTrackColor: + if let color = style.emptyTrackColor { + self.maximumTrackTintColor = color + } + } + } + } + +} + diff --git a/StyleKit/StyleKitDemo/StyleKit/SlidersTableViewCell.swift b/StyleKit/StyleKitDemo/StyleKit/SlidersTableViewCell.swift new file mode 100644 index 0000000..28b5dba --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/SlidersTableViewCell.swift @@ -0,0 +1,22 @@ +// +// SlidersTableViewCell.swift +// StyleKitSample +// +// Created by Eric Kille on 10/22/16. +// Copyright © 2016 Tonic Design. All rights reserved. +// + +import UIKit + +class SlidersTableViewCell: UITableViewCell { + + @IBOutlet weak var label: UILabel! + @IBOutlet weak var slider: UISlider! + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + + +} diff --git a/StyleKit/StyleKitDemo/StyleKit/StepperStylist.swift b/StyleKit/StyleKitDemo/StyleKit/StepperStylist.swift new file mode 100644 index 0000000..95bd7f3 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/StepperStylist.swift @@ -0,0 +1,129 @@ + +import Foundation +import UIKit + +class StepperStyle : Stylist { + + typealias Element = UIStepper + + var tintColor: UIColor? + var backgroundImage: [AllowedStates:UIImage]? + var incrementImage: [AllowedStates:UIImage]? + var decrementImage: [AllowedStates:UIImage]? + + enum Properties: String { + case TintColor = "tintColor" + case IncrementImage = "incrementImage" + case DecrementImage = "decrementImage" + case BackgroundImage = "backgroundImage" + } + + enum AllowedStates: String { + case Normal = "normalState" + case Highlighted = "highlightedState" + case Disabled = "disabledState" + } + + static func controlStateForAllowedState(state:AllowedStates) -> UIControlState { + switch state { + case .Disabled: + return UIControlState.Disabled + case .Highlighted: + return UIControlState.Highlighted + case .Normal: + return UIControlState.Normal + } + } + + static let allValues:[Properties] = [.TintColor, .IncrementImage, .DecrementImage, .BackgroundImage] + + static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> StepperStyle { + let style = StepperStyle() + for (key,value) in spec { + guard let property = StepperStyle.Properties(rawValue: key) else { + print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") + continue + } + switch property { + case .TintColor: + if let colorKey = value as? String, color = resources.colors[colorKey] { + style.tintColor = color + } + case .IncrementImage: + if let states = value as? [String: String] { + var values:[StepperStyle.AllowedStates:UIImage] = [:] + for (key, value) in states { + if let state = StepperStyle.AllowedStates(rawValue: key), + let imageKey = resources.imageNames[value], + let image = UIImage(named: imageKey) { + values[state] = image + } + } + style.incrementImage = values + } + case .DecrementImage: + if let states = value as? [String: String] { + var values:[StepperStyle.AllowedStates:UIImage] = [:] + for (key, value) in states { + if let state = StepperStyle.AllowedStates(rawValue: key), + let imageKey = resources.imageNames[value], + let image = UIImage(named: imageKey) { + values[state] = image + } + } + style.decrementImage = values + } + case .BackgroundImage: + if let states = value as? [String: String] { + var values:[StepperStyle.AllowedStates:UIImage] = [:] + for (key, value) in states { + if let state = StepperStyle.AllowedStates(rawValue: key), + let imageKey = resources.imageNames[value], + let image = UIImage(named: imageKey) { + values[state] = image + } + } + style.backgroundImage = values + } + } + } + return style + } +} + +extension UIStepper { + + func applyStyle(style:StepperStyle, resources:CommonResources) { + for property in StepperStyle.allValues { + switch property { + case .TintColor: + if let color = style.tintColor { + self.tintColor = color + } + case .IncrementImage: + if let states = style.incrementImage { + for (key, value) in states { + let controlState = StepperStyle.controlStateForAllowedState(key) + self.setIncrementImage(value, forState: controlState) + } + } + case .DecrementImage: + if let states = style.decrementImage { + for (key, value) in states { + let controlState = StepperStyle.controlStateForAllowedState(key) + self.setDecrementImage(value, forState: controlState) + } + } + case .BackgroundImage: + if let states = style.backgroundImage { + for (key, value) in states { + let controlState = StepperStyle.controlStateForAllowedState(key) + self.setBackgroundImage(value, forState: controlState) + } + } + } + } + } +} + + diff --git a/StyleKit/StyleKitDemo/StyleKit/SteppersTableViewCell.swift b/StyleKit/StyleKitDemo/StyleKit/SteppersTableViewCell.swift new file mode 100644 index 0000000..207126a --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/SteppersTableViewCell.swift @@ -0,0 +1,22 @@ +// +// SteppersTableViewCell.swift +// StyleKitSample +// +// Created by Eric Kille on 10/22/16. +// Copyright © 2016 Tonic Design. All rights reserved. +// + +import UIKit + +class SteppersTableViewCell: UITableViewCell { + + @IBOutlet weak var label: UILabel! + @IBOutlet weak var stepper: UIStepper! + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + + +} diff --git a/StyleKit/StyleKitDemo/StyleKit/Style.json b/StyleKit/StyleKitDemo/StyleKit/Style.json new file mode 100644 index 0000000..6f233bf --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/Style.json @@ -0,0 +1,200 @@ +{ + "Fonts": { + "primaryFontLight":"BrandonGrotesque-Light", + "primaryFontMedium":"BrandonGrotesque-Medium", + "primaryFontBold":"BrandonGrotesque-Bold", + "primaryFontBlack":"BrandonGrotesque-Black", + "primaryFontLightItalic":"BrandonGrotesque-LightItalic" + }, + "Colors": { + "purpleColor": { + "hex": "#A239B5", + "alpha": 1 + }, + "blueColor": { + "hex": "#005488", + "alpha": 1 + }, + "greenColor": { + "hex": "#49B93A", + "alpha": 1 + }, + "blackColor": { + "red": 0, + "green": 0, + "blue": 0, + "alpha": 1 + }, + "whiteColor": { + "hex": "#FFFFFF", + "alpha": 1 + }, + "clearColor": { + "hex": "#000000", + "alpha": 0.1 + }, + "lightBlueColor": { + "hex": "#8BC0E0", + "alpha": 0.75 + }, + "lightGrayColor": { + "hex": "#EFEFF4", + "alpha": 1 + } + }, + "Images": { + "buttonImage1": "black_button_image", + "thumbImageDefault" : "greenThumbImage" + }, + "Views": { + "special": { + "backgroundColor": "lightGrayColor", + "borderColor": "blueColor", + "borderWidth": 2, + "cornerRadius": 10 + }, + "DayTimeReading": { + "backgroundColor": "whiteColor" + }, + "NightTimeReading": { + "backgroundColor": "blackColor" + } + }, + "Labels": { + "H1": { + "textColor": "blueColor", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryFontMedium", + "size": 22 + }, + "tracking": 100, + "lineSpacing": 5, + "ligature": 0 + } + }, + "H2": { + "textColor": "greenColor", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryFontLight", + "size": 18 + }, + "tracking": 60, + "lineSpacing": 5, + "ligature": 0 + } + } + }, + "Buttons": { + "B1": { + "borderColor": "blueColor", + "borderWidth": 3, + "cornerRadius": 10, + "fontStyle": { + "font": "primaryFontMedium", + "size": 22 + }, + "normalState": { + "backgroundColor": "blueColor", + "textColor": "whiteColor" + }, + "selectedState": { + "backgroundColor": "blackColor", + "textColor": "purpleColor" + }, + "highlightedState": { + "backgroundColor": "greenColor", + "textColor": "blueColor" + } + }, + "B2": { + "borderColor": "purpleColor", + "borderWidth": 0, + "cornerRadius": 5, + "fontStyle": { + "font": "primaryFontBold", + "size": 16 + }, + "normalState": { + "backgroundColor": "blueColor", + "textColor": "blackColor" + }, + "selectedState": { + "backgroundColor": "blackColor", + "textColor": "purpleColor" + }, + "highlightedState": { + "backgroundColor": "purpleColor", + "textColor": "whiteColor" + } + } + }, + "TextFields": { + "T1": { + "fontStyle": { + "font": "primaryFontMedium", + "size": 17 + }, + "textColor": "whiteColor", + "backgroundColor": "lightBlueColor", + "borderColor": "greenColor", + "textAlignment": "Center", + "borderWidth": 3, + "cornerRadius": 10, + "borderStyle": "None" + } + }, + "SegmentedControls": { + "default": { + "fontStyle": { + "font": "primaryFontBold", + "size": 15 + }, + "dividerColor": "clearColor", + "normalState": { + "backgroundColor": "greenColor", + "textColor": "whiteColor" + }, + "selectedState": { + "backgroundColor": "blueColor", + "textColor": "whiteColor" + }, + "highlightedState": { + "backgroundColor": "blackColor", + "textColor": "whiteColor" + } + } + }, + "Sliders": { + "S1": { + "filledTrackColor": "purpleColor", + "emptyTrackColor": "greenColor", + "thumbImage": "thumbImageDefault" + } + }, + "TextViews": { + "TV1": { + "textColor": "blueColor", + "attributes": { + "fontStyle": { + "font": "primaryFontLight", + "size": 20 + } + } + }, + "DayTimeReading": { + "textColor": "blackColor", + "textAlignment": "Left", + "backgroundColor": "whiteColor" + }, + "NightTimeReading": { + "textColor": "whiteColor", + "textAlignment": "Left", + "backgroundColor": "blackColor" + } + } + +} diff --git a/StyleKit/StyleKitDemo/StyleKit/Style.swift b/StyleKit/StyleKitDemo/StyleKit/Style.swift new file mode 100644 index 0000000..a066a5a --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/Style.swift @@ -0,0 +1,309 @@ +import UIKit +import Foundation + +struct FontStyle { + let fontName: String + let size: Int +} + +class ColorStyle { + var backgroundColor: String? + var textColor: String? + enum Properties: String { + case Background = "backgroundColor" + case Text = "textColor" + static let allValues:[Properties] = [.Background, .Text] + } +} + +class CommonResources { + var fontLabels = [String: String]() + var colors = [String: UIColor]() + var imageNames = [String: String]() +} + +class AttributedTextStyle { + var fontStyle: FontStyle? + var tracking: Int? + var lineSpacing: CGFloat? + var ligature: Int? + + enum Properties: String { + case FontStyle = "fontStyle" + case Tracking = "tracking" + case LineSpacing = "lineSpacing" + case Ligature = "ligature" + static let allValues:[Properties] = [.FontStyle, .Tracking, .LineSpacing, .Ligature] + } +} + +protocol Stylist { + associatedtype Element +} + +protocol StyleKitSubscriber: class { + func update() +} + +enum FontProperty: String { + case name = "font" + case size = "size" +} + +enum UIElement: String { + case segmentedControl = "SegmentedControls" + case textField = "TextFields" + case button = "Buttons" + case label = "Labels" + case slider = "Sliders" + case stepper = "Steppers" + case progressView = "ProgressViews" + case view = "Views" + case textView = "TextViews" + static let allValues:[UIElement] = [.view, .segmentedControl, .textField, .button, .label, .slider, .stepper, .progressView, .textView] +} + +enum CommonObjects: String { + case Fonts = "Fonts" + case Colors = "Colors" + case Images = "Images" +} + +enum ColorProperties: String { + case Red = "red" + case Green = "green" + case Blue = "blue" + case Alpha = "alpha" + case Hex = "hex" +} + + +class Style { + + enum StyleKitError: ErrorType { + case StyleFileNotFound(String) + case InvalidTextFieldProperty + case InvalidLabelStyle + } + + static let sharedInstance = Style() + + private let fileName = "Style.json" + static let styleSheetLocation = "StyleKit-StylesheetLocation" // Make sure to update docs if this changes + + var resources = CommonResources() + + typealias StyleMap = [String: AnyObject] + + var styleMap = [UIElement:StyleMap]() + + private let subscribers: NSHashTable + + private init() { + self.subscribers = NSHashTable(options: .WeakMemory) + serialize() + } + + private func checkIfImageExist(name:String) -> Bool { + return UIImage(named: name) == nil ? false : true + } + + private func getStylePath() throws -> NSURL { + if let string = NSBundle.mainBundle().infoDictionary?[Style.styleSheetLocation] as? String, + documentDirectory = Utils.documentDirectory { + let pathURL: NSURL? + if string.containsString(".json") { + pathURL = documentDirectory.URLByAppendingPathComponent(string) + } else { + pathURL = documentDirectory.URLByAppendingPathComponent(string + "/" + fileName) + } + + if let thePathURL = pathURL, path = thePathURL.path { + if NSFileManager.defaultManager().fileExistsAtPath(path) { + return thePathURL + } else { + throw StyleKitError.StyleFileNotFound("File does not exist at \(thePathURL)") + } + } else { + throw StyleKitError.StyleFileNotFound("Invalid path URL: \(pathURL)") + } + } else { + if let path = NSBundle.mainBundle().URLForResource(fileName, withExtension: nil) { + return path + } else { + throw StyleKitError.StyleFileNotFound("Expected to find Style.json in the bundle") + } + } + } + + private func serialize() { + + do { + let stylePath = try self.getStylePath() + let data = try NSData(contentsOfURL: stylePath, options: NSDataReadingOptions.DataReadingMappedIfSafe) + let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) + + if let fontConfigs = json[CommonObjects.Fonts.rawValue] as? [String: String] { + let allFontNames = UIFont.familyNames().reduce([]) { + $0 + UIFont.fontNamesForFamilyName($1) + } + for fontName in fontConfigs.values { + guard allFontNames.contains(fontName) else { + print("StyleKit: Warning: '\(fontName)' Font referenced in Style.json is not a valid font.") + continue + } + } + resources.fontLabels = fontConfigs + } + + if let colorDict = json[CommonObjects.Colors.rawValue] as? [String: [String: AnyObject]] { + for (colorKey, components) in colorDict { + if let red = components[ColorProperties.Red.rawValue] as? Int, + let green = components[ColorProperties.Green.rawValue] as? Int, + let blue = components[ColorProperties.Blue.rawValue] as? Int, + let alpha = components[ColorProperties.Alpha.rawValue] as? Int { + resources.colors[colorKey] = UIColor(red: CGFloat(red)/255, green: CGFloat(green)/255, blue: CGFloat(blue)/255, alpha: CGFloat(alpha)) + } else if let hex = components[ColorProperties.Hex.rawValue] as? String, + let alpha = components[ColorProperties.Alpha.rawValue] as? Float { + if let hexInt = hex.hexColorToInt() { + resources.colors[colorKey] = UIColor(withHex: hexInt, alpha: alpha) + } + } + } + } + + if let items = json[CommonObjects.Images.rawValue] as? [String: String] { + resources.imageNames = items + for (alias, fileName) in items { + if checkIfImageExist(fileName) == false { + print("StyleKit: Warning: Image file '\(fileName)' referenced by '\(alias)' does not exist in bundle") + } + } + } + + for element in UIElement.allValues { + guard let elementDict = json[element.rawValue] as? [String: [String:AnyObject]] else { continue } + + var styles = StyleMap() + for (labelKey, specification) in elementDict { + switch element { + case .button: + styles[labelKey] = try ButtonStyle.serialize(specification, resources: resources) as AnyObject + case .label: + styles[labelKey] = try LabelStyle.serialize(specification, resources: resources) as AnyObject + case .progressView: + styles[labelKey] = try ProgressViewStyle.serialize(specification, resources: resources) as AnyObject + case .segmentedControl: + styles[labelKey] = try SegmentedControlStyle.serialize(specification, resources: resources) as AnyObject + case .slider: + styles[labelKey] = try SliderStyle.serialize(specification, resources: resources) as AnyObject + case .stepper: + styles[labelKey] = try StepperStyle.serialize(specification, resources: resources) as AnyObject + case .view: + styles[labelKey] = try ViewStyle.serialize(specification, resources: resources) as AnyObject + case .textField: + styles[labelKey] = try TextFieldStyle.serialize(specification, resources: resources) as AnyObject + case .textView: + styles[labelKey] = try TextViewStyle.serialize(specification, resources: resources) as AnyObject + } + } + styleMap[element] = styles + } + } catch { + if let error = error as? StyleKitError { + switch error { + case .StyleFileNotFound(let str): + print("StyleKit:Error: " + str) + default: + break + } + } + + assert(false, "error serializing JSON: \(error)") + } + } + + //--------------------------------------------- + // MARK: - Serialize JSON into Objects (Common) + //--------------------------------------------- + + static func serializeColorsSpec(spec: [String:String], resources:CommonResources) -> ColorStyle? { + + let styleSpec = ColorStyle() + for style in ColorStyle.Properties.allValues { + switch style { + case .Background: + if let value = spec[style.rawValue] { + styleSpec.backgroundColor = value + } + case .Text: + if let value = spec[style.rawValue] { + styleSpec.textColor = value + } + } + } + return styleSpec + } + + static func serializeFontSpec(spec: [String:AnyObject], resources:CommonResources) -> FontStyle? { + + if let nameKey = spec[FontProperty.name.rawValue] as? String { + if let fontName = resources.fontLabels[nameKey] { + if let size = spec[FontProperty.size.rawValue] as? Int { + return FontStyle(fontName: fontName, size: size) + } else { + print("StyleKit:Warning: fontStyle for '\(nameKey)' must include a font 'size' parameter") + } + } else { + print("StyleKit:Warning: '\(nameKey)' alias must be defined under 'Fonts' ") + } + } + return nil + } + +} + +extension Style { + + /** + You may register for changes to the stylesheet by implementing the `StyleKitSubscriber` protocol and calling `addSubscriber`. + + StyleKit.sharedInstance.addSubscriber(self) + + Call 'removeSubscriber(subscriber: StyleKitSubscriber)' to unregister + */ + func addSubscriber(subscriber: StyleKitSubscriber) { + if !subscribers.containsObject(subscriber) { + subscribers.addObject(subscriber) + } + } + + /** + Removes a subscriber from the list of subscribers + */ + func removeSubscriber(subscriber: StyleKitSubscriber) { + if subscribers.containsObject(subscriber) { + subscribers.removeObject(subscriber) + } + } + + /** + Call this if the stylesheet has changed. + + StyleKit.sharedInstance.refresh() + + Since the bundle is readonly, the stylesheet must be at the location specified in the applications plist file for the key 'StyleKit-StylesheetLocation'. The new stylesheet will **not** automatically get applied to views which have already been tagged/styled. To restyle a view which has already been tagged/styled, call `style()` on the view. + + You may register for changes to the stylesheet by implementing the `StyleKitSubscriber` protocol and calling `addSubscriber`. + + StyleKit.sharedInstance.addSubscriber(self) + */ + func refresh() { + serialize() + let enumerator = subscribers.objectEnumerator() + while let subscriber = enumerator.nextObject() as? StyleKitSubscriber { + subscriber.update() + } + } + +} diff --git a/StyleKit/StyleKitDemo/StyleKit/Style2.json b/StyleKit/StyleKitDemo/StyleKit/Style2.json new file mode 100644 index 0000000..031030d --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/Style2.json @@ -0,0 +1,1159 @@ +{ + "Fonts": { + "primaryNationalFontLight":"National-Light", + "primaryNationalFontRegular":"National-Regular", + "primaryNationalFontRegularItalic":"National-RegularItalic", + "primaryNationalFontBold":"National-Bold", + "primaryNationalFontSemibold":"National-Semibold", + "primaryNationalFontBoldItalic":"National-BoldItalic", + "primaryNationalFontLightItalic":"National-LightItalic", + "primaryTiemposHeadlineRegular": "TiemposHeadline-Regular", + "primaryTiemposHeadlineRegularItalic": "TiemposHeadline-RegularItalic", + "primaryTiemposHeadlineLight": "TiemposHeadline-Light" + }, + "Colors": { + "white": { + "hex": "#FFFFFF", + "alpha": 1 + }, + "clear": { + "hex": "#000000", + "alpha": 0.0 + }, + "black": { + "hex": "#000000", + "alpha": 1 + }, + "darkGray": { + "hex": "#333333", + "alpha": 1 + }, + "gray": { + "hex": "#666666", + "alpha": 1 + }, + "mediumGray": { + "hex": "#DDDDDD", + "alpha": 1 + }, + "lightGray": { + "hex": "#F6F6F6", + "alpha": 1 + }, + "lightGrayAlpha": { + "hex": "#666666", + "alpha": 0.6 + }, + "borderGray": { + "hex": "#DDDDDD", + "alpha": 1 + }, + "cardBorderGray": { + "hex": "#EEEEEE", + "alpha": 1 + }, + "hingeTeal": { + "hex": "#82D9C9", + "alpha": 1 + }, + "hingeBlue": { + "hex": "#25ACD7", + "alpha": 1 + }, + "darkCoral": { + "hex": "#CE5252", + "alpha": 1 + }, + "opaqueBlack": { + "hex": "#000000", + "alpha": 0.45 + }, + "darkBlue": { + "hex": "#3B5998", + "alpha": 1 + }, + "darkerBlue": { + "hex": "#2E477B", + "alpha": 1 + }, + "offWhite": { + "hex": "#AAAAAA", + "alpha": 1 + }, + "red": { + "hex": "#CE5252", + "alpha": 1 + }, + "inactive": { + "hex": "#AAAAAA", + "alpha": 1 + }, + "invisible": { + "hex": "#CCCCCC", + "alpha": 1 + }, + "hingeLime": { + "hex": "#99CA3C", + "alpha": 1 + }, + "swanOffBlack": { + "hex": "#2E2E2E", + "alpha": 1 + }, + "textBlack": { + "hex": "#1A1A1A", + "alpha": 1 + }, + "swanGreen": { + "hex": "#7ADFB9", + "alpha": 1 + }, + "lightSwanGreen": { + "hex": "#A5EFD3", + "alpha": 1 + }, + "swanPink": { + "hex": "#F79F9C", + "alpha": 1 + }, + "lightSwanPink": { + "hex": "#FBB4AA", + "alpha": 1 + }, + "backgroundGray": { + "hex": "#F3F3F3", + "alpha": 1 + } + }, + "Images": { + "editProfileDoneButtonBackground": "doneIcon", + "likeBackgroundImageView": "likeIndicatorContainer", + "heartLikeIcon": "likeIcon", + "feedNoteBackgroundView": "noteContainer", + "appIcon": "AppIcon", + "feedEmptyStateCheck": "feedEmptyStateCheck", + "likeActionIcon": "likeAction", + "noteActionIcon": "noteAction", + "notMyTypeActionIcon": "notMyTypeAction", + "logoBlue": "logoBlue", + "startPreferencesIcon": "startPreferencesIcon", + "startProfileIcon": "startProfileIcon", + "pushNotifIcon": "pushNotifIcon", + "locLabelPointerRed": "locLabelPointerRed", + "locLabelPointer": "locLabelPointer", + "fbIconActive": "fbIconActive", + "fbIconInactive": "fbIconInactive", + "igIconActive": "igIconActive", + "igIconInactive": "igIconInactive", + "editIcon": "editIcon", + "doneIcon": "doneIcon", + "visibleIcon": "visibleIcon", + "hideIcon": "hideIcon", + "listeningIcon": "listeningIcon", + "listeningIconInactive": "listeningIconInactive", + "quoteIcon": "quoteIcon", + "quoteIconInactive": "quoteIconInactive", + "readingIcon": "readingIcon", + "readingIconInactive": "readingIconInactive", + "watchingIcon": "watchingIcon", + "watchingIconInactive": "watchingIconInactive", + "noNetworkIcon": "noNetworkIcon", + "noteHideIcon": "noteHideIcon", + "noteShowIcon": "noteShowIcon" + }, + "Views": { + "EditProfileBackdrop": { + "backgroundColor": "lightGrayAlpha" + }, + "profileImage": { + "cornerRadius": 3 + }, + "special": { + "backgroundColor": "lightGray", + "borderColor": "white", + "borderWidth": 2, + "cornerRadius": 10 + }, + "OutgoingBubble": { + "backgroundColor": "white" + }, + "IncomingBubble": { + "backgroundColor": "hingeTeal" + }, + "BasicsCell": { + "backgroundColor": "black", + "borderColor": "black", + "borderWidth": 1, + "cornerRadius": 20 + }, + "NewRecommendations": { + "backgroundColor": "hingeBlue", + "cornerRadius": 22 + }, + "CardContainer": { + "backgroundColor": "white", + "cornerRadius": 6 + }, + "MarkerViewBlack": { + "backgroundColor": "black", + "borderColor": "black", + "borderWidth": 1, + "cornerRadius": 20 + }, + "MarkerViewRed": { + "backgroundColor": "red", + "borderColor": "red", + "borderWidth": 1, + "cornerRadius": 20 + }, + "NoteContainer": { + "backgroundColor": "white", + "borderColor": "borderGray", + "borderWidth": 1, + "cornerRadius": 26 + } + }, + "Labels": { + "H1": { + "textColor": "white", + "textAlignment": "Left", + "attributes": { + "fontStyle": { + "font": "primaryTiemposHeadlineRegular", + "size": 50 + }, + "tracking": 10, + "lineSpacing": 0, + "ligature": 0 + } + }, + "H2": { + "textColor": "black", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 28 + }, + "tracking": 10, + "lineSpacing": 10, + "ligature": 0 + } + }, + "H3": { + "textColor": "black", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 20 + }, + "tracking": 10, + "lineSpacing": 5, + "ligature": 0 + } + }, + "H4": { + "textColor": "white", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 32 + }, + "tracking": 10, + "lineSpacing": 10, + "ligature": 0 + } + }, + "H5": { + "textColor": "white", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 28 + }, + "tracking": 10, + "lineSpacing": 3, + "ligature": 0 + } + }, + "H6": { + "textColor": "white", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 28 + }, + "tracking": 10, + "lineSpacing": 3, + "ligature": 0 + } + }, + "P1": { + "textColor": "white", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "tracking": 10, + "lineSpacing": 5, + "ligature": 0 + } + }, + "P2": { + "textColor": "black", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 16 + }, + "tracking": 5, + "lineSpacing": 5, + "ligature": 0 + } + }, + "P2Inactive": { + "textColor": "inactive", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 16 + }, + "tracking": 5, + "lineSpacing": 5, + "ligature": 0 + } + }, + "P3": { + "textColor": "gray", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 20 + }, + "tracking": 5, + "lineSpacing": 10, + "ligature": 0 + } + }, + "P4": { + "textColor": "white", + "textAlignment": "Left", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 16 + }, + "tracking": 5, + "lineSpacing": 5, + "ligature": 0 + } + }, + "CenteredP4": { + "textColor": "white", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 16 + }, + "tracking": 5, + "lineSpacing": 5, + "ligature": 0 + } + }, + "P5": { + "textColor": "black", + "textAlignment": "Left", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 16 + }, + "tracking": 5, + "lineSpacing": 3, + "ligature": 0 + } + }, + "P6": { + "textColor": "black", + "textAlignment": "Left", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "tracking": 5, + "lineSpacing": 3, + "ligature": 0 + } + }, + "P6Inactive": { + "textColor": "inactive", + "textAlignment": "Left", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "tracking": 5, + "lineSpacing": 3, + "ligature": 0 + } + }, + "P7": { + "textColor": "black", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 20 + }, + "tracking": 5, + "lineSpacing": 3, + "ligature": 0 + } + }, + "P8": { + "textColor": "black", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 12 + }, + "tracking": 5, + "lineSpacing": 3, + "ligature": 0 + } + }, + "MarkerTitle": { + "textColor": "white", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 16 + }, + "tracking": 5, + "lineSpacing": 5, + "ligature": 0 + } + }, + "OutgoingBubbleMessage": { + "textColor": "black", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontLight", + "size": 16 + }, + "minimumLineHeight": 21, + "maximumLineHeight": 21 + } + }, + "OutgoingMessage": { + "textColor": "black", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontLight", + "size": 16 + }, + "minimumLineHeight": 21, + "maximumLineHeight": 21 + } + }, + "OutgoingMessageCentered": { + "textColor": "black", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 16 + }, + "minimumLineHeight": 21, + "maximumLineHeight": 21 + } + }, + "FeedCellDetails": { + "textColor": "black", + "textAlignment": "Left", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 16 + }, + "tracking": 5, + "lineSpacing": 2, + "ligature": 0 + } + }, + "DefaultMessage": { + "textColor": "black", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontLight", + "size": 16 + }, + "minimumLineHeight": 21, + "maximumLineHeight": 21 + } + }, + "DefaultMessageCentered": { + "textColor": "white", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 16 + }, + "minimumLineHeight": 21, + "maximumLineHeight": 21 + } + }, + "NoConnectionMessage": { + "textColor": "darkCoral", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 12 + } + } + }, + "NoRecs": { + "textColor": "white", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 14 + } + } + }, + "ProfileTags": { + "textColor": "white", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 14 + } + } + }, + "ProfileTitle": { + "textColor": "black", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + } + } + }, + "PrivacyLink": { + "textColor": "hingeBlue", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 14 + } + } + }, + "ConversationPreviewTextCentered": { + "textColor": "black", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 14 + }, + "minimumLineHeight": 18, + "maximumLineHeight": 18 + } + }, + "ConversationPreviewText": { + "textColor": "black", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 14 + }, + "minimumLineHeight": 18, + "maximumLineHeight": 18 + } + }, + "ConversationNameUnread": { + "textColor": "textBlack", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 22 + }, + "minimumLineHeight": 18, + "maximumLineHeight": 18 + } + }, + "ConversationPreviewTextUnread": { + "textColor": "textBlack", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontLight", + "size": 16 + }, + "minimumLineHeight": 18, + "maximumLineHeight": 18 + } + }, + "ConversationPreviewTextInactive": { + "textColor": "inactive", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 14 + }, + "minimumLineHeight": 18, + "maximumLineHeight": 18 + } + }, + "MessagePlaceholderText": { + "textColor": "mediumGray", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 16 + } + } + }, + "WelcomeScreenText": { + "textColor": "white", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 20 + } + } + }, + "MyType": { + "textColor": "black", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 18 + } + } + }, + "MyTypeHighlighted": { + "textColor": "black", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 18 + } + } + }, + "ImagesTabEmpty": { + "textColor": "black", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 16 + } + } + }, + "LikeInterstitialLead": { + "textColor": "white", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 16 + }, + "lineSpacing": 5 + } + }, + "LikeInterstitialBody": { + "textColor": "white", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 20 + }, + "lineSpacing": 6 + } + }, + "MyAccountHeader": { + "textColor": "offWhite", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 14 + } + } + }, + "PickerText": { + "textColor": "black", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 24 + }, + "tracking": 5, + "lineSpacing": 10, + "ligature": 0 + } + }, + "CustomSwitch": { + "textColor": "white", + "textAlignment": "Center", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 12 + }, + "lineSpacing": 5 + } + }, + "Dealbreaker": { + "textColor": "offWhite", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 16 + } + } + }, + "BasicsTitle": { + "textColor": "black", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 14 + } + } + }, + "CharacterCount": { + "textColor": "red", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontLight", + "size": 14 + } + } + }, + "CharacterLimit": { + "textColor": "black", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontLight", + "size": 14 + } + } + }, + "Error": { + "textColor": "darkCoral", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 14 + } + } + }, + "Success": { + "textColor": "hingeLime", + "attributes": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 14 + } + } + } + }, + "Buttons": { + "B1SignIn": { + "borderColor": "darkBlue", + "borderWidth": 1, + "cornerRadius": 26, + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "normalState": { + "backgroundColor": "darkBlue", + "textColor": "white" + }, + "selectedState": { + "backgroundColor": "darkerBlue", + "textColor": "white" + }, + "highlightedState": { + "backgroundColor": "darkerBlue", + "textColor": "white" + } + }, + "B2LikeNote": { + "borderColor": "clear", + "borderWidth": 0, + "cornerRadius": 22, + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "normalState": { + "backgroundColor": "clear", + "textColor": "white" + } + }, + "NotMyType": { + "borderColor": "offWhite", + "borderWidth": 1, + "cornerRadius": 16, + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 14 + }, + "normalState": { + "backgroundColor": "black", + "textColor": "white" + } + }, + "Done": { + "alpha": 1, + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 14 + }, + "normalState": { + "backgroundColor": "lightSwanPink", + "textColor": "black" + }, + "selectedState": { + "backgroundColor": "lightSwanPink", + "textColor": "black" + }, + "highlightedState": { + "backgroundColor": "lightSwanPink", + "textColor": "black" + } + }, + "SendButton": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "normalState": { + "backgroundColor": "white", + "textColor": "hingeBlue" + }, + "selectedState": { + "backgroundColor": "white", + "textColor": "hingeBlue" + }, + "highlightedState": { + "backgroundColor": "white", + "textColor": "hingeBlue" + } + }, + "ProfileTitle": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "normalState": { + "textColor": "black" + } + }, + "InterstitialButton": { + "borderColor": "hingeBlue", + "borderWidth": 1, + "cornerRadius": 25, + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "normalState": { + "backgroundColor": "hingeBlue", + "textColor": "white" + } + }, + "EnablePushYes": { + "borderColor": "white", + "borderWidth": 1, + "cornerRadius": 26, + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "normalState": { + "backgroundColor": "white", + "textColor": "black" + } + }, + "EnablePushNo": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "normalState": { + "textColor": "white" + } + }, + "NoteInterstitialConfirm": { + "borderColor": "lightSwanGreen", + "borderWidth": 1, + "cornerRadius": 26, + "backgroundColor": "lightSwanGreen", + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 14 + }, + "normalState": { + "textColor": "black" + } + }, + "ConnectWith": { + "borderColor": "hingeBlue", + "borderWidth": 1, + "cornerRadius": 26, + "backgroundColor": "hingeBlue", + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "normalState": { + "textColor": "white" + } + }, + "Next": { + "borderColor": "lightSwanGreen", + "borderWidth": 1, + "cornerRadius": 26, + "backgroundColor": "lightSwanGreen", + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 14 + }, + "normalState": { + "textColor": "black" + } + }, + "NextDisabled": { + "borderColor": "cardBorderGray", + "borderWidth": 1, + "backgroundColor": "cardBorderGray", + "cornerRadius": 30, + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 18 + }, + "normalState": { + "textColor": "offWhite" + } + }, + "StartConnectingButton": { + "backgroundColor": "hingeBlue", + "cornerRadius": 30, + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "normalState": { + "textColor": "white" + } + }, + "LikeInterstitialCancel": { + "borderColor": "hingeBlue", + "borderWidth": 2, + "cornerRadius": 26, + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "normalState": { + "backgroundColor": "clear", + "textColor": "white" + } + }, + "LikeInterstitialConfirm": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 14 + }, + "normalState": { + "backgroundColor": "clear", + "textColor": "swanGreen" + } + }, + "Locate": { + "borderColor": "hingeBlue", + "borderWidth": 2, + "cornerRadius": 22, + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "normalState": { + "backgroundColor": "white", + "textColor": "hingeBlue" + }, + "selectedState": { + "backgroundColor": "hingeBlue", + "textColor": "white" + }, + "highlightedState": { + "backgroundColor": "hingeBlue", + "textColor": "white" + } + }, + "DiscoverLikeDisabled": { + "borderWidth": 2, + "cornerRadius": 26, + "borderColor": "clear", + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "normalState": { + "backgroundColor": "cardBorderGray", + "textColor": "offWhite" + } + }, + "DiscoverLikeEnabled": { + "borderWidth": 2, + "cornerRadius": 26, + "borderColor": "clear", + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "normalState": { + "backgroundColor": "hingeBlue", + "textColor": "white" + } + }, + "LogOut": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 16 + }, + "normalState": { + "textColor": "black" + } + }, + "linkStyle": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 14 + }, + "normalState": { + "textColor": "hingeBlue", + "textAlignment": "Left" + } + }, + "NoteSend": { + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 16 + }, + "normalState": { + "textColor": "hingeBlue" + }, + "disabledState": { + "textColor": "inactive" + } + }, + "NoteSecondaryAction": { + "backgroundColor": "hingeBlue", + "cornerRadius": 26, + "fontStyle": { + "font": "primaryNationalFontBold", + "size": 20 + }, + "normalState": { + "textColor": "white" + } + }, + "Clear" : { + "fontStyle" : { + "font" : "primaryNationalFontBold", + "size" : 16 + }, + "normalState" : "white" + }, + "AsNavButton": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 16 + }, + "normalState": { + "textColor": "hingeBlue" + }, + "disabledState": { + "textColor": "inactive" + } + }, + "UserInfoCardRadioCircle" : { + "fontStyle" : { + "font" : "primaryNationalFontLight", + "size" : 16 + }, + "normalState" : { + "textColor" : "black" + }, + "selectedState" : { + "textColor" : "black" + } + }, + "UserInfoCardRadioBlock" : { + "borderColor" : "borderGray", + "borderWidth" : 1, + "fontStyle" : { + "font" : "primaryNationalFontLight", + "size" : 16 + }, + "normalState" : { + "textColor" : "black", + "backgroundColor" : "white" + }, + "highlightedState" : { + "textColor" : "black", + "backgroundColor" : "borderGray" + }, + "selectedState" : { + "textColor" : "black", + "backgroundColor" : "borderGray" + } + } + }, + "TextFields": { + "T1": { + "fontStyle": { + "font": "primaryNationalFontRegular", + "size": 17 + }, + "textColor": "black", + "backgroundColor": "white", + "borderColor": "clear", + "textAlignment": "Left", + "borderWidth": 0, + "cornerRadius": 0, + "borderStyle": "None" + } + }, + "SegmentedControls": { + }, + "TextViews": { + "TV1": { + "textColor": "blueColor", + "attributes": { + "fontStyle": { + "font": "primaryFontLight", + "size": 20 + } + } + } + } +} diff --git a/StyleKit/StyleKitDemo/StyleKit/StylesViewController.swift b/StyleKit/StyleKitDemo/StyleKit/StylesViewController.swift new file mode 100644 index 0000000..cded9f0 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/StylesViewController.swift @@ -0,0 +1,124 @@ + +import UIKit + +class StylesViewController: UIViewController { + + @IBOutlet weak var tableView: UITableView! + @IBOutlet weak var button: UIButton! + + var sectionHeaders = Array(Style.sharedInstance.styleMap.keys) + var styleMap = Style.sharedInstance.styleMap + var resources:[String:AnyObject] = ["Colors":Array(Style.sharedInstance.resources.colors.keys), + "Fonts":Array(Style.sharedInstance.resources.fontLabels.keys), + "Images":Array(Style.sharedInstance.resources.imageNames.keys)] + + + @IBAction func buttonTapped(sender: AnyObject) { + Utils.downloadStyleFile() + } + + override func viewDidLoad() { + super.viewDidLoad() + + title = "Styles Preview" + Style.sharedInstance.addSubscriber(self) + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + + } + + func updateUI() { + sectionHeaders = Array(Style.sharedInstance.styleMap.keys) + styleMap = Style.sharedInstance.styleMap + resources = ["Colors":Array(Style.sharedInstance.resources.colors.keys), + "Fonts":Array(Style.sharedInstance.resources.fontLabels.keys), + "Images":Array(Style.sharedInstance.resources.imageNames.keys)] + tableView.reloadData() + } +} + +extension StylesViewController: StyleKitSubscriber { + func update() { + self.updateUI() + } +} + +extension StylesViewController: UITableViewDelegate { + + func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { + + switch sectionHeaders[indexPath.section] { + case .button, .view, .textField: + return 70.0 + default: + return 54.0 + } + } +} + +extension StylesViewController: UITableViewDataSource { + + + func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + if let styles = styleMap[sectionHeaders[section]] { + return styles.keys.count + } + return 0 + } + + + func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + + let sectionHeader = sectionHeaders[indexPath.section] + + let cell = tableView.dequeueReusableCellWithIdentifier("\(sectionHeader.rawValue)Cell", forIndexPath: indexPath) + + var styleTag = "" + if let styles = styleMap[sectionHeader] { + let allTags = Array(styles.keys) + styleTag = allTags[indexPath.row] + + switch sectionHeader { + case .button: + (cell as! ButtonTableViewCell).button.styleTag = styleTag + (cell as! ButtonTableViewCell).button.setTitle(styleTag, forState: .Normal) + case .segmentedControl: + (cell as! SegmentedControlsTableViewCell).segmentedControl.styleTag = styleTag + (cell as! SegmentedControlsTableViewCell).label.text = styleTag + case .textField: + (cell as! TextFieldsTableViewCell).textField.styleTag = styleTag + (cell as! TextFieldsTableViewCell).textField.text = styleTag + case .label: + (cell as! LabelsTableViewCell).label.styleTag = styleTag + (cell as! LabelsTableViewCell).label.text = styleTag + case .slider: + (cell as! SlidersTableViewCell).slider.styleTag = styleTag + (cell as! SlidersTableViewCell).label.text = styleTag + case .stepper: + (cell as! SteppersTableViewCell).stepper.styleTag = styleTag + (cell as! SteppersTableViewCell).label.text = styleTag + case .progressView: + (cell as! ProgressViewsTableViewCell).progressView.styleTag = styleTag + (cell as! ProgressViewsTableViewCell).label.text = styleTag + case .view: + (cell as! ViewsTableViewCell).view.styleTag = styleTag + (cell as! ViewsTableViewCell).label.text = styleTag + case .textView: + (cell as! TextViewsTableViewCell).textView.styleTag = styleTag + (cell as! TextViewsTableViewCell).textView.text = styleTag + } + } + + return cell + } + + func numberOfSectionsInTableView(tableView: UITableView) -> Int { + return sectionHeaders.count + } + + func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + return sectionHeaders[section].rawValue + } +} diff --git a/StyleKit/StyleKitDemo/StyleKit/TextFieldStylist.swift b/StyleKit/StyleKitDemo/StyleKit/TextFieldStylist.swift new file mode 100644 index 0000000..7ff1b19 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/TextFieldStylist.swift @@ -0,0 +1,138 @@ + +import Foundation +import UIKit + +class TextFieldStyle : Stylist { + + typealias Element = UITextField + + var fontStyle: FontStyle? + var textColor: UIColor? + var borderColor: UIColor? + var borderWidth: Int? + var cornerRadius: Int? + var textAlignment: NSTextAlignment? + var borderStyle: UITextBorderStyle? + var backgroundColor: UIColor? + + enum Properties: String { + case FontStyle = "fontStyle" + case BorderWidth = "borderWidth" + case BorderColor = "borderColor" + case CornerRadius = "cornerRadius" + case TextAlignment = "textAlignment" + case BorderStyle = "borderStyle" + case TextColor = "textColor" + case BackgroundColor = "backgroundColor" + } + + static let allValues:[Properties] = [.BackgroundColor, .FontStyle, .BorderWidth, .BorderColor, .CornerRadius, .TextAlignment, .BorderStyle, .TextColor] + + static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> TextFieldStyle { + let result = TextFieldStyle() + for (key,value) in spec { + guard let property = TextFieldStyle.Properties(rawValue: key) else { + print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") + continue + } + + switch property { + + case TextFieldStyle.Properties.FontStyle: + if let fontSpec = value as? [String:AnyObject] { + result.fontStyle = Style.serializeFontSpec(fontSpec, resources: resources) + } + case TextFieldStyle.Properties.BorderWidth: + if let borderWidth = value as? Int { + result.borderWidth = borderWidth + } + case TextFieldStyle.Properties.TextColor: + if let colorKey = value as? String, color = resources.colors[colorKey] { + result.textColor = color + } + case TextFieldStyle.Properties.BorderColor: + if let colorKey = value as? String, color = resources.colors[colorKey] { + result.borderColor = color + } + case TextFieldStyle.Properties.TextAlignment: + if let styleStr = value as? String, let alignment = mapTextAlignmentType(styleStr) { + result.textAlignment = alignment + } + case TextFieldStyle.Properties.BorderStyle: + if let styleStr = value as? String, let border = mapBorderStyle(styleStr) { + result.borderStyle = border + } + case TextFieldStyle.Properties.CornerRadius: + if let cornerRadius = value as? Int { + result.cornerRadius = cornerRadius + } + case TextFieldStyle.Properties.BackgroundColor: + if let colorKey = value as? String, color = resources.colors[colorKey] { + result.backgroundColor = color + } + } + } + + return result + } + + static func mapTextAlignmentType(styleStr:String) -> NSTextAlignment? { + let allowedValues = ["Left","Center","Right","Justified","Natural"] + if let index = allowedValues.indexOf(styleStr) { + return NSTextAlignment(rawValue: index) + } + return nil + } + + static func mapBorderStyle(styleStr:String) -> UITextBorderStyle? { + let allowedValues = ["None","Line","Bezel","RoundedRect"] + if let index = allowedValues.indexOf(styleStr) { + return UITextBorderStyle(rawValue: index) + } + return nil + } +} + +extension UITextField { + + func applyStyle(style:TextFieldStyle, resources:CommonResources) { + for property in TextFieldStyle.allValues { + switch property { + case .FontStyle: + if let fontStyle = style.fontStyle { + self.font = UIFont(name: fontStyle.fontName, size: CGFloat(fontStyle.size)) + } + case .BorderWidth: + if let borderWidth = style.borderWidth { + self.layer.borderWidth = CGFloat(borderWidth) + } + case .BorderColor: + if let borderColor = style.borderColor { + self.layer.borderColor = borderColor.CGColor + } + case .TextAlignment: + if let aValue = style.textAlignment { + self.textAlignment = aValue + } + case .BorderStyle: + if let aValue = style.borderStyle { + self.borderStyle = aValue + } + case .CornerRadius: + if let cornerRadius = style.cornerRadius { + self.layer.cornerRadius = CGFloat(cornerRadius) + } + case .TextColor: + if let color = style.textColor { + self.textColor = color + } + case .BackgroundColor: + if let color = style.backgroundColor { + self.backgroundColor = color + } + } + } + } + +} + diff --git a/StyleKit/StyleKitDemo/StyleKit/TextFieldsTableViewCell.swift b/StyleKit/StyleKitDemo/StyleKit/TextFieldsTableViewCell.swift new file mode 100644 index 0000000..bb7caf8 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/TextFieldsTableViewCell.swift @@ -0,0 +1,22 @@ +// +// TextFieldsTableViewCell.swift +// StyleKitSample +// +// Created by Eric Kille on 10/22/16. +// Copyright © 2016 Tonic Design. All rights reserved. +// + +import UIKit + +class TextFieldsTableViewCell: UITableViewCell { + + @IBOutlet weak var textField: UITextField! + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + + + +} diff --git a/StyleKit/StyleKitDemo/StyleKit/TextViewStylist.swift b/StyleKit/StyleKitDemo/StyleKit/TextViewStylist.swift new file mode 100644 index 0000000..7fef1da --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/TextViewStylist.swift @@ -0,0 +1,130 @@ +import UIKit + +class TextViewStyle { + typealias Element = UITextView + + var textColor: UIColor? + var textAlignment: NSTextAlignment? + var attributes: AttributedTextStyle? + var backgroundColor: UIColor? + + enum Properties: String { + case TextColor = "textColor" + case TextAlignment = "textAlignment" + case Attributes = "attributes" + case BackgroundColor = "backgroundColor" + static let allValues:[Properties] = [.TextColor, .TextAlignment, .Attributes, .BackgroundColor] + } + + static var textAlignmentKeyMap:[String:NSTextAlignment] = ["Left":.Left, + "Center":.Center, + "Right":.Right, + "Justified":.Justified, + "Natural":.Natural] + + static func attributesForTextView(styles:AttributedTextStyle) -> Dictionary { + let style = NSMutableParagraphStyle() + style.alignment = NSTextAlignment.Center + if let lineSpace = styles.lineSpacing { + style.lineSpacing = lineSpace + } + + var attributes:[String: AnyObject] = [:] + + if let fontName = styles.fontStyle?.fontName, let fontSize = styles.fontStyle?.size { + attributes[NSFontAttributeName] = UIFont(name: fontName, size: CGFloat(fontSize)) + } + + if let tracking = styles.tracking, let fontSize = styles.fontStyle?.size { + let characterSpacing = fontSize * tracking / 1000 + attributes[NSKernAttributeName] = characterSpacing + } + + attributes[NSParagraphStyleAttributeName] = style + + return attributes + } + + static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> TextViewStyle { + let textViewStyle = TextViewStyle() + for (key,value) in spec { + guard let property = TextViewStyle.Properties(rawValue: key) else { + print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") + continue + } + switch property { + + case TextViewStyle.Properties.TextAlignment: + if let textAlignmentKey = value as? String, let alignment = TextViewStyle.textAlignmentKeyMap[textAlignmentKey] { + textViewStyle.textAlignment = alignment + } + case TextViewStyle.Properties.TextColor: + if let colorKey = value as? String, let color = resources.colors[colorKey] { + textViewStyle.textColor = color + } + case TextViewStyle.Properties.Attributes: + if let attributes = value as? [String:AnyObject] + { + let attr = try TextViewStyle.serializeFormatAttributesSpec(attributes, resources:resources) + textViewStyle.attributes = attr + } + case TextViewStyle.Properties.BackgroundColor: + if let colorKey = value as? String, let color = resources.colors[colorKey] { + textViewStyle.backgroundColor = color + } + } + } + return textViewStyle + } + + static func serializeFormatAttributesSpec(spec: [String:AnyObject], resources:CommonResources) throws -> AttributedTextStyle { + + let style = AttributedTextStyle() + for (key,value) in spec { + guard let property = AttributedTextStyle.Properties(rawValue: key) else { + print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") + continue + } + switch property { + case .FontStyle: + if let fontSpec = value as? [String:AnyObject] + { + style.fontStyle = Style.serializeFontSpec(fontSpec, resources: resources) + } + case .Tracking: + if let tracking = value as? Int { + style.tracking = tracking + } + case .LineSpacing: + if let lineSpacing = value as? CGFloat { + style.lineSpacing = lineSpacing + } + case .Ligature: + if let ligature = value as? Int { + style.ligature = ligature + } + } + } + return style + } +} + +extension UITextView { + func applyStyle(style: TextViewStyle, resources:CommonResources) { + for property in TextViewStyle.Properties.allValues { + switch property { + case .TextColor: + self.textColor = style.textColor + case .TextAlignment: + self.textAlignment = style.textAlignment ?? self.textAlignment + case .Attributes: + if let attributes = style.attributes, text = self.text { + let asdf = TextViewStyle.attributesForTextView(attributes) + self.attributedText = NSAttributedString(string: text, attributes:asdf) + } + case .BackgroundColor: + self.backgroundColor = style.backgroundColor + } + } + } +} diff --git a/StyleKit/StyleKitDemo/StyleKit/TextViewsTableViewCell.swift b/StyleKit/StyleKitDemo/StyleKit/TextViewsTableViewCell.swift new file mode 100644 index 0000000..eaa5ce3 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/TextViewsTableViewCell.swift @@ -0,0 +1,18 @@ +import UIKit + +class TextViewsTableViewCell: UITableViewCell { + + @IBOutlet weak var textView: UITextView! + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + + override func setSelected(selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + + // Configure the view for the selected state + } + +} diff --git a/StyleKit/StyleKitDemo/StyleKit/UIView+StyleKit.swift b/StyleKit/StyleKitDemo/StyleKit/UIView+StyleKit.swift new file mode 100644 index 0000000..cc64322 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/UIView+StyleKit.swift @@ -0,0 +1,28 @@ + +import UIKit + +extension UIView { + private struct AssociatedKeys { + static var styleTag = "" + } + + /** + Setting the styleTag automatically applies styles as defined in the stylesheet + */ + @IBInspectable var styleTag: String? { + get { + return objc_getAssociatedObject(self, &AssociatedKeys.styleTag) as? String + } + + set { + if let newValue = newValue { + objc_setAssociatedObject(self, + &AssociatedKeys.styleTag, + newValue as NSString?, + .OBJC_ASSOCIATION_RETAIN_NONATOMIC + ) + self.style() + } + } + } +} diff --git a/StyleKit/StyleKitDemo/StyleKit/Utils.swift b/StyleKit/StyleKitDemo/StyleKit/Utils.swift new file mode 100644 index 0000000..951c065 --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/Utils.swift @@ -0,0 +1,64 @@ + +import Foundation +import UIKit + + +struct Utils { + static let documentDirectory = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).last +} + +extension UIColor { + convenience init(red: Int, green: Int, blue: Int, alph: Float) { + assert(red >= 0 && red <= 255, "Invalid red component") + assert(green >= 0 && green <= 255, "Invalid green component") + assert(blue >= 0 && blue <= 255, "Invalid blue component") + + self.init(red: CGFloat(red) / 255.0, green: CGFloat(green) / 255.0, blue: CGFloat(blue) / 255.0, alpha: CGFloat(alph)) + } + + convenience init(withHex:Int, alpha:Float) { + self.init(red:(withHex >> 16) & 0xff, + green:(withHex >> 8) & 0xff, + blue:withHex & 0xff, + alph: alpha) + } +} + +extension String { + /// Converts hex format `#123ABC` or `123ABC` to Int value + func hexColorToInt() -> Int? { + guard dropPoundPrefix.characters.count == 6 else { return nil } + return dropPoundPrefix.hexaToDecimal + } +} + +extension String { + var dropPoundPrefix: String { return hasPrefix("#") ? String(characters.dropFirst(1)) : self } + var drop0xPrefix: String { return hasPrefix("0x") ? String(characters.dropFirst(2)) : self } + var drop0bPrefix: String { return hasPrefix("0b") ? String(characters.dropFirst(2)) : self } + var hexaToDecimal: Int { return Int(drop0xPrefix, radix: 16) ?? 0 } + var hexaToBinaryString: String { return String(hexaToDecimal, radix: 2) } + var decimalToHexaString: String { return String(Int(self) ?? 0, radix: 16) } + var decimalToBinaryString: String { return String(Int(self) ?? 0, radix: 2) } + var binaryToDecimal: Int { return Int(drop0bPrefix, radix: 2) ?? 0 } + var binaryToHexaString: String { return String(binaryToDecimal, radix: 16) } +} + +extension Int { + var toBinaryString: String { return String(self, radix: 2) } + var toHexaString: String { return String(self, radix: 16) } +} + +extension UIImage { + + class func imageWithColor(color: UIColor) -> UIImage { + let rect = CGRectMake(0, 0, 0.5, 44.0) + UIGraphicsBeginImageContext(rect.size) + let context = UIGraphicsGetCurrentContext() + CGContextSetFillColorWithColor(context!, color.CGColor); + CGContextFillRect(context!, rect); + let image = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + return image! + } +} diff --git a/StyleKit/StyleKitDemo/StyleKit/ViewController.swift b/StyleKit/StyleKitDemo/StyleKit/ViewController.swift new file mode 100644 index 0000000..be7e33b --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/ViewController.swift @@ -0,0 +1,24 @@ +// +// ViewController.swift +// StyleKitSample +// +// Created by Eric Kille on 3/10/16. +// Copyright © 2016 Tonic Design. All rights reserved. +// + +import UIKit + +class ViewController: UIViewController { + + @IBOutlet weak var button1: UIButton! + + override func viewDidLoad() { + super.viewDidLoad() + } + + override func didReceiveMemoryWarning() { + super.didReceiveMemoryWarning() + } + +} + diff --git a/StyleKit/StyleKitDemo/StyleKit/ViewStylist.swift b/StyleKit/StyleKitDemo/StyleKit/ViewStylist.swift new file mode 100644 index 0000000..5be2eef --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/ViewStylist.swift @@ -0,0 +1,164 @@ + +import Foundation +import UIKit + +class ViewStyle : Stylist { + + typealias Element = UIView + + var borderWidth: Int? + var borderColor: UIColor? + var cornerRadius: Int? + var backgroundColor: UIColor? + + enum Properties: String { + case BorderWidth = "borderWidth" + case BorderColor = "borderColor" + case CornerRadius = "cornerRadius" + case BackgroundColor = "backgroundColor" + } + + static let allValues:[Properties] = [.BorderWidth, .BorderColor, .CornerRadius, .BackgroundColor] + + static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> ViewStyle { + let style = ViewStyle() + for (key,value) in spec { + guard let property = ViewStyle.Properties(rawValue: key) else { + print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") + continue + } + switch property { + case .BorderColor: + if let colorKey = value as? String, + let color = resources.colors[colorKey] { + style.borderColor = color + } + case .BorderWidth: + if let width = value as? Int { + style.borderWidth = width + } + case .CornerRadius: + if let radius = value as? Int { + style.cornerRadius = radius + } + case .BackgroundColor: + if let colorKey = value as? String, + let color = resources.colors[colorKey] { + style.backgroundColor = color + } + } + } + return style + } + +} + +extension UIView { + + private func applyStyle(style:ViewStyle, resources:CommonResources) { + for property in ViewStyle.allValues { + switch property { + case .BorderWidth: + if let borderWidth = style.borderWidth { + self.layer.borderWidth = CGFloat(borderWidth) + } + case .BorderColor: + if let borderColor = style.borderColor { + self.layer.borderColor = borderColor.CGColor + } + case .CornerRadius: + if let cornerRadius = style.cornerRadius { + self.layer.cornerRadius = CGFloat(cornerRadius) + } + case .BackgroundColor: + if let color = style.backgroundColor { + self.backgroundColor = color + } + } + } + } + + /** + Apply the styles of the active stylesheet to the view. + */ + func style() { + guard let styleTag = self.styleTag else { + print("StyleKit: Warning: Instance of \(self.dynamicType) with no styleTag") + return + } + switch self { + case is UISegmentedControl: + if let elementStyles = Style.sharedInstance.styleMap[.segmentedControl], + let styles = elementStyles[styleTag], + let styleObject = styles as? SegmentedControlStyle { + (self as! UISegmentedControl).applyStyle(styleObject, resources: Style.sharedInstance.resources) + } else { + print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") + } + case is UITextField: + if let elementStyles = Style.sharedInstance.styleMap[.textField], + let styles = elementStyles[styleTag], + let styleObject = styles as? TextFieldStyle { + (self as! UITextField).applyStyle(styleObject, resources: Style.sharedInstance.resources) + } else { + print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") + } + case is UIButton: + if let elementStyles = Style.sharedInstance.styleMap[.button], + let styles = elementStyles[styleTag], + let styleObject = styles as? ButtonStyle { + (self as! UIButton).applyStyle(styleObject, resources: Style.sharedInstance.resources) + } else { + print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") + } + case is UILabel: + if let elementStyles = Style.sharedInstance.styleMap[.label], + let styles = elementStyles[styleTag], + let styleObject = styles as? LabelStyle { + (self as! UILabel).applyStyle(styleObject, resources: Style.sharedInstance.resources) + } else { + print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") + } + case is UISlider: + if let elementStyles = Style.sharedInstance.styleMap[.slider], + let styles = elementStyles[styleTag], + let styleObject = styles as? SliderStyle { + (self as! UISlider).applyStyle(styleObject, resources: Style.sharedInstance.resources) + } else { + print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") + } + case is UIStepper: + if let elementStyles = Style.sharedInstance.styleMap[.stepper], + let styles = elementStyles[styleTag], + let styleObject = styles as? StepperStyle { + (self as! UIStepper).applyStyle(styleObject, resources: Style.sharedInstance.resources) + } else { + print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") + } + case is UIProgressView: + if let elementStyles = Style.sharedInstance.styleMap[.progressView], + let styles = elementStyles[styleTag], + let styleObject = styles as? ProgressViewStyle { + (self as! UIProgressView).applyStyle(styleObject, resources: Style.sharedInstance.resources) + } else { + print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") + } + case is UITextView: + if let elementStyles = Style.sharedInstance.styleMap[.textView], + let styles = elementStyles[styleTag], + let styleObject = styles as? TextViewStyle { + (self as! UITextView).applyStyle(styleObject, resources: Style.sharedInstance.resources) + } else { + print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") + } + default: + if let elementStyles = Style.sharedInstance.styleMap[.view], + let styles = elementStyles[styleTag], + let styleObject = styles as? ViewStyle { + self.applyStyle(styleObject, resources: Style.sharedInstance.resources) + } else { + print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") + } + } + } +} diff --git a/StyleKit/StyleKitDemo/StyleKit/ViewsTableViewCell.swift b/StyleKit/StyleKitDemo/StyleKit/ViewsTableViewCell.swift new file mode 100644 index 0000000..5df168e --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKit/ViewsTableViewCell.swift @@ -0,0 +1,21 @@ +// +// ViewsTableViewCell.swift +// StyleKitSample +// +// Created by Eric Kille on 10/22/16. +// Copyright © 2016 Tonic Design. All rights reserved. +// + +import UIKit + +class ViewsTableViewCell: UITableViewCell { + + + @IBOutlet weak var label: UILabel! + @IBOutlet weak var view: UIView! + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } +} From 4e9564ab64ca3ff5d4e51e8d17abfef1fb472309 Mon Sep 17 00:00:00 2001 From: Eric Kille Date: Fri, 28 Oct 2016 10:38:22 -0400 Subject: [PATCH 4/8] Renamed demo project to demo project --- .../StyleKit/Base.lproj/Main.storyboard | 27 +++++++++---------- .../project.pbxproj | 20 +++++++------- .../contents.xcworkspacedata | 2 +- 3 files changed, 24 insertions(+), 25 deletions(-) rename StyleKit/StyleKitDemo/{StyleKit.xcodeproj => StyleKitDemo.xcodeproj}/project.pbxproj (97%) rename StyleKit/StyleKitDemo/{StyleKit.xcodeproj => StyleKitDemo.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (72%) diff --git a/StyleKit/StyleKitDemo/StyleKit/Base.lproj/Main.storyboard b/StyleKit/StyleKitDemo/StyleKit/Base.lproj/Main.storyboard index a185392..483e90a 100644 --- a/StyleKit/StyleKitDemo/StyleKit/Base.lproj/Main.storyboard +++ b/StyleKit/StyleKitDemo/StyleKit/Base.lproj/Main.storyboard @@ -1,16 +1,15 @@ - - + - + @@ -22,11 +21,11 @@ - + - + @@ -509,10 +508,10 @@ Sending out an S.O.S. - + - + @@ -527,7 +526,7 @@ Sending out an S.O.S. - + @@ -672,7 +671,7 @@ Sending out an S.O.S. - + diff --git a/StyleKit/StyleKitDemo/StyleKit.xcodeproj/project.pbxproj b/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.pbxproj similarity index 97% rename from StyleKit/StyleKitDemo/StyleKit.xcodeproj/project.pbxproj rename to StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.pbxproj index 61fc405..e70f1b6 100644 --- a/StyleKit/StyleKitDemo/StyleKit.xcodeproj/project.pbxproj +++ b/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.pbxproj @@ -72,7 +72,7 @@ 294526961DC39852003AF49E /* Brandon_med.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_med.otf; path = StyleKit/Fonts/Brandon_med.otf; sourceTree = SOURCE_ROOT; }; 294526971DC39852003AF49E /* Brandon_thin.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_thin.otf; path = StyleKit/Fonts/Brandon_thin.otf; sourceTree = SOURCE_ROOT; }; 295D21781C9214AA001626BD /* Style.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; lineEnding = 0; path = Style.json; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.javascript; }; - 298DC6071C92073E00BB0D29 /* StyleKit.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = StyleKit.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 298DC6071C92073E00BB0D29 /* StyleKitDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = StyleKitDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 298DC60A1C92073E00BB0D29 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 298DC60C1C92073E00BB0D29 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 298DC60F1C92073E00BB0D29 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; @@ -182,7 +182,7 @@ 298DC6081C92073E00BB0D29 /* Products */ = { isa = PBXGroup; children = ( - 298DC6071C92073E00BB0D29 /* StyleKit.app */, + 298DC6071C92073E00BB0D29 /* StyleKitDemo.app */, ); name = Products; sourceTree = ""; @@ -205,9 +205,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 298DC6061C92073E00BB0D29 /* StyleKit */ = { + 298DC6061C92073E00BB0D29 /* StyleKitDemo */ = { isa = PBXNativeTarget; - buildConfigurationList = 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKit" */; + buildConfigurationList = 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKitDemo" */; buildPhases = ( 298DC6031C92073E00BB0D29 /* Sources */, 298DC6041C92073E00BB0D29 /* Frameworks */, @@ -217,9 +217,9 @@ ); dependencies = ( ); - name = StyleKit; + name = StyleKitDemo; productName = StyleKitSample; - productReference = 298DC6071C92073E00BB0D29 /* StyleKit.app */; + productReference = 298DC6071C92073E00BB0D29 /* StyleKitDemo.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -238,7 +238,7 @@ }; }; }; - buildConfigurationList = 298DC6021C92073E00BB0D29 /* Build configuration list for PBXProject "StyleKit" */; + buildConfigurationList = 298DC6021C92073E00BB0D29 /* Build configuration list for PBXProject "StyleKitDemo" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; @@ -251,7 +251,7 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 298DC6061C92073E00BB0D29 /* StyleKit */, + 298DC6061C92073E00BB0D29 /* StyleKitDemo */, ); }; /* End PBXProject section */ @@ -446,7 +446,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 298DC6021C92073E00BB0D29 /* Build configuration list for PBXProject "StyleKit" */ = { + 298DC6021C92073E00BB0D29 /* Build configuration list for PBXProject "StyleKitDemo" */ = { isa = XCConfigurationList; buildConfigurations = ( 298DC6171C92073E00BB0D29 /* Debug */, @@ -455,7 +455,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKit" */ = { + 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKitDemo" */ = { isa = XCConfigurationList; buildConfigurations = ( 298DC61A1C92073E00BB0D29 /* Debug */, diff --git a/StyleKit/StyleKitDemo/StyleKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 72% rename from StyleKit/StyleKitDemo/StyleKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 7c5bdc5..8b99557 100644 --- a/StyleKit/StyleKitDemo/StyleKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:/Users/erickille/Documents/TonicDesign/repos/StyleKit-Demo/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj"> From 1a53dcfd8d1bbf0ae3d2240e8f26a0bb3792dbf4 Mon Sep 17 00:00:00 2001 From: Eric Kille Date: Fri, 28 Oct 2016 11:24:34 -0400 Subject: [PATCH 5/8] Create StyleKit framework --- StyleKit/StyleKit.xcodeproj/project.pbxproj | 447 ++++--- StyleKit/StyleKit/AppDelegate.swift | 22 - .../AppIcon.appiconset/Contents.json | 48 - .../BlueBar.imageset/BlueBar.png | Bin 2929 -> 0 bytes .../BlueBar.imageset/Contents.json | 21 - .../BlueDot.imageset/BlueDot.png | Bin 2137 -> 0 bytes .../BlueDot.imageset/Contents.json | 21 - .../StyleKit/Assets.xcassets/Contents.json | 6 - .../Diamond.imageset/Contents.json | 21 - .../Diamond.imageset/Diamond.png | Bin 3772 -> 0 bytes .../GreenBar.imageset/Contents.json | 21 - .../GreenBar.imageset/GreenBar.png | Bin 2877 -> 0 bytes .../Pattern.imageset/Contents.json | 21 - .../Pattern.imageset/pattern@2x.png | Bin 6703 -> 0 bytes .../Star.imageset/Contents.json | 21 - .../Assets.xcassets/Star.imageset/Star.png | Bin 4535 -> 0 bytes .../black_button_image.imageset/Contents.json | 21 - .../black_button_image.png | Bin 30305 -> 0 bytes .../Button_Blank_Green_Icon_256.png | Bin 5478 -> 0 bytes .../greenThumbImage.imageset/Contents.json | 21 - .../Base.lproj/LaunchScreen.storyboard | 27 - StyleKit/StyleKit/Base.lproj/Main.storyboard | 685 ---------- StyleKit/StyleKit/ButtonTableViewCell.swift | 26 - StyleKit/StyleKit/DemoCode.swift | 58 - StyleKit/StyleKit/Fonts/Brandon_bld.otf | Bin 89928 -> 0 bytes StyleKit/StyleKit/Fonts/Brandon_blk.otf | Bin 90892 -> 0 bytes StyleKit/StyleKit/Fonts/Brandon_light.otf | Bin 87228 -> 0 bytes StyleKit/StyleKit/Fonts/Brandon_light_it.otf | Bin 78892 -> 0 bytes StyleKit/StyleKit/Fonts/Brandon_med.otf | Bin 89536 -> 0 bytes StyleKit/StyleKit/Fonts/Brandon_thin.otf | Bin 90808 -> 0 bytes StyleKit/StyleKit/LabelsTableViewCell.swift | 21 - .../StyleKit/ProgressViewsTableViewCell.swift | 23 - StyleKit/StyleKit/ReadingViewController.swift | 41 - .../SegmentedControlsTableViewCell.swift | 21 - StyleKit/StyleKit/SlidersTableViewCell.swift | 22 - StyleKit/StyleKit/SteppersTableViewCell.swift | 22 - StyleKit/StyleKit/Style2.json | 1159 ----------------- StyleKit/StyleKit/StylesViewController.swift | 124 -- .../StyleKit/TextFieldsTableViewCell.swift | 22 - .../StyleKit/TextViewsTableViewCell.swift | 18 - StyleKit/StyleKit/ViewController.swift | 24 - StyleKit/StyleKit/ViewsTableViewCell.swift | 21 - StyleKit/StyleKitTests/Info.plist | 22 + StyleKit/StyleKitTests/StyleKitTests.swift | 30 + 44 files changed, 300 insertions(+), 2757 deletions(-) delete mode 100644 StyleKit/StyleKit/AppDelegate.swift delete mode 100644 StyleKit/StyleKit/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 StyleKit/StyleKit/Assets.xcassets/BlueBar.imageset/BlueBar.png delete mode 100644 StyleKit/StyleKit/Assets.xcassets/BlueBar.imageset/Contents.json delete mode 100644 StyleKit/StyleKit/Assets.xcassets/BlueDot.imageset/BlueDot.png delete mode 100644 StyleKit/StyleKit/Assets.xcassets/BlueDot.imageset/Contents.json delete mode 100644 StyleKit/StyleKit/Assets.xcassets/Contents.json delete mode 100644 StyleKit/StyleKit/Assets.xcassets/Diamond.imageset/Contents.json delete mode 100644 StyleKit/StyleKit/Assets.xcassets/Diamond.imageset/Diamond.png delete mode 100644 StyleKit/StyleKit/Assets.xcassets/GreenBar.imageset/Contents.json delete mode 100644 StyleKit/StyleKit/Assets.xcassets/GreenBar.imageset/GreenBar.png delete mode 100644 StyleKit/StyleKit/Assets.xcassets/Pattern.imageset/Contents.json delete mode 100644 StyleKit/StyleKit/Assets.xcassets/Pattern.imageset/pattern@2x.png delete mode 100644 StyleKit/StyleKit/Assets.xcassets/Star.imageset/Contents.json delete mode 100644 StyleKit/StyleKit/Assets.xcassets/Star.imageset/Star.png delete mode 100644 StyleKit/StyleKit/Assets.xcassets/black_button_image.imageset/Contents.json delete mode 100644 StyleKit/StyleKit/Assets.xcassets/black_button_image.imageset/black_button_image.png delete mode 100644 StyleKit/StyleKit/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png delete mode 100644 StyleKit/StyleKit/Assets.xcassets/greenThumbImage.imageset/Contents.json delete mode 100644 StyleKit/StyleKit/Base.lproj/LaunchScreen.storyboard delete mode 100644 StyleKit/StyleKit/Base.lproj/Main.storyboard delete mode 100644 StyleKit/StyleKit/ButtonTableViewCell.swift delete mode 100644 StyleKit/StyleKit/DemoCode.swift delete mode 100755 StyleKit/StyleKit/Fonts/Brandon_bld.otf delete mode 100755 StyleKit/StyleKit/Fonts/Brandon_blk.otf delete mode 100755 StyleKit/StyleKit/Fonts/Brandon_light.otf delete mode 100755 StyleKit/StyleKit/Fonts/Brandon_light_it.otf delete mode 100755 StyleKit/StyleKit/Fonts/Brandon_med.otf delete mode 100755 StyleKit/StyleKit/Fonts/Brandon_thin.otf delete mode 100644 StyleKit/StyleKit/LabelsTableViewCell.swift delete mode 100644 StyleKit/StyleKit/ProgressViewsTableViewCell.swift delete mode 100644 StyleKit/StyleKit/ReadingViewController.swift delete mode 100644 StyleKit/StyleKit/SegmentedControlsTableViewCell.swift delete mode 100644 StyleKit/StyleKit/SlidersTableViewCell.swift delete mode 100644 StyleKit/StyleKit/SteppersTableViewCell.swift delete mode 100644 StyleKit/StyleKit/Style2.json delete mode 100644 StyleKit/StyleKit/StylesViewController.swift delete mode 100644 StyleKit/StyleKit/TextFieldsTableViewCell.swift delete mode 100644 StyleKit/StyleKit/TextViewsTableViewCell.swift delete mode 100644 StyleKit/StyleKit/ViewController.swift delete mode 100644 StyleKit/StyleKit/ViewsTableViewCell.swift create mode 100644 StyleKit/StyleKitTests/Info.plist create mode 100644 StyleKit/StyleKitTests/StyleKitTests.swift diff --git a/StyleKit/StyleKit.xcodeproj/project.pbxproj b/StyleKit/StyleKit.xcodeproj/project.pbxproj index 61fc405..f3a90dc 100644 --- a/StyleKit/StyleKit.xcodeproj/project.pbxproj +++ b/StyleKit/StyleKit.xcodeproj/project.pbxproj @@ -7,45 +7,44 @@ objects = { /* Begin PBXBuildFile section */ - 2908BCE71DBA61360012C924 /* LabelStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCE61DBA61360012C924 /* LabelStylist.swift */; }; - 2908BCE91DBA61BF0012C924 /* ButtonStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCE81DBA61BF0012C924 /* ButtonStylist.swift */; }; - 2908BCEC1DBA621D0012C924 /* ViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCEB1DBA621D0012C924 /* ViewStylist.swift */; }; - 2908BCEE1DBA62680012C924 /* TextFieldStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCED1DBA62680012C924 /* TextFieldStylist.swift */; }; - 2908BCF01DBA62AA0012C924 /* SegmentedControlStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCEF1DBA62AA0012C924 /* SegmentedControlStylist.swift */; }; - 2908BCF21DBA62E20012C924 /* SliderStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF11DBA62E20012C924 /* SliderStylist.swift */; }; - 2908BCF41DBA631E0012C924 /* StepperStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF31DBA631E0012C924 /* StepperStylist.swift */; }; - 2908BCF61DBA636D0012C924 /* ProgressViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF51DBA636D0012C924 /* ProgressViewStylist.swift */; }; - 2908BCF91DBA89240012C924 /* StylesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF81DBA89240012C924 /* StylesViewController.swift */; }; - 2908BD1F1DBC0EC10012C924 /* ButtonTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD1E1DBC0EC10012C924 /* ButtonTableViewCell.swift */; }; - 2908BD211DBC10A20012C924 /* SegmentedControlsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD201DBC10A20012C924 /* SegmentedControlsTableViewCell.swift */; }; - 2908BD231DBC10BE0012C924 /* TextFieldsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD221DBC10BE0012C924 /* TextFieldsTableViewCell.swift */; }; - 2908BD251DBC10D60012C924 /* LabelsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD241DBC10D60012C924 /* LabelsTableViewCell.swift */; }; - 2908BD271DBC10EB0012C924 /* SlidersTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD261DBC10EB0012C924 /* SlidersTableViewCell.swift */; }; - 2908BD291DBC10FF0012C924 /* SteppersTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD281DBC10FF0012C924 /* SteppersTableViewCell.swift */; }; - 2908BD2B1DBC11120012C924 /* ProgressViewsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD2A1DBC11120012C924 /* ProgressViewsTableViewCell.swift */; }; - 2908BD2D1DBC11220012C924 /* ViewsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD2C1DBC11220012C924 /* ViewsTableViewCell.swift */; }; - 2908BD591DC24A5D0012C924 /* DemoCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD581DC24A5D0012C924 /* DemoCode.swift */; }; - 294526981DC39852003AF49E /* Brandon_bld.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526921DC39852003AF49E /* Brandon_bld.otf */; }; - 294526991DC39852003AF49E /* Brandon_blk.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526931DC39852003AF49E /* Brandon_blk.otf */; }; - 2945269A1DC39852003AF49E /* Brandon_light_it.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526941DC39852003AF49E /* Brandon_light_it.otf */; }; - 2945269B1DC39852003AF49E /* Brandon_light.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526951DC39852003AF49E /* Brandon_light.otf */; }; - 2945269C1DC39852003AF49E /* Brandon_med.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526961DC39852003AF49E /* Brandon_med.otf */; }; - 2945269D1DC39852003AF49E /* Brandon_thin.otf in Resources */ = {isa = PBXBuildFile; fileRef = 294526971DC39852003AF49E /* Brandon_thin.otf */; }; - 295D21791C9214AA001626BD /* Style.json in Resources */ = {isa = PBXBuildFile; fileRef = 295D21781C9214AA001626BD /* Style.json */; }; - 298DC60B1C92073E00BB0D29 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 298DC60A1C92073E00BB0D29 /* AppDelegate.swift */; }; - 298DC60D1C92073E00BB0D29 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 298DC60C1C92073E00BB0D29 /* ViewController.swift */; }; - 298DC6101C92073E00BB0D29 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 298DC60E1C92073E00BB0D29 /* Main.storyboard */; }; - 298DC6121C92073E00BB0D29 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 298DC6111C92073E00BB0D29 /* Assets.xcassets */; }; - 298DC6151C92073E00BB0D29 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 298DC6131C92073E00BB0D29 /* LaunchScreen.storyboard */; }; - 298E3BC81DB56D7B00B54DD0 /* Style2.json in Resources */ = {isa = PBXBuildFile; fileRef = 298E3BC71DB56D7B00B54DD0 /* Style2.json */; }; - 29EBA4911DB69EA500CAFFEA /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EBA4901DB69EA500CAFFEA /* Utils.swift */; }; - C406E7BC1DBFFF59004865CA /* ReadingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C406E7BB1DBFFF59004865CA /* ReadingViewController.swift */; }; - C406E7C21DC0F63C004865CA /* TextViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = C406E7C11DC0F63C004865CA /* TextViewStylist.swift */; }; - C406E7C41DC0F81D004865CA /* TextViewsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C406E7C31DC0F81D004865CA /* TextViewsTableViewCell.swift */; }; - C446D61D1CB540CA00EBC929 /* Style.swift in Sources */ = {isa = PBXBuildFile; fileRef = C446D61B1CB540CA00EBC929 /* Style.swift */; }; - C446D61E1CB540CA00EBC929 /* UIView+StyleKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C446D61C1CB540CA00EBC929 /* UIView+StyleKit.swift */; }; + 29B64F051DC39E0100D460B1 /* StyleKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B64EFC1DC39E0100D460B1 /* StyleKit.framework */; }; + 29B64F0A1DC39E0100D460B1 /* StyleKitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B64F091DC39E0100D460B1 /* StyleKitTests.swift */; }; + 29B64F131DC3A31500D460B1 /* TextFieldStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCED1DBA62680012C924 /* TextFieldStylist.swift */; }; + 29B64F141DC3A31500D460B1 /* LabelStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCE61DBA61360012C924 /* LabelStylist.swift */; }; + 29B64F151DC3A31500D460B1 /* ButtonStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCE81DBA61BF0012C924 /* ButtonStylist.swift */; }; + 29B64F161DC3A31500D460B1 /* ViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCEB1DBA621D0012C924 /* ViewStylist.swift */; }; + 29B64F171DC3A31500D460B1 /* SegmentedControlStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCEF1DBA62AA0012C924 /* SegmentedControlStylist.swift */; }; + 29B64F181DC3A31500D460B1 /* SliderStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF11DBA62E20012C924 /* SliderStylist.swift */; }; + 29B64F191DC3A31500D460B1 /* StepperStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF31DBA631E0012C924 /* StepperStylist.swift */; }; + 29B64F1A1DC3A31500D460B1 /* ProgressViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF51DBA636D0012C924 /* ProgressViewStylist.swift */; }; + 29B64F1B1DC3A31500D460B1 /* TextViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = C406E7C11DC0F63C004865CA /* TextViewStylist.swift */; }; + 29B64F1C1DC3A31900D460B1 /* TextFieldStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCED1DBA62680012C924 /* TextFieldStylist.swift */; }; + 29B64F1D1DC3A31900D460B1 /* LabelStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCE61DBA61360012C924 /* LabelStylist.swift */; }; + 29B64F1E1DC3A31900D460B1 /* ButtonStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCE81DBA61BF0012C924 /* ButtonStylist.swift */; }; + 29B64F1F1DC3A31900D460B1 /* ViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCEB1DBA621D0012C924 /* ViewStylist.swift */; }; + 29B64F201DC3A31900D460B1 /* SegmentedControlStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCEF1DBA62AA0012C924 /* SegmentedControlStylist.swift */; }; + 29B64F211DC3A31900D460B1 /* SliderStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF11DBA62E20012C924 /* SliderStylist.swift */; }; + 29B64F221DC3A31900D460B1 /* StepperStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF31DBA631E0012C924 /* StepperStylist.swift */; }; + 29B64F231DC3A31900D460B1 /* ProgressViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF51DBA636D0012C924 /* ProgressViewStylist.swift */; }; + 29B64F241DC3A31900D460B1 /* TextViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = C406E7C11DC0F63C004865CA /* TextViewStylist.swift */; }; + 29B64F251DC3A31F00D460B1 /* Style.swift in Sources */ = {isa = PBXBuildFile; fileRef = C446D61B1CB540CA00EBC929 /* Style.swift */; }; + 29B64F261DC3A31F00D460B1 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EBA4901DB69EA500CAFFEA /* Utils.swift */; }; + 29B64F271DC3A31F00D460B1 /* UIView+StyleKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C446D61C1CB540CA00EBC929 /* UIView+StyleKit.swift */; }; + 29B64F281DC3A32000D460B1 /* Style.swift in Sources */ = {isa = PBXBuildFile; fileRef = C446D61B1CB540CA00EBC929 /* Style.swift */; }; + 29B64F291DC3A32000D460B1 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EBA4901DB69EA500CAFFEA /* Utils.swift */; }; + 29B64F2A1DC3A32000D460B1 /* UIView+StyleKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C446D61C1CB540CA00EBC929 /* UIView+StyleKit.swift */; }; /* End PBXBuildFile section */ +/* Begin PBXContainerItemProxy section */ + 29B64F061DC39E0100D460B1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 298DC5FF1C92073E00BB0D29 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 29B64EFB1DC39E0100D460B1; + remoteInfo = StyleKit; + }; +/* End PBXContainerItemProxy section */ + /* Begin PBXFileReference section */ 2908BCE61DBA61360012C924 /* LabelStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LabelStylist.swift; sourceTree = ""; }; 2908BCE81DBA61BF0012C924 /* ButtonStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonStylist.swift; sourceTree = ""; }; @@ -55,64 +54,37 @@ 2908BCF11DBA62E20012C924 /* SliderStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SliderStylist.swift; sourceTree = ""; }; 2908BCF31DBA631E0012C924 /* StepperStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StepperStylist.swift; sourceTree = ""; }; 2908BCF51DBA636D0012C924 /* ProgressViewStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProgressViewStylist.swift; sourceTree = ""; }; - 2908BCF81DBA89240012C924 /* StylesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StylesViewController.swift; sourceTree = ""; }; - 2908BD1E1DBC0EC10012C924 /* ButtonTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonTableViewCell.swift; sourceTree = ""; }; - 2908BD201DBC10A20012C924 /* SegmentedControlsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SegmentedControlsTableViewCell.swift; sourceTree = ""; }; - 2908BD221DBC10BE0012C924 /* TextFieldsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldsTableViewCell.swift; sourceTree = ""; }; - 2908BD241DBC10D60012C924 /* LabelsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LabelsTableViewCell.swift; sourceTree = ""; }; - 2908BD261DBC10EB0012C924 /* SlidersTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SlidersTableViewCell.swift; sourceTree = ""; }; - 2908BD281DBC10FF0012C924 /* SteppersTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SteppersTableViewCell.swift; sourceTree = ""; }; - 2908BD2A1DBC11120012C924 /* ProgressViewsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProgressViewsTableViewCell.swift; sourceTree = ""; }; - 2908BD2C1DBC11220012C924 /* ViewsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewsTableViewCell.swift; sourceTree = ""; }; - 2908BD581DC24A5D0012C924 /* DemoCode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DemoCode.swift; sourceTree = ""; }; - 294526921DC39852003AF49E /* Brandon_bld.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_bld.otf; path = StyleKit/Fonts/Brandon_bld.otf; sourceTree = SOURCE_ROOT; }; - 294526931DC39852003AF49E /* Brandon_blk.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_blk.otf; path = StyleKit/Fonts/Brandon_blk.otf; sourceTree = SOURCE_ROOT; }; - 294526941DC39852003AF49E /* Brandon_light_it.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_light_it.otf; path = StyleKit/Fonts/Brandon_light_it.otf; sourceTree = SOURCE_ROOT; }; - 294526951DC39852003AF49E /* Brandon_light.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_light.otf; path = StyleKit/Fonts/Brandon_light.otf; sourceTree = SOURCE_ROOT; }; - 294526961DC39852003AF49E /* Brandon_med.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_med.otf; path = StyleKit/Fonts/Brandon_med.otf; sourceTree = SOURCE_ROOT; }; - 294526971DC39852003AF49E /* Brandon_thin.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Brandon_thin.otf; path = StyleKit/Fonts/Brandon_thin.otf; sourceTree = SOURCE_ROOT; }; - 295D21781C9214AA001626BD /* Style.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; lineEnding = 0; path = Style.json; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.javascript; }; - 298DC6071C92073E00BB0D29 /* StyleKit.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = StyleKit.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 298DC60A1C92073E00BB0D29 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 298DC60C1C92073E00BB0D29 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 298DC60F1C92073E00BB0D29 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 298DC6111C92073E00BB0D29 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 298DC6141C92073E00BB0D29 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 295D21781C9214AA001626BD /* Style.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; lineEnding = 0; name = Style.json; path = ../StyleKit/Style.json; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.javascript; }; 298DC6161C92073E00BB0D29 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 298E3BC71DB56D7B00B54DD0 /* Style2.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Style2.json; sourceTree = ""; }; + 29B64EFC1DC39E0100D460B1 /* StyleKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = StyleKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 29B64F041DC39E0100D460B1 /* StyleKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = StyleKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 29B64F091DC39E0100D460B1 /* StyleKitTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StyleKitTests.swift; sourceTree = ""; }; + 29B64F0B1DC39E0100D460B1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 29EBA4901DB69EA500CAFFEA /* Utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = ""; }; - C406E7BB1DBFFF59004865CA /* ReadingViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadingViewController.swift; sourceTree = ""; }; C406E7C11DC0F63C004865CA /* TextViewStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextViewStylist.swift; sourceTree = ""; }; - C406E7C31DC0F81D004865CA /* TextViewsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextViewsTableViewCell.swift; sourceTree = ""; }; C446D61B1CB540CA00EBC929 /* Style.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Style.swift; sourceTree = ""; }; C446D61C1CB540CA00EBC929 /* UIView+StyleKit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIView+StyleKit.swift"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 298DC6041C92073E00BB0D29 /* Frameworks */ = { + 29B64EF81DC39E0100D460B1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; + 29B64F011DC39E0100D460B1 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 29B64F051DC39E0100D460B1 /* StyleKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 2908BCE51DB818160012C924 /* Fonts */ = { - isa = PBXGroup; - children = ( - 294526921DC39852003AF49E /* Brandon_bld.otf */, - 294526931DC39852003AF49E /* Brandon_blk.otf */, - 294526941DC39852003AF49E /* Brandon_light_it.otf */, - 294526951DC39852003AF49E /* Brandon_light.otf */, - 294526961DC39852003AF49E /* Brandon_med.otf */, - 294526971DC39852003AF49E /* Brandon_thin.otf */, - ); - name = Fonts; - path = StyleKitDemo/Fonts; - sourceTree = ""; - }; 2908BCEA1DBA61CB0012C924 /* Stylist */ = { isa = PBXGroup; children = ( @@ -129,43 +101,13 @@ name = Stylist; sourceTree = ""; }; - 2908BCF71DBA887B0012C924 /* ViewControllers */ = { - isa = PBXGroup; - children = ( - 2908BCF81DBA89240012C924 /* StylesViewController.swift */, - 298DC60C1C92073E00BB0D29 /* ViewController.swift */, - C406E7BB1DBFFF59004865CA /* ReadingViewController.swift */, - ); - name = ViewControllers; - sourceTree = ""; - }; - 2908BD2E1DBC11310012C924 /* Cells */ = { - isa = PBXGroup; - children = ( - 2908BD1E1DBC0EC10012C924 /* ButtonTableViewCell.swift */, - 2908BD201DBC10A20012C924 /* SegmentedControlsTableViewCell.swift */, - 2908BD221DBC10BE0012C924 /* TextFieldsTableViewCell.swift */, - 2908BD241DBC10D60012C924 /* LabelsTableViewCell.swift */, - 2908BD261DBC10EB0012C924 /* SlidersTableViewCell.swift */, - 2908BD281DBC10FF0012C924 /* SteppersTableViewCell.swift */, - 2908BD2A1DBC11120012C924 /* ProgressViewsTableViewCell.swift */, - 2908BD2C1DBC11220012C924 /* ViewsTableViewCell.swift */, - C406E7C31DC0F81D004865CA /* TextViewsTableViewCell.swift */, - ); - name = Cells; - sourceTree = ""; - }; 2932CEE21C93691E00F83F34 /* StyleKit */ = { isa = PBXGroup; children = ( - 2908BD581DC24A5D0012C924 /* DemoCode.swift */, - 298DC60A1C92073E00BB0D29 /* AppDelegate.swift */, C446D61B1CB540CA00EBC929 /* Style.swift */, 29EBA4901DB69EA500CAFFEA /* Utils.swift */, C446D61C1CB540CA00EBC929 /* UIView+StyleKit.swift */, 2908BCEA1DBA61CB0012C924 /* Stylist */, - 2908BCF71DBA887B0012C924 /* ViewControllers */, - 2908BD2E1DBC11310012C924 /* Cells */, ); name = StyleKit; sourceTree = ""; @@ -173,8 +115,8 @@ 298DC5FE1C92073E00BB0D29 = { isa = PBXGroup; children = ( - 2908BCE51DB818160012C924 /* Fonts */, - 298DC6091C92073E00BB0D29 /* StyleKitDemo */, + 298DC6091C92073E00BB0D29 /* StyleKit */, + 29B64F081DC39E0100D460B1 /* StyleKitTests */, 298DC6081C92073E00BB0D29 /* Products */, ); sourceTree = ""; @@ -182,45 +124,79 @@ 298DC6081C92073E00BB0D29 /* Products */ = { isa = PBXGroup; children = ( - 298DC6071C92073E00BB0D29 /* StyleKit.app */, + 29B64EFC1DC39E0100D460B1 /* StyleKit.framework */, + 29B64F041DC39E0100D460B1 /* StyleKitTests.xctest */, ); name = Products; sourceTree = ""; }; - 298DC6091C92073E00BB0D29 /* StyleKitDemo */ = { + 298DC6091C92073E00BB0D29 /* StyleKit */ = { isa = PBXGroup; children = ( - 295D21781C9214AA001626BD /* Style.json */, - 298E3BC71DB56D7B00B54DD0 /* Style2.json */, 2932CEE21C93691E00F83F34 /* StyleKit */, - 298DC60E1C92073E00BB0D29 /* Main.storyboard */, - 298DC6111C92073E00BB0D29 /* Assets.xcassets */, - 298DC6131C92073E00BB0D29 /* LaunchScreen.storyboard */, 298DC6161C92073E00BB0D29 /* Info.plist */, ); - name = StyleKitDemo; path = StyleKit; sourceTree = ""; }; + 29B64F081DC39E0100D460B1 /* StyleKitTests */ = { + isa = PBXGroup; + children = ( + 295D21781C9214AA001626BD /* Style.json */, + 29B64F091DC39E0100D460B1 /* StyleKitTests.swift */, + 29B64F0B1DC39E0100D460B1 /* Info.plist */, + ); + path = StyleKitTests; + sourceTree = ""; + }; /* End PBXGroup section */ +/* Begin PBXHeadersBuildPhase section */ + 29B64EF91DC39E0100D460B1 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + /* Begin PBXNativeTarget section */ - 298DC6061C92073E00BB0D29 /* StyleKit */ = { + 29B64EFB1DC39E0100D460B1 /* StyleKit */ = { isa = PBXNativeTarget; - buildConfigurationList = 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKit" */; + buildConfigurationList = 29B64F111DC39E0100D460B1 /* Build configuration list for PBXNativeTarget "StyleKit" */; buildPhases = ( - 298DC6031C92073E00BB0D29 /* Sources */, - 298DC6041C92073E00BB0D29 /* Frameworks */, - 298DC6051C92073E00BB0D29 /* Resources */, + 29B64EF71DC39E0100D460B1 /* Sources */, + 29B64EF81DC39E0100D460B1 /* Frameworks */, + 29B64EF91DC39E0100D460B1 /* Headers */, + 29B64EFA1DC39E0100D460B1 /* Resources */, ); buildRules = ( ); dependencies = ( ); name = StyleKit; - productName = StyleKitSample; - productReference = 298DC6071C92073E00BB0D29 /* StyleKit.app */; - productType = "com.apple.product-type.application"; + productName = StyleKit; + productReference = 29B64EFC1DC39E0100D460B1 /* StyleKit.framework */; + productType = "com.apple.product-type.framework"; + }; + 29B64F031DC39E0100D460B1 /* StyleKitTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 29B64F121DC39E0100D460B1 /* Build configuration list for PBXNativeTarget "StyleKitTests" */; + buildPhases = ( + 29B64F001DC39E0100D460B1 /* Sources */, + 29B64F011DC39E0100D460B1 /* Frameworks */, + 29B64F021DC39E0100D460B1 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 29B64F071DC39E0100D460B1 /* PBXTargetDependency */, + ); + name = StyleKitTests; + productName = StyleKitTests; + productReference = 29B64F041DC39E0100D460B1 /* StyleKitTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ @@ -228,13 +204,19 @@ 298DC5FF1C92073E00BB0D29 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0720; + LastSwiftUpdateCheck = 0800; LastUpgradeCheck = 0800; ORGANIZATIONNAME = "Tonic Design"; TargetAttributes = { - 298DC6061C92073E00BB0D29 = { - CreatedOnToolsVersion = 7.2.1; - LastSwiftMigration = 0800; + 29B64EFB1DC39E0100D460B1 = { + CreatedOnToolsVersion = 8.0; + DevelopmentTeam = B97SF3DZCF; + ProvisioningStyle = Automatic; + }; + 29B64F031DC39E0100D460B1 = { + CreatedOnToolsVersion = 8.0; + DevelopmentTeam = B97SF3DZCF; + ProvisioningStyle = Automatic; }; }; }; @@ -251,86 +233,78 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 298DC6061C92073E00BB0D29 /* StyleKit */, + 29B64EFB1DC39E0100D460B1 /* StyleKit */, + 29B64F031DC39E0100D460B1 /* StyleKitTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 298DC6051C92073E00BB0D29 /* Resources */ = { + 29B64EFA1DC39E0100D460B1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 29B64F021DC39E0100D460B1 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 298DC6151C92073E00BB0D29 /* LaunchScreen.storyboard in Resources */, - 2945269C1DC39852003AF49E /* Brandon_med.otf in Resources */, - 298DC6121C92073E00BB0D29 /* Assets.xcassets in Resources */, - 2945269A1DC39852003AF49E /* Brandon_light_it.otf in Resources */, - 2945269D1DC39852003AF49E /* Brandon_thin.otf in Resources */, - 294526991DC39852003AF49E /* Brandon_blk.otf in Resources */, - 2945269B1DC39852003AF49E /* Brandon_light.otf in Resources */, - 298E3BC81DB56D7B00B54DD0 /* Style2.json in Resources */, - 298DC6101C92073E00BB0D29 /* Main.storyboard in Resources */, - 295D21791C9214AA001626BD /* Style.json in Resources */, - 294526981DC39852003AF49E /* Brandon_bld.otf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 298DC6031C92073E00BB0D29 /* Sources */ = { + 29B64EF71DC39E0100D460B1 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 298DC60D1C92073E00BB0D29 /* ViewController.swift in Sources */, - 2908BD591DC24A5D0012C924 /* DemoCode.swift in Sources */, - 2908BD2D1DBC11220012C924 /* ViewsTableViewCell.swift in Sources */, - 2908BD1F1DBC0EC10012C924 /* ButtonTableViewCell.swift in Sources */, - 2908BCEC1DBA621D0012C924 /* ViewStylist.swift in Sources */, - 2908BD271DBC10EB0012C924 /* SlidersTableViewCell.swift in Sources */, - C406E7BC1DBFFF59004865CA /* ReadingViewController.swift in Sources */, - C406E7C21DC0F63C004865CA /* TextViewStylist.swift in Sources */, - 2908BD291DBC10FF0012C924 /* SteppersTableViewCell.swift in Sources */, - 2908BCF61DBA636D0012C924 /* ProgressViewStylist.swift in Sources */, - 2908BCF91DBA89240012C924 /* StylesViewController.swift in Sources */, - 2908BCF01DBA62AA0012C924 /* SegmentedControlStylist.swift in Sources */, - 2908BD251DBC10D60012C924 /* LabelsTableViewCell.swift in Sources */, - C446D61E1CB540CA00EBC929 /* UIView+StyleKit.swift in Sources */, - C406E7C41DC0F81D004865CA /* TextViewsTableViewCell.swift in Sources */, - 2908BCE71DBA61360012C924 /* LabelStylist.swift in Sources */, - 2908BCF21DBA62E20012C924 /* SliderStylist.swift in Sources */, - 2908BD2B1DBC11120012C924 /* ProgressViewsTableViewCell.swift in Sources */, - 2908BCEE1DBA62680012C924 /* TextFieldStylist.swift in Sources */, - 2908BD211DBC10A20012C924 /* SegmentedControlsTableViewCell.swift in Sources */, - 29EBA4911DB69EA500CAFFEA /* Utils.swift in Sources */, - 2908BCF41DBA631E0012C924 /* StepperStylist.swift in Sources */, - 2908BCE91DBA61BF0012C924 /* ButtonStylist.swift in Sources */, - C446D61D1CB540CA00EBC929 /* Style.swift in Sources */, - 298DC60B1C92073E00BB0D29 /* AppDelegate.swift in Sources */, - 2908BD231DBC10BE0012C924 /* TextFieldsTableViewCell.swift in Sources */, + 29B64F1B1DC3A31500D460B1 /* TextViewStylist.swift in Sources */, + 29B64F1A1DC3A31500D460B1 /* ProgressViewStylist.swift in Sources */, + 29B64F151DC3A31500D460B1 /* ButtonStylist.swift in Sources */, + 29B64F131DC3A31500D460B1 /* TextFieldStylist.swift in Sources */, + 29B64F141DC3A31500D460B1 /* LabelStylist.swift in Sources */, + 29B64F271DC3A31F00D460B1 /* UIView+StyleKit.swift in Sources */, + 29B64F181DC3A31500D460B1 /* SliderStylist.swift in Sources */, + 29B64F161DC3A31500D460B1 /* ViewStylist.swift in Sources */, + 29B64F261DC3A31F00D460B1 /* Utils.swift in Sources */, + 29B64F191DC3A31500D460B1 /* StepperStylist.swift in Sources */, + 29B64F171DC3A31500D460B1 /* SegmentedControlStylist.swift in Sources */, + 29B64F251DC3A31F00D460B1 /* Style.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 298DC60E1C92073E00BB0D29 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 298DC60F1C92073E00BB0D29 /* Base */, + 29B64F001DC39E0100D460B1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 29B64F1F1DC3A31900D460B1 /* ViewStylist.swift in Sources */, + 29B64F1C1DC3A31900D460B1 /* TextFieldStylist.swift in Sources */, + 29B64F1D1DC3A31900D460B1 /* LabelStylist.swift in Sources */, + 29B64F1E1DC3A31900D460B1 /* ButtonStylist.swift in Sources */, + 29B64F2A1DC3A32000D460B1 /* UIView+StyleKit.swift in Sources */, + 29B64F231DC3A31900D460B1 /* ProgressViewStylist.swift in Sources */, + 29B64F211DC3A31900D460B1 /* SliderStylist.swift in Sources */, + 29B64F241DC3A31900D460B1 /* TextViewStylist.swift in Sources */, + 29B64F0A1DC39E0100D460B1 /* StyleKitTests.swift in Sources */, + 29B64F221DC3A31900D460B1 /* StepperStylist.swift in Sources */, + 29B64F201DC3A31900D460B1 /* SegmentedControlStylist.swift in Sources */, + 29B64F281DC3A32000D460B1 /* Style.swift in Sources */, + 29B64F291DC3A32000D460B1 /* Utils.swift in Sources */, ); - name = Main.storyboard; - sourceTree = ""; + runOnlyForDeploymentPostprocessing = 0; }; - 298DC6131C92073E00BB0D29 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 298DC6141C92073E00BB0D29 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 29B64F071DC39E0100D460B1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 29B64EFB1DC39E0100D460B1 /* StyleKit */; + targetProxy = 29B64F061DC39E0100D460B1 /* PBXContainerItemProxy */; }; -/* End PBXVariantGroup section */ +/* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ 298DC6171C92073E00BB0D29 /* Debug */ = { @@ -376,6 +350,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 2.3; }; name = Debug; }; @@ -415,29 +390,96 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 2.3; VALIDATE_PRODUCT = YES; }; name = Release; }; - 298DC61A1C92073E00BB0D29 /* Debug */ = { + 29B64F0D1DC39E0100D460B1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = B97SF3DZCF; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = StyleKit/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKitSample; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKit; PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_VERSION = 2.3; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 298DC61B1C92073E00BB0D29 /* Release */ = { + 29B64F0E1DC39E0100D460B1 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = B97SF3DZCF; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = StyleKit/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKitSample; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKit; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 2.3; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 29B64F0F1DC39E0100D460B1 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + DEVELOPMENT_TEAM = B97SF3DZCF; + INFOPLIST_FILE = StyleKitTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKitTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 2.3; + }; + name = Debug; + }; + 29B64F101DC39E0100D460B1 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + DEVELOPMENT_TEAM = B97SF3DZCF; + INFOPLIST_FILE = StyleKitTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 2.3; }; @@ -455,14 +497,21 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 298DC6191C92073E00BB0D29 /* Build configuration list for PBXNativeTarget "StyleKit" */ = { + 29B64F111DC39E0100D460B1 /* Build configuration list for PBXNativeTarget "StyleKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - 298DC61A1C92073E00BB0D29 /* Debug */, - 298DC61B1C92073E00BB0D29 /* Release */, + 29B64F0D1DC39E0100D460B1 /* Debug */, + 29B64F0E1DC39E0100D460B1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; + 29B64F121DC39E0100D460B1 /* Build configuration list for PBXNativeTarget "StyleKitTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 29B64F0F1DC39E0100D460B1 /* Debug */, + 29B64F101DC39E0100D460B1 /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; diff --git a/StyleKit/StyleKit/AppDelegate.swift b/StyleKit/StyleKit/AppDelegate.swift deleted file mode 100644 index 83c20ba..0000000 --- a/StyleKit/StyleKit/AppDelegate.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// AppDelegate.swift -// StyleKitSample -// -// Created by Eric Kille on 3/10/16. -// Copyright © 2016 Tonic Design. All rights reserved. -// - -import UIKit - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - - Utils.copyStyleFileFromBundle() - return true - } - -} diff --git a/StyleKit/StyleKit/Assets.xcassets/AppIcon.appiconset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index b8236c6..0000000 --- a/StyleKit/StyleKit/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/StyleKit/StyleKit/Assets.xcassets/BlueBar.imageset/BlueBar.png b/StyleKit/StyleKit/Assets.xcassets/BlueBar.imageset/BlueBar.png deleted file mode 100644 index a07fd5d55183ab06fb8f27b2c9a1fb804a354195..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2929 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 b1s~NLm+^c0*}_?X00000NkvXXu0mjfRMC(% diff --git a/StyleKit/StyleKit/Assets.xcassets/BlueBar.imageset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/BlueBar.imageset/Contents.json deleted file mode 100644 index a73f3c4..0000000 --- a/StyleKit/StyleKit/Assets.xcassets/BlueBar.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "BlueBar.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/StyleKit/StyleKit/Assets.xcassets/BlueDot.imageset/BlueDot.png b/StyleKit/StyleKit/Assets.xcassets/BlueDot.imageset/BlueDot.png deleted file mode 100644 index 4ffab83682385abe7c584e4fd1045b53642a51c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2137 zcmY*adpy&7AOB6mEVRjGuIFbKA~p*rvyIJm4!PtA5n{HbG1skZavqnKN95jxj-r<% ziAOFwsc@Q06nd#VVaZ&2P87L>Zj@)Lr{{UTuh;kc{e0fv&*%OAe7@g5zNfssepZ9) z!2tkJb91Hn$aj;?2~(1o06KA{w|^l503?v(8^90n^dK-}qpcaN*l@PBAUaN-0RTh+L2gE~ z`3z7H&5hv^1SIsA2!h<+gt2JwO9(%TgbwiZ23=wk*r1)Ytu+o!hJzqTOkf=*_|Sg( zmM-^5=p%f7907|>OiZ*++-)735P`LEaB#rl@K`+FN*-aw6UOiv0;?FF$ybv9@X**i zW&$UU&xwrzH+dQ1u}AqNGeE%yvRL~EL$akJxM}9dTnnF(c-dP--LEos*9lxRuN0Tx z^#tejM1=ue8gY}<(@=)_{dK_|VwvNzp{&bapAxVG1Q{RhkdH!ExjF`c6#>VV`TB2$jn7QRjf>i z8*|T|Wg~+v`@)~PLK!28c6bPnMtH%wpcG$faNGP@?T(n|OAr3)Ovzr&W7Q>pi2n4h zV*Z+9Yk`ii2(*PE_6+dGv!U&^c$W}O`ro+LX8vuf)x(7?dE~Y7HM|dY2XFFig%o%1 zhHA390u-sz9dDrAc4%Ohrr~4zvZ37{^Bg0~MmN9dobDSqM4LIuk_D~3@VT^V^wgpF zYB~g@zM_lly7L)UeT@Ycjq3jY3bu@U^tdRfZ@i+Wcl=)K@nu=%L5-9HXYQgVfTj(u zTOkHgsq7mBMcL1YLtfF(7&&#VX$!0TvvtazeH4fu!b-L_|ImMIbgaiZ%QQ~YJWa)% zI&(i5BUTSYR!00*ueDQpBD&WfaZcymaGiQ{{|Cjj$@&W$=Y;#rxB5ZD^du`YXRRRh zRhLho)Pjb@xw+8DKQ6>#<~jt~H>Yrz<>}=xJNH3{QlvyLCu6{C)Fck?e`6)TqWa)! z(%2fs02vRn)V(Kda(FizJ8+<_;M4o)DNjru zWw^VjHs9ZRw&A%}*%i|9rnjL-;JG%=3E?3;*K7nceNcSyeI|+=X7S6Aq{H7aKjN;P zfVSkwTc{e7RpCtZ3l=@pV7O96YmFIXT9ns5MPo2@u9)e*?NSoobUIf(MHYXIpbcK; z)&OwPZZ*buLz-qAzOHab)DU>`2j;0v-vN^@1)W`8O89LPFPEKF=n6PJ2t6J85CTV` zR{VTsB+km@x3H0sy~@I--|}7y%P2c>rvYcwe#0~$EyI}PdZy>Zn~I)oYwh*|{S|}{ z_D$H1c;fb;G*drCyfX}d@eE!zAdx`H7AmvO<18ReH^w(I43U4n7!&`dfHru2Uu&eyT&r)se>eno^ydk#nOj1nQL*6+O9of&N>2$Ydk( z?Z%Uu5z4savzkogm7YU9*DQeaU`>%ddh6j*^`2)b0kiC%w4oggF1J6T?_kRVox`EU z?#UTvUm-+SCh~n3+b^%ipWe$LO1+ zKW3fwl2YK+bvt(_Nud1(PRP_Fc7aBT8r@37DX?M8^qGFsfn!-{Ck!~9PS@ipfC{W+ z0)ikxB0JBUQdgiugIkoC>j9S8Q~6Oj&kr%Rq_paCRH0f2DvUkpPPpgF5{j4n&Rqj3 z^ej8>2z4lM@R;63Pr>_-!?Q~nx@8EIiC!)|)d;YYX6|YmS~RxdE^en7Zu!tFD|A%p z?y;9Fvey6ZIX46;$VWP-;;wKObSuno<(Ue*&tESrR1+NRR384* zd?4J$be+69(W_0Oa13ZeTBSxUhnrq*u|OrcPCCNodoV>hca3x$xdq0$F-h!_>mxQ? zq({O9gL1ek$m1fq{Vu}ti?5+u_GBGo zB2FMk9jIVOAlpf%+a_s{HHY)}-h5cHpgpVug9SrNqVxr{nl!1!i`JiQm1O+mZdT;c zkf7F^VV@rDJ<$1h>|Ud|ICun|EF|Ep(%_eaV`*LnIqYWuhwy`@me|0yy7p;yOmi})-!;pIb diff --git a/StyleKit/StyleKit/Assets.xcassets/BlueDot.imageset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/BlueDot.imageset/Contents.json deleted file mode 100644 index 97bac46..0000000 --- a/StyleKit/StyleKit/Assets.xcassets/BlueDot.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "BlueDot.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/StyleKit/StyleKit/Assets.xcassets/Contents.json b/StyleKit/StyleKit/Assets.xcassets/Contents.json deleted file mode 100644 index da4a164..0000000 --- a/StyleKit/StyleKit/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/StyleKit/StyleKit/Assets.xcassets/Diamond.imageset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/Diamond.imageset/Contents.json deleted file mode 100644 index bb81aa0..0000000 --- a/StyleKit/StyleKit/Assets.xcassets/Diamond.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "Diamond.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/StyleKit/StyleKit/Assets.xcassets/Diamond.imageset/Diamond.png b/StyleKit/StyleKit/Assets.xcassets/Diamond.imageset/Diamond.png deleted file mode 100644 index c680326f470c684e9f52de9bfe652f88e78bd130..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3772 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 bKTqoeJmW-}b+lsk00000NkvXXu0mjf4=Qxc diff --git a/StyleKit/StyleKit/Assets.xcassets/Pattern.imageset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/Pattern.imageset/Contents.json deleted file mode 100644 index faf34ee..0000000 --- a/StyleKit/StyleKit/Assets.xcassets/Pattern.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "pattern@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/StyleKit/StyleKit/Assets.xcassets/Pattern.imageset/pattern@2x.png b/StyleKit/StyleKit/Assets.xcassets/Pattern.imageset/pattern@2x.png deleted file mode 100644 index 49a35421e657c8eeb0f53196bf2fecb9364835c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6703 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 FV1n${S`q*N diff --git a/StyleKit/StyleKit/Assets.xcassets/Star.imageset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/Star.imageset/Contents.json deleted file mode 100644 index 53f77e9..0000000 --- a/StyleKit/StyleKit/Assets.xcassets/Star.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "Star.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/StyleKit/StyleKit/Assets.xcassets/Star.imageset/Star.png b/StyleKit/StyleKit/Assets.xcassets/Star.imageset/Star.png deleted file mode 100644 index 9ec187b6a02c158a66fd23bff62189315760d9b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4535 zcmY*dcRU;F*N@m#bx^HcT8)y#79>WE+BGY7Rn62Wf+A+CMXO3tt7@fotym?ZirU1w zi5R!8TD3=PKfU+9zxREg&*yobbH2|x-|so+&nL#n@Gct*Hwyp&VAIjoFgd%G&$c2H z!`ZoDwDcRGb5S!;0{|-DupT+kpZS80+9n17K#&Lk5dI7RI5>mC7XSdX1OTw~;4Jq& z0Kny)*=P(00B9`T%#eOa1ARqDFAs>rBd>=}kU$UbvkU+L9;kR`dN}zx2nKpQ_ViT@ zLgVUJ2!#d&1V93$AznT%P)P*^1*n7+R7whb76JBs>gneY2=??9{)gm$cr=`R9ev!q z{oK4f1%LB8JoG~QA%ui}3;lQfQ>UMs^ZzP&`u^M2S%c8uFHlK{1oXe$XQ}YtsNy{z zH>We@-~7sw@V_JfANH>f9Qs@Q{}l62r+=eottzv?q5mD5GK>D#Tb2L-`=pMBnwcy8 zWct%rw&r}DYX>PL7qXjDO#!&ZX+ev*N@Jw({T0^Ow}n@2B;J2Kz0h7C{;UwB{eyp- zoh=b$Z1luY2f+1C)B7U_cEkjfm9prUR#1&rlwO+*J`U~2eCp+BeL9SH`H}V^U`>fC z-mWyFKEsZn1!z)xGI%th0v_!<4 zHC;C9M!X8g!3m?^TFHIW^LhR5P^LX2*=4Pb!>k((X4Gru1nc&N+RcJ=0u2LUJsquQ z!HBOTQ=4$v)|l?wIQrtzcLnZomM9>+uBvjCcq1kY6q~jClT0mPE1}H{H5VNnk@{Hi zxLov{d;>(U)A04YT|SRqz~uc;W~{J}mSTJBo0^{4t& zEyOvpq6dTP4v;h3Wr0Nu>v=LQu1}V`NFb}rVio&pGkd_b{c_XPuF{r=?L^Hx*0PNj z+{O+$EHao_dML->lwRuHxa<^j(=YWZ|#s zIoRCU$2Ax%sry7p-ZrGVTf!+7t|yUJ(<*Hj&2%r(Hu^!AT;SASda2n>s&9(#P<4TI z_oMJ>0kyJTy1Cy25Iv!Tv=lT;d+vhWHWWD+SjoNM)wxtFRgg${`+lFT?_RfyoJizl zF2_$sAXq!{!Q8Bo@`cd`FBW*>wdHwEdV8Ijv6|L>kF#++YO98ir^eBm4cUaQiWZyt zp^o4Jbn~|Lzw+#T`EKZNcU_hwnI_PBbN|IVx1uSja(;Sp z>~WdrysG@ICNmaTq!28nNBp}B^hSKc(KWpi^XZLs8MMKpCzYz*uIEF-E#Qp;tQ6vw zh7Ap0xtB-!a02td6Z&DW(_^)(iVh-XyVx5d7mnxV%`mW?Yo|wbPmi_{@`PWzs7rkQdaKIfgrb6nC4*f;my1jn0ti!9>LChQs*>9R>$PK!&C6=R; z_$&Ad&NHa~3pJh?6eLjs%mLZV5=RqWX|bNGn43{Z%SRW5#-W+M3h!mL~UV$anBG7~@Qw4;vmn|a)}+`y;RbK_)3k zmd&xun0aiERrF169#L9xUAJz=zOSIcZl_v94d0~ByObGWf#CJ*FM3Ipt@%|;?sm-J z57wsC*SM8&S?8vEdP3}KPaS6Bu%$2W0oiFTJo5_5NQB(JF1*s^?0|@QW_P`}l+a2S zhiZ{yxf6IE1UF1>+pdDKzrWx9fwcIJL2D=Z;;VB&-3~@OqCGj`#kFtOhaq>`^Pc~8 zD3917j%N$-E0>B6)ePlN%BgDhoqxmW9y*TmvR0q*us5;rjemvA^EY@U11u%I(tI5< zm|8pH{-daY{p&X1lFr4Vg4Wxj+mtBs0qsZV+;ayJPUJ;_i!w=;QK8@8$2%|zUdi|Q z7|7yl%9fWea~>hW^X_pwY!UP5G-n{>q$_Naq$El6fHgfQhQ6O`bz?u%{bcdv&mr)O z^C}Ja1_vEm5m#X*2WCf%o9&U#u?bNyf5VvVTy+kO8^`nVkx{2pxvI^#BE?K@5g$3; zJ^v94jGVhRP#=!gQ#Gw4=6gOw0+ZiV8TWN8aZjiihb*O(LBlrQd|`h)JR>=(Ga7k& z49i_%W6FsSlGVL>HCulbGdE+Z$BoKMLT#<&N|X))k(ODeywP93MVLvFOK`CJ^g{Pv zZ~`1)j-~=!+6~Xs?j17)YJyO%B{6K?Aux>mizX!3&Ff%6W8FeNAtouUD?4C#ZP*Og zxN`ICSkzsSU|DLyZH{as`X-vPW#bu&X~jkMKlv=SY?D@|ROBih4fHU?V z^iMkifRT@eRh#~u$%SVlMb9s!2Pbj@Z$xxm(e#yOEcB-7U+&ElE{WlxSJIl^04i}k z0n+k9zA<`E;O8?`rb%13`bhT00F~TWoaH(Ah#SEmiY)Hk+X|@RM8D?0b`U&}6F&;x zDGQ3L0_~_FTGKBv1Y#EwwVcM096{WCp8_5!J@ru}RC!H{E*noCt_ofrmn0(Y6gM?PvZ$TY_;S)<=ayRUrPl>6Dq!-Fh*3|I_-TB7f3sHptv0VX_-$oGGWq-Cx$zZL4-d^J z`6y9+I)S3QoJKE`7Cs}6C*oqN>zZ?%lPg>d9+=(|l6y?aq4DW@rFC(T9Dd1~ z$+ezMUozrew@-n%P;|tjjK216=6un_VF6qhw7L|}XTPE(wI7>KV=IS~ zb+!^!_)$|Ue-H_O=_Ot!cCKRV?#2F0G6e_>5&51*;E1Wh_r`dc_O^D?sb#g`Fa?bK zi<+${skD(Xkk|{dsK#NgovGTE!oGe+$RtCBnrz~`86Uaup~_Mda!5Bftr(j$`eu+2 z-Pdz=q1}aOBKm$utk zE!EK)qn_pf2v1GNdrBs%p*?b5SMBife2rWSI>d*9WEXfoky*#4Lx;Vp?){D~gP&40DM}gDa!NA6ioxgu(@Ke##LTuXV((Rh@4WRdF<*p76?P(2c2ZMj zfnjih<$G=$T+rgut68vY;zFCJEiyr6i!Y8=JB(S62VFezW&OpsP0qkk@^yF-P7c*Ix%Cy!ml za)h%|FE397$-#|bffI4Ibt;tM>4Gjwe`~`;ITF7fYc-APo7)5yRyVqOB)eSE5cQ$) zs};}2WRn%mNo_H!)weqxpXhD<%G9rSh@5USDCeuZyxTt4Cu&)8~++bfRUETi$WwyS(6>SeYx z0T{q+*E~m!$;#WP3sxz6Vv>(jWz3lW*vsB!ql9i%D}^cCf4Pgw?5oz%66uH?`b$0d zP>IKf)Hi(=*3P?I$h>2!l2)?r&@cb@>2C+in{d&xhlY2s7La3~cLe!Cm1 z?``Mq7XQ)hq)b`r#WHU?$PeR!8t>TI=bcM?8%V$oD>{(%8-D+7LmT7MLDr-vl;%WV{Ic_Fc~%)nb`RZ_^;Uz@DM{%& z3Tt7Cz@)jQv3VEve}>3fd}v&seN9>iv$Ts?w%%grO`{y(z);NA5QcW3=nca7y5Q$$ zSp0^@15{a&t||>kcuHAj>{GyD#(3=rlz1AR$>?h5tf9-k6MTpd-sKH3Id;~h`b1ct zM*l>oW|RG!x$b&IyOdi8<_0W`kE5H`9rt(a5OpWLG2QqHEp1k09rpd7jd_^jorX6u zm%iY}k z`A^W@kYyLB|Ec-F%UUEEzw)hnPl8Z*S_GIHb1d@`FAg}g#mpvUEn9ILvLfp2ZhfgO z%|71urB!c2<=wL^u$kGDbM&#mWryrjLRR^LJ8$tf?k;k9E%II^75Jl^?3nq2JsJMc zXF0}NO(X3*hRWYow%$FAKFJk!x6NAn?8@AXprWbhb$v8;t3(W9YDZI_vv0emxE$Xf z(Rvq;e>y+wt_}lokvmhF9~cc0AZk0d)VQA>!F0O38yg9 zrUS0>W(qx?H_rOhSzlzksb2umk^$(*1z>?w3=*tX22NZYPGaFkrLPa_`|_t&Jw3Lo z-yozVp6P95N;%S}IzBltiCOr`HA+N8UO&e&(;c8XfMnXiG(Svcqy5!rIoU=x=FnHP z+#hHl0;&VBtO&njvl`>RbxFpD=9vOmupG(N(BLvzG_ZqqF5sOJr$dHU!z@_Fi$-NW z%&>pCA_d@3C>4k2HJ5&!@rkufkTmVAs^Bco+;<-4B2VDJ56X8#wR}%_9>d)8lPjTJ QzyC~hGz~S%?>vb74{jryssI20 diff --git a/StyleKit/StyleKit/Assets.xcassets/black_button_image.imageset/Contents.json b/StyleKit/StyleKit/Assets.xcassets/black_button_image.imageset/Contents.json deleted file mode 100644 index 4606a3e..0000000 --- a/StyleKit/StyleKit/Assets.xcassets/black_button_image.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "black_button_image.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/StyleKit/StyleKit/Assets.xcassets/black_button_image.imageset/black_button_image.png b/StyleKit/StyleKit/Assets.xcassets/black_button_image.imageset/black_button_image.png deleted file mode 100644 index c1dc1657176e0a75b1d2e2edbcfdfbf07ec96375..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30305 zcmZsDcRbu%6ZaxW^xlIYS|p1QZ4p5by@u#5qPJj0Swi#@5xqt)(WCch(UTyEzFMNK z)mgjy{^Z{0zV~_F_aE_zom1w_nKSd9?`))&h7u_e6A=gmB2`gV&;fyPfnRY!*9m}s zj-ZnlAdok&ih`UT^yh9Cp+8IC@qlJatMl~aZPjFFqlWo47i&~JDF?-q>!F|zp=R>D z1g~#gQ&#?U>phLy^}7$L97?(=9;uXkuybo2{R7qp9(YBpppY9CFBh7as5fimXK=-8OMq zq07O9zz-zcmf1_8L_zxYJI5oO|NQT<3^;|2UiJm_$*1txe`H@JqzuPr=m}^F`OPr= zHCz{76}@lsWz(75obE@~2Lyl5(zUIaJ$!_ct7-ZAf$ES3xl|~D5d>yTx$Qbreak9A zlQHQze`1M$_)xH(h5#R*M9Pq@US*z#bW%p?yqv9pz5VZy1m!j43y}i>G{T9$O4m0W zvx{f6SaiUYL|+O~U)Sa*k3u}@AAQF+lR}Ar^h97LMMgQD=6*`E#yclHxvj(yc5BPv zH4>j3Qs{fzihjt6L}6lO%bMmN7o;q z18|b+^)M;U9}unv9xG>S6-izJ>I77cy62qryL$YnFI|QGq%;=b<>2XZh!2kC2B_fI2O-%lq^E>B!{(Q>@7_EChLy?txb_pDb+l-RqN>}ah!W5#CB zo?S5Ei<74o`4-xy*@?&1!GzONpQk^j-NA?KAB^2W?l38{fxeJSWfK*wVNVK#?(yKW zLM0D$N(_PgF7_e+<+T5LL{)n>SYgYl zCqm{)UOkCb1rfL<2De(tdG5lCgAyC)>8Xpi!wA`bVD#{XA8wFxkoF6SH+eOSfKIJ9`iYW3sVoRWW%?uI; z=EUuyrmQi{70XgsrQ>IlH>qC@;A*)4oq>&KnmSZSwre7Db3xRiSe=QB9$!HkC+N)> zfu^+?8-Ms)-uWl%#1W3mP*t0UZf`9a0)Qzd-liN~0~r)4!WKcfJim#Apv!y%<&~8p zzjGQnieWNIDePg(zP>cqMj8aR^Yr+eS9>E@hlG~8CW1BzKpM}aQ_P9{POd+??6w{+ zuc~5xKKDatZB0=)y^unF-~XVO`h#&FHOG0u^+QrfTw6hvsDCzy9T!O$f4{1>)`}_; zga1-VjL_=3SvC}$5SgW7%e%o0je%mk5x%&f2wCV3G(j0!VxMl8_-p(PH2A5-;;@ZJ zu{LAqIdL{!8*4Ui=omp2LmP0FZWp7edWqXOkY>3aPrSVJ?`(jflKWpJmP<#dQO%01 zXuDfx%cZ^dNmeE18Z^o)Dj1{AiCKHu0E6p^e)F?&TNkeyO+!0C}bF7MPe5pyaqdqSy4wNJP#ciD|s zg{C6b;zuRV_x@1uYKdy-p^l=@&j$k>7F4g%*EGjur2{fJ3U zmJ3)R@7i`op0=aNvq;TYeFFw@%u>~#%S4bu(+`u=i+qL9uI6X-`>%pGi!i5IT)c6> z-g(;G#39L_uHeYfjsW9emtx+svERcPoA!8e(jo%d& zJzL9FU5A671=+1Q54k3!aEGZuy+Ghgbd+diZFUkV5flH6Q0Z@j!Pb@?>2> z78hewp<`sYngR^7IhiAKZXL_P#Ucpx^m3FA-y1A3WSkU~`RUcYPMVV)%FwfrO|!W~ z-88&SVpix!Xw}#G1v(7)>%VS;rrF&!1q{xgzx(=pH*pEW5_63&?MZ8bKuAKcqQ)vm zS~ATTJ!Jpv&>*A8H*)jqtuxvE2c~!wL&!&Vjy=?f^LVcCn(J2|`LuTTB?~IGRF@~E z8yh^mN}N?e>gt%_K{G}L*~jhn%ig$5-iHB(8ZyfKFb@7eTov%#TnO$19Q3kgxBTX{ zXge*5ES4_*KYtK$#XoBKso8aFgex@5CE2*Su z7Q=mhTkl7Y(QDvsHGS`;caO__rR#4Q@7zc8QjcolV6%6!|1vGW$2^HPgN4n z3B<*KM-^@!VwX#zs+?GMBLO4|^V?fy7ej6cwq= zI|k|2{ZsaMB?XjZK0&{{jW32R3d|t)v+OZevp$tRvul964ow8+ z+v{S7$&C;8WcMVD8L}$4!5WE&4&q|AzIRF?JgoT>hBq~BnfdjrH@yuy0|PRE$Ihn| zrcvN=H)+#0ryDc5W_rt;wp+FiZdCj78Yqnee-5~3-)4snxW9+`Gmoh=EvFpp;+*XMQPRj{xNExx-;+K#}~!?!fHEP z-^wuH!iy~AV+)mGJk$_)Q_xv{LKtX?h81GK}UCp+*G&SqKlcvUuuYHucdyl$ z%*%mS%(FutBk^sA$)P`~<-0La1BZ=%?F&iC}3 zX4s&4By2LD;#X$~-?q>HF#Yjpq%jl9T+#}oeAjx-0v2`PK^yqe+Y*Yt5Ird#JkpGS znL*1-=5NtyhJEJ(2cv^|WT}d4$!ABhzIzKUy&6Li9@{hSkSkpaNeO;xko@x<_e853 ztMo=Yi^EceIT;EMtYn6t^xH}w^pr)}d?cMBtN7$_BZnMwrABD>#KRD?m3a$YcGD*b4qO|~`DH8Xoa z3J3^6ZTyV2mjf%R6-SnKpm44)!0mo~B~#s&p1!3m@?jB}g@1MCQOlgHV^>fho&{{V zv@4(e;TpYomeWg|4c7;ndwErfaP_kU`uV&PIDK?R3T1BK!$Iq zu7u_Bi6s5uw3w^R@ho)491-1#Sb+W7xje9{nF+MHggX7If+#GZ;>6GJPY7A5v(HdI zU%c76FOU1EqwzY4QQM;bxX9K`2vv=6OEfx7T%Qb{)9^9T=%U}MHe?`EEZgavn}7Qj z#@=_kv??yR{V3{8$sZq-eHfbfYbP67q&A!PxpqX>vepg~u?e2^3K5#^o`?|(-RM^5 zI14{3UN>dg;`U_U0fXU)?9)UU&|5a|wFMYeR+bcy&?LW_5ZN2B(KL1`bYUj*!_l-e zQ&c>sIlw=CcsY?gS31lxqq^9)^u8GVc%lfC!qxzY&U-cpN=m7k$;$^sTQYzxYkiFO zitaJv`Qd<-AuUDUFPrEwxpN03UZ$iww_PEs$#Ecd-2w|BeioOM@-uUGRxh_ySbB5j zW3*Simwp`(TZSZ9?wjuunkI|=LZL0d(i;*w;|n16cfW52uipS!{o2{_otn~LRlbxB zJ99P2&a3=Mbpqsp879V&t!5F}=f1KsC8edTq<({Gn+{FPAcYC(i})|syGcPTFTGFN zhK8aBZJLPLF&XdUOEUr)wz!pKdvSoU{$8Ne+l`@O3amOb$3S0SBedOS)H7$X6(=Z7 zZ5>AZ@XPXQdyDPy?BZK+c<< zm7405k5Cm&kcI8DqfJtf+LF=hud_FSo82tUxRpYIjq|wgr45@Q1|q9o$2?yzsou_z zQ~cvWu9;}pY#=|dKQ;;E+nMFOjvRlNqRiz@Iq>b#rC2h3iC#@^kY6b;wC(E~_B05*OO9^TgTFX^`2NJ!U)-d{Ryb{@@}od~y|T8kzP?09QIW&7SkI744HIEO zR)>S37i4CP`)xSo3)48&^bxSC{k7Mf?45_OkQN*MokAbqL>^6ns`7GY+UU%M@DQ3j`qs|FAC=$X-J+OC}p`@5{ujLaU0xg>P@KG5HV@}s_;Hk1N3BIEq?y+@2| z)nUVj8mLs4FJAArE$6Fwx_v#$&9$DQs**I8UboZ4q~r=4MerxxFX^l*3WSCBFSno6 za}Ui8GxbDtD6PvLojR6~77sV5B|C?-(}dYg7-oW5qX|W_Dx?8w?HYj5ah& zu`c--^ffy=JWard1NymYaLJ8BNE+ih%;b3KLk*AhB{ zrKU97dJ3`5p=YSoq?8o(PXgO7sVbD-Qq~GGE|)+aE}*ITdn{lbzUY!AR?^(|k^Ba+ zE_1KDm%@m61eY9=U85*0?1GN!voDTkhvToY<0HUPU+mOaVuB+4d^yAc}6qhVK=dnzgkF6>r zV4S%}*;(8;bpLN!^;5H`p`p|^*%rh1aLfl!Vz{nIBg=%qZq|KDSHf&w`sHFWVa@YC zYU|T$vFq+1PShfx@1_DH$Fmp({h9@rt0D!AByoe(5?=4#0Kw%b3FjID>DcX>xe_8^ zZ1E~$W@Jh7Yp+X>DW2{^t<g*enL)>lGD*2>rNkzoSHWS>tA}ufP7{0N)eW3cPJCWH%lZ z*;&5g0-{hq{Uyu6c})!D1`Nd!%f&by#V)QoA%gw!Q}W}zE;!g=pG^gQ0O=LnZ?hYu zi*sY)VVqpR>j@{{m6uuh5i~P=aBxs-kHctw`n#POl={0@Rv;g*=dgpF0CawBZE(mQtngTy+Ifk{lBFC`f$R7EaT{F4+k9N#f%k*;`@D z=gU`dsrk|AF7CxMC&H~1FrEdtO3OGgJ-+H+9+}}fl1YBr7_Z$0;q&_4_oF3=mb{h&qe5 zO5aGji0(w@eR;u95TYe8EXf)1JEQv!10qDrj|i?1~-O25s0uvCmX(~&wQ z`jVLCf+KN5c6yBRx62@d!Pd^aGD#H$BdHfX77C#gQ$HlxYU~5#Uqv=Xs3Excy+I9R zk4xHNlm7mlMc#4O3(ij0;4>0eK_ibf^r`h`Lw7@kE}q55BE$OmK(+e-UX!;kQ!n5c zW~f?l?oTZi!Q&{?;i|)|O96}RgB`3zuBTTKnBR=Glt(KZ0oRJ{~)Use}5KwYagh-6!FM2t;Lb&7SgZ7BLc6 zQ+tuca!(R90i2&$y-!mA@7J0kXWM+3r3r~h72sVlvbJ`1*Axty2^t9U5u4p%H$|6@ zlq2hlR$GIAHZu2`b0XsvIOJcrrP%XhRELLj<{TV8a!AbrneRiVF6(~dyPCPG4lOO0 z*xKXLn0}u~2oFAde8EsL&XsBYsVFUWd}w&MVN&a|&n}S5z!(6JtjCNWHuxJVk01UT z&_>a1i+6-sjTAFM_~y?MW^ybsbSGSeOQy~uaKzqiVuja`wo*4 z{G*FPrEm0(Z%CL7ApdlO7|j*c86h`@u&NqK!087*fS z(6B#B^{qxpKCDBcpKgk>sQrIJL;4yC^#OcXdi&v0+Ru|4y*O<_hcbE1)rpVe(~L_^ zqrI5T9i}5kroa3YQ}) ze;SQH1kCzh$*MKi19zs9MlaQa{BJT?A&x}0E8&*QxG!AdI^he3G}oLocTGRco^^1$ zSfs{=|Bnk3k0d4iI+ZRFPdjJ>mtuQU*m{|NwEtB2 z@#@O|z)o&d8PYGMW|R`=F~^fd;p{+Ym_myPOqcRvS|dGkc~E7O7K5l%>*xG0zx0;L zYT_YYokB5ZfT+ZjrW$5^WuzMq%(KXGv8chsMfy{zZn`!{RAjPIkbxZVwBNUyFLh?> zl-?$ur8E)t{enZB<|LDv&!S0U?7ZsR$>AVYs1fpqak8%l0BZI^uxrNWZa>A-vDQ} zddrfaJhCdU`&=z$@E-U1dp=`5K{{B%0F3ntAfydFr5mlGR67iexWn<|!3z=A9G#3I zhWG(7N6;e)vp%PooRGk?0zy$UmIogTvun-}O1nllS7;>udVsp8vulGDHPP)7(mGM5 zc-a~{Y_^G_%Lp0MIsx`;T}f!hS@fsj&X6nI&urb42A+}K0G`5HoA!tNtP}0+^kL?t z!n9Ql+L#*{840D8o(*^z2i;%=@MoV1mY3pD>f$V{civ^%3$wzfV(^iO!hWrA^E}|= z89-=l$&ayuVO8BWmV=+_Eqc0ifbLnX9w=l}J8Vm;_ph2nz!3WimDpoRHSf6w*k`>< zr6_r|W&dtG%^Qm-5uR{QDp-o`+>db)#`yYMVRra#)UXiA3tH)ugmhSt%_GB{I z_7Ad1;%{K|9>M304P@okyqNHF_3ay1x@jLX zUKKxyXWXES)MhrDvV@e}m0jV$bogNTzNg~Ab4f_KQSYu^ZIV9hOL6o4F5MhEqaSG` z=wS;ajeH2wP-Dqe?@}e^F9Z%+!z_Q(FM}Y_Qy!>k$TSYB?240LA&rK}G0U@p(^kot za7zX;zI*>c&}*~1^&W%QT%?l8h(wSiBa?P6Q=Uve%hT zAxqZ{-u~t`M3$tN2O}qvp76rtFT~XM>GLNH1v66HZcptZ-I&RH1haKVmQudx29j!m z-kv}$R2R_$(sso3`9ezjVqw4LMn~02V|vZkb~q1xGtz@ z+)06wW2`tCcn#FMhzSr+?lIyij?p+EQbq<=e{dX|f2Rf+rqQ8&@jw$k$+@3Jp8Jt< zZ)V4woLiUYU?2(INcHB=&mg~>by&;1ZY3@0G;3Tk2OvZ*Fi(zh79qpJb{>NaFXm1x z=LbU48}unJ{*7)66rDvovwNm$jyW21riHO@Q9$k+ln2-Sz0-~EMRmf^JRm==;@)g(O z+WCA|yAdF_DsEznOi7XV${O&2;-q&|lE!sv|t@l>7O_)>Q>GQf_v_JcbmjJ!(wV|4df?K=AL@yqVX%67oR zEA^S(FA6=Z7TDg5;hDHg(lE9|xY=)TY3}Ug#L%mCxlo?|^MJoUh36`V)YG7!|M5W7 zHoZR}#+5bxPSF`^5&e{R^V@gf60q0ErW()0yFI!QUM@_2Y4-5Syde<%kdhwXjpkM=}LE6NwN}4RyF=A#CYmrQ5sY<;NInL3)nOh9%|9` z>wQ_SzCLrd%k%H)v3>gbNvon1uu~@9h8tG?M)wT;TAQ0opYhGk`cKlV>KY-m_E}`4+27AYtB0K$@7bMPUcHWR8 zT+$G7DyZ`Ea?$xi>r|Kan4`S2)=hK)IcP2XrtfLa$mw#V0{7LD?9zwEQnt?Sh>JB8 zf6A)*aMn7_S54pGtD&Jgk7-zyWYs%u_fxr4_xB_uDV=WVMk@8`GIN>sy$TcXNUG zCfk~pwVuK1j;A4PC!dpja)wTnj!~i$$fn|l=>NgyGX2TTfG2u*@=US6Gxc-7EZ$h` zT~|!C<=taB3Rt(j^G$;RD305*uj#J&(=V8JR(>}JkR>I&Id3;H|BKQc$UrA&n8lf7 zMIB||WFZ*JR)IQ7Hlzh5E6oc>%(i$@?YsfteIjT584Q{AtFO~uzI&YoJfLdfyBCK9 zpdy5T+$^b?dFSTWI}f0mUX7%WaaJ2k13g#fXAY7{Sm) zx)^IVq!}%cJ~!jsP_N*t(fZ*PS#>wW43FiFmd0#&6G2kbikrO{>6Ox_8R{A#DM z{-&x|EACi?SbP}r7khMPTU=QC{zh7n@0+p{0G^j88CY$$IyV16;7X;mTKp>BVDj8$ zO20u?oYOlY(6g)0+yqFVcYHZimu+Zw!D(tPJt7O245q#2^A%>JU(a0iC(oam-mD_B z>y10T)!W%4I}*}fz1jX)-oE4ojAM|j2bo&>=4`kRHk`(YB`7;}Q_NcTb$k45zcT#H zXXfa*njQmT8oEzg-zfxW-rgq~M6tQb39(grx#-tpIy>j)*X#<&a~;YLL@}M@(IOy<^qDeaP7oPa;7(-OA>+@8 zK#KUD+IyIA;Yk8bG-ZN)U9P&44kY6gWnSelDFh#VQGGup}!X zea2BLf0#Ky%`r{B;P~48RagbUD|jMmr{dL0Kc+0T=tqGaW1P!l>oGfmGlsc0zCPih z)9viLvrvo7fkbxlX`*6_)X`vBr@>Zi)25SUr|e>UM$ONLV{80aFC}qK=cR;4m(q}} zp7UyYG<49$%5G{WehW%dhcq-dHy0}jN81g4rv%wV(KrE+$oRp4CfxSpH~gztOnb!W zaS3qeVm_?};3JpbE1^&EcNAq=7uq`{y|&hblXhIs_HT*mHTGrphhTPRSdVfzkLO82 z9BGS`hJb@h?y=sslVB{jHL~OTB>)5Te^=8cT_E_Z@etq&#j5#zvV>*&-X<)64okMp z9(RJU4%f8*PiQyzp^i}a{twzeFLr93NNFHjx9_jve5w3r5ir6k%9A`%SJqf}z1yhm z=_=RzQ?9r3krZO2q(%+X0k04Qpy!fE^5I`y`)%Mag>{kGlYy23Uwy_PHk87dDHUNkI3zI`kR~-B`OQ)J3^&*P zcG%C<-I1|BHonnFPwf5=T@nx#RNa^z-UB}m*M=WhVf{B;% zqv|pREuCnm5Y*!FT}Xw;U4~kH<}w&_a=#lau4X_?uW-wcE*i(&ZW1=mdmD3n?A0UA zSk4?=1{VM@KdLd#RETgm9v(mD^EQU+gi0+ND8BMOAJ6o}yE(cXJ>dW0X%KI!8)gN^x4Z z%ip$Rj34k0KD_=QUdW?gAuDZu0cC{G)|r@(G)JxSzmjM0|t zYuEQk*6W0Q_Pv&UYS`7gMCte065PGP7$&58+pobHr4)1F>aM9_G~#e-9yXTU|HUu` zW%P2&cubguEI#xQq)AZJdQIW7uN7MdkOU)rW^Kssmd$tq%HW)G7EQr$qEp|O?+>@h zUZGU2+fHT6zA-V!bV-@Fr#7F6lkeO3n$I&5E=MePFZSN4PU$*)US>01WIsRf;tmSz z@efK>+d5YCq@$OY{+N|WVmNe$fM63RJN(pfw9ound;Dj!u0wy9QZXT|n%&uk-5!SH zC734=y|v{W;RIb)b0RQ_3opId9{2N~n9Kq4oGXy7?Ox*)HE!=8XYadofzp(hyS4XQ z{u6=kJ$6q>KWbqkpYkRdMf^X$Yh^4e;5w%@I^)Th&f3ecLr@j*;_Hq8W&%fEjI&h+ zZ9je6y&-D;+51zQh?v*K0Rauu{|cuTNBPVeg?~EKmp>Zw5XdBiE>y+E$(U(tyV!GK z)F*!^GMMjwKiga(nmsg&xj+!G?Rxzig@5Uj?G_q%NzC2f60_w9SXHS^N{??)O0Z8k z)UGo4>}j*Tfl$YCAzuo=&A3pFb&Lx3?$($l^v8Z5KqUCT91E3+*;PiyX>(fPdjpz_ z*ML(fG3hqB94;XRTljY$YSa0-evfh<*UOn>xLE_?7~N}c;sFUxM8XUo6NYUD$hC}R zkM%W`RLbgoF=Bl^NM=R{ad+|x{ctwjBo!*yv3!0sfdW<#F8sZbv(?`9|2nGsy2FLfr2%_k~Q!#E~KHw-h%gv#ektk$%Hhuo39?DeFDUGz5Yd^xLG;K!uD$s#$eKeEgW!i1r0Qe;&&fKsxb4hu3=Di5o3em2tv7 z@o{Ba7!+|fLO!39;EvY0W#HaM4s$RG*WE3R}AO1O|vpuP}xo zQy-~RH^9Hc;;a!lo_=){n9+tBzD0@Xt28ufp6}Qb5hpm?J&flHFkv^z01k#GWmaMJ z?@kLy*D$ARKtR9(yW%?w#nQlG@guhL*J#S^R`bphs}e>R@f{jTt4ZMWJ$ylqF^uV7<^h(>h=Q zwvE3Qpt8=7oY6@&#@UhJr$1Xzx4qeq*M@t*`t&wl(dx{A@bAug`S6BGx@VVt^?1~) zKfhL)FFjXWOd#vEAp|JU2;F9Z$-oO+Tk@UexS>U>49cW&A=c$%Dov*a7p+@2402?= zdKizF8j0>=Ze1kQNid{XGF0(?5_KQ|=IM&5(N@i*qiMa)^0cERG(IgBD5Y^QJ?rmovJ%?VQfzp~RTAh3 z9KaPn-2c$vE#ec63M@b{5o4Tco1t2}mD$qr)8JmezOk{iT0#X^D{#6F^HB10`1;w}DC!}>_;(}b6M1XFgmLomj>Q?j#WN?XkUeL}dMvl@aEgb*}%t%;tkU^H25acXhe4Q2AZ@4sP&5i zrUGoxY#jP0iC5m@zHjdVb*_!KJ2ji9{#OAocXHxPHFYQCGMI?5Kw$Wi?;pVi=bT(+ zoklcZ2Cx~?Q~&Y-hAH0M|~`N+b^Z;hW<fpfp>-#9%``q0lq@Lt&_l7B6(sKq315P*Pz z5`x%bA^*-^t-vMRmB*a}?x>5U<&nGBt@L;ysA`yRdNt@ETZo;oYb>%l0 zJk47GeVDj!mJOaIibjR&C2P$FVTOqjH)y?m`mAcCQww@z@40Si%05U0hSD#m5f{(X zi=yN9^MFWIG^Z4M$m|rg-K4C zo5TB=uSFBtE6PV4P!bKeuiwJeUxPIf|^NUw&fHxVlQwqU7s!Dw)n|rU>@Xlt=`&e z^Ujr=Pumj`0Q{hcBE);qcr6%QFmqM-f0lgATsCJFqx2JGL9h4&D&3!pH5l$Zco-1hn-Xop(6?m%J73UPF7e^i{6dg6pe4Q^zWK;k) z&_V*zcxn?n?L~5dhz6)x^(-;bL*shlqETD!Vwni;wxqSmv71-LW8B{m;{`lvfRgW} zz40#A-#B<+M97!3hG?}_rCBjyy3Ov&x!4(z`(W#HLQI}L%WHF&hzqF3ReBt@=HMm1 z6w6o|qvYUF)?ecGc7VHFL{;^q_`$tkhSxmNP~jt0M1COcp2%;953i)-kh{E9cMj4| z*|{CL`)!obInABdKe=+{b+{*8!S~BwzSwM@j^cQAYy&0e3D1~fVL0Ld$dZ(_f(}Hk z>h?Z^0u5SRAum#p{7Dlf+1r90x3_yAnd4_4x%AnL_MWy*klUzOlGcwVgDL>t=Bh7o&d2=#te*094T@UXIoKCe= zK-gDBv;a@OzdU7)1ZNjqw)n$`af&cF!VDlM-v+r)CHq9aKG{4i%lB?)nnczMY?IIe z+08Lo2&Q##!t77QA?qw!xtk6Lgg&FTA`OCXD$3@5UZY9d!R5ywju1=YZ)*TtuN&ZE z_;%U}V3>VrUXT}LWQ&D}cK|HK!q3o%w)=pUnAf()O?m>IAqCXflFQ|OP*5+{tA_ZY z`)Yb=|JK2GC0t$%@zsXy*)e-w{Jr|d*-f1MD*~8%Rh5+uNk64zU#ymY9bME1#!~#S zQrqe7P`)wu>nDZY#Ebp?>29f>hob{x zC@2sugMP0 z1i4(g`Jc0;U+;xyNT_+2ZT4Dejsbi)&!9}iCS%;gbpXgukE>&^-0_7?8C|aHEAE=m zyhqZW8$?O70-FVJNbo^tS=kVs`3;y2h~hU5pBh|nwlo_rT3P}~={R_=HubwDy7Mes zyy=Tz9zxz^_MkVIcPc%))9)t3dt_n5p3x4H-7>4>6?SmJ&l>%pvb-0xv~o4bpp~Y^ zu(0Nh{?fqy!zeD(Em|{y4VkTwCSiyyrZ*^})1O-FK#ih5<>xECnt}Y9nhz>y%-qb= zxeI#>m3!KS{Di(G)%D?9J{lC6t{jw0cLCUv&f&D2;;DBVxx6XMUViDBkH0j#qvROx z2~-P2G5WyoMFQOy#Lca4FOHBw8S^)TD#uMGKAWmOSTMf&rL9{dxHpMDKI||RpzWX- zmPau^0I+V5;`^3thx*8WfOvaK_yD-CVihxz}e%-QNsqQ=PZ}rG}W%$r8JfZ z;l>>Nlm@M$=oP)q+xjfJ*TAo+KqmcN44C`~A;`x@;HuNaw*%(7cZMN?4~3o11x0l> zaZGCFypZWQEf-{6EWS&0x^!Fm2B^}?f~4_|6$#jJ&mTswhfH}&+?zxg-|wLJun)!w zq_V1_jVX42)+ftwv}AiFVrM}z&1*%%w!PzD8o7!mfZ1b^C9E;XK7IVQ&)mNgc!BPW z?yj3EUUriLSD`HX8c6KEU|3odL(h}gECi1nJxrp16JUOAq9wloC~)&ZY5&PVAqQre zp8!Zm$Xczp4UT%QF2FJU)~?uxLF~dM`>aEDWpYTKo7Fa(dzh05kE5O9)*kt zQiDqDNs?{RCc%TV=GL322feUF71+JrXR{f>p0_X=Gh4$!)*S70->1(uPEHaIz{VEKiOUwb@40l-e>9nKB6RdDONK@=v7bu zy&#wr#3Sp(7SHGFQn^8T???g*?HB!P_4 zs$xe@-|yk2*bR`&q&Rqx0^fz8sC)s&?1N}m+l}_c4SLa{gr#J>)r8X})qLsZ$`oR_ zTh_J4QdM) z&tN_IGR+|1C`Y>(0p9iHDXQfsv1pZ9Fj72L4l7MJbesp49b%_~w9h0aZq4S_9GVJU zQFeiQk=cZ2RUv?o1b(&Em93bbGAjv4BAO?;i~nI>XcD=gYVRXt8o0oGt-CAQ(6Cer4Su(1CJ20^46sW>q2L zTHka?+H%&&Q!1o6HEZ@L8*eBIdf)8^5D3%(Qa4FrR&)T{)UyK~u?-%UEE5Q|n_dpY zGMlOgoYwcB)T&X!+-QM0I)FKjfjO8IV^*w36F&Q^rB`mG!NgOew8XE1D0br2rmgr73$Q1PU0c&D+LGparoU zkopKnU53bEO@I93%7(8g02jAR2vT(A)te8|LFqbWw^m z*n$8IH%Q4BBVw%WS6Ir+TUWFZ5c-SnE}Tt!##dnz*k|L`o_}fD66r6QZEgpwWW*ij zMfi^&mR@r6El;|~8C&AP^+-C!v1iceZkI^&msEd)duP>_3a}P?Q0|(Id2WP|2`gw5 zmBYSQx93m~?tSK*?L5arpnjQJ zQ{Ikn#Rb{&pnhJlZ;2RsX64*ECMPR!8^&95X3WXl*ZZRb4FRwY-~N>7xbKD>gE`2ZPp?amG^&d*QgcCA5V*vC#I*>~%TPB8fJ zp+x!vcdgWWa95+`FOOSzudk{)OUnf#OP+s+&1uiEeAonv6Yn%G^AAG2fd&KMJ*??r#=V$Ra8a%UVMu^(e7(h# z;s|;oEXogbK^VfDsh{PxxND1Q8d!QTJw9p=l2}RtBDwVEaM{qGEi~}5n+PK&W7RtR zj}v&}9iBk&Ff2U&{40zNs7>j}k`e<+`|T{&Hy!<5P4{#yJ#;|(IUva;%@QdlQA#Y6 z!!{(MyrIqbjp~HLrO$7E34LHK$w26uzClXT@OkWH%1jfa^}Vn4s}du_v;ZwP&lDm( zNOEcV4OEyOR6{R=t;7WFs&F@GLuuo!Lr_g3(T4@gp29#)z79xXD*}F>^Xn9c25j#~7pLcSfzh!onoB;A?{v_OgdaOX(XGi?tRCNsS&V@3~5q06C~SGAxDHHpBxWKFDBOM z=2LXd*T0mlpI49-Epfy)b=d2F4TN$Nyyxl>!4akYd7O(h=+IOtz?~qeIuCBnk2hCO z(bIL<%kjgR24Dhuc+>Sa_Ee=teeBliz?NjUu5*G?d%2`{W%wgVr`Aoymt4n4BNRUO z&{AW&7vEF>jpa69151_5@>9&GLObFiW-e!icv~=?cGA;7*%p_`u?v@@T*#s>jZsKVPTcf7j>+wBI|v`jm?bY zQ;DR*(wuZ+2y5(-RA)gg#VU?jTwBUu9GMRbkCAeXO5r=Hci5IUTa9$92@gOsR~ddh zFdqHHjm{C&Dp-XAy^IGObq5C`)p*%I0NLv|%~R4DH@^BqE+Ju`7cTRC;r9y$^8MOP z#T1}z*bk`TinuKY1xg=-ot<@cuNqDThFiV@nTiF(pAdwmg^u3I20B@Cu`Zf_^~3ID zrYdK4cQ;)eZ_j<~`XTK8;M7BW=_3I8o--dWspxrA$l)w7N|?qfnVMGI>I-z_ANYD& zS#-b+H2b!987sl)Rq`?H*<@O?@1C@`t`?Tp^XP?XpWh4EeAzOAC3L5=hSYA{)wdDT z=1j!2HZlKGU?wJHX%sjlA?v4&ALuB5q(kn$e?8N75jtEdP#{$p->1uZfuf(?34aW< zIIFgi9*phl^0N(1p@zS~d{?DEd~wM`2o6SjI?=y!xoVVMD8!rsjp{r%`fd))=7hL^ z>&!BALZ&!!V$YzQ8VNFbPVW!G2|(Xo#$z~zAGzUy26kDv8A}ax^f~zp4ht>0@4Ki*s0@+apjYPe> z2%zMr4d8!x#9hx5Ue6eGaiLet_}31KT3F)$nab8^f>xsT97Ki&ntT-h3;x{M>LC;o zs`R9h_+oukL--4r1%iYEj@H(DR<#xf6q?4?fz+7Lb*7*_jyE*`=qZQaYi?p$HvIHI zK=omA1mRZz>m5^Q=n%Y)!wnk=mHR2OCV5(`h$To$NT^K2H>jz z0eorWD=f^iZ9ehjIT6Uk>fN;!aaxU7Dv2(j;qeOo_gGCJcjj+6BaX8*lHL3Ye2Kzk z1v?yEl>=-wgH}SEgNwZR@2bLZ+-VUJ987d$TY&rbz9tdv{?D|?|I^la$5Z+Ke_Tam zR+3RD8QFUuRQ5Qw@D(a#Mo5l~V|=nQlfAOZ3Lm7%-m9|7I>*Y0L-ujb@4EFF)#vxG z$9=B*zR!JJ_jSGBuh;YC?9CJLMgOY1$j~C`U)A6uk9vcfSXK3|{D^etB{`j=Tc-(* z-qOXZv=`p`X7lbt&|g>Srd!RZud)oOkRv`Ng(UeG;FmrX-#ciu0?iudlx7-LX8OE$ z#chB0G)%5ON#lGmxF*1URQ={IYW+zBsL6v8Ffd2!vU+DDC^iIsJeD-4DIS^@b8PCe z3k7)e{M};lmXnfI508?9oE6Otz_BC*4?r>Bkaf!CU`h|%@>qG1c_@cPhywNyNG~P; zT;ir(` zgoh1lIIQXYt)^pS90Uud8*(4gI{kxBf#I%d5qmL#;ZAN&U5QD)nNy;@bD1)z9n5Y- zL-w3M8dnCO1MS8NdN}HCZeGFlo>N)}1UGy}quueHn(GP=Kvg|ie@xlVc-R*F7-@Vt zzU{a#r|{QB?Z7NMW=;b-NQRV;KZbyRy0)YoPa~Lmn5uEGZp-{%%l)V~hfoZ7@O+MU z^hecnO-zJeE?1ubR|mtGUDccTkl?OnWyP6{+qZn(Ed+XU9;o7#+SuY?)k$(W;&+^% zk+jw}KPDPZ-8V8PZY=6O+nK+A$Hgy(t57u^YOe*=mbTJUPZCury2Mqo9I}IsGHiqC zHn_n`ig;YsyKiZ^e@!};PnGY29c)P-^|$tpw>~*tcDnC!!Av!BYD(BrJ^(aP`$p1G z1((1GOqb`LWOMCkY}Z76vX2=TvERE7)|W}&J|Pv9NFWu+*ObVF$9)x`H!kZED+Yc_ zW1F}eJJbe7K$Iyrv@Hpmo01zXx2n_(Ruh-ExMFag(*I9exF%6`(c#td?Lw$EjR!wo zezG(K$J3WwrDa|$4zG6~g8po|<&oZ1&u`tpv$v94_mlIL+1NkA;=7S8@>$CKP4JlZ z=Zdd-js+y{dETFV(GB|AR#3Pth1ez9}k%QWN`SX71~f11~o`ia^$y-Nr5&X z(!1`xAPt@p;!8B``7dU9-3BZ7g8QJWE&cX8vw^#j_!|64MPTU!!4;IW+@tFka+%GW zTHb!p$axWQt4)-;?^G@Mdqc`OJ{;;0b=`pUq$3yxwAw>%?eI`OGHJ}lU)1(i2kmWG zGU(m#fL*;C!R4?a=M--mm$)n-Fi>xnHX+8i8&k7~6@w|y0^IvMG?1GTK3nxL2iM}!4)PLvEs zfn#C9_vr(lBL+~I!%p_)cHpe|+SCG{yyEKn?3}_n^wl270ATA!yFk=A`Mwayu4gLw;ZL!6fV!~#!UHZ^ow&6!+W&jIxVxK^MLk^|ZUj&8Zfv`7!*!C`msi8B#aiH1PG zps5#U0f8O;`iRulmbp2GG7!QweY+UUBR1Ocd}zX$S-tnv@Q z>{NSe=Z@yK39yNFb?H8YKFqFpnL}!gjIWLBHsbXh4@L7HZHn@Yhan*-PD>ZJLsFGQ zuz6P7(Qt#k)WP#6i9J;F&}p4^?V2nGIukxfXW}F+5qV=vp(!1A^E}ey;VI8EV*Jr6 z4y7+-26{*3z5F@07Sci?HJ+^0;aR1&cS*}8880fbrRu;{8cp$@xPWwcMj@facUP}1 zZDr+9M6YgG@P8kDY^cUpeo%SRGAdRQi>uN~5-PA)QcQ2S@H|5&xahBuuTTtR57Na4qmqPc_Fvs;^H8cymxKeFRYnAPLpQ z5SR^+v=C)fJ2Oz(-O{7{vC{=qEQsrK_+@-c=$eJ8rhz6HLn~m5gxrZU++Csr#jmE` z{p!OY(jGjfnGlXtt}$~w?kFkWr;t9pU0CwZkzZ^T-I*0yXv-pfpQ40{un-dZzH4V| zk*7_uGA8%Z{ptw)ch4mH<-9lo3v$vtOb5H~X3^{~1w7vvD{Cr97&r#BjWIyf)hG?> zq0!27x}(o=Frfeo{c_;;EZ}@SeOVKI6K>m+S@&(gQ~YOP3t!Dk^BKz`uu3kbag7rj zTGx}Hs)PQ82r$-(%7nFF5X>JXE`i$so^-Yf3__@ThaCX7Vr@UAgK@mA&y2$eB%T>c zscrSYmQ?R9e*o$43iGc|pGQqQ!~N=(db0#&?=*5~jkqvGKHj%~XZy2Z)aZr1wIS#@ zLR!KLg!({92UU6=(tU~q4`p6dTwL@Pkf=(HJ|Bjat;=O591ZE#-4?mA=_Uql zLL}&i6t6F6ue!A8Pfd#lMPvphsa#sdDW|Nn*_=+aAS(=m)PXW~(~R7z-ycc}dgsWaP;3Z7Pesh-Cqy)cNY!u*Y+Xa-c?dk-&@8^HZd*IF zqKLMX=V=yxv!($h_@GV7uu;W8qRn$A>`!!W!13Wg=@;Q%2=t?7;=LAPOjPCPk^9jB zZ|UWRJgkXQb2^IOF!ZT#Pbr_p_n!16dP7@`;I=h7_wQrrHf3DXkhRJ5gZP-&O_H*))6J zdFu^Sy%(A>h}tN~^=VFp#F7NIAuBTbTv&&kC{oTL&93)0UcV{L7IlCIw1?3j&S{q15{Z;a%iD}9GcT-&LwIg5Y7G`4m4 zhIXgc&_*STYn*v#O*RniZ0z@M=e6TK-jWLGMHbPPuEv&Eu;f)>CarxW)-`Y@Z-CXAsyXr)~h%N{1dP z)p}g@P_WZ(tv~w6y<#~^<~fz~8oHEwfoP1ziC_E*Qv;1zA+iBk7(MFT{3S2OcFmA5 zmq$uP9#n*&z1Nwc)o5n4HMR9^-w=pkXC;`jW7`*M@Rth~fkVCXdql$~AwiiJx!Liw zC8Ma;n*NR9Ln+8BM1J8-SZU18Tm(w z`9A!@mm_1t!zltbfmh%k@e4#4DZdP}+i=quFk#Amvqf{p|28o0%o)dt%0P~VKAqArhYbaqrhBHHy6Ik5AzUtB4_Xg_vAi|Nsc6G?>VZV|O zCy>LWaOzd%YY**L0S%Ne94#v$9#>l_l44?e9XEZ^J(|uuu6E)=b^Z0q6$;?Q;Tw{> zEP`<_r4OriOwBLfdI)d?@ykaSQ!c4bv6Kxffa_d8l55{9pX+tI%u!H&q{E180=A@s zb|M38D@~rJQOo0vxIkE54d=3#Nh?YSI$gC5)(%u2pW1c9!uZvv;sIwdp=*aWL?J0Z zygM-hcpV9)^HKHDVE6wO__G+vs~p!T7Te->?d0Xt{lZ$!SJe`qW30L-8Up01~Ywi5W_K1 zMP&_RV*aCC1!q74LE%b2_GKMuJgSOOT@B~e^IC};^>GtVxnwfsug^8srh?7WmcDr3 zYi!fe3BbQ}jj@M2#mp*e*pwB7wlF3CeSA#;-kal0DD7uDB~a;S`J`fgrZ zCOyE_qMKSZKf>|~PFYX-Hh{EkrX8E@mrGN@@A?@A(L*gw8+!ep8Ihl^IXZ=ddI)*x zv`KY~^w{n!aPv9lITzj5#@Y|aSOF{FOfUM)0>EjkHv$(TC-DWHU!1Kw{(`}^1nb}$ zoIDL5bJafelo)d3OkuO1y3f$we2et5&g7Rb7c!8zb3?XgfU(a>6+l}ML#@b;s78vw zb4O9&o$$?i8VP3E-ziFuGQwxCEW~_0NqJaRU^=05INV@dzF4QyT%%XklD=GBxckK| zjM!w#?p@(jbh9IMw-Em#jA<~XE_4tX$HREyMy^WZ4j}=?Oem1V?Q=4C%1;lb^ub_^ z?XnDgx|gPeKbI+x@#3I83(JJ$%jI2In>I8s?YDlOTBgg<%rU=OSidBeH`904S>2vKre0O+oZ3rVA76kk; z0|OGlNIg9~Zg5IVB9d6twwmR8`fqmo(7WXKyT`dxI5;F{li#jR_%p9voX3gxJf4?EaJ6>AwNu zw0SH>;|}K@Up_nwERO{g@lD2d{U+-3j9gSY=lmMyUA`#pXJM1~s@<17?LQ&MpX1lx zS|&IkO*?Tf`|;es#rn$vkW1Slf8d*?tYo~d@PXiH_1eyE?4!6DKUxw@ebVziu)GV; z5kvNR!5n#X@iixWV{Z4)$3qGgHc~qI3Zv96FBjR1U8wwamUX7HrDix%Yv4|odS36G zW$hjO8O47w1vE7z7tm$?NyA30$n?J!eHYH*!(pNN{Ijx>1)O<;XOZiCVbTz?QA;lE z9-TWpv0RZTJ|KsuyEf_&p*_&YlUW}L$(oB^fbJtyC|75!i`t*NqYfYU_uF&lAy~Og z*su?{jz};e4&G^z1Hbhf+h+YbRV*BvqQ(;D>QH1dT}Se8KF%L>{?qL zF^4b5v^4Fy+-rjCIV@(LLEiZwRym@Jco|XpNc*d}{l#r+6E1L(>fGGiZI6;u^mp}U zfg?Xs@#*wH&3-&6cKI*kV^5G9vYS``oes(_qinv-l=V=3poPSAj9`Gp_`$sL*Jj=Bmz@F^9grG~HUZI}zWv zHW|_Q4U{^(1!q5$vg@NHPj3k>j9bQEhQ1t{*j@87r?i5- z_3`}&5g0^DtIFRcHPu!Ibnu*1lEw~yflL;?Y>0FFtfPeMMguqLdc)(D zd{S8Z${8APvI)U z5Sgg4`OfGkHl=|`2_zY{k>gQG?(|_66>NfIP0g&VS}g%pi{h9IG20ssnnm=_>m_Vf z?}fLaEhehE>B543F?!{eJAX=D^h<*8$OT$b+ByQmyse|7-K(9c<1swuk0wDG!~&DY z{t{~pSS3sWm`9?(DE1RsHpV;KeMMxfpoYWs0&?9l&*iBYw--cp8?ibk{miH93v=+w zVp8~eF?n0_Z^o{f`**x;v@fpA!2q}B4~(UIDPz72*>+S9a5pFO&&Wa#uRGL@syEe+q6O(bnMT-lzicuwEa)fxkWrJ4 zgN<*=#~zQO%qw?k+fdVjBKo;{mkc3lF#kj2o38WicSZ=@P;2=UV^?!+&H8L$FFp)! zfRZAKA<$ZdonEHsO=)+r8;JvF^{mu2G53@3B{r)z@e8tL!I`*I?(Ii9J?;Y}UOW15 zWvC2xZvm8Z&{E2&3=)x6nWjC!ip^s;vR>eQ2_l?SmpQz0i5_Lo3)$1^TCg!^N56la zndwEkC2Bl*(&fC*v+(Ua2C2x_!IE=5t@Q!%DlP8fVN1#YTzs<6Q%i#^!b9%eZ1|4r z|E^bKDj%-o{Vx=$#n(D8AX}8Nb+*u-*qIg?FACLj0U7euPDzl2FReh@n|<|Gd-d=Z zD1Xh*a?U0VQXgmquRg)ztnOhUDVTM@xzvRHhK?O-q>2w zYsx4Y$92^Mq)haz|CESTbIbvgNxad^rvjB2J%EJn@j&ITALYPT*l{tB?`&{LfZm3{ zgPsn+pJ8f~61XG}$~fk_XWs|+phNvFkvxy@==%gHR$$3EpTz)6*RW5xhnW$30EYs{qDR&v3loBI07Jg^XM z5&Ug^kSOSseh|$(!^|L^RXNz^{n)2i7}zw+KYu=7COcyqOp6HJn7ZmJb7POTx79pl zxmt4sBML{CKy{nm)_>%_VAGkcw4Tu2^2g8^AZsDVhcd7ArbLgbxn+-@KZ7}0ssf9S zK|jL8scntqH^pP`EMi2%mM#UHrYIV@^IyaK%4f-Iog{Jg-@cSA^$FTmxqZxbNg2He z4HS<^kLqP)d{J{KN{ft6NB1X1t{c+O%u|b8#OoF;#)<#!lrOorxO$0T@rhiea7Njl zCx3Dmx!soaF=@+0MeGR+4fmDzc`XBQg4wmufU8kU_bWqr=`-w-66$J&} z;9TqT+LCeOGE^uc07`f2miAE|A*wRnI3T_%Q*E0RZ^MWC&4v1@#p`ae(acKrEPOCFOR^({6@7HtpHHZ-)i z0b0pl>tTL<(VvtcU*k3S_mORP$4{lyA$v?Wf!i0-!%@R`j0dSM0cpC`II&|=TOE*_ z9KPy_)T}kFUCH`h8Nb9Gfo2tDp8j<w&H@ zsUTq~wNqlpkr}`|%BnP$bzhQsXTU=$t;nQT1Rw#oas&y`D?efA;|R4cw-I04oa}fn zIS3Ec4R5dBlJX14k4*c6?sT#>-KRV-;l8ePGcx^{7FGkBsA|1mKM`<`|5Itx>_&ob z*gu@LeDL1p^SO4HB4xhtYJYUoiSzircnR+fU9NQbJExit!#=o&d^w0EMcE6+E8my! zKR|B-CY{v5VZ;fBX@uBUpXL*^$XzM+8+|Ue9m)qYzN<`U_X%5uKN9Ds58ndJ{^FcX zEe3R*>R#~`-r%(e<)dnAG2(+q)wBoI*IqeI7M&oOM|>TXw7ecq*khcg*h@(a=nAu< zVqzj=K%fV@eIbhX&KiQML)FezhT&@k`b0x%(p#WDZm4$AYOtG*2a0AYD`Us|u=33!+{62Dm?|6R$$EE( zWf&HFYx)XqY~!-fYwME>Ueh^Gv;r$u<3`TfX-RuA$I<}tAL2gGgHNNE)pMBoYVFOy zt~%{tz1erHn>vF>NF30@C8r7l!&bt5CCxFT-)SMD4Fr@88Ei(~`97`VK?Wfj#amEt zh5$w($-P(4@qe7LD1?@!2TtA%t5%e5%4}Gg7CCDsdObNVX2RZmhCs~pF>MezJ#wSW z_vOL58ACwM*%g2~{#ZYKjd@MH5r@S<1_wH&?=`-;PTx);0k}!9G&lFD2>mb?hbBkosmV;Ge`r-b2K?A_(LLCv$#8RYFI%{a07Gnc@Az$W^H zh%bsi!uA`nr{CUUI3Qj~Mw72r_)c{m#lB-D^89*E>r415rz<7wCWs5bC$HtBOnJ}X zdH@{tO-9BCBEZ!wEhs=Dm%F7;9c0`1Tz`&bzj+Z_`_1%7zjzSFhCXC@W)8nRzxl$%RX3^*c94SICvsQ)p3w7esM>?+V29sb&#?6O?*!i z{}yf!P)yqAR%hT{>>hy+`tIQr10>brX$mKV^xBN;%rFW+Wo?XH2sK7m($_xP6b%SIhR+PMWcPH^WCuV z=Lk~_pZB^ksS=Y2eCy&>G5x-bEAxa0hg1r8FE9VO&V-(jhB3(;aV1lNtHozfI3ow}ja z5ix`_+E|SIJ?!AF%Y#O4ZgubH@sD=VM z7K4jiXl~vhp4?0$skF}iqwYHkRjM9c8oUkXuCeoHttUu?XlpQQ7)TU1D_U*uz45=P z-V8p<2>+v-SjjE5Ry%~oPFQVykXO;pvm?LuF!4}_LrvJ3o(^fPJ+)D?7IVX?$j*)t zi}Jkrhf#hFpo9(9awfUdJ^&A)l~UkBxJra7mEphWy7NUOhoeOfes2AwJ6Y#i0En}p z+xVmSTeRaE=o`LMC3Obxn>TX7$h!y#^U$%eD3A4yug=FJAjkzc`oer`{$=?m2b2q? zP8d8ZD2VuhYdqCnSX|7c6oaA(M&7P%t$JvBZ0H3H_|OfzPNn|LP00nP+bBF~?1wk? zs9>lSy0q%Q`9kC-lkc8&uZb$MKJdUvH(w^2bQN&*(3O>N__O95)Df;y|MorHgLd#` zo@g)A16==&FF$ycpT>yh6>T!_5H3awuhT3yqw`-j;~KbGogjibPd7}FwV*NP{TBq- zc6=EfJ^Sp42L8`(_3@L^jh$T8EzuO^zS>xQ+^wUx28LQhcabymO2ayvX(4*^adP@eViGoYNgV^5oPT~dbHG#}6 z0Ig5L2p>FvHru1-plAGhu}whgy*q+4Nx{9*W9}J8gnr$0RdH5Qax%j`q37;Mnvsw<* zP9Cq;s-#>>+W{pPw}2dJ^ELDBTc)OKB+wYYtp-m>nVd`O@Kugk)dFD(O`eHeL?RbV z^g^0&qnqSh6CLtz%|HMGtiQa68`4{o9qRf2n>5t$J(Z0lb#kJ1(&jU7pzyNjl+e4Z znhEDs^zzC|U?cA3qNuKf>=A=>uNw5@mMjU846_I96+RJ%GBY&}llb@s0I7;xAef zA*w%+1Lwm6ZvmYp#d+Qf>o0A2G)XI&%^e!j$eJ&S+9?=t#bT=f5GHD==e&C=^gwTq zRc-5?3vNt{o!g(NTRcN>1&2jg*xc%SCafFC@q`w}H6=YTx~gTRuc%l<GtxFG| zCs^Kn4m_c(;mus5>0Gr-m&;c;-&j*1YDndzOz6|(skcB`-pa$Cq8S0tenFEs5Blv) zEf2}9Jc6ThcX$qN6!qaLWAzI99bb~|3^#%7j%Y@6KH7suIr}#GMS+D+b6*T#7oWLW zG*h>?%PP%Fan)yEg!#5oXCyFm2VsU zXOWMqGLL16;HBl~YSC{Ze_Zpd3GJeHQa2nJD0^x){VHzB;WW&7`67H=Yxc{Z ziw~pRKcNT;^763(T@*q#399qwxfb>IX%f3^^&fo1r#l)CV_1ikpWmO@Im0^6F)*!l zG5uV6>~xKSP{|98MqDYjm~FFKkm>1`Z0@=@6^G!8SxmyEOa$UtIw9 z+E(D76_SGWN;`F@4b*pqPJgnUT3VunP5dJOykULAFU5aslwX|ckn}nUm4yL!G4pG^R=yso-Cq5T zjbCS-h7Hu*^}e{E@gHT}Dbl17YhC9V{K@}BEcwk*TxoYcuHBX`OscrnoWt?Iff+V~ zG=+Z!Vy`Mr^-qMRbdW(M%J$G*p595`S^UZWC;DI}MBU4g%7x4IxN2%U#Vul3PpjrS zD1tS=`=6kLo2X}l~Xl!~NNK^8PVn<+|$_I6Y%cl0)^Sq zhLylYr`ir>IM3rwju?V4@Z#F6C`kfP_eQF1O1m;0`M&<7so=VMmECcMAI8>UkLD-4fVdn z7-B7HGl&$&+l>{Ktm}uWjU0$i$FK0wQ2`Ph(Q&-k40!90d885maxwuX?dq)Dlf8`$ z?-{CwfV}`({V5}tVBrFu014kbNhi)&xj&j`1wn2ZjULu}9VZX&QXPiTpSkN2r3J9h zAlb|)U&bPx0!d&N?eSOD8RUFDO%(S}S;)CxOmG~G)~e6PZo+gLNsx96#f+gLK=e^- zW>z$EpDqP^Z8uOPdqCHQY}vUE6@<2i^*o|_+}E}99K6AKIe|m@*WfXlWJ7@Y3Qk#Z z)@KSD_02o$bSf4fHO2(bxwu6OQ~dwl%$HyW2nv18EA5BoplGCsl2H|tNL7;oA#R~t zzx*ROY+P8_&J)TiJqG^_Jj8du~dZX9{|u0>|lSKfhT({xn|6HRsJio5ai}r zbp1{q1hHnejmf|l?ICeTDiOC&>oVDJ8sOkxR8N8Gj8UA2qp|VphvR>8&L=p{*f#tg zNOU@q1Eel~U?mXOHYOA#zwC4(c4f))@cYWhDD&1S7=_0#Z%yXfE0~u0NRrBQ_#>HE z4+#42MAn!mD9bXKmXLP=e4zK=s39sQM8??=^#Jtfp-G(NfIt}SQvJxSJ7XKex*q>~ zFgqbL*gECaLj@uU|IQZz*>_}9A2WC>S;eL^k+P|O%;O%HQd}7ZKw_17S%&0+dU&olDjE~MK7KFki=VHVUs$*InJ$u(#OYC`? zs`jKg_}w*3VAoE>&g$=6#Ym+SuB3zhCLS;^lP)`)93 zr3FIx(#}Qo$iKS_fVv=Xs*8?mI&YKueCxDcO-NV0ih?<-;8B!rZ!*`eqy;^01n-kLg0?M^alev7M;uSup176g7mV}MkdU614Fv}PTxkh$6RV=+Ahl|gL)n8j=#+h73M zU*~Jk^EZ6K`M>MiFJCa>Bz~L>BT|p8kpb&cXnqV+m9hH5E#3-Sz)Jwb!=? diff --git a/StyleKit/StyleKit/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png b/StyleKit/StyleKit/Assets.xcassets/greenThumbImage.imageset/Button_Blank_Green_Icon_256.png deleted file mode 100644 index 4a2fe711a93c417939355d7ca00416b4f1e96f9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5478 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 SU;F<3%~Vm;P^gu&2>TZ( - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/StyleKit/StyleKit/Base.lproj/Main.storyboard b/StyleKit/StyleKit/Base.lproj/Main.storyboard deleted file mode 100644 index a185392..0000000 --- a/StyleKit/StyleKit/Base.lproj/Main.storyboard +++ /dev/null @@ -1,685 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Just a cast away an island lost at sea-o -Another lonely day, no one here but me-o -More loneliness than any man could bear -Rescue me before I fall into despair-o -I'll send an S.O.S. to the world -I'll send an S.O.S. to the world -I hope that someone gets my -I hope that someone gets my -I hope that someone gets my message in a bottle yeah -Message in a bottle yeah -A year has passed since I wrote my note -But I should have known this right from the start -Only hope can keep me together -Love can mend your life but love can break your heart -I'll send an S.O.S. to the world -I'll send an S.O.S. to the world -I hope that someone gets my -I hope that someone gets my -I hope that someone gets my message in a bottle yeah -Message in a bottle yeah -Oh message in a bottle yeah -Message in a bottle yeah -Walked out this morning I don't believe what I saw -A hundred billion bottles washed up on the shore -Seems I'm not alone in being alone -A hundred billion castaways looking for a home -I'll send an S.O.S. to the world -I'll send an S.O.S. to the world -I hope that someone gets my -I hope that someone gets my -I hope that someone gets my message in a bottle yeah -Message in a bottle yeah -Message in a bottle whoa -Message in a bottle yeah -Sending out an S.O.S. -Sending out an S.O.S. -I'm sending out an S.O.S. -I'm sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. -Sending out an S.O.S. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/StyleKit/StyleKit/ButtonTableViewCell.swift b/StyleKit/StyleKit/ButtonTableViewCell.swift deleted file mode 100644 index 056f626..0000000 --- a/StyleKit/StyleKit/ButtonTableViewCell.swift +++ /dev/null @@ -1,26 +0,0 @@ -// -// ButtonTableViewCell.swift -// StyleKitSample -// -// Created by Eric Kille on 10/22/16. -// Copyright © 2016 Tonic Design. All rights reserved. -// - -import UIKit - -class ButtonTableViewCell: UITableViewCell { - - @IBOutlet weak var button: UIButton! - - override func awakeFromNib() { - super.awakeFromNib() - // Initialization code - } - - override func setSelected(selected: Bool, animated: Bool) { - super.setSelected(selected, animated: animated) - - // Configure the view for the selected state - } - -} diff --git a/StyleKit/StyleKit/DemoCode.swift b/StyleKit/StyleKit/DemoCode.swift deleted file mode 100644 index bdbc432..0000000 --- a/StyleKit/StyleKit/DemoCode.swift +++ /dev/null @@ -1,58 +0,0 @@ - -import Foundation - -extension Utils { - - - static func copyStyleFileFromBundle() { - - if let relativePath = NSBundle.mainBundle().infoDictionary?[Style.styleSheetLocation] as? String, - let srcDir = NSBundle.mainBundle().URLForResource("Style", withExtension: "json"), - let destDir = Utils.documentDirectory?.URLByAppendingPathComponent(relativePath) { - Utils.copyStyleFile(from: srcDir, to: destDir) - } - } - - static func copyStyleFile(from srcURL: NSURL, to destURL: NSURL) { - let fileManager = NSFileManager.defaultManager() - - if fileManager.fileExistsAtPath(destURL.path!) { - do { - try fileManager.removeItemAtURL(destURL) - } catch let error { - print(error) - } - } - - do { - if let path = destURL.path where !path.hasSuffix(".json") { - try fileManager.createDirectoryAtURL(destURL, withIntermediateDirectories: false, attributes: nil) - try fileManager.copyItemAtURL(srcURL, toURL: destURL.URLByAppendingPathComponent("Style.json")!) - } else { - try fileManager.copyItemAtURL(srcURL, toURL: destURL) - } - } catch let error { - print(error) - } - } - - static func downloadStyleFile() { - if let string = NSBundle.mainBundle().infoDictionary?[Style.styleSheetLocation] as? String { - if let url = NSURL(string:"https://dl.dropboxusercontent.com/u/26582460/Style.json") { - NSURLSession.sharedSession().downloadTaskWithURL(url, completionHandler: { tempFileDirectory, response, error in - if error == nil { - if let srcDirectory = tempFileDirectory, destDirectory = Utils.documentDirectory?.URLByAppendingPathComponent(string) { - Utils.copyStyleFile(from: srcDirectory, to: destDirectory) - dispatch_async(dispatch_get_main_queue(), { - Style.sharedInstance.refresh() - }) - } - } else { - print("\(error)") - } - }).resume() - } - } - } - -} diff --git a/StyleKit/StyleKit/Fonts/Brandon_bld.otf b/StyleKit/StyleKit/Fonts/Brandon_bld.otf deleted file mode 100755 index d70c281048459fdba23cd8ff9f09386df64ed9e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89928 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

5@$ z`6)7Ep$I#%E6B7Qu9vT<<)+eNotkB^iTr-+=^H;Qu%zuTtgVXO0S#%&9+iVNrKjlV zzL}G~rca*?)8ANwMV2KX>Gs2ZGa9!Pwqm6BK!Dx?cEDq}{bx)ZZTS*+6piCxo7xe* z>E0kqa7VDL9@l_@52ob~Nbx<`Nq7gZkh2}I9Se3M>;~5EhPZ>u;@*Mj0F&KG)N}lB zclQYw?yD>vJJTKN7zJnYNHBrVWXr8nRY2t%c@+38px(uK+Tuh23RCrZ0|2_-wS!3= z#d=!?lg12vUMi#{YLk=m)Y8_l=H>y%RBV(dYt4x(lwcV$=NSQ8gI#kGVB@$Yy9kB} zyaTwT<>rzSt(pzQ_h7=#b1)@9eykW^BS0I~U!|JVXPNyI7@Q_X_W&2yiNh| z`a@aV4+?K*{o=$I((maDnd5J1DFDr&l&%}EG zVT2t-Y2fOo@};1JCR^5ZW~2r4 z7#$-!IFyzpHizdlMtWB>hrzq!?N7nH55Qts;wc!89aO%_T)0$SunAD1LZ;s%RuT}F zqFbcGyE-s+gm< z*3^||cZo9TeJ2iWjLA~5Vv+1%v@Uw~WaZ?beJ9k?WCrY+l&}RO9lVDD-WL*J@Du_n z6UH>}57Rebid!1{B3JMJqB_WvQ~(@A~r4y170oEpulSjlD## z{GPB)JbY#@TCCbRH(>Qd<&fzC3m2=Cw!=W@W$29nR`PB89jaT&$ZmC@WqVD4yQeCH z`1r#xv;_7BOK)2kUn{c5qfBu2;ij-Z_y#=1ql)C(l5I&lVA1^eGi+(1UQbxT$f+Um ziR$Fdr0k9va1Wg_kfX@Kdf!qj@=Qf)gQb-m+lpjQ%ktLkJghvv9VT`5bT8kCHCgJ< z>e@>~O$}vtcso1&V`q$ZY%4LBsMvj?C3(6Ps&Dz>6AhtdPwT_)YTO`0eq#H9J; z#O0}2TTxa-jIY=1JttJs{gxHM93os?EX{m<>hTGdj%Wn0eWsiDi!nw$g zp`;xdX?9_pr4#H_6C4cuR$=7ij}hd?D2pvw43JTx5)Qc9OpQU^ogGVNWoBin`rxs! z6>z>L?o^^7g%d!nXz3Q<0%DuPFO<>Df%-QAInJi8v?etsv%XmQ1667)Ee7E(gX5Du z?n4$A7)lo_yTYPQPtmGJbOebr@-bPQnv$KY>;>W`A-O<}?b*H{jXcQY)ZB#SO6fkf zGMXm3(9$Vcf8cSii3;ExoCg{-EKmeO&J`~QVWt5HoLx=bA)YCSO(@h7G?<}HkLGd*WK4F>!n*k(4S>}3PL!IR~%$7Y)f z#H)%oY}%q+zbY|#rCOE}ziCs<0p+dB&$85crp!WJp8p=lRP&N7twtQ5962vk84RHM!JlbTb^|~BQo^E+U(UQ^xF=sa6HKzHN^<8N`#162mcVVo-sg||! zXQ!Q+^}%^sV@8q52{PjrRgCO;ONL!w*)LyMk#S~QM{Y(LNV<<@1a?_L3tKX)Et}=t zfgq-@fIh}9vYcbFKHn=dKDVO+wrRQHGOD)|$o1)K)y|8p^PJf8J z0*5HjRpDsv(vHFJEJNHuy;;o`Uw8m+KuxX6tbH|P=z@C=z9xf{O`5!i$dHq=EJG#R z-;LfS`XT#%#l`dgM=n;fJM2*0gl&bt2v>pjY^-r;PLF|~|456*N51d+AC~C$y$kc7 z)nR}CvvK~fsC01g2ju){GFfMN(=UYA}zZ?#v(ceK^ z1t5c$;3jnS)hG?3#4P^f|E zAI^GM3C#cZ$3O!xIix(`Ccmld)~9F0^DxJcU`%d}A_hK)4|8U8MS~b;P4U(+#1Np_TsO~<(%)ET6T?d ze^V{z+#NDKC(h95z}*4%>t#ufCaszG@R03|VN}wGX)qJqshp#e33Of!WbpL2#d6uB z;qc;2Kd(EqzXaZU`HANrE}<}aK0j}1p~38=D>j%@ay14g_bDXSb>RE~*-N6Sk*S7^ zB}T22X^AnlDBWyyT2lnaE_cq4su!5z*73#wFj}|>2Qn5#ZF88CFKE2*rV9g)ZC7E# zv4D{vny!d{z_E-R--opmn&QjIDpD*xYG;ybd3~p*J6~gM*G!RYQc4tqJ)Qz5g{A;2 z1*8BkVM`kQyOj>~Q~p}dTn0M3IXXA~iOyDz&gr*nVG4GoIMY@G0X}Z&+4X(co!dz3 z;+y_OfaKEWbzmlNu*`(2Zn)4`U>OaK`U%=}0h*Lce+_C5r0-e*Hc$s4WO!xi56Vt1 z{p<=C&y|DN=a!iudUNR$mCSo$cOdT~UKl-vg?DExlS_Yzht(^CPg{Dnp$E{?0rWM? z6KErM#BT%cB39QmU>YEWPjN#~-;SY@#Z{ju$Wrs$fk?J{5|g6(TLCKDnl-Cn68JZF z@|Lu2a>H5NVO6q9u^s} zUk)1sW)YjM47Wb^>Y1}JXm9y#=l{fV<5wF7{KY!ce`mqLZED6t|Nh3dgXx;FpUaQG z%Qm}aH1xrqSIa`+%+K41z@FW78>f{e;+C>Ia9f}>;n=K)N#dTLsAsZouqx;K$G0h{E2TMmmpwSBb!J=Q zrZY~;9{r=)>(twBa@lhbaSx%6_XWXFHuI$H`9Bsq{g!LhBfeF5&taTe-@1m^JqxDW zLR?4QSo_h$#-?_pyqU*fX&Vg2MVZyOh-L9$Uqn^(bGBionr#HetU5Pp>`*&o6&+6# z-__aUzWdMZarilG=Ko6)!LZHzFG-B}eCvP?G_wmku(IC7TRH{139#3EA4z)mT3p_W0 zb@sm^c#S^_$J0N+Hu1md;fwFv(D*c`GquNZ&SrcMJDs=z+PRbP9>=BX-&hJW3srHk zkwLzok5{d#SiVY)TNi?fipH*re_=&#&EOY5yD;#$`QvBe?ZZ_gFb>$`WpMDh^M82b z2rO;?bmQpGr#Fr)JAZ{ex;0~2@^e?ZzWq4O;sLU{oO(LjoN%W`o zWZcE#3U=ntqnBA+Tl_V%9~d01CZcDj9i6#SSp8r=_=^I~eJNn1UX%h>>Rl<*n3;N2oA*=fpAb1#Z zBtwqF(-5IhiuBcEGY?e6+; z9_8nM0`FVF4>tm!)ZGd!llM68^X-|cin2ATq6jiAWBAm5u)x%^L%fwpmCM~*rh##L-9l4k3zNxY(%qI_>>NJ7Xms-SJs(` zhC6htr-D?AE@dCywB^YE`mUVpPTQ~h-;V;{Ad-VN`ogJcJ@W*2ns`#S2LTQdkN!s> zVjHT5L|6vn==rn?jt;>U;Z-W$o!oN*9IrTca*YWt*W86m9{uC+QO=be4(@<;9ELiQ zC%`d%GdQsngSW@rbqp&K@xX0T9X=ysn^T$eo;vu063GtNt5k}G<#c&DQ@)15T|EBi zdr@_yBHx%(WXN~Y6&mvSW7p6C?<$|w^NXC;(j|sUZ!M6qqZ!%W47>>z=Z9C;1#g1s{rEl!SAH_XA5wbZ4b6cJzvuv(8Bht9s20pd ze5`JvaaJZscE3^w+_2N}HCSR0Mem`Zfb3}t#shDHmGuf%)>D3EK_bU6kXi}{LN0v= zFibhOC?3JJ0xlu{h7c}dG?2Hax0h{NzEXY2v~$(Q_11g43CmN96PD}qHR;x?yWrYB zA!Psmcy+hsCHLPG>UJxO(5C(+UTI%uVNJhJI-kTh{?iM5ZwB%g_-dTt0^gf~aDmTq z6fW?+8EC!0XE_QN`2KMAVxHIZg|5CC2z`A$&?-jw&c446Xv8iW{z71F8Bgy`8PKcc z=+%?~z1lJ>y_$hQ?@gH(^J|R$`&UZGL_kv zPwp)+neuW9^rplTxZkYJ)au0xVn&T?tLVKyYMY8pu1$lBh;NKsy=7dz&h_hc=IS+i zap>BZuRj@-7ogL=XLcSr18)lnAZGGH8V8F~8P;nya4i-G)2w(M69(p}O%w;v@!;I4 zm4M5=e}SD45XpVDck9I+NT!Qw^Q;lL%^n&MJ#baAv#f*Bd<27e3&wIPGxmL!4@Ae{ zHlMVT1NOeq@x`xYTfTy=qt49qL+$B0>H}c=n2BXE*e)7&=2tk6_N!ZODU|_qko7r3kyRoyhcD zlOc}>(esuUf-~Jnkc@rsko~mQpo7cm?ZNpJcl!YD{*Pd2$~h1ktSk5%T<1+vfSFq5 z>#e^*PH`byDCh6oz%?Vz2sL~D{9qLrto}iuvL05$*j_l*Ib&%coa+9D>PgOIRd=3a z-N6uf9dO(00IPAhE&fyV@JPOKX_3`X#Ys%P)97FlYd_$*>^af6&^lvP9vG|g4FFSZ z0SCNT;O}ZMRh4nfEj2GSsg|!T<$A7?Ru?n|_0s5!ZX}D!``uDPEhUZYgc&`G+ zTUig|{Q-{vhP?`^&MDAzURW&>06x?Cdd7%tWzQi0clGk)X}ne87iTL~Ul0*&S3PqE zNPi1i57f)by5jGEPi{KX^>JiyNca}Eh5AwJ@VC%~`Y{XeollmS7IZZoZJ=d0+A>l2 zZM{<(q;R@fIVOfy(!((!d(oD`KKKP3yC%|*2%Cg~2KaiOg@i2vB4CREI(OPKPw}^~ z(4WFWzrzbnNE5;lhR+SmdaVt;iaES?6tjxKJ(FqHrZ#&NgD+}+|Kaixj5*(9VSm4Ub|zPDsbDO=&zJtA6dJpQe9w9FVLF<;HwX?b)@RWYne|z^dRVd zv(CHck@H8zM!OlvpnR2D8X zWG+>k)8K0g`Bh&#t}F6i=BFGJ>>r<`PTE1ru9?C4qs|N9XlGJUt*yyyeKd<6}VK?YCeuhSSsr1I~YK?*@5E%7&!vx=+kTyG62Z z9_1c8dQS1pgw6dcRKd#@<*iT@7Zj}BzBevQWlk^5Hs-H8>}V`76sG2hOX6lNAFp(s zF>&nJZL@F9S09ZlNm-;=oTQDPK4WbbTvpd)q-i22Ii|rUFY*jx>0~e$aSj3Y;1Ce1 zXC`8M*^AaRc4p}h=IYiH+IF1W!2mebMnuk6yes#_wL`c zHg=v$w%4;y|Dg)m_Wmztj#2~%Cd|o!i=?`g?9}|>j{iHj9KL<#M+GLjALz}t?AR9UpLJddudpYqv^%gRcjc8!OD`H66u> zz4{xKaR_Gxy=M2N}4z=B~HIsnUI*fQN86(Fx}_+4^$*5WL)J> z{g^>vV77wI`YyXU4jjV>Jo7c)W8LDxFG$Gyl$35s+5(s6fBXr0O>sUY)8{SHB&hMx z4;#ljA5ZJBcd)@KQBm&t_4|}3xBGcdoITSkIC5DLI4^c&z|FQb2pkB=`K8j4x%t^9 zH<#bP-+%04Cw%N8+WN7J${zH$ynNgV@^K@`N65)-<&d>+CEWoQ|9;54$eMY74;r7u z{p)np-JqjF?ul2p%=||*4no#MYu1B3=&N`F$Ro%BipTpLyCFxMHOE#UHXXMH0ks3eP~O{Se}4rdW#{LQrPf3pn&0KyW?;(#`R(f2bYYIi1_k5BMXY z^{zhGhQ>GifasmiKABL=xfG9>W<3$^x1I>|xQ(ygw?FFLbf6>KAf%7isWz!fZky+VUSt_tL zCz0TSlV(=tQUz9T&BmMyjxiNJ_cD@m!AVI|k7I{%E;w1LR@fUHos8*exv5Gm_f;J5 z+jC{Tt%>9CFz`(>WoV3g@U2fu)qsbN#R(6VPo$xxEN%}x^WK#Pbj(iBgZHoSDUMIN z!N+rqL0qb&gM%Ige{`$E zS8(@`zjLO;&fuyCx05+nJy0#}z+JBwbCFuMCTpb{@aw)je$Cwg#_xi`5f#*|gD>%v z9N6x`uTNthMvtVeK6mf|ihNqHOEIWZB0w-@d7W@~?mC2ZP_e`u?i8J(2Ed8CKfeu3 z?6FWO_y^WqiH57{vZp=_9t4$zF2iF$|K8GfK3lH`d@*_;FVzTv$h%#_;=u{RkoAax?y`h6Fs7QgmUBzp88#* zetLCxCClgrcV#JsTN=aPl9pPgK+C2iFtT44)$7^a1n?%vns}n;2wy0zlHL8c+XiS( zOig}QniV}v2IX6HuO{DxnRymYef14!GauBLKC?p3#Dgtm&1rbl7~ugbyOTWtqVNT$ zVKq}h7c6t8gDv}Xv~1vI{-DH}*qlMG2G=a-BWo%^wR<0#ZaDx;>L4sBd>+nA6X}yR zr4VrloVRdoO(~d4(=8XS5VyJ0k~F>MAOvd;a>0+WLoDm|KxKFkf2d0VQEELP52-PM zmlwp>n858K1(42xV;O+_7FIKsg}gnRmDL!knHmHC5@lHdnjwy{tY||=)#P*G$eR2% zG&|L@8J1NQtSV3jH^VYvr`D|g5L2_7i|NnlIj`-H@rJ1T#~j?=+o3LXqmPLGb$WA< z(!;Ude(Mcc+3ON{mWOX2-Z(ew%;^JJaGT^`r2`ITf1RI$R$Z)9!2VlNI2SIofX}zf zHSBT;dT3d2Mjlu>7cR4G-tplw3mdweX6G-brJmfiCiqMNTx)6%u7j3caJA_$?!{e% z$&l}<+79;?t7c9Q4xTZiDrld24(lWjWVev44fs0?xOGa20&yic)~A|NmGkOu7)qD3 zXJK3?;@batEY=;omP9bF@ zEN)m~zxIR|?j$Sw!{R2d-n403RanIwwe0BPC58-T_N5cM3k%G7+2DemxD3o4x@Gjf z1>0aI7V!LD#w%z?&sh4t*UQTOMlXx90I*@LW;xb7 zd0WaP2gq~D+LFs$9%#vX!wc6Eu(wDfJ~m`K%={&6w)B;QZ^ja)?%PEw+3CNyZ;08U zN$*=+^*1eMCs?m7*;fI{vZ|Bv;7#+l!S%N+Sk~Y9t)DYHENqTS3QWV@ZL;6ajRIGB zIbQreYanDT|B#jScCg-cngVy7%6HLht0Su!?65=Lossh4vzz37n2~I2GC^ld0>{>4 zTzVY%nZ9H@liiv2Y-cVjADewzZq3w(A=#y@=cfe$6%D>lT!pJt7B%myUNwlWRi`lc z$%lCMLp+PpK65|6H+Z-S*(_MG*^TX_-Z>oL34SFUU3?6b_w7J?95e@L3%^|j-n>1i>Y;sCMp0+^a zl(78r1T0lz<^3O?-I#VDYK?m1y1j?bDlqMQtiyIy|4nl??N)3m-+c1Ox!I}3s%4sj zrRJjQuN+Nao#I6U54Tma9mjO&K4hQY`e=37g4r`hDw_W|_Qzn=$>_5o6BK?k z<7STQf3SuHu}OTi?ru zabNp0ZuT>n@8asM@Kd-uUtqBuxgwzt+V zn`DU|9axH`pLE8gTI$Mn<2|3T;~^n#Z^@Ti-JbEiEev}PJ{AU7M;Efc$lr%Qrb;bM zQ@?@l0gnIa$!%iSH!ps{e+JSoGUP7zdcN4bt*BzFiu;70&OB$QBU~TK1{-P0;>CuA z%E^J%M-T7VeRSoDv?a^c|Bt;hfs3ko|Np%pi!%xcjv~Zh?waMkW<_RZrD?XSndXw2 zx$l_*g5VB_OKRp)CTgywW@?(YshKTWnScTcGJ_5?%-n%1&HsJw42GHI^8J0k-{0?F zy*_hs=ALuUd7jVnoO93eoCPx$%}QSI!Pd|Psk219zxRd?Ts$DWPMfy1BDDuxRQjZ6 zn#BW@`dRFjQgj1#N`18rJ3jY3u5*0qw^Oa)6E`m=0BPq$ zu2F)&Qp4GRl$4Mfp3I(^`AKslk0^JnQmgpHYP+Mh`7TafxOisdv&v?C`1F*R@C5da zB*Y~~Hdni~RJwV#;w1P^(>6str*86LUpgCI)n}@W5)Nwg5x+$X*m|~^WtIKiT%`Xc zWPL;(?aRhQ_QzY!UX|@7^7nk}`{L25t|Xo-%EATwI?%p+lDUpFLzU_r#@4<(mNmL*wFRPfdv< zpUFdJzr5^~-n~8F_$&ASY8XCl)w;A*0z~H>H|}+$b$~5(iecZk?6hZJ-Bx9uVXv=x z*A9h{QcAmUEx=>spRYb{8nyqYA(2WK-w_dNFW-davz9MUo}H8&rX*+{Xesr7)Az#K z^zUpO+csg4i2t~l_>W(H{fGFE52^LkAhq4l$bP&?Z}FWKM@7OW&zUm!4dXz*378?G z-1NncS15Fs?wM~Gbr);&ViwMTHMIUKbZ@g@M8Er z<;ev^OHGce@rRg^6V{AfF>>+Zk3#1yieDHrciOzrn0Ybri80YHht7$Ko)hDVCfVfB zgTK5U$yk|T#M_hBZw>ow$F2i&i~--yX0WZxK4k%Y_^;S*^9}uXB{NO;W50+Pqx!t> zim&E;AODHJU5LrwH~PTHLwmzM|7i2aJ3oDqp`Q4~vr-oB!LP7$e0s9~s?pExxhGt$ z*tmmQqvwie7WIu3qYFEH--?>m`h~mw174&X;p2?4X>SZXw~DvoJw@kic!>>b-#n*ev;DcV>MhiDr?b|PQ~N*uPF|UQ?zA_P z5VZ`u-(9u*?Z~<8otYcwKYjlEnaSa6eVJxqgIO!TGoyDl@6&r)V!SafF(IDa5<^4T zl|3VMuK)byA1qiKzA0t$;Mrpr42$ab^0VDO8t{4KJ4Xy-rz~H!dd2d0m#vx+pF)>s za{RbSW5em*JB?aUsdq(CDW$Q~I8bbyST$bhH9^r$kbgYwo#C8w6Ja+4)SAvYN0bMT z%S!9h-djj}k8ZNxW?J>e&e%clU>1c_39J0CJl(edNa%T){^pDxhV=G}DmN)buxLr-!g z=Y*DgiJEH|9&ykeCGwN)ep=Yj9e(pg)X)LS{k~fG(3gE@Cd``2e!e#9!#+P&TOP4k zrxinc*c>8mc^-FIJbB}cNqGfSYMoXx&WF4iz1-QrQ$fq+%EW*8B)U_?@X{s* zchR#~oXJiP5|77V<0ADeZ=?Nj$FBBbgb!_5TM+`IqDi1j+50 zE5b@T66}0j%TLi=6GroLHA1!?@=cjPH)Vb#Tcwx#yyc14NhG=%#Ov(immmVtVMm0d z9PShEw~M9gLfHEnik;q92i(}<3AnK#%S_M>i_-Z@&<)GgK{qT{1>JDQYe6^EgVpBf zoM9pa+Iwr=0XasF5+TskLxkh-Q}$oLp7$GuMiBCWz!AGID5EbZ?XiD%+=wOR<3?DO zMrC0m8YvBa4;#_o>aY>&ed^w}5kn&ac3)B+qTRxmr`YYG_L}YntH$1#P=6iODQXl5>!!{ z=X}kub^V4dTZgS5G)Tm4U;oAVq z_5=uENr8dj8wrbv;alT_6F$m|?$7|ueD^EB=!fa{Qv% zNvZzJ7OqN**G-O@@cPK`u@jdroDvz*THN6wfrCx*fKZR#6_Gc}Xc@Klm-3mOM4ycsWw-;S--o5b&^RelhbCk`s+7YLiqRYv;e0^lqe5_cMkeC8c9nX8+GR*6vORW_Uki z{O}ngXAGYZH!fjZ!sNs`gwjkJ6gnq1DKT}<}C!*U4RvT#4|H5)&6 z90^Z*dt^VgTJsiag_%w^@pA)_-lEn<$Q1<6;*!*eu zCu`ZCtN!5kFI~UBum8Z&uaAmM8#D0T{^9p`?RMY&hr9k9$zXO(!@AY0*R5MKcKGlyVC?F3 zM)mIJ3?ul1AKowffsXFo>va3qMeJvB&@Mtk__uoBxJI{oic+h~detjhH%4@TIIX zlEW}x-plXvNl96>aCz84zZKDJH8raDD$RV9Vdd_-%$sf;oPX6%S+DL^*QYlsNS>CMm=Mh*aO?l=&iB{ZwV|qNT|T=Ps!+e`Wl#H&&|ClzpLphzC1O{WRvy z8L^4eY9vgUH~Fne{>oytu7M%19>g%}>BIcToNyu(^dt^X4-sx+R(L>^PU+6DycP^- zFK;AlX7W}(8_Bn`70F3oN?9br0kMU`J-+e1*aGa_OSsqT1_intrdAdG;7;yg?*OuL z2MKZ#mEQaNe|?Z3rTa$_&I)Bwf=&`8h)_mlQG%Sz1@0h9Q1=gYb_PO3l%V{7ZIqzy z>vSiW`VvusP7o!i(iFqS2rWzyHTMJwQhaVEN>F!ql%ON4bVrC1)V(Z9&{3iU)$OJ0 z?u=a!p*-S@9T?HaxoUod@-p4yo9UuH?>9W6t>SN39?{epo2a9^9&6}Ghb*A2Gj?8t za=$aSpRTd!yiYkIe@oss+4TyDa>k};**v3b>$J^dy@Yd0e_eOA<${P$XBtER=JElV zjTzO-2Vxe1nHdK)td02ekm0IO{MQfKA5c$iv{rZKJ3~@j((L5<{;3PzUi5bOnq^Za zyg7aHzBPbapD`(Mn#UAuxwU%{QUSiGvdY#51kP= zdq#4+{{r2S{p&y5Ie7Kh)W|u0s~5h%W^>rSmo_~9)X>)md6htWG-J*1(B$d!<|fbc zUy!vezCDG#w|vF-!fsx9Y5?0sc`uCZ#+RDLAgP`)R91KJOWQd_1(?0t~leA_91j){v&oE0}We#xt$+jRb$7b(>aDAmKhd+ERf-Ja{y(-?B* zM51Bk+sjwI_x6~vbBxnwOqw(~Yncj2HLTQK zpDX1KcnGLBd#!G7s{8%0evHs|r}N&Qt#-e5^;wA`j^4s6RnwS6-NE+_>vbI?0@}tP zTg4aQ;*c<>LkkSMB5pvUWeNz0ib1eH8G3y(_=gjpY}vDG@R~6x#yNiPEZDGSYuLUQ zHgtXBh1Z@RxPI(A(~YzIrYAl(s!y0w*=`s=ciQ6RVawiH`u2*qro1s_+M5$*8V5Es zEMK;K^<3kcnQu*=95!Lnv92H`#f&1!7aEwqvrOE!tKr1++JvZUGZ=>N&69KY}gxO zZMQz;r|3y6)sJqYYg6QVbo+Zd4{Yflmt?&BuHT}v1*yFDcp}+{d>dUZnEfo}kPq{* zKSh_Dklh^ZnUU2sy-zhpwizNC-Y$OJ)I4I7FVDHo%yFIT&1Wn3`6(^bE=2R;?L-9o zU+!Lh*_mkF4VA_$zl@J(`DLV9)5rNRQ{NOwOnJAcbI+A2Z}$k8nC-4f2iF|~T$^QY zM^A!@>UNjw`#m}4>LWj16-R!|jpjw|jkkA;BR@`yBR`yP4vug>Mh}qy+st&gQvyO1 z&rG+L$>^&y;oOihZ+@q+V)SFb&xK#| z%!OBOuE{PTVr*DFzW`?w_Y(O%imy=H+z2AW`G>p~?V0uu=^g!;u6(?q_oEj@G|N+c zhP*aS1RUDohe(!13z?|8`6E+BjNBXcYvf+G|4+&7?4ZUc>mD32-V;D{!;pyH$|eyobJOb)kEmVB#lyOH+?6lf zL9Xr{AF*ARsl~2w&){gWYg+$F?3&CT%r+`fV!Baj;ht|4|2nMPb@jyI0qvgg3|Cw| z<*0ogtMl zFM{)Url{_?@hPf|7b9XOc;YGTYR?+?))5csI_R{(T-pyEq0n-E*w{KEWY|MoJLr}v z+gZLOLUJp#bZXO+@l-tx5a;Z>_g+&7D5$!SVO&KJ;!ycNxJ)1rCstI<69z32`) z^;zWvD?-x5l8`lGE0!k}Ypr(ax^B=l6{Qu)K9EFtMY4?~TdN#4@RfU8)&@x&V;0H3 z#ZhL)kPVVJ&P@DU9BF1O%d+S9h(#1*1=(#Px8Y>Ai6Zn?(pgmEc`&Q>%8I*;`!;aj zYuxvK2i-%;c2?_cV2R25+G;&_0A?~u9@WB*r9Rkw3O`xy?tp6&H9Cp%R3Zs0xId!qLz-eh=|S zRCu~VT!q;c7I4J$vp$JF$9-S)E%Gh)tKe73FU-&A*VOL;zy1DqbFgzK|L*?N{T=>l z#n&s2uQ;{h^opyAZGV@plWv-Bh0dz4sIRQAqVJ)9K|fRfo&KjvzLlP=)VI>hl?GRu zRO#bN2P%D0DW}rKN^0e{l}A>dSb1vY>6H^JudTd^V*@{_{3S8(PX@>VJ^?yn-ai-6 zC!l}8pn#zPNdZd&-VWFh@NvM=fC~X?pkH7}V2!}qf$aky4(uA(Bk;w*R|Cfc&Io)f z@V&qdf%^hK4?Gh1Yv9>HYoH^@mq_^`K@maqgPH`j2x=b`74$?<&!FdnUJM!go+;KD}5J1B~D8kvvNlG&M{18kX4-PM_jRm@k?q9-!~(5+U(f)8fu$H@d*iWoa?vz zm896@#HGnK^tb)0b3?CGWe1B9$MR!#YZ2kPPa~avVQLFb`6yfXDGvAh7ccl+`Bw`* zIpeSVf=~U|hT*=+$g^D2?8L>R7qiEzJI#H)tuyh{+cQjC%I z`9tsx;%q3vwpv7W4z68CeAcll!A5=5=R=OCZAhIn-yX>Z0) z2=6y`-6nncaZwSs@XEO8bnS32j(fU#SX94p%~PL-A6j>4#iGcR#d8+Nri^$ebmj0_ z-G+qgZ~XOt)v(aN8cWdoiP$3?xb?n)fOiLc-i%A-h|IGrYe*JDbzcxma|uVcy%Byd zXP=3Xe)ZMy#NDf>jMw7%#S)Is9Z*y|@Nhl{9&X~mLlGcZZCemJJ!$G34m^A=G;Z2_ zCO-TF3|k3d#!547OP2oAgq7pRgiV+-c|z<|Mx2c^l4It?$4{6X8asVv^nzIb3Cq__ zNelmC_wLURzOwC!1)K|5K6bQ-B^{~PLT$0U+BL!N$uVbJ6=wfbU3UM$R6x;N^x-KJ$=KDO7?u^|ajf zml|qi!-n@)ZrHST>TDx>iTBJN*Z-y0N3Gmw)O$9w4&HfCi}kpMSdW}pRudn z;_+;}PFSBlqa*YWXdyR4j^Dy=nJwjZ%jliKt96H08y2!*msJWWHI5$jdHU=0*K)&^ zKKQ_vN}qGDrayBy^4o7&sltJkuE+5y0-m*vnM^VZ<=mscc5$JV~=}| z03;Gea`d11x+fsp($ zF%TSE5WH7;PJK=pa`c0V$^f+@3eDM@W*DCuyVB@<+;?Sa>dMICs(veDQ^y-GKkhp| zHgNKqLJ9#nnaM;@M?+)lacKEcZMh?oI9Y25Es?hi(rgW42XYcqb>-z&Q zK4xrLYfA61QGN`C#TsAnjf+c4i44h^tTs24O}CC3H%?5qzGn>Rrx_s2l|;DUyL|Oe zy89mbHabpOj7ylFC|-&5u>&IX>#yFN&e^p+BeLkLC~27lp8m#9@07%}KyRfwJ9w*e zoLs2)M$h2AvdVW66ATCZ-kUyea;mZM?w$n~!jvGJIA1l$cBdM2_frk;>SKH(c6#Ed zuxH%E`^sw1R6*+WXCqqp9^J9?QcjrW7VpvAVoQ~4^Bwh%^fR^+M^nWz_cVckQv_K) z=#GCRJL@S`z2{WR_g$QloSGc@z2f7e3|3{9jW`=?6;?kb+T6U~BW=%P4bi7=QAGNV znh`x=YUJg*rPT?xn(sA@v)*K#FA;ZoiwMu{SiRDYn|yuW)fv>0O5GQ%3C4x9 zQWwlwIR9|yoJG@<YuAc3^GU@aeklvX z_ApnJ6gQV#W9L4xW=EJ3;zux_y8G(P7YFpk&zhFdHFQ?=g7}nK{=ZB<_+;I%T7Iog z3`k8dCisnverjm@uz=`!Da7&~6(M}+i`DR1ZyklheuLkc#>uj8(JpHF5cxtr@V#H1x#f$uX6wer7UHP((n8@q^4P-k& z+4klke!Q|j!}jJwS9Uw;W8z;J-aYK`gB_IyO5GE`;k-F1Gn1!&5So}0KR-6n|CMO9+B0hPF#RFJ>K^l_ zE}Ze!{2FK9SC|1*c7-X8+OrX-nHpF}^ag6%9=x=B@7oKP8;3DeU#m->DHG!pqLZfi zQ^=i$$DiMSk2ii?jYj=51A%=%qO?lCk@{4;$0>Fz^EdvECT z+W2X+W=6iCdwAzFKN*i#7&U3l>RFMCliq%NRd~qpRc}uoH-6IOaghOr8yh}#kAr{A zMxpDBp^jHRY;h0{%&s!jL|)~@u@lqN>~h?r5MUk@KTdewTGbiWZ1`juli z+;W??=41W9L9Y)RB-Vh?vsjdp%#q{sj?P(-kQzI;M#J|8Ta5Am}i)Jhy`$cHNl9;476Z~6^P-nAFXjhm%#-Oy!WzKViGNK6~C|jy6 zo2b>*5$cFsLd3R=RCE>Ye<_1e&jvd)fBt!A8?}Mj@TIo*qh>80aJas^jw3Slc?(Pc>OCwZM>0LfoA9NhR1b-gQj$S$B4rs4mz^T%VW{S-}F{zJmCN`%9 zrt0G2*nh@OB0XE~yS+N{l?fx3%umqvn$DO$sGEC~G~WNsf8ek&z`1RRj?%~rDy?e>n z*J8<7h()h_68n3|QGLp!VT%TYtNIT2s1+j>|7r(6)Vp70JNM)WOmPAxAt9%@LqduZ zFr&Wee&VG2q|T@ZpXeTC)K7}I5?4_F+0Vy=_nvrAnHq9j?+l5V1Zg^cK63dC4(;Vk zQ=KR9`%5D5`_s>l+`clw7*M2Co3L_%*c7Xup1KZ+>X$`K)oY2Qh@?=ws&U^luW*GGXf29-%XMO;{1HpULXThs0R9(=S11EX92635 zWbCenUFP6dHgvo$Hgt%A^kBURT@p7`8 zXFaBNxOA6s!(Fetq zBQ(P~g;Ub%F6#d`@Q!m83TQGCaw@|n>MmrKD>c&~WcPPKu0pnD5Hbc$kaI&1g1Gts zNp9yl%T))S0S}hbLj$1;xrFEWqVEUEL+GSD(2vm3brH#L0^fS{Cv@o1qtK;>NcUCf zwLHAKbMJRj&%eb9>1n}(^3eDoI8g?;A^4$jWIcNSdlJShb!oXKN6_rL84SoPLygfHeOeQA{p^tM!70^ z3Dl7uD}&c^Y^OK=PA9dHw_)R7pqE3Ef%Ktryky`E-MaF7p;B`Vl2prUFTUemDbBl&)JOoX-z9%V-H%CC<>mZ#PHH5Naed@9 z3I4R*$ae|XJzO_Qe&l@ze^>S3KK$@q9PZm( z^YO=}*4TDk`8YEAmg`rNUW1c1;8QoeDz zU)7{Lq#((wTlcOtrF(jI?^aXlqTN@C+sn>34wQnW>M%Hh=iaIPs$-_8g5<~ZDw8?{ zmPKM2B7YrE@ZkVwy%Zo-k*Z2zQcbD0RA)f{F@vO2+UFVV^ZdZ!BVL!x+NV|fbPgWf ze}MFx_>}#%&){LNzS3X5W7voR!{l1pXM^G6ULP&rqkXp2KHHBNJ#e@jrG0kRKD&X>mO$H+^y z&z0Ke+OZ<%joRln?Q<7WlBw|@KRGO$?|=XFMjn-rm5}MRe~FW%#r@(xS-Z-dD=q#m z|0y&mr2hM-kM?)@&p_>)Anh|i`}Du&Gg$j3MEk6wefnMV>8pKH_GyqBV^1BVPEuFt zX{iqtZ-gE8nhkv*A z{JXE`8t1vL_gs&2;x_fCZPcD4|LnP*^jz~j*WcV%+Fk8F&I@;6JXeg7Pfh^u zi&TbkDETkw@=@tw`Frj9xZF~^c9ldr@SP?(nO{Y!PW&%PUrNWdr-=5TgEU-{wKl;2 zik}bD{Jh&=3*UwJ!E*)&8fLFkffRuovfx5s>fkOk|4bla54Vn?OD=5E8 z(<;waNv-mIa8U3Q!HL1gLi|JS51AOUBP6eCy{ap#W*F`;^fD|loUB&0TF+`p)s9uK zRJ~*MiPd*hFA8lQIx=)qXi<&!HKJ?msA1+b`{%>vg&hhj32z!cJUlggclen*eDCOT z$E-V!Mg&Ckh)9X}(OAv+ym6`Vbfi~gr^u<1yCSVM8`m6M^WB1WNPX7@Ln(riaFOY=s}2R2{P z{O1ua!wpr5V`?i(Z zc5a*4_HesO?Vf0t*zU9TQv2rZ2e#kTzUbcj?@he-`wkU4bnKAW;n;mu?`wab`TpSh zqwb%2|DO9x9%%c(_y<0Gz#7#wYIxMfsQd>TJUINpjSuE?a{SPaTRJ)(YWmR7ht@rm z)#;8-tveMx-00zc4=;N7$IbzryL682yr;9{k*1FfedOIoGP;Czd7?{PmmOWqT}mFU z`Do8a6Cd67Sk1?teJuL1^^g7dnDz0X$Ll@b>G58VPkem$3=zPqJ|Z;v`X2KQLk=D|)Z6u|w3XjZx$IIt-xpxJ7rEyWc3`2MD8x2xd|yPn;c%Ul zE4zy1D!fBib(LTz20p8~)cZ|C|}dVnztk=w)ky9aoh zyM;~l+@yu_Uj?i9MqVe%yNsOBcCR=2t7fUgTFZ&(7rzVO1unfRbON&Ao(N zEIh4{zl&($t8#C3p7|}${FZ0J8d4ZFo|V9{08ftDjn zO}H(tCb>7HX4T0(l-$qZpWO1WlY@|Xk*7>fBNDXEZF3D2p_XI=E% z5VQa-k@dr9#4Yz6Ql7?cOG%lIWPCiSDf3KjeK%Xy=TT~5YoeX7YO)RV$hM@MYz5E% zOtvPEYz1RYnq146i4UQURX{M$6t>k43Ehiy9^e{5&Dx zz9#iy569fkZb})1Cx4i`d%%^aHER)mEK}o`nI~O@t(Wka79?MYzbIm4yS&ASatVtm zE0?gCvU0h7+n<-qZ81TlR!Qx)`-hRYyBuecgGJN7n`37whYVv&1rM+ur^k9sv?hYJ z?iv(P1C^8oq%>2D5>os|3V%vmBsJh!IXvqeGRQ;zXW;e)TK__=RnxeD&vt9`b8`BS zoP_sCm%er#kq*0#NkglTW&9x0K=fSju#LDP6!{n(&fl6~jjGVr4Q4XMBIvcea&qW-n1e`V^whx&gj`*QVj9gr)zK0_9l zk;N`#aT-|&rsg0E6SBxh6M;y-3R()rk4Er~5xLZ+v}Ly66dQ2cztDdHwKz^KzM>ZA zv|6}*z^{185=vFs%^*rlL_T*n(%cXQAoq;woX)VsUK0*3lAo&lGdAz3?zo!0zH$wXPveC6u(?D5^Dq3yP<_YEr|8xdf z6jGw|JTVaVl_C!>o*0Hy{a|1zIhpAHi9S|!>hJDnmmr5?3x5ur8?@Y8D~-v{q7FB*l7c?Gip!^jAcWBbPb~ zs}#Mq%5b3;Osfko8UkTUEx2mh#eVLEc@L0t6!-O}eeOpM#dB4yH&vOGwaB|JTy6;5 z{LS~IUPkJ|E2;ZYw~E?x>++0-K=eCXaMdJ8o$f_q7VZ)GE99?~t5;e6qFy3@(F1;m z6c@-ppVEnb*BLZa2`N`*q}Sc%7sFgy7O5U3bhoZeDUq2^w2e~M9MsvL=*Jw1?7xr~V*KWC6d5YW9i=IU-;mq|k~u}m65*FqZSc#e2G5p{I)xGZ%xCB0tiGFe`mTJVfsE>=|wDgUlN z@ob?#-kCM~$?<67ELI?%ouS!~NNpu`*|V=_Ln3t^B^RlM4P{(qyEdLJEbxz3A#}Q% zdKZwofYgHH`DoNFF+3G{R)G`2c$`|W>i5#0*Gk_G*4;}E4`5qS)bMF|{{o(;_099t_dKbErHNjemDE<)?@sAJQliAd zM)Rm=9`zLCB6-wPybYDvr+CjTdvB=4Gk<5jkV={7NhgKqrHbCNc%KtG74J-!=_!e^ zn5syqI=|BP@CMK9BmZ`fH3%t*))?I)$sTa{Y1r@r#~ab#jUe9G z7~jADuK$Kn#ed51uNt5IN0M$y{`Zel-}(sm|E`o}Zy&cdvi`p}by-j2_T~is$>q=I zO8$|{|D;@QtygvX^F;p*Io$YM)&G_||NH0E{wd+@&rAOI%TToCVwQzQzh>U`pPX)Ne)=Cd{k!G#pP5hp=c)hG zD;EB5u08mtR{wj}iTvNxRoPs~t*w6fPo@^L$G5i9<)4)9RVCM73-o_pLacS@$E<$Y z3WS?qRdjnPZ*8TNc;>C8EPHPdD|pIQc9gB2DqF)K-XX4Coh9}m-1>8GJ!Jz{`n|#` z!Ue3>SjMV|m8@p0$V!S(=8smhcH)ogVpwnISuOSe_eZgZ^I_>tsRt`tUSL&MZ`RoL zj5VF6u6_B@{Qh3H<$%hr>Vh!50e&xDrC}pv0;bDVh~iqo3S?o4_N)LONy_IVqLnJQ}^V8N2{)_5~QxQdzJZDE!JlLWqo;`SidcH zCj6d@uV)m=2TxpyHSd*K0aS~%|9_oRBXVj&d76~Vss5FmBFU){Io(B0&Hg5*yU3{( zIkhgAQ{yW+1(DMo}D-|t0}?)Loz(F??i@lxV;c}p+LRitFv`^ML4?|YSN@1HH#-aq??_Ws!$Z144M z8EUJ`uir-zeURR;R(PM=TdVy4YwFuyqkVfTy#Go4`^xgaUl%Vti$W`#$=t<_O0JNe za-nBs{Y6?^vt}*-DZSr%zfja&Sn2Jp&A-)L#9qO&75+t9J8}DE5wZ~Pp*O!z;MP-? zy}{nhGsSxrG3AI`aO=;#^_1exkNt-r3cR4r!-<{lCG>(S5XHntT1rd4igtf3ErBn6 zwh-FCTKvC`KEPk>pdd|@w1M~ASlYikX#bv~{fnagThIG#H|dC!Ae~@WQik*@JC=6S z4n9O1xR{t}FVPORpdD;3H;{VD&7}TvbI?NS%X@D>+QGiGNo#rUeUWysKkvQ$dGCFZ zcCa7sy?uG_?azDfit^?Q{5w;*`}DW7lTCP;o8Ofpxbja*_wGIM-gNE0o&WO^ z;!UC-)?FF?h*kDCy2D89;>y11RAT3T4nE}Oo^|o2pCd|_#a>8vbPXpSwFbT68;N3Y z^KVnaPu$e|7a^J+Vt?$Pr}}+VQ1rMZX)>__|EG6@+IV+oM<`Fr)qLg6)~3@<)JDe+ zwohm+-1~vuduKŦbwg0>%6#JaK2y4?7ke&naHGfj*Oi^wK4(Qm}Q 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 Fe*%f=JV^im diff --git a/StyleKit/StyleKit/Fonts/Brandon_blk.otf b/StyleKit/StyleKit/Fonts/Brandon_blk.otf deleted file mode 100755 index 936deceed9e9491b2851f18896e99732b18a5fd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90892 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 diff --git a/StyleKit/StyleKit/Fonts/Brandon_light_it.otf b/StyleKit/StyleKit/Fonts/Brandon_light_it.otf deleted file mode 100755 index d2f8db4455dc6ff078bb83840b093f1a120e29df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78892 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 IbJ-$)0eM($(EtDd diff --git a/StyleKit/StyleKit/Fonts/Brandon_med.otf b/StyleKit/StyleKit/Fonts/Brandon_med.otf deleted file mode 100755 index 113eb2459d731ceeaf8ec567f22e11a6e92b3745..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89536 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 diff --git a/StyleKit/StyleKit/Fonts/Brandon_thin.otf b/StyleKit/StyleKit/Fonts/Brandon_thin.otf deleted file mode 100755 index eeeb35242f38713c1fe39ca9acd21d3a17cda7fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90808 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 X@Krb7Nh&Xkye{$*o&n diff --git a/StyleKit/StyleKit/LabelsTableViewCell.swift b/StyleKit/StyleKit/LabelsTableViewCell.swift deleted file mode 100644 index bfdf05c..0000000 --- a/StyleKit/StyleKit/LabelsTableViewCell.swift +++ /dev/null @@ -1,21 +0,0 @@ -// -// LabelsTableViewCell.swift -// StyleKitSample -// -// Created by Eric Kille on 10/22/16. -// Copyright © 2016 Tonic Design. All rights reserved. -// - -import UIKit - -class LabelsTableViewCell: UITableViewCell { - - @IBOutlet weak var label: UILabel! - - override func awakeFromNib() { - super.awakeFromNib() - // Initialization code - } - - -} diff --git a/StyleKit/StyleKit/ProgressViewsTableViewCell.swift b/StyleKit/StyleKit/ProgressViewsTableViewCell.swift deleted file mode 100644 index 0ef476c..0000000 --- a/StyleKit/StyleKit/ProgressViewsTableViewCell.swift +++ /dev/null @@ -1,23 +0,0 @@ -// -// ProgressViewsTableViewCell.swift -// StyleKitSample -// -// Created by Eric Kille on 10/22/16. -// Copyright © 2016 Tonic Design. All rights reserved. -// - -import UIKit - -class ProgressViewsTableViewCell: UITableViewCell { - - - @IBOutlet weak var progressView: UIProgressView! - @IBOutlet weak var label: UILabel! - - override func awakeFromNib() { - super.awakeFromNib() - // Initialization code - } - - -} diff --git a/StyleKit/StyleKit/ReadingViewController.swift b/StyleKit/StyleKit/ReadingViewController.swift deleted file mode 100644 index 1085dab..0000000 --- a/StyleKit/StyleKit/ReadingViewController.swift +++ /dev/null @@ -1,41 +0,0 @@ -import UIKit - - -class ReadingViewController: UIViewController { - - @IBOutlet weak var textView: UITextView! - - override func viewDidLoad() { - super.viewDidLoad() - title = "Reader" - self.setDayTimeReading() - } - - - @IBAction func switchChanged(sender: AnyObject) { - guard let theSwitch = sender as? UISwitch else { - return - } - - if theSwitch.on { - UIView.animateWithDuration(0.25) { - self.setNightTimeReading() - } - } else { - UIView.animateWithDuration(0.25) { - self.setDayTimeReading() - } - } - } - - func setNightTimeReading() { - self.textView.styleTag = "NightTimeReading" - self.view.styleTag = "NightTimeReading" - } - - func setDayTimeReading() { - self.textView.styleTag = "DayTimeReading" - self.view.styleTag = "DayTimeReading" - } - -} diff --git a/StyleKit/StyleKit/SegmentedControlsTableViewCell.swift b/StyleKit/StyleKit/SegmentedControlsTableViewCell.swift deleted file mode 100644 index 334c0e9..0000000 --- a/StyleKit/StyleKit/SegmentedControlsTableViewCell.swift +++ /dev/null @@ -1,21 +0,0 @@ -// -// SegmentedControlsTableViewCell.swift -// StyleKitSample -// -// Created by Eric Kille on 10/22/16. -// Copyright © 2016 Tonic Design. All rights reserved. -// - -import UIKit - -class SegmentedControlsTableViewCell: UITableViewCell { - - @IBOutlet weak var segmentedControl: UISegmentedControl! - @IBOutlet weak var label: UILabel! - - override func awakeFromNib() { - super.awakeFromNib() - // Initialization code - } - -} diff --git a/StyleKit/StyleKit/SlidersTableViewCell.swift b/StyleKit/StyleKit/SlidersTableViewCell.swift deleted file mode 100644 index 28b5dba..0000000 --- a/StyleKit/StyleKit/SlidersTableViewCell.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// SlidersTableViewCell.swift -// StyleKitSample -// -// Created by Eric Kille on 10/22/16. -// Copyright © 2016 Tonic Design. All rights reserved. -// - -import UIKit - -class SlidersTableViewCell: UITableViewCell { - - @IBOutlet weak var label: UILabel! - @IBOutlet weak var slider: UISlider! - - override func awakeFromNib() { - super.awakeFromNib() - // Initialization code - } - - -} diff --git a/StyleKit/StyleKit/SteppersTableViewCell.swift b/StyleKit/StyleKit/SteppersTableViewCell.swift deleted file mode 100644 index 207126a..0000000 --- a/StyleKit/StyleKit/SteppersTableViewCell.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// SteppersTableViewCell.swift -// StyleKitSample -// -// Created by Eric Kille on 10/22/16. -// Copyright © 2016 Tonic Design. All rights reserved. -// - -import UIKit - -class SteppersTableViewCell: UITableViewCell { - - @IBOutlet weak var label: UILabel! - @IBOutlet weak var stepper: UIStepper! - - override func awakeFromNib() { - super.awakeFromNib() - // Initialization code - } - - -} diff --git a/StyleKit/StyleKit/Style2.json b/StyleKit/StyleKit/Style2.json deleted file mode 100644 index 031030d..0000000 --- a/StyleKit/StyleKit/Style2.json +++ /dev/null @@ -1,1159 +0,0 @@ -{ - "Fonts": { - "primaryNationalFontLight":"National-Light", - "primaryNationalFontRegular":"National-Regular", - "primaryNationalFontRegularItalic":"National-RegularItalic", - "primaryNationalFontBold":"National-Bold", - "primaryNationalFontSemibold":"National-Semibold", - "primaryNationalFontBoldItalic":"National-BoldItalic", - "primaryNationalFontLightItalic":"National-LightItalic", - "primaryTiemposHeadlineRegular": "TiemposHeadline-Regular", - "primaryTiemposHeadlineRegularItalic": "TiemposHeadline-RegularItalic", - "primaryTiemposHeadlineLight": "TiemposHeadline-Light" - }, - "Colors": { - "white": { - "hex": "#FFFFFF", - "alpha": 1 - }, - "clear": { - "hex": "#000000", - "alpha": 0.0 - }, - "black": { - "hex": "#000000", - "alpha": 1 - }, - "darkGray": { - "hex": "#333333", - "alpha": 1 - }, - "gray": { - "hex": "#666666", - "alpha": 1 - }, - "mediumGray": { - "hex": "#DDDDDD", - "alpha": 1 - }, - "lightGray": { - "hex": "#F6F6F6", - "alpha": 1 - }, - "lightGrayAlpha": { - "hex": "#666666", - "alpha": 0.6 - }, - "borderGray": { - "hex": "#DDDDDD", - "alpha": 1 - }, - "cardBorderGray": { - "hex": "#EEEEEE", - "alpha": 1 - }, - "hingeTeal": { - "hex": "#82D9C9", - "alpha": 1 - }, - "hingeBlue": { - "hex": "#25ACD7", - "alpha": 1 - }, - "darkCoral": { - "hex": "#CE5252", - "alpha": 1 - }, - "opaqueBlack": { - "hex": "#000000", - "alpha": 0.45 - }, - "darkBlue": { - "hex": "#3B5998", - "alpha": 1 - }, - "darkerBlue": { - "hex": "#2E477B", - "alpha": 1 - }, - "offWhite": { - "hex": "#AAAAAA", - "alpha": 1 - }, - "red": { - "hex": "#CE5252", - "alpha": 1 - }, - "inactive": { - "hex": "#AAAAAA", - "alpha": 1 - }, - "invisible": { - "hex": "#CCCCCC", - "alpha": 1 - }, - "hingeLime": { - "hex": "#99CA3C", - "alpha": 1 - }, - "swanOffBlack": { - "hex": "#2E2E2E", - "alpha": 1 - }, - "textBlack": { - "hex": "#1A1A1A", - "alpha": 1 - }, - "swanGreen": { - "hex": "#7ADFB9", - "alpha": 1 - }, - "lightSwanGreen": { - "hex": "#A5EFD3", - "alpha": 1 - }, - "swanPink": { - "hex": "#F79F9C", - "alpha": 1 - }, - "lightSwanPink": { - "hex": "#FBB4AA", - "alpha": 1 - }, - "backgroundGray": { - "hex": "#F3F3F3", - "alpha": 1 - } - }, - "Images": { - "editProfileDoneButtonBackground": "doneIcon", - "likeBackgroundImageView": "likeIndicatorContainer", - "heartLikeIcon": "likeIcon", - "feedNoteBackgroundView": "noteContainer", - "appIcon": "AppIcon", - "feedEmptyStateCheck": "feedEmptyStateCheck", - "likeActionIcon": "likeAction", - "noteActionIcon": "noteAction", - "notMyTypeActionIcon": "notMyTypeAction", - "logoBlue": "logoBlue", - "startPreferencesIcon": "startPreferencesIcon", - "startProfileIcon": "startProfileIcon", - "pushNotifIcon": "pushNotifIcon", - "locLabelPointerRed": "locLabelPointerRed", - "locLabelPointer": "locLabelPointer", - "fbIconActive": "fbIconActive", - "fbIconInactive": "fbIconInactive", - "igIconActive": "igIconActive", - "igIconInactive": "igIconInactive", - "editIcon": "editIcon", - "doneIcon": "doneIcon", - "visibleIcon": "visibleIcon", - "hideIcon": "hideIcon", - "listeningIcon": "listeningIcon", - "listeningIconInactive": "listeningIconInactive", - "quoteIcon": "quoteIcon", - "quoteIconInactive": "quoteIconInactive", - "readingIcon": "readingIcon", - "readingIconInactive": "readingIconInactive", - "watchingIcon": "watchingIcon", - "watchingIconInactive": "watchingIconInactive", - "noNetworkIcon": "noNetworkIcon", - "noteHideIcon": "noteHideIcon", - "noteShowIcon": "noteShowIcon" - }, - "Views": { - "EditProfileBackdrop": { - "backgroundColor": "lightGrayAlpha" - }, - "profileImage": { - "cornerRadius": 3 - }, - "special": { - "backgroundColor": "lightGray", - "borderColor": "white", - "borderWidth": 2, - "cornerRadius": 10 - }, - "OutgoingBubble": { - "backgroundColor": "white" - }, - "IncomingBubble": { - "backgroundColor": "hingeTeal" - }, - "BasicsCell": { - "backgroundColor": "black", - "borderColor": "black", - "borderWidth": 1, - "cornerRadius": 20 - }, - "NewRecommendations": { - "backgroundColor": "hingeBlue", - "cornerRadius": 22 - }, - "CardContainer": { - "backgroundColor": "white", - "cornerRadius": 6 - }, - "MarkerViewBlack": { - "backgroundColor": "black", - "borderColor": "black", - "borderWidth": 1, - "cornerRadius": 20 - }, - "MarkerViewRed": { - "backgroundColor": "red", - "borderColor": "red", - "borderWidth": 1, - "cornerRadius": 20 - }, - "NoteContainer": { - "backgroundColor": "white", - "borderColor": "borderGray", - "borderWidth": 1, - "cornerRadius": 26 - } - }, - "Labels": { - "H1": { - "textColor": "white", - "textAlignment": "Left", - "attributes": { - "fontStyle": { - "font": "primaryTiemposHeadlineRegular", - "size": 50 - }, - "tracking": 10, - "lineSpacing": 0, - "ligature": 0 - } - }, - "H2": { - "textColor": "black", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 28 - }, - "tracking": 10, - "lineSpacing": 10, - "ligature": 0 - } - }, - "H3": { - "textColor": "black", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 20 - }, - "tracking": 10, - "lineSpacing": 5, - "ligature": 0 - } - }, - "H4": { - "textColor": "white", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 32 - }, - "tracking": 10, - "lineSpacing": 10, - "ligature": 0 - } - }, - "H5": { - "textColor": "white", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 28 - }, - "tracking": 10, - "lineSpacing": 3, - "ligature": 0 - } - }, - "H6": { - "textColor": "white", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 28 - }, - "tracking": 10, - "lineSpacing": 3, - "ligature": 0 - } - }, - "P1": { - "textColor": "white", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "tracking": 10, - "lineSpacing": 5, - "ligature": 0 - } - }, - "P2": { - "textColor": "black", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 16 - }, - "tracking": 5, - "lineSpacing": 5, - "ligature": 0 - } - }, - "P2Inactive": { - "textColor": "inactive", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 16 - }, - "tracking": 5, - "lineSpacing": 5, - "ligature": 0 - } - }, - "P3": { - "textColor": "gray", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 20 - }, - "tracking": 5, - "lineSpacing": 10, - "ligature": 0 - } - }, - "P4": { - "textColor": "white", - "textAlignment": "Left", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 16 - }, - "tracking": 5, - "lineSpacing": 5, - "ligature": 0 - } - }, - "CenteredP4": { - "textColor": "white", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 16 - }, - "tracking": 5, - "lineSpacing": 5, - "ligature": 0 - } - }, - "P5": { - "textColor": "black", - "textAlignment": "Left", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 16 - }, - "tracking": 5, - "lineSpacing": 3, - "ligature": 0 - } - }, - "P6": { - "textColor": "black", - "textAlignment": "Left", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "tracking": 5, - "lineSpacing": 3, - "ligature": 0 - } - }, - "P6Inactive": { - "textColor": "inactive", - "textAlignment": "Left", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "tracking": 5, - "lineSpacing": 3, - "ligature": 0 - } - }, - "P7": { - "textColor": "black", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 20 - }, - "tracking": 5, - "lineSpacing": 3, - "ligature": 0 - } - }, - "P8": { - "textColor": "black", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 12 - }, - "tracking": 5, - "lineSpacing": 3, - "ligature": 0 - } - }, - "MarkerTitle": { - "textColor": "white", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 16 - }, - "tracking": 5, - "lineSpacing": 5, - "ligature": 0 - } - }, - "OutgoingBubbleMessage": { - "textColor": "black", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontLight", - "size": 16 - }, - "minimumLineHeight": 21, - "maximumLineHeight": 21 - } - }, - "OutgoingMessage": { - "textColor": "black", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontLight", - "size": 16 - }, - "minimumLineHeight": 21, - "maximumLineHeight": 21 - } - }, - "OutgoingMessageCentered": { - "textColor": "black", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 16 - }, - "minimumLineHeight": 21, - "maximumLineHeight": 21 - } - }, - "FeedCellDetails": { - "textColor": "black", - "textAlignment": "Left", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 16 - }, - "tracking": 5, - "lineSpacing": 2, - "ligature": 0 - } - }, - "DefaultMessage": { - "textColor": "black", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontLight", - "size": 16 - }, - "minimumLineHeight": 21, - "maximumLineHeight": 21 - } - }, - "DefaultMessageCentered": { - "textColor": "white", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 16 - }, - "minimumLineHeight": 21, - "maximumLineHeight": 21 - } - }, - "NoConnectionMessage": { - "textColor": "darkCoral", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 12 - } - } - }, - "NoRecs": { - "textColor": "white", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 14 - } - } - }, - "ProfileTags": { - "textColor": "white", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 14 - } - } - }, - "ProfileTitle": { - "textColor": "black", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - } - } - }, - "PrivacyLink": { - "textColor": "hingeBlue", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 14 - } - } - }, - "ConversationPreviewTextCentered": { - "textColor": "black", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 14 - }, - "minimumLineHeight": 18, - "maximumLineHeight": 18 - } - }, - "ConversationPreviewText": { - "textColor": "black", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 14 - }, - "minimumLineHeight": 18, - "maximumLineHeight": 18 - } - }, - "ConversationNameUnread": { - "textColor": "textBlack", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 22 - }, - "minimumLineHeight": 18, - "maximumLineHeight": 18 - } - }, - "ConversationPreviewTextUnread": { - "textColor": "textBlack", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontLight", - "size": 16 - }, - "minimumLineHeight": 18, - "maximumLineHeight": 18 - } - }, - "ConversationPreviewTextInactive": { - "textColor": "inactive", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 14 - }, - "minimumLineHeight": 18, - "maximumLineHeight": 18 - } - }, - "MessagePlaceholderText": { - "textColor": "mediumGray", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 16 - } - } - }, - "WelcomeScreenText": { - "textColor": "white", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 20 - } - } - }, - "MyType": { - "textColor": "black", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 18 - } - } - }, - "MyTypeHighlighted": { - "textColor": "black", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 18 - } - } - }, - "ImagesTabEmpty": { - "textColor": "black", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 16 - } - } - }, - "LikeInterstitialLead": { - "textColor": "white", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 16 - }, - "lineSpacing": 5 - } - }, - "LikeInterstitialBody": { - "textColor": "white", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 20 - }, - "lineSpacing": 6 - } - }, - "MyAccountHeader": { - "textColor": "offWhite", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 14 - } - } - }, - "PickerText": { - "textColor": "black", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 24 - }, - "tracking": 5, - "lineSpacing": 10, - "ligature": 0 - } - }, - "CustomSwitch": { - "textColor": "white", - "textAlignment": "Center", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 12 - }, - "lineSpacing": 5 - } - }, - "Dealbreaker": { - "textColor": "offWhite", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 16 - } - } - }, - "BasicsTitle": { - "textColor": "black", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 14 - } - } - }, - "CharacterCount": { - "textColor": "red", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontLight", - "size": 14 - } - } - }, - "CharacterLimit": { - "textColor": "black", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontLight", - "size": 14 - } - } - }, - "Error": { - "textColor": "darkCoral", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 14 - } - } - }, - "Success": { - "textColor": "hingeLime", - "attributes": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 14 - } - } - } - }, - "Buttons": { - "B1SignIn": { - "borderColor": "darkBlue", - "borderWidth": 1, - "cornerRadius": 26, - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "normalState": { - "backgroundColor": "darkBlue", - "textColor": "white" - }, - "selectedState": { - "backgroundColor": "darkerBlue", - "textColor": "white" - }, - "highlightedState": { - "backgroundColor": "darkerBlue", - "textColor": "white" - } - }, - "B2LikeNote": { - "borderColor": "clear", - "borderWidth": 0, - "cornerRadius": 22, - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "normalState": { - "backgroundColor": "clear", - "textColor": "white" - } - }, - "NotMyType": { - "borderColor": "offWhite", - "borderWidth": 1, - "cornerRadius": 16, - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 14 - }, - "normalState": { - "backgroundColor": "black", - "textColor": "white" - } - }, - "Done": { - "alpha": 1, - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 14 - }, - "normalState": { - "backgroundColor": "lightSwanPink", - "textColor": "black" - }, - "selectedState": { - "backgroundColor": "lightSwanPink", - "textColor": "black" - }, - "highlightedState": { - "backgroundColor": "lightSwanPink", - "textColor": "black" - } - }, - "SendButton": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "normalState": { - "backgroundColor": "white", - "textColor": "hingeBlue" - }, - "selectedState": { - "backgroundColor": "white", - "textColor": "hingeBlue" - }, - "highlightedState": { - "backgroundColor": "white", - "textColor": "hingeBlue" - } - }, - "ProfileTitle": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "normalState": { - "textColor": "black" - } - }, - "InterstitialButton": { - "borderColor": "hingeBlue", - "borderWidth": 1, - "cornerRadius": 25, - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "normalState": { - "backgroundColor": "hingeBlue", - "textColor": "white" - } - }, - "EnablePushYes": { - "borderColor": "white", - "borderWidth": 1, - "cornerRadius": 26, - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "normalState": { - "backgroundColor": "white", - "textColor": "black" - } - }, - "EnablePushNo": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "normalState": { - "textColor": "white" - } - }, - "NoteInterstitialConfirm": { - "borderColor": "lightSwanGreen", - "borderWidth": 1, - "cornerRadius": 26, - "backgroundColor": "lightSwanGreen", - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 14 - }, - "normalState": { - "textColor": "black" - } - }, - "ConnectWith": { - "borderColor": "hingeBlue", - "borderWidth": 1, - "cornerRadius": 26, - "backgroundColor": "hingeBlue", - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "normalState": { - "textColor": "white" - } - }, - "Next": { - "borderColor": "lightSwanGreen", - "borderWidth": 1, - "cornerRadius": 26, - "backgroundColor": "lightSwanGreen", - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 14 - }, - "normalState": { - "textColor": "black" - } - }, - "NextDisabled": { - "borderColor": "cardBorderGray", - "borderWidth": 1, - "backgroundColor": "cardBorderGray", - "cornerRadius": 30, - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 18 - }, - "normalState": { - "textColor": "offWhite" - } - }, - "StartConnectingButton": { - "backgroundColor": "hingeBlue", - "cornerRadius": 30, - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "normalState": { - "textColor": "white" - } - }, - "LikeInterstitialCancel": { - "borderColor": "hingeBlue", - "borderWidth": 2, - "cornerRadius": 26, - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "normalState": { - "backgroundColor": "clear", - "textColor": "white" - } - }, - "LikeInterstitialConfirm": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 14 - }, - "normalState": { - "backgroundColor": "clear", - "textColor": "swanGreen" - } - }, - "Locate": { - "borderColor": "hingeBlue", - "borderWidth": 2, - "cornerRadius": 22, - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "normalState": { - "backgroundColor": "white", - "textColor": "hingeBlue" - }, - "selectedState": { - "backgroundColor": "hingeBlue", - "textColor": "white" - }, - "highlightedState": { - "backgroundColor": "hingeBlue", - "textColor": "white" - } - }, - "DiscoverLikeDisabled": { - "borderWidth": 2, - "cornerRadius": 26, - "borderColor": "clear", - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "normalState": { - "backgroundColor": "cardBorderGray", - "textColor": "offWhite" - } - }, - "DiscoverLikeEnabled": { - "borderWidth": 2, - "cornerRadius": 26, - "borderColor": "clear", - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "normalState": { - "backgroundColor": "hingeBlue", - "textColor": "white" - } - }, - "LogOut": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 16 - }, - "normalState": { - "textColor": "black" - } - }, - "linkStyle": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 14 - }, - "normalState": { - "textColor": "hingeBlue", - "textAlignment": "Left" - } - }, - "NoteSend": { - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 16 - }, - "normalState": { - "textColor": "hingeBlue" - }, - "disabledState": { - "textColor": "inactive" - } - }, - "NoteSecondaryAction": { - "backgroundColor": "hingeBlue", - "cornerRadius": 26, - "fontStyle": { - "font": "primaryNationalFontBold", - "size": 20 - }, - "normalState": { - "textColor": "white" - } - }, - "Clear" : { - "fontStyle" : { - "font" : "primaryNationalFontBold", - "size" : 16 - }, - "normalState" : "white" - }, - "AsNavButton": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 16 - }, - "normalState": { - "textColor": "hingeBlue" - }, - "disabledState": { - "textColor": "inactive" - } - }, - "UserInfoCardRadioCircle" : { - "fontStyle" : { - "font" : "primaryNationalFontLight", - "size" : 16 - }, - "normalState" : { - "textColor" : "black" - }, - "selectedState" : { - "textColor" : "black" - } - }, - "UserInfoCardRadioBlock" : { - "borderColor" : "borderGray", - "borderWidth" : 1, - "fontStyle" : { - "font" : "primaryNationalFontLight", - "size" : 16 - }, - "normalState" : { - "textColor" : "black", - "backgroundColor" : "white" - }, - "highlightedState" : { - "textColor" : "black", - "backgroundColor" : "borderGray" - }, - "selectedState" : { - "textColor" : "black", - "backgroundColor" : "borderGray" - } - } - }, - "TextFields": { - "T1": { - "fontStyle": { - "font": "primaryNationalFontRegular", - "size": 17 - }, - "textColor": "black", - "backgroundColor": "white", - "borderColor": "clear", - "textAlignment": "Left", - "borderWidth": 0, - "cornerRadius": 0, - "borderStyle": "None" - } - }, - "SegmentedControls": { - }, - "TextViews": { - "TV1": { - "textColor": "blueColor", - "attributes": { - "fontStyle": { - "font": "primaryFontLight", - "size": 20 - } - } - } - } -} diff --git a/StyleKit/StyleKit/StylesViewController.swift b/StyleKit/StyleKit/StylesViewController.swift deleted file mode 100644 index cded9f0..0000000 --- a/StyleKit/StyleKit/StylesViewController.swift +++ /dev/null @@ -1,124 +0,0 @@ - -import UIKit - -class StylesViewController: UIViewController { - - @IBOutlet weak var tableView: UITableView! - @IBOutlet weak var button: UIButton! - - var sectionHeaders = Array(Style.sharedInstance.styleMap.keys) - var styleMap = Style.sharedInstance.styleMap - var resources:[String:AnyObject] = ["Colors":Array(Style.sharedInstance.resources.colors.keys), - "Fonts":Array(Style.sharedInstance.resources.fontLabels.keys), - "Images":Array(Style.sharedInstance.resources.imageNames.keys)] - - - @IBAction func buttonTapped(sender: AnyObject) { - Utils.downloadStyleFile() - } - - override func viewDidLoad() { - super.viewDidLoad() - - title = "Styles Preview" - Style.sharedInstance.addSubscriber(self) - } - - override func didReceiveMemoryWarning() { - super.didReceiveMemoryWarning() - - } - - func updateUI() { - sectionHeaders = Array(Style.sharedInstance.styleMap.keys) - styleMap = Style.sharedInstance.styleMap - resources = ["Colors":Array(Style.sharedInstance.resources.colors.keys), - "Fonts":Array(Style.sharedInstance.resources.fontLabels.keys), - "Images":Array(Style.sharedInstance.resources.imageNames.keys)] - tableView.reloadData() - } -} - -extension StylesViewController: StyleKitSubscriber { - func update() { - self.updateUI() - } -} - -extension StylesViewController: UITableViewDelegate { - - func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { - - switch sectionHeaders[indexPath.section] { - case .button, .view, .textField: - return 70.0 - default: - return 54.0 - } - } -} - -extension StylesViewController: UITableViewDataSource { - - - func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - if let styles = styleMap[sectionHeaders[section]] { - return styles.keys.count - } - return 0 - } - - - func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { - - let sectionHeader = sectionHeaders[indexPath.section] - - let cell = tableView.dequeueReusableCellWithIdentifier("\(sectionHeader.rawValue)Cell", forIndexPath: indexPath) - - var styleTag = "" - if let styles = styleMap[sectionHeader] { - let allTags = Array(styles.keys) - styleTag = allTags[indexPath.row] - - switch sectionHeader { - case .button: - (cell as! ButtonTableViewCell).button.styleTag = styleTag - (cell as! ButtonTableViewCell).button.setTitle(styleTag, forState: .Normal) - case .segmentedControl: - (cell as! SegmentedControlsTableViewCell).segmentedControl.styleTag = styleTag - (cell as! SegmentedControlsTableViewCell).label.text = styleTag - case .textField: - (cell as! TextFieldsTableViewCell).textField.styleTag = styleTag - (cell as! TextFieldsTableViewCell).textField.text = styleTag - case .label: - (cell as! LabelsTableViewCell).label.styleTag = styleTag - (cell as! LabelsTableViewCell).label.text = styleTag - case .slider: - (cell as! SlidersTableViewCell).slider.styleTag = styleTag - (cell as! SlidersTableViewCell).label.text = styleTag - case .stepper: - (cell as! SteppersTableViewCell).stepper.styleTag = styleTag - (cell as! SteppersTableViewCell).label.text = styleTag - case .progressView: - (cell as! ProgressViewsTableViewCell).progressView.styleTag = styleTag - (cell as! ProgressViewsTableViewCell).label.text = styleTag - case .view: - (cell as! ViewsTableViewCell).view.styleTag = styleTag - (cell as! ViewsTableViewCell).label.text = styleTag - case .textView: - (cell as! TextViewsTableViewCell).textView.styleTag = styleTag - (cell as! TextViewsTableViewCell).textView.text = styleTag - } - } - - return cell - } - - func numberOfSectionsInTableView(tableView: UITableView) -> Int { - return sectionHeaders.count - } - - func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? { - return sectionHeaders[section].rawValue - } -} diff --git a/StyleKit/StyleKit/TextFieldsTableViewCell.swift b/StyleKit/StyleKit/TextFieldsTableViewCell.swift deleted file mode 100644 index bb7caf8..0000000 --- a/StyleKit/StyleKit/TextFieldsTableViewCell.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// TextFieldsTableViewCell.swift -// StyleKitSample -// -// Created by Eric Kille on 10/22/16. -// Copyright © 2016 Tonic Design. All rights reserved. -// - -import UIKit - -class TextFieldsTableViewCell: UITableViewCell { - - @IBOutlet weak var textField: UITextField! - - override func awakeFromNib() { - super.awakeFromNib() - // Initialization code - } - - - -} diff --git a/StyleKit/StyleKit/TextViewsTableViewCell.swift b/StyleKit/StyleKit/TextViewsTableViewCell.swift deleted file mode 100644 index eaa5ce3..0000000 --- a/StyleKit/StyleKit/TextViewsTableViewCell.swift +++ /dev/null @@ -1,18 +0,0 @@ -import UIKit - -class TextViewsTableViewCell: UITableViewCell { - - @IBOutlet weak var textView: UITextView! - - override func awakeFromNib() { - super.awakeFromNib() - // Initialization code - } - - override func setSelected(selected: Bool, animated: Bool) { - super.setSelected(selected, animated: animated) - - // Configure the view for the selected state - } - -} diff --git a/StyleKit/StyleKit/ViewController.swift b/StyleKit/StyleKit/ViewController.swift deleted file mode 100644 index be7e33b..0000000 --- a/StyleKit/StyleKit/ViewController.swift +++ /dev/null @@ -1,24 +0,0 @@ -// -// ViewController.swift -// StyleKitSample -// -// Created by Eric Kille on 3/10/16. -// Copyright © 2016 Tonic Design. All rights reserved. -// - -import UIKit - -class ViewController: UIViewController { - - @IBOutlet weak var button1: UIButton! - - override func viewDidLoad() { - super.viewDidLoad() - } - - override func didReceiveMemoryWarning() { - super.didReceiveMemoryWarning() - } - -} - diff --git a/StyleKit/StyleKit/ViewsTableViewCell.swift b/StyleKit/StyleKit/ViewsTableViewCell.swift deleted file mode 100644 index 5df168e..0000000 --- a/StyleKit/StyleKit/ViewsTableViewCell.swift +++ /dev/null @@ -1,21 +0,0 @@ -// -// ViewsTableViewCell.swift -// StyleKitSample -// -// Created by Eric Kille on 10/22/16. -// Copyright © 2016 Tonic Design. All rights reserved. -// - -import UIKit - -class ViewsTableViewCell: UITableViewCell { - - - @IBOutlet weak var label: UILabel! - @IBOutlet weak var view: UIView! - - override func awakeFromNib() { - super.awakeFromNib() - // Initialization code - } -} diff --git a/StyleKit/StyleKitTests/Info.plist b/StyleKit/StyleKitTests/Info.plist new file mode 100644 index 0000000..6c6c23c --- /dev/null +++ b/StyleKit/StyleKitTests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/StyleKit/StyleKitTests/StyleKitTests.swift b/StyleKit/StyleKitTests/StyleKitTests.swift new file mode 100644 index 0000000..7a48ba5 --- /dev/null +++ b/StyleKit/StyleKitTests/StyleKitTests.swift @@ -0,0 +1,30 @@ +// +// StyleKitTests.swift +// StyleKitTests +// +// Created by Eric Kille on 10/28/16. +// Copyright © 2016 Tonic Design. All rights reserved. +// + +import XCTest +@testable import StyleKit + +class StyleKitTests: XCTestCase { + + override func setUp() { + super.setUp() + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + super.tearDown() + } + + func testExample() { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + +} From d353926a9e0fd629f7cafe92a2ba753d8e73ae76 Mon Sep 17 00:00:00 2001 From: Eric Kille Date: Fri, 28 Oct 2016 11:30:58 -0400 Subject: [PATCH 6/8] Create StyleKitDemo workspace --- StyleKit/StyleKitDemo/StyleKit/Info.plist | 28 +++++++++---------- .../StyleKitDemo.xcodeproj/project.pbxproj | 4 +-- .../contents.xcworkspacedata | 10 +++++++ 3 files changed, 26 insertions(+), 16 deletions(-) create mode 100644 StyleKit/StyleKitDemo/StyleKitDemo.xcworkspace/contents.xcworkspacedata diff --git a/StyleKit/StyleKitDemo/StyleKit/Info.plist b/StyleKit/StyleKitDemo/StyleKit/Info.plist index 25bf339..63e4d6f 100644 --- a/StyleKit/StyleKitDemo/StyleKit/Info.plist +++ b/StyleKit/StyleKitDemo/StyleKit/Info.plist @@ -2,11 +2,6 @@ - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - CFBundleDevelopmentRegion en CFBundleExecutable @@ -27,6 +22,20 @@ 1 LSRequiresIPhoneOS + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + UIAppFonts + + Brandon_thin.otf + Brandon_med.otf + Brandon_light.otf + Brandon_light_it.otf + Brandon_blk.otf + Brandon_bld.otf + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile @@ -41,14 +50,5 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight - UIAppFonts - - Brandon_thin.otf - Brandon_med.otf - Brandon_light.otf - Brandon_light_it.otf - Brandon_blk.otf - Brandon_bld.otf - diff --git a/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.pbxproj b/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.pbxproj index e70f1b6..4ad4eb6 100644 --- a/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.pbxproj +++ b/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.pbxproj @@ -425,7 +425,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = StyleKit/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKitSample; + PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKitDemo; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 2.3; }; @@ -437,7 +437,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = StyleKit/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKitSample; + PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKitDemo; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 2.3; }; diff --git a/StyleKit/StyleKitDemo/StyleKitDemo.xcworkspace/contents.xcworkspacedata b/StyleKit/StyleKitDemo/StyleKitDemo.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..aa49fce --- /dev/null +++ b/StyleKit/StyleKitDemo/StyleKitDemo.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + From 5a2bb7f73949d41f39256f36fff487cf645aa27f Mon Sep 17 00:00:00 2001 From: Eric Kille Date: Fri, 28 Oct 2016 12:08:02 -0400 Subject: [PATCH 7/8] Exposed public vars and classes in StyleKit Framework --- StyleKit/StyleKit.xcodeproj/project.pbxproj | 6 +- StyleKit/StyleKit/Style.swift | 34 +- StyleKit/StyleKit/UIView+StyleKit.swift | 4 +- StyleKit/StyleKit/Utils.swift | 4 +- .../StyleKitDemo/StyleKit/AppDelegate.swift | 5 + .../StyleKitDemo/StyleKit/ButtonStylist.swift | 141 -------- StyleKit/StyleKitDemo/StyleKit/DemoCode.swift | 5 +- .../StyleKitDemo/StyleKit/LabelStylist.swift | 134 -------- .../StyleKit/ProgressViewStylist.swift | 87 ----- .../StyleKit/SegmentedControlStylist.swift | 130 -------- .../StyleKitDemo/StyleKit/SliderStylist.swift | 95 ------ .../StyleKit/StepperStylist.swift | 129 -------- StyleKit/StyleKitDemo/StyleKit/Style.swift | 309 ------------------ .../StyleKit/StylesViewController.swift | 1 + .../StyleKit/TextFieldStylist.swift | 138 -------- .../StyleKit/TextViewStylist.swift | 130 -------- .../StyleKit/UIView+StyleKit.swift | 28 -- StyleKit/StyleKitDemo/StyleKit/Utils.swift | 64 ---- .../StyleKitDemo/StyleKit/ViewStylist.swift | 164 ---------- .../StyleKitDemo.xcodeproj/project.pbxproj | 76 ++--- 20 files changed, 54 insertions(+), 1630 deletions(-) delete mode 100644 StyleKit/StyleKitDemo/StyleKit/ButtonStylist.swift delete mode 100644 StyleKit/StyleKitDemo/StyleKit/LabelStylist.swift delete mode 100644 StyleKit/StyleKitDemo/StyleKit/ProgressViewStylist.swift delete mode 100644 StyleKit/StyleKitDemo/StyleKit/SegmentedControlStylist.swift delete mode 100644 StyleKit/StyleKitDemo/StyleKit/SliderStylist.swift delete mode 100644 StyleKit/StyleKitDemo/StyleKit/StepperStylist.swift delete mode 100644 StyleKit/StyleKitDemo/StyleKit/Style.swift delete mode 100644 StyleKit/StyleKitDemo/StyleKit/TextFieldStylist.swift delete mode 100644 StyleKit/StyleKitDemo/StyleKit/TextViewStylist.swift delete mode 100644 StyleKit/StyleKitDemo/StyleKit/UIView+StyleKit.swift delete mode 100644 StyleKit/StyleKitDemo/StyleKit/Utils.swift delete mode 100644 StyleKit/StyleKitDemo/StyleKit/ViewStylist.swift diff --git a/StyleKit/StyleKit.xcodeproj/project.pbxproj b/StyleKit/StyleKit.xcodeproj/project.pbxproj index f3a90dc..2c5b5c9 100644 --- a/StyleKit/StyleKit.xcodeproj/project.pbxproj +++ b/StyleKit/StyleKit.xcodeproj/project.pbxproj @@ -410,7 +410,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = StyleKit/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKit; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -438,7 +438,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = StyleKit/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.tonicdesign.StyleKit; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -504,6 +504,7 @@ 29B64F0E1DC39E0100D460B1 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; 29B64F121DC39E0100D460B1 /* Build configuration list for PBXNativeTarget "StyleKitTests" */ = { isa = XCConfigurationList; @@ -512,6 +513,7 @@ 29B64F101DC39E0100D460B1 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; diff --git a/StyleKit/StyleKit/Style.swift b/StyleKit/StyleKit/Style.swift index a066a5a..fc36f76 100644 --- a/StyleKit/StyleKit/Style.swift +++ b/StyleKit/StyleKit/Style.swift @@ -16,10 +16,10 @@ class ColorStyle { } } -class CommonResources { - var fontLabels = [String: String]() - var colors = [String: UIColor]() - var imageNames = [String: String]() +public class CommonResources { + public var fontLabels = [String: String]() + public var colors = [String: UIColor]() + public var imageNames = [String: String]() } class AttributedTextStyle { @@ -41,7 +41,7 @@ protocol Stylist { associatedtype Element } -protocol StyleKitSubscriber: class { +public protocol StyleKitSubscriber: class { func update() } @@ -50,7 +50,7 @@ enum FontProperty: String { case size = "size" } -enum UIElement: String { +public enum UIElement: String { case segmentedControl = "SegmentedControls" case textField = "TextFields" case button = "Buttons" @@ -78,7 +78,7 @@ enum ColorProperties: String { } -class Style { +public class Style { enum StyleKitError: ErrorType { case StyleFileNotFound(String) @@ -86,16 +86,16 @@ class Style { case InvalidLabelStyle } - static let sharedInstance = Style() + public static let sharedInstance = Style() private let fileName = "Style.json" - static let styleSheetLocation = "StyleKit-StylesheetLocation" // Make sure to update docs if this changes + public static let styleSheetLocationKey = "SKStylesheetLocation" // Make sure to update docs if this changes - var resources = CommonResources() + public var resources = CommonResources() - typealias StyleMap = [String: AnyObject] + public typealias StyleMap = [String: AnyObject] - var styleMap = [UIElement:StyleMap]() + public var styleMap = [UIElement:StyleMap]() private let subscribers: NSHashTable @@ -109,7 +109,7 @@ class Style { } private func getStylePath() throws -> NSURL { - if let string = NSBundle.mainBundle().infoDictionary?[Style.styleSheetLocation] as? String, + if let string = NSBundle.mainBundle().infoDictionary?[Style.styleSheetLocationKey] as? String, documentDirectory = Utils.documentDirectory { let pathURL: NSURL? if string.containsString(".json") { @@ -272,7 +272,7 @@ extension Style { Call 'removeSubscriber(subscriber: StyleKitSubscriber)' to unregister */ - func addSubscriber(subscriber: StyleKitSubscriber) { + public func addSubscriber(subscriber: StyleKitSubscriber) { if !subscribers.containsObject(subscriber) { subscribers.addObject(subscriber) } @@ -281,7 +281,7 @@ extension Style { /** Removes a subscriber from the list of subscribers */ - func removeSubscriber(subscriber: StyleKitSubscriber) { + public func removeSubscriber(subscriber: StyleKitSubscriber) { if subscribers.containsObject(subscriber) { subscribers.removeObject(subscriber) } @@ -292,13 +292,13 @@ extension Style { StyleKit.sharedInstance.refresh() - Since the bundle is readonly, the stylesheet must be at the location specified in the applications plist file for the key 'StyleKit-StylesheetLocation'. The new stylesheet will **not** automatically get applied to views which have already been tagged/styled. To restyle a view which has already been tagged/styled, call `style()` on the view. + Since the bundle is readonly, the stylesheet must be at the location specified in the applications plist file for the key 'SKStylesheetLocation'. The new stylesheet will **not** automatically get applied to views which have already been tagged/styled. To restyle a view which has already been tagged/styled, call `style()` on the view. You may register for changes to the stylesheet by implementing the `StyleKitSubscriber` protocol and calling `addSubscriber`. StyleKit.sharedInstance.addSubscriber(self) */ - func refresh() { + public func refresh() { serialize() let enumerator = subscribers.objectEnumerator() while let subscriber = enumerator.nextObject() as? StyleKitSubscriber { diff --git a/StyleKit/StyleKit/UIView+StyleKit.swift b/StyleKit/StyleKit/UIView+StyleKit.swift index cc64322..f8f5564 100644 --- a/StyleKit/StyleKit/UIView+StyleKit.swift +++ b/StyleKit/StyleKit/UIView+StyleKit.swift @@ -1,7 +1,7 @@ import UIKit -extension UIView { +public extension UIView { private struct AssociatedKeys { static var styleTag = "" } @@ -9,7 +9,7 @@ extension UIView { /** Setting the styleTag automatically applies styles as defined in the stylesheet */ - @IBInspectable var styleTag: String? { + @IBInspectable public var styleTag: String? { get { return objc_getAssociatedObject(self, &AssociatedKeys.styleTag) as? String } diff --git a/StyleKit/StyleKit/Utils.swift b/StyleKit/StyleKit/Utils.swift index 951c065..dfa73ca 100644 --- a/StyleKit/StyleKit/Utils.swift +++ b/StyleKit/StyleKit/Utils.swift @@ -2,11 +2,11 @@ import Foundation import UIKit - -struct Utils { +internal struct Utils { static let documentDirectory = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).last } + extension UIColor { convenience init(red: Int, green: Int, blue: Int, alph: Float) { assert(red >= 0 && red <= 255, "Invalid red component") diff --git a/StyleKit/StyleKitDemo/StyleKit/AppDelegate.swift b/StyleKit/StyleKitDemo/StyleKit/AppDelegate.swift index 83c20ba..9aa983a 100644 --- a/StyleKit/StyleKitDemo/StyleKit/AppDelegate.swift +++ b/StyleKit/StyleKitDemo/StyleKit/AppDelegate.swift @@ -20,3 +20,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } } + + +struct Utils { + static let documentDirectory = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).last +} diff --git a/StyleKit/StyleKitDemo/StyleKit/ButtonStylist.swift b/StyleKit/StyleKitDemo/StyleKit/ButtonStylist.swift deleted file mode 100644 index b1a76f0..0000000 --- a/StyleKit/StyleKitDemo/StyleKit/ButtonStylist.swift +++ /dev/null @@ -1,141 +0,0 @@ - -import Foundation -import UIKit - -class ButtonStyle : Stylist { - - typealias Element = UIButton - - var fontStyle: FontStyle? - var borderWidth: Int? - var borderColor: UIColor? - var backgroundColor: UIColor? - var cornerRadius: Int? - var normalColors: ColorStyle? - var highlightedColors: ColorStyle? - var selectedColors: ColorStyle? - var disabledColors: ColorStyle? - - enum Properties: String { - case FontStyle = "fontStyle" - case BorderWidth = "borderWidth" - case BorderColor = "borderColor" - case CornerRadius = "cornerRadius" - case Normal = "normalState" - case Highlighted = "highlightedState" - case Selected = "selectedState" - case Disabled = "disabledState" - case BackgroundColor = "backgroundColor" - } - - static let allValues:[Properties] = [.FontStyle, .BorderWidth, .BackgroundColor, .BorderColor, .CornerRadius, .Normal, .Highlighted, .Selected, .Disabled] - - static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> ButtonStyle { - let style = ButtonStyle() - for (key,value) in spec { - guard let property = ButtonStyle.Properties(rawValue: key) else { - print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") - continue - } - switch property { - case .FontStyle: - if let fontSpec = value as? [String:AnyObject] { - style.fontStyle = Style.serializeFontSpec(fontSpec, resources: resources) - } - case .BorderColor: - if let colorKey = value as? String, - let color = resources.colors[colorKey] { - style.borderColor = color - } - case .BackgroundColor: - if let colorKey = value as? String, - let color = resources.colors[colorKey] { - style.backgroundColor = color - } - case .BorderWidth: - if let width = value as? Int { - style.borderWidth = width - } - case .CornerRadius: - if let radius = value as? Int { - style.cornerRadius = radius - } - case .Normal: - if let normalColorEntries = value as? [String: String] { - style.normalColors = Style.serializeColorsSpec(normalColorEntries, resources:resources) - } - case .Selected: - if let selectedColorEntries = value as? [String: String] { - style.selectedColors = Style.serializeColorsSpec(selectedColorEntries, resources:resources) - } - case .Highlighted: - if let highlightedColorEntries = value as? [String: String] { - style.highlightedColors = Style.serializeColorsSpec(highlightedColorEntries, resources:resources) - } - case .Disabled: - if let disabledColorEntries = value as? [String: String] { - style.disabledColors = Style.serializeColorsSpec(disabledColorEntries, resources:resources) - } - } - } - return style - } -} - -extension UIButton { - - func applyStyle(style:ButtonStyle, resources:CommonResources) { - for property in ButtonStyle.allValues { - switch property { - case .FontStyle: - if let fontStyle = style.fontStyle { - self.titleLabel?.font = UIFont(name: fontStyle.fontName, size: CGFloat(fontStyle.size)) - } - case .BorderWidth: - if let borderWidth = style.borderWidth { - self.layer.borderWidth = CGFloat(borderWidth) - } - case .BorderColor: - if let borderColor = style.borderColor { - self.layer.borderColor = borderColor.CGColor - } - case .BackgroundColor: - if let color = style.backgroundColor { - self.backgroundColor = color - } - case .CornerRadius: - if let cornerRadius = style.cornerRadius { - self.layer.cornerRadius = CGFloat(cornerRadius) - self.layer.masksToBounds = true - } - case .Normal: - if let value = style.normalColors { - assignColors(value, forState: .Normal, resources: resources) - } - case .Selected: - if let value = style.selectedColors { - assignColors(value, forState: .Selected, resources: resources) - } - case .Highlighted: - if let value = style.highlightedColors { - assignColors(value, forState: .Highlighted, resources: resources) - } - case .Disabled: - if let value = style.disabledColors { - assignColors(value, forState: .Disabled, resources: resources) - } - } - } - } - - func assignColors(colors: ColorStyle, forState state: UIControlState, resources:CommonResources) { - if let colorKey = colors.backgroundColor, let color = resources.colors[colorKey] { - self.setBackgroundImage(UIImage.imageWithColor(color), forState: state) - } - if let colorKey = colors.textColor, let color = resources.colors[colorKey] { - self.setTitleColor(color, forState: state) - } - } -} - - diff --git a/StyleKit/StyleKitDemo/StyleKit/DemoCode.swift b/StyleKit/StyleKitDemo/StyleKit/DemoCode.swift index bdbc432..8a0d61a 100644 --- a/StyleKit/StyleKitDemo/StyleKit/DemoCode.swift +++ b/StyleKit/StyleKitDemo/StyleKit/DemoCode.swift @@ -1,12 +1,13 @@ import Foundation +import StyleKit extension Utils { static func copyStyleFileFromBundle() { - if let relativePath = NSBundle.mainBundle().infoDictionary?[Style.styleSheetLocation] as? String, + if let relativePath = NSBundle.mainBundle().infoDictionary?[Style.styleSheetLocationKey] as? String, let srcDir = NSBundle.mainBundle().URLForResource("Style", withExtension: "json"), let destDir = Utils.documentDirectory?.URLByAppendingPathComponent(relativePath) { Utils.copyStyleFile(from: srcDir, to: destDir) @@ -37,7 +38,7 @@ extension Utils { } static func downloadStyleFile() { - if let string = NSBundle.mainBundle().infoDictionary?[Style.styleSheetLocation] as? String { + if let string = NSBundle.mainBundle().infoDictionary?[Style.styleSheetLocationKey] as? String { if let url = NSURL(string:"https://dl.dropboxusercontent.com/u/26582460/Style.json") { NSURLSession.sharedSession().downloadTaskWithURL(url, completionHandler: { tempFileDirectory, response, error in if error == nil { diff --git a/StyleKit/StyleKitDemo/StyleKit/LabelStylist.swift b/StyleKit/StyleKitDemo/StyleKit/LabelStylist.swift deleted file mode 100644 index 19b3fe2..0000000 --- a/StyleKit/StyleKitDemo/StyleKit/LabelStylist.swift +++ /dev/null @@ -1,134 +0,0 @@ - -import Foundation -import UIKit - -class LabelStyle: Stylist { - - typealias Element = UILabel - - var textColor: UIColor? - var textAlignment: NSTextAlignment? - var attributes: AttributedTextStyle? - - enum Properties: String { - case TextColor = "textColor" - case TextAlignment = "textAlignment" - case Attributes = "attributes" - static let allValues:[Properties] = [.TextColor, .TextAlignment, .Attributes] - } - - static var textAlignmentKeyMap:[String:NSTextAlignment] = ["Left":.Left, - "Center":.Center, - "Right":.Right, - "Justified":.Justified, - "Natural":.Natural] - - static func attributesForLabel(styles:AttributedTextStyle, textAlignment:NSTextAlignment) -> Dictionary { - - - var attributes:[String: AnyObject] = [:] - - if let fontName = styles.fontStyle?.fontName, let fontSize = styles.fontStyle?.size { - attributes[NSFontAttributeName] = UIFont(name: fontName, size: CGFloat(fontSize)) - } - - if let tracking = styles.tracking, let fontSize = styles.fontStyle?.size { - let characterSpacing = fontSize * tracking / 1000 - attributes[NSKernAttributeName] = characterSpacing - } - - let style = NSMutableParagraphStyle() - - if let lineSpace = styles.lineSpacing { - style.lineSpacing = lineSpace - } - - style.alignment = textAlignment - - if let lineSpace = styles.lineSpacing { - style.lineSpacing = lineSpace - } - attributes[NSParagraphStyleAttributeName] = style - - return attributes - } - - static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> LabelStyle { - let labelStyle = LabelStyle() - for (key,value) in spec { - guard let property = LabelStyle.Properties(rawValue: key) else { - print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") - continue - } - switch property { - - case LabelStyle.Properties.TextAlignment: - if let textAlignmentKey = value as? String, let alignment = LabelStyle.textAlignmentKeyMap[textAlignmentKey] { - labelStyle.textAlignment = alignment - } - case LabelStyle.Properties.TextColor: - if let colorKey = value as? String, let color = resources.colors[colorKey] { - labelStyle.textColor = color - } - case LabelStyle.Properties.Attributes: - if let attributes = value as? [String:AnyObject] - { - let attr = try LabelStyle.serializeFormatAttributesSpec(attributes, resources:resources) - labelStyle.attributes = attr - } - } - } - return labelStyle - } - - static func serializeFormatAttributesSpec(spec: [String:AnyObject], resources:CommonResources) throws -> AttributedTextStyle { - - let style = AttributedTextStyle() - for (key,value) in spec { - guard let property = AttributedTextStyle.Properties(rawValue: key) else { - print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") - continue - } - switch property { - case .FontStyle: - if let fontSpec = value as? [String:AnyObject] - { - style.fontStyle = Style.serializeFontSpec(fontSpec, resources: resources) - } - case .Tracking: - if let tracking = value as? Int { - style.tracking = tracking - } - case .LineSpacing: - if let lineSpacing = value as? CGFloat { - style.lineSpacing = lineSpacing - } - case .Ligature: - if let ligature = value as? Int { - style.ligature = ligature - } - } - } - return style - } -} - -extension UILabel { - func applyStyle(style:LabelStyle, resources:CommonResources) { - for property in LabelStyle.Properties.allValues { - switch property { - case .TextColor: - textColor = style.textColor - case .TextAlignment: - textAlignment = style.textAlignment ?? self.textAlignment - case .Attributes: - if let attributes = style.attributes, text = self.text { - let attr = LabelStyle.attributesForLabel(attributes, textAlignment: textAlignment) - self.attributedText = NSAttributedString(string: text, attributes:attr) - } - } - } - } -} - - diff --git a/StyleKit/StyleKitDemo/StyleKit/ProgressViewStylist.swift b/StyleKit/StyleKitDemo/StyleKit/ProgressViewStylist.swift deleted file mode 100644 index 483db89..0000000 --- a/StyleKit/StyleKitDemo/StyleKit/ProgressViewStylist.swift +++ /dev/null @@ -1,87 +0,0 @@ - -import Foundation -import UIKit - -class ProgressViewStyle : Stylist { - - typealias Element = UIProgressView - - var style: UIProgressViewStyle? - var progressTintColor: UIColor? - var trackTintColor: UIColor? - var progressImage: UIImage? - var trackImage: UIImage? - - enum Properties: String { - case Style = "style" - case ProgressTintColor = "progressTintColor" - case TrackTintColor = "trackTintColor" - case ProgressImage = "progressImage" - case TrackImage = "trackImage" - } - - static let allValues:[Properties] = [.Style, .ProgressTintColor, .TrackTintColor, .ProgressImage, .TrackImage] - - static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> ProgressViewStyle { - let style = ProgressViewStyle() - for (key,value) in spec { - guard let property = ProgressViewStyle.Properties(rawValue: key) else { - print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") - continue - } - switch property { - case .Style: - if let theValue = value as? Int, let viewStyle = UIProgressViewStyle(rawValue: theValue) { - style.style = viewStyle - } - case .ProgressTintColor: - if let colorKey = value as? String, color = resources.colors[colorKey] { - style.progressTintColor = color - } - case .TrackTintColor: - if let colorKey = value as? String, color = resources.colors[colorKey] { - style.trackTintColor = color - } - case .ProgressImage: - if let imageKey = value as? String, imageName = resources.imageNames[imageKey] { - style.progressImage = UIImage(named: imageName) - } - case .TrackImage: - if let imageKey = value as? String, imageName = resources.imageNames[imageKey] { - style.trackImage = UIImage(named: imageName) - } - } - } - return style - } -} - -extension UIProgressView { - func applyStyle(style:ProgressViewStyle, resources:CommonResources) { - for property in ProgressViewStyle.allValues { - switch property { - case .Style: - if let theValue = style.style { - self.progressViewStyle = theValue - } - case .ProgressTintColor: - if let color = style.progressTintColor { - self.progressTintColor = color - } - case .TrackTintColor: - if let color = style.trackTintColor { - self.trackTintColor = color - } - case .ProgressImage: - if let image = style.progressImage { - self.progressImage = image - } - case .TrackImage: - if let trackImage = style.trackImage { - self.trackImage = trackImage - } - } - } - } -} - diff --git a/StyleKit/StyleKitDemo/StyleKit/SegmentedControlStylist.swift b/StyleKit/StyleKitDemo/StyleKit/SegmentedControlStylist.swift deleted file mode 100644 index 8ec627a..0000000 --- a/StyleKit/StyleKitDemo/StyleKit/SegmentedControlStylist.swift +++ /dev/null @@ -1,130 +0,0 @@ - -import Foundation -import UIKit - -class SegmentedControlStyle : Stylist { - - typealias Element = UISegmentedControl - - var fontStyle: FontStyle? - var tintColor:UIColor? - var dividerColor:UIColor? - var normalColors: ColorStyle? - var highlightedColors: ColorStyle? - var selectedColors: ColorStyle? - var disabledColors: ColorStyle? - - enum Properties: String { - case FontStyle = "fontStyle" - case TintColor = "tintColor" - case DividerColor = "dividerColor" - case Normal = "normalState" - case Highlighted = "highlightedState" - case Selected = "selectedState" - case Disabled = "disabledState" - } - - static let allValues:[Properties] = [.DividerColor, .FontStyle, .TintColor, .Normal, .Highlighted, .Selected, .Disabled] - - static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> SegmentedControlStyle { - let style = SegmentedControlStyle() - for (key,value) in spec { - guard let property = SegmentedControlStyle.Properties(rawValue: key) else { - print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") - continue - } - switch property { - case .FontStyle: - if let fontSpec = value as? [String:AnyObject] { - style.fontStyle = Style.serializeFontSpec(fontSpec, resources: resources) - } - case .TintColor: - if let colorKey = value as? String, - let color = resources.colors[colorKey] { - style.tintColor = color - } - case .DividerColor: - if let colorKey = value as? String, - let color = resources.colors[colorKey] { - style.dividerColor = color - } - case .Normal: - if let normalColorEntries = value as? [String: String] { - style.normalColors = Style.serializeColorsSpec(normalColorEntries, resources: resources) - } - case .Selected: - if let selectedColorEntries = value as? [String: String] { - style.selectedColors = Style.serializeColorsSpec(selectedColorEntries, resources: resources) - } - case .Highlighted: - if let highlightedColorEntries = value as? [String: String] { - style.highlightedColors = Style.serializeColorsSpec(highlightedColorEntries, resources: resources) - } - case .Disabled: - if let disabledColorEntries = value as? [String: String] { - style.disabledColors = Style.serializeColorsSpec(disabledColorEntries, resources: resources) - } - - } - - } - return style - } -} - -extension UISegmentedControl { - - func applyStyle(style:SegmentedControlStyle, resources:CommonResources) { - for property in SegmentedControlStyle.allValues { - - var normalAttributes: [NSObject: AnyObject] = [:] - var selectedAttributes: [NSObject: AnyObject] = [:] - - switch property { - case .FontStyle: - if let fontStyle = style.fontStyle { - let font = UIFont(name: fontStyle.fontName, size: CGFloat(fontStyle.size)) - normalAttributes[NSFontAttributeName] = font - selectedAttributes[NSFontAttributeName] = font - } - case .TintColor: - if let tintColor = style.tintColor { - self.tintColor = tintColor - } - case .Normal: - if let colorStyles = style.normalColors { - assignColors(colorStyles, forState: .Normal, resources: resources) - } - case .Selected: - if let colorStyles = style.selectedColors { - assignColors(colorStyles, forState: .Selected, resources: resources) - } - case .Highlighted: - if let colorStyles = style.highlightedColors { - assignColors(colorStyles, forState: .Highlighted, resources: resources) - } - case .Disabled: - if let colorStyles = style.disabledColors { - assignColors(colorStyles, forState: .Disabled, resources: resources) - } - case .DividerColor: - if let divColor = style.dividerColor { - self.setDividerImage(UIImage.imageWithColor(divColor), forLeftSegmentState: .Normal, rightSegmentState: .Normal, barMetrics: .Default) - } - } - } - } - - func assignColors(colors: ColorStyle, forState state: UIControlState, resources:CommonResources) { - if let colorKey = colors.backgroundColor, let color = resources.colors[colorKey] { - self.setBackgroundImage(UIImage.imageWithColor(color), forState: state, barMetrics: .Default) - } - if let colorKey = colors.textColor, let color = resources.colors[colorKey] { - let attributes = [NSForegroundColorAttributeName: color] - self.setTitleTextAttributes(attributes, forState: state) - } - } -} - - - diff --git a/StyleKit/StyleKitDemo/StyleKit/SliderStylist.swift b/StyleKit/StyleKitDemo/StyleKit/SliderStylist.swift deleted file mode 100644 index 792d311..0000000 --- a/StyleKit/StyleKitDemo/StyleKit/SliderStylist.swift +++ /dev/null @@ -1,95 +0,0 @@ - -import Foundation -import UIKit - -class SliderStyle : Stylist { - - typealias Element = UISlider - - var tintColor: UIColor? - var thumbImage: UIImage? - var minimumTrackImage: UIImage? - var maximumTrackImage: UIImage? - var filledTrackColor: UIColor? - var emptyTrackColor: UIColor? - - enum Properties: String { - case ThumbImage = "thumbImage" - case MinimumTrackImage = "minimumTrackImage" - case MaximumTrackImage = "maximumTrackImage" - case FilledTrackColor = "filledTrackColor" - case EmptyTrackColor = "emptyTrackColor" - } - - static let allValues:[Properties] = [.FilledTrackColor,.EmptyTrackColor, .ThumbImage, .MinimumTrackImage, .MaximumTrackImage] - - static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> SliderStyle { - let style = SliderStyle() - for (key,value) in spec { - guard let property = SliderStyle.Properties(rawValue: key) else { - print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") - continue - } - switch property { - case .ThumbImage: - if let imageKey = value as? String, imageName = resources.imageNames[imageKey], - image = UIImage(named:imageName){ - style.thumbImage = image - } - case .MinimumTrackImage: - if let imageKey = value as? String, imageName = resources.imageNames[imageKey], - image = UIImage(named:imageName){ - style.minimumTrackImage = image - } - case .MaximumTrackImage: - if let imageKey = value as? String, imageName = resources.imageNames[imageKey], - image = UIImage(named:imageName){ - style.maximumTrackImage = image - } - case .FilledTrackColor: - if let colorKey = value as? String, color = resources.colors[colorKey] { - style.filledTrackColor = color - } - case .EmptyTrackColor: - if let colorKey = value as? String, color = resources.colors[colorKey] { - style.emptyTrackColor = color - } - } - - } - return style - } - -} - -extension UISlider { - - func applyStyle(style:SliderStyle, resources:CommonResources) { - for property in SliderStyle.allValues { - switch property { - case .ThumbImage: - if let image = style.thumbImage { - self.setThumbImage(image, forState: .Normal) - } - case .MinimumTrackImage: - if let image = style.minimumTrackImage { - self.setMinimumTrackImage(image, forState: .Normal) - } - case .MaximumTrackImage: - if let image = style.maximumTrackImage { - self.setMaximumTrackImage(image, forState: .Normal) - } - case .FilledTrackColor: - if let color = style.filledTrackColor { - self.minimumTrackTintColor = color - } - case .EmptyTrackColor: - if let color = style.emptyTrackColor { - self.maximumTrackTintColor = color - } - } - } - } - -} - diff --git a/StyleKit/StyleKitDemo/StyleKit/StepperStylist.swift b/StyleKit/StyleKitDemo/StyleKit/StepperStylist.swift deleted file mode 100644 index 95bd7f3..0000000 --- a/StyleKit/StyleKitDemo/StyleKit/StepperStylist.swift +++ /dev/null @@ -1,129 +0,0 @@ - -import Foundation -import UIKit - -class StepperStyle : Stylist { - - typealias Element = UIStepper - - var tintColor: UIColor? - var backgroundImage: [AllowedStates:UIImage]? - var incrementImage: [AllowedStates:UIImage]? - var decrementImage: [AllowedStates:UIImage]? - - enum Properties: String { - case TintColor = "tintColor" - case IncrementImage = "incrementImage" - case DecrementImage = "decrementImage" - case BackgroundImage = "backgroundImage" - } - - enum AllowedStates: String { - case Normal = "normalState" - case Highlighted = "highlightedState" - case Disabled = "disabledState" - } - - static func controlStateForAllowedState(state:AllowedStates) -> UIControlState { - switch state { - case .Disabled: - return UIControlState.Disabled - case .Highlighted: - return UIControlState.Highlighted - case .Normal: - return UIControlState.Normal - } - } - - static let allValues:[Properties] = [.TintColor, .IncrementImage, .DecrementImage, .BackgroundImage] - - static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> StepperStyle { - let style = StepperStyle() - for (key,value) in spec { - guard let property = StepperStyle.Properties(rawValue: key) else { - print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") - continue - } - switch property { - case .TintColor: - if let colorKey = value as? String, color = resources.colors[colorKey] { - style.tintColor = color - } - case .IncrementImage: - if let states = value as? [String: String] { - var values:[StepperStyle.AllowedStates:UIImage] = [:] - for (key, value) in states { - if let state = StepperStyle.AllowedStates(rawValue: key), - let imageKey = resources.imageNames[value], - let image = UIImage(named: imageKey) { - values[state] = image - } - } - style.incrementImage = values - } - case .DecrementImage: - if let states = value as? [String: String] { - var values:[StepperStyle.AllowedStates:UIImage] = [:] - for (key, value) in states { - if let state = StepperStyle.AllowedStates(rawValue: key), - let imageKey = resources.imageNames[value], - let image = UIImage(named: imageKey) { - values[state] = image - } - } - style.decrementImage = values - } - case .BackgroundImage: - if let states = value as? [String: String] { - var values:[StepperStyle.AllowedStates:UIImage] = [:] - for (key, value) in states { - if let state = StepperStyle.AllowedStates(rawValue: key), - let imageKey = resources.imageNames[value], - let image = UIImage(named: imageKey) { - values[state] = image - } - } - style.backgroundImage = values - } - } - } - return style - } -} - -extension UIStepper { - - func applyStyle(style:StepperStyle, resources:CommonResources) { - for property in StepperStyle.allValues { - switch property { - case .TintColor: - if let color = style.tintColor { - self.tintColor = color - } - case .IncrementImage: - if let states = style.incrementImage { - for (key, value) in states { - let controlState = StepperStyle.controlStateForAllowedState(key) - self.setIncrementImage(value, forState: controlState) - } - } - case .DecrementImage: - if let states = style.decrementImage { - for (key, value) in states { - let controlState = StepperStyle.controlStateForAllowedState(key) - self.setDecrementImage(value, forState: controlState) - } - } - case .BackgroundImage: - if let states = style.backgroundImage { - for (key, value) in states { - let controlState = StepperStyle.controlStateForAllowedState(key) - self.setBackgroundImage(value, forState: controlState) - } - } - } - } - } -} - - diff --git a/StyleKit/StyleKitDemo/StyleKit/Style.swift b/StyleKit/StyleKitDemo/StyleKit/Style.swift deleted file mode 100644 index a066a5a..0000000 --- a/StyleKit/StyleKitDemo/StyleKit/Style.swift +++ /dev/null @@ -1,309 +0,0 @@ -import UIKit -import Foundation - -struct FontStyle { - let fontName: String - let size: Int -} - -class ColorStyle { - var backgroundColor: String? - var textColor: String? - enum Properties: String { - case Background = "backgroundColor" - case Text = "textColor" - static let allValues:[Properties] = [.Background, .Text] - } -} - -class CommonResources { - var fontLabels = [String: String]() - var colors = [String: UIColor]() - var imageNames = [String: String]() -} - -class AttributedTextStyle { - var fontStyle: FontStyle? - var tracking: Int? - var lineSpacing: CGFloat? - var ligature: Int? - - enum Properties: String { - case FontStyle = "fontStyle" - case Tracking = "tracking" - case LineSpacing = "lineSpacing" - case Ligature = "ligature" - static let allValues:[Properties] = [.FontStyle, .Tracking, .LineSpacing, .Ligature] - } -} - -protocol Stylist { - associatedtype Element -} - -protocol StyleKitSubscriber: class { - func update() -} - -enum FontProperty: String { - case name = "font" - case size = "size" -} - -enum UIElement: String { - case segmentedControl = "SegmentedControls" - case textField = "TextFields" - case button = "Buttons" - case label = "Labels" - case slider = "Sliders" - case stepper = "Steppers" - case progressView = "ProgressViews" - case view = "Views" - case textView = "TextViews" - static let allValues:[UIElement] = [.view, .segmentedControl, .textField, .button, .label, .slider, .stepper, .progressView, .textView] -} - -enum CommonObjects: String { - case Fonts = "Fonts" - case Colors = "Colors" - case Images = "Images" -} - -enum ColorProperties: String { - case Red = "red" - case Green = "green" - case Blue = "blue" - case Alpha = "alpha" - case Hex = "hex" -} - - -class Style { - - enum StyleKitError: ErrorType { - case StyleFileNotFound(String) - case InvalidTextFieldProperty - case InvalidLabelStyle - } - - static let sharedInstance = Style() - - private let fileName = "Style.json" - static let styleSheetLocation = "StyleKit-StylesheetLocation" // Make sure to update docs if this changes - - var resources = CommonResources() - - typealias StyleMap = [String: AnyObject] - - var styleMap = [UIElement:StyleMap]() - - private let subscribers: NSHashTable - - private init() { - self.subscribers = NSHashTable(options: .WeakMemory) - serialize() - } - - private func checkIfImageExist(name:String) -> Bool { - return UIImage(named: name) == nil ? false : true - } - - private func getStylePath() throws -> NSURL { - if let string = NSBundle.mainBundle().infoDictionary?[Style.styleSheetLocation] as? String, - documentDirectory = Utils.documentDirectory { - let pathURL: NSURL? - if string.containsString(".json") { - pathURL = documentDirectory.URLByAppendingPathComponent(string) - } else { - pathURL = documentDirectory.URLByAppendingPathComponent(string + "/" + fileName) - } - - if let thePathURL = pathURL, path = thePathURL.path { - if NSFileManager.defaultManager().fileExistsAtPath(path) { - return thePathURL - } else { - throw StyleKitError.StyleFileNotFound("File does not exist at \(thePathURL)") - } - } else { - throw StyleKitError.StyleFileNotFound("Invalid path URL: \(pathURL)") - } - } else { - if let path = NSBundle.mainBundle().URLForResource(fileName, withExtension: nil) { - return path - } else { - throw StyleKitError.StyleFileNotFound("Expected to find Style.json in the bundle") - } - } - } - - private func serialize() { - - do { - let stylePath = try self.getStylePath() - let data = try NSData(contentsOfURL: stylePath, options: NSDataReadingOptions.DataReadingMappedIfSafe) - let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) - - if let fontConfigs = json[CommonObjects.Fonts.rawValue] as? [String: String] { - let allFontNames = UIFont.familyNames().reduce([]) { - $0 + UIFont.fontNamesForFamilyName($1) - } - for fontName in fontConfigs.values { - guard allFontNames.contains(fontName) else { - print("StyleKit: Warning: '\(fontName)' Font referenced in Style.json is not a valid font.") - continue - } - } - resources.fontLabels = fontConfigs - } - - if let colorDict = json[CommonObjects.Colors.rawValue] as? [String: [String: AnyObject]] { - for (colorKey, components) in colorDict { - if let red = components[ColorProperties.Red.rawValue] as? Int, - let green = components[ColorProperties.Green.rawValue] as? Int, - let blue = components[ColorProperties.Blue.rawValue] as? Int, - let alpha = components[ColorProperties.Alpha.rawValue] as? Int { - resources.colors[colorKey] = UIColor(red: CGFloat(red)/255, green: CGFloat(green)/255, blue: CGFloat(blue)/255, alpha: CGFloat(alpha)) - } else if let hex = components[ColorProperties.Hex.rawValue] as? String, - let alpha = components[ColorProperties.Alpha.rawValue] as? Float { - if let hexInt = hex.hexColorToInt() { - resources.colors[colorKey] = UIColor(withHex: hexInt, alpha: alpha) - } - } - } - } - - if let items = json[CommonObjects.Images.rawValue] as? [String: String] { - resources.imageNames = items - for (alias, fileName) in items { - if checkIfImageExist(fileName) == false { - print("StyleKit: Warning: Image file '\(fileName)' referenced by '\(alias)' does not exist in bundle") - } - } - } - - for element in UIElement.allValues { - guard let elementDict = json[element.rawValue] as? [String: [String:AnyObject]] else { continue } - - var styles = StyleMap() - for (labelKey, specification) in elementDict { - switch element { - case .button: - styles[labelKey] = try ButtonStyle.serialize(specification, resources: resources) as AnyObject - case .label: - styles[labelKey] = try LabelStyle.serialize(specification, resources: resources) as AnyObject - case .progressView: - styles[labelKey] = try ProgressViewStyle.serialize(specification, resources: resources) as AnyObject - case .segmentedControl: - styles[labelKey] = try SegmentedControlStyle.serialize(specification, resources: resources) as AnyObject - case .slider: - styles[labelKey] = try SliderStyle.serialize(specification, resources: resources) as AnyObject - case .stepper: - styles[labelKey] = try StepperStyle.serialize(specification, resources: resources) as AnyObject - case .view: - styles[labelKey] = try ViewStyle.serialize(specification, resources: resources) as AnyObject - case .textField: - styles[labelKey] = try TextFieldStyle.serialize(specification, resources: resources) as AnyObject - case .textView: - styles[labelKey] = try TextViewStyle.serialize(specification, resources: resources) as AnyObject - } - } - styleMap[element] = styles - } - } catch { - if let error = error as? StyleKitError { - switch error { - case .StyleFileNotFound(let str): - print("StyleKit:Error: " + str) - default: - break - } - } - - assert(false, "error serializing JSON: \(error)") - } - } - - //--------------------------------------------- - // MARK: - Serialize JSON into Objects (Common) - //--------------------------------------------- - - static func serializeColorsSpec(spec: [String:String], resources:CommonResources) -> ColorStyle? { - - let styleSpec = ColorStyle() - for style in ColorStyle.Properties.allValues { - switch style { - case .Background: - if let value = spec[style.rawValue] { - styleSpec.backgroundColor = value - } - case .Text: - if let value = spec[style.rawValue] { - styleSpec.textColor = value - } - } - } - return styleSpec - } - - static func serializeFontSpec(spec: [String:AnyObject], resources:CommonResources) -> FontStyle? { - - if let nameKey = spec[FontProperty.name.rawValue] as? String { - if let fontName = resources.fontLabels[nameKey] { - if let size = spec[FontProperty.size.rawValue] as? Int { - return FontStyle(fontName: fontName, size: size) - } else { - print("StyleKit:Warning: fontStyle for '\(nameKey)' must include a font 'size' parameter") - } - } else { - print("StyleKit:Warning: '\(nameKey)' alias must be defined under 'Fonts' ") - } - } - return nil - } - -} - -extension Style { - - /** - You may register for changes to the stylesheet by implementing the `StyleKitSubscriber` protocol and calling `addSubscriber`. - - StyleKit.sharedInstance.addSubscriber(self) - - Call 'removeSubscriber(subscriber: StyleKitSubscriber)' to unregister - */ - func addSubscriber(subscriber: StyleKitSubscriber) { - if !subscribers.containsObject(subscriber) { - subscribers.addObject(subscriber) - } - } - - /** - Removes a subscriber from the list of subscribers - */ - func removeSubscriber(subscriber: StyleKitSubscriber) { - if subscribers.containsObject(subscriber) { - subscribers.removeObject(subscriber) - } - } - - /** - Call this if the stylesheet has changed. - - StyleKit.sharedInstance.refresh() - - Since the bundle is readonly, the stylesheet must be at the location specified in the applications plist file for the key 'StyleKit-StylesheetLocation'. The new stylesheet will **not** automatically get applied to views which have already been tagged/styled. To restyle a view which has already been tagged/styled, call `style()` on the view. - - You may register for changes to the stylesheet by implementing the `StyleKitSubscriber` protocol and calling `addSubscriber`. - - StyleKit.sharedInstance.addSubscriber(self) - */ - func refresh() { - serialize() - let enumerator = subscribers.objectEnumerator() - while let subscriber = enumerator.nextObject() as? StyleKitSubscriber { - subscriber.update() - } - } - -} diff --git a/StyleKit/StyleKitDemo/StyleKit/StylesViewController.swift b/StyleKit/StyleKitDemo/StyleKit/StylesViewController.swift index cded9f0..aa989a3 100644 --- a/StyleKit/StyleKitDemo/StyleKit/StylesViewController.swift +++ b/StyleKit/StyleKitDemo/StyleKit/StylesViewController.swift @@ -1,5 +1,6 @@ import UIKit +import StyleKit class StylesViewController: UIViewController { diff --git a/StyleKit/StyleKitDemo/StyleKit/TextFieldStylist.swift b/StyleKit/StyleKitDemo/StyleKit/TextFieldStylist.swift deleted file mode 100644 index 7ff1b19..0000000 --- a/StyleKit/StyleKitDemo/StyleKit/TextFieldStylist.swift +++ /dev/null @@ -1,138 +0,0 @@ - -import Foundation -import UIKit - -class TextFieldStyle : Stylist { - - typealias Element = UITextField - - var fontStyle: FontStyle? - var textColor: UIColor? - var borderColor: UIColor? - var borderWidth: Int? - var cornerRadius: Int? - var textAlignment: NSTextAlignment? - var borderStyle: UITextBorderStyle? - var backgroundColor: UIColor? - - enum Properties: String { - case FontStyle = "fontStyle" - case BorderWidth = "borderWidth" - case BorderColor = "borderColor" - case CornerRadius = "cornerRadius" - case TextAlignment = "textAlignment" - case BorderStyle = "borderStyle" - case TextColor = "textColor" - case BackgroundColor = "backgroundColor" - } - - static let allValues:[Properties] = [.BackgroundColor, .FontStyle, .BorderWidth, .BorderColor, .CornerRadius, .TextAlignment, .BorderStyle, .TextColor] - - static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> TextFieldStyle { - let result = TextFieldStyle() - for (key,value) in spec { - guard let property = TextFieldStyle.Properties(rawValue: key) else { - print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") - continue - } - - switch property { - - case TextFieldStyle.Properties.FontStyle: - if let fontSpec = value as? [String:AnyObject] { - result.fontStyle = Style.serializeFontSpec(fontSpec, resources: resources) - } - case TextFieldStyle.Properties.BorderWidth: - if let borderWidth = value as? Int { - result.borderWidth = borderWidth - } - case TextFieldStyle.Properties.TextColor: - if let colorKey = value as? String, color = resources.colors[colorKey] { - result.textColor = color - } - case TextFieldStyle.Properties.BorderColor: - if let colorKey = value as? String, color = resources.colors[colorKey] { - result.borderColor = color - } - case TextFieldStyle.Properties.TextAlignment: - if let styleStr = value as? String, let alignment = mapTextAlignmentType(styleStr) { - result.textAlignment = alignment - } - case TextFieldStyle.Properties.BorderStyle: - if let styleStr = value as? String, let border = mapBorderStyle(styleStr) { - result.borderStyle = border - } - case TextFieldStyle.Properties.CornerRadius: - if let cornerRadius = value as? Int { - result.cornerRadius = cornerRadius - } - case TextFieldStyle.Properties.BackgroundColor: - if let colorKey = value as? String, color = resources.colors[colorKey] { - result.backgroundColor = color - } - } - } - - return result - } - - static func mapTextAlignmentType(styleStr:String) -> NSTextAlignment? { - let allowedValues = ["Left","Center","Right","Justified","Natural"] - if let index = allowedValues.indexOf(styleStr) { - return NSTextAlignment(rawValue: index) - } - return nil - } - - static func mapBorderStyle(styleStr:String) -> UITextBorderStyle? { - let allowedValues = ["None","Line","Bezel","RoundedRect"] - if let index = allowedValues.indexOf(styleStr) { - return UITextBorderStyle(rawValue: index) - } - return nil - } -} - -extension UITextField { - - func applyStyle(style:TextFieldStyle, resources:CommonResources) { - for property in TextFieldStyle.allValues { - switch property { - case .FontStyle: - if let fontStyle = style.fontStyle { - self.font = UIFont(name: fontStyle.fontName, size: CGFloat(fontStyle.size)) - } - case .BorderWidth: - if let borderWidth = style.borderWidth { - self.layer.borderWidth = CGFloat(borderWidth) - } - case .BorderColor: - if let borderColor = style.borderColor { - self.layer.borderColor = borderColor.CGColor - } - case .TextAlignment: - if let aValue = style.textAlignment { - self.textAlignment = aValue - } - case .BorderStyle: - if let aValue = style.borderStyle { - self.borderStyle = aValue - } - case .CornerRadius: - if let cornerRadius = style.cornerRadius { - self.layer.cornerRadius = CGFloat(cornerRadius) - } - case .TextColor: - if let color = style.textColor { - self.textColor = color - } - case .BackgroundColor: - if let color = style.backgroundColor { - self.backgroundColor = color - } - } - } - } - -} - diff --git a/StyleKit/StyleKitDemo/StyleKit/TextViewStylist.swift b/StyleKit/StyleKitDemo/StyleKit/TextViewStylist.swift deleted file mode 100644 index 7fef1da..0000000 --- a/StyleKit/StyleKitDemo/StyleKit/TextViewStylist.swift +++ /dev/null @@ -1,130 +0,0 @@ -import UIKit - -class TextViewStyle { - typealias Element = UITextView - - var textColor: UIColor? - var textAlignment: NSTextAlignment? - var attributes: AttributedTextStyle? - var backgroundColor: UIColor? - - enum Properties: String { - case TextColor = "textColor" - case TextAlignment = "textAlignment" - case Attributes = "attributes" - case BackgroundColor = "backgroundColor" - static let allValues:[Properties] = [.TextColor, .TextAlignment, .Attributes, .BackgroundColor] - } - - static var textAlignmentKeyMap:[String:NSTextAlignment] = ["Left":.Left, - "Center":.Center, - "Right":.Right, - "Justified":.Justified, - "Natural":.Natural] - - static func attributesForTextView(styles:AttributedTextStyle) -> Dictionary { - let style = NSMutableParagraphStyle() - style.alignment = NSTextAlignment.Center - if let lineSpace = styles.lineSpacing { - style.lineSpacing = lineSpace - } - - var attributes:[String: AnyObject] = [:] - - if let fontName = styles.fontStyle?.fontName, let fontSize = styles.fontStyle?.size { - attributes[NSFontAttributeName] = UIFont(name: fontName, size: CGFloat(fontSize)) - } - - if let tracking = styles.tracking, let fontSize = styles.fontStyle?.size { - let characterSpacing = fontSize * tracking / 1000 - attributes[NSKernAttributeName] = characterSpacing - } - - attributes[NSParagraphStyleAttributeName] = style - - return attributes - } - - static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> TextViewStyle { - let textViewStyle = TextViewStyle() - for (key,value) in spec { - guard let property = TextViewStyle.Properties(rawValue: key) else { - print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") - continue - } - switch property { - - case TextViewStyle.Properties.TextAlignment: - if let textAlignmentKey = value as? String, let alignment = TextViewStyle.textAlignmentKeyMap[textAlignmentKey] { - textViewStyle.textAlignment = alignment - } - case TextViewStyle.Properties.TextColor: - if let colorKey = value as? String, let color = resources.colors[colorKey] { - textViewStyle.textColor = color - } - case TextViewStyle.Properties.Attributes: - if let attributes = value as? [String:AnyObject] - { - let attr = try TextViewStyle.serializeFormatAttributesSpec(attributes, resources:resources) - textViewStyle.attributes = attr - } - case TextViewStyle.Properties.BackgroundColor: - if let colorKey = value as? String, let color = resources.colors[colorKey] { - textViewStyle.backgroundColor = color - } - } - } - return textViewStyle - } - - static func serializeFormatAttributesSpec(spec: [String:AnyObject], resources:CommonResources) throws -> AttributedTextStyle { - - let style = AttributedTextStyle() - for (key,value) in spec { - guard let property = AttributedTextStyle.Properties(rawValue: key) else { - print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") - continue - } - switch property { - case .FontStyle: - if let fontSpec = value as? [String:AnyObject] - { - style.fontStyle = Style.serializeFontSpec(fontSpec, resources: resources) - } - case .Tracking: - if let tracking = value as? Int { - style.tracking = tracking - } - case .LineSpacing: - if let lineSpacing = value as? CGFloat { - style.lineSpacing = lineSpacing - } - case .Ligature: - if let ligature = value as? Int { - style.ligature = ligature - } - } - } - return style - } -} - -extension UITextView { - func applyStyle(style: TextViewStyle, resources:CommonResources) { - for property in TextViewStyle.Properties.allValues { - switch property { - case .TextColor: - self.textColor = style.textColor - case .TextAlignment: - self.textAlignment = style.textAlignment ?? self.textAlignment - case .Attributes: - if let attributes = style.attributes, text = self.text { - let asdf = TextViewStyle.attributesForTextView(attributes) - self.attributedText = NSAttributedString(string: text, attributes:asdf) - } - case .BackgroundColor: - self.backgroundColor = style.backgroundColor - } - } - } -} diff --git a/StyleKit/StyleKitDemo/StyleKit/UIView+StyleKit.swift b/StyleKit/StyleKitDemo/StyleKit/UIView+StyleKit.swift deleted file mode 100644 index cc64322..0000000 --- a/StyleKit/StyleKitDemo/StyleKit/UIView+StyleKit.swift +++ /dev/null @@ -1,28 +0,0 @@ - -import UIKit - -extension UIView { - private struct AssociatedKeys { - static var styleTag = "" - } - - /** - Setting the styleTag automatically applies styles as defined in the stylesheet - */ - @IBInspectable var styleTag: String? { - get { - return objc_getAssociatedObject(self, &AssociatedKeys.styleTag) as? String - } - - set { - if let newValue = newValue { - objc_setAssociatedObject(self, - &AssociatedKeys.styleTag, - newValue as NSString?, - .OBJC_ASSOCIATION_RETAIN_NONATOMIC - ) - self.style() - } - } - } -} diff --git a/StyleKit/StyleKitDemo/StyleKit/Utils.swift b/StyleKit/StyleKitDemo/StyleKit/Utils.swift deleted file mode 100644 index 951c065..0000000 --- a/StyleKit/StyleKitDemo/StyleKit/Utils.swift +++ /dev/null @@ -1,64 +0,0 @@ - -import Foundation -import UIKit - - -struct Utils { - static let documentDirectory = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).last -} - -extension UIColor { - convenience init(red: Int, green: Int, blue: Int, alph: Float) { - assert(red >= 0 && red <= 255, "Invalid red component") - assert(green >= 0 && green <= 255, "Invalid green component") - assert(blue >= 0 && blue <= 255, "Invalid blue component") - - self.init(red: CGFloat(red) / 255.0, green: CGFloat(green) / 255.0, blue: CGFloat(blue) / 255.0, alpha: CGFloat(alph)) - } - - convenience init(withHex:Int, alpha:Float) { - self.init(red:(withHex >> 16) & 0xff, - green:(withHex >> 8) & 0xff, - blue:withHex & 0xff, - alph: alpha) - } -} - -extension String { - /// Converts hex format `#123ABC` or `123ABC` to Int value - func hexColorToInt() -> Int? { - guard dropPoundPrefix.characters.count == 6 else { return nil } - return dropPoundPrefix.hexaToDecimal - } -} - -extension String { - var dropPoundPrefix: String { return hasPrefix("#") ? String(characters.dropFirst(1)) : self } - var drop0xPrefix: String { return hasPrefix("0x") ? String(characters.dropFirst(2)) : self } - var drop0bPrefix: String { return hasPrefix("0b") ? String(characters.dropFirst(2)) : self } - var hexaToDecimal: Int { return Int(drop0xPrefix, radix: 16) ?? 0 } - var hexaToBinaryString: String { return String(hexaToDecimal, radix: 2) } - var decimalToHexaString: String { return String(Int(self) ?? 0, radix: 16) } - var decimalToBinaryString: String { return String(Int(self) ?? 0, radix: 2) } - var binaryToDecimal: Int { return Int(drop0bPrefix, radix: 2) ?? 0 } - var binaryToHexaString: String { return String(binaryToDecimal, radix: 16) } -} - -extension Int { - var toBinaryString: String { return String(self, radix: 2) } - var toHexaString: String { return String(self, radix: 16) } -} - -extension UIImage { - - class func imageWithColor(color: UIColor) -> UIImage { - let rect = CGRectMake(0, 0, 0.5, 44.0) - UIGraphicsBeginImageContext(rect.size) - let context = UIGraphicsGetCurrentContext() - CGContextSetFillColorWithColor(context!, color.CGColor); - CGContextFillRect(context!, rect); - let image = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - return image! - } -} diff --git a/StyleKit/StyleKitDemo/StyleKit/ViewStylist.swift b/StyleKit/StyleKitDemo/StyleKit/ViewStylist.swift deleted file mode 100644 index 5be2eef..0000000 --- a/StyleKit/StyleKitDemo/StyleKit/ViewStylist.swift +++ /dev/null @@ -1,164 +0,0 @@ - -import Foundation -import UIKit - -class ViewStyle : Stylist { - - typealias Element = UIView - - var borderWidth: Int? - var borderColor: UIColor? - var cornerRadius: Int? - var backgroundColor: UIColor? - - enum Properties: String { - case BorderWidth = "borderWidth" - case BorderColor = "borderColor" - case CornerRadius = "cornerRadius" - case BackgroundColor = "backgroundColor" - } - - static let allValues:[Properties] = [.BorderWidth, .BorderColor, .CornerRadius, .BackgroundColor] - - static func serialize(spec: [String:AnyObject], resources:CommonResources) throws -> ViewStyle { - let style = ViewStyle() - for (key,value) in spec { - guard let property = ViewStyle.Properties(rawValue: key) else { - print("StyleKit: Warning: StyleKit does not support \(key) on \(Element.self). Ignored.") - continue - } - switch property { - case .BorderColor: - if let colorKey = value as? String, - let color = resources.colors[colorKey] { - style.borderColor = color - } - case .BorderWidth: - if let width = value as? Int { - style.borderWidth = width - } - case .CornerRadius: - if let radius = value as? Int { - style.cornerRadius = radius - } - case .BackgroundColor: - if let colorKey = value as? String, - let color = resources.colors[colorKey] { - style.backgroundColor = color - } - } - } - return style - } - -} - -extension UIView { - - private func applyStyle(style:ViewStyle, resources:CommonResources) { - for property in ViewStyle.allValues { - switch property { - case .BorderWidth: - if let borderWidth = style.borderWidth { - self.layer.borderWidth = CGFloat(borderWidth) - } - case .BorderColor: - if let borderColor = style.borderColor { - self.layer.borderColor = borderColor.CGColor - } - case .CornerRadius: - if let cornerRadius = style.cornerRadius { - self.layer.cornerRadius = CGFloat(cornerRadius) - } - case .BackgroundColor: - if let color = style.backgroundColor { - self.backgroundColor = color - } - } - } - } - - /** - Apply the styles of the active stylesheet to the view. - */ - func style() { - guard let styleTag = self.styleTag else { - print("StyleKit: Warning: Instance of \(self.dynamicType) with no styleTag") - return - } - switch self { - case is UISegmentedControl: - if let elementStyles = Style.sharedInstance.styleMap[.segmentedControl], - let styles = elementStyles[styleTag], - let styleObject = styles as? SegmentedControlStyle { - (self as! UISegmentedControl).applyStyle(styleObject, resources: Style.sharedInstance.resources) - } else { - print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") - } - case is UITextField: - if let elementStyles = Style.sharedInstance.styleMap[.textField], - let styles = elementStyles[styleTag], - let styleObject = styles as? TextFieldStyle { - (self as! UITextField).applyStyle(styleObject, resources: Style.sharedInstance.resources) - } else { - print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") - } - case is UIButton: - if let elementStyles = Style.sharedInstance.styleMap[.button], - let styles = elementStyles[styleTag], - let styleObject = styles as? ButtonStyle { - (self as! UIButton).applyStyle(styleObject, resources: Style.sharedInstance.resources) - } else { - print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") - } - case is UILabel: - if let elementStyles = Style.sharedInstance.styleMap[.label], - let styles = elementStyles[styleTag], - let styleObject = styles as? LabelStyle { - (self as! UILabel).applyStyle(styleObject, resources: Style.sharedInstance.resources) - } else { - print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") - } - case is UISlider: - if let elementStyles = Style.sharedInstance.styleMap[.slider], - let styles = elementStyles[styleTag], - let styleObject = styles as? SliderStyle { - (self as! UISlider).applyStyle(styleObject, resources: Style.sharedInstance.resources) - } else { - print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") - } - case is UIStepper: - if let elementStyles = Style.sharedInstance.styleMap[.stepper], - let styles = elementStyles[styleTag], - let styleObject = styles as? StepperStyle { - (self as! UIStepper).applyStyle(styleObject, resources: Style.sharedInstance.resources) - } else { - print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") - } - case is UIProgressView: - if let elementStyles = Style.sharedInstance.styleMap[.progressView], - let styles = elementStyles[styleTag], - let styleObject = styles as? ProgressViewStyle { - (self as! UIProgressView).applyStyle(styleObject, resources: Style.sharedInstance.resources) - } else { - print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") - } - case is UITextView: - if let elementStyles = Style.sharedInstance.styleMap[.textView], - let styles = elementStyles[styleTag], - let styleObject = styles as? TextViewStyle { - (self as! UITextView).applyStyle(styleObject, resources: Style.sharedInstance.resources) - } else { - print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") - } - default: - if let elementStyles = Style.sharedInstance.styleMap[.view], - let styles = elementStyles[styleTag], - let styleObject = styles as? ViewStyle { - self.applyStyle(styleObject, resources: Style.sharedInstance.resources) - } else { - print("StyleKit: Warning: styleTag \(styleTag) on \(self.dynamicType) was not found in Style.json") - } - } - } -} diff --git a/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.pbxproj b/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.pbxproj index 4ad4eb6..d98700a 100644 --- a/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.pbxproj +++ b/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.pbxproj @@ -7,14 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 2908BCE71DBA61360012C924 /* LabelStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCE61DBA61360012C924 /* LabelStylist.swift */; }; - 2908BCE91DBA61BF0012C924 /* ButtonStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCE81DBA61BF0012C924 /* ButtonStylist.swift */; }; - 2908BCEC1DBA621D0012C924 /* ViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCEB1DBA621D0012C924 /* ViewStylist.swift */; }; - 2908BCEE1DBA62680012C924 /* TextFieldStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCED1DBA62680012C924 /* TextFieldStylist.swift */; }; - 2908BCF01DBA62AA0012C924 /* SegmentedControlStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCEF1DBA62AA0012C924 /* SegmentedControlStylist.swift */; }; - 2908BCF21DBA62E20012C924 /* SliderStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF11DBA62E20012C924 /* SliderStylist.swift */; }; - 2908BCF41DBA631E0012C924 /* StepperStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF31DBA631E0012C924 /* StepperStylist.swift */; }; - 2908BCF61DBA636D0012C924 /* ProgressViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF51DBA636D0012C924 /* ProgressViewStylist.swift */; }; 2908BCF91DBA89240012C924 /* StylesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BCF81DBA89240012C924 /* StylesViewController.swift */; }; 2908BD1F1DBC0EC10012C924 /* ButtonTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD1E1DBC0EC10012C924 /* ButtonTableViewCell.swift */; }; 2908BD211DBC10A20012C924 /* SegmentedControlsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2908BD201DBC10A20012C924 /* SegmentedControlsTableViewCell.swift */; }; @@ -38,23 +30,27 @@ 298DC6121C92073E00BB0D29 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 298DC6111C92073E00BB0D29 /* Assets.xcassets */; }; 298DC6151C92073E00BB0D29 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 298DC6131C92073E00BB0D29 /* LaunchScreen.storyboard */; }; 298E3BC81DB56D7B00B54DD0 /* Style2.json in Resources */ = {isa = PBXBuildFile; fileRef = 298E3BC71DB56D7B00B54DD0 /* Style2.json */; }; - 29EBA4911DB69EA500CAFFEA /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EBA4901DB69EA500CAFFEA /* Utils.swift */; }; + 29B64F301DC3AAF600D460B1 /* StyleKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29B64F2F1DC3AAF600D460B1 /* StyleKit.framework */; }; + 29B64F311DC3AAF600D460B1 /* StyleKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 29B64F2F1DC3AAF600D460B1 /* StyleKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; C406E7BC1DBFFF59004865CA /* ReadingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C406E7BB1DBFFF59004865CA /* ReadingViewController.swift */; }; - C406E7C21DC0F63C004865CA /* TextViewStylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = C406E7C11DC0F63C004865CA /* TextViewStylist.swift */; }; C406E7C41DC0F81D004865CA /* TextViewsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C406E7C31DC0F81D004865CA /* TextViewsTableViewCell.swift */; }; - C446D61D1CB540CA00EBC929 /* Style.swift in Sources */ = {isa = PBXBuildFile; fileRef = C446D61B1CB540CA00EBC929 /* Style.swift */; }; - C446D61E1CB540CA00EBC929 /* UIView+StyleKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C446D61C1CB540CA00EBC929 /* UIView+StyleKit.swift */; }; /* End PBXBuildFile section */ +/* Begin PBXCopyFilesBuildPhase section */ + 29B64F2E1DC3A7B900D460B1 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 29B64F311DC3AAF600D460B1 /* StyleKit.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ - 2908BCE61DBA61360012C924 /* LabelStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LabelStylist.swift; sourceTree = ""; }; - 2908BCE81DBA61BF0012C924 /* ButtonStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonStylist.swift; sourceTree = ""; }; - 2908BCEB1DBA621D0012C924 /* ViewStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewStylist.swift; sourceTree = ""; }; - 2908BCED1DBA62680012C924 /* TextFieldStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldStylist.swift; sourceTree = ""; }; - 2908BCEF1DBA62AA0012C924 /* SegmentedControlStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SegmentedControlStylist.swift; sourceTree = ""; }; - 2908BCF11DBA62E20012C924 /* SliderStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SliderStylist.swift; sourceTree = ""; }; - 2908BCF31DBA631E0012C924 /* StepperStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StepperStylist.swift; sourceTree = ""; }; - 2908BCF51DBA636D0012C924 /* ProgressViewStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProgressViewStylist.swift; sourceTree = ""; }; 2908BCF81DBA89240012C924 /* StylesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StylesViewController.swift; sourceTree = ""; }; 2908BD1E1DBC0EC10012C924 /* ButtonTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonTableViewCell.swift; sourceTree = ""; }; 2908BD201DBC10A20012C924 /* SegmentedControlsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SegmentedControlsTableViewCell.swift; sourceTree = ""; }; @@ -80,12 +76,9 @@ 298DC6141C92073E00BB0D29 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 298DC6161C92073E00BB0D29 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 298E3BC71DB56D7B00B54DD0 /* Style2.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Style2.json; sourceTree = ""; }; - 29EBA4901DB69EA500CAFFEA /* Utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = ""; }; + 29B64F2F1DC3AAF600D460B1 /* StyleKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StyleKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C406E7BB1DBFFF59004865CA /* ReadingViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadingViewController.swift; sourceTree = ""; }; - C406E7C11DC0F63C004865CA /* TextViewStylist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextViewStylist.swift; sourceTree = ""; }; C406E7C31DC0F81D004865CA /* TextViewsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextViewsTableViewCell.swift; sourceTree = ""; }; - C446D61B1CB540CA00EBC929 /* Style.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Style.swift; sourceTree = ""; }; - C446D61C1CB540CA00EBC929 /* UIView+StyleKit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIView+StyleKit.swift"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -93,6 +86,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 29B64F301DC3AAF600D460B1 /* StyleKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -113,22 +107,6 @@ path = StyleKitDemo/Fonts; sourceTree = ""; }; - 2908BCEA1DBA61CB0012C924 /* Stylist */ = { - isa = PBXGroup; - children = ( - 2908BCED1DBA62680012C924 /* TextFieldStylist.swift */, - 2908BCE61DBA61360012C924 /* LabelStylist.swift */, - 2908BCE81DBA61BF0012C924 /* ButtonStylist.swift */, - 2908BCEB1DBA621D0012C924 /* ViewStylist.swift */, - 2908BCEF1DBA62AA0012C924 /* SegmentedControlStylist.swift */, - 2908BCF11DBA62E20012C924 /* SliderStylist.swift */, - 2908BCF31DBA631E0012C924 /* StepperStylist.swift */, - 2908BCF51DBA636D0012C924 /* ProgressViewStylist.swift */, - C406E7C11DC0F63C004865CA /* TextViewStylist.swift */, - ); - name = Stylist; - sourceTree = ""; - }; 2908BCF71DBA887B0012C924 /* ViewControllers */ = { isa = PBXGroup; children = ( @@ -160,10 +138,6 @@ children = ( 2908BD581DC24A5D0012C924 /* DemoCode.swift */, 298DC60A1C92073E00BB0D29 /* AppDelegate.swift */, - C446D61B1CB540CA00EBC929 /* Style.swift */, - 29EBA4901DB69EA500CAFFEA /* Utils.swift */, - C446D61C1CB540CA00EBC929 /* UIView+StyleKit.swift */, - 2908BCEA1DBA61CB0012C924 /* Stylist */, 2908BCF71DBA887B0012C924 /* ViewControllers */, 2908BD2E1DBC11310012C924 /* Cells */, ); @@ -173,6 +147,7 @@ 298DC5FE1C92073E00BB0D29 = { isa = PBXGroup; children = ( + 29B64F2F1DC3AAF600D460B1 /* StyleKit.framework */, 2908BCE51DB818160012C924 /* Fonts */, 298DC6091C92073E00BB0D29 /* StyleKitDemo */, 298DC6081C92073E00BB0D29 /* Products */, @@ -212,6 +187,7 @@ 298DC6031C92073E00BB0D29 /* Sources */, 298DC6041C92073E00BB0D29 /* Frameworks */, 298DC6051C92073E00BB0D29 /* Resources */, + 29B64F2E1DC3A7B900D460B1 /* Embed Frameworks */, ); buildRules = ( ); @@ -286,26 +262,14 @@ 2908BD591DC24A5D0012C924 /* DemoCode.swift in Sources */, 2908BD2D1DBC11220012C924 /* ViewsTableViewCell.swift in Sources */, 2908BD1F1DBC0EC10012C924 /* ButtonTableViewCell.swift in Sources */, - 2908BCEC1DBA621D0012C924 /* ViewStylist.swift in Sources */, 2908BD271DBC10EB0012C924 /* SlidersTableViewCell.swift in Sources */, C406E7BC1DBFFF59004865CA /* ReadingViewController.swift in Sources */, - C406E7C21DC0F63C004865CA /* TextViewStylist.swift in Sources */, 2908BD291DBC10FF0012C924 /* SteppersTableViewCell.swift in Sources */, - 2908BCF61DBA636D0012C924 /* ProgressViewStylist.swift in Sources */, 2908BCF91DBA89240012C924 /* StylesViewController.swift in Sources */, - 2908BCF01DBA62AA0012C924 /* SegmentedControlStylist.swift in Sources */, 2908BD251DBC10D60012C924 /* LabelsTableViewCell.swift in Sources */, - C446D61E1CB540CA00EBC929 /* UIView+StyleKit.swift in Sources */, C406E7C41DC0F81D004865CA /* TextViewsTableViewCell.swift in Sources */, - 2908BCE71DBA61360012C924 /* LabelStylist.swift in Sources */, - 2908BCF21DBA62E20012C924 /* SliderStylist.swift in Sources */, 2908BD2B1DBC11120012C924 /* ProgressViewsTableViewCell.swift in Sources */, - 2908BCEE1DBA62680012C924 /* TextFieldStylist.swift in Sources */, 2908BD211DBC10A20012C924 /* SegmentedControlsTableViewCell.swift in Sources */, - 29EBA4911DB69EA500CAFFEA /* Utils.swift in Sources */, - 2908BCF41DBA631E0012C924 /* StepperStylist.swift in Sources */, - 2908BCE91DBA61BF0012C924 /* ButtonStylist.swift in Sources */, - C446D61D1CB540CA00EBC929 /* Style.swift in Sources */, 298DC60B1C92073E00BB0D29 /* AppDelegate.swift in Sources */, 2908BD231DBC10BE0012C924 /* TextFieldsTableViewCell.swift in Sources */, ); From 31937d7443387dccda09afcbf1142c89f865e32a Mon Sep 17 00:00:00 2001 From: Eric Kille Date: Fri, 28 Oct 2016 13:11:24 -0400 Subject: [PATCH 8/8] Minor project updates --- .../StyleKitDemo.xcodeproj/project.pbxproj | 12 ++++++++++-- .../contents.xcworkspacedata | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.pbxproj b/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.pbxproj index d98700a..74c6a47 100644 --- a/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.pbxproj +++ b/StyleKit/StyleKitDemo/StyleKitDemo.xcodeproj/project.pbxproj @@ -147,9 +147,9 @@ 298DC5FE1C92073E00BB0D29 = { isa = PBXGroup; children = ( - 29B64F2F1DC3AAF600D460B1 /* StyleKit.framework */, - 2908BCE51DB818160012C924 /* Fonts */, 298DC6091C92073E00BB0D29 /* StyleKitDemo */, + 299612051DC3AFD2006BA22E /* Frameworks */, + 2908BCE51DB818160012C924 /* Fonts */, 298DC6081C92073E00BB0D29 /* Products */, ); sourceTree = ""; @@ -177,6 +177,14 @@ path = StyleKit; sourceTree = ""; }; + 299612051DC3AFD2006BA22E /* Frameworks */ = { + isa = PBXGroup; + children = ( + 29B64F2F1DC3AAF600D460B1 /* StyleKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ diff --git a/StyleKit/StyleKitDemo/StyleKitDemo.xcworkspace/contents.xcworkspacedata b/StyleKit/StyleKitDemo/StyleKitDemo.xcworkspace/contents.xcworkspacedata index aa49fce..9dc06d8 100644 --- a/StyleKit/StyleKitDemo/StyleKitDemo.xcworkspace/contents.xcworkspacedata +++ b/StyleKit/StyleKitDemo/StyleKitDemo.xcworkspace/contents.xcworkspacedata @@ -2,9 +2,9 @@ + location = "group:../StyleKit.xcodeproj"> + location = "group:StyleKitDemo.xcodeproj">