From 6d67d30aee114f365b60d103c12595992d3d3927 Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Thu, 13 Aug 2015 19:56:10 -0700 Subject: [PATCH 1/9] NEW: Initial support for CPAppearance This patch adds the `CPAppearance` class and uses it where needed. There is nearly no impact, but in `_CPPopoverWindowView` where the `CPPopoverAppearance` needs to be converted to a `CPAppearance` object nib2cib support has also been added. *This patch brings no new functionality.* --- AppKit/AppKit.j | 3 +- AppKit/CPAppearance.j | 148 ++++++++++++++++++++++ AppKit/CPView.j | 29 ++++- AppKit/CPWindow/_CPPopoverWindowView.j | 6 +- AppKit/_CPPopoverWindow.j | 7 +- Tools/nib2cib/NSAppKit.j | 1 + Tools/nib2cib/NSAppearance.j | 52 ++++++++ Tools/objj2objcskeleton/objj2objcskeleton | 3 +- 8 files changed, 240 insertions(+), 9 deletions(-) create mode 100644 AppKit/CPAppearance.j create mode 100644 Tools/nib2cib/NSAppearance.j diff --git a/AppKit/AppKit.j b/AppKit/AppKit.j index bada5344d..e73d58c53 100644 --- a/AppKit/AppKit.j +++ b/AppKit/AppKit.j @@ -26,6 +26,7 @@ @import "CPAccordionView.j" @import "CPAlert.j" @import "CPAnimation.j" +@import "CPAppearance.j" @import "CPApplication.j" @import "CPArrayController.j" @import "CPBezierPath.j" @@ -109,4 +110,4 @@ @import "CPWebView.j" @import "CPWindow.j" @import "CPWindowController.j" -@import "CPWorkspace.j" +@import "CPWorkspace.j" \ No newline at end of file diff --git a/AppKit/CPAppearance.j b/AppKit/CPAppearance.j new file mode 100644 index 000000000..6c57a8d7d --- /dev/null +++ b/AppKit/CPAppearance.j @@ -0,0 +1,148 @@ +/* + * CPAppearance.j + * AppKit + * + * Created by Antoine Mercadal. + * Copyright 2015, Cappuccino Project. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +@import + +CPAppearanceNameAqua = @"CPAppearanceNameAqua"; +CPAppearanceNameLightContent = @"CPAppearanceNameLightContent"; +CPAppearanceNameVibrantDark = @"CPAppearanceNameVibrantDark"; +CPAppearanceNameVibrantLight = @"CPAppearanceNameVibrantLight"; + +var _CPAppearanceCurrent = nil, + _CPAppearancesRegistry = @{}; + + +@protocol CPAppearanceCustomization + +@required +- (CPAppearance)appearance; +- (void)setAppearance:(CPAppearance)appearance; +- (CPAppearance)effectiveAppearance; +- (void)setEffectiveAppearance:(CPAppearance)appearance; + +@end + + +/*! + @ingroup appkit + + A CPAppareance represents the appearance of an to a subset of UI elements. + This is a very lightweight implementation of the NSAppearance system, but + We are using it for compliance, and especially for the CPVisualEffectView +*/ +@implementation CPAppearance : CPObject +{ + BOOL _allowsVibrancy @accessors(property=allowsVibrancy); + + CPString _name; +} + + +#pragma mark - +#pragma mark Class Methods + +/*! Returns the current default CPAppearance +*/ ++ (CPAppearance)currentAppearance +{ + if (!_CPAppearanceCurrent) + _CPAppearanceCurrent = [CPAppearance appearanceNamed:CPAppearanceNameAqua]; + + return _CPAppearanceCurrent; +} + +/*! Sets the current default CPAppearance + @param appearance the new current appearance +*/ ++ (void)setCurrentAppearance:(CPAppearance)anAppearance +{ + _CPAppearanceCurrent = anAppearance; +} + +/*! Returns the CPAppearance object with the given name + @param name the name of the appearance +*/ ++ (CPAppearance)appearanceNamed:(CPString)aName +{ + if (![_CPAppearancesRegistry containsKey:aName]) + { + [_CPAppearancesRegistry setObject:[[CPAppearance alloc] initWithAppearanceNamed:aName bundle:nil] + forKey:aName]; + } + + return [_CPAppearancesRegistry objectForKey:aName]; +} + + +#pragma mark - +#pragma mark Initialization + +/*! Creates a CPAppearance object initialized to the specified appearance file in the specified bundle + This method does actually nothing special. It just creates a default appearance object +*/ +- initWithAppearanceNamed:(CPString)aName bundle:(CPBundle)bundle +{ + if (self = [super init]) + { + _name = aName; + _allowsVibrancy = YES; + + if ([_CPAppearancesRegistry containsKey:aName]) + [CPException raise:CPInternalInconsistencyException reason:"Appearance with name '" + aName + "' is already declared."]; + + [_CPAppearancesRegistry setObject:self forKey:aName]; + } + + return self; +} + + +#pragma mark - +#pragma mark Implementation + +- (CPString)description +{ + return @""; +} + + +#pragma mark - +#pragma mark CPCoding + +- (id)initWithCoder:(CPCoder)aCoder +{ + if (self = [super init]) + { + _name = [aCoder decodeObjectForKey:@"_name"]; + _allowsVibrancy = [aCoder decodeBoolForKey:@"_allowsVibrancy"]; + } + + return self; +} + +- (void)encodeWithCoder:(CPCoder)aCoder +{ + [aCoder encodeObject:_name forKey:@"_name"]; + [aCoder encodeBool:_allowsVibrancy forKey:@"_allowsVibrancy"]; +} + +@end \ No newline at end of file diff --git a/AppKit/CPView.j b/AppKit/CPView.j index 36ed408bb..250291471 100644 --- a/AppKit/CPView.j +++ b/AppKit/CPView.j @@ -26,6 +26,7 @@ @import "CGAffineTransform.j" @import "CGGeometry.j" +@import "CPAppearance.j" @import "CPColor.j" @import "CPGraphicsContext.j" @import "CPResponder.j" @@ -131,7 +132,6 @@ var CPViewFlags = { }, var CPViewHighDPIDrawingEnabled = YES; - /*! @ingroup appkit @class CPView @@ -240,6 +240,9 @@ var CPViewHighDPIDrawingEnabled = YES; BOOL _toolTipInstalled; BOOL _isObserving; + + BOOL _allowsVibrancy @accessors(property=allowsVibrancy); + CPAppearance _appearance @accessors(property=appearance); } /* @@ -3511,6 +3514,24 @@ setBoundsOrigin: @end + +@implementation CPView (Appeatance) + +/*! Returns the received appearance if any, or ask the superview and returns it. +*/ +- (CPAppearance)effectiveAppearance +{ + if (_appearance) + return _appearance; + + if (_superview) + return [_superview appearance]; + + return nil; +} + +@end + var CPViewAutoresizingMaskKey = @"CPViewAutoresizingMask", CPViewAutoresizesSubviewsKey = @"CPViewAutoresizesSubviews", CPViewBackgroundColorKey = @"CPViewBackgroundColor", @@ -3531,7 +3552,8 @@ var CPViewAutoresizingMaskKey = @"CPViewAutoresizingMask", CPReuseIdentifierKey = @"CPReuseIdentifierKey", CPViewScaleKey = @"CPViewScaleKey", CPViewSizeScaleKey = @"CPViewSizeScaleKey", - CPViewIsScaledKey = @"CPViewIsScaledKey"; + CPViewIsScaledKey = @"CPViewIsScaledKey", + CPViewAppearanceKey = @"CPViewAppearanceKey"; @implementation CPView (CPCoding) @@ -3646,6 +3668,8 @@ var CPViewAutoresizingMaskKey = @"CPViewAutoresizingMask", _themeAttributes[attributeName] = CPThemeAttributeDecode(aCoder, attributeName, attributes[count], _theme, themeClass); } + _appearance = [aCoder decodeObjectForKey:CPViewAppearanceKey]; + [self setNeedsDisplay:YES]; [self setNeedsLayout]; } @@ -3734,6 +3758,7 @@ var CPViewAutoresizingMaskKey = @"CPViewAutoresizingMask", [aCoder encodeSize:[self scaleSize] forKey:CPViewScaleKey]; [aCoder encodeSize:[self _hierarchyScaleSize] forKey:CPViewSizeScaleKey]; [aCoder encodeBool:_isScaled forKey:CPViewIsScaledKey]; + [aCoder encodeObject:_appearance forKey:CPViewAppearanceKey]; } @end diff --git a/AppKit/CPWindow/_CPPopoverWindowView.j b/AppKit/CPWindow/_CPPopoverWindowView.j index b337be625..aeba11f8a 100644 --- a/AppKit/CPWindow/_CPPopoverWindowView.j +++ b/AppKit/CPWindow/_CPPopoverWindowView.j @@ -26,7 +26,6 @@ @import "CGGradient.j" @import "_CPWindowView.j" -@global CPPopoverAppearanceMinimal var _CPPopoverWindowViewDefaultCursorSize = CGSizeMake(16, 10); @@ -39,7 +38,6 @@ var _CPPopoverWindowViewDefaultCursorSize = CGSizeMake(16, 10); { float _arrowOffsetX @accessors(property=arrowOffsetX); float _arrowOffsetY @accessors(property=arrowOffsetY); - int _appearance @accessors(property=appearance); unsigned _preferredEdge @accessors(property=preferredEdge); CGSize _cursorSize; @@ -123,7 +121,7 @@ var _CPPopoverWindowViewDefaultCursorSize = CGSizeMake(16, 10); { _arrowOffsetX = 0.0; _arrowOffsetY = 0.0; - _appearance = CPPopoverAppearanceMinimal; + _appearance = [CPAppearance appearanceNamed:CPAppearanceNameVibrantLight]; _cursorSize = CGSizeMakeCopy(_CPPopoverWindowViewDefaultCursorSize); } @@ -168,7 +166,7 @@ var _CPPopoverWindowViewDefaultCursorSize = CGSizeMake(16, 10); gradient, frame = [self bounds]; - if (_appearance == CPPopoverAppearanceMinimal) + if ([_appearance isEqual:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight]]) { gradient = [self valueForThemeAttribute:@"background-gradient"]; strokeColor = [self valueForThemeAttribute:@"stroke-color"]; diff --git a/AppKit/_CPPopoverWindow.j b/AppKit/_CPPopoverWindow.j index 4aa1f4c0e..443109c18 100644 --- a/AppKit/_CPPopoverWindow.j +++ b/AppKit/_CPPopoverWindow.j @@ -141,7 +141,12 @@ var _CPPopoverWindow_shouldClose_ = 1 << 4, if (_appearance === anAppearance) return; - [_windowView setAppearance:anAppearance]; + _appearance = anAppearance; + + var appearanceName = _appearance == CPPopoverAppearanceMinimal ? CPAppearanceNameVibrantLight : CPAppearanceNameVibrantDark, + viewAppearance = [CPAppearance appearanceNamed:appearanceName]; + + [_windowView setAppearance:viewAppearance]; } - (void)setStyleMask:(unsigned)aStyleMask diff --git a/Tools/nib2cib/NSAppKit.j b/Tools/nib2cib/NSAppKit.j index 8dbc498ee..691872013 100644 --- a/Tools/nib2cib/NSAppKit.j +++ b/Tools/nib2cib/NSAppKit.j @@ -88,6 +88,7 @@ @import "NSSortDescriptor.j" @import "NSPopover.j" @import "NSProgressIndicator.j" +@import "NSAppearance.j" function CP_NSMapClassName(aClassName) diff --git a/Tools/nib2cib/NSAppearance.j b/Tools/nib2cib/NSAppearance.j new file mode 100644 index 000000000..fc5f62b4d --- /dev/null +++ b/Tools/nib2cib/NSAppearance.j @@ -0,0 +1,52 @@ +/* + * NSAppearance.j + * nib2cib + * + * Created by Antoine Mercadal. + * Copyright 2015, Cappuccino Project + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +@import + + +@implementation CPAppearance (NSCoding) + +- (id)NS_initWithCoder:(CPCoder)aCoder +{ + if (self = [super init]) + { + _name = [aCoder decodeObjectForKey:@"NSAppearanceName"].replace(/^NS/, "CP"); + } + + return self; +} + +@end + +@implementation NSAppearance : CPAppearance + +- (id)initWithCoder:(CPCoder)aCoder +{ + return [self NS_initWithCoder:aCoder]; +} + +- (Class)classForKeyedArchiver +{ + return [CPAppearance class]; +} + +@end diff --git a/Tools/objj2objcskeleton/objj2objcskeleton b/Tools/objj2objcskeleton/objj2objcskeleton index c855c5c54..7ddcfa419 100644 --- a/Tools/objj2objcskeleton/objj2objcskeleton +++ b/Tools/objj2objcskeleton/objj2objcskeleton @@ -604,5 +604,6 @@ var NSClasses = { "NSWindow" : YES, "NSWindowController" : YES, "NSWorkspace" : YES, - "NSPopover": YES + "NSPopover": YES, + "NSAppearance" : YES }; From 20289ff81ba6398f5c6dc7770098cfc903fde0cd Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Thu, 13 Aug 2015 20:25:45 -0700 Subject: [PATCH 2/9] fix two small bugs in CPApperance --- AppKit/CPAppearance.j | 8 ++++++++ Tools/nib2cib/NSView.j | 1 + 2 files changed, 9 insertions(+) diff --git a/AppKit/CPAppearance.j b/AppKit/CPAppearance.j index 6c57a8d7d..23c650327 100644 --- a/AppKit/CPAppearance.j +++ b/AppKit/CPAppearance.j @@ -119,6 +119,14 @@ var _CPAppearanceCurrent = nil, #pragma mark - #pragma mark Implementation +- (BOOL)isEqual:(id)anObject +{ + if (![anObject isKindOfClass:CPAppearance]) + return NO; + + return self._name == anObject._name; +} + - (CPString)description { return @""; diff --git a/Tools/nib2cib/NSView.j b/Tools/nib2cib/NSView.j index ad996f35a..e25ce5eff 100644 --- a/Tools/nib2cib/NSView.j +++ b/Tools/nib2cib/NSView.j @@ -52,6 +52,7 @@ var NSViewAutoresizingMask = 0x3F, _window = [aCoder decodeObjectForKey:@"NSWindow"]; _superview = [aCoder decodeObjectForKey:@"NSSuperview"]; _subviews = [aCoder decodeObjectForKey:@"NSSubviews"]; + _appearance = [aCoder decodeObjectForKey:@"NSAppearance"]; _hierarchyScaleSize = CGSizeMake(1.0 , 1.0); _scaleSize = CGSizeMake(1.0, 1.0); From fa1f739458c6c863b8de7067f4e6657bc8436ced Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Thu, 13 Aug 2015 20:53:53 -0700 Subject: [PATCH 3/9] NEW: Support for basic CPVisualEffectView MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch contains a very naive implementation of the NSVisualEffectView. This will only work on very recent unreleased version of Safari, but should be supported by all at some point. This allow to use the Yosemite/iOS blurry effect. Not all options are supported (especially the `CPVisualEffectBlendingModeBehindWindow` mode…). But hey! it’s a start :) Tests in Manual/CPVisualEffectViewTest --- AppKit/AppKit.j | 1 + AppKit/CPVisualEffectView.j | 236 ++++++++++++++++++ .../CPVisualEffectViewTest/AppController.j | 14 ++ .../Manual/CPVisualEffectViewTest/Info.plist | 14 ++ Tests/Manual/CPVisualEffectViewTest/Jakefile | 184 ++++++++++++++ .../Resources/MainMenu.cib | 7 + .../Resources/MainMenu.xib | 177 +++++++++++++ .../Resources/background.jpg | Bin 0 -> 191942 bytes .../CPVisualEffectViewTest/index-debug.html | 191 ++++++++++++++ .../Manual/CPVisualEffectViewTest/index.html | 161 ++++++++++++ Tests/Manual/CPVisualEffectViewTest/main.j | 18 ++ Tools/nib2cib/NSAppKit.j | 1 + Tools/nib2cib/NSVisualEffectView.j | 57 +++++ Tools/objj2objcskeleton/objj2objcskeleton | 3 +- 14 files changed, 1063 insertions(+), 1 deletion(-) create mode 100644 AppKit/CPVisualEffectView.j create mode 100644 Tests/Manual/CPVisualEffectViewTest/AppController.j create mode 100644 Tests/Manual/CPVisualEffectViewTest/Info.plist create mode 100644 Tests/Manual/CPVisualEffectViewTest/Jakefile create mode 100644 Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.cib create mode 100644 Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.xib create mode 100644 Tests/Manual/CPVisualEffectViewTest/Resources/background.jpg create mode 100644 Tests/Manual/CPVisualEffectViewTest/index-debug.html create mode 100644 Tests/Manual/CPVisualEffectViewTest/index.html create mode 100644 Tests/Manual/CPVisualEffectViewTest/main.j create mode 100644 Tools/nib2cib/NSVisualEffectView.j diff --git a/AppKit/AppKit.j b/AppKit/AppKit.j index e73d58c53..43427701a 100644 --- a/AppKit/AppKit.j +++ b/AppKit/AppKit.j @@ -107,6 +107,7 @@ @import "CPView.j" @import "CPViewAnimation.j" @import "CPViewController.j" +@import "CPVisualEffectView.j" @import "CPWebView.j" @import "CPWindow.j" @import "CPWindowController.j" diff --git a/AppKit/CPVisualEffectView.j b/AppKit/CPVisualEffectView.j new file mode 100644 index 000000000..80d522e7c --- /dev/null +++ b/AppKit/CPVisualEffectView.j @@ -0,0 +1,236 @@ +/* + * CPVisualEffectView.j + * AppKit + * + * Created by Antoine Mercadal. + * Copyright 2015, 280 Cappuccino Project. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +@import +@import "CPAppearance.j" +@import "CPView.j" + +@typedef CPVisualEffectMaterial +CPVisualEffectMaterialAppearanceBased = 0; +CPVisualEffectMaterialLight = 1; +CPVisualEffectMaterialDark = 2; +CPVisualEffectMaterialTitlebar = 3; + +@typedef CPVisualEffectBlendingMode +CPVisualEffectBlendingModeBehindWindow = 0; +CPVisualEffectBlendingModeWithinWindow = 1; + +@typedef CPVisualEffectState +CPVisualEffectStateFollowsWindowActiveState = 0; +CPVisualEffectStateActive = 1; +CPVisualEffectStateInactive = 2; + + +/*! @ingroup appkit + + Very naive implementation of CPVisualEffectView. This view allows + to use vibrancy effect. This is only working with Safari 9+ and the + support in Chrome/ium should come quite soon. + Using this class with a browser that doesn't support backdrop-filter + While still work, but you will not get the blurry effect. +*/ +@implementation CPVisualEffectView : CPView +{ + CPImage _maskImage @accessors(property=maskImage); + CPVisualEffectBlendingMode _blendingMode @accessors(property=blendingMode); + CPVisualEffectMaterial _material @accessors(property=material); + CPVisualEffectState _state @accessors(property=state); +} + + +#pragma mark - +#pragma mark Initialization + +- (id)initWithFrame:(CGRect)aFrame +{ + if (self = [super initWithFrame:aFrame]) + { + _material = CPVisualEffectMaterialAppearanceBased; + _blendingMode = CPVisualEffectBlendingModeWithinWindow; + _state = CPVisualEffectStateFollowsWindowActiveState; + _appearance = [CPAppearance appearanceNamed:CPAppearanceNameVibrantDark]; + } + + return self; +} + + +#pragma mark - +#pragma mark CPVisualEffectView API + +/*! Sets the appearance of the CPVisualEffectView. + + Only CPAppearance named CPAppearanceNameVibrantDark or CPAppearanceNameVibrantLight are valid + + @param anAppearance the CPAppearance. +*/ +- (void)setAppearance:(CPAppearance)anAppearance +{ + if (![self _validAppearance:anAppearance]) + [CPException raise:CPInvalidArgumentException reason:"Appearance can only be CPAppearanceNameVibrantDark or CPAppearanceNameVibrantLight in CPVisualEffectView, but is " + anAppearance]; + + [super setAppearance:anAppearance]; + [self _applyVibrancyState]; +} + +/*! Sets the received effect state. + Possible values: +
+    CPVisualEffectStateFollowsWindowActiveState (default)
+    CPVisualEffectStateActive
+    CPVisualEffectStateInactive
+    
+*/ +- (void)setState:(CPVisualEffectState)aState +{ + if (_state == aState) + return; + + [self willChangeValueForKey:"state"]; + _state = aState; + [self didChangeValueForKey:"state"]; + + [self _applyVibrancyState]; +} + + +#pragma mark - +#pragma mark Utilities + +- (void)_setEffectEnabled:(BOOL)shouldEnable +{ + var prop = CPBrowserStyleProperty("backdrop-filter"), + dark = [[self appearance] isEqual:[CPAppearance appearanceNamed:CPAppearanceNameVibrantDark]], + darkColor = [CPColor colorWithHexString:@"1e1e1e"], + lightColor = [CPColor whiteColor]; + + if (shouldEnable) + { + if (prop) + self._DOMElement.style[prop] = "blur(30px)"; + [self setBackgroundColor:[(dark ? darkColor : lightColor) colorWithAlphaComponent:0.6]]; + } + else + { + if (prop) + self._DOMElement.style[prop] = nil; + + [self setBackgroundColor:(dark ? darkColor : lightColor)]; + } +} + +- (void)_applyVibrancyState +{ + switch (_state) + { + case CPVisualEffectStateFollowsWindowActiveState: + [self _setEffectEnabled:[self hasThemeState:CPThemeStateKeyWindow]]; + break; + + case CPVisualEffectStateActive: + [self _setEffectEnabled:YES]; + break; + + case CPVisualEffectStateInactive: + [self _setEffectEnabled:NO]; + break; + } +} + +- (BOOL)_validAppearance:(CPAppearance)anAppearance +{ + return [anAppearance isEqual:[CPAppearance appearanceNamed:CPAppearanceNameVibrantDark]] || [anAppearance isEqual:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight]]; +} + + +#pragma mark - +#pragma mark Overrides + +- (BOOL)setThemeState:(ThemeState)aState +{ + if (aState.isa && [aState isKindOfClass:CPArray]) + aState = CPThemeState.apply(null, aState); + + var ret = [super setThemeState:aState]; + + [self _applyVibrancyState]; + + return ret; +} + +- (BOOL)unsetThemeState:(ThemeState)aState +{ + if (aState.isa && [aState isKindOfClass:CPArray]) + aState = CPThemeState.apply(null, aState); + + var ret = [super unsetThemeState:aState]; + + [self _applyVibrancyState]; + + return ret; +} + +- (void)viewDidMoveToSuperview +{ + [super viewDidMoveToSuperview]; + + if (_superview) + [self _applyVibrancyState]; +} + +- (void)viewDidMoveToWindow +{ + [super viewDidMoveToWindow]; + + if (_window) + [self _applyVibrancyState]; +} + + +#pragma mark - +#pragma mark CPCoding + +- (id)initWithCoder:(CPCoder)aCoder +{ + if (self = [super initWithCoder:aCoder]) + { + _blendingMode = [aCoder decodeIntForKey:@"_blendingMode"] || CPVisualEffectBlendingModeWithinWindow; + _maskImage = [aCoder decodeObjectForKey:@"_maskImage"]; + _material = [aCoder decodeIntForKey:@"_material"] || CPVisualEffectMaterialAppearanceBased; + _state = [aCoder decodeIntForKey:@"_state"] || CPVisualEffectStateFollowsWindowActiveState; + } + + return self; +} + +- (void)encodeWithCoder:(CPCoder)aCoder +{ + [super encodeWithCoder:aCoder]; + + [aCoder encodeObject:_maskImage forKey:@"_maskImage"]; + [aCoder encodeInt:_blendingMode forKey:@"_blendingMode"]; + [aCoder encodeInt:_material forKey:@"_material"]; + [aCoder encodeInt:_state forKey:@"_state"]; +} + + +@end \ No newline at end of file diff --git a/Tests/Manual/CPVisualEffectViewTest/AppController.j b/Tests/Manual/CPVisualEffectViewTest/AppController.j new file mode 100644 index 000000000..7e5b0b159 --- /dev/null +++ b/Tests/Manual/CPVisualEffectViewTest/AppController.j @@ -0,0 +1,14 @@ +/* + * AppController.j + * CPVisualEffectViewTest + * + * Created by You on August 13, 2015. + * Copyright 2015, Your Company All rights reserved. + */ + +@import +@import + +@implementation AppController : CPObject +// everything in the xib +@end diff --git a/Tests/Manual/CPVisualEffectViewTest/Info.plist b/Tests/Manual/CPVisualEffectViewTest/Info.plist new file mode 100644 index 000000000..074f91770 --- /dev/null +++ b/Tests/Manual/CPVisualEffectViewTest/Info.plist @@ -0,0 +1,14 @@ + + + + + Main cib file base name + MainMenu.cib + CPBundleName + CPVisualEffectViewTest + CPBundleVersion + 1.0 + CPHumanReadableCopyright + Copyright © 2015, Your Company All rights reserved. + + diff --git a/Tests/Manual/CPVisualEffectViewTest/Jakefile b/Tests/Manual/CPVisualEffectViewTest/Jakefile new file mode 100644 index 000000000..690674428 --- /dev/null +++ b/Tests/Manual/CPVisualEffectViewTest/Jakefile @@ -0,0 +1,184 @@ +/* + * Jakefile + * CPVisualEffectViewTest + * + * Created by You on August 13, 2015. + * Copyright 2015, Your Company All rights reserved. + */ + +var ENV = require("system").env, + FILE = require("file"), + JAKE = require("jake"), + task = JAKE.task, + FileList = JAKE.FileList, + app = require("cappuccino/jake").app, + configuration = ENV["CONFIG"] || ENV["CONFIGURATION"] || ENV["c"] || "Debug", + OS = require("os"), + projectName = "CPVisualEffectViewTest"; + +app (projectName, function(task) +{ + ENV["OBJJ_INCLUDE_PATHS"] = "Frameworks"; + + if (configuration === "Debug") + ENV["OBJJ_INCLUDE_PATHS"] = FILE.join(ENV["OBJJ_INCLUDE_PATHS"], configuration); + + task.setBuildIntermediatesPath(FILE.join("Build", "CPVisualEffectViewTest.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("CPVisualEffectViewTest"); + task.setIdentifier("com.yourcompany.CPVisualEffectViewTest"); + task.setVersion("1.0"); + task.setAuthor("Your Company"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("CPVisualEffectViewTest"); + task.setSources(new FileList("**/*.j").exclude(FILE.join("Build", "**")).exclude(FILE.join("Frameworks", "Source", "**"))); + task.setResources(new FileList("Resources/**")); + task.setIndexFilePath("index.html"); + task.setInfoPlistPath("Info.plist"); + + if (configuration === "Debug") + task.setCompilerFlags("-DDEBUG -g"); + else + task.setCompilerFlags("-O"); +}); + +task ("default", [projectName], function() +{ + printResults(configuration); +}); + +task ("build", ["default"], function() +{ + updateApplicationSize(); +}); + +task ("debug", function() +{ + configuration = ENV["CONFIGURATION"] = "Debug"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("release", function() +{ + configuration = ENV["CONFIGURATION"] = "Release"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("run", ["debug"], function() +{ + OS.system(["open", FILE.join("Build", "Debug", projectName, "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", projectName, "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", projectName)); + OS.system(["press", "-f", FILE.join("Build", "Release", projectName), FILE.join("Build", "Deployment", projectName)]); + printResults("Deployment") +}); + +task ("desktop", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Desktop", projectName)); + require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", projectName), FILE.join("Build", "Desktop", projectName, "CPVisualEffectViewTest.app")); + printResults("Desktop") +}); + +task ("run-desktop", ["desktop"], function() +{ + OS.system([FILE.join("Build", "Desktop", projectName, "CPVisualEffectViewTest.app", "Contents", "MacOS", "NativeHost"), "-i"]); +}); + +function printResults(configuration) +{ + print("----------------------------"); + print(configuration+" app built at path: "+FILE.join("Build", configuration, projectName)); + print("----------------------------"); +} + +function updateApplicationSize() +{ + print("Calculating application file sizes..."); + + var contents = FILE.read(FILE.join("Build", configuration, projectName, "Info.plist"), { charset:"UTF-8" }), + format = CFPropertyList.sniffedFormatOfString(contents), + plist = CFPropertyList.propertyListFromString(contents), + totalBytes = {executable:0, data:0, mhtml:0}; + + // Get the size of all framework executables and sprite data + var frameworksDir = "Frameworks"; + + if (configuration === "Debug") + frameworksDir = FILE.join(frameworksDir, "Debug"); + + var frameworks = FILE.list(frameworksDir); + + frameworks.forEach(function(framework) + { + if (framework !== "Source") + addBundleFileSizes(FILE.join(frameworksDir, framework), totalBytes); + }); + + // Read in the default theme name, and attempt to get its size + var themeName = plist.valueForKey("CPDefaultTheme") || "Aristo2", + themePath = nil; + + if (themeName === "Aristo" || themeName === "Aristo2") + themePath = FILE.join(frameworksDir, "AppKit", "Resources", themeName + ".blend"); + else + themePath = FILE.join("Frameworks", "Resources", themeName + ".blend"); + + if (FILE.isDirectory(themePath)) + addBundleFileSizes(themePath, totalBytes); + + // Add sizes for the app + addBundleFileSizes(FILE.join("Build", configuration, projectName), totalBytes); + + print("Executables: " + totalBytes.executable + ", sprite data: " + totalBytes.data + ", total: " + (totalBytes.executable + totalBytes.data)); + + var dict = new CFMutableDictionary(); + + dict.setValueForKey("executable", totalBytes.executable); + dict.setValueForKey("data", totalBytes.data); + dict.setValueForKey("mhtml", totalBytes.mhtml); + + plist.setValueForKey("CPApplicationSize", dict); + + FILE.write(FILE.join("Build", configuration, projectName, "Info.plist"), CFPropertyList.stringFromPropertyList(plist, format), { charset:"UTF-8" }); +} + +function addBundleFileSizes(bundlePath, totalBytes) +{ + var bundleName = FILE.basename(bundlePath), + environment = bundleName === "Foundation" ? "Objj" : "Browser", + bundlePath = FILE.join(bundlePath, environment + ".environment"); + + if (FILE.isDirectory(bundlePath)) + { + var filename = bundleName + ".sj", + filePath = new FILE.Path(FILE.join(bundlePath, filename)); + + if (filePath.exists()) + totalBytes.executable += filePath.size(); + + filePath = new FILE.Path(FILE.join(bundlePath, "dataURLs.txt")); + + if (filePath.exists()) + totalBytes.data += filePath.size(); + + filePath = new FILE.Path(FILE.join(bundlePath, "MHTMLData.txt")); + + if (filePath.exists()) + totalBytes.mhtml += filePath.size(); + + filePath = new FILE.Path(FILE.join(bundlePath, "MHTMLPaths.txt")); + + if (filePath.exists()) + totalBytes.mhtml += filePath.size(); + } +} diff --git a/Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.cib b/Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.cib new file mode 100644 index 000000000..13dbf7c19 --- /dev/null +++ b/Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.cib @@ -0,0 +1,7 @@ +280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;1;0E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;41E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;42E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;17E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;43E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;41E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;44E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;45E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;46E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;2;47E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;48E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;2;49E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;50E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;51E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;21E;E;D;K;10;$classnameS;6;CPViewK;8;$classesA;S;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;53E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;53E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;54E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;22E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;21E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;58E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;59E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;21E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;63E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;66E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;67E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;68E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;57E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;71E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;64E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;63E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;2;57E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;2;57E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;45E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;46E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;2;72E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;73E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;2;49E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;74E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;51E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;25E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;75E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;75E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPImageViewK;8;$classesA;S;11;CPImageViewS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;26E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;25E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;75E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;75E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;25E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;77E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;52E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;52E;K;15;$aimage-scalingD;K;6;CP$UIDd;2;78E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;80E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;23;CPImageViewHasShadowKeyD;K;6;CP$UIDd;1;0E;K;28;CPImageViewImageAlignmentKeyD;K;6;CP$UIDd;2;52E;E;D;K;10;$classnameS;18;CPVisualEffectViewK;8;$classesA;S;18;CPVisualEffectViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;25E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;81E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;82E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;83E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;25E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;2;85E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;2;86E;K;9;_materialD;K;6;CP$UIDd;2;52E;K;6;_stateD;K;6;CP$UIDd;2;52E;E;D;K;6;$classD;K;6;CP$UIDd;2;22E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;87E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;88E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;64E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;89E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;67E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;90E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;57E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;71E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;64E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;64E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;2;57E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;2;57E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;25E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;91E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;82E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;92E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;25E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;2;93E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;2;86E;K;9;_materialD;K;6;CP$UIDd;2;52E;K;6;_stateD;K;6;CP$UIDd;2;52E;E;D;K;6;$classD;K;6;CP$UIDd;2;22E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;87E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;88E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;64E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;12;$atext-colorD;K;6;CP$UIDd;2;95E;K;6;$afontD;K;6;CP$UIDd;2;96E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;67E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;97E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;57E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;71E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;64E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;64E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;2;57E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;2;57E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;25E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;98E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;82E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;25E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;2;85E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;2;86E;K;9;_materialD;K;6;CP$UIDd;2;52E;K;6;_stateD;K;6;CP$UIDd;2;86E;E;D;K;6;$classD;K;6;CP$UIDd;2;22E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;87E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;88E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;64E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;3;100E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;67E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;101E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;57E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;71E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;64E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;64E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;2;57E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;2;57E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;25E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;102E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;82E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;103E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;25E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;2;93E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;2;86E;K;9;_materialD;K;6;CP$UIDd;2;52E;K;6;_stateD;K;6;CP$UIDd;2;86E;E;D;K;6;$classD;K;6;CP$UIDd;2;22E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;35E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;87E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;88E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;35E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;64E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;12;$atext-colorD;K;6;CP$UIDd;3;104E;K;6;$afontD;K;6;CP$UIDd;3;105E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;67E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;57E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;71E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;64E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;64E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;2;57E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;2;57E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;25E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;107E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;82E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;25E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;2;85E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;2;86E;K;9;_materialD;K;6;CP$UIDd;2;52E;K;6;_stateD;K;6;CP$UIDd;2;64E;E;D;K;6;$classD;K;6;CP$UIDd;2;22E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;87E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;88E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;64E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;3;109E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;67E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;110E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;57E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;71E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;64E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;64E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;2;57E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;2;57E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;25E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;111E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;82E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;112E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;25E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;2;93E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;2;86E;K;9;_materialD;K;6;CP$UIDd;2;52E;K;6;_stateD;K;6;CP$UIDd;2;64E;E;D;K;6;$classD;K;6;CP$UIDd;2;22E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;39E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;87E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;88E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;39E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;64E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;12;$atext-colorD;K;6;CP$UIDd;3;113E;K;6;$afontD;K;6;CP$UIDd;3;114E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;67E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;115E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;57E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;71E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;64E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;64E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;2;57E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;2;57E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;2;67E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;24E;E;E;S;8;delegateS;13;AppControllerS;32;{10000000000000, 10000000000000}S;8;CPWindowd;10;1618478080S;22;{{100, 88}, {181, 67}}S;21;{{0, 0}, {1440, 877}}d;2;15S;6;Windowd;1;0S;19;{{0, 0}, {181, 67}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;23E;E;E;S;6;normalS;6;{1, 1}F;S;21;{{20, 25}, {141, 17}}S;19;{{0, 0}, {141, 17}}d;2;36S;9;textfieldS;18;controlSizeRegulard;1;4d;1;2D;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;65E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;116E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;69E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;67E;E;T;S;23;Click me to loose focusd;2;-1D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;70E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;117E;E;d;10;1886912512S;24;{{303, 166}, {834, 545}}d;1;7S;20;{{0, 0}, {834, 545}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;39E;E;E;d;2;18d;1;3D;K;10;$classnameS;20;_CPCibCustomResourceK;8;$classesA;S;20;_CPCibCustomResourceS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;118E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;119E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;121E;E;S;22;{{87, 15}, {215, 254}}S;20;{{0, 0}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;30E;E;E;D;K;10;$classnameS;12;CPAppearanceK;8;$classesA;S;12;CPAppearanceS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;5;_nameD;K;6;CP$UIDd;3;122E;K;15;_allowsVibrancyD;K;6;CP$UIDd;2;67E;E;d;1;1S;22;{{20, 110}, {175, 34}}S;19;{{0, 0}, {175, 34}}D;K;6;$classD;K;6;CP$UIDd;2;65E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;116E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;69E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;67E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;67E;E;S;32;Vibrant Light +Follows Key WindowS;23;{{87, 277}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;32E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;5;_nameD;K;6;CP$UIDd;3;123E;K;15;_allowsVibrancyD;K;6;CP$UIDd;2;67E;E;D;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;4;nameD;K;6;CP$UIDd;3;124E;K;12;defaultValueD;K;6;CP$UIDd;3;125E;K;6;valuesD;K;6;CP$UIDd;3;126E;E;D;K;6;$classD;K;6;CP$UIDd;2;65E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;116E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;69E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;67E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;67E;E;S;31;Vibrant Dark +Follows Key WindowS;23;{{310, 15}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;34E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;65E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;116E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;69E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;67E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;67E;E;S;20;Vibrant Light +ActiveS;24;{{310, 277}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;36E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;4;nameD;K;6;CP$UIDd;3;124E;K;12;defaultValueD;K;6;CP$UIDd;3;125E;K;6;valuesD;K;6;CP$UIDd;3;127E;E;D;K;6;$classD;K;6;CP$UIDd;2;65E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;116E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;69E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;67E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;67E;E;S;19;Vibrant Dark +ActiveS;23;{{533, 15}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;38E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;65E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;116E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;69E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;67E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;67E;E;S;22;Vibrant Light +InactiveS;24;{{533, 277}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;40E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;4;nameD;K;6;CP$UIDd;3;124E;K;12;defaultValueD;K;6;CP$UIDd;3;125E;K;6;valuesD;K;6;CP$UIDd;3;128E;E;D;K;6;$classD;K;6;CP$UIDd;2;65E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;116E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;69E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;67E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;67E;E;S;21;Vibrant Dark +InactiveS;28;_CPFontSystemFacePlaceholderD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;2;86E;E;E;S;7;CPImageS;14;background.jpgD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;120E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;131E;K;16;bundleIdentifierD;K;6;CP$UIDd;3;132E;K;9;frameworkD;K;6;CP$UIDd;3;132E;E;E;S;28;CPAppearanceNameVibrantLightS;27;CPAppearanceNameVibrantDarkS;10;text-colorD;K;6;$classD;K;6;CP$UIDd;2;70E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;133E;E;D;K;6;$classD;K;6;CP$UIDd;3;120E;K;10;CP.objectsD;K;11;placeholderD;K;6;CP$UIDd;3;125E;K;6;normalD;K;6;CP$UIDd;3;134E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;120E;K;10;CP.objectsD;K;11;placeholderD;K;6;CP$UIDd;3;125E;K;6;normalD;K;6;CP$UIDd;3;135E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;120E;K;10;CP.objectsD;K;11;placeholderD;K;6;CP$UIDd;3;125E;K;6;normalD;K;6;CP$UIDd;3;136E;E;E;f;18;0.6862745098039216D;K;10;$classnameS;21;_CPKeyedArchiverValueK;8;$classesA;S;21;_CPKeyedArchiverValueS;7;CPValueS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;130E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;137E;E;S;0;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;86E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;70E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;138E;E;D;K;6;$classD;K;6;CP$UIDd;2;70E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;139E;E;D;K;6;$classD;K;6;CP$UIDd;2;70E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;140E;E;S;28;{"width":614.4,"height":401}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;3;141E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;3;141E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;3;141E;E;E;f;4;0.85E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.xib b/Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.xib new file mode 100644 index 000000000..b26f85dd1 --- /dev/null +++ b/Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.xib @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Vibrant Light +Follows Key Window + + + + + + + + + + + + + + + + + + Vibrant Dark +Follows Key Window + + + + + + + + + + + + + + + + + + Vibrant Light +Active + + + + + + + + + + + + + + + + + + Vibrant Dark +Active + + + + + + + + + + + + + + + + + + Vibrant Light +Inactive + + + + + + + + + + + + + + + + + + Vibrant Dark +Inactive + + + + + + + + + + + + + + + + + diff --git a/Tests/Manual/CPVisualEffectViewTest/Resources/background.jpg b/Tests/Manual/CPVisualEffectViewTest/Resources/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0fe64744a86cd606ac8477e18b2772d093dad021 GIT binary patch literal 191942 zcmbTdc|4SD_&0pb41=*V7;Cl|+hmwzZ!BZWPDoSPl2K%fkQzH<-z916OA?|+rQ5!h zT_q%Y$x;dJckk)`J(UipUVM~ z>Nr(M)6m?C>EQ0*=fCU2|6TG-iKo8FfSQ@ssceOt-wm(-?SOb$;l)f40>%r$d0_}% z*xw%L5O@k^*ndC&eGR<8;0PvWBnvAWiX9AS<$>TZ1Om>4U}iq}H?S!1cZi9XnNJFD zfaJGxXORv>t3_v(vdS1Xbqd&zf0kAE2#R4t2?}9^MGni!V-*w$M>URVYH1r8lT1v_ z%q<)oPdYifoO1Q_I`4hKhvFL?awRnEYIsC!Tzo=eQZg+&CpRy@pzvl|siREBkFnHL(#Ce&RrSM2T13MP?Kz?bpXjZggR%ufw zn~b{sX916(ag?AeVe#;ngQ@*Dv;TJ!i~0XGv;Q-(|9f7ukP(Cgo5Re6M1n11L9(KF zP$)Jw6q<{hgGUIB!3d!R1x3UU9}*Fj5fc=YRF;&HlUGnw5I&@$s)AKLj8(w?1vi1Q zu&|(5QT!+rKUPFg1pEK_=kHr!mejv95C;MVj0wRD9fv;9z6tD_j&k-w@Mvz9^jr>M zHO*4yB-+ADvY`i+!xrul&FV}*bz4lrG>VvdI_U^xArcFrp~d0}VMzkCXjU44g;~T- zq{PRuSuDEGpAlk*rHI$8v7>lsIQUj|fcV3_4u}9Tq%(V=@c{H;N*iw?iM#tFw4Qb9&3mu5QgL z$xcKxu|vs$XMs}%-c2oA&_Pr2L>RgQTB35cP&IhxZ+DO*#$c)TFjl%D52sG5RastF zXNz3`2g-xH5;{WQAWuLWL^3m^9i0$t#$pQ(U8C|9#`Qu-s%Vj$f?f@bK{uR)g-*b< zZQ=Y|#0I9dLb9a@UiO4Y$BxQk9 zVr#zL?>0;7b$dhV>TCvU{Xg&N-7yoFlyy~=bzEx$AHyJc@te7o?9uE*> zmP%lTFlbh02+a{NjF7eaWRK{B(Y@}-%5mnzhvHr1N1b zbkf3+n$_+aq<>~^#|N;;rJ$Ba2^{V$m2iotw)ojvj=(^gLGa)4^~Q@IY#_UB1!xmN zM0WTvTqu?f0M zXQ++0xGQzyWBp)m{RGJGTLpruNoR&fr_hWV7g}y%1csI39H(U{V=4ebaWi$Qf&rWLv?>TNt%N`N}_}+GFY)CP0;MYfXb;39R zAL6ML5=h8O&m&4A3%PpDP*_-pJw)ihvZtdH%*v%>GCxBj6s|5YTeB{`8lEl%YHkNK zEGdMBJkxWbTY zdA&OEalJwUiJrhXC0Y{QLs4O1X@FhK(r|)8KGG@aU4CUtjkf}=7u_wua+hjW1~k&S zEu6*UXRr+93=R=P!x0jU0D~WV|y}@X;?@g zcCc)Dm49F@CAmkJ4h+f&_0tXP>m+KD(Pmp>CQrlR9I=nSl^0$sU5T`NAy)Q7c&$M7 z2Wh8iCM7;GsV+Rx{aX3DshW5~;e(kws`aRNR;5=7lOj&CMPrsFUPfz&!hO*{LOcW3 zUZRTxckkgYxVa>4Sn`QUujTb+?omr}+Y*O#Hver2=FZhE(uyC_^Xyg1^RScnbkC~a z?M-@2N<6hn3z+szI?;dtMTgUsnGmm{Ssf;B_qrEK1}RWqt=_ts&WqM=C%9pDdktDq(KyMAQLVz(q)q zoB}n@7Vbx9ftj)R(V65YsG^SxIfvosB4t&8W}J|Cge~l0G}|LNDq01yps`j4)hk#y z!$Kz+oSJk)2UtQh8J&qq&gLDQ0jg6izpI6`elX4rxY?;X9V7;zdS` zg((*t?&B@4rM-1agPBZLYlUeXp(vF7&fm!`4c@bhOD<<_egvCnqf`{e&QkCZ%g(m? z(^e3KFIv|ofva;B;4}Xau%w-gN+AFghb(Yn<#CP;g4{~LtEH@c*x8y36PYRq)c#oF zCT{W-wXxKu5-tYYr89T#(%oZ;iMDtHIty3Cm>LNkEwxbW*c{J7pc>v>w_bSJga0}H zLWym4a*Z8IwO1K8#KIJW{Xw z7b%mufAToz_!@t>Ig5^8FUt-cs}}u8`wLwdH8}ag1{*GUgHwndCA|xt^GIGv3pteg z!2}~HWyNzMB_-F6cN9$y<>`q4misnw;&zXGK|jDu^&zc&5arGtK~fth%A!FGfae0> zVq0}!xOkG%DPK`tegrZz2({e-ftJYP{dFt;Ai*lLxk>m|DN-8t`)!MI;VqKMf(a4jYl3<^d_F3LTggDNgRAvXBJERwsS55&`+Z-q4vjX+#~#2}lX-o0Ji$ zAWIZ`xLnqaYhWvDB2NhK`XW8(Dh~>?9SeYl+J)FdTe_1wXK?10eE_v7A<=D)qgU*jM(!-;FN@vD`Z-A!}mvSkC7D^^2N z0+2HZwwiwkJd8V&Y$$jQ{YvUM!>A0TF+(~l`xWqO&sz3iju~B{;iGYBWu}3cciF0x-W*wj#?ZTM8X_L(AMqY?8ATN* zL}^S|rZF|!LJ%~`_5!hfz)||qTwR`o9yu(uM&&rjzk4Nl?t$3AZn5arhlQnTRe`j| zL&OIfhI6%a7-C_-h9EjKDhi8P6#fJFO@A2`mL85-{Gi@@02Im*&ar_=r%`zOeG)#tT2QV-ku5=QJt@GRSt|L_29fQ=S7ZmxI9;fz_6qgf19h-nP&M}U|K%+y*m*&ueE*dtxY zMoee~`xiI!tc6t*&0)zk)guLNCFAQMYROv2ceRwSBXW{wt8LxPlf%n_Q7<=lrK-@y zs_b^hKkgX{52iu{a=#IxHM)kvu(fSYZ6+=jd}hltE%t3WX-S`>YUd2mdS5|$0QUw_ zvP&JLS&4pny-Mkw4<=HQ;6*rC3&;`uhr$G6DZqp9AAJ}|(|dY`iwye*0v(wYmoOvE zI>8uQr8NKCO{usdx5IEDbf1bOQ~`kCiy#HW>VPB^xw~=UsXb#;;*40Q+s+^Cnn3IY zkf0`B>UYHna<(+Uc`ca;kpF&_Qamh>I4qUkQ32mVQlXpcpkfI3zTMTiQat_wXLnB+ zc}LYHs4rrxVp>+mZ5Nm*$}T|0omO$en1iiOHsc^PvvbbokOmupH8;L;4dXY$(>x@! zHq3lN=OhlQ6>0Chp(d%+=wkadBT5oFhpGmAwoNMC_>gMtnq{?MO!T3@ul8(IBAu&) zM;hY;UxA7mBun+UcfL3swnsB5w9b|YV1n`LAQ)UL2Y&F32q4KMsS!9pSnk267M_)= zjSGq56tc36{1{k>E?Pu17}#gqUJC$Sc-<25d=wyCViJIZ85Rks9!qHi!1VfXVJLpW3OVPZ|Io3-uO2axyAf4r@*|0S9 zoTsAk61z|}1d78sv z6IIKNONp%@AK(Z3n5ejv+1rcY$t;g1CJnwnYKXDYVQa!R9pjjU2I)97WGg63(p+~4 z>h0IV^3<_y5&O4fDy0BeMx;&%OVdADth(g5Z7PtJO{G1vtndWq%awMrDvrsXW&?F{ z-5M~kqAowm7Cj6E!+UL1e;AZ4#Y+ZCUo~Gp8FWe2I0{&iE(wH5{?3c-3Bj~v$EFH} zxp9{z$JzLX$iXMK6-Y_~7ABYn#ebn@rPJ+MX?c4xxVkrvGbA1Tim!*8)N%r;M8vD= z1;yXLvW8hx-8gXSItFLq$0iQ?b^k5R;E9z4ZYdLiLa10vg3 zL`RiK%2$sxD1t?=SwRO`@$8i5dt~OOVo!HF@Ze2Jj|yf-ck2(z{g>qO`rVC9+Yi!! zqe6$UpJYLjr*De~4}!DPum$x9U0D?5!Q({aIFWOGf{NxZg2?0U>}JTODufk8$gwoY zA@=(dpeO4tIK9I%HA^{3Q_0+x_ocJ3KA8@U4Vs#Sdb|lIgz1H_6>usi0{$$QtW3CH zsS_=15hmAl2_RG@fV5j|u>d!CHvp`~!w6(28J~|ia@{DgNk+W{;Keu;J9g<#aPCTc zQZO-=X%`I(8ge!{sZ~?dRw3Sk8$s|hzMSfrFu7ElxR9;n_`;QUNv33KTZvbjN1;kC zsiRjXiEI}Dfhux|DsgBcb6a$^-o{evQUzR3>%1)ZseJOXs zNVlBS3*3q_r)8=v%K@T6y^>dm=1*G$JFj&YqdVu-O=(*xXPHWl3ccG&o$KbZ8rwJi zj_sLT%{NYad-C0OO!#q&UH`22HQ8}9+FwZh9)gdlWLeRF!_Ev5b!>z;CM#`@8MZ~_ zlo}PQ6+x7Xg!H0+e*Iw| zWIi1_vAo)rhU1fF^Ooh)J|g^nqsaa)#=oz2$hE>CJVfRY?xnEeDC0cKx2AXNr=B`S z2#M*Ith$GOVp220%J>}iO1XHv;l`8iPB&bmcyBnLImPryD0nk_Eb+ zdy)ZxuN#hQ3o6WS`EYaGE1xRjwEtppZ|{~8GxLjU>A{n)A02X?z*O!h<%|Ex?yIbw zrR;ZIOweHyR#cBJ_WFr>`#Q$CjaDhQN5$uKxxF>z{QAh1_2Z`iz{Il-jvAtW?Epl3}Fm6~C!t&e#@exmBlAD`k=R7E+P64zb^nu`u5Eo+S z#3O79l?nYcoDyfB0##wA57=TFMH{ZMa8y}lk{4R!Ds{&AY8V9#ZY>r9Nk;?#ne4tq(7hs7N)h(7ApSko3iO21H zVARX!f*BYV0+7*m;JHqKkdkAFr+vM!0KSN|6y{zvj&Eh%jFR($0{v|2Ae=4eQ8>b7 z#B7<)2U}WF$e$Hx-69&|wR27)b#D%WK*P!K+K61aB^!bZGfNQ^%0_3Q>#cKgX;v`# zjrzKoHi`f;C$Hbvqw#I-wh|J{U`2z{=J?<74>)?;f{2ClbGU_?2BRAS0AJ;?7T9h z6H-%Q|B89)BKmi0_8aEv|M7mL+RpziyZnJW*srl26E(WG-(8K}B2ilpKTqbB8c{vQr^UIxTYIt1hc@A|yWvtn z6HLXAY}~ zwh`##)%En;U4+J(7V`Eg+2YF?Opin1(&2XjKMY21+&J4(pwcC8N}c@)K5!wwY1~zlo5G9+7z#TV@iKnucUd` zY{W75;SnE^UDp$gDOw__GW zL2<)DBg&cHgY#dpH)MRTnvOE~s7Us=&r6mig?#0|<7)oqP5#S0g)!hCga?0D`+{(5(ECqld3OyhjtUwzke&-MH zS34fyua+JliJu0)S+$Ur<**DFjb8v7OMPIAfP9Gy2P5WPKrNwr(4dHOJqk0hGbw+} z*|85I@y&fY6QKtmO*caQSLvci_+(J;p2=m715~L-q^%ATw8)wy2hj;QHo9`}OyFQ; zfGnueIJsmcrV`|Zm#CNzr;Eb)jlI>^K@CvK3G*O{*<=1mgP2OXs4~h{f&xA72_39- zX9EZ zZ|}(26X^4|Wo>Z!>|O0@S0xhfyf?h09Q5d$-8ofCRiVKX1u;?zZailcqo=)gyNHwX z1pAv;eZyNa7fij?%$2<2ba!mNR=R16UQAkjbSf|I(n9RzEk#FFh1+8?`kcaVMjl)!V;RT`S*A%E!Uo#4G4njEQRG3Oq=${-M{8v`K$* zbC;v9zYD6HTK|A$2p}w}?cB*VVWpr;anueF9rt>ObAX6H;YeTD8T+e=)K7XLD&#*L`EbNNz)gPV`h z;q)i9Z%?fsyLjjhN5Uy-`+8LqR;T60L&=pdCIoWM-)&p@{I<37-ecp36L@1!)eFiU zetqGZYY(ek?VOAqD}{B6LXK_3o$2duZ@8tGCY8}El|+IA*7DWuuI@%>nlm&i zHipnh09_q|rCBqtwiqiszJkVviI{|Os`62hqrOb4FIhcRgm}72cDI!T zx43?nUlH%UpmOwR?6X*ZX}43Ty$?~8UYc3ixa!9Wr#cfAb_}e^ys0cevoA=|LR9*E z@SKC8Pb$Bqaotpru=FE=!`v7`f)p8K@A3t}LBp>B-wpQ)16~`tl#;4NHz0N3w@4kf z%%Jy42T5%L9%L7x4xnV80pueDN*UZ@k&}3Lz!sSE<^5`RHpaLcq6o5dfar$%bdL!h z(C2^wR1nsyVf4(XTQ7<6Pk>rxmQ_;*8MiIiSPDD%UnpmBstGrGTM)sE1}HKC(ibRV z48DZ{e+2)rYYQY{3;6lyBp>22^tR;eun+|D^)qF89aiOH4vaVg6no#o-5qle?#Z@a zB}e#!-`m)Zf%VwYF~_sLE(!mRu%2&ox^sRq-e*!wh()Xa`b*tj z*HzIgw4Hr(5siZ9@}eDYQg>|b>mBc+Dt)vSeQs{-6|LlnwO-Ci$A2SkSZ}zsj+b&i z4XEesL7>IT7d*$N&|WHSdDSN@=S~l#FBxmf9${gr(u;R|hz^nee35i@=IJ0RDlS9C z+gov>Ii?!gg+6l|rT(-p@_k<8GaOPdlI84PfE6e%=IjXh{lT4I|6d;YFa%s`Cr0~@ zt6=w=n-`UYa)!^N%!E}2_2~|c+uGB8FJ3+KYOY$i$79c>K6B^h;nI~;_4_+kI+mR! zENR3mmhYKjXZ7&K5mP$RDVPk$#@WynReNgqy#%`v)_-{-zPxJC=8r6Tj3QlRF6%Cc z@vkz$J*Ohs^#Ax)J}Wb+eZX-zsCUu615{;tpQBjU9RhsLut~K%W4JL1*(<3NXb3MT zTrY8wQF|xLPU|23Ia1AA*B^qfop(q|TAaLTG5pylGa-XM*hWYB$#T&L(~mA!8=Y62 zGopknv9X4>1$<00HDSry4B~Frq4oWC=5v{2Q>loIjuiHp9OjJ8c*?f2yFBHTc@LYV zXqVsjDzWa*W9NrOss*b3YbP=uKV7)8{%)tC=*m=!H-Gu_CWgwOFuZk59kArmIhjG} zcwSOhM=c0_-CdaqXu?V;-EfTxi2B8Fx`%#PFcI`6d9!F9jZh$|PioX?7%p?Z&eDpf z<=U^4 zEctz=9x+bb$+qV7#4wqf{%DNfoeo##v_A`U~O7- z7OycxV!Kp4L|D7sa|~JdAE}8df^0b<9e)yFJs$$9?I944H0}Yf?otQ*V|Tv#d|p@g z)5ka+E|(NBl(o~GuS&j0OKR;`wbPGUy*}zEG*vy$`jf)aK>1}Km8BfOw1O(o$t}xb zO8y#k(WRX=TZDhZdc_6BF)1D^_JxR2rx}8lF%WNno*Ceha6>p9)}aIH20h&%aaa4z?~;g-szy zLwT8;e$ws&bX+7+oWOoJbEeQ(_3dfd3?)X%DcO-1pFTuszyDkp_VKXC)Ml%<}4m<7$*+wN7IX*eHj0?isL4 z%^Zt*d5L5B!|}Y6Kb!r=-i@#Ql9lsBdml3rVYug#uk_y+SCVTuhad6PDMxzEpY@mx zQ$2S?>%Dx8f1!rll80hW1uBLa%srte#2jV^(!~vz zy;ZONg;2-fY?bW#9q-guuMPjB#5;IAA@KXjqx766LMSDm^X%4zRL@{+$J?#Z(uzX$ zJ1?tRALU%)YN*(hR2V8={&`Y~`bU2vB-e7GFv#%n&##@|%06~%-$Xwg8xA8(&Ts8d zJ9L@-|3Vt!KY1PRWT~J9-^#Z6Y%l0!eJSYI(rX$~AJBW2TQ6f{k~ib>A~nopGqnak zD4(-2ik@K#apI4?JL*g4%aLhA_;}BL4gP>HN}&Y)5c^5)jjVfncPoG139t4fCvQL{ zt2is01+!b1-4cR6TX{2QbG&jbxvJcypPxiPE%7}uUn6J@uKc_%VE5V_uj3!r+;)s# zG}->64k@E>g*e-++9v)d&`wE3JHPdH={@&={MSl;!JezI0?K}L>JDpnU}{O!7l+4> zIa^ft3Viyo!>cU=!D0+Kl0=+a`r9albEnY;)fXQaEop@NpZ~>IXOcBE8%JF!7E3pM zcD=RU*IehpF{XVz|+kl@xLVjYQ7bSdiX!<#q&|b9IKLmPPZnEejC)7CfRk74>ts zdp(ZX+E`Gs$KEOP9yH_=IQFYwh?R>>d*4xQBcA4;xT6`w#gn&H4nmVS2<%DPMVxH$% z;azNw0O#ZI8TCcSyT^-8)B(1hd<8A1#MAtB{bZnvL7TM!{j{iv-|NCk*{%7;T2bG0 zTJW>f`#0P^Y<@}Y3ty@e;CJ$}zGeO4uD=@h{Yr|Qv7IE#)KX>Bbh`WGorzk!St`oI z2&mTp+YZCiAfW%?b|^xsKss_+M$r{;J|9@cBu`l;iu)d<;C{f09~*aLAcqCn(~(pT znlhYbg!W|6S!&SKEJu65Bf=5W_Kb-`tEr%|0@nsjPZ?xNd}fuT4iGIJQ*_jMK=OhU zZCq~&ywH3YIXQhgZFD$wsn++z*qNJkJPF4Sq-3i=pJ4xeMbo9>JqTq z02VNj0&=1Hi$?D5mTp|RWaS%wUw*vsAVH1BbP=BI*fjY327iF|U+A1`8qx3Hf?#&i z1xk>Utkf-^4yG(>WQjVBpB+>1+QDRa#biXXupg6e-;=t1LHR~^t7vXkcrNbFKQG8_ zKN3&Ef?T+CO7vs0=S0WSwPpk(Pv|wfFYl}b7ET}f7S0s5W%Z0+VB|FXzG%ewu~}J( z;n0T2Lck4u&EFsW^SfJLM4g>K;edYK{9yL3Oo2TTF~PpclUERgEjIChbXa_6~WUy1>yN$U< zql}+RQO;>X;jz_iTE8h%-$|UKR+IO2Q&Je)*H4$#1uPW1EjQ?Gu>1JjJl$hQe<>^a zRX8Ik?yUJ)Rqh6Ei-h}i1nU{K_Favj)9ZF;a`?Jn;isuK7|idw{3krWhu8Vuu?akp z&sQyXrps5X=^`d@kAe-5vqIQJ!qkd~y*mMdi zeB)#whoTLTp~cNa0a*#e0@`^Ts_Q3+JS(A9aPMeNw|;sRBJ@$E5KQBag&Pc15cOt~ z!#MZpfJgh4FZAs=|M^7-X3sq*>A4NMA$IrtBVa%aS$_RRu&ElC-L-^K3$2(gf~FWv zE2ihVfnJ)vdr;z=VbIm$A2|44YFE#)pT1j@uJuNI=6Tb=DaWHx2`zJ{wvJsJ_biz* zsW#zD^k6)ase1_ob2>x)zU1yzbSYvR@f{RNB?f(`ZfIZY98&ErnF2SnV-<%D14KQN zJ)dyUSsc1-p_LhwymGu!Y(NV!c*6pSs(P^9->rni6Eq@I9SlWtEVI}&*UgacSt@Ng z<@M5_qq&}~Iwx$D-@YO)pgk55XTWQgQz!fPdMw;x&JFXMdE zzi=FLI4P3hZCQJ7ydah~-4jD@>aTQ_%37FY#M=UeYWIWmUFtDgILM2tC#XVezZJ+H zwFHjPk3{Cgdl2EFl`6+1Pkb7r0%_uiwTw+f`cy~2iao}bsg`Ex*$4!v9u0a}PBxyY z<}67<;iLqobRvQV1zZcQKs<^iQ9Y$wA(+N48hS!G#oXzrn5v|U6-STUVnq>=PZk}ke6FNW> zutlzrp$|_&A-<(Y{q>cOh=6_IZGx)xdV&Ok5b&E{grFU3zZ^#S{^ zs0r5oYvZz?YI2Mpd)1u9iyF>{#D9xT@VFbprMZmGZWaym&Rfg6TyxrFb5Uo#Ehme)%T^PaB=lrPAhnLp|Kc27>7UEXveX(yVEECU4P4vfb zTc-Ey*L~$vwEj#sl3iQaZm}s;qz*SO%jnZZd^ZgIgC|EXEB4?@uFjlJnm-o(P)lkm zI$LX{W_iBltlOOmglQN8?*WLgM;rH{3%|Sd9GIf z1e5weVp&W8y51sRMSty~VxB+$eyG{_Yem#>@xNas)7iewj?&9?5Qi$w-){umy5e$< zB?4~#?wk4Up@N9RjVdD_-)+5qZ7=oMr_|+vj30}PF5G7FFZ9yoVZE!-(Yw1(7|HGr z!{M3e)GdT=)2^6XWKo{PD*4J<98P@YaeIFFeilc)MZ%iznIr^{&xd$ zcdllgQW^~P8($G+g%);KE^O!Y1&-d+dsX_{X!N(a&%aVu8oYkKq5((k<&Vz24=U2uEl)RfHRKVb5!u6<{ar*RB z^FL1~l((wllpD?Q!4i&w%GzQ9*W0$f+XIff)T@+{8URUffZ|y7 z7eE^urI~bh7b9-a&1YMUvAl$-2k>DP(V|*W1@`$AKFMoF$;OF8b;lYV%BL2N{u|~K4x1nrdcLaUG08y#O49d zw4DBy*y4c6Oi;;9^q+G1H(44tmI?}hA4lzbU!7|wLUdH$G! z(mV9r%lLsy23);xRrp^>vGd8ce_nErOtyAO>oLV%rF%zZWvR~V&LU~TLq+EWCy4Uj z(sp|(TQ_f&k^U4&YR%(MZrSM%#;o7ZNiDY9GTn?hgR{IKeB4#QQQkZgcN_ole+Fb| z@L~T#8}|E2dO2bbxzk&;lkR)#PM=8iI{4@o=2FE7QorR-na~3db_Le844=e-jyD6` zZ_979XC?0|=p`I7nUrny_9UZ-=XQA|9Gahko@7))dM*>5MpF~m>sKrAj*sq%aD=jbGGpo- zMYCQVMo6%ItH3WD0)UFQST^HE_uy}#VZzrYc{)t211*{76fTX)jLl0IN@IYwbhLI`Ih48&; z`eudm(zn0zQ1e#{P!*pLZ~Aniu)*Q)>vh79wd9qApuQQsO|h8XKk$8oUa*}K9DBGW z|JQcInvGg$cb{{NmSp;$8y2Et6kmrYI@=Xb&Md~{%4^PMy%z7&p0GI~;OFl*-6{Ma z=6v$Caa3)n@UQ59@&oOLgNmBY8EA~Vwoh3#jcg6aSa07P{JEC9z3SdKbWB@E{xPHF z4aK9xA+7S2dm|5iQdm5gcJuHYCHLrE(=_@Jqi}@2wf=;%@ftDHpzme&Xfe{<>$b?% zCibZB@1P59OcFQu&?}uh?N3F*lAb;HPaH^|A;E&vW-}z7zW-Xamo}Zh*3(>Xs~mke zAc$!EGdMk_@~Hcpx$+x?G>iuU%g_zSCJ&5b{wWcwC9CigYZz7bEyuUW=nesUMc-;W41 zet7A-j@8Mh7pudrv}sD8M65uME`MhmHeMa0T+vo&;8+tiie#=#iB=d|eJ@VcgGSH! z=2aWCTXqWcIDb$nF0?5K7-D6Y{tNM}PnK@lpmofB2{Y$^75XzdJM9a3zdGgl7jl6u zsIT6*DZpFQ{>EA_{-1}8hcRQWGgeowdtN1V3a86zvV_`5?)76x{Orx_nPj`^c^G%O?UjyYAd1ix233fUfjK{84i0 z)iCno_@55=d8KyIP+L0Tf&9B}+^q!M6&<)bP z6GE)gPqx2iMX4&^7XnKZj(X&@Jpj9@%DUwq{s8vX zNhx8j*W%CH?oa9FdrL(*h7|S2rdOK{Q|`YXYW?t9NDY&z`F)W@uu-UbBARzzW_k@2 z(F-h<;QR;B&$-y0nfK%t(?d~o8a3)5!+#?3PS?;C-$8J&;7`ISrHD1=)X zI2i*J?ak4ks%-_wS*rkY&V&O1mbssXHqh9O_IRuO3Y;PfFex3#cAuuO9ikvyp0CqlwT$`4~#E+9FK!p zSz06XyZeJ}inUnhr=)}r-PR8b;$tEM=+wNP3q~n|a~Dg>_KY8< zNq=gA7+wj82#^OlU77QGbqyzsEz{N=Z)%9Hei;^m3+|%_J%Z;86P0+0+b4uQuGXIC ziwPcplapCnGr9Hkj?B5{hbuP%VfND zW-jN0*6+HBC+)pa%9kiVD~jA=e_3C2@!)v=%p`#9<(V49(t2W+xN-MrL+izhcYQ*w z*cl8yrgNFu+)>k8-)YMG5-Ikd;y*clRFm#()|}cb@Hbk`n13%UacAh(*zFgie9Fh{ zAB=pIRZ~t~2_iD3>v$4!-x;<==1cvug65!pd*tr^Qk7ZYrSos+9!1E; z*Po9;r*VIhv5Sd}5uKeVwzuxe@gqNvw9zrmH-2dDy1`*EGN#qv^#0K8lMUOloAq*c zs^T79VLTLk(X52!3r|`IY;z2rOqD3C{(!4KUPm#0P7v{J{OWj9AV?^Gu|4TMZGvm2 z`S5gmWw_yxdG)+ct|SYE~`*BjY8Hr3Vb zZpbBe*u3y|Z+7*7Z`1^GucFN=Sfb8Rx;gKp$GIu-B}E=y;>uq=r*^G=mYy~D5$ z$E@2HUAimIxmWR8@KVS?_Z+6{$E65r@V`gXTBjy{iafNG9T#|yl?vm;ue?go&Apg%Z zC5_!Dib|(tMpRmvO7=Y3)6GwMT{(O;EbvZ&M9Gi-qZ4@#RsG-N#oK#kzMiq}vu%9w z?9}m)My3p-ctp|5){8tj?V~3?m)tu1PkhK<=%LZdaL6gDWhO$bM*q)-mfo3!{MTx~ z9q!HAG=!fB*-U2HkJ#<09}&9m!M#JUx5*7|9r$gKa)z&0itj~+Sd!g!OZR8C5!r7r zOkb^hr}cPNTvl6X7w?|4aP@jN`BgTVi&ZkZxb}y&N!0hs=XH(S zVbA!!=skP{=lpP9-lI9K%mg9pr(3&!)b(C($jEIXpfCDiTV@D}DKc|^s}A)^R1M=m z^Gx+CTM+eOu+t#RNN^UJ$|2$=<;rx-55l?{aoEBDn|W}u1u|rYG>-sHas{l#7S`eb z0o+H91I;202$R7Fwr~MD#O(`djKLmK`TZa%@|Ykvr$7UT)E3==kh^iX1=SgYg>{27 zhoh|!INQhGUkTxuf&OY5^hf0L0V^pA@HGxk1Ngi18ck-xbGzcCp4n|qZR@Z%(uh(9 z@6bJR5Sj|QkPS8m=J4BaUrz)5pM)sq1jdClc{ z5PV+nnl;r2n2NkLP(2YJj#?c2p!q)C=2e;BF^`4%1_O7(1KAYJNu?mx8SWR*#;8Hb zag?>*&{`B{(y}MhAoE;PBA1iAWLZfntY7!g**E0|lI`{Ny&(3i5I(R<{YeLU85pW~f4P48af$QHL+B54z zN_gVWPc~T0KJ~TvoSoX9ECI4_DLGt$pX!ul_7h!_+LL#Otpi_6+yr&Ls|qUpzWr9+ zJJa`3*_z&{;G3tS5sb6b?_=#`D;bl4(o;9*Ul`ji*p^P9`mM|5A)j@c>I*!F*SfptjoshhW(q#}n~ zIx5m@r8j5VO%FxXs=2CP`L6N7iPvOVK~*hlXZ1|DVHE4Ap27Q8*N7ZH)`c|5f3gGl zPo3^Z-On$)q4iqPS^p`A{o3Qkty*WtN2l)XcKaPK;BPY5ZTi(IXMyau*1wegUcmfQ zpnBs!q0yTX_TCPmaTT5yJuzaTAC9{|AM;FWes?wh)HciZJwpN68$2Adf$wsPe|cwz z(iCSJ+jG1`E2MbKlwHz=n@!BOUd1!iBZ>dKyDZ}V?b61R!w*WX-&WF+51Kq;Tqjq; zpB)EBm#7bu>Q9bD_VQ+IrZGH)-xgrB6x%SPjJlKuh7ncrzh(EGc}~s#g(#<@%Fbac z?3S-jlm~5n)cKm4zPrj6^vHivxWOx+$o|1-@D;)LthhXM5cel;{Xa_Hn-kYfLLd8u zCo@+(4^z(Im*r*ZxiowG&T~ld>vqJX{|9rI-E}%+av`pLYU|(hGpWtkoxu+^bT?1^ z_PWa<8tEQ-eDf+2vW67~BKQ$57ygmR;yVpiSjQm$Rcn-nR@Ir)#U| zUSAS#FdLA?aR-k5g}CJ&AHm#he{seCxo7LMe4mP6A{PEJF+1}Eo#+d?5K^6L5_OSN z%m3o5{=*e#KC;V-nB-NI^R+g{FTW|Jqf^5# z?Cx$kO1cRieq3^QBMWz$c%Qc)+@UzZ3Iu7f7I!J`MOvH|cXufiDNr1OTW~GG zokH>8?he7Vc%k-ezrX*B=gpq%y<~H8a=2$_=K5TN=@qII(;_SQV6v%mD3MQkTNM}i z&&UDTD|!C?*S`E$as+@a0NTq(@6MN&Me?+w3vX%LyaI%@~v3w2fEb@^uxueLQ;@>fZ&zPrU~}eO3c;Yrip)=n=7#z zS}5Ko)`9GlG}YwD2G^?)r8oP}wpI;|0h?fv$C*N~G{nmstR$JzFTz#Ld{{ffK4+X6`I8)k0&d#;IV6aDKjKTn5<*3^L-o*DN3;%RP+ibk>5pU0WTwQZa5IBZm6J+Il2hrE=98r&@jZisLLh zlaPHzbwsfVAAZ|yAngag>h0j+WwUZ|#^QB%C{rCO3Zs2HP=-4TcM7~Tyd{K@=r6ij zvc7DC2s6aKZ5;Z1ckRqoW~7GT_D)5Qr43unN-dh3EqK?ve=L@PlG;HwIY`Y2j z;-#bvRUVB?liRXgY|P4jI5jahguB4je(Pwo6xL?8sf@4SyDh-10r#;E#s@H}ED(T$=WBzOVU3`f z%zRxUPM~70p7T$|N*RTHEJyp|qz=E6A&KWA z`niO-$U*9_?ZtQZ=~qU~0|w-brh^jwTx2BpPUPXWXD*+Q8z-Nf zI5~f3GK$2W4wHI;hZgL=SNBI1}zj z@F+p+RD>zd0Z^;*m0KBe{~){AH3M^$<0mfu=(j`p+<|0o zZ6HDC3ZgpjCTnMFFEs(XtP*VzJ^oLVaXR0=V3oK|MNhef1|!eY6pystIthkc2%8@J7!1!%&Vcoes=w9Axo30ZwU#b8i}e6m|^#EzT(z=*GH5KG8k9!BW1Ne zX`l>L@pH`C8Um%F=Rv%ms8D|CW_un&h3-xyyEKmx#vj^~g$d5b7)K?T>!*nW(UgO@ zq;cAV32spS&dx7dceLene)7KiWAyJ)%JB)HuQpW>uBy`A_gTGtR!ynSGZ?;qYk6I(9U940PN=3XN z!26J0FM5lf=(jtsFd}%%s<$tOH+m8Pr%~_BWbzAq$Ll)Un?vSqg2bsC#hv9gvJwjP!criw7b$)OrE7cSmR`2-F)We z=fz!A0j8jY9m~gB)Ql8A>pt7avD~XPWJvMzu~ujlSFPL_C_Wr%UU*WI;Vd^G^b+kE zicYI(Sl;(9F=ftnIM?r{`8~67oNjXIv6HTGRa+l&_#&|`X&MZMuLVcrqnN6j0tM1) zXfYwoEF+1eB14non>A!d1N^;3c15I$p+5~4oSW1QrPv2mWtqj^GjP8oBkXq)515~~ zf36_5mSxwxDhA|1GSm}i%Q<{op@H9iza7UaXi}e0-g2wj7$vJkh`V#-<`5J-9!#P7 zR`=g1@~s_t4r}ip4il3)OOH(>ol$_k;HCbk%tBe-iO$+9B*5-6qj!D+y++6CF?-0` zNNYShmVY0AP-7nBpA2wqcqJcFCqAvwU0;d%`~3gSKTk*?Pm6nIhlfTM)W4MsnSPOY&| z2GA0uH!bXOy~cu5;Kg*sVDtr|wRRkm4-h`1>jPMae@g?Kfc8HEpdfs-sXEG00Kv)m zzhnw9T(H>)ru6!kRcWpPi-q0K?4`MFK|}fI?C?1>Y2tAjK{cnwyV8tI@}`cWi_|ay z!5*eX`=rQiX`BHNe~8AG(5Tvh?IfJil-|&W*+XSZIYb&4ASSx=F$O?nAoJiS|1v(n zLdqer(%>^Lrm{ph$d5ANm-OScp?uNAfqJx+O&Yyi+rum7L@egGPLHseQbW8zt?p&E zyo%;LF@(4qCTIZLk9=6l7YPxDz);9Sm}u6SkDW^Yg3LArdX32AkZE2csE8n%3Wm!` zw7Rm|tj;XK!j_+E#PCnfTw94n1=y-6IW{7bblAU+3@9?Kx6c-KgtMl}l}$#vy|AjK zhR3i|(});JJa@GLYZe+7>5XEEZ$wE@~Rcw^5Kvk~3{I zDmv8Vj%ZpQtu(9mQxJ!R#cDU*bJ*lx5dKIoX^F6!s$RKUVXQUUlo>#xwH^qc!E!v| zWGg&-E^j>B^#+_IcXn1bwORsjVzaHS#fskc97re%Z$(dQ9PbL*SkzB{P%k;2RVFX# zP1p9`O~@fEHoYm$MR-_QMJ0?fL3xs3nY%i8c|1R0Ub8_gmn*2%cG!ZMcFj)D86Ov4SD2?=Vg3p2(gMuKg@L2B2O#3 z1;HrO#B-hG#NCSBTR25KlgV@>*Y3TcNwI6jTMF@D$xBmrh1ahQ?YIlqDaBa?=1<<8 z4IYuv1zRGed~M)_f<9&x>l3X8%pPANu1c?dA=uqo%C`Tg%lJ%97jT^wyWeAv8PxBR zrmkuDN#=#KSqgYN{CNL%od91sDCd|rBI2n?kMPrAw(nnp zLolTuPzw0i3F80O$%C^`WcbP*R#a(dH%-}*OFFGeFh1z}G@OmOg<4PQ@7(D?6@|YH zXVPBrMn;b?*U8yReVZ=NO*vD0W9Mf?R2qJb2p}H%CfTIzAI-jZWOOD;ALjUltlDsD{hQwJ~f z88$tHA}=qNIc~lW@{{Esqe@$Qz4dMTw#3V{p-uJ8 zo2=tw*0^0WuoNT&Cj8#{^^tl9M?CvE;(4*5AGJX8=qS~C=|yH<+FwwYE7rE*TQ8l?$K zB^YL&uV9~6I~o=1)*JP>G1qfWJ6p`1_WT8*&1PwLRWENM;O44(0iq$aCVNtz{{ zq1N&#iWQwwt$-V55A8RTIK~QgsGOy?*{;p4SE4P3-cd4K5nWo4$uAp(>G>#>lze@j zzgjg>DPFRzNQ;)YFZxEvd)KgDnPi2JC6?I9cj-%=Y5t8^TVWQt`so4%GY{F`_D_`Q3eS3><>ah7iPAki5`+GPO*zT(MTwX7;St9> zFOfrxBemy(xqX-84zeaVRsP=9%in*G9j|5dh28d4Su9o1Vuc9F?zlWz=A*baMGreJ zMh*HV;raFl)0o{ab^2{PkNuS%Hj~SW-|W4+y@2siG#kM6cKP1^3ssRosERrOka?Jw z7)IatJwTemTsj$AVK$uk5XOTxbj-a(;k=5E%v-fZ^K#*(QpQmMLA9 zF3PK&U|bN;@cEvP&b$+Y&nF+OHf@SOg}NV1MhzHh8c(5y0cq*K5+!{jC_MdVZ!on9 zmTo@26vc5&nXMkFBI__AF;I6W)WG@GAUj2bA4(H3ea>a>yTFp7()((kUXaHL!jRtUV-nf>4^Q8b`m*%)yG87d}uBs*F2QHp)HY1jg{b zMs!K$%sO&vQFqpMcD1KQMPO?yKefho$sj@eTteF`zNu$_p}4F1<+UHnFD4PFn9}@5 z-zNasqld>tc9bj#f~-h}^V|O>l=QJ!=!DmuUGTbb7$D%wPZ+< zi9n)5yV9uCu^JLPHxmPOKdyR-%Y;9YXjbGQf5hFXV%>$2Y-C8*+;CymYMt-9&E7iX zP&8|DM*P4PXEq}g(?|uIT5L>hM}mdV zLSTxR@!paeWjs4BM63-p@Rj#{07vkLGi4dsE_qR8E&^D zOTy?URbj&Xh`^gOBGdB$8c|)49Am$0EPy?vVX9 zzED}L)MJHd*s3J0`6c*#Ig2d_pPiD5`O!4*vW!a&Stu5OccPoaoo8Qw#C5i8{QP7Z z1r~`_GiQ;c-~5&H;JnUHOTS)s$oi&C~9@mw>_P`k~Cp-I@;;7w5)jLpNXuS{d9> z-BGq-?WFN9=&8o6A%VsWHd9jch=n!R6DiMB$Tg6%-m{LKan_t&6kJ!8Mf)~{PB(86 z@`WAx9T{>+M72p?pGafw-{ynrZu1pscK(9M1#&h`XIbSsx@~gP{SiYficbADM?D86 zatBrgZgKZ785g{U%%b16xABb>7dtUYk}lHjUN5fciQ6l8-U+zsE+OLY&nT_Vx0P8_ z$ZXh>!iIY$#jmxrv;Eg*$jSVl{++)lX@AcWRt|9|XYib4JDSpcVZLx6Vc{Td82ipx z>Cyx>d8j{(I#q;YDd$fn|3g;Ug7o7-K}FX5P^(0eg{Bs| zR-fs}Y-5r26)qCo^S=C-hYI)4c-6XWIwZo;d1h)1mV4LMEW-BJtF(2Pcx0hgOg zLQ>RfOX6hGY^>XW-84AuCOal-`@N`5v|L799Y|{q(DPd(O$cd%z&bvzXjXP9$^BFCe^?t{QbqIl?LzTU3g@ z8C zS@RC`I&7U2=fc`JaJ*5l=@E6lSu1M3=gEb>^17{UYHsFB-@QdD6+A_(^Zqa@HfB&@ zB&~l|+4r^7HaBhg&iDZc3&bYF9rH;n5rVBngHNZVTC$m9Ww_{)GoERgq4{d=d!>>i zRLo2GzNheBm#&Fpc~e#DbG42G6+}8Aq{ZGNdD8v$Ri%TBQez!|`hsqfBg5C&K4%o% z-4|O}0;Gn5qY;Ne-zwxtHU^x}cT{7L&9<&IwhHL9VOP2Nq^sf{Ve;Hn?6xuV6ejPG zs-KUq6z+-DzKciWMqyKt5U#~q`cG@g3yla1m5l1vs$`w@j`FP1$n}RHJ`kC@N}LFN zrwo|bPi<7LIEqeQTkGS@PPGYXZl_IjTl&K=6AQIdCe(70)SQ(gR+}2;Ad7-Qu1&8% zPgS%nRHf$}O9S3OH}t}16g7o~HQbWt?g~?&xJfR$7A8m7kB^zgog+(C;V(ffKBRdS zgB)H`-hZsc+f%=Cxp1;Wi$_=U>{HRq9?W%)QC=I~PjzEw-Wp zn+1bFKFkYqj#<3$%AiQM-xUOiV9z5Q3zo4bXNXID{G_uB{i`O{4$6Sy36Gv99|vX@ z{hzLlwuaod#S-m3>NdSUFN{5^+2C8eVY@z6I@(j3j(zlcI*}{n8}FbaJMtG~8{}2M zxc4(*BA9aY{%I~H=;|+M^RML>ECRz;(?(m%l17!bYBMl(~`uA7c;POX(I+ucb+K z{u5No{`_|@mA@eWm|#B+fCui`djY2ey#(wwNrxY`Tv3Q-VuGpEQ28j_SfR)Gkt+K%VjPeRu?{5H%zK?>~ArsuLiuj{5gB6LWwIm@e`Ik2Hn<*kH93 zeay`Na&=tP?XHmcP5EHW8_?;`8PG7WT^=k1(|&s_Kt) zy)T=WtWq9Yh1udkzaH=M)vjC5Ff$9rdZk35f}U3_>x{e3>r<}zD6sAYr(^y`p6Z)y zxVCaZBd=ne>VO!4V3~EC-65OV^D^M>98S6yYF*K)$a?Ef&tMcf&;Tfr*hl<1W4onI z*h)YyHJ|Hul}g+;1&~tlZVsW?bb*5U?Rl9C^K*0pW_ItSR?Ap|R&h&w&(g%=pA@HQ z4sbe{+Q`&c>~@ddxv+DUn8jiiXEja-ji@E?8@1KG6A_-_?`ES_&AZvXH)I?MS=lyfOPO&d2Lp>r$NOaSMQybys+H`&Ns%}fPhXZ<|f(g>R3QXwg z%KOq!Jeu>7=bE)i_SS*Qbo%tyXJqshPD&5A646@oY%YSXgIHFs9=^VxmA3yEG|Z+2 zGjGuoEXTY8ydLg-J`}-16)!PRf(PBjf5kWq#%nnEZUFnZeYbGH!ln} z;9IaA!F66@$|R>N@z39$o3G>9zihPv>>y_<|y{=jWW6O7UBMcG>_F>zC$+tU%ob)EY;3)} zj2s^4wOd4q@I%`AZ~^rEioer#@23nSZtQaG^IZ-O!cR3dWV_HMl7Mv13#jU~B<(j2Snes|X;P2(BuZEnpt%ywWU^gUj8g9welRx;M) zIlHwyCDF7zPA3=lB%rrh+3i;o{}=PBSWLYEkydl`#OXr`{I2?fjb;M06~t5@zK2J42DX%et2_TZjevmQg+HC>T*c99%X=v3#q6;!YD50ebwXQd&LS_IKgTP%v6Q)}60b zII;FvPnhbL1Em8+jXMs+!Okjs%zTviSzK?0d603y&28yjZQ6kpT~4#$bb2tvIB~r7 ziRO3A=~anwjN67q&&bV_O+jT-(}y@EJv zgka^Po3cO?gcH9291^Xnn$j+dH%xe!`g`u_6}y)jjXHj(&-2u!j3r)0bmB)h)j*Zb z2#KaSJvXDwT+jWoiIoX&`?5)lbe1jgFi~OaHwC{>3i4oj~ z86=g)&96251MN+#MzY%>bJ$6Oa*_(xgKs>pE_GN6H2rhRqO4w@%A2FsvyN?TMZ4-H z?s0JB{KqB((RVH)?$nxr)kXDF~v^OZQ(8g^1Ws z9IHpZyFxBgf7VLJK)yCE}a% z{dg{=;eGVaGD8KeH1&k9PKDWE1ZrNoG;2Yb?ELp^G-Ixy@p~NOUAJQe0621B=p3PN zEqYa9A}$w^=(Ng+_xm&mjV`FMdupmUX0#EY67Ir7l9Y##ZfutVac|p7I9NT}$26{& z<;f8#vt#Dot9j{StCCBTNW)owlO&x0I)RJN1wx4i(w7gK1aaVF8t2!Nt>wGk9n`QA zvoEXi;w`)ohRhV=q`cO?gqif`dUH)yLBSdjjIY@dR9H!EvP1{k^D{y6Y}V5f9frpC zyvh{l6B`csbfWGbIdRi{Dh#;@+8DLSTgLL65SLfjVAevs3LO{o_yT+nhZ(@o;kyyP ziV`}x_01jP#BgJ}4yu>DL$K_XX_h8a}$wtnIc=L(#hL zH~JAo9JH=(-3al8#A_yn#jv!E_h<-buuW^7Vi=7QkDxT#)7O8RdU%n%jK`O+-~@{ra3tv7}VZ_}p2*Vmk5#+_^p+J!WqE%_e)`t#h-EnJBb zFm2Ke#s?->Y^z}qVt`&`UMO+@OT zhrSbOtPDkeX?nAKv~hl5aVEIcFHZ#|K4}J&*NIe6x4-&pf~W$fC@EcU`9YQ+{evkX z3&HqdYnm?s$9mLCThLM?2xd6#3b?P;`R^%S?-MAkcfeV4^Anw^?JB%=NpM3wA zYyT-O`BDEV30V*S>3n;dl{hrbwK-cWc9dp^V&;1c?&BbT zhP_d>jv~=;bf#WM`*p!>(>M5c8-wi}882~D202m~A>sDAG-OdbMW@Qza~QV4)qEJc zFUTBrjd2T++Sbk{Ua!ve3Mg=i*S8FBPSr;4QvEE6oNW=QI8Z)ztZ3uH#hlodTz2sY zZ?#rXOuZTt{fIrNA@(N%E|JCO;1Td@R=a0uG*6^pm38M>nGFIKJ{5hVss$(fj9nVl zYmCO3FKjc)R^E*TzLlJ3-|LJP@>g9m8B!^TtL;8xt~-H=&dlr`Cl%b;gdX#WQE*ni zdWR?lNvU~V=r}mjoN6za;&HkUKhsx9{cyl=AeHbGEPUKM?$j5#bW%e5pmG|-q+e=L3ftcjpgbc(F4n;Xl{9>Dm#+ zIsI-^dXNLX-N5+`N0fpk;0_uR{}I*pSWK{)u42-~3U|p!kun1lob&OE#US=OLdnwb z>ipA2?xnTb7GIm$G`bAiUE?S=HZgrrkSU?Ynkix9n#GiO{6~$pHWL%LoZ2jZToie9 z8CzcV?CSSYq?Nn2PhCTRgTVamg&XE9g~6@{Uo5KLB6@&spu(a%*@D4X@3eDaEDC<* z4Beih+Ckl~z&OFGfuKHQJLdXcN5u1>SsFQMmgbP(d*U|22TSG=?cqO@4c{}FymIpX z#Ex2cEM5^4Yf=3Y_=?MfzsJQK&Uojm_mhgV6cudWvOM4>O`IQplW`Mr15Qf7I#eAnOe*9m34TGMXqZ7j2bs2WZ6Pw70T0c^6R)LKtJ6fQ(+uF zRZsq@+cgInyPGOClVY+_qRfHgTffE`PZf?XywbLOW!m!l_Sez+yWWL?Ty`Ue8$B@B zK7NI`3sUMWQnJ(D4PpwWPC_99ipwZBFo_vtCj zWK^PcW%&dw)vNgNd-3e6uD)vKX71CrHx}XRc~>HZVqr_8mjtUTJ?M9roHdu~&J#sHS+jh(Y*9GeG=&!oLI?_j&QUv5|t^5urg6g8y7{oiclojPRVcmIe~&3*;z zHh%ufChX7&sHMaQT5)HHdqMdWAorkDon?|18!hjGCI=p8DxR@ow^aGvP@)RNw>>TT z@>1J1Lql1ca&g^b-96RPo*t)fA2;DDPR=^Yr&dO*oQB|*aC#13t6NSZ;e$)&>!Sf3 z|Fuu;WH%KoX{%$t>sAilW()_mM^K4l))sC$e06h-tm)#8RPB`wGmg}U_coxGAc;=) zqt3)KI>bk7wiWmo@mEuu{q>w(n-CQpZ!@anm@{+-(p42Ia;s}qe5W-fEtz+RtM?Jh z#c5Z@U`F=q&-~AYj=<1 zX5$2TE(Xr*{tNP)Q-~Baipq*daL|H*>*1g*K#OLG|goT6bEkmDYavM&JcHW10(% zK?&WO=s=KbZ3oen<#dhX!{pw(-lx%qYoAZMR}}grjDiS1zLbBf=&zJvr-qE#nVNo=v%9CcP98koKZzy)mH{{cyxC5lfe^L74pIIs1`~Ak z0y8<9Ks15h3_$<}fdUL;GUHK02W$cUNoY|4n{{Al3x|BSI-sO2++y734G`yYtAoIR>Wja3`zsKa z0~uOf@-hB3r7!+3=JWXAN^=9mLkFxhn3e`;N&{~)YkizTJ(rxrHW>`AbuR29n8WCE zD=}?ty91nN+vrm;`j`@pd7n{PYNBeQQiJw?8PzoB?Jeo^0y6Hk=j;YPoX^*X=w6!? zwLQL>P$6z*@v#`+?@UwLNppzeW=`z5@c2_}@y#sxFKD4$Fk07Y_4%esya7|>Z&q(q%e4Zk z)Tca82WDxvegb}D&&5a-E0vBsocx$Ii9^%1%7iDpbG}QUoJ?xmimnB6j>l2xz8o?g zYO`ii072W(!zP`jx2Q|c%Ap-~ZQG+Fp6mJC78p^{e!R-!Q0&KmPElN=V<{%1#N^FN1uBIihlUELPHbjc6y;*v6RpSGFq2gp1IXq` z%lHt-BAa9i6z{~-l^!yE!M{4>;wi$EYZO(&buIJ?+S*67X9#XuieBu8Ds-95z2Gc- zd3qO3^@Q*xuju6ut)Lx8=Q6IE&z^@Y4pIC^G5g9wXb0h2mR{)iv5$`-sy3$Uw7+!m z{PsC37~7#bVf-C2AW7W^*S6L8yi}U-j@X6tkt?Ut4kKTrblQpY-aX{WQ{Qgz&1252 za6(+IYRynSVM)}GxZAJFJHzOK`3}$7D(&9}+=W~n;}FhQ6M;h$ z!pG0*U%%Rv311)ETd_W~`HA?T6zeJKm)IO1tY&sYRa3)4VSejqJm1;hjF#x>y1TK+M5UwI**wFD zCPFQ!5r4#+D~Jx(C`3_kVa;z?8xzaX|5B3!hep+oQ;(h54&rT)Zn`=t?^Ki%zkU=B z2Po-*y=yQe*?LC2)bx$1yM8jlWu!vDfj8DkPqV(|TU~uy^fq^O^0T`BnF4LM)~DAe zdf0a3#C9G9EosX6aXJC=xMsw2jI=Ob;rkt^GI>|{O~wNcb1Z83ke&zwVQ<7Ki}%n@ zdyt3zn!0Rs-JV7oJMv zse}2rPt>B7ftJ!6TC`i%I{&n|fQ-US<+#V7qizfj#Cy2qIB}dMSAHw>S(d_2F>;!C zW!mKU2e?2zTSa;`d@9 z+T+wla9W8-$yMWZy&_aTVT=*`DDU<4Or=;76WvF**=-NTzL(6%9Dm{;Gtc$~TCSW9 z&^Z_^dW;VsK&9xz;=5K;D#&EP>! zvt(ARc57tyRnJ8trZAGccz#X|*&(LvWw+BPw9riQj=eH1nw;JObN6f*v}KVnbXR5G zG{00K!LLw~^L?~f(an{ctAty#_Xk0m2wH5g+l74ktBuv9HG{mD;lt>HydI0dga1x^ zu+@_M?qU2-_wzahN~$4R%Y+Knl=gTD!q<9pmJKsmhcBLKt-rz&GZJ&V2xdRxXbjgn z^6=);W%R%W>^NpHt#?6DsS_TuYyF|OZ<}|Y(bOy7(n%4&S^t!7QB*H!6_+fBSMjL~LK}MkH=WNc^pSfc z{i-d;%z!1PG$B3o$4e}2bkmCXq!}aI+YBm>c9bv)x2vC;^tL?t&fmUMuIa^S2X8pz?Ra+W!4`}vntmC@1Tc>&lD-9}x(snTd)!5KAP zdG|Z-YjT~i6v_%>XzcQeVcGIm(+yqnz1g!5^UP?2+mi)g^0do_7k0**-yPByzA90j zU!60>y)GvXd)SL}QZ{6M^CP~#k--ocsRxi2xaeH}uol)}6kxI$@Z#SRa0M`I|DWy| zHJB8TIRAh63l}P`IZZT3;~8CWuq_He(Ezg?UIEiFfneSVVwE`jS6U{tMG-mwcN6Zw zaS%=CAr%1nG7ucB0Ln1G8$bgl2bX$f}`XC_K8CtW01tW%!;71rGUas=Pz&9RmS)}Ce{o~F*`>X4^tZSguuhI?Q83QR zalTj7@xgzhxNm|83oY~fMDLc^3fFF%SdRh12EpfScdSjSUAIXxo>D7&or%x*?~Fcl z81k`7zRN_PRRZ_h`Jy*0Fl>_Eae>+$U0a{@yudd5QD$ zBtH0-<3u)wINhUoZN*rTrD7D-8$PsadSEMp_(s-*XQXXb)!mZde0L2|1=}>gMbT=$ z#n;ET$w~Or^tOM!QN;UA+a-FC>(>C8N?j$&3&Nj(#S)Q!=}kMN!u&P+AR~EIgP(?~ z;y!PBlCp^K(I0v4Amp^89ZOT=_kJ%NwHPouU2Ko=dJYn;OyVQ8v#O<(jv$yY%a9_r z$5FX$?FzMKD)`G;&i7Xm3hW;S>Ws9%rJbB!b~EQv%V-PlFi2JG=G-0o4hGCd`^>4g z)P5;F9^|PoG*sg%Hf~FB%qH|tWs{03^W@KT=h8mknTE63n#a2Lym{%`x7SA)`Hc;0 zHaabM%1Eh%gRw1MkelvvR3=hlzHaWjSS$cVI`^2RL09{HU(G=Ua<*bKJP=@KB`m7j zaYR|G*at<%soF4H=+>u5@i*W#Sm-G*0Yz251}M*A!fp-MNUi zw{#&8ajyZ}MnjAyfr4Z=%Scaon&)9XAX7{FTP||fIVPCh+fR;|(ht(YSe>l=c7a(d zE4ODmo+uDT^hhkprfeVX!6sNH>apheRc59^eWYtQt;bEZO3S{@TdDA;f2YsjtU&Kl zwJ>`_w(H%`5RqT)x+K<7gbh&n`V@I?W;oaOA;H$J}co{gw*rf0l{Zk)SOp%QI0z_1?=Q0`1tg)9!E;m zp%YwV=hH?Pt+H2YKOTq*=z}fiJz20h9lv=S?CP^2vZch{m-6-{@+CFyq^?KKO?HK| z%sLxl7a06Pk`C$b)&z-KUgr6~D6bkNv6obUMNu5ILQHSh;}L6fhWpv}diu2MC1`xaop*pxeot$PAS!W2V7v1M9-9lgXCW@&mOWUU`MY;Z9zW)}s2-`N z_51gQa>)v1s!(>%*FeIz`^_BjT1dBvrTr+Yy2Z-udzyf1VDJeWH8AWA+yb5E+7pIK^B#@c`%bK;x6G$rNf`b$M7 zIo<4|sGQ@p_`FLU7OMEl#L}&G_qCpk6mqK7VK;~^l_3>w{IvZubk6A(arZ&9DwbZ+ zH8><0D)Yy9-o?$yoFl+DJXY&s@Q)^P3W;@9!iXs7u}`}iw)0MI4V^cX`5BCk6h08A z|CVYZ)D&8{vEP^k-&~r(Ha0eP(k^zwZPS_jeZ_ZM8K2%p;AnY#rIN1Ez&kkf!`a95 zdXf&y-_9;ysJgT)(o3wYvHdd`qTzwi^iQ~+6yQ^0n%L|+n5b>$jeNGRt$e;_akNm| z6t~(z)_a%!gkkTVBwi8iFQ`Vdk%nE_d$Aq+s4gsG-tOg}A%L1v4}k6pq{fmw}vYtp8qi67MZg_rY< zt-Nxo7h<0oRY;Q_h$dRfzxh>3x$P5x@52LPCJPWLsjNeQK_|~pfH^Mz zi<*G48HlB&C|R5+|CWG+)bu}g6np~^L)gaG!25)tnUt1vzaB=dJ5fPC zmi51RD{50HS%AMPtzLheSz&XeaudV2XZQG~qx6+z*@JcfD$hmGq@9iDr5r|gtm){z zQM=96(ZeEt;Jyu8Po0;?6!Czr0L2Moia1MXrk~h+aDQcBTX+>?YfUM1N`1C z+Mz0f(Ol7J{kNWeFUdD9f!m$%4Y;d!*2+NWy+PjMgkj%r4&cwe5R6)&uFz=@qR&+; zMcP4?c7~TI|AMNpH0CvU{7J#W9l0MPtY+@kohnjl5~ zY5_Wvc;msRT|F<`P>3kiOQP#21MUcy)rlCBUX5a z1>uS{{qFCf@*6Fs^4e(JffWXce+Wn9Q0t^J;Jd|IJ`uYq&Ese%>aX&`=pdFSBgwYi zmSWnIvG`);Zz14aC%$Msc^9{>>PEvSb9V+|ufTgk1)?iT4w>?wJ2Y8NC|BmhLl4k9 zT_pI~mM~OII-kB-{gE23ja}i1pN+mM|M#QjuE}DgJt!tIjPAG4Xpn#9C z8=fLPwZ<%O9z+|nBf+)@knQ6}obtyg;BY$`FeV9Q;uh7>yqe%i1}Yo)7GECnztf#J#W!M2Ay*DB|&3+4$ zel0u^?E03H$f2ik9(?*KHasjlhQ0OR>!#(2*;pj_sm8qER3q=;fKyJ#ODLOWexkvk z@S#6-h2U`f=h91w{&$X0Qagds_8|q(%96+p&|c7a|2b1pCsY~CR@c^=$*6TL=q)0l zJgF7Gag*E}TUI>~wP9CNwG;b0HyWx(5PmeFjM$dH!Dy=>Z(#O=ntzh>;VngbF2z>y z^tHe8F@ddBX+CR2fCoMvzV6z-Y3m0k{Z;$oDmUNuF zouf%%HpyFxbIsKyhEQ-(sCt)0^I?gUKf#R(ti?5_;ueAShl(LpJ#+Z(iH$^Dd8TF7`7sDv z&5XDuuMF4k{!7BwY$ii~)^7(g1T$fXXGr+5WnLG$n}x#AH2-p4b$)+O>cRB zWuQ~s(z=}(t4nC4+~K*xnWK1mzvmy6${Tyu@g7_Mh##R*XoNi(dpqA;{Td~N*57Nt zn)_Z(f^(Sb-eh$Nb19P`f~xx=ifk1<-lo5X`A2;l&mgs8ydT(A(Bs#Y-Ha}siK?JG z+o~s(sr!agM?-GLurS*dYGd;~->HYfc(s?h3O}n-n%7t`3e+Px?_JT+>#SjnI2t>O z(LUmFKF|dp`_`2#iSo%}nPeE5Kp=|kxsN1aTQjw%)vn34IzyC(`{uKwAGillJDM*- z1s?kCO7OHDJ36N=^e$zTjGSl4oZE`hwnp59l)ckE+pp3Hi?5v9DbEJQq7VK15!Rmm zQyP_zg-v4_UXD3Q9S-JnCi8T&8HQ5=Ei0_Y}=mxlPH zfgtyPhkvp4UxqqJ_Z(y$0-O#1cM8fZ1*wBr?Sd^eL59Jkk~g?J2OA+c|K5iAFIWSA z2vEGonE&yNpZ?{#C?3F-|Kj)m4#25A5aj;}s&D^~Q?d?;f;h?OB}uiojQgf`IZt%J`~#y<)mxmChW`Wsggr2hcu=@@7vW)4TFU^vINYZV)|*<991 z6E2S%*xpYF%(Cwvc&H=358x`cb_?9ilFnGP+3el?v2P19qOUTX_4gPA=cNI2Cr{E+ z=E<&Af;1EP+jGf4HiNsiPDM@aBJFf__G=~V5=e}VJCM{Anp`sN8hW ztqt^-7gBkXx=OfLRdNb-G{># z#3 zWY5XbiRT1y#cGV+=NqZ(8f>>EAhJuePuN)i1imq3&H(QO;W@|MsY$A>W z_oI=?Qm3zCbJ!Y*#XT8x+m5K#U2@txVH;YcyaM})e!VufI(PncDlKeWq@?b|I)0mp zZmpt*-f0)+Ve*F^e*^j&ahA4Z%AK`ZnhR*R5t(In%VR2pV`gx1j!F8}TEuQpyzt(N z(PqzxSnhJ9w&lk{e~0QRG{ll-1=ogWvw$_Vx)iqD%e921bICh#^8wfOB93Mb7TDvg z?=EfbzR^6B3wGR-N+QCsVZrn#zB~4+YfTK+j^y^5#F|jDNFDJ1qm2`mnXrl_1+4&8{=FRC z8VhzU*xPBhI&>33a9ZW|lNLI$>XV9-nD_3+=ZhoUU3i#{~U)e>%=mT}x4Y2Wi$5 zT0t$l^BI*6)%($sc?UfJ>sii8ml&3G^p445N1Qydv0;D!2WbFfu6e1cK3KBh4ry5F z7WP}cKkSTC1nrD>e>$YKCi)lbE#7NrZY4+acsW}OvH z<(|gK+=01W(l+BGka~9+p=qc-##|bd@ZH63VvEWHV46|$E(SB{o|JN@saLj#MWwij zztg9I?i2w3052{553MF5hPh!p5MIk?aMG&Daq;^+d0J)^O zIJdc#S%Qt*)SM7|@zmD)qburk`YozyHpnU>W7R6bw@M^n#YbJNqkLey_VZ~Io? zP+@YG_&eMq?HjSvliHKfjci8@aoo=()0P(s4#WhN+l OpNERG_Q0!S&h~k$< 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 z

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�X>lvLb^fIZ2{avl_ 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 W3OOLJMgW1-^vA7Ivr7F$&;QvkO~*w5 literal 0 HcmV?d00001 diff --git a/Tests/Manual/CPVisualEffectViewTest/index-debug.html b/Tests/Manual/CPVisualEffectViewTest/index-debug.html new file mode 100644 index 000000000..c4d1557d3 --- /dev/null +++ b/Tests/Manual/CPVisualEffectViewTest/index-debug.html @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + CPVisualEffectViewTest + + + + + + + + + + + + + + +

+
+
+ +
+
+ +
+ + diff --git a/Tests/Manual/CPVisualEffectViewTest/index.html b/Tests/Manual/CPVisualEffectViewTest/index.html new file mode 100644 index 000000000..af62486e2 --- /dev/null +++ b/Tests/Manual/CPVisualEffectViewTest/index.html @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + CPVisualEffectViewTest + + + + + + + + + + + + +
+
+
+ +
+
+ +
+ + diff --git a/Tests/Manual/CPVisualEffectViewTest/main.j b/Tests/Manual/CPVisualEffectViewTest/main.j new file mode 100644 index 000000000..03e6d6d85 --- /dev/null +++ b/Tests/Manual/CPVisualEffectViewTest/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * CPVisualEffectViewTest + * + * Created by You on August 13, 2015. + * Copyright 2015, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +} diff --git a/Tools/nib2cib/NSAppKit.j b/Tools/nib2cib/NSAppKit.j index 691872013..a45eac2e5 100644 --- a/Tools/nib2cib/NSAppKit.j +++ b/Tools/nib2cib/NSAppKit.j @@ -89,6 +89,7 @@ @import "NSPopover.j" @import "NSProgressIndicator.j" @import "NSAppearance.j" +@import "NSVisualEffectView.j" function CP_NSMapClassName(aClassName) diff --git a/Tools/nib2cib/NSVisualEffectView.j b/Tools/nib2cib/NSVisualEffectView.j new file mode 100644 index 000000000..809f5def2 --- /dev/null +++ b/Tools/nib2cib/NSVisualEffectView.j @@ -0,0 +1,57 @@ +/* + * NSVisualEffectView.j + * nib2cib + * + * Created by Antoine Mercadal. + * Copyright 2015, Cappuccino Project + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +@import + + +@implementation CPVisualEffectView (NSCoding) + +- (id)NS_initWithCoder:(CPCoder)aCoder +{ + if (self = [super NS_initWithCoder:aCoder]) + { + _material = [aCoder decodeObjectForKey:@"NSVisualEffectViewMaterial"]; + _state = [aCoder decodeObjectForKey:@"NSVisualEffectViewState"]; + + // this is not supported + // _blendingMode = [aCoder decodeObjectForKey:@"NSVisualEffectViewBlendingMode"]; + _blendingMode = CPVisualEffectBlendingModeWithinWindow; + } + + return self; +} + +@end + +@implementation NSVisualEffectView : CPVisualEffectView + +- (id)initWithCoder:(CPCoder)aCoder +{ + return [self NS_initWithCoder:aCoder]; +} + +- (Class)classForKeyedArchiver +{ + return [CPVisualEffectView class]; +} + +@end diff --git a/Tools/objj2objcskeleton/objj2objcskeleton b/Tools/objj2objcskeleton/objj2objcskeleton index 7ddcfa419..83a8ffe75 100644 --- a/Tools/objj2objcskeleton/objj2objcskeleton +++ b/Tools/objj2objcskeleton/objj2objcskeleton @@ -605,5 +605,6 @@ var NSClasses = { "NSWindowController" : YES, "NSWorkspace" : YES, "NSPopover": YES, - "NSAppearance" : YES + "NSAppearance" : YES, + "NSVisualEffectView" : YES, }; From 7be2325a9531fbb5c9b488a220af2265bd099363 Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Thu, 13 Aug 2015 21:12:04 -0700 Subject: [PATCH 4/9] Fix few mistakes --- AppKit/CPAppearance.j | 2 +- AppKit/CPVisualEffectView.j | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/AppKit/CPAppearance.j b/AppKit/CPAppearance.j index 23c650327..65f46dbd2 100644 --- a/AppKit/CPAppearance.j +++ b/AppKit/CPAppearance.j @@ -99,7 +99,7 @@ var _CPAppearanceCurrent = nil, /*! Creates a CPAppearance object initialized to the specified appearance file in the specified bundle This method does actually nothing special. It just creates a default appearance object */ -- initWithAppearanceNamed:(CPString)aName bundle:(CPBundle)bundle +- (id)initWithAppearanceNamed:(CPString)aName bundle:(CPBundle)bundle { if (self = [super init]) { diff --git a/AppKit/CPVisualEffectView.j b/AppKit/CPVisualEffectView.j index 80d522e7c..8936edcb5 100644 --- a/AppKit/CPVisualEffectView.j +++ b/AppKit/CPVisualEffectView.j @@ -118,15 +118,20 @@ CPVisualEffectStateInactive = 2; - (void)_setEffectEnabled:(BOOL)shouldEnable { - var prop = CPBrowserStyleProperty("backdrop-filter"), - dark = [[self appearance] isEqual:[CPAppearance appearanceNamed:CPAppearanceNameVibrantDark]], + var dark = [[self appearance] isEqual:[CPAppearance appearanceNamed:CPAppearanceNameVibrantDark]], darkColor = [CPColor colorWithHexString:@"1e1e1e"], - lightColor = [CPColor whiteColor]; + lightColor = [CPColor whiteColor], + prop; + +#if PLATFORM(DOM) + prop = CPBrowserStyleProperty("backdrop-filter"); +#endif if (shouldEnable) { if (prop) self._DOMElement.style[prop] = "blur(30px)"; + [self setBackgroundColor:[(dark ? darkColor : lightColor) colorWithAlphaComponent:0.6]]; } else From 6bf6f82cad8cda9ea7c79fd47909fa93b362c095 Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Thu, 13 Aug 2015 21:29:33 -0700 Subject: [PATCH 5/9] Small refactoring --- AppKit/CPVisualEffectView.j | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/AppKit/CPVisualEffectView.j b/AppKit/CPVisualEffectView.j index 8936edcb5..6ef3645de 100644 --- a/AppKit/CPVisualEffectView.j +++ b/AppKit/CPVisualEffectView.j @@ -119,28 +119,16 @@ CPVisualEffectStateInactive = 2; - (void)_setEffectEnabled:(BOOL)shouldEnable { var dark = [[self appearance] isEqual:[CPAppearance appearanceNamed:CPAppearanceNameVibrantDark]], - darkColor = [CPColor colorWithHexString:@"1e1e1e"], - lightColor = [CPColor whiteColor], - prop; + prop = CPBrowserStyleProperty("backdrop-filter"), + color = (dark ? [CPColor colorWithHexString:@"1e1e1e"] : [CPColor whiteColor]), + finalColor = shouldEnable ? [color colorWithAlphaComponent:0.6] : color; + + [self setBackgroundColor:finalColor]; #if PLATFORM(DOM) - prop = CPBrowserStyleProperty("backdrop-filter"); + self._DOMElement.style[prop] = shouldEnable ? "blur(30px)" : nil; #endif - if (shouldEnable) - { - if (prop) - self._DOMElement.style[prop] = "blur(30px)"; - - [self setBackgroundColor:[(dark ? darkColor : lightColor) colorWithAlphaComponent:0.6]]; - } - else - { - if (prop) - self._DOMElement.style[prop] = nil; - - [self setBackgroundColor:(dark ? darkColor : lightColor)]; - } } - (void)_applyVibrancyState From 541a7974e0524fd9a25562275a12580ce92d1974 Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Thu, 13 Aug 2015 23:40:27 -0700 Subject: [PATCH 6/9] NEW: effectiveAppearance and new CPThemeState Each default (and only supported) CPAppearance now have an associated theme state. As the appearance is correctly propagated in CPViews hierarchy, it is now possible to have dark controls when the an ancestor view has a dark appearance. Added automated tests --- AppKit/CPAppearance.j | 10 ++++- AppKit/CPView.j | 88 ++++++++++++++++++++++++++++++++---- Tests/AppKit/CPViewTest.j | 95 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 183 insertions(+), 10 deletions(-) diff --git a/AppKit/CPAppearance.j b/AppKit/CPAppearance.j index 65f46dbd2..e80c20a4a 100644 --- a/AppKit/CPAppearance.j +++ b/AppKit/CPAppearance.j @@ -21,6 +21,7 @@ */ @import +@import "CPTheme.j" CPAppearanceNameAqua = @"CPAppearanceNameAqua"; CPAppearanceNameLightContent = @"CPAppearanceNameLightContent"; @@ -41,6 +42,11 @@ var _CPAppearanceCurrent = nil, @end +CPThemeStateAppearanceAqua = CPThemeState("appearance-aqua"); +CPThemeStateAppearanceLightContent = CPThemeState("appearance-light-content"); +CPThemeStateAppearanceVibrantLight = CPThemeState("appearance-vibrant-light"); +CPThemeStateAppearanceVibrantDark = CPThemeState("appearance-vibrant-dark"); + /*! @ingroup appkit @@ -51,9 +57,9 @@ var _CPAppearanceCurrent = nil, */ @implementation CPAppearance : CPObject { - BOOL _allowsVibrancy @accessors(property=allowsVibrancy); + BOOL _allowsVibrancy @accessors(property=allowsVibrancy); - CPString _name; + CPString _name; } diff --git a/AppKit/CPView.j b/AppKit/CPView.j index 250291471..cf6e4f3ad 100644 --- a/AppKit/CPView.j +++ b/AppKit/CPView.j @@ -242,7 +242,9 @@ var CPViewHighDPIDrawingEnabled = YES; BOOL _isObserving; BOOL _allowsVibrancy @accessors(property=allowsVibrancy); - CPAppearance _appearance @accessors(property=appearance); + CPAppearance _appearance @accessors(getter=appearance); + CPAppearance _effectiveAppearance; + BOOL _effectiveAppearanceCached; } /* @@ -372,6 +374,8 @@ var CPViewHighDPIDrawingEnabled = YES; _theme = [CPTheme defaultTheme]; _themeState = CPThemeStateNormal; + _effectiveAppearanceCached = NO; + #if PLATFORM(DOM) _DOMElement = DOMElementPrototype.cloneNode(false); AppKitTagDOMElement(self, _DOMElement); @@ -842,9 +846,10 @@ var CPViewHighDPIDrawingEnabled = YES; */ - (void)viewDidMoveToSuperview { -// if (_graphicsContext) - [self setNeedsDisplay:YES]; + [self setNeedsDisplay:YES]; + [self _resetCachedEffectiveAppearance]; + [self _updateAppearanceThemeState]; } /*! @@ -3515,21 +3520,87 @@ setBoundsOrigin: @end -@implementation CPView (Appeatance) +@implementation CPView (Appearance) -/*! Returns the received appearance if any, or ask the superview and returns it. +/*! Returns the receiver's appearance if any, or ask the superview and returns it. */ - (CPAppearance)effectiveAppearance { if (_appearance) return _appearance; - if (_superview) - return [_superview appearance]; + if (_effectiveAppearanceCached) + return _effectiveAppearance; - return nil; + _effectiveAppearance = [_superview effectiveAppearance]; + _effectiveAppearanceCached = YES; + + return _effectiveAppearance; } +- (void)setAppearance:(CPAppearance)anAppearance +{ + if ([_appearance isEqual:anAppearance]) + return; + + [self willChangeValueForKey:@"appearance"]; + _appearance = anAppearance; + [self didChangeValueForKey:@"appearance"]; + + [self _resetCachedEffectiveAppearance]; + [self _updateAppearanceThemeState]; +} + +/*! @ignore +*/ +- (void)_resetCachedEffectiveAppearance +{ + _effectiveAppearanceCached = NO; + [_subviews makeObjectsPerformSelector:@selector(_resetCachedEffectiveAppearance)]; +} + +- (void)_updateAppearanceThemeState +{ + var effectiveAppearance = [self effectiveAppearance]; + + if ([effectiveAppearance isEqual:[CPAppearance appearanceNamed:CPAppearanceNameAqua]]) + { + [self setThemeState:CPThemeStateAppearanceAqua]; + [self unsetThemeState:CPThemeStateAppearanceLightContent]; + [self unsetThemeState:CPThemeStateAppearanceVibrantLight]; + [self unsetThemeState:CPThemeStateAppearanceVibrantDark]; + } + else if ([effectiveAppearance isEqual:[CPAppearance appearanceNamed:CPAppearanceNameLightContent]]) + { + [self unsetThemeState:CPThemeStateAppearanceAqua]; + [self setThemeState:CPThemeStateAppearanceLightContent]; + [self unsetThemeState:CPThemeStateAppearanceVibrantLight]; + [self unsetThemeState:CPThemeStateAppearanceVibrantDark]; + } + else if ([effectiveAppearance isEqual:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight]]) + { + [self unsetThemeState:CPThemeStateAppearanceAqua]; + [self unsetThemeState:CPThemeStateAppearanceLightContent]; + [self setThemeState:CPThemeStateAppearanceVibrantLight]; + [self unsetThemeState:CPThemeStateAppearanceVibrantDark]; + } + else if ([effectiveAppearance isEqual:[CPAppearance appearanceNamed:CPAppearanceNameVibrantDark]]) + { + [self unsetThemeState:CPThemeStateAppearanceAqua]; + [self unsetThemeState:CPThemeStateAppearanceLightContent]; + [self unsetThemeState:CPThemeStateAppearanceVibrantLight]; + [self setThemeState:CPThemeStateAppearanceVibrantDark]; + } + else + { + [self unsetThemeState:CPThemeStateAppearanceAqua]; + [self unsetThemeState:CPThemeStateAppearanceLightContent]; + [self unsetThemeState:CPThemeStateAppearanceVibrantLight]; + [self unsetThemeState:CPThemeStateAppearanceVibrantDark]; + } +} + + @end var CPViewAutoresizingMaskKey = @"CPViewAutoresizingMask", @@ -3669,6 +3740,7 @@ var CPViewAutoresizingMaskKey = @"CPViewAutoresizingMask", } _appearance = [aCoder decodeObjectForKey:CPViewAppearanceKey]; + _effectiveAppearanceCached = NO; [self setNeedsDisplay:YES]; [self setNeedsLayout]; diff --git a/Tests/AppKit/CPViewTest.j b/Tests/AppKit/CPViewTest.j index 5c2457569..6e6e0f800 100644 --- a/Tests/AppKit/CPViewTest.j +++ b/Tests/AppKit/CPViewTest.j @@ -771,6 +771,101 @@ var methodCalled; [self assert:nil equals:view._toolTipFunctionOut]; } +- (void)testAppearanceDefaultvalue +{ + [self assert:nil equals:[view appearance]]; + [self assertFalse:view._effectiveAppearanceCached]; + [self assertFalse:[view hasThemeState:CPThemeStateAppearanceVibrantDark]]; + [self assertFalse:[view hasThemeState:CPThemeStateAppearanceVibrantLight]]; + [self assert:nil equals:[view effectiveAppearance]]; + [self assertTrue:view._effectiveAppearanceCached]; +} + +- (void)testAppearanceWithVibrantDark +{ + [view setAppearance:[CPAppearance appearanceNamed:CPAppearanceNameVibrantDark]]; + + [self assert:[CPAppearance appearanceNamed:CPAppearanceNameVibrantDark] equals:[view appearance]]; + [self assert:[CPAppearance appearanceNamed:CPAppearanceNameVibrantDark] equals:[view effectiveAppearance]]; + [self assertTrue:[view hasThemeState:CPThemeStateAppearanceVibrantDark]]; + [self assertFalse:[view hasThemeState:CPThemeStateAppearanceVibrantLight]]; +} + +- (void)testAppearanceWithVibrantLight +{ + [view setAppearance:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight]]; + + [self assert:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight] equals:[view appearance]]; + [self assert:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight] equals:[view effectiveAppearance]]; + [self assertTrue:[view hasThemeState:CPThemeStateAppearanceVibrantLight]]; + [self assertFalse:[view hasThemeState:CPThemeStateAppearanceVibrantDark]]; +} + +- (void)testAppearanceReset +{ + [view setAppearance:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight]]; + [view setAppearance:nil]; + + [self assert:nil equals:[view appearance]]; + [self assert:nil equals:[view effectiveAppearance]]; + [self assertFalse:[view hasThemeState:CPThemeStateAppearanceVibrantLight]]; + [self assertFalse:[view hasThemeState:CPThemeStateAppearanceVibrantDark]]; +} + +- (void)testEffectiveAppearance +{ + var secondView = [[CPView alloc] initWithFrame:CGRectMakeZero()]; + + [self assertFalse:secondView._effectiveAppearanceCached]; + + [view addSubview:secondView]; + + [self assertTrue:secondView._effectiveAppearanceCached]; + [self assert:nil equals:[secondView appearance]]; + + [view setAppearance:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight]]; + + [self assertFalse:secondView._effectiveAppearanceCached]; + [self assert:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight] equals:[secondView effectiveAppearance]]; + [self assertTrue:secondView._effectiveAppearanceCached]; +} + +- (void)testEffectiveAppearanceWithMovingViews +{ + var viewA = [[CPView alloc] initWithFrame:CGRectMakeZero()], + viewB = [[CPView alloc] initWithFrame:CGRectMakeZero()]; + + [viewA setAppearance:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight]]; + [viewB setAppearance:[CPAppearance appearanceNamed:CPAppearanceNameVibrantDark]]; + + [viewA addSubview:view]; + + [self assert:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight] equals:[view effectiveAppearance]]; + [self assertTrue:[view hasThemeState:CPThemeStateAppearanceVibrantLight]]; + [self assertFalse:[view hasThemeState:CPThemeStateAppearanceVibrantDark]]; + + [viewB addSubview:view]; + + [self assert:[CPAppearance appearanceNamed:CPAppearanceNameVibrantDark] equals:[view effectiveAppearance]]; + [self assertFalse:[view hasThemeState:CPThemeStateAppearanceVibrantLight]]; + [self assertTrue:[view hasThemeState:CPThemeStateAppearanceVibrantDark]]; +} + +- (void)testEffectiveAppearanceReset +{ + var viewA = [[CPView alloc] initWithFrame:CGRectMakeZero()], + viewB = [[CPView alloc] initWithFrame:CGRectMakeZero()]; + + [viewA setAppearance:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight]]; + [viewB setAppearance:[CPAppearance appearanceNamed:CPAppearanceNameVibrantDark]]; + + [viewA addSubview:view]; + [self assert:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight] equals:[view effectiveAppearance]]; + + [view removeFromSuperview]; + [self assert:nil equals:[view effectiveAppearance]]; +} + @end @implementation CPLayoutView : CPView From 547764e3c17614288361b983d44812d8cb76d849 Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Fri, 14 Aug 2015 01:43:55 -0700 Subject: [PATCH 7/9] FIXED: Always call [super awakeFromCib] in CPView subclasses --- AppKit/CPButtonBar.j | 2 ++ AppKit/CPScrollView.j | 2 ++ AppKit/CPTabView.j | 2 ++ AppKit/CPTableView.j | 1 + 4 files changed, 7 insertions(+) diff --git a/AppKit/CPButtonBar.j b/AppKit/CPButtonBar.j index 47f869597..f27819689 100644 --- a/AppKit/CPButtonBar.j +++ b/AppKit/CPButtonBar.j @@ -112,6 +112,8 @@ - (void)awakeFromCib { + [super awakeFromCib]; + var view = [self superview], subview = self; diff --git a/AppKit/CPScrollView.j b/AppKit/CPScrollView.j index 1b34e8658..f6de3acd0 100644 --- a/AppKit/CPScrollView.j +++ b/AppKit/CPScrollView.j @@ -1582,6 +1582,8 @@ var CPScrollViewContentViewKey = @"CPScrollViewContentView", */ - (void)awakeFromCib { + [super awakeFromCib]; + [self _updateScrollerStyle]; [self _updateCornerAndHeaderView]; } diff --git a/AppKit/CPTabView.j b/AppKit/CPTabView.j index ec145d802..baefde563 100644 --- a/AppKit/CPTabView.j +++ b/AppKit/CPTabView.j @@ -529,6 +529,8 @@ var CPTabViewItemsKey = "CPTabViewItemsKey", - (void)awakeFromCib { + [super awakeFromCib]; + // This cannot be run in initWithCoder because it might call selectTabViewItem:, which is // not safe to call before the views of the tab views items are fully decoded. [self _updateItems]; diff --git a/AppKit/CPTableView.j b/AppKit/CPTableView.j index 8d6d23f58..9254ba296 100644 --- a/AppKit/CPTableView.j +++ b/AppKit/CPTableView.j @@ -6394,6 +6394,7 @@ var CPTableViewDataSourceKey = @"CPTableViewDataSourceKey", - (void)awakeFromCib { + [super awakeFromCib]; [self setThemeState:CPThemeStateTableDataView]; } From 7e4e1ec68f89a8668677d4444bfde8aa15c67bca Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Fri, 14 Aug 2015 01:44:22 -0700 Subject: [PATCH 8/9] FIXED: lot's of error with CPAppearance --- AppKit/CPView.j | 43 +++++++++++++++++-------------------- AppKit/CPVisualEffectView.j | 18 +++++++++------- Tests/AppKit/CPViewTest.j | 25 +++++++++++++++------ 3 files changed, 48 insertions(+), 38 deletions(-) diff --git a/AppKit/CPView.j b/AppKit/CPView.j index cf6e4f3ad..cd589a28b 100644 --- a/AppKit/CPView.j +++ b/AppKit/CPView.j @@ -244,7 +244,6 @@ var CPViewHighDPIDrawingEnabled = YES; BOOL _allowsVibrancy @accessors(property=allowsVibrancy); CPAppearance _appearance @accessors(getter=appearance); CPAppearance _effectiveAppearance; - BOOL _effectiveAppearanceCached; } /* @@ -332,6 +331,13 @@ var CPViewHighDPIDrawingEnabled = YES; return nil; } +- (void)awakeFromCib +{ + [super awakeFromCib]; + + [self _recomputeAppearance]; +} + - (id)init { return [self initWithFrame:CGRectMakeZero()]; @@ -374,8 +380,6 @@ var CPViewHighDPIDrawingEnabled = YES; _theme = [CPTheme defaultTheme]; _themeState = CPThemeStateNormal; - _effectiveAppearanceCached = NO; - #if PLATFORM(DOM) _DOMElement = DOMElementPrototype.cloneNode(false); AppKitTagDOMElement(self, _DOMElement); @@ -846,10 +850,9 @@ var CPViewHighDPIDrawingEnabled = YES; */ - (void)viewDidMoveToSuperview { - [self setNeedsDisplay:YES]; + [self _recomputeAppearance]; - [self _resetCachedEffectiveAppearance]; - [self _updateAppearanceThemeState]; + [self setNeedsDisplay:YES]; } /*! @@ -3529,13 +3532,7 @@ setBoundsOrigin: if (_appearance) return _appearance; - if (_effectiveAppearanceCached) - return _effectiveAppearance; - - _effectiveAppearance = [_superview effectiveAppearance]; - _effectiveAppearanceCached = YES; - - return _effectiveAppearance; + return [_superview effectiveAppearance]; } - (void)setAppearance:(CPAppearance)anAppearance @@ -3547,20 +3544,19 @@ setBoundsOrigin: _appearance = anAppearance; [self didChangeValueForKey:@"appearance"]; - [self _resetCachedEffectiveAppearance]; - [self _updateAppearanceThemeState]; + [self _recomputeAppearance]; } /*! @ignore */ -- (void)_resetCachedEffectiveAppearance +- (void)_recomputeAppearance { - _effectiveAppearanceCached = NO; - [_subviews makeObjectsPerformSelector:@selector(_resetCachedEffectiveAppearance)]; -} + // if we don't have a themeState, it means + // the view is not decoding from a cib, so we just return. + // this method will be called again in awakeFromCib + if (!_themeState) + return; -- (void)_updateAppearanceThemeState -{ var effectiveAppearance = [self effectiveAppearance]; if ([effectiveAppearance isEqual:[CPAppearance appearanceNamed:CPAppearanceNameAqua]]) @@ -3598,6 +3594,8 @@ setBoundsOrigin: [self unsetThemeState:CPThemeStateAppearanceVibrantLight]; [self unsetThemeState:CPThemeStateAppearanceVibrantDark]; } + + [_subviews makeObjectsPerformSelector:@selector(_recomputeAppearance)]; } @@ -3739,8 +3737,7 @@ var CPViewAutoresizingMaskKey = @"CPViewAutoresizingMask", _themeAttributes[attributeName] = CPThemeAttributeDecode(aCoder, attributeName, attributes[count], _theme, themeClass); } - _appearance = [aCoder decodeObjectForKey:CPViewAppearanceKey]; - _effectiveAppearanceCached = NO; + [self setAppearance:[aCoder decodeObjectForKey:CPViewAppearanceKey]]; [self setNeedsDisplay:YES]; [self setNeedsLayout]; diff --git a/AppKit/CPVisualEffectView.j b/AppKit/CPVisualEffectView.j index 6ef3645de..ece566562 100644 --- a/AppKit/CPVisualEffectView.j +++ b/AppKit/CPVisualEffectView.j @@ -161,25 +161,27 @@ CPVisualEffectStateInactive = 2; - (BOOL)setThemeState:(ThemeState)aState { if (aState.isa && [aState isKindOfClass:CPArray]) - aState = CPThemeState.apply(null, aState); + aState = CPThemeState.apply(null, aState); - var ret = [super setThemeState:aState]; + var r = [super setThemeState:aState]; - [self _applyVibrancyState]; + if (r) + [self _applyVibrancyState]; - return ret; + return r; } - (BOOL)unsetThemeState:(ThemeState)aState { if (aState.isa && [aState isKindOfClass:CPArray]) - aState = CPThemeState.apply(null, aState); + aState = CPThemeState.apply(null, aState); - var ret = [super unsetThemeState:aState]; + var r = [super unsetThemeState:aState]; - [self _applyVibrancyState]; + if (r) + [self _applyVibrancyState]; - return ret; + return r; } - (void)viewDidMoveToSuperview diff --git a/Tests/AppKit/CPViewTest.j b/Tests/AppKit/CPViewTest.j index 6e6e0f800..b3f1b80e2 100644 --- a/Tests/AppKit/CPViewTest.j +++ b/Tests/AppKit/CPViewTest.j @@ -774,11 +774,9 @@ var methodCalled; - (void)testAppearanceDefaultvalue { [self assert:nil equals:[view appearance]]; - [self assertFalse:view._effectiveAppearanceCached]; [self assertFalse:[view hasThemeState:CPThemeStateAppearanceVibrantDark]]; [self assertFalse:[view hasThemeState:CPThemeStateAppearanceVibrantLight]]; [self assert:nil equals:[view effectiveAppearance]]; - [self assertTrue:view._effectiveAppearanceCached]; } - (void)testAppearanceWithVibrantDark @@ -816,18 +814,13 @@ var methodCalled; { var secondView = [[CPView alloc] initWithFrame:CGRectMakeZero()]; - [self assertFalse:secondView._effectiveAppearanceCached]; - [view addSubview:secondView]; - [self assertTrue:secondView._effectiveAppearanceCached]; [self assert:nil equals:[secondView appearance]]; [view setAppearance:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight]]; - [self assertFalse:secondView._effectiveAppearanceCached]; [self assert:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight] equals:[secondView effectiveAppearance]]; - [self assertTrue:secondView._effectiveAppearanceCached]; } - (void)testEffectiveAppearanceWithMovingViews @@ -851,6 +844,24 @@ var methodCalled; [self assertTrue:[view hasThemeState:CPThemeStateAppearanceVibrantDark]]; } +- (void)testEffectiveAppearanceWithMovingViewHierarchy +{ + var viewC = [[CPView alloc] initWithFrame:CGRectMakeZero()], + viewA = [[CPView alloc] initWithFrame:CGRectMakeZero()], + viewB = [[CPView alloc] initWithFrame:CGRectMakeZero()]; + + [view setAppearance:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight]]; + [viewC setAppearance:[CPAppearance appearanceNamed:CPAppearanceNameVibrantDark]]; + + [viewA addSubview:viewB]; + [view addSubview:viewA]; + + [self assert:[CPAppearance appearanceNamed:CPAppearanceNameVibrantLight] equals:[viewB effectiveAppearance]]; + + [viewC addSubview:viewA]; + [self assert:[CPAppearance appearanceNamed:CPAppearanceNameVibrantDark] equals:[viewB effectiveAppearance]]; +} + - (void)testEffectiveAppearanceReset { var viewA = [[CPView alloc] initWithFrame:CGRectMakeZero()], From 403dd5c005b12e357ce395f05092b7c32390ace7 Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Fri, 14 Aug 2015 01:45:19 -0700 Subject: [PATCH 9/9] Updated CPVisualEffectViewTest The test now show how to use the automatic theme state beased on CPAppearance --- .../CPVisualEffectViewTest/AppController.j | 61 +++++++- .../Resources/MainMenu.cib | 14 +- .../Resources/MainMenu.xib | 136 +++++++++++++++--- 3 files changed, 182 insertions(+), 29 deletions(-) diff --git a/Tests/Manual/CPVisualEffectViewTest/AppController.j b/Tests/Manual/CPVisualEffectViewTest/AppController.j index 7e5b0b159..ee506899a 100644 --- a/Tests/Manual/CPVisualEffectViewTest/AppController.j +++ b/Tests/Manual/CPVisualEffectViewTest/AppController.j @@ -10,5 +10,64 @@ @import @implementation AppController : CPObject -// everything in the xib +{ + @outlet CPWindow window; + + @outlet CPVisualEffectView FXView1; + @outlet CPVisualEffectView FXView2; + @outlet CPVisualEffectView FXView3; + @outlet CPVisualEffectView FXView4; + @outlet CPVisualEffectView FXView5; + @outlet CPVisualEffectView FXView6; + + @outlet CPTextField field1; + @outlet CPTextField field2; + @outlet CPTextField field3; + @outlet CPTextField field4; + @outlet CPTextField field5; + @outlet CPTextField field6; + + @outlet CPButton button1; + @outlet CPButton button2; + @outlet CPButton button3; + @outlet CPButton button4; + @outlet CPButton button5; + @outlet CPButton button6; + +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ +} + +- (void)awakeFromCib +{ + var fields = [field1, field2, field3, field4, field5, field6]; + + for (var i = [fields count] - 1; i >= 0; i--) + [fields[i] setValue:[CPColor whiteColor] forThemeAttribute:@"text-color" inState:CPThemeStateAppearanceVibrantDark]; + + var buttons = [button1, button2, button3, button4, button5, button6]; + + for (var i = [buttons count] - 1; i >= 0; i--) + { + [buttons[i] setValue:[CPColor colorWithHexString:@"f3f3f3"] forThemeAttribute:@"bezel-color" inState:CPThemeStateAppearanceVibrantLight]; + [buttons[i] setValue:[CPColor colorWithHexString:@"333333"] forThemeAttribute:@"text-color" inState:CPThemeStateAppearanceVibrantLight]; + [buttons[i] setValue:[CPColor clearColor] forThemeAttribute:@"text-shadow-color" inState:CPThemeStateAppearanceVibrantLight]; + + [buttons[i] setValue:[CPColor colorWithHexString:@"333333"] forThemeAttribute:@"bezel-color" inState:CPThemeStateAppearanceVibrantDark]; + [buttons[i] setValue:[CPColor colorWithHexString:@"999"] forThemeAttribute:@"text-color" inState:CPThemeStateAppearanceVibrantDark]; + [buttons[i] setValue:[CPColor clearColor] forThemeAttribute:@"text-shadow-color" inState:CPThemeStateAppearanceVibrantDark]; + } +} + +- (IBAction)switch:(id)aSender +{ + var dark = [CPAppearance appearanceNamed:CPAppearanceNameVibrantDark], + light = [CPAppearance appearanceNamed:CPAppearanceNameVibrantLight], + appearance = ([[aSender effectiveAppearance] isEqual:dark]) ? light : dark; + + [[aSender superview] setAppearance:appearance]; +} + @end diff --git a/Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.cib b/Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.cib index 13dbf7c19..0e716eed0 100644 --- a/Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.cib +++ b/Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.cib @@ -1,7 +1,7 @@ -280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;1;0E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;41E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;42E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;17E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;43E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;41E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;44E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;45E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;46E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;2;47E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;48E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;2;49E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;50E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;51E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;21E;E;D;K;10;$classnameS;6;CPViewK;8;$classesA;S;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;53E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;53E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;54E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;22E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;21E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;58E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;59E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;21E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;63E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;66E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;67E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;68E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;57E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;71E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;64E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;63E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;2;57E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;2;57E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;45E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;46E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;2;72E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;73E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;2;49E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;74E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;51E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;25E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;75E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;75E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPImageViewK;8;$classesA;S;11;CPImageViewS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;26E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;25E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;75E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;75E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;25E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;77E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;52E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;52E;K;15;$aimage-scalingD;K;6;CP$UIDd;2;78E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;80E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;23;CPImageViewHasShadowKeyD;K;6;CP$UIDd;1;0E;K;28;CPImageViewImageAlignmentKeyD;K;6;CP$UIDd;2;52E;E;D;K;10;$classnameS;18;CPVisualEffectViewK;8;$classesA;S;18;CPVisualEffectViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;25E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;81E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;82E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;83E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;25E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;2;85E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;2;86E;K;9;_materialD;K;6;CP$UIDd;2;52E;K;6;_stateD;K;6;CP$UIDd;2;52E;E;D;K;6;$classD;K;6;CP$UIDd;2;22E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;87E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;88E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;64E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;89E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;67E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;90E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;57E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;71E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;64E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;64E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;2;57E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;2;57E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;25E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;91E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;82E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;92E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;25E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;2;93E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;2;86E;K;9;_materialD;K;6;CP$UIDd;2;52E;K;6;_stateD;K;6;CP$UIDd;2;52E;E;D;K;6;$classD;K;6;CP$UIDd;2;22E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;87E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;88E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;64E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;12;$atext-colorD;K;6;CP$UIDd;2;95E;K;6;$afontD;K;6;CP$UIDd;2;96E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;67E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;97E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;57E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;71E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;64E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;64E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;2;57E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;2;57E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;25E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;98E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;82E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;25E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;2;85E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;2;86E;K;9;_materialD;K;6;CP$UIDd;2;52E;K;6;_stateD;K;6;CP$UIDd;2;86E;E;D;K;6;$classD;K;6;CP$UIDd;2;22E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;87E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;88E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;64E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;3;100E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;67E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;101E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;57E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;71E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;64E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;64E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;2;57E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;2;57E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;25E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;102E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;82E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;103E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;25E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;2;93E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;2;86E;K;9;_materialD;K;6;CP$UIDd;2;52E;K;6;_stateD;K;6;CP$UIDd;2;86E;E;D;K;6;$classD;K;6;CP$UIDd;2;22E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;35E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;87E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;88E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;35E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;64E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;12;$atext-colorD;K;6;CP$UIDd;3;104E;K;6;$afontD;K;6;CP$UIDd;3;105E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;67E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;57E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;71E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;64E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;64E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;2;57E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;2;57E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;25E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;107E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;82E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;25E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;2;85E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;2;86E;K;9;_materialD;K;6;CP$UIDd;2;52E;K;6;_stateD;K;6;CP$UIDd;2;64E;E;D;K;6;$classD;K;6;CP$UIDd;2;22E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;87E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;88E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;64E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;3;109E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;67E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;110E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;57E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;71E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;64E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;64E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;2;57E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;2;57E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;25E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;111E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;82E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;112E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;25E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;2;93E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;2;86E;K;9;_materialD;K;6;CP$UIDd;2;52E;K;6;_stateD;K;6;CP$UIDd;2;64E;E;D;K;6;$classD;K;6;CP$UIDd;2;22E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;39E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;52E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;87E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;88E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;39E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;62E;K;11;$aalignmentD;K;6;CP$UIDd;2;64E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;12;$atext-colorD;K;6;CP$UIDd;3;113E;K;6;$afontD;K;6;CP$UIDd;3;114E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;2;56E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;67E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;115E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;63E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;2;52E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;2;69E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;57E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;57E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;71E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;64E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;64E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;2;57E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;2;57E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;2;67E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;24E;E;E;S;8;delegateS;13;AppControllerS;32;{10000000000000, 10000000000000}S;8;CPWindowd;10;1618478080S;22;{{100, 88}, {181, 67}}S;21;{{0, 0}, {1440, 877}}d;2;15S;6;Windowd;1;0S;19;{{0, 0}, {181, 67}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;23E;E;E;S;6;normalS;6;{1, 1}F;S;21;{{20, 25}, {141, 17}}S;19;{{0, 0}, {141, 17}}d;2;36S;9;textfieldS;18;controlSizeRegulard;1;4d;1;2D;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;65E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;116E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;69E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;67E;E;T;S;23;Click me to loose focusd;2;-1D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;70E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;117E;E;d;10;1886912512S;24;{{303, 166}, {834, 545}}d;1;7S;20;{{0, 0}, {834, 545}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;39E;E;E;d;2;18d;1;3D;K;10;$classnameS;20;_CPCibCustomResourceK;8;$classesA;S;20;_CPCibCustomResourceS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;79E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;118E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;119E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;121E;E;S;22;{{87, 15}, {215, 254}}S;20;{{0, 0}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;30E;E;E;D;K;10;$classnameS;12;CPAppearanceK;8;$classesA;S;12;CPAppearanceS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;5;_nameD;K;6;CP$UIDd;3;122E;K;15;_allowsVibrancyD;K;6;CP$UIDd;2;67E;E;d;1;1S;22;{{20, 110}, {175, 34}}S;19;{{0, 0}, {175, 34}}D;K;6;$classD;K;6;CP$UIDd;2;65E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;116E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;69E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;67E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;67E;E;S;32;Vibrant Light -Follows Key WindowS;23;{{87, 277}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;32E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;5;_nameD;K;6;CP$UIDd;3;123E;K;15;_allowsVibrancyD;K;6;CP$UIDd;2;67E;E;D;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;4;nameD;K;6;CP$UIDd;3;124E;K;12;defaultValueD;K;6;CP$UIDd;3;125E;K;6;valuesD;K;6;CP$UIDd;3;126E;E;D;K;6;$classD;K;6;CP$UIDd;2;65E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;116E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;69E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;67E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;67E;E;S;31;Vibrant Dark -Follows Key WindowS;23;{{310, 15}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;34E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;65E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;116E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;69E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;67E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;67E;E;S;20;Vibrant Light -ActiveS;24;{{310, 277}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;36E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;4;nameD;K;6;CP$UIDd;3;124E;K;12;defaultValueD;K;6;CP$UIDd;3;125E;K;6;valuesD;K;6;CP$UIDd;3;127E;E;D;K;6;$classD;K;6;CP$UIDd;2;65E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;116E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;69E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;67E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;67E;E;S;19;Vibrant Dark -ActiveS;23;{{533, 15}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;38E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;65E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;116E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;69E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;67E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;67E;E;S;22;Vibrant Light -InactiveS;24;{{533, 277}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;40E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;4;nameD;K;6;CP$UIDd;3;124E;K;12;defaultValueD;K;6;CP$UIDd;3;125E;K;6;valuesD;K;6;CP$UIDd;3;128E;E;D;K;6;$classD;K;6;CP$UIDd;2;65E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;116E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;69E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;67E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;57E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;67E;E;S;21;Vibrant Dark -InactiveS;28;_CPFontSystemFacePlaceholderD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;2;86E;E;E;S;7;CPImageS;14;background.jpgD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;120E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;131E;K;16;bundleIdentifierD;K;6;CP$UIDd;3;132E;K;9;frameworkD;K;6;CP$UIDd;3;132E;E;E;S;28;CPAppearanceNameVibrantLightS;27;CPAppearanceNameVibrantDarkS;10;text-colorD;K;6;$classD;K;6;CP$UIDd;2;70E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;133E;E;D;K;6;$classD;K;6;CP$UIDd;3;120E;K;10;CP.objectsD;K;11;placeholderD;K;6;CP$UIDd;3;125E;K;6;normalD;K;6;CP$UIDd;3;134E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;120E;K;10;CP.objectsD;K;11;placeholderD;K;6;CP$UIDd;3;125E;K;6;normalD;K;6;CP$UIDd;3;135E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;120E;K;10;CP.objectsD;K;11;placeholderD;K;6;CP$UIDd;3;125E;K;6;normalD;K;6;CP$UIDd;3;136E;E;E;f;18;0.6862745098039216D;K;10;$classnameS;21;_CPKeyedArchiverValueK;8;$classesA;S;21;_CPKeyedArchiverValueS;7;CPValueS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;130E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;137E;E;S;0;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;86E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;70E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;138E;E;D;K;6;$classD;K;6;CP$UIDd;2;70E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;139E;E;D;K;6;$classD;K;6;CP$UIDd;2;70E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;140E;E;S;28;{"width":614.4,"height":401}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;3;141E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;3;141E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;3;141E;E;E;f;4;0.85E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file +280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;41E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;1;0E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;73E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;74E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;75E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;76E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;55E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;77E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;59E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;78E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;65E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;79E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;71E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;80E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;62E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;81E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;68E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;82E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;58E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;83E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;61E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;84E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;67E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;85E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;73E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;86E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;64E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;87E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;70E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;88E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;56E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;89E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;60E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;90E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;66E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;91E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;72E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;92E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;63E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;93E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;69E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;94E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;50E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;95E;E;D;K;10;$classnameS;21;CPCibControlConnectorK;8;$classesA;S;21;CPCibControlConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;67E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;96E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;58E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;96E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;64E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;96E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;73E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;96E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;61E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;96E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;70E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;96E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;74E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;97E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;98E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;99E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;100E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;101E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;102E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;103E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;104E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;47E;E;D;K;10;$classnameS;6;CPViewK;8;$classesA;S;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;46E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;106E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;106E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;107E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;108E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;48E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;47E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;111E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;112E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;47E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;114E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;11;$aalignmentD;K;6;CP$UIDd;3;116E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;117E;K;6;$afontD;K;6;CP$UIDd;3;119E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;120E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;121E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;116E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;105E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;122E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;110E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;124E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;117E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;116E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;110E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;110E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;120E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;98E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;99E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;125E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;126E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;102E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;127E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;104E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;51E;E;D;K;6;$classD;K;6;CP$UIDd;2;46E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;128E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;128E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;129E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;108E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPImageViewK;8;$classesA;S;11;CPImageViewS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;52E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;51E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;128E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;128E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;51E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;130E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;11;$aalignmentD;K;6;CP$UIDd;3;105E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;105E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;131E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;133E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;116E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;105E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;122E;K;23;CPImageViewHasShadowKeyD;K;6;CP$UIDd;1;0E;K;28;CPImageViewImageAlignmentKeyD;K;6;CP$UIDd;3;105E;E;D;K;10;$classnameS;18;CPVisualEffectViewK;8;$classesA;S;18;CPVisualEffectViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;51E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;134E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;135E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;136E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;51E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;108E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;3;138E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;3;139E;K;9;_materialD;K;6;CP$UIDd;3;105E;K;6;_stateD;K;6;CP$UIDd;3;105E;E;D;K;6;$classD;K;6;CP$UIDd;2;48E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;55E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;140E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;141E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;55E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;114E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;117E;K;6;$afontD;K;6;CP$UIDd;3;142E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;120E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;143E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;116E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;105E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;122E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;110E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;124E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;117E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;117E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;110E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;110E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;120E;E;D;K;10;$classnameS;8;CPButtonK;8;$classesA;S;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;55E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;145E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;55E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;146E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;147E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;148E;K;7;$aimageD;K;6;CP$UIDd;3;150E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;105E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;116E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;105E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;122E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;151E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;152E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;110E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;153E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;105E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;120E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;117E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;105E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;51E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;135E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;155E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;51E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;108E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;3;138E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;3;139E;K;9;_materialD;K;6;CP$UIDd;3;105E;K;6;_stateD;K;6;CP$UIDd;3;139E;E;D;K;6;$classD;K;6;CP$UIDd;2;48E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;59E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;140E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;141E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;59E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;114E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;117E;K;6;$afontD;K;6;CP$UIDd;3;148E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;120E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;156E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;116E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;105E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;122E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;110E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;124E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;117E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;117E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;110E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;110E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;120E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;59E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;145E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;59E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;146E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;147E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;157E;K;7;$aimageD;K;6;CP$UIDd;3;158E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;105E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;116E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;105E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;122E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;151E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;152E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;110E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;153E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;105E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;120E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;117E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;105E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;51E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;159E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;135E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;160E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;51E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;108E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;3;161E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;3;139E;K;9;_materialD;K;6;CP$UIDd;3;105E;K;6;_stateD;K;6;CP$UIDd;3;139E;E;D;K;6;$classD;K;6;CP$UIDd;2;48E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;62E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;140E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;141E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;62E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;114E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;117E;K;6;$afontD;K;6;CP$UIDd;3;157E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;120E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;162E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;116E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;105E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;122E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;110E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;124E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;117E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;117E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;110E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;110E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;120E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;62E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;145E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;62E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;146E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;147E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;163E;K;7;$aimageD;K;6;CP$UIDd;3;164E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;105E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;116E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;105E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;122E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;151E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;152E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;110E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;153E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;105E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;120E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;117E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;105E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;51E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;165E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;135E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;166E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;51E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;108E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;3;138E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;3;139E;K;9;_materialD;K;6;CP$UIDd;3;105E;K;6;_stateD;K;6;CP$UIDd;3;117E;E;D;K;6;$classD;K;6;CP$UIDd;2;48E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;65E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;140E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;141E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;65E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;114E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;117E;K;6;$afontD;K;6;CP$UIDd;3;163E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;120E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;167E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;116E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;105E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;122E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;110E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;124E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;117E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;117E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;110E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;110E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;120E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;65E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;145E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;65E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;146E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;147E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;168E;K;7;$aimageD;K;6;CP$UIDd;3;169E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;105E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;116E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;105E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;122E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;151E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;152E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;110E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;153E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;105E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;120E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;117E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;105E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;51E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;170E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;135E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;51E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;108E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;3;161E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;3;139E;K;9;_materialD;K;6;CP$UIDd;3;105E;K;6;_stateD;K;6;CP$UIDd;3;117E;E;D;K;6;$classD;K;6;CP$UIDd;2;48E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;68E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;140E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;141E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;68E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;114E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;117E;K;6;$afontD;K;6;CP$UIDd;3;168E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;120E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;172E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;116E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;105E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;122E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;110E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;124E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;117E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;117E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;110E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;110E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;120E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;68E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;145E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;68E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;146E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;147E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;173E;K;7;$aimageD;K;6;CP$UIDd;3;174E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;105E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;116E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;105E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;122E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;151E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;152E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;110E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;153E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;105E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;120E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;117E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;105E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;51E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;175E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;135E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;176E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;51E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;108E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;3;161E;K;10;_maskImageD;K;6;CP$UIDd;1;0E;K;13;_blendingModeD;K;6;CP$UIDd;3;139E;K;9;_materialD;K;6;CP$UIDd;3;105E;K;6;_stateD;K;6;CP$UIDd;3;105E;E;D;K;6;$classD;K;6;CP$UIDd;2;48E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;71E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;140E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;141E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;71E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;114E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;117E;K;6;$afontD;K;6;CP$UIDd;3;173E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;120E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;177E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;116E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;105E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;122E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;110E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;110E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;124E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;117E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;117E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;110E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;110E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;120E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;71E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;105E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;145E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;71E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;146E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;147E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;105E;K;6;$afontD;K;6;CP$UIDd;3;178E;K;7;$aimageD;K;6;CP$UIDd;3;179E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;109E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;109E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;110E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;105E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;116E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;105E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;122E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;151E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;152E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;110E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;153E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;105E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;120E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;117E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;105E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;45E;E;E;S;8;delegateS;7;FXView1S;7;FXView2S;7;FXView3S;7;FXView4S;7;FXView5S;7;FXView6S;7;button1S;7;button2S;7;button3S;7;button4S;7;button5S;7;button6S;6;field1S;6;field2S;6;field3S;6;field4S;6;field5S;6;field6S;6;windowS;7;switch:S;13;AppControllerS;32;{10000000000000, 10000000000000}S;8;CPWindowd;10;1618478080S;22;{{100, 88}, {181, 67}}S;21;{{0, 0}, {1440, 877}}d;2;15S;6;Windowd;1;0S;19;{{0, 0}, {181, 67}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;49E;E;E;S;6;normalS;6;{1, 1}F;S;21;{{20, 25}, {141, 17}}S;19;{{0, 0}, {141, 17}}d;2;36S;9;textfieldS;18;controlSizeRegulard;1;4d;1;2D;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;118E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;180E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;122E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;110E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;110E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;120E;E;T;S;23;Click me to loose focusd;2;-1D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;123E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;181E;E;d;10;1886912512S;24;{{303, 166}, {834, 545}}d;1;7S;20;{{0, 0}, {834, 545}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;71E;E;E;d;2;18d;1;3D;K;10;$classnameS;20;_CPCibCustomResourceK;8;$classesA;S;20;_CPCibCustomResourceS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;132E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;182E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;183E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;185E;E;S;22;{{87, 15}, {215, 254}}S;20;{{0, 0}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;58E;E;E;D;K;10;$classnameS;12;CPAppearanceK;8;$classesA;S;12;CPAppearanceS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;137E;K;5;_nameD;K;6;CP$UIDd;3;186E;K;15;_allowsVibrancyD;K;6;CP$UIDd;1;0E;E;d;1;1S;22;{{20, 110}, {175, 34}}S;19;{{0, 0}, {175, 34}}D;K;6;$classD;K;6;CP$UIDd;3;118E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;180E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;122E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;120E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;110E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;120E;E;S;32;Vibrant Light +Follows Key WindowS;21;{{73, 213}, {69, 25}}S;18;{{0, 0}, {69, 25}}S;6;buttonS;27;bordered+controlSizeRegularD;K;6;$classD;K;6;CP$UIDd;3;118E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;180E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;122E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;120E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;110E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;120E;E;D;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;149E;K;4;nameD;K;6;CP$UIDd;3;187E;K;12;defaultValueD;K;6;CP$UIDd;1;0E;K;5;stateD;K;6;CP$UIDd;3;188E;K;5;valueD;K;6;CP$UIDd;3;189E;E;S;6;SwitchS;0;d;2;14S;23;{{310, 15}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;61E;E;E;S;20;Vibrant Light +ActiveD;K;6;$classD;K;6;CP$UIDd;3;118E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;180E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;122E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;120E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;110E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;120E;E;D;K;6;$classD;K;6;CP$UIDd;3;149E;K;4;nameD;K;6;CP$UIDd;3;187E;K;12;defaultValueD;K;6;CP$UIDd;1;0E;K;5;stateD;K;6;CP$UIDd;3;188E;K;5;valueD;K;6;CP$UIDd;3;189E;E;S;24;{{310, 277}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;137E;K;5;_nameD;K;6;CP$UIDd;3;190E;K;15;_allowsVibrancyD;K;6;CP$UIDd;1;0E;E;S;19;Vibrant Dark +ActiveD;K;6;$classD;K;6;CP$UIDd;3;118E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;180E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;122E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;120E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;110E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;120E;E;D;K;6;$classD;K;6;CP$UIDd;3;149E;K;4;nameD;K;6;CP$UIDd;3;187E;K;12;defaultValueD;K;6;CP$UIDd;1;0E;K;5;stateD;K;6;CP$UIDd;3;188E;K;5;valueD;K;6;CP$UIDd;3;189E;E;S;23;{{533, 15}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;E;E;S;22;Vibrant Light +InactiveD;K;6;$classD;K;6;CP$UIDd;3;118E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;180E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;122E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;120E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;110E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;120E;E;D;K;6;$classD;K;6;CP$UIDd;3;149E;K;4;nameD;K;6;CP$UIDd;3;187E;K;12;defaultValueD;K;6;CP$UIDd;1;0E;K;5;stateD;K;6;CP$UIDd;3;188E;K;5;valueD;K;6;CP$UIDd;3;189E;E;S;24;{{533, 277}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;70E;E;E;S;21;Vibrant Dark +InactiveD;K;6;$classD;K;6;CP$UIDd;3;118E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;180E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;122E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;120E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;110E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;120E;E;D;K;6;$classD;K;6;CP$UIDd;3;149E;K;4;nameD;K;6;CP$UIDd;3;187E;K;12;defaultValueD;K;6;CP$UIDd;1;0E;K;5;stateD;K;6;CP$UIDd;3;188E;K;5;valueD;K;6;CP$UIDd;3;189E;E;S;23;{{87, 277}, {215, 254}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;73E;E;E;S;31;Vibrant Dark +Follows Key WindowD;K;6;$classD;K;6;CP$UIDd;3;118E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;180E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;122E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;120E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;110E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;120E;E;D;K;6;$classD;K;6;CP$UIDd;3;149E;K;4;nameD;K;6;CP$UIDd;3;187E;K;12;defaultValueD;K;6;CP$UIDd;1;0E;K;5;stateD;K;6;CP$UIDd;3;188E;K;5;valueD;K;6;CP$UIDd;3;189E;E;S;28;_CPFontSystemFacePlaceholderD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;139E;E;E;S;7;CPImageS;14;background.jpgD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;184E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;193E;K;16;bundleIdentifierD;K;6;CP$UIDd;3;152E;K;9;frameworkD;K;6;CP$UIDd;3;152E;E;E;S;28;CPAppearanceNameVibrantLightS;5;imageS;11;highlightedD;K;6;$classD;K;6;CP$UIDd;3;118E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;194E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;195E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;110E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;110E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;110E;E;S;27;CPAppearanceNameVibrantDarkf;18;0.6862745098039216D;K;10;$classnameS;21;_CPKeyedArchiverValueK;8;$classesA;S;21;_CPKeyedArchiverValueS;7;CPValueS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;196E;E;S;18;.AppleSystemUIFontd;2;13S;32;{"width":245.76,"height":160.32}E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.xib b/Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.xib index b26f85dd1..650cd38a2 100644 --- a/Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.xib +++ b/Tests/Manual/CPVisualEffectViewTest/Resources/MainMenu.xib @@ -12,7 +12,29 @@ - + + + + + + + + + + + + + + + + + + + + + + + @@ -67,25 +89,18 @@ Follows Key Window - - - - - - - - - + @@ -105,6 +120,18 @@ Active + @@ -120,10 +147,22 @@ Active Vibrant Dark Active - + + @@ -143,6 +182,18 @@ Inactive + @@ -158,10 +209,53 @@ Inactive Vibrant Dark Inactive - + + + + + + + + + + + + + + + + Vibrant Dark +Follows Key Window + + + + + @@ -172,6 +266,6 @@ Inactive - +