diff --git a/AppKit/CPApplication.j b/AppKit/CPApplication.j index 100912937..9279f8997 100644 --- a/AppKit/CPApplication.j +++ b/AppKit/CPApplication.j @@ -628,11 +628,6 @@ var CPApplicationDelegate_applicationShouldTerminate_ = 1 << 0, var theWindow = [anEvent window]; - // Check if this is a candidate for key equivalent... - if ([anEvent _couldBeKeyEquivalent] && [self _handleKeyEquivalent:anEvent]) - // The key equivalent was handled. - return; - if ([anEvent type] == CPMouseMoved) { if (theWindow !== _lastMouseMoveWindow) @@ -669,6 +664,11 @@ var CPApplicationDelegate_applicationShouldTerminate_ = 1 << 0, _eventListenerInsertionIndex = _eventListeners.length; + // Check if this is a candidate for key equivalent... + if ([anEvent _couldBeKeyEquivalent] && [self _handleKeyEquivalent:anEvent]) + // The key equivalent was handled. + return; + if (theWindow) [theWindow sendEvent:anEvent]; } diff --git a/AppKit/CPButton.j b/AppKit/CPButton.j index c78d160e8..51b108ccb 100644 --- a/AppKit/CPButton.j +++ b/AppKit/CPButton.j @@ -378,7 +378,7 @@ CPButtonImageOffset = 3.0; - (void)setImage:(CPImage)anImage { - [self setValue:anImage forThemeAttribute:@"image"]; + [self setValue:anImage forThemeAttribute:@"image" inState:CPThemeStateNormal]; } - (CPImage)image diff --git a/AppKit/CPButtonBar.j b/AppKit/CPButtonBar.j index 322d8c65a..28b17538d 100644 --- a/AppKit/CPButtonBar.j +++ b/AppKit/CPButtonBar.j @@ -70,7 +70,7 @@ [button addItemWithTitle:nil]; [[button lastItem] setImage:image]; [button setImagePosition:CPImageOnly]; - [button setValue:CGInsetMake(0, 0, 0, 0) forThemeAttribute:"content-inset"]; + [button setValue:CGInsetMake(0, 0, 0, 0) forThemeAttribute:"content-inset" inState:CPPopUpButtonStatePullsDown]; [button setPullsDown:YES]; diff --git a/AppKit/CPCheckBox.j b/AppKit/CPCheckBox.j index ab674775b..e6c29b459 100644 --- a/AppKit/CPCheckBox.j +++ b/AppKit/CPCheckBox.j @@ -163,3 +163,20 @@ CPCheckBoxImageOffset = 4.0; } @end + +#pragma mark - + +@implementation CPCheckBox (TableDataView) + +// We overide here _CPObject+Theme setValue:forThemeAttribute as CPCheckBox can be used as tableView data view +// So, when outside a table data view, setValue:forThemeAttribute should store the value with the CPThemeStateNormal (default behavior) +// When inside a table data view, it should store the value with the CPThemeStateTableDataView. If not, the value won't be used if the +// theme defined a value for this attribute for state CPThemeStateTableDataView + +- (void)setValue:(id)aValue forThemeAttribute:(CPString)aName +{ + [super setValue:aValue forThemeAttribute:aName]; + [super setValue:aValue forThemeAttribute:aName inState:CPThemeStateTableDataView]; +} + +@end diff --git a/AppKit/CPCollectionView.j b/AppKit/CPCollectionView.j index a980cc953..b85dfcb0d 100644 --- a/AppKit/CPCollectionView.j +++ b/AppKit/CPCollectionView.j @@ -56,7 +56,7 @@ var CPCollectionViewDelegate_collectionView_acceptDrop_index_dropOperation_ - (CPData)collectionView:(CPCollectionView)collectionView dataForItemsAtIndexes:(CPIndexSet)indices forType:(CPString)aType; - (CPDragOperation)collectionView:(CPCollectionView)collectionView validateDrop:(id)draggingInfo proposedIndex:(CPInteger)proposedDropIndex dropOperation:(CPCollectionViewDropOperation)proposedDropOperation; - (CPMenu)collectionView:(CPCollectionView)collectionView menuForItemAtIndex:(CPInteger)anIndex; -- (CPView)collectionView:(CPCollectionView)collectionView dragginViewForItemsAtIndexes:(CPIndexSet)indexes withEvent:(CPEvent)event offset:(CGPoint)dragImageOffset; +- (CPView)collectionView:(CPCollectionView)collectionView draggingViewForItemsAtIndexes:(CPIndexSet)indexes withEvent:(CPEvent)event offset:(CGPoint)dragImageOffset; - (void)collectionView:(CPCollectionView)collectionView didDoubleClickOnItemAtIndex:(int)index; @end diff --git a/AppKit/CPColor.j b/AppKit/CPColor.j index a2fddb202..2ba97a1cc 100644 --- a/AppKit/CPColor.j +++ b/AppKit/CPColor.j @@ -103,7 +103,8 @@ var cachedBlackColor, @"alternate-selected-control-color": [CPNull null], @"secondary-selected-control-color": [CPNull null], @"selected-text-background-color": [CPNull null], - @"selected-text-inactive-background-color": [CPNull null] + @"selected-text-inactive-background-color": [CPNull null], + @"css-based": NO }; } @@ -876,9 +877,221 @@ url("data:image/png;base64,BASE64ENCODEDDATA") // if there is a pattern image @end +#pragma mark - +#pragma mark CSS Theming + +// The code below adds support for CSS theming with 100% compatibility with current theming system. +// The idea is to extend CPColor (and CPImage) with CSS components and adapt low level UI components to +// support this new kind of CPColor/CPImage. See CPImageView, CPView and _CPImageAndTextView. +// +// To create a CPColor that uses CSS, simply use the new class method : +// + (CPColor)colorWithCSSDictionary:(CPDictionary)aDictionary beforeDictionary:(CPDictionary)beforeDictionary afterDictionary:(CPDictionary)afterDictionary +// where beforeDictionary & afterDictionary are related to ::before & ::after pseudo-elements. +// If you don't need them, just use the simplified class method : +// + (CPColor)colorWithCSSDictionary:(CPDictionary)aDictionary +// +// Example : +// buttonCssColor = [CPColor colorWithCSSDictionary:@{ +// @"background-color": A3ColorBackgroundWhite, +// @"border-color": A3ColorActiveBorder, +// @"border-style": @"solid", +// @"border-width": @"1px", +// @"border-radius": @"3px", +// @"box-sizing": @"border-box" +// } +// beforeDictionary:@{ +// @"background-color": @"rgb(225,225,225)", +// @"bottom": @"3px", +// @"content": @"''", +// @"position": @"absolute", +// @"right": @"21px", +// @"top": @"3px", +// @"width": @"1px" +// } +// afterDictionary:@{ +// @"content": @"''", +// @"bottom": @"3px", +// @"right": @"6px", +// @"top": @"1px", +// @"position": @"absolute", +// @"height": @"14px", +// @"width": @"9px", +// @"margin": @"2px 0px 2px 0px", +// @"background-image": @"url(%%packed.png)", +// @"background-position": @"0px -64px", +// @"background-repeat": @"no-repeat", +// @"background-size": @"100px 400px" +// }]; +// +// Remark : Please note the special URL of the background image used in this example : url(%%packed.png) +// During theme loading, "%%" will be replaced by the path to the theme blend resources folder. +// Typically, a CSS theme will use some (rare) images all packed together in a single image resource (see packed.png in Aristo3 theme) +// +// Also, please note that if you don't use one of the CSS components, you can either set it to nil (best solution) or to an empty dictionary, like : +// aCssColor = [CPColor colorWithCSSDictionary:@{} beforeDictionary:nil afterDictionary:@{ ... }]; +// +// You can use -(BOOL)isCSSBased to determine how to cope with it in your code. +// -(BOOL)hasCSSDictionary, -(BOOL)hasCSSBeforeDictionary and -(BOOL)hasCSSAfterDictionary are convience methods you can use. +// +// Remark : -(void)restorePreviousCSSState and -(DOMElement)applyCSSColorForView are meant to be used by low level UI widgets (like CPView) to implement +// CSS theme support. + +@implementation CPColor (CSSTheming) +{ + CPDictionary _cssDictionary @accessors(property=cssDictionary); + CPDictionary _cssBeforeDictionary @accessors(property=cssBeforeDictionary); + CPDictionary _cssAfterDictionary @accessors(property=cssAfterDictionary); +} + ++ (CPColor)colorWithCSSDictionary:(CPDictionary)aDictionary +{ + return [[CPColor alloc] _initWithCSSDictionary:aDictionary beforeDictionary:nil afterDictionary:nil]; +} + ++ (CPColor)colorWithCSSDictionary:(CPDictionary)aDictionary beforeDictionary:(CPDictionary)beforeDictionary afterDictionary:(CPDictionary)afterDictionary +{ + return [[CPColor alloc] _initWithCSSDictionary:aDictionary beforeDictionary:beforeDictionary afterDictionary:afterDictionary]; +} + +- (id)_initWithCSSDictionary:(CPDictionary)aDictionary beforeDictionary:(CPDictionary)beforeDictionary afterDictionary:(CPDictionary)afterDictionary +{ + self = [super init]; + + if (self) + { + _cssDictionary = aDictionary; + _cssBeforeDictionary = beforeDictionary; + _cssAfterDictionary = afterDictionary; + _components = [0.0, 0.0, 0.0, 1.0]; + + _theme = [CPTheme defaultTheme]; + _themeState = CPThemeStateNormal; + [self _loadThemeAttributes]; + } + + return self; +} + +- (BOOL)isCSSBased +{ + return !!(_cssDictionary || _cssBeforeDictionary || _cssAfterDictionary); +} + +- (BOOL)hasCSSDictionary +{ + return ([_cssDictionary count] > 0); +} + +- (BOOL)hasCSSBeforeDictionary +{ + return ([_cssBeforeDictionary count] > 0); +} + +- (BOOL)hasCSSAfterDictionary +{ + return ([_cssAfterDictionary count] > 0); +} + +- (void)restorePreviousCSSState:(CPArrayRef)aPreviousStateRef forDOMElement:(DOMElement)aDOMElement +{ +#if PLATFORM(DOM) + var aPreviousState = @deref(aPreviousStateRef); + + for (var i = 0, count = aPreviousState.length; i < count; i++) + aDOMElement.style[aPreviousState[i][0]] = aPreviousState[i][1]; + + @deref(aPreviousStateRef) = @[]; +#endif +} + +- (DOMElement)applyCSSColorForView:(CPView)aView onDOMElement:(DOMElement)aDOMElement styleNode:(DOMElement)aStyleNode previousState:(CPArrayRef)aPreviousStateRef +{ +#if PLATFORM(DOM) + var aPreviousState = @deref(aPreviousStateRef); + + [_cssDictionary enumerateKeysAndObjectsUsingBlock:function(aKey, anObject, stop) + { + [aPreviousState addObject:@[aKey, aDOMElement.style[aKey]]]; + aDOMElement.style[aKey] = anObject; + }]; + + if ([self hasCSSBeforeDictionary] || [self hasCSSAfterDictionary]) + { + // We need to create a unique class name + + var styleClassName = @".CP" + [aView UID], + styleContent = @""; + + if ([self hasCSSBeforeDictionary]) + { + styleContent += styleClassName + @"::before { "; + + [_cssBeforeDictionary enumerateKeysAndObjectsUsingBlock:function(aKey, anObject, stop) + { + styleContent += aKey + ": " + anObject + "; "; + }]; + + styleContent += "} "; + } + + if ([self hasCSSAfterDictionary]) + { + styleContent += styleClassName + @"::after { "; + + [_cssAfterDictionary enumerateKeysAndObjectsUsingBlock:function(aKey, anObject, stop) + { + styleContent += aKey + ": " + anObject + "; "; + }]; + + styleContent += "} "; + } + + var styleDescription = document.createTextNode(styleContent); + + if (!aStyleNode) + { + aStyleNode = document.createElement("style"); + + aView._DOMElement.insertBefore(aStyleNode, aView._DOMElement.firstChild); + + aStyleNode.appendChild(styleDescription); + } + else + { + aStyleNode.replaceChild(styleDescription, aStyleNode.firstChild); + } + + [aView setDOMClassName:@"CP"+[aView UID]]; + } + else + { + // no before/after so remove aStyleNode if existing + + if (aStyleNode) + { + aView._DOMElement.removeChild(aStyleNode); + aStyleNode = nil; + } + } + + // Return actualised values + + @deref(aPreviousStateRef) = aPreviousState; + + return aStyleNode; +#endif +} + +@end + +#pragma mark - + /// @cond IGNORE -var CPColorComponentsKey = @"CPColorComponentsKey", - CPColorPatternImageKey = @"CPColorPatternImageKey"; +var CPColorComponentsKey = @"CPColorComponentsKey", + CPColorPatternImageKey = @"CPColorPatternImageKey", + CPColorCssDictionaryKey = @"CPColorCssDictionaryKey", + CPColorCssBeforeDictionaryKey = @"CPColorCssBeforeDictionaryKey", + CPColorCssAfterDictionaryKey = @"CPColorCssAfterDictionaryKey"; /// @endcond @implementation CPColor (CPCoding) @@ -891,6 +1104,10 @@ var CPColorComponentsKey = @"CPColorComponentsKey", { if ([aCoder containsValueForKey:CPColorPatternImageKey]) self = [self _initWithPatternImage:[aCoder decodeObjectForKey:CPColorPatternImageKey]]; + else if ([aCoder containsValueForKey:CPColorCssDictionaryKey]) + self = [self _initWithCSSDictionary:[aCoder decodeObjectForKey:CPColorCssDictionaryKey] + beforeDictionary:[aCoder decodeObjectForKey:CPColorCssBeforeDictionaryKey] + afterDictionary:[aCoder decodeObjectForKey:CPColorCssAfterDictionaryKey]]; else self = [self _initWithRGBA:[aCoder decodeObjectForKey:CPColorComponentsKey]]; @@ -907,6 +1124,12 @@ var CPColorComponentsKey = @"CPColorComponentsKey", { if (_patternImage) [aCoder encodeObject:_patternImage forKey:CPColorPatternImageKey]; + else if (_cssDictionary) + { + [aCoder encodeObject:_cssDictionary forKey:CPColorCssDictionaryKey]; + [aCoder encodeObject:_cssBeforeDictionary forKey:CPColorCssBeforeDictionaryKey]; + [aCoder encodeObject:_cssAfterDictionary forKey:CPColorCssAfterDictionaryKey]; + } else [aCoder encodeObject:_components forKey:CPColorComponentsKey]; diff --git a/AppKit/CPCompatibility.j b/AppKit/CPCompatibility.j index d58471fe7..7cadc5f7e 100644 --- a/AppKit/CPCompatibility.j +++ b/AppKit/CPCompatibility.j @@ -32,6 +32,7 @@ CPKHTMLBrowserEngine = 1 << 2; CPOperaBrowserEngine = 1 << 3; CPWebKitBrowserEngine = 1 << 4; // Safari + Chrome CPBlinkBrowserEngine = 1 << 5; // Recent Chrome +CPEdgeBrowserEngine = 1 << 6; // Operating Systems CPMacOperatingSystem = 0; @@ -146,6 +147,28 @@ else if (typeof window !== "undefined" && (window.attachEvent || (!(window.Activ PLATFORM_FEATURES[CPJavaScriptClipboardAccessFeature] = YES; } +// Edge +else if (USER_AGENT.indexOf("Edge/") != -1) +{ + PLATFORM_ENGINE |= CPEdgeBrowserEngine; + + PLATFORM_FEATURES[CPCSSRGBAFeature] = YES; + PLATFORM_FEATURES[CPHTMLContentEditableFeature] = YES; + + PLATFORM_FEATURES[CPJavaScriptClipboardEventsFeature] = YES; + PLATFORM_FEATURES[CPJavaScriptClipboardAccessFeature] = NO; + PLATFORM_FEATURES[CPJavaScriptShadowFeature] = YES; + + var versionStart = USER_AGENT.indexOf("Edge/") + "Edge/".length, + versionEnd = USER_AGENT.indexOf(" ", versionStart), + versionString = USER_AGENT.substring(versionStart, versionEnd), + versionDivision = versionString.indexOf('.'), + majorVersion = parseInt(versionString.substring(0, versionDivision)), + minorVersion = parseInt(versionString.substr(versionDivision + 1)); + + PLATFORM_FEATURES[CPJavaScriptRemedialKeySupport] = YES; +} + // Safari + Chrome (WebKit and Blink) else if (USER_AGENT.indexOf("AppleWebKit/") != -1) { diff --git a/AppKit/CPControl.j b/AppKit/CPControl.j index 94286202a..f3fbb289f 100644 --- a/AppKit/CPControl.j +++ b/AppKit/CPControl.j @@ -1057,14 +1057,21 @@ var CPControlBlackColor = [CPColor blackColor]; @end @implementation CPControl (CPTrackingArea) +{ + CPTrackingArea _controlTrackingArea; +} - (void)updateTrackingAreas { - [self removeAllTrackingAreas]; - [self addTrackingArea:[[CPTrackingArea alloc] initWithRect:CGRectMakeZero() - options:CPTrackingMouseEnteredAndExited | CPTrackingActiveInKeyWindow | CPTrackingInVisibleRect - owner:self - userInfo:nil]]; + if (_controlTrackingArea) + [self removeTrackingArea:_controlTrackingArea]; + + _controlTrackingArea = [[CPTrackingArea alloc] initWithRect:CGRectMakeZero() + options:CPTrackingMouseEnteredAndExited | CPTrackingActiveInKeyWindow | CPTrackingInVisibleRect + owner:self + userInfo:nil]; + [self addTrackingArea:_controlTrackingArea]; + [super updateTrackingAreas]; } @end diff --git a/AppKit/CPCursor.j b/AppKit/CPCursor.j index 57f3039c6..a0968c358 100755 --- a/AppKit/CPCursor.j +++ b/AppKit/CPCursor.j @@ -23,6 +23,7 @@ Cursor support by browser: @import @import "CPImage.j" +@import "CPCompatibility.j" @global CPApp @@ -31,6 +32,12 @@ var currentCursor = nil, cursors = {}, ieCursorMap = {}; +@typedef CPCursorPlatform +CPCursorPlatformNone = 0; +CPCursorPlatformMac = 1; +CPCursorPlatformWindows = 2; +CPCursorPlatformBoth = 3; + @implementation CPCursor : CPObject { CPString _cssString @accessors(readonly); @@ -157,7 +164,7 @@ var currentCursor = nil, } // Internal method that is used to return the system cursors. Caches the system cursors for performance. -+ (CPCursor)_systemCursorWithName:(CPString)cursorName cssString:(CPString)aString hasImage:(BOOL)doesHaveImage ++ (CPCursor)_nativeSystemCursorWithName:(CPString)cursorName cssString:(CPString)aString { var cursor = cursors[cursorName]; @@ -165,155 +172,217 @@ var currentCursor = nil, { var cssString; - if (doesHaveImage) - { - var themeResourcePath = [[[CPApp themeBlend] bundle] resourcePath], - extension = CPBrowserIsEngine(CPInternetExplorerBrowserEngine) ? @"cur" : @"png"; - - cssString = [CPString stringWithFormat:@"url(%@cursors/%@.%@), %@", themeResourcePath, cursorName, extension, aString]; - } + // IE <= 8 does not support some cursors, map them to supported cursors + var ieLessThan9 = CPBrowserIsEngine(CPInternetExplorerBrowserEngine) && !CPFeatureIsCompatible(CPHTMLCanvasFeature); + if (ieLessThan9) + cssString = ieCursorMap[aString] || aString; else - { - // IE <= 8 does not support some cursors, map them to supported cursors - var ieLessThan9 = CPBrowserIsEngine(CPInternetExplorerBrowserEngine) && !CPFeatureIsCompatible(CPHTMLCanvasFeature); + cssString = aString; - if (ieLessThan9) - cssString = ieCursorMap[aString] || aString; - else - cssString = aString; - } - - cursor = [[CPCursor alloc] initWithCSSString:cssString]; - cursors[cursorName] = cursor; + cursors[cursorName] = cursor = [[CPCursor alloc] initWithCSSString:cssString]; } return cursor; } ++ (CPCursor)_imageCursorWithName:(CPString)cursorName cssString:(CPString)aString +{ + var cursor = cursors[cursorName]; + + if (typeof cursor === "undefined") + { + var themeResourcePath = [[[CPApp themeBlend] bundle] resourcePath], + extension = CPBrowserIsOperatingSystem(CPWindowsOperatingSystem) ? @"cur" : @"png"; + + cssString = [CPString stringWithFormat:@"url(%@cursors/%@.%@), %@", themeResourcePath, cursorName, extension, aString]; + + cursors[cursorName] = cursor = [[CPCursor alloc] initWithCSSString:cssString]; + } + + return cursor; +} + ++ (CPCursor)_tryUsingNativeSystemCursorWithName:(CPString)cursorName cssString:(CPString)cssName onPlatform:(CPCursorPlatform)shouldUseNativeCursorOn fallingBackWithImageAndCSSPointer:(CPString)aString +{ + var useNativeSystemCursor = (((shouldUseNativeCursorOn == CPCursorPlatformBoth) || + ((shouldUseNativeCursorOn == CPCursorPlatformMac) && CPBrowserIsOperatingSystem(CPMacOperatingSystem)) || + ((shouldUseNativeCursorOn == CPCursorPlatformWindows) && CPBrowserIsOperatingSystem(CPWindowsOperatingSystem))) + && [CPCursor _nativeCursorExists:cssName]); + + if (useNativeSystemCursor) + return [CPCursor _nativeSystemCursorWithName:cursorName cssString:cssName]; + else + return [CPCursor _imageCursorWithName:cursorName cssString:aString]; +} + ++ (BOOL)_nativeCursorExists:(CPString)cursorCSSName +{ +#if PLATFORM(DOM) + + // FIXME: Trick until FF/Win & Chrome/Win correctly implement context-menu cursor + // They will answer that they implement it but they actually don't + + if ([cursorCSSName isEqualToString:@"context-menu"] && CPBrowserIsOperatingSystem(CPWindowsOperatingSystem) && !CPBrowserIsEngine(CPInternetExplorerBrowserEngine) && !CPBrowserIsEngine(CPEdgeBrowserEngine)) + return NO; + + // Normal usage : try to set the cursor and check if resulting cursor is the one we tried to set. + // If yes, then the browser implements the cursor. If no (and usually we get "default"), then it doesn't. + + var platformWindows = [[CPPlatformWindow visiblePlatformWindows] allObjects], + count = [platformWindows count]; + + if (count > 0) + { + var currentPlatformCursor = platformWindows[0]._DOMBodyElement.style.cursor; + platformWindows[0]._DOMBodyElement.style.cursor = cursorCSSName; + var doesExist = (platformWindows[0]._DOMBodyElement.style.cursor == cursorCSSName); + platformWindows[0]._DOMBodyElement.style.cursor = currentPlatformCursor; + + return doesExist; + } +#endif + + return NO; +} + + (CPCursor)arrowCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"default" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"default"]; } + (CPCursor)crosshairCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"crosshair" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"crosshair"]; } + (CPCursor)IBeamCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"text" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"text"]; } + (CPCursor)pointingHandCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"pointer" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"pointer"]; } + (CPCursor)resizeNorthwestCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"nw-resize" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"nw-resize"]; } + (CPCursor)resizeNorthwestSoutheastCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"nwse-resize" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"nwse-resize"]; } + (CPCursor)resizeNortheastCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"ne-resize" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"ne-resize"]; } + (CPCursor)resizeNortheastSouthwestCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"nesw-resize" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"nesw-resize"]; } + (CPCursor)resizeSouthwestCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"sw-resize" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"sw-resize"]; } + (CPCursor)resizeSoutheastCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"se-resize" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"se-resize"]; } + (CPCursor)resizeDownCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"s-resize" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"s-resize"]; } + (CPCursor)resizeUpCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"n-resize" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"n-resize"]; } + (CPCursor)resizeLeftCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"w-resize" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"w-resize"]; } + (CPCursor)resizeRightCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"e-resize" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"e-resize"]; } + (CPCursor)resizeLeftRightCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"col-resize" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"col-resize"]; } + (CPCursor)resizeEastWestCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"ew-resize" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"ew-resize"]; } + (CPCursor)resizeUpDownCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"row-resize" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"row-resize"]; } + (CPCursor)resizeNorthSouthCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"ns-resize" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"ns-resize"]; } + (CPCursor)operationNotAllowedCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"not-allowed" hasImage:NO]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"not-allowed"]; } + (CPCursor)dragCopyCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"copy" hasImage:YES]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"copy"]; } + (CPCursor)dragLinkCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"alias" hasImage:YES]; + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"alias"]; } + (CPCursor)contextualMenuCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"context-menu" hasImage:YES]; + return [CPCursor _tryUsingNativeSystemCursorWithName:CPStringFromSelector(_cmd) + cssString:@"context-menu" + onPlatform:CPCursorPlatformBoth + fallingBackWithImageAndCSSPointer:@"default"]; } + (CPCursor)openHandCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"move" hasImage:YES]; + return [CPCursor _tryUsingNativeSystemCursorWithName:CPStringFromSelector(_cmd) + cssString:@"grab" + onPlatform:CPCursorPlatformMac + fallingBackWithImageAndCSSPointer:@"default"]; } + (CPCursor)closedHandCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"-moz-grabbing" hasImage:YES]; + return [CPCursor _tryUsingNativeSystemCursorWithName:CPStringFromSelector(_cmd) + cssString:@"grabbing" + onPlatform:CPCursorPlatformMac + fallingBackWithImageAndCSSPointer:@"default"]; } + (CPCursor)disappearingItemCursor { - return [CPCursor _systemCursorWithName:CPStringFromSelector(_cmd) cssString:@"auto" hasImage:YES]; + return [CPCursor _imageCursorWithName:CPStringFromSelector(_cmd) cssString:@"default"]; +} + ++ (CPCursor)IBeamCursorForVerticalLayout +{ + return [CPCursor _nativeSystemCursorWithName:CPStringFromSelector(_cmd) cssString:@"vertical-text"]; } @end diff --git a/AppKit/CPFlashView.j b/AppKit/CPFlashView.j index 13cc481a2..76f0b0193 100644 --- a/AppKit/CPFlashView.j +++ b/AppKit/CPFlashView.j @@ -43,6 +43,9 @@ var IEFlashCLSID = "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"; - (id)initWithFrame:(CGRect)aFrame { + + CPLog.warn("CPFlashView is deprecated and it will be removed in version 1.1."); + self = [super initWithFrame:aFrame]; if (self) diff --git a/AppKit/CPImage.j b/AppKit/CPImage.j index 1f31fed0c..1df9d2fa7 100644 --- a/AppKit/CPImage.j +++ b/AppKit/CPImage.j @@ -509,6 +509,212 @@ function CPAppKitImage(aFilename, aSize) @end +#pragma mark - +#pragma mark CSS Theming + +// The code below adds support for CSS theming with 100% compatibility with current theming system. +// The idea is to extend CPImage (and CPColor) with CSS components and adapt low level UI components to +// support this new kind of CPColor/CPImage. See CPImageView, CPView and _CPImageAndTextView. +// +// To create a CPImage that uses CSS, simply use the new class method : +// + (CPImage)imageWithCSSDictionary:(CPDictionary)aDictionary beforeDictionary:(CPDictionary)beforeDictionary afterDictionary:(CPDictionary)afterDictionary size:(CGSize)aSize +// where beforeDictionary & afterDictionary are related to ::before & ::after pseudo-elements. +// If you don't need them, just use the simplified class method : +// + (CPImage)imageWithCSSDictionary:(CPDictionary)aDictionary size:(CGSize)aSize +// +// Examples : +// regularImageNormal = [CPImage imageWithCSSDictionary:@{ +// @"border-color": A3ColorActiveBorder, +// @"border-style": @"solid", +// @"border-width": @"1px", +// @"border-radius": @"50%", +// @"box-sizing": @"border-box", +// @"background-color": A3ColorBackgroundWhite, +// @"transition-duration": @"0.35s", +// @"transition-property": @"all", +// @"transition-timing-function": @"ease" +// } +// size:CGSizeMake(16,16)]; +// +// imageSearch = [CPImage imageWithCSSDictionary:@{ +// @"background-image": @"url(%%packed.png)", +// @"background-position": @"-16px -32px", +// @"background-repeat": @"no-repeat", +// @"background-size": @"100px 400px" +// } +// size:CGSizeMake(16,16)]; +// +// Remark : Please note the special URL of the background image used in this example : url(%%packed.png) +// During theme loading, "%%" will be replaced by the path to the theme blend resources folder. +// Typically, a CSS theme will use some (rare) images all packed together in a single image resource (see packed.png in Aristo3 theme) +// +// Also, please note that if you don't use one of the CSS components, you can either set it to nil (best solution) or to an empty dictionary, like : +// aCssImage = [CPImage imageWithCSSDictionary:@{} beforeDictionary:nil afterDictionary:@{ ... }]; +// +// You can use -(BOOL)isCSSBased to determine how to cope with it in your code. +// -(BOOL)hasCSSDictionary, -(BOOL)hasCSSBeforeDictionary and -(BOOL)hasCSSAfterDictionary are convience methods you can use. +// +// Remark : -(DOMElement)applyCSSImageForView is meant to be used by low level UI widgets (like CPImageView and _CPImageAndTextView) to implement CSS theme support. +// +// In some circumstances, you may have to clear a CSS image. You can do this easily by replacing your current image with the special dummy empty CSS image : +// [CPImage dummyCSSImageOfSize:CGSizeMake(someWidth, someHeight)] + +@implementation CPImage (CSSTheming) +{ + CPDictionary _cssDictionary @accessors(property=cssDictionary); + CPDictionary _cssBeforeDictionary @accessors(property=cssBeforeDictionary); + CPDictionary _cssAfterDictionary @accessors(property=cssAfterDictionary); +} + ++ (CPImage)imageWithCSSDictionary:(CPDictionary)aDictionary size:(CGSize)aSize +{ + return [[CPImage alloc] initWithCSSDictionary:aDictionary beforeDictionary:nil afterDictionary:nil size:aSize]; +} + ++ (CPImage)imageWithCSSDictionary:(CPDictionary)aDictionary beforeDictionary:(CPDictionary)beforeDictionary afterDictionary:(CPDictionary)afterDictionary size:(CGSize)aSize +{ + return [[CPImage alloc] initWithCSSDictionary:aDictionary beforeDictionary:beforeDictionary afterDictionary:afterDictionary size:aSize]; +} + ++ (CPImage)dummyCSSImageOfSize:(CGSize)aSize +{ + // This is used to clear a previous CSS image + return [[CPImage alloc] initWithCSSDictionary:@{} beforeDictionary:nil afterDictionary:nil size:aSize]; +} + +- (id)initWithCSSDictionary:(CPDictionary)aDictionary beforeDictionary:(CPDictionary)beforeDictionary afterDictionary:(CPDictionary)afterDictionary size:(CGSize)aSize +{ + self = [super init]; + + if (self) + { + _size = CGSizeMakeCopy(aSize); + _filename = @"CSS image"; + _loadStatus = CPImageLoadStatusCompleted; + _cssDictionary = aDictionary; + _cssBeforeDictionary = beforeDictionary; + _cssAfterDictionary = afterDictionary; + } + + return self; +} + +- (BOOL)isCSSBased +{ + return !!(_cssDictionary || _cssBeforeDictionary || _cssAfterDictionary); +} + +- (BOOL)hasCSSDictionary +{ + return ([_cssDictionary count] > 0); +} + +- (BOOL)hasCSSBeforeDictionary +{ + return ([_cssBeforeDictionary count] > 0); +} + +- (BOOL)hasCSSAfterDictionary +{ + return ([_cssAfterDictionary count] > 0); +} + +- (DOMElement)applyCSSImageForView:(CPView)aView onDOMElement:(DOMElement)aDOMElement styleNode:(DOMElement)aStyleNode previousState:(CPArrayRef)aPreviousStateRef +{ +#if PLATFORM(DOM) + // First, restore previous CSS styling before applying the new one + + var aPreviousState = @deref(aPreviousStateRef); + + for (var i = 0, count = aPreviousState.length; i < count; i++) + aDOMElement.style[aPreviousState[i][0]] = aPreviousState[i][1]; + + aPreviousState = @[]; + + // Then apply new CSS styling + + [_cssDictionary enumerateKeysAndObjectsUsingBlock:function(aKey, anObject, stop) + { + [aPreviousState addObject:@[aKey, aDOMElement.style[aKey]]]; + aDOMElement.style[aKey] = anObject; + }]; + + if (_cssBeforeDictionary || _cssAfterDictionary) + { + // We need to create a unique class name + + var styleClassName = @".CP" + [aView UID], + styleContent = @""; + + if (_cssBeforeDictionary) + { + styleContent += styleClassName + @"::before { "; + + [_cssBeforeDictionary enumerateKeysAndObjectsUsingBlock:function(aKey, anObject, stop) + { + styleContent += aKey + ": " + anObject + "; "; + }]; + + styleContent += "} "; + } + + if (_cssAfterDictionary) + { + styleContent += styleClassName + @"::after { "; + + [_cssAfterDictionary enumerateKeysAndObjectsUsingBlock:function(aKey, anObject, stop) + { + styleContent += aKey + ": " + anObject + "; "; + }]; + + styleContent += "} "; + } + + var styleDescription = document.createTextNode(styleContent); + + if (!aStyleNode) + { + aStyleNode = document.createElement("style"); + + aView._DOMElement.insertBefore(aStyleNode, aView._DOMElement.firstChild); + + aStyleNode.appendChild(styleDescription); + } + else + { + aStyleNode.replaceChild(styleDescription, aStyleNode.firstChild); + } + + [aView setDOMClassName:@"CP"+[aView UID]]; + } + else + { + // no before/after so remove aStyleNode if existing + + if (aStyleNode) + { + aView._DOMElement.removeChild(aStyleNode); + aStyleNode = nil; + } + } + + + // Return actualised values + + @deref(aPreviousStateRef) = aPreviousState; + + return aStyleNode; +#endif +} + +@end + +var CPImageCSSDictionaryKey = @"CPImageCSSDictionaryKey", + CPImageCSSBeforeDictionaryKey = @"CPImageCSSBeforeDictionaryKey", + CPImageCSSAfterDictionaryKey = @"CPImageCSSAfterDictionaryKey"; + +#pragma mark - + @implementation CPImage (CPCoding) /*! @@ -518,7 +724,10 @@ function CPAppKitImage(aFilename, aSize) */ - (id)initWithCoder:(CPCoder)aCoder { - return [self initWithContentsOfFile:[aCoder decodeObjectForKey:@"CPFilename"] size:[aCoder decodeSizeForKey:@"CPSize"]]; + if ([aCoder containsValueForKey:CPImageCSSDictionaryKey]) + return [self initWithCSSDictionary:[aCoder decodeObjectForKey:CPImageCSSDictionaryKey] beforeDictionary:[aCoder decodeObjectForKey:CPImageCSSBeforeDictionaryKey] afterDictionary:[aCoder decodeObjectForKey:CPImageCSSAfterDictionaryKey] size:[aCoder decodeSizeForKey:@"CPSize"]]; + else + return [self initWithContentsOfFile:[aCoder decodeObjectForKey:@"CPFilename"] size:[aCoder decodeSizeForKey:@"CPSize"]]; } /*! @@ -529,6 +738,14 @@ function CPAppKitImage(aFilename, aSize) { [aCoder encodeObject:_filename forKey:@"CPFilename"]; [aCoder encodeSize:_size forKey:@"CPSize"]; + + // CSS Styling + if ([self isCSSBased]) + { + [aCoder encodeObject:_cssDictionary forKey:CPImageCSSDictionaryKey]; + [aCoder encodeObject:_cssBeforeDictionary forKey:CPImageCSSBeforeDictionaryKey]; + [aCoder encodeObject:_cssAfterDictionary forKey:CPImageCSSAfterDictionaryKey]; + } } @end diff --git a/AppKit/CPImageView.j b/AppKit/CPImageView.j index 6c041fdea..e8afee844 100644 --- a/AppKit/CPImageView.j +++ b/AppKit/CPImageView.j @@ -98,10 +98,32 @@ var CPImageViewEmptyPlaceholderImage = nil; - (void)_createDOMImageElement { #if PLATFORM(DOM) - if (_DOMImageElement) - return; + var image = [self objectValue], + isCSSBasedImage = [image isCSSBased], + isIMGImageElement = _DOMImageElement && (_DOMImageElement.nodeName == "IMG"); - _DOMImageElement = document.createElement("img"); + // First, check if we need to destroy a current DOM image element. This is the case if : + // - we have one but not the right one (that is a DIV but needing an IMG, and vice versa) + + if (_DOMImageElement) + { + if ((isIMGImageElement && isCSSBasedImage) || (!isIMGImageElement && !isCSSBasedImage)) + { + // OK, destroy it + + _DOMElement.removeChild(_DOMImageElement); + + _DOMImageElement = nil; + + // CSS styling cleaning + _cssStylePreviousState = @[]; + _cssStyleNode = nil; + } + else + return; + } + + _DOMImageElement = document.createElement(isCSSBasedImage ? "div" : "img"); _DOMImageElement.style.position = "absolute"; _DOMImageElement.style.left = "0px"; _DOMImageElement.style.top = "0px"; @@ -150,10 +172,15 @@ var CPImageViewEmptyPlaceholderImage = nil; var newImage = [self objectValue]; #if PLATFORM(DOM) - if (!_DOMImageElement) - [self _createDOMImageElement]; + [self _createDOMImageElement]; - _DOMImageElement.src = newImage ? [newImage filename] : [CPImageViewEmptyPlaceholderImage filename]; + if ([newImage isCSSBased]) + _cssStyleNode = [newImage applyCSSImageForView:self + onDOMElement:_DOMImageElement + styleNode:_cssStyleNode + previousState:@ref(_cssStylePreviousState)]; + else + _DOMImageElement.src = newImage ? [newImage filename] : [CPImageViewEmptyPlaceholderImage filename]; #endif var size = [newImage size]; diff --git a/AppKit/CPMenu/CPMenu.j b/AppKit/CPMenu/CPMenu.j index a74c91068..a3c96dc43 100644 --- a/AppKit/CPMenu/CPMenu.j +++ b/AppKit/CPMenu/CPMenu.j @@ -1131,7 +1131,7 @@ var _CPMenuBarVisible = NO, } } -- (void)_menuWithName:(CPString)aName +- (CPMenu)_menuWithName:(CPString)aName { if (aName === _name) return self; diff --git a/AppKit/CPMenuItem/_CPMenuItemStandardView.j b/AppKit/CPMenuItem/_CPMenuItemStandardView.j index f7112befb..abfd1fead 100644 --- a/AppKit/CPMenuItem/_CPMenuItemStandardView.j +++ b/AppKit/CPMenuItem/_CPMenuItemStandardView.j @@ -55,6 +55,7 @@ @"menu-item-selection-color": [CPNull null], @"menu-item-text-shadow-color": [CPNull null], @"menu-item-text-color": [CPNull null], + @"menu-item-disabled-text-color": [CPColor lightGrayColor], @"menu-item-default-off-state-image": [CPNull null], @"menu-item-default-off-state-highlighted-image": [CPNull null], @"menu-item-default-on-state-image": [CPNull null], @@ -124,7 +125,7 @@ - (CPColor)textColor { if (![_menuItem isEnabled]) - return [CPColor lightGrayColor]; + return [self valueForThemeAttribute:@"menu-item-disabled-text-color"]; if (_highlighted) return [CPColor whiteColor]; diff --git a/AppKit/CPPopUpButton.j b/AppKit/CPPopUpButton.j index 12f7b8638..e5c669b44 100644 --- a/AppKit/CPPopUpButton.j +++ b/AppKit/CPPopUpButton.j @@ -491,9 +491,17 @@ CPPopUpButtonStatePullsDown = CPThemeState("pulls-down"); if (index < 0) { - [self addItemWithTitle:aTitle]; - index = [self numberOfItems] - 1; + // this ist to match cocoa where setting an empty string does not add it but simply clears the title + // and sets objectValue to -1 + if (aTitle === '') + [self selectItemAtIndex:-1]; + else + { + [self addItemWithTitle:aTitle]; + + index = [self numberOfItems] - 1; + } } [self selectItemAtIndex:index]; diff --git a/AppKit/CPScrollView.j b/AppKit/CPScrollView.j index c59178b2f..9f2009a32 100644 --- a/AppKit/CPScrollView.j +++ b/AppKit/CPScrollView.j @@ -168,14 +168,13 @@ var CPScrollerStyleGlobal = CPScrollerStyleOverlay, + (CGSize)contentSizeForFrameSize:(CGSize)frameSize hasHorizontalScroller:(BOOL)hFlag hasVerticalScroller:(BOOL)vFlag borderType:(CPBorderType)borderType { - var bounds = [self _insetBounds:CGRectMake(0.0, 0.0, frameSize.width, frameSize.height) borderType:borderType], - scrollerWidth = [CPScroller scrollerWidth]; + var bounds = [self _insetBounds:CGRectMake(0.0, 0.0, frameSize.width, frameSize.height) borderType:borderType]; if (hFlag) - bounds.size.height -= scrollerWidth; + bounds.size.height -= [_horizontalScroller scrollerWidth]; if (vFlag) - bounds.size.width -= scrollerWidth; + bounds.size.width -= [_verticalScroller scrollerWidth]; return bounds.size; } @@ -185,14 +184,13 @@ var CPScrollerStyleGlobal = CPScrollerStyleOverlay, var bounds = [self _insetBounds:CGRectMake(0.0, 0.0, contentSize.width, contentSize.height) borderType:borderType], widthInset = contentSize.width - bounds.size.width, heightInset = contentSize.height - bounds.size.height, - frameSize = CGSizeMake(contentSize.width + widthInset, contentSize.height + heightInset), - scrollerWidth = [CPScroller scrollerWidth]; + frameSize = CGSizeMake(contentSize.width + widthInset, contentSize.height + heightInset); if (hFlag) - frameSize.height += scrollerWidth; + frameSize.height += [_horizontalScroller scrollerWidth]; if (vFlag) - frameSize.width += scrollerWidth; + frameSize.width += [_verticalScroller scrollerWidth]; return frameSize; } @@ -529,8 +527,8 @@ Notifies the delegate when the scroll view has finished scrolling. { var bounds = [self _insetBounds]; - [self setHorizontalScroller:[[CPScroller alloc] initWithFrame:CGRectMake(0.0, 0.0, MAX(CGRectGetWidth(bounds), [CPScroller scrollerWidthInStyle:_scrollerStyle] + 1), [CPScroller scrollerWidthInStyle:_scrollerStyle])]]; - [[self horizontalScroller] setFrameSize:CGSizeMake(CGRectGetWidth(bounds), [CPScroller scrollerWidthInStyle:_scrollerStyle])]; + [self setHorizontalScroller:[[CPScroller alloc] initWithFrame:CGRectMake(0.0, 0.0, MAX(CGRectGetWidth(bounds), [_horizontalScroller scrollerWidth] + 1), [_horizontalScroller scrollerWidth])]]; + [[self horizontalScroller] setFrameSize:CGSizeMake(CGRectGetWidth(bounds), [_horizontalScroller scrollerWidth])]; } [self reflectScrolledClipView:_contentView]; @@ -594,8 +592,8 @@ Notifies the delegate when the scroll view has finished scrolling. { var bounds = [self _insetBounds]; - [self setVerticalScroller:[[CPScroller alloc] initWithFrame:CGRectMake(0.0, 0.0, [CPScroller scrollerWidthInStyle:_scrollerStyle], MAX(CGRectGetHeight(bounds), [CPScroller scrollerWidthInStyle:_scrollerStyle] + 1))]]; - [[self verticalScroller] setFrameSize:CGSizeMake([CPScroller scrollerWidthInStyle:_scrollerStyle], CGRectGetHeight(bounds))]; + [self setVerticalScroller:[[CPScroller alloc] initWithFrame:CGRectMake(0.0, 0.0, [_verticalScroller scrollerWidth], MAX(CGRectGetHeight(bounds), [_verticalScroller scrollerWidth] + 1))]]; + [[self verticalScroller] setFrameSize:CGSizeMake([_verticalScroller scrollerWidth], CGRectGetHeight(bounds))]; } [self reflectScrolledClipView:_contentView]; @@ -911,8 +909,8 @@ Notifies the delegate when the scroll view has finished scrolling. bottomCornerFrame.origin.x = CGRectGetMinX(verticalFrame); bottomCornerFrame.origin.y = CGRectGetMaxY(verticalFrame); - bottomCornerFrame.size.width = [CPScroller scrollerWidthInStyle:_scrollerStyle]; - bottomCornerFrame.size.height = [CPScroller scrollerWidthInStyle:_scrollerStyle]; + bottomCornerFrame.size.width = [_verticalScroller scrollerWidth]; + bottomCornerFrame.size.height = [_horizontalScroller scrollerWidth]; return bottomCornerFrame; } @@ -1124,8 +1122,8 @@ Notifies the delegate when the scroll view has finished scrolling. contentFrame.size.height -= headerClipViewHeight; var difference = CGSizeMake(CGRectGetWidth(documentFrame) - CGRectGetWidth(contentFrame), CGRectGetHeight(documentFrame) - CGRectGetHeight(contentFrame)), - verticalScrollerWidth = [CPScroller scrollerWidthInStyle:[_verticalScroller style]], - horizontalScrollerHeight = [CPScroller scrollerWidthInStyle:[_horizontalScroller style]], + verticalScrollerWidth = [_verticalScroller scrollerWidth], + horizontalScrollerHeight = [_horizontalScroller scrollerWidth], hasVerticalScroll = difference.height > 0.0, hasHorizontalScroll = difference.width > 0.0, shouldShowVerticalScroller = _hasVerticalScroller && (!_autohidesScrollers || hasVerticalScroll), @@ -1510,6 +1508,51 @@ Notifies the delegate when the scroll view has finished scrolling. @end +#pragma mark - + +@implementation CPScrollView (FirstResponder) + +// Those 4 next methods are needed to (un)set CPThemeStateFirstResponder based on content view + +- (void)viewWillMoveToWindow:(CPWindow)aWindow +{ + [super viewWillMoveToWindow:aWindow]; + + [self _stopObservingFirstResponderForWindow:[self window]]; + + if (aWindow) + [self _startObservingFirstResponderForWindow:aWindow]; +} + +- (void)_startObservingFirstResponderForWindow:(CPWindow)aWindow +{ + [[CPNotificationCenter defaultCenter] addObserver:self selector:@selector(_firstResponderDidChange:) name:_CPWindowDidChangeFirstResponderNotification object:aWindow]; +} + +- (void)_stopObservingFirstResponderForWindow:(CPWindow)aWindow +{ + [[CPNotificationCenter defaultCenter] removeObserver:self name:_CPWindowDidChangeFirstResponderNotification object:aWindow]; +} + +- (void)_firstResponderDidChange:(CPNotification)aNotification +{ + var responder = [[self window] firstResponder], + // FIXME: We add focus ring only on table views right now. When focus ring management will be added, this must be adapted. + shouldAddFocusRing = [responder isKindOfClass:[CPTableView class]], + found; + + while (!(found = (responder === self)) && responder) + responder = [responder superview]; + + if (found && shouldAddFocusRing) + [self setThemeState:CPThemeStateFirstResponder]; + else + [self unsetThemeState:CPThemeStateFirstResponder]; +} + +@end + +#pragma mark - var CPScrollViewContentViewKey = @"CPScrollViewContentView", CPScrollViewHeaderClipViewKey = @"CPScrollViewHeaderClipViewKey", diff --git a/AppKit/CPScroller.j b/AppKit/CPScroller.j index c58e87a1d..6755624cb 100644 --- a/AppKit/CPScroller.j +++ b/AppKit/CPScroller.j @@ -226,6 +226,7 @@ CPThemeStateScrollerKnobDark = CPThemeState("scroller-knob-dark"); if (_style === CPScrollerStyleLegacy) { + _allowFadingOut = NO; [self fadeIn]; [self setThemeState:CPThemeStateScrollViewLegacy]; } @@ -380,9 +381,10 @@ CPThemeStateScrollerKnobDark = CPThemeState("scroller-knob-dark"); effectiveIncrementLineHeight = incrementLineSize.height + trackInset.bottom, slotSize = height - effectiveDecrementLineHeight - effectiveIncrementLineHeight, minimumKnobLength = [self currentValueForThemeAttribute:"minimum-knob-length"], + knobVerticalInset = knobInset.top + knobInset.bottom, knobWidth = width - knobInset.left - knobInset.right, - knobHeight = MAX(minimumKnobLength, (slotSize * _knobProportion)), - knobLocation = effectiveDecrementLineHeight + (slotSize - knobHeight) * [self floatValue]; + knobHeight = MAX(minimumKnobLength, ((slotSize - knobVerticalInset) * _knobProportion)), + knobLocation = effectiveDecrementLineHeight + (slotSize - knobHeight - knobVerticalInset) * [self floatValue] + knobInset.top; _partRects[CPScrollerDecrementPage] = CGRectMake(0.0, effectiveDecrementLineHeight, width, knobLocation - effectiveDecrementLineHeight); _partRects[CPScrollerKnob] = CGRectMake(knobInset.left, knobLocation, knobWidth, knobHeight); @@ -409,9 +411,10 @@ CPThemeStateScrollerKnobDark = CPThemeState("scroller-knob-dark"); effectiveIncrementLineWidth = incrementLineSize.width + trackInset.right, slotSize = width - effectiveDecrementLineWidth - effectiveIncrementLineWidth, minimumKnobLength = [self currentValueForThemeAttribute:"minimum-knob-length"], - knobWidth = MAX(minimumKnobLength, (slotSize * _knobProportion)), + knobHorizontalInset = knobInset.left + knobInset.right, + knobWidth = MAX(minimumKnobLength, ((slotSize - knobHorizontalInset) * _knobProportion)), knobHeight = height - knobInset.top - knobInset.bottom, - knobLocation = effectiveDecrementLineWidth + (slotSize - knobWidth) * [self floatValue]; + knobLocation = effectiveDecrementLineWidth + (slotSize - knobWidth - knobHorizontalInset) * [self floatValue] + knobInset.left; _partRects[CPScrollerDecrementPage] = CGRectMake(effectiveDecrementLineWidth, 0.0, knobLocation - effectiveDecrementLineWidth, height); _partRects[CPScrollerKnob] = CGRectMake(knobLocation, knobInset.top, knobWidth, knobHeight); @@ -460,9 +463,6 @@ CPThemeStateScrollerKnobDark = CPThemeState("scroller-knob-dark"); */ - (void)fadeOut { - if ([self hasThemeState:CPThemeStateScrollViewLegacy]) - return; - [_animationScroller startAnimation]; } @@ -759,15 +759,25 @@ CPThemeStateScrollerKnobDark = CPThemeState("scroller-knob-dark"); if ([self isHidden] || ![self isEnabled] || !_isMouseOver) return; - _allowFadingOut = YES; + _allowFadingOut = (_style !== CPScrollerStyleLegacy); _isMouseOver = NO; if (_timerFadeOut) [_timerFadeOut invalidate]; - _timerFadeOut = [CPTimer scheduledTimerWithTimeInterval:1.2 target:self selector:@selector(_performFadeOut:) userInfo:nil repeats:NO]; + if ([self hasThemeState:CPThemeStateScrollViewLegacy]) + [self unsetThemeState:CPThemeStateSelected]; + else + _timerFadeOut = [CPTimer scheduledTimerWithTimeInterval:1.2 target:self selector:@selector(_performFadeOut:) userInfo:nil repeats:NO]; } +- (float)scrollerWidth +{ + if (_style == CPScrollerStyleLegacy) + return [self valueForThemeAttribute:@"scroller-width" inState:CPThemeStateScrollViewLegacy]; + + return [self currentValueForThemeAttribute:@"scroller-width"]; +} #pragma mark - #pragma mark Delegates diff --git a/AppKit/CPSearchField.j b/AppKit/CPSearchField.j index b6f42ba75..a54d8f49f 100644 --- a/AppKit/CPSearchField.j +++ b/AppKit/CPSearchField.j @@ -73,10 +73,20 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat @"image-cancel": [CPNull null], @"image-cancel-pressed": [CPNull null], @"image-search-inset" : CGInsetMake(0, 0, 0, 5), - @"image-cancel-inset" : CGInsetMake(0, 5, 0, 0) + @"image-cancel-inset" : CGInsetMake(0, 5, 0, 0), + @"search-menu-offset": CGPointMake(10, -4), + @"search-right-margin": 2 }; } ++ (Class)_binderClassForBinding:(CPString)aBinding +{ + if (aBinding === CPPredicateBinding) + return [_CPSearchFieldPredicateBinder class]; + + return [super _binderClassForBinding:aBinding]; +} + - (id)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) @@ -87,10 +97,6 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat _recentsAutosaveName = nil; [self _init]; -#if PLATFORM(DOM) - _cancelButton._DOMElement.style.cursor = "default"; - _searchButton._DOMElement.style.cursor = "default"; -#endif } return self; @@ -177,7 +183,7 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat - (void)resetSearchButton { var button = [self searchButton], - searchButtonImage = (_searchMenuTemplate === nil) ? [self valueForThemeAttribute:@"image-search"] : [self valueForThemeAttribute:@"image-find"]; + searchButtonImage = (_searchMenuTemplate === nil) ? [self currentValueForThemeAttribute:@"image-search"] : [self currentValueForThemeAttribute:@"image-find"]; [button setBordered:NO]; [button setImageScaling:CPImageScaleAxesIndependently]; @@ -246,8 +252,9 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat if (_searchButton) { - var searchBounds = [self searchButtonRectForBounds:bounds]; - leftOffset = CGRectGetMaxX(searchBounds) + 2; + var searchBounds = [self searchButtonRectForBounds:bounds], + rightMargin = [self currentValueForThemeAttribute:@"search-right-margin"]; + leftOffset = CGRectGetMaxX(searchBounds) + rightMargin; } if (_cancelButton) @@ -531,19 +538,16 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat } /*! - Provides the common case items for a recent searches menu. If there are not recent searches, - displays a single disabled item: - - No Recent Searches + Provides the common case items for a recent searches menu. If there are 1 more recent searches, it displays: - Recent Searches - recent search 1 - recent search 2 - etc. + Clear --------------------- - Clear Recent Searches + Recent Searches + recent search 1 + recent search 2 + etc. If you wish to add items before or after the template, you can. If you put items before, a separator will automatically be placed before the default template item. @@ -568,6 +572,13 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat var template = [[CPMenu alloc] init], item; + item = [[CPMenuItem alloc] initWithTitle:@"Clear" + action:@selector(_searchFieldClearRecents:) + keyEquivalent:@""]; + [item setTag:CPSearchFieldClearRecentsMenuItemTag]; + [item setTarget:self]; + [template addItem:item]; + item = [[CPMenuItem alloc] initWithTitle:@"Recent Searches" action:nil keyEquivalent:@""]; @@ -582,20 +593,6 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat [item setTarget:self]; [template addItem:item]; - item = [[CPMenuItem alloc] initWithTitle:@"Clear Recent Searches" - action:@selector(_searchFieldClearRecents:) - keyEquivalent:@""]; - [item setTag:CPSearchFieldClearRecentsMenuItemTag]; - [item setTarget:self]; - [template addItem:item]; - - item = [[CPMenuItem alloc] initWithTitle:@"No Recent Searches" - action:nil - keyEquivalent:@""]; - [item setTag:CPSearchFieldNoRecentsMenuItemTag]; - [item setEnabled:NO]; - [template addItem:item]; - return template; } @@ -608,6 +605,8 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat countOfRecents = [_recentSearches count], numberOfItems = [_searchMenuTemplate numberOfItems]; + [menu setAutoenablesItems:NO]; + for (var i = 0; i < numberOfItems; i++) { var item = [[_searchMenuTemplate itemAtIndex:i] copy]; @@ -631,7 +630,6 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat var recentItem = [[CPMenuItem alloc] initWithTitle:[_recentSearches objectAtIndex:recentIndex] action:itemAction keyEquivalent:[item keyEquivalent]]; - [recentItem setIndentationLevel:1]; [item setTarget:self]; [menu addItem:recentItem]; } @@ -689,11 +687,12 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat - (void)_showMenu { - if (_searchMenu === nil || [_searchMenu numberOfItems] === 0 || ![self isEnabled]) + if (_searchMenu === nil || [_searchMenu numberOfItems] === 0 || ![self isEnabled] || ([_recentSearches count] === 0)) return; var aFrame = [[self superview] convertRect:[self frame] toView:nil], - location = CGPointMake(aFrame.origin.x + 10, aFrame.origin.y + aFrame.size.height - 4); + offset = [self currentValueForThemeAttribute:@"search-menu-offset"], + location = CGPointMake(aFrame.origin.x + offset.x, aFrame.origin.y + aFrame.size.height + offset.y); var anEvent = [CPEvent mouseEventWithType:CPRightMouseDown location:location modifierFlags:0 timestamp:[[CPApp currentEvent] timestamp] windowNumber:[[self window] windowNumber] context:nil eventNumber:1 clickCount:1 pressure:0]; @@ -771,8 +770,75 @@ var CPAutosavedRecentsChangedNotification = @"CPAutosavedRecentsChangedNotificat _recentSearches = list; } +- (void)unbind:(CPString)aBinding +{ + [super unbind:aBinding]; + + // our CPPredicateBinding binder adds a binding to the value. + // this private binding has to be also removed + if (aBinding === CPPredicateBinding) + [[[self class] _binderClassForBinding:aBinding] unbind:CPValueBinding forObject:self]; +} + @end +#pragma mark - + +@implementation CPSearchField (CPTrackingArea) +{ + CPTrackingArea _searchButtonTrackingArea; + CPTrackingArea _cancelButtonTrackingArea; +} + +- (void)updateTrackingAreas +{ + if (_searchButtonTrackingArea) + { + [self removeTrackingArea:_searchButtonTrackingArea]; + _searchButtonTrackingArea = nil; + } + + if (_cancelButtonTrackingArea) + { + [self removeTrackingArea:_cancelButtonTrackingArea]; + _cancelButtonTrackingArea = nil; + } + + if (_searchButton) + { + _searchButtonTrackingArea = [[CPTrackingArea alloc] initWithRect:[_searchButton frame] + options:CPTrackingCursorUpdate | CPTrackingActiveInKeyWindow + owner:self + userInfo:@{ @"isButton": YES }]; + + [self addTrackingArea:_searchButtonTrackingArea]; + } + + if (_cancelButton) + { + _cancelButtonTrackingArea = [[CPTrackingArea alloc] initWithRect:[_cancelButton frame] + options:CPTrackingCursorUpdate | CPTrackingActiveInKeyWindow + owner:self + userInfo:@{ @"isButton": YES }]; + + [self addTrackingArea:_cancelButtonTrackingArea]; + } + + [super updateTrackingAreas]; +} + +- (void)cursorUpdate:(CPEvent)anEvent +{ + if ([[[anEvent trackingArea] userInfo] objectForKey:@"isButton"]) + [[CPCursor arrowCursor] set]; + else + [super cursorUpdate:anEvent]; +} + +@end + +#pragma mark - + var CPRecentsAutosaveNameKey = @"CPRecentsAutosaveNameKey", CPSendsWholeSearchStringKey = @"CPSendsWholeSearchStringKey", CPSendsSearchStringImmediatelyKey = @"CPSendsSearchStringImmediatelyKey", @@ -825,3 +891,44 @@ var CPRecentsAutosaveNameKey = @"CPRecentsAutosaveNameKey", } @end + +@implementation _CPSearchFieldPredicateBinder : CPBinder +{ + CPArrayController _controller; + CPString _predicateFormat; +} + +- (void)setValue:(id)aValue forBinding:(CPString)aBinding +{ + if (aBinding === CPPredicateBinding) + { + var options = [_info objectForKey:CPOptionsKey]; + + _controller = [_info objectForKey:CPObservedObjectKey]; + _predicateFormat = [options objectForKey:"CPPredicateFormat"]; + [_source bind:CPValueBinding toObject:self withKeyPath:"searchFieldValue" options:nil]; + } +} + +- (void)setSearchFieldValue:(CPString)aValue +{ + var destination = [_info objectForKey:CPObservedObjectKey], + keyPath = [_info objectForKey:CPObservedKeyPathKey]; + + var formatString = _predicateFormat.replace(/\$value/g, "%@"); + [self suppressSpecificNotificationFromObject:destination keyPath:keyPath]; + + if (aValue) + [_controller setFilterPredicate:[CPPredicate predicateWithFormat:formatString, aValue]]; + else + [_controller setFilterPredicate:nil]; + + [self unsuppressSpecificNotificationFromObject:destination keyPath:keyPath]; +} +- (CPString)searchFieldValue +{ + return [_source stringValue]; +} + +@end + diff --git a/AppKit/CPSegmentedControl.j b/AppKit/CPSegmentedControl.j index bd9ec8e04..9a42a8cab 100644 --- a/AppKit/CPSegmentedControl.j +++ b/AppKit/CPSegmentedControl.j @@ -872,64 +872,68 @@ CPSegmentSwitchTrackingMomentary = 2; var type = [anEvent type], location = [self convertPoint:[anEvent locationInWindow] fromView:nil]; - if (type == CPLeftMouseUp) + switch (type) { - if (_trackingSegment == -1) + case CPLeftMouseUp: + + if (_trackingSegment === CPNotFound) + return; + + if (_trackingSegment === [self testSegment:location]) + { + if (_trackingMode == CPSegmentSwitchTrackingSelectAny) + { + [self setSelected:![self isSelectedForSegment:_trackingSegment] forSegment:_trackingSegment]; + + // With ANY, _selectedSegment means last pressed. + _selectedSegment = _trackingSegment; + } + else + [self setSelected:YES forSegment:_trackingSegment]; + + [self sendAction:[self action] to:[self target]]; + + if (_trackingMode == CPSegmentSwitchTrackingMomentary) + { + [self setSelected:NO forSegment:_trackingSegment]; + + _selectedSegment = CPNotFound; + } + } + + [self drawSegmentBezel:_trackingSegment highlight:NO]; + + _trackingSegment = CPNotFound; + return; - if (_trackingSegment === [self testSegment:location]) - { - if (_trackingMode == CPSegmentSwitchTrackingSelectAny) + case CPLeftMouseDown: + + var trackingSegment = [self testSegment:location]; + if (trackingSegment > CPNotFound && [self isEnabledForSegment:trackingSegment]) { - [self setSelected:![self isSelectedForSegment:_trackingSegment] forSegment:_trackingSegment]; - - // With ANY, _selectedSegment means last pressed. - _selectedSegment = _trackingSegment; + _trackingHighlighted = YES; + _trackingSegment = trackingSegment; + [self drawSegmentBezel:_trackingSegment highlight:YES]; } - else - [self setSelected:YES forSegment:_trackingSegment]; - [self sendAction:[self action] to:[self target]]; + break; - if (_trackingMode == CPSegmentSwitchTrackingMomentary) + case CPLeftMouseDragged: + + if (_trackingSegment === CPNotFound) + return; + + var highlighted = [self testSegment:location] === _trackingSegment; + + if (highlighted != _trackingHighlighted) { - [self setSelected:NO forSegment:_trackingSegment]; + _trackingHighlighted = highlighted; - _selectedSegment = CPNotFound; + [self drawSegmentBezel:_trackingSegment highlight:_trackingHighlighted]; } - } - [self drawSegmentBezel:_trackingSegment highlight:NO]; - - _trackingSegment = -1; - - return; - } - - if (type == CPLeftMouseDown) - { - var trackingSegment = [self testSegment:location]; - if (trackingSegment > -1 && [self isEnabledForSegment:trackingSegment]) - { - _trackingHighlighted = YES; - _trackingSegment = trackingSegment; - [self drawSegmentBezel:_trackingSegment highlight:YES]; - } - } - - else if (type == CPLeftMouseDragged) - { - if (_trackingSegment == -1) - return; - - var highlighted = [self testSegment:location] === _trackingSegment; - - if (highlighted != _trackingHighlighted) - { - _trackingHighlighted = highlighted; - - [self drawSegmentBezel:_trackingSegment highlight:_trackingHighlighted]; - } + break; } [CPApp setTarget:self selector:@selector(trackSegment:) forNextEventMatchingMask:CPLeftMouseDraggedMask | CPLeftMouseUpMask untilDate:nil inMode:nil dequeue:YES]; diff --git a/AppKit/CPSplitView.j b/AppKit/CPSplitView.j index 2db96912e..78c51553c 100644 --- a/AppKit/CPSplitView.j +++ b/AppKit/CPSplitView.j @@ -1201,18 +1201,35 @@ The sum of the views and the sum of the dividers should be equal to the size of @end @implementation CPSplitView (CPTrackingArea) +{ + CPMutableArray _splitViewTrackingAreas; +} - (void)updateTrackingAreas { - [self removeAllTrackingAreas]; + if (_splitViewTrackingAreas) + { + for (var i = 0, count = [_splitViewTrackingAreas count]; i < count; i++) + [self removeTrackingArea:_splitViewTrackingAreas[i]]; + + _splitViewTrackingAreas = nil; + } var options = CPTrackingCursorUpdate | CPTrackingActiveInKeyWindow; + _splitViewTrackingAreas = @[]; + for (var i = 0; i < _subviews.length - 1; i++) - [self addTrackingArea:[[CPTrackingArea alloc] initWithRect:[self effectiveRectOfDividerAtIndex:i] - options:options - owner:self - userInfo:nil]]; + { + [_splitViewTrackingAreas addObject:[[CPTrackingArea alloc] initWithRect:[self effectiveRectOfDividerAtIndex:i] + options:options + owner:self + userInfo:nil]]; + + [self addTrackingArea:_splitViewTrackingAreas[i]]; + } + + [super updateTrackingAreas]; } - (void)cursorUpdate:(CPEvent)anEvent diff --git a/AppKit/CPTabView.j b/AppKit/CPTabView.j index ad26ad45f..f48fb24e7 100644 --- a/AppKit/CPTabView.j +++ b/AppKit/CPTabView.j @@ -35,6 +35,7 @@ CPNoTabsLineBorder = 5; //Has no tabs and displays a line border. CPNoTabsNoBorder = 6; //Displays no tabs and no border. @class _CPTabViewBox +@class _CPSegmentedControl var CPTabViewDidSelectTabViewItemSelector = 1 << 1, CPTabViewShouldSelectTabViewItemSelector = 1 << 2, @@ -65,9 +66,9 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, { CPArray _items; - CPSegmentedControl _tabs; + _CPSegmentedControl _tabs; _CPTabViewBox _box; - CPView _placeHolderView; + CPView _placeholderView @accessors; CPTabViewItem _selectedTabViewItem; @@ -92,8 +93,8 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, - (void)_init { - _tabs = [[CPSegmentedControl alloc] initWithFrame:CGRectMakeZero()]; - [_tabs setHitTests:NO]; + _tabs = [[_CPSegmentedControl alloc] initWithFrame:CGRectMakeZero()]; + [_tabs setTabView:self]; [_tabs setSegments:[CPArray array]]; var height = [_tabs valueForThemeAttribute:@"min-size"].height; @@ -106,7 +107,7 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, [self addSubview:_box]; [self addSubview:_tabs]; - _placeHolderView = nil; + _placeholderView = nil; } - (CPArray)items @@ -131,10 +132,10 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, */ - (void)insertTabViewItem:(CPTabViewItem)aTabViewItem atIndex:(CPUInteger)anIndex { - [self _insertTabViewItems:[aTabViewItem] atIndexes:[CPIndexSet indexSetWithIndex:anIndex]]; + [self _insertTabViewItems:[aTabViewItem] atIndexes:[CPIndexSet indexSetWithIndex:anIndex] canUpdateSelectedTab:YES]; } -- (void)_insertTabViewItems:(CPArray)tabViewItems atIndexes:(CPIndexSet)indexes +- (void)_insertTabViewItems:(CPArray)tabViewItems atIndexes:(CPIndexSet)indexes canUpdateSelectedTab:(BOOL)canUpdateSelectedTab { var prevItemsCount = [self numberOfTabViewItems]; @@ -147,7 +148,7 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, [self _sendDelegateTabViewDidChangeNumberOfTabViewItems]; // Do not allow empty selection if selection bindings are not enabled. - if (prevItemsCount == 0 && [self numberOfTabViewItems] > 0 && ![self _isSelectionBinded]) + if (prevItemsCount == 0 && [self numberOfTabViewItems] > 0 && ![self _isSelectionBinded] && canUpdateSelectedTab) [self _selectTabViewItemAtIndex:0]; } @@ -525,14 +526,6 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, return [_box backgroundColor]; } -- (void)mouseDown:(CPEvent)anEvent -{ - var segmentIndex = [_tabs testSegment:[_tabs convertPoint:[anEvent locationInWindow] fromView:nil]]; - - if (segmentIndex != CPNotFound && [self selectTabViewItemAtIndex:segmentIndex]) - [_tabs trackSegment:anEvent]; -} - - (void)_repositionTabs { var horizontalCenterOfSelf = CGRectGetWidth([self bounds]) / 2, @@ -617,7 +610,7 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, - (CPBinder)binderForBinding:(CPString)aBinding { - var cls = [[self class] _binderClassForBinding:aBinding] + var cls = [[self class] _binderClassForBinding:aBinding]; return [cls getBinding:aBinding forObject:self]; } @@ -652,17 +645,17 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, - (void)_displayPlaceholder:(CPString)aPlaceholder { - if (_placeHolderView == nil) + if (_placeholderView == nil) { - _placeHolderView = [[CPView alloc] initWithFrame:CGRectMakeZero()]; + _placeholderView = [[CPView alloc] initWithFrame:CGRectMakeZero()]; var textField = [[CPTextField alloc] initWithFrame:CGRectMakeZero()]; [textField setTag:1000]; [textField setTextColor:[CPColor whiteColor]]; [textField setFont:[CPFont boldFontWithName:@"Geneva" size:18 italic:YES]]; - [_placeHolderView addSubview:textField]; + [_placeholderView addSubview:textField]; } - var textField = [_placeHolderView viewWithTag:1000]; + var textField = [_placeholderView viewWithTag:1000]; [textField setStringValue:aPlaceholder]; [textField sizeToFit]; @@ -672,7 +665,7 @@ var CPTabViewDidSelectTabViewItemSelector = 1 << 1, [textField setFrameOrigin:origin]; - [self _displayItemView:_placeHolderView]; + [self _displayItemView:_placeholderView]; } #pragma mark - @@ -803,7 +796,7 @@ var CPTabViewItemsKey = "CPTabViewItemsKey", [_tabs setFont:_font]; var items = [aCoder decodeObjectForKey:CPTabViewItemsKey] || [CPArray array]; - [self _insertTabViewItems:items atIndexes:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(0, [items count])]]; + [self _insertTabViewItems:items atIndexes:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(0, [items count])] canUpdateSelectedTab:NO]; [self setDelegate:[aCoder decodeObjectForKey:CPTabViewDelegateKey]]; @@ -887,3 +880,77 @@ var CPTabViewItemsKey = "CPTabViewItemsKey", } @end + +# pragma mark - + +// This subclass of CPSegmentedControl implements specific behaviour needed by CPTabView, which +// differs in some ways from normal CPSegmentedControl habits : +// +// - all items are enabled +// - when you select a tab (mouse down, holding) and drag upon another tab, the second one reacts +// (showing a pushed state) and can then be selected by releasing the mouse over it. +// - a delegate has the opportunity to accept or not the selection of an item + +@implementation _CPSegmentedControl : CPSegmentedControl +{ + CPTabView _tabView @accessors(property=tabView); +} + +- (void)trackSegment:(CPEvent)anEvent +{ + var type = [anEvent type], + location = [self convertPoint:[anEvent locationInWindow] fromView:nil], + currentSegment = [self testSegment:location]; + + switch (type) + { + case CPLeftMouseUp: + + if (_trackingSegment === CPNotFound) + return; + + if ((_trackingSegment !== _selectedSegment) && + [_tabView _sendDelegateShouldSelectTabViewItem:[_tabView tabViewItemAtIndex:_trackingSegment]]) + { + [self setSelected:YES forSegment:_trackingSegment]; + _selectedSegment = _trackingSegment; + [_tabView selectTabViewItemAtIndex:_selectedSegment]; + } + + [self drawSegmentBezel:_trackingSegment highlight:NO]; + + _trackingSegment = CPNotFound; + + return; + + case CPLeftMouseDown: + + if (currentSegment > CPNotFound) + { + _trackingSegment = currentSegment; + [self drawSegmentBezel:_trackingSegment highlight:YES]; + } + + break; + + case CPLeftMouseDragged: + + if (_trackingSegment !== currentSegment) + { + if (_trackingSegment > CPNotFound) + [self drawSegmentBezel:_trackingSegment highlight:NO]; + + _trackingSegment = currentSegment; + + if (_trackingSegment > CPNotFound) + [self drawSegmentBezel:_trackingSegment highlight:YES]; + } + + break; + } + + [CPApp setTarget:self selector:@selector(trackSegment:) forNextEventMatchingMask:CPLeftMouseDraggedMask | CPLeftMouseUpMask untilDate:nil inMode:nil dequeue:YES]; +} + +@end + diff --git a/AppKit/CPTableHeaderView.j b/AppKit/CPTableHeaderView.j index 4c2af01ea..cf77ffff6 100644 --- a/AppKit/CPTableHeaderView.j +++ b/AppKit/CPTableHeaderView.j @@ -89,7 +89,7 @@ var inset = [self currentValueForThemeAttribute:@"text-inset"], bounds = [self bounds]; - [_textField setFrame:CGRectMake(inset.right, inset.top, bounds.size.width - inset.right - inset.left, bounds.size.height - inset.top - inset.bottom)]; + [_textField setFrame:CGRectMake(inset.left, inset.top, bounds.size.width - inset.right - inset.left, bounds.size.height - inset.top - inset.bottom)]; [_textField setTextColor:[self currentValueForThemeAttribute:@"text-color"]]; [_textField setFont:[self currentValueForThemeAttribute:@"font"]]; [_textField setTextShadowColor:[self currentValueForThemeAttribute:@"text-shadow-color"]]; @@ -461,21 +461,38 @@ var CPTableHeaderViewResizeZone = 3.0, @end @implementation CPTableHeaderView (CPTrackingArea) +{ + CPMutableArray _tableHeaderViewTrackingAreas; +} - (void)updateTrackingAreas { - [self removeAllTrackingAreas]; + if (_tableHeaderViewTrackingAreas) + { + for (var i = 0, count = [_tableHeaderViewTrackingAreas count]; i < count; i++) + [self removeTrackingArea:_tableHeaderViewTrackingAreas[i]]; + + _tableHeaderViewTrackingAreas = nil; + } var options = CPTrackingCursorUpdate | CPTrackingActiveInKeyWindow; if (!_tableView) return; + _tableHeaderViewTrackingAreas = @[]; + for (var i = 0; i < _tableView._tableColumns.length; i++) - [self addTrackingArea:[[CPTrackingArea alloc] initWithRect:[self _cursorRectForColumn:i] - options:options - owner:self - userInfo:nil]]; + { + [_tableHeaderViewTrackingAreas addObject:[[CPTrackingArea alloc] initWithRect:[self _cursorRectForColumn:i] + options:options + owner:self + userInfo:nil]]; + + [self addTrackingArea:_tableHeaderViewTrackingAreas[i]]; + } + + [super updateTrackingAreas]; } - (void)cursorUpdate:(CPEvent)anEvent @@ -533,7 +550,7 @@ var CPTableHeaderViewResizeZone = 3.0, - (void)_autoscroll:(CPEvent)theEvent localLocation:(CGPoint)theLocation { // Constrain the y coordinate so we don't autoscroll vertically - var constrainedLocation = CGPointMake(theLocation.x, CGRectGetMinY([_tableView visibleRect])), + var constrainedLocation = CGPointMake(theLocation.x, CGRectGetMaxY([self frame])), constrainedEvent = [CPEvent mouseEventWithType:CPLeftMouseDragged location:[self convertPoint:constrainedLocation toView:nil] modifierFlags:[theEvent modifierFlags] diff --git a/AppKit/CPTableView.j b/AppKit/CPTableView.j index 989339290..a4ec8284d 100644 --- a/AppKit/CPTableView.j +++ b/AppKit/CPTableView.j @@ -346,8 +346,8 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5; + (CPDictionary)themeAttributes { return @{ - @"alternating-row-colors": [CPNull null], - @"grid-color": [CPNull null], + @"alternating-row-colors": @[[CPColor whiteColor], [CPColor colorWithRed:245.0 / 255.0 green:249.0 / 255.0 blue:252.0 / 255.0 alpha:1.0]], + @"grid-color": [CPColor colorWithHexString:@"dce0e2"], @"grid-line-thickness": 1.0, @"highlighted-grid-color": [CPNull null], @"selection-color": [CPNull null], @@ -368,7 +368,8 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5; @"dropview-above-border-color": [CPNull null], @"dropview-above-border-width": [CPNull null], @"dropview-above-selected-border-color": [CPNull null], - @"dropview-above-selected-border-width": [CPNull null] + @"dropview-above-selected-border-width": [CPNull null], + @"header-view-height": 25.0 }; } @@ -390,8 +391,7 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5; _selectionHighlightStyle = CPTableViewSelectionHighlightStyleRegular; [self setUsesAlternatingRowBackgroundColors:NO]; - [self setAlternatingRowBackgroundColors: - [[CPColor whiteColor], [CPColor colorWithRed:245.0 / 255.0 green:249.0 / 255.0 blue:252.0 / 255.0 alpha:1.0]]]; + [self setAlternatingRowBackgroundColors:[self valueForThemeAttribute:@"alternating-row-colors"]]; _tableColumns = []; _tableColumnRanges = []; @@ -401,10 +401,10 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5; _intercellSpacing = CGSizeMake(3.0, 2.0); _rowHeight = [self valueForThemeAttribute:@"default-row-height"]; - [self setGridColor:[CPColor colorWithHexString:@"dce0e2"]]; + [self setGridColor:[self valueForThemeAttribute:@"grid-color"]]; [self setGridStyleMask:CPTableViewGridNone]; - [self setHeaderView:[[CPTableHeaderView alloc] initWithFrame:CGRectMake(0, 0, [self bounds].size.width, _rowHeight)]]; + [self setHeaderView:[[CPTableHeaderView alloc] initWithFrame:CGRectMake(0, 0, [self bounds].size.width, [self valueForThemeAttribute:@"header-view-height"])]]; [self setCornerView:[[_CPCornerView alloc] initWithFrame:CGRectMake(0, 0, [CPScroller scrollerWidth], CGRectGetHeight([_headerView frame]))]]; _currentHighlightedTableColumn = nil; @@ -3154,7 +3154,7 @@ Your delegate can implement this method to avoid subclassing the tableview to ad // Now a view that clips the column data views, which itself is clipped to the content view var columnVisRect = CGRectIntersection(columnRect, visibleRect); - frame = CGRectMake(0.0, CGRectGetHeight(headerFrame), CGRectGetWidth(columnVisRect), CGRectGetHeight(columnVisRect)); + frame = CGRectMake(0.0, CGRectGetHeight(headerFrame), CGRectGetWidth(columnRect), CGRectGetHeight(columnVisRect)); var columnClipView = [[CPView alloc] initWithFrame:frame]; @@ -3189,6 +3189,7 @@ Your delegate can implement this method to avoid subclassing the tableview to ad // While dragging, the column is deselected in the table view [_selectedColumnIndexes removeIndex:columnIndex]; + [self setNeedsDisplay:YES]; return dragView; } @@ -5139,7 +5140,7 @@ Your delegate can implement this method to avoid subclassing the tableview to ad { [super viewWillMoveToWindow:aWindow]; - [self _stopObservingFirstResponderForWindow:aWindow]; + [self _stopObservingFirstResponderForWindow:[self window]]; if (aWindow) [self _startObservingFirstResponderForWindow:aWindow]; @@ -6368,7 +6369,7 @@ var CPTableViewDataSourceKey = @"CPTableViewDataSourceKey", if (tableView._draggedColumnIsSelected) { - CGContextSetFillColor(context, [tableView selectionHighlightColor]); + CGContextSetFillColor(context, [tableView _isFocused] ? [tableView selectionHighlightColor] : [tableView unfocusedSelectionHighlightColor]); CGContextFillRect(context, bounds); } else diff --git a/AppKit/CPTextField.j b/AppKit/CPTextField.j index 6eefbc083..66f6f2f56 100644 --- a/AppKit/CPTextField.j +++ b/AppKit/CPTextField.j @@ -2183,21 +2183,32 @@ var CPTextFieldIsEditableKey = "CPTextFieldIsEditableKey", @end @implementation CPTextField (CPTrackingArea) +{ + CPTrackingArea _textFieldTrackingArea; +} - (void)updateTrackingAreas { - [self removeAllTrackingAreas]; + if (_textFieldTrackingArea) + { + [self removeTrackingArea:_textFieldTrackingArea]; + _textFieldTrackingArea = nil; + } if ([self isEnabled] && (_isEditable || _isSelectable)) { var myBounds = CGRectMakeCopy([self bounds]), contentInset = [self currentValueForThemeAttribute:@"content-inset"]; + + _textFieldTrackingArea = [[CPTrackingArea alloc] initWithRect:CGRectInsetByInset(myBounds, contentInset) + options:CPTrackingCursorUpdate | CPTrackingActiveInKeyWindow + owner:self + userInfo:nil]; - [self addTrackingArea:[[CPTrackingArea alloc] initWithRect:CGRectInsetByInset(myBounds, contentInset) - options:CPTrackingMouseEnteredAndExited | CPTrackingCursorUpdate | CPTrackingActiveInKeyWindow - owner:self - userInfo:nil]]; + [self addTrackingArea:_textFieldTrackingArea]; } + + [super updateTrackingAreas]; } - (void)cursorUpdate:(CPEvent)anEvent @@ -2206,3 +2217,22 @@ var CPTextFieldIsEditableKey = "CPTextFieldIsEditableKey", } @end + +#pragma mark - + +@implementation CPTextField (TableDataView) + +// We overide here _CPObject+Theme setValue:forThemeAttribute as CPTextField can be used as tableView data view +// So, when outside a table data view, setValue:forThemeAttribute should store the value with the CPThemeStateNormal (default behavior) +// When inside a table data view, it should store the value with the CPThemeStateTableDataView. If not, the value won't be used if the +// theme defined a value for this attribute for state CPThemeStateTableDataView + +- (void)setValue:(id)aValue forThemeAttribute:(CPString)aName +{ + [super setValue:aValue forThemeAttribute:aName]; + [super setValue:aValue forThemeAttribute:aName inState:CPThemeStateTableDataView]; +} + +@end + + diff --git a/AppKit/CPTextView/CPLayoutManager.j b/AppKit/CPTextView/CPLayoutManager.j index 77e55fd98..7bcffcefc 100644 --- a/AppKit/CPTextView/CPLayoutManager.j +++ b/AppKit/CPTextView/CPLayoutManager.j @@ -1277,7 +1277,7 @@ var _objectsInRange = function(aList, aRange) } } -- (void)backgroundColorForGlyphAtIndex:(unsigned)index +- (CPColor)backgroundColorForGlyphAtIndex:(unsigned)index { var run = _objectWithLocationInRange(_runs, index); diff --git a/AppKit/CPTextView/CPTextContainer.j b/AppKit/CPTextView/CPTextContainer.j index f9e988816..7797cd526 100644 --- a/AppKit/CPTextView/CPTextContainer.j +++ b/AppKit/CPTextView/CPTextContainer.j @@ -80,7 +80,7 @@ CPLineMovesUp = 4; @implementation CPTextContainer : CPObject { float _lineFragmentPadding @accessors(property=lineFragmentPadding); - CGSize _size @accessors(property=containerSize) + CGSize _size @accessors(property=containerSize); CPLayoutManager _layoutManager @accessors(property=layoutManager); CPTextView _textView @accessors(property=textView); BOOL _inResizing; diff --git a/AppKit/CPTextView/CPTextView.j b/AppKit/CPTextView/CPTextView.j index 8877c4c3b..1985411aa 100644 --- a/AppKit/CPTextView/CPTextView.j +++ b/AppKit/CPTextView/CPTextView.j @@ -1614,7 +1614,7 @@ Sets the selection to a range of characters in response to user action. [self didChangeText]; [_layoutManager _validateLayoutAndGlyphs]; [self sizeToFit]; - [self scrollRangeToVisible:CPMakeRange(changedRange.location, 0)] + [self scrollRangeToVisible:CPMakeRange(changedRange.location, 0)]; _stickyXLocation = _caret._rect.origin.x; } @@ -1673,6 +1673,8 @@ Sets the selection to a range of characters in response to user action. - (void)insertLineBreak:(id)sender { [self insertText:@"\n"]; + // make sure that the return key is "swallowed" and the default button not triggered as is the case in cocoa + [[self window] _temporarilyDisableKeyEquivalentForDefaultButton]; } - (void)insertTab:(id)sender @@ -2250,7 +2252,8 @@ Sets the selection to a range of characters in response to user action. [[self class] _binderClassForBinding:CPValueBinding], theBinding = [binderClass getBinding:CPAttributedStringBinding forObject:self] || [binderClass getBinding:CPValueBinding forObject:self]; - [theBinding reverseSetValueFor:@"objectValue"]; + if (theBinding && [self isEditable]) + [theBinding reverseSetValueFor:@"objectValue"]; } @end diff --git a/AppKit/CPTheme.j b/AppKit/CPTheme.j index 459615181..c35e8d399 100644 --- a/AppKit/CPTheme.j +++ b/AppKit/CPTheme.j @@ -24,9 +24,12 @@ @import @import @import +@import @class CPView @class _CPThemeAttribute +@class CPImage +@class CPColor var CPThemesByName = { }, CPThemeDefaultTheme = nil, @@ -313,6 +316,71 @@ var CPThemeNameKey = @"CPThemeNameKey", @end +#pragma mark - +#pragma mark CSS Theming + +// The code below adds support for CSS theming with 100% compatibility with current theming system. +// The idea is to extend CPColor and CPImage with CSS components and adapt low level UI components to +// support this new kind of CPColor/CPImage. See CPImageView, CPView and _CPImageAndTextView. +// +// To be considered and treated as CSS based, a theme must set to YES the attribute "css-based" for CPView +// in the theDescriptor (default value is NO), like in the example below : +// +// + (CPView)themedView +// { +// var view = [[CPView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; +// +// [self registerThemeValues:[[@"css-based", YES]] forView:view]; +// +// return view; +// } +// +// You can use the method -(BOOL)isCSSBased on a theme to determine how to cope with it in your own code. +// +// The method -(void)setCSSResourcesPath is meant to be used only by CPThemeBlend during theme loading in order to +// replace the special path "%%" in CSS components (like in url(%%packed.png) ) with the path to the theme blend resources folder. + +@implementation CPTheme (CSSTheming) + +- (void)setCSSResourcesPath:(CPString)pathToResources +{ + [_attributes enumerateKeysAndObjectsUsingBlock:function(aKey, anObject, stop) + { + [anObject enumerateKeysAndObjectsUsingBlock:function(aKey2, anObject2, stop2) + { + // anObject2 is now a _CPThemeAttribute + + [[anObject2 values] enumerateKeysAndObjectsUsingBlock:function(aKey3, anObject3, stop3) + { + if (anObject3.isa && ([anObject3 isKindOfClass:CPImage] || [anObject3 isKindOfClass:CPColor]) && [anObject3 cssDictionary]) + { + // We have a CSS defined image or color + [self _fixPathInCSSDictionary:[anObject3 cssDictionary] withPathToResources:pathToResources]; + [self _fixPathInCSSDictionary:[anObject3 cssBeforeDictionary] withPathToResources:pathToResources]; + [self _fixPathInCSSDictionary:[anObject3 cssAfterDictionary] withPathToResources:pathToResources]; + } + }]; + }]; + }]; +} + +- (void)_fixPathInCSSDictionary:(CPDictionary)aDictionary withPathToResources:(CPString)pathToResources +{ + [aDictionary enumerateKeysAndObjectsUsingBlock:function(aKey, anObject, stop) + { + [aDictionary setObject:[anObject stringByReplacingOccurrencesOfString:@"%%" withString:pathToResources] forKey:aKey]; + }]; +} + +- (BOOL)isCSSBased +{ + return !![self valueForAttributeWithName:@"css-based" forClass:[CPView class]]; +} + +@end + +#pragma mark - + /*! * ThemeStates are immutable objects representing a particular ThemeState. Applications should never be creating * ThemeStates directly but should instead use the CPThemeState function. @@ -659,6 +727,7 @@ CPThemeStateNormalString = String(CPThemeStateNormal); - (id)valueForState:(ThemeState)aState { + // First, search in cache. var stateName = String(aState), value = _cache[stateName]; @@ -666,50 +735,76 @@ CPThemeStateNormalString = String(CPThemeStateNormal); if (value !== undefined) return value; + // Not in cache. OK, search in values. value = [_values objectForKey:stateName]; - if (value === undefined || value === nil) + if ((value !== undefined) && (value !== nil)) + return _cache[stateName] = value; + + // No direct match in values. + // If this is a composite state, find the closest partial subset match. + if (aState._stateNameCount > 1) { - // If this is a composite state, find the closest partial subset match. - if (aState._stateNameCount > 1) + var largestThemeState = [self largestThemeStateMatchForState:aState returnedValue:@ref(value)]; + + if ((value !== undefined) && (value !== nil)) + return _cache[stateName] = value; + } + + // Still don't have a value? OK, let's use the normal value. + value = [_values objectForKey:String(CPThemeStateNormal)]; + + if ((value !== undefined) && (value !== nil)) + return _cache[stateName] = value; + + // No normal value, try asking _themeDefaultAttribute + value = [_themeDefaultAttribute valueForState:aState]; + + if ((value !== undefined) && (value !== nil)) + return _cache[stateName] = value; + + // Well, last option, use default value + value = _defaultValue; + + // Class theme attributes cannot use nil because it's a dictionary. + // So transform CPNull into nil. + if (value === [CPNull null]) + value = nil; + + return _cache[stateName] = value; +} + +- (CPInteger)largestThemeStateMatchForState:(ThemeState)aState returnedValue:(id)valueRef +{ + var stateName = String(aState), + value, + states = [_values allKeys], + count = states ? states.length : 0, + largestThemeState = 0; + + while (count--) + { + var stateObject = CPThemeState(states[count]); + + if (stateObject.isSubsetOf(aState) && stateObject._stateNameCount > largestThemeState) { - var states = [_values allKeys], - count = states ? states.length : 0, - largestThemeState = 0; - - while (count--) - { - var stateObject = CPThemeState(states[count]); - - if (stateObject.isSubsetOf(aState) && stateObject._stateNameCount > largestThemeState) - { - value = [_values objectForKey:states[count]]; - largestThemeState = stateObject._stateNameCount; - } - } + value = [_values objectForKey:states[count]]; + largestThemeState = stateObject._stateNameCount; } - - // Still don't have a value? OK, let's use the normal value. - if (value === undefined || value === nil) - value = [_values objectForKey:String(CPThemeStateNormal)]; } - if (value === undefined || value === nil) - value = [_themeDefaultAttribute valueForState:aState]; + // _themeDefaultAttribute may have a larger theme state match. If so, we have to take it. If not, we take our closest match. + var defaultAttributeFoundValue, + defaultAttributeMatchLength = [_themeDefaultAttribute largestThemeStateMatchForState:aState returnedValue:@ref(defaultAttributeFoundValue)]; - if (value === undefined || value === nil) + if (defaultAttributeMatchLength > largestThemeState) { - value = _defaultValue; - - // Class theme attributes cannot use nil because it's a dictionary. - // So transform CPNull into nil. - if (value === [CPNull null]) - value = nil; + value = defaultAttributeFoundValue; + largestThemeState = defaultAttributeMatchLength; } - _cache[stateName] = value; - - return value; + @deref(valueRef) = value; + return largestThemeState; } - (_CPThemeAttribute)attributeBySettingParentAttribute:(_CPThemeAttribute)anAttribute diff --git a/AppKit/CPThemeBlend.j b/AppKit/CPThemeBlend.j index 78cceaac3..da3e33f1c 100644 --- a/AppKit/CPThemeBlend.j +++ b/AppKit/CPThemeBlend.j @@ -95,6 +95,17 @@ [unarchiver finishDecoding]; } + // CSS Theming + + for (var i = 0, nb = [_themes count], allThemes = [self themeNames], aThemeName, aTheme; i < nb; i++) + { + aThemeName = allThemes[i]; + aTheme = [CPTheme themeNamed:aThemeName]; + + if ([aTheme isCSSBased]) + [aTheme setCSSResourcesPath:[aBundle resourcePath]]; + } + [_loadDelegate blendDidFinishLoading:self]; } diff --git a/AppKit/CPView.j b/AppKit/CPView.j index b81d2362a..c879b4cd2 100644 --- a/AppKit/CPView.j +++ b/AppKit/CPView.j @@ -129,7 +129,8 @@ var DOMElementPrototype = nil, BackgroundVerticalThreePartImage = 1, BackgroundHorizontalThreePartImage = 2, BackgroundNinePartImage = 3, - BackgroundTransparentColor = 4; + BackgroundTransparentColor = 4, + BackgroundCSSStyling = 5; #endif var CPViewFlags = { }, @@ -195,6 +196,10 @@ var CPViewHighDPIDrawingEnabled = YES; CPArray _DOMImageSizes; unsigned _backgroundType; + + // CSS styling + CPArray _cssStylePreviousState; + DOMElement _cssStyleNode; #endif CGRect _dirtyRect; @@ -320,6 +325,18 @@ var CPViewHighDPIDrawingEnabled = YES; return nil; } ++ (CPString)defaultThemeClass +{ + return @"view"; +} + ++ (CPDictionary)themeAttributes +{ + return @{ + @"css-based": NO + }; +} + - (void)_setupViewFlags { var theClass = [self class], @@ -399,6 +416,8 @@ var CPViewHighDPIDrawingEnabled = YES; _DOMImageParts = []; _DOMImageSizes = []; + + _cssStylePreviousState = @[]; #endif _animator = nil; @@ -409,7 +428,12 @@ var CPViewHighDPIDrawingEnabled = YES; _inhibitDOMUpdates = NO; _forceUpdates = NO; - } + + // We force here an updateTrackingAreas in order to let the view install its own tracking areas + // in the case where an externally owned tracking area is installed on this view before putting + // it in the view hierarchy. + [self updateTrackingAreas]; +} return self; } @@ -1954,15 +1978,25 @@ var CPViewHighDPIDrawingEnabled = YES; _backgroundColor = aColor; #if PLATFORM(DOM) + if (_backgroundType === BackgroundCSSStyling) + [_backgroundColor restorePreviousCSSState:@ref(_cssStylePreviousState) forDOMElement:_DOMElement]; + var patternImage = [_backgroundColor patternImage], colorExists = _backgroundColor && ([_backgroundColor patternImage] || [_backgroundColor alphaComponent] > 0.0), colorHasAlpha = colorExists && [_backgroundColor alphaComponent] < 1.0, supportsRGBA = CPFeatureIsCompatible(CPCSSRGBAFeature), colorNeedsDOMElement = colorHasAlpha && !supportsRGBA, amount = 0, - slices; + slices, + // For CSS theming + isCSSBasedColor = [_backgroundColor isCSSBased]; - if ([patternImage isThreePartImage]) + if (isCSSBasedColor) + { + _backgroundType = BackgroundCSSStyling; + amount = -_DOMImageParts.length; + } + else if ([patternImage isThreePartImage]) { _backgroundType = [patternImage isVertical] ? BackgroundVerticalThreePartImage : BackgroundHorizontalThreePartImage; amount = 3; @@ -2025,7 +2059,14 @@ var CPViewHighDPIDrawingEnabled = YES; _DOMElement.removeChild(_DOMImageParts.pop()); } - if (_backgroundType === BackgroundTrivialColor || _backgroundType === BackgroundTransparentColor) + if (_backgroundType === BackgroundCSSStyling) + { + _cssStyleNode = [_backgroundColor applyCSSColorForView:self + onDOMElement:_DOMElement + styleNode:_cssStyleNode + previousState:@ref(_cssStylePreviousState)]; + } + else if (_backgroundType === BackgroundTrivialColor || _backgroundType === BackgroundTransparentColor) { var colorCSS = colorExists ? [_backgroundColor cssString] : ""; @@ -3434,6 +3475,17 @@ setBoundsOrigin: @end +@implementation CPView (CSSTheming) + +- (void)setDOMClassName:(CPString)aClassName +{ +#if PLATFORM(DOM) + _DOMElement.className = aClassName; +#endif +} + +@end + @implementation CPView (Appearance) @@ -3553,11 +3605,12 @@ setBoundsOrigin: /*! Invoked automatically when the view’s geometry changes such that its tracking areas need to be recalculated. - You should override this method to remove out of date tracking areas and add recomputed tracking areas; + You should override this method to remove out of date tracking areas, add recomputed tracking areas and then call super; Cocoa calls this on every view, whereas they have tracking area(s) or not. Cappuccino behaves differently : - - updateTrackingAreas is called when placing a view in the view hierarchy (that is in a window) + - updateTrackingAreas is called during initWithFrame + - updateTrackingAreas is also called when placing a view in the view hierarchy (that is in a window) - if you have only CPTrackingInVisibleRect tracking areas attached to a view, it will not be called again (until you move the view in the hierarchy) - if you have at least one non-CPTrackingInVisibleRect tracking area attached, it will be called every time the view geometry could be modified You don't have to touch to CPTrackingInVisibleRect tracking areas, they will be automatically updated @@ -3571,25 +3624,6 @@ setBoundsOrigin: } -/*! - This utility method is intended for CPView subclasses overriding updateTrackingAreas - - Typical use would be : - - - (void)updateTrackingAreas - { - [self removeAllTrackingAreas]; - - ... add your specific updated tracking areas ... - } - -*/ -- (void)removeAllTrackingAreas -{ - while (_trackingAreas.length > 0) - [self _removeTrackingArea:_trackingAreas[0]]; -} - // Internal methods - (void)_removeTrackingArea:(CPTrackingArea)trackingArea @@ -3749,6 +3783,8 @@ var CPViewAutoresizingMaskKey = @"CPViewAutoresizingMask", // DOM SETUP #if PLATFORM(DOM) + _cssStylePreviousState = @[]; + _DOMImageParts = []; _DOMImageSizes = []; diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index ad5fd30f5..9e3d45d91 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -238,6 +238,7 @@ var CPWindowActionMessageKeys = [ CPButton _defaultButton; BOOL _defaultButtonEnabled; + BOOL _defaultButtonDisabledTemporarily; BOOL _autorecalculatesKeyViewLoop; BOOL _keyViewLoopIsDirty; @@ -402,6 +403,7 @@ CPTexturedBackgroundWindowMask _autorecalculatesKeyViewLoop = NO; _defaultButtonEnabled = YES; + _defaultButtonDisabledTemporarily = NO; _keyViewLoopIsDirty = NO; _hasBecomeKeyWindow = NO; @@ -990,6 +992,9 @@ CPTexturedBackgroundWindowMask [self makeMainWindow]; [_platformWindow _setShouldUpdateContentRect:YES]; + + if ([self attachedSheet]) + [_platformWindow order:CPWindowAbove window:[self attachedSheet] relativeTo:nil]; } /* @@ -1810,7 +1815,7 @@ CPTexturedBackgroundWindowMask /*! Returns \c YES if the window can be moved. */ -- (void)isMovable +- (BOOL)isMovable { return _isMovable; } @@ -1851,16 +1856,12 @@ CPTexturedBackgroundWindowMask // CPLeftMouseDown is needed for window moving and resizing to work. // CPMouseMoved is needed for rollover effects on title bar buttons. - if (sheet) + if (sheet && _sheetContext["isAttached"]) { switch (type) { case CPLeftMouseDown: - // This is needed when a doubleClick occurs when the sheet is closing or opening - if (!_parentWindow) - return; - [_windowView mouseDown:anEvent]; // -dw- if the window is clicked, the sheet should come to front, and become key, @@ -1931,8 +1932,7 @@ CPTexturedBackgroundWindowMask [[self firstResponder] keyDown:anEvent]; // Trigger the default button if needed - // FIXME: Is this only applicable in a sheet? See isse: #722. - if (![self disableKeyEquivalentForDefaultButton]) + if (_defaultButtonEnabled && !_defaultButtonDisabledTemporarily) { var defaultButton = [self defaultButton], keyEquivalent = [defaultButton keyEquivalent], @@ -1942,6 +1942,8 @@ CPTexturedBackgroundWindowMask [[self defaultButton] performClick:self]; } + _defaultButtonDisabledTemporarily = NO; + return; case CPScrollWheel: @@ -1983,7 +1985,7 @@ CPTexturedBackgroundWindowMask var theWindow = [anEvent window], selector = type == CPRightMouseDown ? @selector(rightMouseDown:) : @selector(mouseDown:); - if ([theWindow isKeyWindow] || ([theWindow becomesKeyOnlyIfNeeded] && ![_leftMouseDownView needsPanelToBecomeKey])) + if (([theWindow _isFrontmostWindow] && [theWindow isKeyWindow]) || ([theWindow becomesKeyOnlyIfNeeded] && ![_leftMouseDownView needsPanelToBecomeKey])) return [_leftMouseDownView performSelector:selector withObject:anEvent]; else { @@ -2106,6 +2108,28 @@ CPTexturedBackgroundWindowMask return (_styleMask & CPTitledWindowMask) || [self isFullPlatformWindow] || _isSheet; } + /* @ignore */ +- (BOOL)_isFrontmostWindow +{ + if ([self isFullBridge]) + return YES; + + var orderedWindows = [CPApp orderedWindows]; + + if ([orderedWindows count] == 0) + return YES; + + if ([orderedWindows objectAtIndex:0] === self) + return YES; + + // this is necessary, because the CPMainMenuWindow is always the first object in orderedWindows, even if another window is in front of it + if ([[orderedWindows objectAtIndex:0] level] === CPMainMenuWindowLevel && + [orderedWindows count] > 1 && [orderedWindows objectAtIndex:1] === self) + return YES; + + return NO; +} + /*! Returns \c YES if the window is the key window. */ @@ -2366,7 +2390,7 @@ CPTexturedBackgroundWindowMask /*! Returns YES if the window is minimized. */ -- (void)isMiniaturized +- (BOOL)isMiniaturized { return _isMiniaturized; } @@ -3418,6 +3442,11 @@ CPTexturedBackgroundWindowMask _defaultButtonEnabled = NO; } +- (void)_temporarilyDisableKeyEquivalentForDefaultButton +{ + _defaultButtonDisabledTemporarily = YES; +} + /*! Removes the key equivalent for the default button. Note: this method is deprecated. Use disableKeyEquivalentForDefaultButton instead. @@ -3608,6 +3637,20 @@ var keyViewComparator = function(lhs, rhs, context) return [CPPlatform isBrowser] ? [self convertBaseToPlatformWindow:aPoint] : [self convertBaseToScreen:aPoint]; } +/*! + @ignore + get the scroll offset (if any) from native scroll bars (can happen when the platform window shrinks below minSize) +*/ +- (CGPoint)_nativeScrollOffset +{ +#if PLATFORM(DOM) + return CGPointMake(_windowView._DOMElement.scrollLeft, _windowView._DOMElement.scrollTop); +#else + CGPointMake(0, 0); +#endif + +} + /*! Converts aPoint from the global coordinate system to the window coordinate system. */ @@ -3624,9 +3667,10 @@ var keyViewComparator = function(lhs, rhs, context) if ([self _sharesChromeWithPlatformWindow]) return CGPointMakeCopy(aPoint); - var origin = [self frame].origin; + var origin = [self frame].origin, + scrollOffset = [self _nativeScrollOffset]; - return CGPointMake(aPoint.x + origin.x, aPoint.y + origin.y); + return CGPointMake(aPoint.x + origin.x - scrollOffset.x, aPoint.y + origin.y - scrollOffset.y); } /*! @@ -3637,9 +3681,10 @@ var keyViewComparator = function(lhs, rhs, context) if ([self _sharesChromeWithPlatformWindow]) return CGPointMakeCopy(aPoint); - var origin = [self frame].origin; + var origin = [self frame].origin, + scrollOffset = [self _nativeScrollOffset]; - return CGPointMake(aPoint.x - origin.x, aPoint.y - origin.y); + return CGPointMake(aPoint.x - origin.x + scrollOffset.x, aPoint.y - origin.y + scrollOffset.y); } - (CGPoint)convertScreenToBase:(CGPoint)aPoint diff --git a/AppKit/CPWindow/_CPBorderlessBridgeWindowView.j b/AppKit/CPWindow/_CPBorderlessBridgeWindowView.j index 26fe1fe6f..de208b924 100644 --- a/AppKit/CPWindow/_CPBorderlessBridgeWindowView.j +++ b/AppKit/CPWindow/_CPBorderlessBridgeWindowView.j @@ -29,7 +29,7 @@ + (CPString)defaultThemeClass { - return @"bordeless-bridge-window-view"; + return @"borderless-bridge-window-view"; } + (CPDictionary)themeAttributes @@ -81,4 +81,19 @@ [_toolbarBackgroundView setFrame:frame]; } +- (void)setFrameSize:(CGSize)aFrameSize +{ + [super setFrameSize:aFrameSize]; + + var theWindow = [self window]; + + if (_frame.size.width < theWindow._minSize.width || _frame.size.height < theWindow._minSize.height) + [theWindow._contentView setFrameSize:CGSizeMake(MAX(_frame.size.width, theWindow._minSize.width), MAX(_frame.size.height, theWindow._minSize.height))]; + +#if PLATFORM(DOM) + _DOMElement.style.overflowX = (_frame.size.width < theWindow._minSize.width)? "scroll":"hidden"; + _DOMElement.style.overflowY = (_frame.size.height < theWindow._minSize.height)? "scroll":"hidden"; +#endif +} + @end diff --git a/AppKit/CPWindow/_CPWindowView.j b/AppKit/CPWindow/_CPWindowView.j index ead0d2fcf..50d90b5c4 100644 --- a/AppKit/CPWindow/_CPWindowView.j +++ b/AppKit/CPWindow/_CPWindowView.j @@ -984,15 +984,22 @@ _CPWindowViewResizeSlop = 3; @end @implementation _CPWindowView (TrackingAreaAdditions) +{ + CPTrackingArea _windowViewTrackingArea; +} - (void)updateTrackingAreas { - [self removeAllTrackingAreas]; + if (_windowViewTrackingArea) + [self removeTrackingArea:_windowViewTrackingArea]; - [self addTrackingArea:[[CPTrackingArea alloc] initWithRect:[self contentRectForFrameRect:[self frame]] - options:CPTrackingCursorUpdate | CPTrackingActiveInActiveApp - owner:self - userInfo:nil]]; + _windowViewTrackingArea = [[CPTrackingArea alloc] initWithRect:[self contentRectForFrameRect:[self frame]] + options:CPTrackingCursorUpdate | CPTrackingActiveInActiveApp + owner:self + userInfo:nil]; + + [self addTrackingArea:_windowViewTrackingArea]; + [super updateTrackingAreas]; } @end diff --git a/AppKit/Cib/_CPCibClassSwapper.j b/AppKit/Cib/_CPCibClassSwapper.j index 0d432a313..7c18dcf51 100644 --- a/AppKit/Cib/_CPCibClassSwapper.j +++ b/AppKit/Cib/_CPCibClassSwapper.j @@ -31,7 +31,7 @@ var _CPCibClassSwapperClassNameKey = @"_CPCibClassSwapperClassNameKey", { } -+ (void)allocObjectWithCoder:(CPCoder)aCoder className:(CPString)aClassName ++ (id)allocObjectWithCoder:(CPCoder)aCoder className:(CPString)aClassName { // FIXME: Also check class classForClassName: var theClass = [aCoder classForClassName:aClassName]; diff --git a/AppKit/Cib/_CPCibCustomResource.j b/AppKit/Cib/_CPCibCustomResource.j index 63bb24a4f..eac3544fd 100644 --- a/AppKit/Cib/_CPCibCustomResource.j +++ b/AppKit/Cib/_CPCibCustomResource.j @@ -222,3 +222,28 @@ var _CPCibCustomResourceClassNameKey = @"_CPCibCustomResourceClassNameKey", } @end + +@implementation _CPCibCustomResource (CSSTheming) + +- (BOOL)isCSSBased +{ + return NO; +} + +- (BOOL)hasCSSDictionary +{ + return NO; +} + +- (BOOL)hasCSSBeforeDictionary +{ + return NO; +} + +- (BOOL)hasCSSAfterDictionary +{ + return NO; +} + +@end + diff --git a/AppKit/CoreAnimation/CAAnimation.j b/AppKit/CoreAnimation/CAAnimation.j index 77c53745b..d22380bd5 100644 --- a/AppKit/CoreAnimation/CAAnimation.j +++ b/AppKit/CoreAnimation/CAAnimation.j @@ -61,7 +61,7 @@ Returns \c YES @return \c YES */ -- (void)shouldArchiveValueForKey:(CPString)aKey +- (BOOL)shouldArchiveValueForKey:(CPString)aKey { return YES; } @@ -131,4 +131,4 @@ [anObject addAnimation:self forKey:aKey]; } -@end \ No newline at end of file +@end diff --git a/AppKit/CoreAnimation/CPViewAnimator.j b/AppKit/CoreAnimation/CPViewAnimator.j index f448061ae..0e2db6c59 100644 --- a/AppKit/CoreAnimation/CPViewAnimator.j +++ b/AppKit/CoreAnimation/CPViewAnimator.j @@ -214,7 +214,7 @@ var transformSizeToHeight = function(start, current) var CSSStringFromCGAffineTransform = function(anAffineTransform) { - return "matrix(" + anAffineTransform.a + ", " + anAffineTransform.b + ", " + anAffineTransform.c + ", " + anAffineTransform.d + ", " + anAffineTransform.tx + (CPBrowserIsEngine(CPGeckoBrowserEngine) ? "px, " : ", ") + anAffineTransform.ty + (CPBrowserIsEngine(CPGeckoBrowserEngine) ? "px)" : ")"); + return [CPString stringWithFormat:@"matrix(%d,%d,%d,%d,%d,%d)", anAffineTransform.a, anAffineTransform.b, anAffineTransform.c, anAffineTransform.d, anAffineTransform.tx, anAffineTransform.ty]; }; var frameOriginToCSSTransformMatrix = function(start, current) diff --git a/AppKit/CoreAnimation/_CPObjectAnimator.j b/AppKit/CoreAnimation/_CPObjectAnimator.j index 944327057..192735f42 100644 --- a/AppKit/CoreAnimation/_CPObjectAnimator.j +++ b/AppKit/CoreAnimation/_CPObjectAnimator.j @@ -20,7 +20,7 @@ var _supportsCSSAnimations = null; id _target; } -+ (BOOL)initialize ++ (void)initialize { if ([self class] !== [_CPObjectAnimator class]) return; diff --git a/AppKit/Platform/CPPlatformWindow.j b/AppKit/Platform/CPPlatformWindow.j index 16b1a4954..a3a5d7f26 100644 --- a/AppKit/Platform/CPPlatformWindow.j +++ b/AppKit/Platform/CPPlatformWindow.j @@ -224,18 +224,10 @@ var PrimaryPlatformWindow = NULL; - (void)deminiaturize:(id)sender { -#if PLATFORM(DOM) - if (_DOMWindow && typeof _DOMWindow["cpDeminiaturize"] === "function") - _DOMWindow.cpDeminiaturize(); -#endif } - (void)miniaturize:(id)sender { -#if PLATFORM(DOM) - if (_DOMWindow && typeof _DOMWindow["cpMiniaturize"] === "function") - _DOMWindow.cpMiniaturize(); -#endif } - (void)moveWindow:(CPWindow)aWindow fromLevel:(int)fromLevel toLevel:(int)toLevel @@ -255,31 +247,16 @@ var PrimaryPlatformWindow = NULL; - (void)setLevel:(CPInteger)aLevel { _level = aLevel; - -#if PLATFORM(DOM) - if (_DOMWindow && _DOMWindow.cpSetLevel) - _DOMWindow.cpSetLevel(aLevel); -#endif } - (void)setHasShadow:(BOOL)shouldHaveShadow { _hasShadow = shouldHaveShadow; - -#if PLATFORM(DOM) - if (_DOMWindow && _DOMWindow.cpSetHasShadow) - _DOMWindow.cpSetHasShadow(shouldHaveShadow); -#endif } - (void)setShadowStyle:(int)aStyle { _shadowStyle = aStyle; - -#if PLATFORM(DOM) - if (_DOMWindow && _DOMWindow.cpSetShadowStyle) - _shadowStyle.cpSetShadowStyle(aStyle); -#endif } - (BOOL)supportsFullPlatformWindows @@ -308,7 +285,7 @@ var PrimaryPlatformWindow = NULL; - (BOOL)_canUpdateContentRect { - // We onyl update the contentRect with the frame of the bridgeless window if we have initialized the platform with the method initWithWindow: + // We only update the contentRect with the frame of the bridgeless window if we have initialized the platform with the method initWithWindow: return _shouldUpdateContentRect && _hasInitializeInstanceWithWindow; } diff --git a/AppKit/Platform/DOM/CPPlatformWindow+DOM.j b/AppKit/Platform/DOM/CPPlatformWindow+DOM.j index 31a63529b..49bb0331e 100644 --- a/AppKit/Platform/DOM/CPPlatformWindow+DOM.j +++ b/AppKit/Platform/DOM/CPPlatformWindow+DOM.j @@ -205,6 +205,9 @@ var resizeTimer = nil; var PreventScroll = true; var blurTimer = nil; +var touchStartingPointX, + touchStartingPointY; + _CPPlatformWindowWillCloseNotification = @"_CPPlatformWindowWillCloseNotification"; @@ -244,9 +247,6 @@ _CPPlatformWindowWillCloseNotification = @"_CPPlatformWindowWillCloseNotificatio if (!_DOMWindow) return [self contentRect]; - if (_DOMWindow.cpFrame) - return _DOMWindow.cpFrame(); - var contentRect = CGRectMakeZero(); if (window.screenTop) @@ -275,9 +275,6 @@ _CPPlatformWindowWillCloseNotification = @"_CPPlatformWindowWillCloseNotificatio if (!_DOMWindow) return; - if (typeof _DOMWindow["cpSetFrame"] === "function") - return _DOMWindow.cpSetFrame([self contentRect]); - var origin = [self contentRect].origin, nativeOrigin = [self nativeContentRect].origin; @@ -430,10 +427,10 @@ _CPPlatformWindowWillCloseNotification = @"_CPPlatformWindowWillCloseNotificatio theDocument.addEventListener("keydown", keyEventCallback, NO); theDocument.addEventListener("keypress", keyEventCallback, NO); - theDocument.addEventListener("touchstart", touchEventCallback, NO); - theDocument.addEventListener("touchend", touchEventCallback, NO); - theDocument.addEventListener("touchmove", touchEventCallback, NO); - theDocument.addEventListener("touchcancel", touchEventCallback, NO); + theDocument.addEventListener("touchstart", touchEventCallback, {passive: false}); + theDocument.addEventListener("touchend", touchEventCallback, {passive: false}); + theDocument.addEventListener("touchmove", touchEventCallback, {passive: false}); + theDocument.addEventListener("touchcancel", touchEventCallback, {passive: false}); _DOMWindow.addEventListener("DOMMouseScroll", scrollEventCallback, NO); _DOMWindow.addEventListener("wheel", scrollEventCallback, NO); @@ -573,22 +570,12 @@ _CPPlatformWindowWillCloseNotification = @"_CPPlatformWindowWillCloseNotificatio [PlatformWindows addObject:self]; - // FIXME: cpSetFrame? _DOMWindow.document.write(''); _DOMWindow.document.close(); if (self != [CPPlatformWindow primaryPlatformWindow]) _DOMWindow.document.title = _title; - if (![CPPlatform isBrowser]) - { - _DOMWindow.cpWindowNumber = [self._only windowNumber]; - _DOMWindow.cpSetFrame(_contentRect); - _DOMWindow.cpSetLevel(_level); - _DOMWindow.cpSetHasShadow(_hasShadow); - _DOMWindow.cpSetShadowStyle(_shadowStyle); - } - [self registerDOMWindow]; _DOMBodyElement.style.cursor = [[CPCursor currentCursor] _cssString]; @@ -1152,10 +1139,26 @@ _CPPlatformWindowWillCloseNotification = @"_CPPlatformWindowWillCloseNotificatio - (void)touchEvent:(DOMEvent)aDOMEvent { + var newEvent = {}, + touch = aDOMEvent.touches.length ? aDOMEvent.touches[0] : aDOMEvent.changedTouches[0]; + + newEvent.timestamp = [CPEvent currentTimestamp]; + newEvent.target = aDOMEvent.target; + newEvent.shiftKey = newEvent.ctrlKey = newEvent.altKey = newEvent.metaKey = false; + + newEvent.clientX = touch.clientX; + + /* + Normally the document can't scroll in Cappuccino: our body element has top:0 and bottom:0 with absolute positioning. So it should always be exactly the height of the viewport. The below handles a special case. iOS scrolls the document when the virtual keyboard is present and it needs to move a text input upwards visually to avoid covering the input with the keyboard. For most purposes we can ignore this, except here. In theory I think we could always apply this (scrollTop should always be 0 on every other device and situation) but let's be defensive and only apply it for touch events to minimise the risk of surprises. + */ + newEvent.clientY = _DOMWindow.document.body.scrollTop + touch.clientY; + + newEvent.preventDefault = function() { if (aDOMEvent.preventDefault) aDOMEvent.preventDefault() }; + newEvent.stopPropagation = function() { if (aDOMEvent.stopPropagation) aDOMEvent.stopPropagation() }; + + // single finger event-> simulate a simple mouse-click if (aDOMEvent.touches && (aDOMEvent.touches.length == 1 || (aDOMEvent.touches.length == 0 && aDOMEvent.changedTouches.length == 1))) { - var newEvent = {}; - switch (aDOMEvent.type) { case CPDOMEventTouchStart: newEvent.type = CPDOMEventMouseDown; @@ -1168,36 +1171,49 @@ _CPPlatformWindowWillCloseNotification = @"_CPPlatformWindowWillCloseNotificatio break; } - var touch = aDOMEvent.touches.length ? aDOMEvent.touches[0] : aDOMEvent.changedTouches[0]; - - newEvent.clientX = touch.clientX; - - /* - Normally the document can't scroll in Cappuccino: our body element has top:0 and bottom:0 with absolute positioning. So it should always be exactly the height of the viewport. The below handles a special case. iOS scrolls the document when the virtual keyboard is present and it needs to move a text input upwards visually to avoid covering the input with the keyboard. For most purposes we can ignore this, except here. In theory I think we could always apply this (scrollTop should always be 0 on every other device and situation) but let's be defensive and only apply it for touch events to minimise the risk of surprises. - */ - newEvent.clientY = _DOMWindow.document.body.scrollTop + touch.clientY; - - newEvent.timestamp = [CPEvent currentTimestamp]; - newEvent.target = aDOMEvent.target; - - newEvent.shiftKey = newEvent.ctrlKey = newEvent.altKey = newEvent.metaKey = false; - - newEvent.preventDefault = function() { if (aDOMEvent.preventDefault) aDOMEvent.preventDefault() }; - newEvent.stopPropagation = function() { if (aDOMEvent.stopPropagation) aDOMEvent.stopPropagation() }; - [self mouseEvent:newEvent]; return; } else { + // two fingers->simulate scrolling events + if (aDOMEvent.touches && aDOMEvent.touches.length == 2) + { + if (aDOMEvent.preventDefault) + aDOMEvent.preventDefault(); + + if (aDOMEvent.stopPropagation) + aDOMEvent.stopPropagation(); + + switch (aDOMEvent.type) + { + case CPDOMEventTouchStart: + touchStartingPointX = touch.pageX; + touchStartingPointY = touch.pageY; + break; + case CPDOMEventTouchMove: + newEvent._hasPreciseScrollingDeltas = YES; + newEvent.deltaX = touchStartingPointX - touch.pageX; + newEvent.deltaY = touchStartingPointY - touch.pageY; + newEvent.type = CPDOMEventScrollWheel; + + [self scrollEvent:newEvent]; + + touchStartingPointX = touch.pageX; + touchStartingPointY = touch.pageY; + return; + } + } + + // cancel other touch cases preventively + if (aDOMEvent.preventDefault) aDOMEvent.preventDefault(); if (aDOMEvent.stopPropagation) aDOMEvent.stopPropagation(); } - // handle touch cases specifically } - (void)mouseEvent:(DOMEvent)aDOMEvent diff --git a/AppKit/Themes/Aristo2/ThemeDescriptors.j b/AppKit/Themes/Aristo2/ThemeDescriptors.j index 391bf8503..67627ba6a 100644 --- a/AppKit/Themes/Aristo2/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo2/ThemeDescriptors.j @@ -534,7 +534,7 @@ var themedButtonValues = nil, // Overlay [@"scroller-width", 14.0, CPThemeStateVertical], - [@"knob-inset", CGInsetMake(2.0, 0.0, 0.0, 0.0), CPThemeStateVertical], + [@"knob-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateVertical], [@"track-inset", CGInsetMake(2.0, 0.0, 2.0, 0.0), CPThemeStateVertical], [@"track-border-overlay", 12.0, CPThemeStateVertical], [@"knob-slot-color", [CPNull null], CPThemeStateVertical], @@ -610,7 +610,7 @@ var themedButtonValues = nil, // Overlay [@"scroller-width", 9.0], - [@"knob-inset", CGInsetMake(0.0, 0.0, 0.0, 2.0)], + [@"knob-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0)], [@"track-inset", CGInsetMake(0.0, 2.0, 0.0, 2.0)], [@"track-border-overlay", 12.0], [@"knob-slot-color", [CPNull null]], @@ -2869,7 +2869,7 @@ var themedButtonValues = nil, + (_CPBorderlessBridgeWindowView)themedBorderlessBridgeWindowView { - var bordelessBridgeWindowView = [[_CPBorderlessBridgeWindowView alloc] initWithFrame:CGRectMake(0,0,0,0)], + var borderlessBridgeWindowView = [[_CPBorderlessBridgeWindowView alloc] initWithFrame:CGRectMake(0,0,0,0)], toolbarBackgroundColor = PatternColor( [ @@ -2883,9 +2883,9 @@ var themedButtonValues = nil, [@"toolbar-background-color", toolbarBackgroundColor] ]; - [self registerThemeValues:themeValues forView:bordelessBridgeWindowView inherit:themedWindowViewValues]; + [self registerThemeValues:themeValues forView:borderlessBridgeWindowView inherit:themedWindowViewValues]; - return bordelessBridgeWindowView; + return borderlessBridgeWindowView; } + (_CPToolbarView)themedToolbarView diff --git a/AppKit/_CPImageAndTextView.j b/AppKit/_CPImageAndTextView.j index 655a1f0ad..e5c1b84ee 100644 --- a/AppKit/_CPImageAndTextView.j +++ b/AppKit/_CPImageAndTextView.j @@ -437,55 +437,67 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0, var textStyle = hasDOMTextElement ? _DOMTextElement.style : nil; - // Create or destroy the DOM Text Shadow element as necessary. - // If _textShadowColor's alphaComponent is 0, don't bother drawing anything (issue #1412). - // This improves performance as we get rid of an invisible element, and makes IE <9.0 capable - // of correctly 'rendering' shadows with [CPColor clearColor]. - var needsDOMTextShadowElement = hasDOMTextElement && [_textShadowColor alphaComponent] > 0.0, - hasDOMTextShadowElement = !!_DOMTextShadowElement; - - if (needsDOMTextShadowElement !== hasDOMTextShadowElement) + // If theme is CSS based and if shadow color is a CSS dictionary, we don't need a separate DOM element, + // we simply put shadow styling on the regular text element + if (hasDOMTextElement && [[self actualTheme] isCSSBased] && [_textShadowColor cssDictionary]) { - if (hasDOMTextShadowElement) + [[_textShadowColor cssDictionary] enumerateKeysAndObjectsUsingBlock:function(aKey, anObject, stop) + { + _DOMTextElement.style[aKey] = anObject; + }]; + } + else + { + // Create or destroy the DOM Text Shadow element as necessary. + // If _textShadowColor's alphaComponent is 0, don't bother drawing anything (issue #1412). + // This improves performance as we get rid of an invisible element, and makes IE <9.0 capable + // of correctly 'rendering' shadows with [CPColor clearColor]. + var needsDOMTextShadowElement = hasDOMTextElement && [_textShadowColor alphaComponent] > 0.0, + hasDOMTextShadowElement = !!_DOMTextShadowElement; + + if (needsDOMTextShadowElement !== hasDOMTextShadowElement) { - _DOMElement.removeChild(_DOMTextShadowElement); - - _DOMTextShadowElement = nil; - - hasDOMTextShadowElement = NO; - } - else - { - _DOMTextShadowElement = document.createElement("div"); - - var shadowStyle = _DOMTextShadowElement.style, - font = (_font || [CPFont systemFontOfSize:CPFontCurrentSystemSize]); - - shadowStyle.font = [font cssString]; - shadowStyle.position = "absolute"; - shadowStyle.whiteSpace = textStyle.whiteSpace; - shadowStyle.wordWrap = textStyle.wordWrap; - shadowStyle.color = [_textShadowColor cssString]; - shadowStyle.lineHeight = [font defaultLineHeightForFont] + "px"; - - shadowStyle.zIndex = 150; - shadowStyle.textOverflow = textStyle.textOverflow; - - if (document.attachEvent) + if (hasDOMTextShadowElement) { - shadowStyle.overflow = textStyle.overflow; + _DOMElement.removeChild(_DOMTextShadowElement); + + _DOMTextShadowElement = nil; + + hasDOMTextShadowElement = NO; } else { - shadowStyle.overflowX = textStyle.overflowX; - shadowStyle.overflowY = textStyle.overflowY; + _DOMTextShadowElement = document.createElement("div"); + + var shadowStyle = _DOMTextShadowElement.style, + font = (_font || [CPFont systemFontOfSize:CPFontCurrentSystemSize]); + + shadowStyle.font = [font cssString]; + shadowStyle.position = "absolute"; + shadowStyle.whiteSpace = textStyle.whiteSpace; + shadowStyle.wordWrap = textStyle.wordWrap; + shadowStyle.color = [_textShadowColor cssString]; + shadowStyle.lineHeight = [font defaultLineHeightForFont] + "px"; + + shadowStyle.zIndex = 150; + shadowStyle.textOverflow = textStyle.textOverflow; + + if (document.attachEvent) + { + shadowStyle.overflow = textStyle.overflow; + } + else + { + shadowStyle.overflowX = textStyle.overflowX; + shadowStyle.overflowY = textStyle.overflowY; + } + + _DOMElement.appendChild(_DOMTextShadowElement); + + hasDOMTextShadowElement = YES; + + _flags |= _CPImageAndTextViewTextChangedFlag; //sigh... } - - _DOMElement.appendChild(_DOMTextShadowElement); - - hasDOMTextShadowElement = YES; - - _flags |= _CPImageAndTextViewTextChangedFlag; //sigh... } } @@ -591,41 +603,55 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0, } var needsDOMImageElement = _image !== nil && _imagePosition !== CPNoImage, - hasDOMImageElement = !!_DOMImageElement; + hasDOMImageElement = !!_DOMImageElement, + // For CSS theming + isCSSBasedImage = [_image isCSSBased], + isIMGImageElement = hasDOMImageElement && (_DOMImageElement.nodeName == "IMG"); - // Create or destroy DOM Image element - if (needsDOMImageElement !== hasDOMImageElement) + // First, check if we need to destroy a current DOM image element. This is the case if : + // - we have one but don't need it anymore + // - we have one but not the right one (that is a DIV but needing an IMG, and vice versa) + + if (hasDOMImageElement) { - if (hasDOMImageElement) + if (!needsDOMImageElement || (isIMGImageElement && isCSSBasedImage) || (!isIMGImageElement && !isCSSBasedImage)) { + // OK, destroy it + _DOMElement.removeChild(_DOMImageElement); _DOMImageElement = nil; hasDOMImageElement = NO; - } - else + // CSS styling cleaning + _cssStylePreviousState = @[]; + _cssStyleNode = nil; + } + } + + // Now, if we need a DOM image element and if we don't have one, create a new one + + if (needsDOMImageElement && !hasDOMImageElement) + { + _DOMImageElement = document.createElement(isCSSBasedImage ? "div" : "img"); + + if ([CPPlatform supportsDragAndDrop]) { - _DOMImageElement = document.createElement("img"); - - if ([CPPlatform supportsDragAndDrop]) - { - _DOMImageElement.setAttribute("draggable", "true"); - _DOMImageElement.style["-khtml-user-drag"] = "element"; - } - - var imageStyle = _DOMImageElement.style; - - imageStyle.top = "0px"; - imageStyle.left = "0px"; - imageStyle.position = "absolute"; - imageStyle.zIndex = 100; - - _DOMElement.appendChild(_DOMImageElement); - - hasDOMImageElement = YES; + _DOMImageElement.setAttribute("draggable", "true"); + _DOMImageElement.style["-khtml-user-drag"] = "element"; } + + var imageStyle = _DOMImageElement.style; + + imageStyle.top = "0px"; + imageStyle.left = "0px"; + imageStyle.position = "absolute"; + imageStyle.zIndex = 100; + + _DOMElement.appendChild(_DOMImageElement); + + hasDOMImageElement = YES; } var size = [self bounds].size, @@ -637,7 +663,15 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0, var imageStyle = _DOMImageElement.style; if (_flags & _CPImageAndTextViewImageChangedFlag) - _DOMImageElement.src = [_image filename]; + { + if (isCSSBasedImage) + _cssStyleNode = [_image applyCSSImageForView:self + onDOMElement:_DOMImageElement + styleNode:_cssStyleNode + previousState:@ref(_cssStylePreviousState)]; + else + _DOMImageElement.src = [_image filename]; + } var centerX = size.width / 2.0, centerY = size.height / 2.0, diff --git a/AppKit/_CPObject+Theme.j b/AppKit/_CPObject+Theme.j index 20f32da85..7c906a1ca 100644 --- a/AppKit/_CPObject+Theme.j +++ b/AppKit/_CPObject+Theme.j @@ -20,6 +20,7 @@ */ @import +@import "CPResponder.j" @import "CPTheme.j" @@ -477,4 +478,29 @@ var NULL_THEME = {}; } } -@end \ No newline at end of file +#pragma mark - +#pragma mark CSS styling additions + +- (CPTheme)actualTheme +{ + return _theme ? _theme : [CPTheme defaultTheme]; +} + +// These methods implement inherited theme attributes thru class hierarchy. +- (id)actualValueForThemeAttribute:(CPString)aName +{ + return [self actualValueForThemeAttribute:aName inState:CPThemeStateNormal]; +} + +- (id)actualValueForThemeAttribute:(CPString)aName inState:(ThemeState)aState +{ + for (var currentClass = [self class], foundAttribute = nil, currentTheme = [self actualTheme]; (currentClass && (currentClass !== CPResponder) && !foundAttribute); currentClass = [currentClass superclass]) + + foundAttribute = [currentTheme attributeWithName:aName forClass:currentClass]; + + return (foundAttribute ? [foundAttribute valueForState:aState] : nil); +} + + + +@end diff --git a/AppKit/_CPPopUpList.j b/AppKit/_CPPopUpList.j index 6ee4e1ff0..7dfa0a010 100644 --- a/AppKit/_CPPopUpList.j +++ b/AppKit/_CPPopUpList.j @@ -233,14 +233,14 @@ var ListColumnIdentifier = @"1"; // Start with a default size, we will resize it later var frame = CGRectMake(0, 0, 200, 200); - _tableColumn = [[CPTableColumn alloc] initWithIdentifier:ListColumnIdentifier]; - [_tableColumn setWidth:CGRectGetWidth(frame) - [CPScroller scrollerWidth]]; - [_tableColumn setResizingMask:CPTableColumnAutoresizingMask]; - [_tableView addTableColumn:_tableColumn]; - _scrollView = [self makeScrollViewWithFrame:CGRectMake(0, 0, CGRectGetWidth(frame), CGRectGetHeight(frame))]; [_scrollView setDocumentView:_tableView]; + _tableColumn = [[CPTableColumn alloc] initWithIdentifier:ListColumnIdentifier]; + [_tableColumn setWidth:CGRectGetWidth(frame) - [[_scrollView verticalScroller] scrollerWidth]]; + [_tableColumn setResizingMask:CPTableColumnAutoresizingMask]; + [_tableView addTableColumn:_tableColumn]; + // This has to be done after setDocumentView so that the table knows which scroll view to update [_tableView setHeaderView:nil]; diff --git a/Foundation/CPDateFormatter.j b/Foundation/CPDateFormatter.j index 65526d738..069649cdd 100644 --- a/Foundation/CPDateFormatter.j +++ b/Foundation/CPDateFormatter.j @@ -49,6 +49,8 @@ var defaultDateFormatterBehavior = CPDateFormatterBehavior10_4, relativeDateFormating, patternStringTokens; +var _separatorsCharacterSet = nil; + /*! @ingroup foundation @class CPDateFormatter @@ -84,7 +86,7 @@ var defaultDateFormatterBehavior = CPDateFormatterBehavior10_4, relativeDateFormating = @{ @"fr" : [@"demain", 1, @"apr" + String.fromCharCode(233) + @"s-demain", 2, @"apr" + String.fromCharCode(233) + @"s-apr" + String.fromCharCode(233) + @"s-demain", 3, @"hier", -1, @"avant-hier", -2, @"avant-avant-hier", -3], @"en" : [@"tomorrow", 1, @"yesterday", -1], - @"de" : [], + @"de" : [@"morgen", 1, @"gestern", -1, String.fromCharCode(129) + @"bermorgen", 2, @"vorgestern", -2], @"es" : [] }; @@ -136,6 +138,14 @@ var defaultDateFormatterBehavior = CPDateFormatterBehavior10_4, defaultDateFormatterBehavior = behavior; } ++ (CPCharacterSet)_separatorsCharacterSet +{ + if (_separatorsCharacterSet == nil) + _separatorsCharacterSet = [CPCharacterSet characterSetWithCharactersInString:@" ,:/-."]; + + return _separatorsCharacterSet; +} + /*! Init a dateFormatter @return a new CPDateFormatter */ @@ -559,7 +569,13 @@ var defaultDateFormatterBehavior = CPDateFormatterBehavior10_4, if ([self _isAmericanFormat]) format = @"M/d/yy"; else - format = @"dd/MM/yy"; + { + if ([_locale objectForKey:CPLocaleLanguageCode] === 'de') + format = @"dd.MM.yy"; + else + format = @"dd/MM/yy"; + + } break; @@ -737,7 +753,7 @@ var defaultDateFormatterBehavior = CPDateFormatterBehavior10_4, continue; } - if ([character isEqualToString:@","] || [character isEqualToString:@":"] || [character isEqualToString:@"/"] || [character isEqualToString:@"-"] || [character isEqualToString:@" "]) + if ([[CPDateFormatter _separatorsCharacterSet] characterIsMember:character]) { result += [self _stringFromToken:currentToken date:aDate]; result += character; diff --git a/README.markdown b/README.markdown index 359d72593..0281bd811 100644 --- a/README.markdown +++ b/README.markdown @@ -8,79 +8,37 @@ Introduction Cappuccino is an open source framework that makes it easy to build desktop-caliber applications that run in a web browser. -Cappuccino is built on top of standard web technologies like JavaScript, and -it implements most of the familiar APIs from GNUstep and Apple's Cocoa -frameworks. When you program in Cappuccino, you don't need to concern yourself -with the complexities of traditional web technologies like HTML, CSS, or even -the DOM. The unpleasantries of building complex cross browser applications are -abstracted away for you. +With Cappuccino, you don't concern yourself with HTML, CSS, or the DOM. You write applications with the APIs from Apple's Cocoa frameworks and the Objective-J language. -For more information, see . Follow [@cappuccino](https://twitter.com/cappuccino) on Twitter for updates on the project. +Check out a [live demo of the widgets in Cappuccino](https://cappuccino-testbook.5apps.com/#ThemeKitchenSink) + +Check out some [live demos and tutorials](https://cappuccino-cookbook.5apps.com) + +For more information, see the + - [Official website](http://cappuccino-project.org) + - [Github Wiki](https://github.com/cappuccino/cappuccino/wiki) + - [FAQ](http://cappuccino-project.org/support/faq.html) + - [Documentation](http://cappuccino-project.org/learn/) + - [Mailing list](http://groups.google.com/group/objectivej) + - [Gitter](https://gitter.im/cappuccino/cappuccino) + +Follow [@cappuccino](https://twitter.com/cappuccino) on Twitter for updates on the project. + +If you discover any bugs, please [file a ticket](http://github.com/cappuccino/cappuccino/issues). System Requirements ------------------- To run Cappuccino applications, all you need is a HTML5 compliant web browser. -To develop Cappuccino applications, all you need is a simple text editor and the starter package. +Our tight integration with Xcode on MacOS brings the full power of visual Cocoa development to the web. -However, Cappuccino's build system and the Xcode integration bring the eases of Cocoa development to web development. - -To build Cappuccino itself, please read below. More information is available -here: [Getting and Building the Source](http://wiki.github.com/cappuccino/cappuccino/getting-and-building-the-source>). - -If you're using Windows, you'll also need [Cygwin](http://www.cygwin.com/). - -Finally, if you want to easily stay up to date with the latest developments -and contribute your work back to the Cappuccino community, you'll want to -[install Git](http://git-scm.com/). +However, you can also work on other platforms using only a simple text editor. Getting Started --------------- -To get started, download and install the current release version of Cappuccino: +To write you first application, [download the starter package](http://www.cappuccino-project.org/#download). - $ curl https://raw.githubusercontent.com/cappuccino/cappuccino/v0.9.10/bootstrap.sh >/tmp/cappuccino_bootstrap.sh && bash /tmp/cappuccino_bootstrap.sh - -If you'd just like to get started using Cappuccino for your web apps, you are done. - -The rest of these instructions are for building a development copy of Cappuccino. -To build Cappuccino from source, check out the most recent stable version from GitHub: - - $ git clone git://github.com/cappuccino/cappuccino.git (git) - -or download the zipball of the most recent source code: - - (zip) - -Then, simply type `jake` from within the root of the Cappuccino directory. If you -get an error like `jake: command not found`, you forgot to run the bootstrap script -as described above. - -Jake will build a "release" copy of the frameworks. Typing `jake debug` will -build a debug version. - -`jake install` will build Cappuccino and associated tools and install them for general use. - -Editors -------- -The Cappuccino TextMate Bundle: . - -The Cappuccino Xcode Plugin: . - -Getting Help ------------- -If you need help with Cappuccino, you can get help from the following sources: - - - [FAQ](http://cappuccino-project.org/support/faq.html) - - [Documentation](http://cappuccino-project.org/learn/) - - [Wiki](http://github.com/cappuccino/cappuccino/wikis) - - Mailing Lists: - - [Objective-J](http://groups.google.com/group/objectivej) - - [Objective-J Developers](http://groups.google.com/group/objectivej-dev) - - [Gitter] (https://gitter.im/cappuccino/cappuccino) - -If you discover any bugs, please file a ticket at: - - +To contribute to Cappuccino, please read here: [Getting and Building the Source](http://wiki.github.com/cappuccino/cappuccino/getting-and-building-the-source). License ------- diff --git a/Tests/AppKit/CPScrollViewTest.j b/Tests/AppKit/CPScrollViewTest.j index 5bcaad4b4..81c3c7a91 100644 --- a/Tests/AppKit/CPScrollViewTest.j +++ b/Tests/AppKit/CPScrollViewTest.j @@ -327,16 +327,16 @@ theWindow = [[CPWindow alloc] initWithContentRect:CGRectMake(0.0, 0.0, 1024.0, 768.0) styleMask:CPWindowNotSizable]; - [self assert:[CPNotificationCenterHelper registeredNotificationsForObserver:scrollView] equals:[] message:@"Notications registered for the scrollView in the notification center are wrong"]; + [self assert:[CPNotificationCenterHelper registeredNotificationsForObserver:scrollView] equals:[] message:@"Notications registered for the scrollView in the notification center are wrong -1-"]; [[theWindow contentView] addSubview:scrollView]; - [self assert:[CPNotificationCenterHelper registeredNotificationsForObserver:scrollView] equals:[@"CPScrollerStyleGlobalChangeNotification"] message:@"Notications registered for the scrollView in the notification center are wrong"]; + [self assert:[CPNotificationCenterHelper registeredNotificationsForObserver:scrollView] equals:[@"CPScrollerStyleGlobalChangeNotification", @"_CPWindowDidChangeFirstResponderNotification"] message:@"Notications registered for the scrollView in the notification center are wrong -2-"]; [[theWindow contentView] addSubview:scrollView]; - [self assert:[CPNotificationCenterHelper registeredNotificationsForObserver:scrollView] equals:[@"CPScrollerStyleGlobalChangeNotification"] message:@"Notications registered for the scrollView in the notification center are wrong"]; + [self assert:[CPNotificationCenterHelper registeredNotificationsForObserver:scrollView] equals:[@"CPScrollerStyleGlobalChangeNotification", @"_CPWindowDidChangeFirstResponderNotification"] message:@"Notications registered for the scrollView in the notification center are wrong -3-"]; [scrollView removeFromSuperview]; - [self assert:[CPNotificationCenterHelper registeredNotificationsForObserver:scrollView] equals:[] message:@"Notications registered for the scrollView in the notification center are wrong"]; + [self assert:[CPNotificationCenterHelper registeredNotificationsForObserver:scrollView] equals:[] message:@"Notications registered for the scrollView in the notification center are wrong -4-"]; } - (void)testDocumentVisibleRect diff --git a/Tests/AppKit/CPViewTest.j b/Tests/AppKit/CPViewTest.j index 93edeb549..1a8a2c24d 100644 --- a/Tests/AppKit/CPViewTest.j +++ b/Tests/AppKit/CPViewTest.j @@ -1047,7 +1047,8 @@ var updateTrackingAreasCalls, // - [view removeAllTrackingAreas]; + [view removeTrackingArea:trackingArea]; + [view removeTrackingArea:trackingArea2]; [self assert:0 equals:[[view trackingAreas] count] message:@"After removing all tracking areas"]; [self assert:nil equals:[trackingArea view] message:@"Tracking area should be unlinked"]; [self assert:nil equals:[trackingArea2 view] message:@"Tracking area should be unlinked"]; @@ -1069,7 +1070,8 @@ var updateTrackingAreasCalls, [contentView addSubview:view]; [self assert:1 equals:updateTrackingAreasCalls message:@"Putting a view with a non CPTrackingAreaInVisibleRect in a window should call updateTrackingAreas"]; - [view removeAllTrackingAreas]; + [view removeTrackingArea:trackingArea]; + [view removeTrackingArea:trackingArea2]; // @@ -1099,7 +1101,8 @@ var updateTrackingAreasCalls, var trackingAreaAll = [[CPTrackingArea alloc] initWithRect:CGRectMakeZero() options:CPTrackingMouseEnteredAndExited | CPTrackingMouseMoved | CPTrackingCursorUpdate | CPTrackingActiveInActiveApp | CPTrackingInVisibleRect owner:viewTA userInfo:nil]; - [viewTA removeAllTrackingAreas]; + [viewTA removeTrackingArea:trackingArea]; + [viewTA removeTrackingArea:trackingArea2]; [viewTA addTrackingArea:trackingAreaAll]; // Mouse enters the tracking area @@ -1160,7 +1163,7 @@ var updateTrackingAreasCalls, var trackingAreaAllWithDrag = [[CPTrackingArea alloc] initWithRect:CGRectMakeZero() options:CPTrackingMouseEnteredAndExited | CPTrackingMouseMoved | CPTrackingCursorUpdate | CPTrackingActiveInActiveApp | CPTrackingInVisibleRect | CPTrackingEnabledDuringMouseDrag owner:viewTA userInfo:nil]; - [viewTA removeAllTrackingAreas]; + [viewTA removeTrackingArea:trackingAreaAll]; [viewTA addTrackingArea:trackingAreaAllWithDrag]; // Mouse enters the tracking area while dragging (option set) diff --git a/Tests/Manual/CPButtonTest/Resources/MainMenu.cib b/Tests/Manual/CPButtonTest/Resources/MainMenu.cib index 689f4af5a..820a6e504 100644 --- a/Tests/Manual/CPButtonTest/Resources/MainMenu.cib +++ b/Tests/Manual/CPButtonTest/Resources/MainMenu.cib @@ -1 +1 @@ -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;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;35E;D;K;6;CP$UIDd;2;36E;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;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;51E;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;52E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;60E;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;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;70E;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;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;123E;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;54E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;2;60E;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;3;124E;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;3;125E;E;D;K;10;$classnameS;31;CPCibRuntimeAttributesConnectorK;8;$classesA;S;31;CPCibRuntimeAttributesConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;97E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;1;0E;K;40;CPCibRuntimeAttributesConnectorObjectKeyD;K;6;CP$UIDd;2;97E;K;42;CPCibRuntimeAttributesConnectorKeyPathsKeyD;K;6;CP$UIDd;3;126E;K;40;CPCibRuntimeAttributesConnectorValuesKeyD;K;6;CP$UIDd;3;127E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;103E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;1;0E;K;40;CPCibRuntimeAttributesConnectorObjectKeyD;K;6;CP$UIDd;3;103E;K;42;CPCibRuntimeAttributesConnectorKeyPathsKeyD;K;6;CP$UIDd;3;128E;K;40;CPCibRuntimeAttributesConnectorValuesKeyD;K;6;CP$UIDd;3;129E;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;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;130E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;72E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;131E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;75E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;132E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;86E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;133E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;73E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;134E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;79E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;135E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;92E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;136E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;95E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;137E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;110E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;138E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;111E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;139E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;109E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;140E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;76E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;141E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;60E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;142E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;89E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;143E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;90E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;144E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;146E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;147E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;148E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;149E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;54E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;150E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;91E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;151E;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;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;60E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;152E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;83E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;153E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;84E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;153E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;78E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;154E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;95E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;155E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;99E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;156E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;100E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;156E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;101E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;156E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;102E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;156E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;108E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;107E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;106E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;105E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;110E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;155E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;124E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;158E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;159E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;160E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;161E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;162E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;163E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;164E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;56E;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;55E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;166E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;166E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;167E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;168E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;169E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;172E;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;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;56E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;173E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;174E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;56E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;177E;K;6;$afontD;K;6;CP$UIDd;3;179E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;180E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;182E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;183E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;184E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;171E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;187E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;180E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;181E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;171E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;171E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;183E;E;D;K;10;$classnameS;13;CPPopUpButtonK;8;$classesA;S;13;CPPopUpButtonS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;59E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;56E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;3;123E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;188E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;189E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;56E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;190E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;181E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;7;$aimageD;K;6;CP$UIDd;3;194E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;195E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;197E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;10;CPMenuItemK;8;$classesA;S;10;CPMenuItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;61E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;198E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;60E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;199E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;200E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;123E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;201E;E;D;K;6;$classD;K;6;CP$UIDd;2;61E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;202E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;60E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;199E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;200E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;123E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;201E;E;D;K;6;$classD;K;6;CP$UIDd;2;61E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;203E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;60E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;199E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;123E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;201E;E;D;K;6;$classD;K;6;CP$UIDd;2;61E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;204E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;60E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;199E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;123E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;201E;E;D;K;6;$classD;K;6;CP$UIDd;2;61E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;205E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;60E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;199E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;123E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;201E;E;D;K;6;$classD;K;6;CP$UIDd;2;61E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;206E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;60E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;199E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;123E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;201E;E;D;K;6;$classD;K;6;CP$UIDd;2;61E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;207E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;60E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;199E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;123E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;201E;E;D;K;10;$classnameS;16;_CPCibCustomViewK;8;$classesA;S;16;_CPCibCustomViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;69E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;56E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;208E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;209E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;210E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;56E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;169E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;211E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;212E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;70E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;213E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;214E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;70E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;7;$aimageD;K;6;CP$UIDd;3;215E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;216E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;217E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;218E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;70E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;219E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;220E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;70E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;7;$aimageD;K;6;CP$UIDd;3;221E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;222E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;223E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;218E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;10;CPCheckBoxK;8;$classesA;S;10;CPCheckBoxS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;70E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;224E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;225E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;70E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;226E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;227E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;180E;K;6;$afontD;K;6;CP$UIDd;3;179E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;228E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;200E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;229E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;200E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;200E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;70E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;230E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;231E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;70E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;226E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;227E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;180E;K;6;$afontD;K;6;CP$UIDd;3;179E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;232E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;200E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;233E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;183E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;200E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;200E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;55E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;70E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;234E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;235E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;236E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;70E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;169E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;237E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;70E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;238E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;239E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;70E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;7;$aimageD;K;6;CP$UIDd;3;240E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;241E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;242E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;218E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;70E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;243E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;220E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;70E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;244E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;7;$aimageD;K;6;CP$UIDd;3;245E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;246E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;247E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;218E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;248E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;158E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;159E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;249E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;250E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;162E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;251E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;252E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;82E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;253E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;253E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;254E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;169E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;255E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;82E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;256E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;257E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;82E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;7;$aimageD;K;6;CP$UIDd;3;258E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;259E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;260E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;218E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;82E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;261E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;262E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;82E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;7;$aimageD;K;6;CP$UIDd;3;263E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;264E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;265E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;266E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;218E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;82E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;267E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;268E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;82E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;177E;K;6;$afontD;K;6;CP$UIDd;3;179E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;180E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;269E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;183E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;270E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;171E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;187E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;180E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;181E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;171E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;171E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;82E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;271E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;272E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;82E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;177E;K;6;$afontD;K;6;CP$UIDd;3;179E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;180E;K;11;$aalignmentD;K;6;CP$UIDd;3;200E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;273E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;183E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;274E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;171E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;187E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;180E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;200E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;171E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;171E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;158E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;159E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;275E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;276E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;162E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;251E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;277E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;88E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;278E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;278E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;279E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;169E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;280E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;88E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;281E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;282E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;88E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;7;$aimageD;K;6;CP$UIDd;3;283E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;284E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;285E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;218E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;88E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;286E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;282E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;88E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;7;$aimageD;K;6;CP$UIDd;3;287E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;288E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;289E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;218E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;197E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;88E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;290E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;282E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;88E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;7;$aimageD;K;6;CP$UIDd;3;291E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;292E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;293E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;294E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;200E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;88E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;295E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;282E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;88E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;7;$aimageD;K;6;CP$UIDd;3;296E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;297E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;298E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;200E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;53E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;158E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;159E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;275E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;299E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;162E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;163E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;300E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;94E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;301E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;301E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;302E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;169E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;94E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;304E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;305E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;94E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;7;$aimageD;K;6;CP$UIDd;3;306E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;307E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;308E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;309E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;218E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;5;CPBoxK;8;$classesA;S;5;CPBoxS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;96E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;94E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;310E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;311E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;312E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;94E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;165E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;313E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;169E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;314E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;165E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;200E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;315E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;180E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;16;CPBoxContentViewD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;97E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;316E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;317E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;318E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;97E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;168E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;169E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;319E;E;D;K;6;$classD;K;6;CP$UIDd;2;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;98E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;180E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;320E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;321E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;98E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;226E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;322E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;180E;K;6;$afontD;K;6;CP$UIDd;3;323E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;324E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;200E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;325E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;200E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;200E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;98E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;200E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;326E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;327E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;98E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;226E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;322E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;180E;K;6;$afontD;K;6;CP$UIDd;3;328E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;329E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;200E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;330E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;200E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;200E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;98E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;181E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;331E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;332E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;98E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;226E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;322E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;180E;K;6;$afontD;K;6;CP$UIDd;3;333E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;334E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;200E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;335E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;200E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;200E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;98E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;336E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;337E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;338E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;98E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;226E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;322E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;180E;K;6;$afontD;K;6;CP$UIDd;3;339E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;340E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;200E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;341E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;200E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;200E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;96E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;94E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;342E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;311E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;343E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;94E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;165E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;313E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;169E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;344E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;165E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;200E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;345E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;180E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;16;CPBoxContentViewD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;103E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;316E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;317E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;346E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;103E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;168E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;169E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;347E;E;D;K;6;$classD;K;6;CP$UIDd;2;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;104E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;180E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;320E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;321E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;104E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;226E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;322E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;180E;K;6;$afontD;K;6;CP$UIDd;3;348E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;349E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;200E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;325E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;200E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;200E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;104E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;200E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;326E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;327E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;104E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;226E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;322E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;180E;K;6;$afontD;K;6;CP$UIDd;3;350E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;351E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;200E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;330E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;200E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;200E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;104E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;181E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;331E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;332E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;104E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;226E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;322E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;180E;K;6;$afontD;K;6;CP$UIDd;3;352E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;353E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;200E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;335E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;200E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;200E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;104E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;336E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;337E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;338E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;104E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;226E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;322E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;180E;K;6;$afontD;K;6;CP$UIDd;3;354E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;355E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;200E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;341E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;200E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;200E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;94E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;356E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;357E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;94E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;177E;K;6;$afontD;K;6;CP$UIDd;3;179E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;180E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;358E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;183E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;359E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;171E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;187E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;180E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;181E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;171E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;171E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;2;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;94E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;360E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;361E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;94E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;226E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;227E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;180E;K;6;$afontD;K;6;CP$UIDd;3;179E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;362E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;200E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;363E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;200E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;200E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;94E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;364E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;357E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;94E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;177E;K;6;$afontD;K;6;CP$UIDd;3;179E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;180E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;365E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;183E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;359E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;171E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;187E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;180E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;181E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;171E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;171E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;158E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;159E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;366E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;367E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;368E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;251E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;369E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;113E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;370E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;370E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;371E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;169E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;372E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;373E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;374E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;294E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;7;$aimageD;K;6;CP$UIDd;3;376E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;377E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;378E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;218E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;379E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;374E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;200E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;7;$aimageD;K;6;CP$UIDd;3;376E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;380E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;381E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;218E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;382E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;374E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;180E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;7;$aimageD;K;6;CP$UIDd;3;376E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;383E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;384E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;218E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;385E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;386E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;177E;K;6;$afontD;K;6;CP$UIDd;3;179E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;180E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;387E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;183E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;388E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;171E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;187E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;180E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;181E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;171E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;171E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;389E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;386E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;177E;K;6;$afontD;K;6;CP$UIDd;3;179E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;180E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;390E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;183E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;388E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;171E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;187E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;180E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;181E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;171E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;171E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;391E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;386E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;177E;K;6;$afontD;K;6;CP$UIDd;3;179E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;180E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;392E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;183E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;393E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;171E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;187E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;180E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;181E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;171E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;171E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;394E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;386E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;177E;K;6;$afontD;K;6;CP$UIDd;3;179E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;180E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;395E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;183E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;384E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;171E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;171E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;187E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;180E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;181E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;171E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;171E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;396E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;374E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;175E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;192E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;180E;K;7;$aimageD;K;6;CP$UIDd;3;376E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;397E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;185E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;398E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;196E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;218E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;122E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;399E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;400E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;3;112E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;401E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;171E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;401E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;171E;E;E;S;8;delegateS;6;buttonS;8;checkboxS;10;clickCountS;11;imageButtonS;19;imageDisabledButtonS;21;momentaryChangeButtonS;12;monkeyButtonS;14;monkeyCheckboxS;19;monkeyCheckboxLabelS;11;monkeyLabelS;13;multiCheckboxS;12;positionMenuS;12;pushInButtonS;15;pushOnOffButtonD;K;10;$classnameS;7;CPRadioK;8;$classesA;S;7;CPRadioS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;145E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;77E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;200E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;402E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;402E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;77E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;168E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;403E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;404E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;405E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;180E;K;6;$afontD;K;6;CP$UIDd;3;179E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;180E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;406E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;200E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;1;0E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;407E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;200E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;200E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;408E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;409E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;411E;E;S;6;radio1D;K;6;$classD;K;6;CP$UIDd;3;145E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;77E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;412E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;402E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;77E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;168E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;403E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;404E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;413E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;180E;K;6;$afontD;K;6;CP$UIDd;3;179E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;180E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;170E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;170E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;171E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;414E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;181E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;1;0E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;415E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;171E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;200E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;200E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;183E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;180E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;408E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;409E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;411E;E;S;6;radio2S;9;theWindowS;12;toggleButtonS;17;setImagePosition:S;11;countClick:S;20;switchSelectedRadio:S;12;monkeyClick:S;29;setMonkeyButtonHighlightedBy:S;28;setMonkeyButtonShowsStateBy:S;32;{10000000000000, 10000000000000}S;8;CPWindowd;10;1886912512S;24;{{200, 665}, {380, 253}}S;22;{{0, 0}, {2560, 1418}}d;1;7S;19;CPButton Image Testd;1;0S;20;{{0, 0}, {380, 253}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;70E;E;E;d;2;18S;6;normalS;6;{1, 1}F;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;21;{{42, 212}, {97, 17}}S;18;{{0, 0}, {97, 17}}d;2;36S;9;textfieldS;18;controlSizeRegularD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;178E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;416E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;185E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;183E;E;d;1;2d;1;4D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;T;S;15;Image Position:d;2;-1D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;186E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;417E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;418E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;169E;E;S;23;{{142, 213}, {202, 25}}S;19;{{0, 0}, {202, 25}}S;12;popup-buttonS;27;bordered+controlSizeRegularD;K;6;$classD;K;6;CP$UIDd;3;178E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;416E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;185E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;183E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;183E;E;D;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;193E;K;4;nameD;K;6;CP$UIDd;3;419E;K;12;defaultValueD;K;6;CP$UIDd;3;421E;K;5;stateD;K;6;CP$UIDd;3;422E;K;5;valueD;K;6;CP$UIDd;3;423E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;0;d;2;12S;8;No ImageS;17;_popUpItemAction:d;1;1d;7;1048576S;10;Image OnlyS;4;LeftS;5;RightS;5;BelowS;5;AboveS;8;OverlapsS;22;{{20, 20}, {340, 174}}S;20;{{0, 0}, {340, 174}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;72E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;9;BezelViewS;20;{{24, 17}, {96, 25}}S;18;{{0, 0}, {96, 25}}D;K;6;$classD;K;6;CP$UIDd;3;193E;K;4;nameD;K;6;CP$UIDd;3;419E;K;12;defaultValueD;K;6;CP$UIDd;3;421E;K;5;stateD;K;6;CP$UIDd;3;422E;K;5;valueD;K;6;CP$UIDd;3;423E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;6;Buttond;2;14S;22;{{143, 17}, {176, 25}}S;19;{{0, 0}, {176, 25}}D;K;6;$classD;K;6;CP$UIDd;3;193E;K;4;nameD;K;6;CP$UIDd;3;419E;K;12;defaultValueD;K;6;CP$UIDd;3;421E;K;5;stateD;K;6;CP$UIDd;3;422E;K;5;valueD;K;6;CP$UIDd;3;423E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;17;Button With ImageS;20;{{28, 67}, {95, 40}}S;18;{{0, 0}, {95, 40}}S;9;check-boxS;27;controlSizeRegular+selectedD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;8;CheckboxS;22;{{162, 67}, {162, 40}}S;19;{{0, 0}, {162, 40}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;19;Multistate CheckboxS;22;{{31, 120}, {168, 40}}S;19;{{0, 0}, {168, 40}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;148E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;23;{{200, 130}, {119, 25}}S;19;{{0, 0}, {119, 25}}D;K;6;$classD;K;6;CP$UIDd;3;193E;K;4;nameD;K;6;CP$UIDd;3;419E;K;12;defaultValueD;K;6;CP$UIDd;3;421E;K;5;stateD;K;6;CP$UIDd;3;422E;K;5;valueD;K;6;CP$UIDd;3;423E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;14;Set radio 2 OnS;22;{{143, 47}, {176, 25}}S;36;bordered+controlSizeRegular+disabledD;K;6;$classD;K;6;CP$UIDd;3;193E;K;4;nameD;K;6;CP$UIDd;3;419E;K;12;defaultValueD;K;6;CP$UIDd;3;421E;K;5;stateD;K;6;CP$UIDd;3;422E;K;5;valueD;K;6;CP$UIDd;3;423E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;19;Disabled With ImageS;13;AppControllerd;9;544735232S;23;{{200, 333}, {318, 85}}d;2;15S;22;Continuous Button TestS;19;{{0, 0}, {318, 85}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;21;{{20, 20}, {120, 25}}S;19;{{0, 0}, {120, 25}}D;K;6;$classD;K;6;CP$UIDd;3;193E;K;4;nameD;K;6;CP$UIDd;3;419E;K;12;defaultValueD;K;6;CP$UIDd;3;421E;K;5;stateD;K;6;CP$UIDd;3;422E;K;5;valueD;K;6;CP$UIDd;3;423E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;13;Normal ButtonS;22;{{152, 20}, {146, 25}}S;19;{{0, 0}, {146, 25}}D;K;6;$classD;K;6;CP$UIDd;3;193E;K;4;nameD;K;6;CP$UIDd;3;419E;K;12;defaultValueD;K;6;CP$UIDd;3;421E;K;5;stateD;K;6;CP$UIDd;3;422E;K;5;valueD;K;6;CP$UIDd;3;423E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;d;5;65540S;17;Continuous ButtonS;21;{{19, 48}, {103, 17}}S;19;{{0, 0}, {103, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;16;Recorded clicks:S;22;{{128, 48}, {171, 17}}S;19;{{0, 0}, {171, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;1;0d;9;544736256S;25;{{1000, 262}, {271, 156}}S;25;CPButton Button Type TestS;20;{{0, 0}, {271, 156}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;92E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;21;{{31, 20}, {208, 25}}S;19;{{0, 0}, {208, 25}}D;K;6;$classD;K;6;CP$UIDd;3;193E;K;4;nameD;K;6;CP$UIDd;3;419E;K;12;defaultValueD;K;6;CP$UIDd;3;421E;K;5;stateD;K;6;CP$UIDd;3;422E;K;5;valueD;K;6;CP$UIDd;3;423E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;26;Momentary Push In (Normal)S;21;{{31, 52}, {208, 25}}D;K;6;$classD;K;6;CP$UIDd;3;193E;K;4;nameD;K;6;CP$UIDd;3;419E;K;12;defaultValueD;K;6;CP$UIDd;3;421E;K;5;stateD;K;6;CP$UIDd;3;422E;K;5;valueD;K;6;CP$UIDd;3;423E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;18;Push On / Push OffS;21;{{31, 84}, {208, 25}}D;K;6;$classD;K;6;CP$UIDd;3;193E;K;4;nameD;K;6;CP$UIDd;3;419E;K;12;defaultValueD;K;6;CP$UIDd;3;421E;K;5;stateD;K;6;CP$UIDd;3;422E;K;5;valueD;K;6;CP$UIDd;3;423E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;6;Toggled;1;3S;22;{{31, 116}, {208, 25}}D;K;6;$classD;K;6;CP$UIDd;3;193E;K;4;nameD;K;6;CP$UIDd;3;419E;K;12;defaultValueD;K;6;CP$UIDd;3;421E;K;5;stateD;K;6;CP$UIDd;3;422E;K;5;valueD;K;6;CP$UIDd;3;423E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;16;Momentary ChangeS;25;{{1000, 698}, {480, 220}}S;18;Monkey Button TestS;20;{{0, 0}, {480, 220}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;111E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;22;{{153, 50}, {174, 25}}S;19;{{0, 0}, {174, 25}}D;K;6;$classD;K;6;CP$UIDd;3;193E;K;4;nameD;K;6;CP$UIDd;3;419E;K;12;defaultValueD;K;6;CP$UIDd;3;421E;K;6;valuesD;K;6;CP$UIDd;3;425E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;13;Monkey ButtonS;15;Alternate TitleS;22;{{21, 92}, {214, 108}}S;20;{{0, 0}, {214, 108}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;98E;E;E;S;3;boxD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;13;Highlights ByS;19;{{1, 9}, {220, 98}}S;19;{{0, 0}, {220, 98}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;102E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;20;{{17, 6}, {137, 21}}S;19;{{0, 0}, {137, 21}}S;16;controlSizeSmallD;K;6;$classD;K;6;CP$UIDd;3;178E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;416E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;426E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;16;CPPushInCellMaskS;21;{{17, 26}, {152, 21}}S;19;{{0, 0}, {152, 21}}D;K;6;$classD;K;6;CP$UIDd;3;178E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;416E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;426E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;18;CPContentsCellMaskS;21;{{17, 46}, {172, 21}}S;19;{{0, 0}, {172, 21}}D;K;6;$classD;K;6;CP$UIDd;3;178E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;416E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;426E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;20;CPChangeGrayCellMaskd;1;8S;21;{{17, 66}, {218, 21}}S;19;{{0, 0}, {218, 21}}D;K;6;$classD;K;6;CP$UIDd;3;178E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;416E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;426E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;26;CPChangeBackgroundCellMaskS;23;{{245, 92}, {214, 108}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;104E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;14;Shows State ByD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;108E;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;3;178E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;416E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;426E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;183E;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;3;178E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;416E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;426E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;183E;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;3;178E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;416E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;426E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;183E;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;3;178E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;416E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;426E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;22;{{334, 51}, {127, 17}}S;19;{{0, 0}, {127, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;5;LabelS;21;{{150, 9}, {148, 32}}S;19;{{0, 0}, {148, 32}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;15;Monkey CheckboxS;22;{{309, 14}, {127, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;d;10;1618478080S;25;{{1069, 183}, {480, 170}}S;22;{{0, 0}, {1680, 1027}}S;13;Image ScalingS;20;{{0, 0}, {480, 170}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;121E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;22;{{176, 53}, {212, 25}}S;19;{{0, 0}, {212, 25}}D;K;10;$classnameS;20;_CPCibCustomResourceK;8;$classesA;S;20;_CPCibCustomResourceS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;375E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;427E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;428E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;429E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;24;Proportionaly Up or DownS;22;{{176, 86}, {212, 25}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;18;Axes IndependentlyS;23;{{176, 119}, {212, 25}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;4;NoneS;21;{{13, 24}, {155, 17}}S;19;{{0, 0}, {155, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;19;Square - Max heightS;21;{{13, 53}, {155, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;21;{{13, 88}, {155, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;22;Max height - Max widthS;22;{{13, 120}, {155, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;22;{{176, 20}, {212, 25}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;18;Proportionaly DownS;10;OtherViewsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;68E;E;E;S;19;autoresizesSubviewsS;18;{{0, 0}, {82, 40}}D;K;6;$classD;K;6;CP$UIDd;3;186E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;430E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;418E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;169E;E;S;5;radioS;46;bordered+controlSizeRegular+roundRect+selectedD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;7;Radio 1f;3;0.5f;4;0.05D;K;10;$classnameS;12;CPRadioGroupK;8;$classesA;S;12;CPRadioGroupS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;410E;K;21;CPRadioGroupRadiosKeyD;K;6;CP$UIDd;3;431E;K;28;CPRadioGroupSelectedRadioKeyD;K;6;CP$UIDd;3;146E;E;S;19;{{86, 0}, {82, 40}}S;37;bordered+controlSizeRegular+roundRectD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;7;Radio 2S;28;_CPFontSystemFacePlaceholderD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;432E;D;K;6;CP$UIDd;3;432E;D;K;6;CP$UIDd;3;432E;D;K;6;CP$UIDd;3;200E;E;E;S;5;colorS;5;imageD;K;10;$classnameS;6;CPNullK;8;$classesA;S;6;CPNullS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;420E;E;S;11;highlightedD;K;6;$classD;K;6;CP$UIDd;3;178E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;433E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;434E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;171E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;171E;E;D;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;424E;K;10;CP.objectsD;K;11;highlightedD;K;6;CP$UIDd;3;435E;K;6;normalD;K;6;CP$UIDd;3;436E;E;E;d;2;11S;7;CPImageS;16;Image-132x44.pngD;K;6;$classD;K;6;CP$UIDd;3;424E;K;10;CP.objectsD;K;9;frameworkD;K;6;CP$UIDd;3;196E;K;16;bundleIdentifierD;K;6;CP$UIDd;3;196E;K;4;sizeD;K;6;CP$UIDd;3;438E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;165E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;148E;E;E;f;18;0.6862745098039216S;18;.AppleSystemUIFontd;2;13D;K;6;$classD;K;6;CP$UIDd;3;375E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;427E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;439E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;440E;E;D;K;6;$classD;K;6;CP$UIDd;3;375E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;427E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;441E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;442E;E;D;K;10;$classnameS;21;_CPKeyedArchiverValueK;8;$classesA;S;21;_CPKeyedArchiverValueS;7;CPValueS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;437E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;443E;E;S;16;CPRemoveTemplateD;K;6;$classD;K;6;CP$UIDd;3;424E;K;10;CP.objectsD;K;9;frameworkD;K;6;CP$UIDd;3;196E;K;16;bundleIdentifierD;K;6;CP$UIDd;3;196E;K;4;sizeD;K;6;CP$UIDd;3;444E;E;E;S;13;CPAddTemplateD;K;6;$classD;K;6;CP$UIDd;3;424E;K;10;CP.objectsD;K;9;frameworkD;K;6;CP$UIDd;3;196E;K;16;bundleIdentifierD;K;6;CP$UIDd;3;196E;K;4;sizeD;K;6;CP$UIDd;3;445E;E;E;S;30;{"width":26.88,"height":80.64}D;K;6;$classD;K;6;CP$UIDd;3;437E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;446E;E;D;K;6;$classD;K;6;CP$UIDd;3;437E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;446E;E;S;22;{"width":0,"height":0}E;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;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;35E;D;K;6;CP$UIDd;2;36E;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;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;51E;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;52E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;60E;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;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;70E;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;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;123E;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;54E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;2;60E;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;3;124E;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;3;125E;E;D;K;10;$classnameS;31;CPCibRuntimeAttributesConnectorK;8;$classesA;S;31;CPCibRuntimeAttributesConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;97E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;1;0E;K;40;CPCibRuntimeAttributesConnectorObjectKeyD;K;6;CP$UIDd;2;97E;K;42;CPCibRuntimeAttributesConnectorKeyPathsKeyD;K;6;CP$UIDd;3;126E;K;40;CPCibRuntimeAttributesConnectorValuesKeyD;K;6;CP$UIDd;3;127E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;103E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;1;0E;K;40;CPCibRuntimeAttributesConnectorObjectKeyD;K;6;CP$UIDd;3;103E;K;42;CPCibRuntimeAttributesConnectorKeyPathsKeyD;K;6;CP$UIDd;3;128E;K;40;CPCibRuntimeAttributesConnectorValuesKeyD;K;6;CP$UIDd;3;129E;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;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;130E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;72E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;131E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;75E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;132E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;86E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;133E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;73E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;134E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;79E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;135E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;92E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;136E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;95E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;137E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;110E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;138E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;111E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;139E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;109E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;140E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;76E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;141E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;60E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;142E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;89E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;143E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;90E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;144E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;146E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;147E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;148E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;149E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;54E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;150E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;91E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;151E;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;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;60E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;152E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;83E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;153E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;84E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;153E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;78E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;154E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;95E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;155E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;99E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;156E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;100E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;156E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;101E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;156E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;102E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;156E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;108E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;107E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;106E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;105E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;110E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;80E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;155E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;124E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;158E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;159E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;160E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;161E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;162E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;163E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;164E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;56E;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;55E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;166E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;166E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;167E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;168E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;169E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;170E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;173E;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;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;56E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;174E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;175E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;56E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;177E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;178E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;181E;K;11;$aalignmentD;K;6;CP$UIDd;3;182E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;183E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;184E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;185E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;172E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;188E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;181E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;182E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;172E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;172E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;184E;E;D;K;10;$classnameS;13;CPPopUpButtonK;8;$classesA;S;13;CPPopUpButtonS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;59E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;56E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;3;123E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;189E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;190E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;56E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;191E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;192E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;182E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;194E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;196E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;10;CPMenuItemK;8;$classesA;S;10;CPMenuItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;61E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;197E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;60E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;198E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;199E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;123E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;200E;E;D;K;6;$classD;K;6;CP$UIDd;2;61E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;201E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;60E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;198E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;199E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;123E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;200E;E;D;K;6;$classD;K;6;CP$UIDd;2;61E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;202E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;60E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;198E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;123E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;200E;E;D;K;6;$classD;K;6;CP$UIDd;2;61E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;203E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;60E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;198E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;123E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;200E;E;D;K;6;$classD;K;6;CP$UIDd;2;61E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;204E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;60E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;198E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;123E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;200E;E;D;K;6;$classD;K;6;CP$UIDd;2;61E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;205E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;60E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;198E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;123E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;200E;E;D;K;6;$classD;K;6;CP$UIDd;2;61E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;206E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;60E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;198E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;123E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;200E;E;D;K;10;$classnameS;16;_CPCibCustomViewK;8;$classesA;S;16;_CPCibCustomViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;69E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;56E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;207E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;208E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;209E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;56E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;169E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;170E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;210E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;211E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;70E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;212E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;213E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;70E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;192E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;214E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;215E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;216E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;70E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;217E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;218E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;70E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;192E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;219E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;220E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;216E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;10;CPCheckBoxK;8;$classesA;S;10;CPCheckBoxS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;70E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;221E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;222E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;70E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;224E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;181E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;225E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;199E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;226E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;199E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;199E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;70E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;227E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;228E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;70E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;224E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;181E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;229E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;199E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;230E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;184E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;199E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;199E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;55E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;70E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;231E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;232E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;233E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;70E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;169E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;170E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;234E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;70E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;235E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;236E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;70E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;192E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;237E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;238E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;216E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;70E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;239E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;218E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;70E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;240E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;241E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;242E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;216E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;243E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;158E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;159E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;244E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;245E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;162E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;246E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;247E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;82E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;248E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;248E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;249E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;169E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;170E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;250E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;82E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;251E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;252E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;82E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;192E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;253E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;254E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;216E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;82E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;255E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;256E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;82E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;192E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;257E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;258E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;259E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;216E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;82E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;260E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;261E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;82E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;177E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;178E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;181E;K;11;$aalignmentD;K;6;CP$UIDd;3;182E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;262E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;184E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;263E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;172E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;188E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;181E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;182E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;172E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;172E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;82E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;264E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;265E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;82E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;177E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;178E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;181E;K;11;$aalignmentD;K;6;CP$UIDd;3;199E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;266E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;184E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;267E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;172E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;188E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;181E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;199E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;172E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;172E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;158E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;159E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;268E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;269E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;162E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;246E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;270E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;88E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;271E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;271E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;272E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;169E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;170E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;273E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;88E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;274E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;275E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;88E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;192E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;276E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;277E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;216E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;88E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;278E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;275E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;88E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;192E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;279E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;280E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;216E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;196E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;88E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;281E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;275E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;88E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;192E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;282E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;283E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;284E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;199E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;88E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;285E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;275E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;88E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;192E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;286E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;287E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;199E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;53E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;158E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;159E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;268E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;288E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;162E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;163E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;289E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;94E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;290E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;290E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;291E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;169E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;170E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;292E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;94E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;293E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;294E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;94E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;192E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;7;$aimageD;K;6;CP$UIDd;3;296E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;297E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;298E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;299E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;216E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;5;CPBoxK;8;$classesA;S;5;CPBoxS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;96E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;94E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;300E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;301E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;302E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;94E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;165E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;303E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;170E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;304E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;165E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;199E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;305E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;181E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;16;CPBoxContentViewD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;97E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;306E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;307E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;308E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;97E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;168E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;169E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;170E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;309E;E;D;K;6;$classD;K;6;CP$UIDd;2;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;98E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;181E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;310E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;311E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;98E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;312E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;181E;K;6;$afontD;K;6;CP$UIDd;3;313E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;314E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;199E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;315E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;199E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;199E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;98E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;199E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;316E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;317E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;98E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;312E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;181E;K;6;$afontD;K;6;CP$UIDd;3;318E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;319E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;199E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;320E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;199E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;199E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;98E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;182E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;321E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;98E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;312E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;181E;K;6;$afontD;K;6;CP$UIDd;3;323E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;324E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;199E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;325E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;199E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;199E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;98E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;326E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;327E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;328E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;98E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;312E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;181E;K;6;$afontD;K;6;CP$UIDd;3;329E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;330E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;199E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;331E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;199E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;199E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;96E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;94E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;332E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;301E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;333E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;94E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;165E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;303E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;170E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;334E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;165E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;199E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;335E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;181E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;16;CPBoxContentViewD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;103E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;306E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;307E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;336E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;103E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;168E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;169E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;170E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;337E;E;D;K;6;$classD;K;6;CP$UIDd;2;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;104E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;181E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;310E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;311E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;104E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;312E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;181E;K;6;$afontD;K;6;CP$UIDd;3;338E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;339E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;199E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;315E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;199E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;199E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;104E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;199E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;316E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;317E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;104E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;312E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;181E;K;6;$afontD;K;6;CP$UIDd;3;340E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;341E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;199E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;320E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;199E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;199E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;104E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;182E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;321E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;104E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;312E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;181E;K;6;$afontD;K;6;CP$UIDd;3;342E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;343E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;199E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;325E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;199E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;199E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;104E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;326E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;327E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;328E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;104E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;312E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;181E;K;6;$afontD;K;6;CP$UIDd;3;344E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;345E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;199E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;331E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;199E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;199E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;94E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;346E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;347E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;94E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;177E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;178E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;181E;K;11;$aalignmentD;K;6;CP$UIDd;3;182E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;348E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;184E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;349E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;172E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;188E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;181E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;182E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;172E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;172E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;74E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;94E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;350E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;351E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;94E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;224E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;181E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;352E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;199E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;353E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;199E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;199E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;94E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;354E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;347E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;94E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;177E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;178E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;181E;K;11;$aalignmentD;K;6;CP$UIDd;3;182E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;355E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;184E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;349E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;172E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;188E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;181E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;182E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;172E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;172E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;158E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;159E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;356E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;357E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;358E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;246E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;359E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;113E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;360E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;360E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;361E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;169E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;170E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;362E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;363E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;364E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;192E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;284E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;7;$aimageD;K;6;CP$UIDd;3;365E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;366E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;367E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;216E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;368E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;364E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;192E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;199E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;7;$aimageD;K;6;CP$UIDd;3;365E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;369E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;370E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;216E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;371E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;364E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;192E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;181E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;7;$aimageD;K;6;CP$UIDd;3;365E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;372E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;373E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;216E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;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;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;374E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;375E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;177E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;178E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;181E;K;11;$aalignmentD;K;6;CP$UIDd;3;182E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;376E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;184E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;377E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;172E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;188E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;181E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;182E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;172E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;172E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;378E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;375E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;177E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;178E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;181E;K;11;$aalignmentD;K;6;CP$UIDd;3;182E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;379E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;184E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;377E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;172E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;188E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;181E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;182E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;172E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;172E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;380E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;375E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;177E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;178E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;181E;K;11;$aalignmentD;K;6;CP$UIDd;3;182E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;381E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;184E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;382E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;172E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;188E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;181E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;182E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;172E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;172E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;383E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;375E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;177E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;178E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;181E;K;11;$aalignmentD;K;6;CP$UIDd;3;182E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;384E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;184E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;373E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;172E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;172E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;188E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;181E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;182E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;172E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;172E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;385E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;364E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;176E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;192E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;165E;K;6;$afontD;K;6;CP$UIDd;3;193E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;11;$aalignmentD;K;6;CP$UIDd;3;181E;K;7;$aimageD;K;6;CP$UIDd;3;365E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;386E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;186E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;387E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;216E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;165E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;122E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;388E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;389E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;3;112E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;390E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;172E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;390E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;172E;E;E;S;8;delegateS;6;buttonS;8;checkboxS;10;clickCountS;11;imageButtonS;19;imageDisabledButtonS;21;momentaryChangeButtonS;12;monkeyButtonS;14;monkeyCheckboxS;19;monkeyCheckboxLabelS;11;monkeyLabelS;13;multiCheckboxS;12;positionMenuS;12;pushInButtonS;15;pushOnOffButtonD;K;10;$classnameS;7;CPRadioK;8;$classesA;S;7;CPRadioS;8;CPButtonS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;145E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;77E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;199E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;391E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;391E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;77E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;168E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;392E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;393E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;394E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;181E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;181E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;395E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;199E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;1;0E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;396E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;199E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;199E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;397E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;398E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;400E;E;S;6;radio1D;K;6;$classD;K;6;CP$UIDd;3;145E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;77E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;165E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;401E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;391E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;77E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;168E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;392E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;393E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;402E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;181E;K;6;$afontD;K;6;CP$UIDd;3;180E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;165E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;181E;K;11;$aalignmentD;K;6;CP$UIDd;3;165E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;171E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;172E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;403E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;182E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;165E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;1;0E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;404E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;199E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;199E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;184E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;181E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;165E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;397E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;398E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;400E;E;S;6;radio2S;9;theWindowS;12;toggleButtonS;17;setImagePosition:S;11;countClick:S;20;switchSelectedRadio:S;12;monkeyClick:S;29;setMonkeyButtonHighlightedBy:S;28;setMonkeyButtonShowsStateBy:S;32;{10000000000000, 10000000000000}S;8;CPWindowd;10;1886912512S;24;{{200, 665}, {380, 253}}S;22;{{0, 0}, {2560, 1418}}d;1;7S;19;CPButton Image Testd;1;0S;20;{{0, 0}, {380, 253}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;70E;E;E;d;2;18S;4;viewS;6;normalS;6;{1, 1}F;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;21;{{42, 212}, {97, 17}}S;18;{{0, 0}, {97, 17}}d;2;36S;9;textfieldS;18;controlSizeRegularD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;179E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;405E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;186E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;184E;E;d;1;2d;1;4D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;T;S;15;Image Position:d;2;-1D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;187E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;406E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;407E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;170E;E;S;23;{{142, 213}, {202, 25}}S;19;{{0, 0}, {202, 25}}S;12;popup-buttonS;27;bordered+controlSizeRegularD;K;6;$classD;K;6;CP$UIDd;3;179E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;405E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;186E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;184E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;0;d;2;12S;8;No ImageS;17;_popUpItemAction:d;1;1d;7;1048576S;10;Image OnlyS;4;LeftS;5;RightS;5;BelowS;5;AboveS;8;OverlapsS;22;{{20, 20}, {340, 174}}S;20;{{0, 0}, {340, 174}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;72E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;9;BezelViewS;20;{{24, 17}, {96, 25}}S;18;{{0, 0}, {96, 25}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;6;Buttond;2;14S;22;{{143, 17}, {176, 25}}S;19;{{0, 0}, {176, 25}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;17;Button With ImageS;20;{{28, 67}, {95, 40}}S;18;{{0, 0}, {95, 40}}S;9;check-boxS;27;controlSizeRegular+selectedD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;8;CheckboxS;22;{{162, 67}, {162, 40}}S;19;{{0, 0}, {162, 40}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;19;Multistate CheckboxS;22;{{31, 120}, {168, 40}}S;19;{{0, 0}, {168, 40}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;148E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;23;{{200, 130}, {119, 25}}S;19;{{0, 0}, {119, 25}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;14;Set radio 2 OnS;22;{{143, 47}, {176, 25}}S;36;bordered+controlSizeRegular+disabledD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;19;Disabled With ImageS;13;AppControllerd;9;544735232S;23;{{200, 333}, {318, 85}}d;2;15S;22;Continuous Button TestS;19;{{0, 0}, {318, 85}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;21;{{20, 20}, {120, 25}}S;19;{{0, 0}, {120, 25}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;13;Normal ButtonS;22;{{152, 20}, {146, 25}}S;19;{{0, 0}, {146, 25}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;d;5;65540S;17;Continuous ButtonS;21;{{19, 48}, {103, 17}}S;19;{{0, 0}, {103, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;16;Recorded clicks:S;22;{{128, 48}, {171, 17}}S;19;{{0, 0}, {171, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;1;0d;9;544736256S;25;{{1000, 262}, {271, 156}}S;25;CPButton Button Type TestS;20;{{0, 0}, {271, 156}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;92E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;21;{{31, 20}, {208, 25}}S;19;{{0, 0}, {208, 25}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;26;Momentary Push In (Normal)S;21;{{31, 52}, {208, 25}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;18;Push On / Push OffS;21;{{31, 84}, {208, 25}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;6;Toggled;1;3S;22;{{31, 116}, {208, 25}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;16;Momentary ChangeS;25;{{1000, 698}, {480, 220}}S;18;Monkey Button TestS;20;{{0, 0}, {480, 220}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;111E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;22;{{153, 50}, {174, 25}}S;19;{{0, 0}, {174, 25}}D;K;10;$classnameS;20;_CPCibCustomResourceK;8;$classesA;S;20;_CPCibCustomResourceS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;295E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;408E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;409E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;411E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;13;Monkey ButtonS;15;Alternate TitleS;22;{{21, 92}, {214, 108}}S;20;{{0, 0}, {214, 108}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;98E;E;E;S;3;boxD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;13;Highlights ByS;19;{{1, 9}, {220, 98}}S;19;{{0, 0}, {220, 98}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;102E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;20;{{17, 6}, {137, 21}}S;19;{{0, 0}, {137, 21}}S;16;controlSizeSmallD;K;6;$classD;K;6;CP$UIDd;3;179E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;405E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;412E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;16;CPPushInCellMaskS;21;{{17, 26}, {152, 21}}S;19;{{0, 0}, {152, 21}}D;K;6;$classD;K;6;CP$UIDd;3;179E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;405E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;412E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;18;CPContentsCellMaskS;21;{{17, 46}, {172, 21}}S;19;{{0, 0}, {172, 21}}D;K;6;$classD;K;6;CP$UIDd;3;179E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;405E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;412E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;20;CPChangeGrayCellMaskd;1;8S;21;{{17, 66}, {218, 21}}S;19;{{0, 0}, {218, 21}}D;K;6;$classD;K;6;CP$UIDd;3;179E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;405E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;412E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;26;CPChangeBackgroundCellMaskS;23;{{245, 92}, {214, 108}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;104E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;14;Shows State ByD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;108E;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;3;179E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;405E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;412E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;184E;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;3;179E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;405E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;412E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;184E;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;3;179E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;405E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;412E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;184E;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;3;179E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;405E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;412E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;172E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;22;{{334, 51}, {127, 17}}S;19;{{0, 0}, {127, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;5;LabelS;21;{{150, 9}, {148, 32}}S;19;{{0, 0}, {148, 32}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;15;Monkey CheckboxS;22;{{309, 14}, {127, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;d;10;1618478080S;25;{{1069, 183}, {480, 170}}S;22;{{0, 0}, {1680, 1027}}S;13;Image ScalingS;20;{{0, 0}, {480, 170}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;121E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;22;{{176, 53}, {212, 25}}S;19;{{0, 0}, {212, 25}}D;K;6;$classD;K;6;CP$UIDd;3;295E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;408E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;413E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;414E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;24;Proportionaly Up or DownS;22;{{176, 86}, {212, 25}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;18;Axes IndependentlyS;23;{{176, 119}, {212, 25}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;4;NoneS;21;{{13, 24}, {155, 17}}S;19;{{0, 0}, {155, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;19;Square - Max heightS;21;{{13, 53}, {155, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;21;{{13, 88}, {155, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;22;Max height - Max widthS;22;{{13, 120}, {155, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;22;{{176, 20}, {212, 25}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;18;Proportionaly DownS;10;OtherViewsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;68E;E;E;S;19;autoresizesSubviewsS;18;{{0, 0}, {82, 40}}D;K;6;$classD;K;6;CP$UIDd;3;187E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;415E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;407E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;170E;E;S;5;radioS;46;bordered+controlSizeRegular+roundRect+selectedD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;7;Radio 1f;3;0.5f;4;0.05D;K;10;$classnameS;12;CPRadioGroupK;8;$classesA;S;12;CPRadioGroupS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;399E;K;21;CPRadioGroupRadiosKeyD;K;6;CP$UIDd;3;416E;K;28;CPRadioGroupSelectedRadioKeyD;K;6;CP$UIDd;3;146E;E;S;19;{{86, 0}, {82, 40}}S;37;bordered+controlSizeRegular+roundRectD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;7;Radio 2S;28;_CPFontSystemFacePlaceholderD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;417E;D;K;6;CP$UIDd;3;417E;D;K;6;CP$UIDd;3;417E;D;K;6;CP$UIDd;3;199E;E;E;S;5;colorS;7;CPImageS;13;CPAddTemplateD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;410E;K;10;CP.objectsD;K;9;frameworkD;K;6;CP$UIDd;3;195E;K;16;bundleIdentifierD;K;6;CP$UIDd;3;195E;K;4;sizeD;K;6;CP$UIDd;3;419E;E;E;d;2;11S;16;Image-132x44.pngD;K;6;$classD;K;6;CP$UIDd;3;410E;K;10;CP.objectsD;K;9;frameworkD;K;6;CP$UIDd;3;195E;K;16;bundleIdentifierD;K;6;CP$UIDd;3;195E;K;4;sizeD;K;6;CP$UIDd;3;420E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;165E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;148E;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;418E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;421E;E;D;K;6;$classD;K;6;CP$UIDd;3;418E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;421E;E;S;22;{"width":0,"height":0}E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/CPCursor/AppController.j b/Tests/Manual/CPCursor/AppController.j index e5fcb4392..0e7d529b8 100644 --- a/Tests/Manual/CPCursor/AppController.j +++ b/Tests/Manual/CPCursor/AppController.j @@ -119,7 +119,10 @@ cursor:[CPCursor closedHandCursor]], disappearingItemCursorTester = [[CursorTester alloc] initWithText:@"Disappearing item cursor" origin:CGPointMake(x, y+=yInc) - cursor:[CPCursor disappearingItemCursor]]; + cursor:[CPCursor disappearingItemCursor]], + verticalTextCursorTester = [[CursorTester alloc] initWithText:@"Vertical text cursor" + origin:CGPointMake(x, y+=yInc) + cursor:[CPCursor IBeamCursorForVerticalLayout]]; [contentView addSubview:imageCursorTester]; [contentView addSubview:arrowCursorTester]; @@ -139,6 +142,7 @@ [contentView addSubview:openHandCursorTester]; [contentView addSubview:closedHandCursorTester]; [contentView addSubview:disappearingItemCursorTester]; + [contentView addSubview:verticalTextCursorTester]; [theWindow orderFront:self]; } diff --git a/Tests/Manual/CPPlattformWindowMinSize/AppController.j b/Tests/Manual/CPPlattformWindowMinSize/AppController.j new file mode 100644 index 000000000..e274c97bf --- /dev/null +++ b/Tests/Manual/CPPlattformWindowMinSize/AppController.j @@ -0,0 +1,57 @@ +/* + * AppController.j + * MinSize PlattformWindow + * + * Created by Daniel Boehringer on March 25, 2018. + */ + +@import + + +@implementation AppController : CPObject +{ + CPTextField textFieldWidth; + CPTextField textFieldHeight; + CPWindow theWindow; +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + theWindow = [[CPWindow alloc] initWithContentRect:CGRectMakeZero() + styleMask:CPBorderlessBridgeWindowMask]; + + var contentView = [theWindow contentView]; + + textFieldWidth = [[CPTextField alloc] initWithFrame:CGRectMake(0.0, 0.0, 200.0, 29.0)]; + textFieldHeight = [[CPTextField alloc] initWithFrame:CGRectMake(0.0, 0.0, 200.0, 29.0)]; + + [textFieldWidth setEditable:YES]; + [textFieldWidth setBezeled:YES]; + [textFieldWidth setCenter:CGPointMake([contentView center].x, [contentView center].y + 40.0)]; + [textFieldWidth setPlaceholderString:"enter min width"]; + [contentView addSubview:textFieldWidth]; + + [textFieldHeight setEditable:YES]; + [textFieldHeight setBezeled:YES]; + [textFieldHeight setCenter:CGPointMake([contentView center].x, [contentView center].y + 65.0)]; + [textFieldHeight setPlaceholderString:"enter min height"]; + [contentView addSubview:textFieldHeight]; + + var button = [CPButton buttonWithTitle:@"SetMinSize"], + frame = [textFieldWidth frame]; + + [button setCenter:CGPointMake([contentView center].x, 0)]; + [button setFrameOrigin:CGPointMake(CGRectGetMinX([textFieldHeight frame]), CGRectGetMaxY([textFieldHeight frame]) + 20)]; + [button setTarget:self]; + [button setAction:@selector(setMinSize:)]; + [contentView addSubview:button]; + + [theWindow orderFront:self]; +} + +- (void)setMinSize:(id)sender +{ + [theWindow setMinSize:CGSizeMake([textFieldWidth intValue], [textFieldHeight intValue])]; +} + +@end diff --git a/Tests/Manual/CPPlattformWindowMinSize/Info.plist b/Tests/Manual/CPPlattformWindowMinSize/Info.plist new file mode 100644 index 000000000..70e6c614c --- /dev/null +++ b/Tests/Manual/CPPlattformWindowMinSize/Info.plist @@ -0,0 +1,12 @@ + + + + + CPApplicationDelegateClass + AppController + CPBundleName + CPPlattformWindowMinSize + CPPrincipalClass + CPApplication + + diff --git a/Tests/Manual/CPPlattformWindowMinSize/Jakefile b/Tests/Manual/CPPlattformWindowMinSize/Jakefile new file mode 100644 index 000000000..cc5c666cb --- /dev/null +++ b/Tests/Manual/CPPlattformWindowMinSize/Jakefile @@ -0,0 +1,93 @@ +/* + * Jakefile + * CPPopUpButtonTest + * + * Created by You on December 8, 2010. + * Copyright 2010, 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"); + +app ("CPPopUpButtonTest", function(task) +{ + task.setBuildIntermediatesPath(FILE.join("Build", "CPPopUpButtonTest.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("CPPopUpButtonTest"); + task.setIdentifier("com.yourcompany.CPPopUpButtonTest"); + task.setVersion("1.0"); + task.setAuthor("Your Company"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("CPPopUpButtonTest"); + task.setSources((new FileList("**/*.j")).exclude(FILE.join("Build", "**"))); + 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", ["CPPopUpButtonTest"], function() +{ + printResults(configuration); +}); + +task ("build", ["default"]); + +task ("debug", function() +{ + ENV["CONFIGURATION"] = "Debug"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("release", function() +{ + ENV["CONFIGURATION"] = "Release"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("run", ["debug"], function() +{ + OS.system(["open", FILE.join("Build", "Debug", "CPPopUpButtonTest", "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", "CPPopUpButtonTest", "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", "CPPopUpButtonTest")); + OS.system(["press", "-f", FILE.join("Build", "Release", "CPPopUpButtonTest"), FILE.join("Build", "Deployment", "CPPopUpButtonTest")]); + printResults("Deployment") +}); + +task ("desktop", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Desktop", "CPPopUpButtonTest")); + require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "CPPopUpButtonTest"), FILE.join("Build", "Desktop", "CPPopUpButtonTest", "CPPopUpButtonTest.app")); + printResults("Desktop") +}); + +task ("run-desktop", ["desktop"], function() +{ + OS.system([FILE.join("Build", "Desktop", "CPPopUpButtonTest", "CPPopUpButtonTest.app", "Contents", "MacOS", "NativeHost"), "-i"]); +}); + +function printResults(configuration) +{ + print("----------------------------"); + print(configuration+" app built at path: "+FILE.join("Build", configuration, "CPPopUpButtonTest")); + print("----------------------------"); +} diff --git a/Tests/Manual/CPPlattformWindowMinSize/Resources/spinner.gif b/Tests/Manual/CPPlattformWindowMinSize/Resources/spinner.gif new file mode 100644 index 000000000..a5e705f6c Binary files /dev/null and b/Tests/Manual/CPPlattformWindowMinSize/Resources/spinner.gif differ diff --git a/Tests/Manual/CPPlattformWindowMinSize/index-debug.html b/Tests/Manual/CPPlattformWindowMinSize/index-debug.html new file mode 100644 index 000000000..aa6461fdc --- /dev/null +++ b/Tests/Manual/CPPlattformWindowMinSize/index-debug.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + CPPopUpButtonTest + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/CPPlattformWindowMinSize/index.html b/Tests/Manual/CPPlattformWindowMinSize/index.html new file mode 100644 index 000000000..1f2fb16e4 --- /dev/null +++ b/Tests/Manual/CPPlattformWindowMinSize/index.html @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + CPPopUpButtonTest + + + + + + + + + + + + +
+
+ + + +
+
+ + + + diff --git a/Tests/Manual/CPPlattformWindowMinSize/main.j b/Tests/Manual/CPPlattformWindowMinSize/main.j new file mode 100644 index 000000000..10e33bfeb --- /dev/null +++ b/Tests/Manual/CPPlattformWindowMinSize/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * CPPopUpButtonTest + * + * Created by You on December 8, 2010. + * Copyright 2010, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +} diff --git a/Tests/Manual/CPPopUpButtonTest/AppController.j b/Tests/Manual/CPPopUpButtonTest/AppController.j index 84886378a..0e13f1dd7 100644 --- a/Tests/Manual/CPPopUpButtonTest/AppController.j +++ b/Tests/Manual/CPPopUpButtonTest/AppController.j @@ -75,9 +75,24 @@ // https://github.com/280north/cappuccino/pull/1018 [popUpButton2 selectItemWithTag:2]; + // manual test for https://github.com/cappuccino/cappuccino/issues/2471 + var button2 = [CPButton buttonWithTitle:@"Set title to: ''"]; + + [button2 setCenter:CGPointMake([contentView center].x, 0)]; + [button2 setFrameOrigin:CGPointMake(CGRectGetMinX([button frame]), CGRectGetMaxY([button frame]) + 20)]; + [button2 setTarget:self]; + [button2 setAction:@selector(setTitleToEmptyString:)]; + [contentView addSubview:button2]; + + [theWindow orderFront:self]; } +- (@action)setTitleToEmptyString:(id)sender +{ + [popUpButton setTitle:'']; +} + - (@action)removeItems:(id)sender { [popUpButton2 removeAllItems]; diff --git a/Tests/Manual/CPPredicateEditorCibTest/AppController.j b/Tests/Manual/CPPredicateEditorCibTest/AppController.j index 918f38a6d..3f8db4899 100644 --- a/Tests/Manual/CPPredicateEditorCibTest/AppController.j +++ b/Tests/Manual/CPPredicateEditorCibTest/AppController.j @@ -7,7 +7,7 @@ */ @import -@import "Predicatetransformer.j" +@import "PredicateTransformer.j" @implementation AppController : CPObject { diff --git a/Tests/Manual/CPSearchFieldPredicateBinding/AppController.j b/Tests/Manual/CPSearchFieldPredicateBinding/AppController.j new file mode 100755 index 000000000..088e0f59a --- /dev/null +++ b/Tests/Manual/CPSearchFieldPredicateBinding/AppController.j @@ -0,0 +1,49 @@ +/* + * AppController.j + * 44-Sorting-CPTableView + * + * Created by Argos Oz on May 1, 2018. + * 2018, Army of Me + */ + +@import +@import + +@import "Person.j" + +@implementation AppController : CPObject +{ + @outlet CPWindow theWindow; + @outlet CPTableView _tableView; + CPMutableArray _people @accessors(property=people); +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + _people = [[CPMutableArray alloc] init]; + + [_tableView setSortDescriptors: + @[ + [CPSortDescriptor sortDescriptorWithKey:@"name" + ascending:YES + selector:@selector(caseInsensitiveCompare:) + ], + [CPSortDescriptor sortDescriptorWithKey:@"age" + ascending:YES + ] + ] + ]; + +} + +- (void)awakeFromCib +{ + // This is called when the cib is done loading. + // You can implement this method on any object instantiated from a Cib. + // It's a useful hook for setting up current UI values, and other things. + + // In this case, we want the window from Cib to become our full browser window + [theWindow setFullPlatformWindow:NO]; +} + +@end diff --git a/Tests/Manual/CPSearchFieldPredicateBinding/Info.plist b/Tests/Manual/CPSearchFieldPredicateBinding/Info.plist new file mode 100755 index 000000000..0d23ecd7f --- /dev/null +++ b/Tests/Manual/CPSearchFieldPredicateBinding/Info.plist @@ -0,0 +1,14 @@ + + + + + Main cib file base name + MainMenu.cib + CPBundleName + 44-Sorting-CPTableView + CPBundleVersion + 1.0 + CPHumanReadableCopyright + Copyright © 2018, Army of Me, Inc. All rights reserved. + + diff --git a/Tests/Manual/CPSearchFieldPredicateBinding/Jakefile b/Tests/Manual/CPSearchFieldPredicateBinding/Jakefile new file mode 100755 index 000000000..6f3616e21 --- /dev/null +++ b/Tests/Manual/CPSearchFieldPredicateBinding/Jakefile @@ -0,0 +1,172 @@ +/* + * Jakefile + * 44-Sorting-CPTableView + * + * Created by Argos Oz on May 1, 2018. + * Copyright 2018, Army of Me, Inc. 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 = "44SortingCPTableView"; + +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", "44SortingCPTableView.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("44-Sorting-CPTableView"); + task.setIdentifier("com.yourcompany.44SortingCPTableView"); + task.setVersion("1.0"); + task.setAuthor("Army of Me, Inc."); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("44-Sorting-CPTableView"); + 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 -S --inline-msg-send"); + else + task.setCompilerFlags("-O2"); +}); + +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") +}); + +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/CPSearchFieldPredicateBinding/Person.j b/Tests/Manual/CPSearchFieldPredicateBinding/Person.j new file mode 100755 index 000000000..3442e6c64 --- /dev/null +++ b/Tests/Manual/CPSearchFieldPredicateBinding/Person.j @@ -0,0 +1,17 @@ +@implementation Person : CPObject +{ + CPString _name; + int _age; +} + +- (id) init +{ + self = [super init]; + if(self){ + _name = @"Tyler Durden" + _age = 27; + } + return self; +} + +@end diff --git a/Tests/Manual/CPSearchFieldPredicateBinding/Resources/MainMenu.cib b/Tests/Manual/CPSearchFieldPredicateBinding/Resources/MainMenu.cib new file mode 100755 index 000000000..6babf19b8 --- /dev/null +++ b/Tests/Manual/CPSearchFieldPredicateBinding/Resources/MainMenu.cib @@ -0,0 +1 @@ +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;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;35E;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;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;58E;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;59E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;150E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;155E;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;61E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;150E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;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;3;156E;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;3;157E;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;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;158E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;139E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;159E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;129E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;160E;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;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;124E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;121E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;162E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;65E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;163E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;73E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;164E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;78E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;165E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;79E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;166E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;167E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;72E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;168E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;127E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;169E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;81E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;170E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;76E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;171E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;69E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;59E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;172E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;114E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;173E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;113E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;174E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;88E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;175E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;91E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;176E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;87E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;177E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;103E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;178E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;90E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;89E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;180E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;102E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;84E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;95E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;99E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;85E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;185E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;104E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;186E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;122E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;187E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;117E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;188E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;118E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;189E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;105E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;108E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;191E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;109E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;192E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;110E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;193E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;148E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;153E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;194E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;133E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;153E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;195E;E;D;K;10;$classnameS;21;CPCibBindingConnectorK;8;$classesA;S;21;CPCibBindingConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;153E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;151E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;196E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;197E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;198E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;200E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;142E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;153E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;201E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;202E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;203E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;204E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;150E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;153E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;205E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;206E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;207E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;208E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;141E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;153E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;209E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;202E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;210E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;211E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;156E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;212E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;213E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;214E;E;D;K;10;$classnameS;10;CPMenuItemK;8;$classesA;S;10;CPMenuItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;215E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;64E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;216E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;64E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;61E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;215E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;218E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;219E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;220E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;64E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;221E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;222E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;223E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;64E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;224E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;64E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;225E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;221E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;222E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;223E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;64E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;226E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;64E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;227E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;228E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;71E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;216E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;71E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;61E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;228E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;229E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;230E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;71E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;231E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;232E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;71E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;233E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;234E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;75E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;216E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;75E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;71E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;234E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;235E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;236E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;237E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;75E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;221E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;222E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;223E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;71E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;238E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;71E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;239E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;240E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;71E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;241E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;242E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;71E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;243E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;244E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;245E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;71E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;246E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;83E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;216E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;83E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;61E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;246E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;247E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;248E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;249E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;250E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;251E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;244E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;221E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;222E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;223E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;252E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;253E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;254E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;255E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;256E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;257E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;258E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;259E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;260E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;221E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;222E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;223E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;261E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;94E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;216E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;94E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;261E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;262E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;263E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;264E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;94E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;265E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;266E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;267E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;94E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;268E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;269E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;270E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;94E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;271E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;244E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;272E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;273E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;94E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;274E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;275E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;94E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;276E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;277E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;101E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;216E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;101E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;277E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;278E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;279E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;280E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;281E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;282E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;283E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;284E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;101E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;285E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;107E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;216E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;107E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;285E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;286E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;287E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;264E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;265E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;288E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;267E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;268E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;289E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;270E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;271E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;244E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;290E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;112E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;216E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;112E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;290E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;291E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;292E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;112E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;293E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;112E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;294E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;116E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;216E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;116E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;61E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;294E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;295E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;296E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;116E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;297E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;298E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;299E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;116E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;300E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;120E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;216E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;120E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;61E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;300E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;301E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;302E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;303E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;120E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;304E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;305E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;120E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;221E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;222E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;223E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;120E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;306E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;120E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;307E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;126E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;216E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;126E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;61E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;307E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;308E;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;309E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;126E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;310E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;128E;K;30;_CPCibWindowTemplateMinSizeKeyD;K;6;CP$UIDd;3;311E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;312E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;313E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;314E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;315E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;316E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;317E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;300E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;131E;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;3;130E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;318E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;319E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;319E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;320E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;323E;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;3;132E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;131E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;318E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;324E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;325E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;131E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;326E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;327E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;328E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;318E;K;6;$afontD;K;6;CP$UIDd;3;330E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;318E;K;11;$aalignmentD;K;6;CP$UIDd;3;267E;K;7;$aimageD;K;6;CP$UIDd;3;332E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;333E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;318E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;334E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;318E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;335E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;336E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;222E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;223E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;337E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;318E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;221E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;267E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;318E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;12;CPScrollViewK;8;$classesA;S;12;CPScrollViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;134E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;131E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;318E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;338E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;339E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;340E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;131E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;341E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;342E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;343E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;3;137E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;3;344E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;3;145E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;3;144E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;3;345E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;3;345E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;3;345E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;3;345E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;3;221E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;3;221E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;3;221E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;3;346E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;3;267E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;K;6;CP$UIDd;3;318E;E;D;K;10;$classnameS;10;CPClipViewK;8;$classesA;S;10;CPClipViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;136E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;135E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;318E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;347E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;348E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;349E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;135E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;350E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;352E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;353E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;3;139E;E;D;K;10;$classnameS;11;CPTableViewK;8;$classesA;S;11;CPTableViewS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;138E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;137E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;318E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;354E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;354E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;137E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;352E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;355E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;K;12;$agrid-colorD;K;6;CP$UIDd;3;356E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;357E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;334E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;1;0E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewDataSourceKeyD;K;6;CP$UIDd;1;0E;K;22;CPTableViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;23;CPTableViewRowHeightKeyD;K;6;CP$UIDd;3;358E;K;30;CPTableViewIntercellSpacingKeyD;K;6;CP$UIDd;3;359E;K;37;CPTableViewSelectionHighlightStyleKeyD;K;6;CP$UIDd;3;318E;K;37;CPTableViewColumnAutoresizingStyleKeyD;K;6;CP$UIDd;3;334E;K;31;CPTableViewMultipleSelectionKeyD;K;6;CP$UIDd;3;223E;K;28;CPTableViewEmptySelectionKeyD;K;6;CP$UIDd;3;221E;K;30;CPTableViewColumnReorderingKeyD;K;6;CP$UIDd;3;221E;K;28;CPTableViewColumnResizingKeyD;K;6;CP$UIDd;3;221E;K;29;CPTableViewColumnSelectionKeyD;K;6;CP$UIDd;3;221E;K;26;CPTableViewTableColumnsKeyD;K;6;CP$UIDd;3;360E;K;23;CPTableViewGridColorKeyD;K;6;CP$UIDd;3;356E;K;27;CPTableViewGridStyleMaskKeyD;K;6;CP$UIDd;3;318E;K;39;CPTableViewUsesAlternatingBackgroundKeyD;K;6;CP$UIDd;3;223E;K;34;CPTableViewAlternatingRowColorsKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewCornerViewKeyD;K;6;CP$UIDd;3;362E;K;24;CPTableViewHeaderViewKeyD;K;6;CP$UIDd;3;147E;K;26;CPTableViewAutosaveNameKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;13;CPTableColumnK;8;$classesA;S;13;CPTableColumnS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;140E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;1;0E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;363E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;364E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;365E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;367E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;369E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;270E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;223E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;221E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;140E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;1;0E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;370E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;364E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;365E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;371E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;372E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;270E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;223E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;221E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;10;CPScrollerK;8;$classesA;S;10;CPScrollerS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;143E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;135E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;318E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;373E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;374E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;135E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;350E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;375E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;376E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;377E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;378E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;318E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;3;135E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;379E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;334E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;1;0E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;1;0E;K;23;CPScrollerIsVerticalKeyD;K;6;CP$UIDd;3;223E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;264E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;143E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;135E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;318E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;380E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;381E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;135E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;350E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;375E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;376E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;377E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;382E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;318E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;3;135E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;383E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;334E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;1;0E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;1;0E;K;23;CPScrollerIsVerticalKeyD;K;6;CP$UIDd;3;221E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;264E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;17;CPTableHeaderViewK;8;$classesA;S;17;CPTableHeaderViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;146E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;344E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;318E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;384E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;384E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;344E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;385E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;386E;K;29;CPTableHeaderViewTableViewKeyD;K;6;CP$UIDd;3;139E;E;D;K;6;$classD;K;6;CP$UIDd;3;132E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;131E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;318E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;387E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;388E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;131E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;389E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;327E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;328E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;318E;K;6;$afontD;K;6;CP$UIDd;3;330E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;318E;K;11;$aalignmentD;K;6;CP$UIDd;3;267E;K;7;$aimageD;K;6;CP$UIDd;3;390E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;391E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;318E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;334E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;318E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;335E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;392E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;222E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;223E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;337E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;318E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;221E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;267E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;318E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;13;CPSearchFieldK;8;$classesA;S;13;CPSearchFieldS;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;149E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;131E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;318E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;393E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;394E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;131E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;326E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;395E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;396E;K;6;$afontD;K;6;CP$UIDd;3;397E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;267E;K;11;$aalignmentD;K;6;CP$UIDd;3;334E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;222E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;334E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;318E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;335E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;221E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;221E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;223E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;399E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;267E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;334E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;221E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;223E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;221E;K;27;CPSendsWholeSearchStringKeyD;K;6;CP$UIDd;3;223E;K;33;CPSendsSearchStringImmediatelyKeyD;K;6;CP$UIDd;3;221E;K;19;CPMaximumRecentsKeyD;K;6;CP$UIDd;3;400E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;401E;E;D;K;10;$classnameS;17;CPArrayControllerK;8;$classesA;S;17;CPArrayControllerS;18;CPObjectControllerS;12;CPControllerS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;152E;K;28;CPObjectControllerContentKeyD;K;6;CP$UIDd;1;0E;K;36;CPObjectControllerObjectClassNameKeyD;K;6;CP$UIDd;3;402E;K;31;CPObjectControllerIsEditableKeyD;K;6;CP$UIDd;3;221E;K;49;CPObjectControllerAutomaticallyPreparesContentKeyD;K;6;CP$UIDd;3;223E;K;37;CPObjectControllerUsesLazyFetchingKeyD;K;6;CP$UIDd;3;223E;K;40;CPObjectControllerIsUsingManagedProxyKeyD;K;6;CP$UIDd;3;223E;K;33;CPObjectControllerManagedProxyKeyD;K;6;CP$UIDd;3;404E;K;37;CPArrayControllerAvoidsEmptySelectionD;K;6;CP$UIDd;3;221E;K;49;CPArrayControllerClearsFilterPredicateOnInsertionD;K;6;CP$UIDd;3;221E;K;41;CPArrayControllerFilterRestrictsInsertionD;K;6;CP$UIDd;3;221E;K;35;CPArrayControllerPreservesSelectionD;K;6;CP$UIDd;3;221E;K;39;CPArrayControllerSelectsInsertedObjectsD;K;6;CP$UIDd;3;221E;K;47;CPArrayControllerAlwaysUsesMultipleValuesMarkerD;K;6;CP$UIDd;3;223E;K;47;CPArrayControllerAutomaticallyRearrangesObjectsD;K;6;CP$UIDd;3;223E;E;D;K;10;$classnameS;24;CPUserDefaultsControllerK;8;$classesA;S;24;CPUserDefaultsControllerS;12;CPControllerS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;154E;K;33;CPUserDefaultsControllerSharedKeyD;K;6;CP$UIDd;3;221E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;129E;E;E;S;8;delegateS;10;_tableViewS;9;theWindowS;15;arrangeInFront:S;19;performMiniaturize:S;29;orderFrontStandardAboutPanel:S;13;openDocument:S;13;performClose:S;13;saveDocument:S;15;saveDocumentAs:S;12;newDocument:S;9;showHelp:S;22;revertDocumentToSaved:S;21;clearRecentDocuments:S;10;terminate:S;13;stopSpeaking:S;14;startSpeaking:S;5;copy:S;10;selectAll:S;4;cut:S;14;checkSpelling:S;7;delete:S;6;paste:S;15;showGuessPanel:S;5;undo:S;23;performFindPanelAction:S;29;centerSelectionInVisibleArea:S;5;redo:S;30;toggleContinuousSpellChecking:S;12;performZoom:S;19;toggleToolbarShown:S;31;runToolbarCustomizationPalette:S;22;toggleGrammarChecking:S;24;toggleSmartInsertDelete:S;33;toggleAutomaticQuoteSubstitution:S;29;toggleAutomaticLinkDetection:S;7;remove:S;4;add:S;20;contentArray: peopleS;12;contentArrayS;6;peopleD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;199E;K;10;CP.objectsD;E;E;S;26;value: arrangedObjects.ageS;5;valueS;19;arrangedObjects.ageD;K;6;$classD;K;6;CP$UIDd;3;199E;K;10;CP.objectsD;E;E;S;26;predicate: filterPredicateS;9;predicateS;15;filterPredicateD;K;6;$classD;K;6;CP$UIDd;3;199E;K;10;CP.objectsD;K;17;CPPredicateFormatD;K;6;CP$UIDd;3;405E;K;13;CPDisplayNameD;K;6;CP$UIDd;3;206E;E;E;S;27;value: arrangedObjects.nameS;20;arrangedObjects.nameD;K;6;$classD;K;6;CP$UIDd;3;199E;K;10;CP.objectsD;E;E;S;9;AMainMenuS;11;_CPMainMenuD;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;70E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;125E;E;E;S;14;NewApplicationS;14;submenuAction:d;7;1048576S;18;_CPApplicationMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;E;E;S;20;About NewApplicationT;S;0;F;S;12;Preferences…S;1;,S;19;Quit NewApplicationS;1;qS;4;FileD;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;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;81E;E;E;S;3;NewS;1;nS;5;Open…S;1;oS;11;Open RecentS;22;_CPRecentDocumentsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;76E;E;E;S;10;Clear MenuS;5;CloseS;1;wS;4;SaveS;1;sS;8;Save As…S;1;Sd;7;1179648S;15;Revert to SavedS;4;EditD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;111E;E;E;S;4;UndoS;1;zS;4;RedoS;1;ZS;3;CutS;1;xS;4;CopyS;1;cS;5;PasteS;1;vS;6;DeleteS;10;Select AllS;1;aS;4;FindD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;E;E;S;5;Find…d;1;1S;1;fS;9;Find Nextd;1;2S;1;gS;13;Find Previousd;1;3S;1;GS;22;Use Selection for Findd;1;7S;1;eS;17;Jump to SelectionS;1;jS;20;Spelling and GrammarD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;E;E;S;14;Show Spelling…S;1;:S;14;Check SpellingS;1;;S;27;Check Spelling While TypingS;27;Check Grammar With SpellingS;13;SubstitutionsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;110E;E;E;S;16;Smart Copy/PasteS;12;Smart QuotesS;11;Smart LinksS;6;SpeechD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;E;E;S;14;Start SpeakingS;13;Stop SpeakingS;4;ViewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;118E;E;E;S;12;Show ToolbarS;1;td;7;1572864S;18;Customize Toolbar…S;6;WindowS;14;_CPWindowsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;124E;E;E;S;8;MinimizeS;1;mS;4;ZoomS;18;Bring All to FrontS;4;HelpD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;127E;E;E;S;19;NewApplication HelpS;1;?S;10;{264, 292}S;32;{10000000000000, 10000000000000}S;8;CPWindowd;10;1879048192S;24;{{335, 230}, {434, 258}}S;21;{{0, 0}, {1440, 878}}d;2;15d;1;0S;20;{{0, 0}, {434, 258}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;150E;E;E;S;6;normalS;6;{1, 1}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;20;{{20, 20}, {53, 25}}S;18;{{0, 0}, {53, 25}}d;2;36S;6;buttonS;27;bordered+controlSizeRegularD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;329E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;406E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;335E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;221E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;223E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;221E;E;D;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;331E;K;4;nameD;K;6;CP$UIDd;3;407E;K;12;defaultValueD;K;6;CP$UIDd;3;409E;K;5;stateD;K;6;CP$UIDd;3;410E;K;5;valueD;K;6;CP$UIDd;3;411E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;d;1;4d;2;-1S;3;Addd;2;14S;22;{{20, 67}, {394, 171}}S;20;{{0, 0}, {394, 171}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;344E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;346E;E;E;d;2;18S;10;scrollviewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;3;136E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;135E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;318E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;412E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;413E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;414E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;135E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;350E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;415E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;3;147E;E;d;2;10D;K;6;$classD;K;6;CP$UIDd;3;130E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;135E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;416E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;416E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;135E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;417E;E;S;20;{{1, 1}, {392, 170}}S;20;{{0, 0}, {392, 170}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;139E;E;E;d;1;8D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;351E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;418E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;419E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;20;{{0, 0}, {392, 147}}S;9;tableviewD;K;6;$classD;K;6;CP$UIDd;3;351E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;420E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;419E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;d;2;25S;6;{3, 2}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;142E;E;E;D;K;10;$classnameS;13;_CPCornerViewK;8;$classesA;S;13;_CPCornerViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;361E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;318E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;421E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;421E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;422E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;423E;E;d;3;116d;2;40d;4;1000D;K;10;$classnameS;24;_CPTableColumnHeaderViewK;8;$classesA;S;24;_CPTableColumnHeaderViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;366E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;416E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;416E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;424E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;425E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;K;6;$afontD;K;6;CP$UIDd;3;426E;K;12;$atext-colorD;K;6;CP$UIDd;3;427E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;334E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;428E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;429E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;426E;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;3;368E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;416E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;416E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;430E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;431E;K;6;$afontD;K;6;CP$UIDd;3;397E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;334E;K;11;$aalignmentD;K;6;CP$UIDd;3;334E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;432E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;433E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;434E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;318E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;335E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;221E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;221E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;223E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;352E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;334E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;334E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;223E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;223E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;223E;E;d;3;270D;K;6;$classD;K;6;CP$UIDd;3;366E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;416E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;416E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;435E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;425E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;K;6;$afontD;K;6;CP$UIDd;3;426E;K;12;$atext-colorD;K;6;CP$UIDd;3;427E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;334E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;436E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;437E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;426E;E;D;K;6;$classD;K;6;CP$UIDd;3;368E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;416E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;416E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;430E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;431E;K;6;$afontD;K;6;CP$UIDd;3;397E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;334E;K;11;$aalignmentD;K;6;CP$UIDd;3;334E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;438E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;433E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;434E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;318E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;335E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;221E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;221E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;223E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;352E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;334E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;334E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;223E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;223E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;223E;E;S;22;{{1, -106}, {202, 15}}S;19;{{0, 0}, {202, 15}}d;11;-2147483648S;8;scrollerS;27;controlSizeRegular+disabledD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;29;_horizontalScrollerDidScroll:S;22;{{224, 52}, {15, 102}}S;19;{{0, 0}, {15, 102}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;27;_verticalScrollerDidScroll:S;19;{{0, 0}, {392, 25}}S;14;tableHeaderRowD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;20;{{92, 20}, {77, 25}}S;18;{{0, 0}, {77, 25}}d;2;33D;K;6;$classD;K;6;CP$UIDd;3;331E;K;4;nameD;K;6;CP$UIDd;3;407E;K;12;defaultValueD;K;6;CP$UIDd;3;409E;K;5;stateD;K;6;CP$UIDd;3;410E;K;5;valueD;K;6;CP$UIDd;3;411E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;6;RemoveS;22;{{235, 17}, {183, 32}}S;19;{{0, 0}, {183, 32}}S;11;searchfieldS;55;bezeled+controlSizeRegular+editable+placeholder+roundedD;K;6;$classD;K;6;CP$UIDd;3;329E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;406E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;335E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;223E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;223E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;221E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;440E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;351E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;441E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;419E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;E;d;3;254S;13;AppControllerS;6;PersonD;K;10;$classnameS;15;_CPManagedProxyK;8;$classesA;S;15;_CPManagedProxyS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;403E;K;27;CPManagedProxyEntityNameKeyD;K;6;CP$UIDd;1;0E;K;31;CPManagedProxyFetchPredicateKeyD;K;6;CP$UIDd;1;0E;E;S;20;name contains $valueS;28;_CPFontSystemFacePlaceholderS;5;imageD;K;10;$classnameS;6;CPNullK;8;$classesA;S;6;CPNullS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;408E;E;S;11;highlightedD;K;6;$classD;K;6;CP$UIDd;3;329E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;442E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;443E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;223E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;223E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;223E;E;S;21;{{1, 148}, {392, 23}}S;19;{{0, 0}, {392, 23}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;147E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;16;{{0, 0}, {0, 0}}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;3;264E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;264E;E;E;S;5;colorD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;444E;D;K;6;CP$UIDd;3;444E;D;K;6;CP$UIDd;3;444E;D;K;6;CP$UIDd;3;264E;E;E;S;18;{{0, 0}, {14, 25}}S;10;cornerviewD;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;3;446E;E;E;S;12;columnHeaderD;K;6;$classD;K;6;CP$UIDd;3;329E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;406E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;447E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;221E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;223E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;221E;E;D;K;6;$classD;K;6;CP$UIDd;3;351E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;448E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;419E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;4;NameS;9;textfieldS;41;controlSizeRegular+editable+tableDataViewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;449E;E;E;S;9;Text Celld;4;3072D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;450E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;3;AgeD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;451E;E;E;D;K;10;$classnameS;14;CPTrackingAreaK;8;$classesA;S;14;CPTrackingAreaS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;439E;K;25;CPTrackinkAreaViewRectKeyD;K;6;CP$UIDd;3;453E;K;24;CPTrackingAreaOptionsKeyD;K;6;CP$UIDd;3;454E;K;22;CPTrackingAreaOwnerKeyD;K;6;CP$UIDd;3;150E;K;25;CPTrackingAreaUserInfoKeyD;K;6;CP$UIDd;1;0E;K;32;CPTrackingAreaReferencingViewKeyD;K;6;CP$UIDd;3;150E;K;24;CPTrackingAreaWindowRectD;K;6;CP$UIDd;3;455E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;264E;E;E;S;18;.AppleSystemUIFontd;2;13f;3;0.8D;K;10;$classnameS;19;_CPImageAndTextViewK;8;$classesA;S;19;_CPImageAndTextViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;445E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;367E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;456E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;457E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;367E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;341E;K;17;CPViewHitTestsKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;458E;E;d;2;12D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;459E;D;K;6;CP$UIDd;3;459E;D;K;6;CP$UIDd;3;459E;D;K;6;CP$UIDd;3;264E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;439E;K;25;CPTrackinkAreaViewRectKeyD;K;6;CP$UIDd;3;460E;K;24;CPTrackingAreaOptionsKeyD;K;6;CP$UIDd;3;454E;K;22;CPTrackingAreaOwnerKeyD;K;6;CP$UIDd;3;369E;K;25;CPTrackingAreaUserInfoKeyD;K;6;CP$UIDd;1;0E;K;32;CPTrackingAreaReferencingViewKeyD;K;6;CP$UIDd;3;369E;K;24;CPTrackingAreaWindowRectD;K;6;CP$UIDd;3;461E;E;D;K;6;$classD;K;6;CP$UIDd;3;445E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;371E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;456E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;457E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;371E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;341E;K;17;CPViewHitTestsKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;321E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;322E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;223E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;462E;E;D;K;6;$classD;K;6;CP$UIDd;3;439E;K;25;CPTrackinkAreaViewRectKeyD;K;6;CP$UIDd;3;463E;K;24;CPTrackingAreaOptionsKeyD;K;6;CP$UIDd;3;454E;K;22;CPTrackingAreaOwnerKeyD;K;6;CP$UIDd;3;372E;K;25;CPTrackingAreaUserInfoKeyD;K;6;CP$UIDd;1;0E;K;32;CPTrackingAreaReferencingViewKeyD;K;6;CP$UIDd;3;372E;K;24;CPTrackingAreaWindowRectD;K;6;CP$UIDd;3;464E;E;D;K;10;$classnameS;21;_CPKeyedArchiverValueK;8;$classesA;S;21;_CPKeyedArchiverValueS;7;CPValueS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;452E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;465E;E;d;2;42D;K;6;$classD;K;6;CP$UIDd;3;452E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;466E;E;S;18;{{5, 0}, {-10, 0}}S;18;{{0, 0}, {-10, 0}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;f;18;0.5019607843137255D;K;6;$classD;K;6;CP$UIDd;3;452E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;467E;E;D;K;6;$classD;K;6;CP$UIDd;3;452E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;468E;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;3;452E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;467E;E;D;K;6;$classD;K;6;CP$UIDd;3;452E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;468E;E;S;57;{"origin":{"x":0,"y":1},"size":{"width":183,"height":31}}S;60;{"origin":{"x":235,"y":18},"size":{"width":183,"height":31}}S;55;{"origin":{"x":0,"y":1},"size":{"width":0,"height":-1}}S;54;{"origin":{"x":0,"y":0},"size":{"width":0,"height":1}}E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/CPSearchFieldPredicateBinding/Resources/MainMenu.xib b/Tests/Manual/CPSearchFieldPredicateBinding/Resources/MainMenu.xib new file mode 100755 index 000000000..6f1e71f8d --- /dev/null +++ b/Tests/Manual/CPSearchFieldPredicateBinding/Resources/MainMenu.xib @@ -0,0 +1,414 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + predicate + name contains $value + + + + + + + + + + + + + + + + + name + age + + + + + + + + diff --git a/Tests/Manual/CPSearchFieldPredicateBinding/index-debug.html b/Tests/Manual/CPSearchFieldPredicateBinding/index-debug.html new file mode 100755 index 000000000..277ed18ef --- /dev/null +++ b/Tests/Manual/CPSearchFieldPredicateBinding/index-debug.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + 44-Sorting-CPTableView + + + + + + + + + + + + + + +
+
+
+ +
+
+ +
+ + diff --git a/Tests/Manual/CPSearchFieldPredicateBinding/index.html b/Tests/Manual/CPSearchFieldPredicateBinding/index.html new file mode 100755 index 000000000..618ec9cec --- /dev/null +++ b/Tests/Manual/CPSearchFieldPredicateBinding/index.html @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + 44-Sorting-CPTableView + + + + + + + + + + + + +
+
+
+ +
+
+ +
+ + diff --git a/Tests/Manual/CPSearchFieldPredicateBinding/main.j b/Tests/Manual/CPSearchFieldPredicateBinding/main.j new file mode 100755 index 000000000..a4794de7b --- /dev/null +++ b/Tests/Manual/CPSearchFieldPredicateBinding/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * 44-Sorting-CPTableView + * + * Created by Argos Oz on May 1, 2018. + * Copyright 2018, Army of Me, Inc. All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +} diff --git a/Tests/Manual/CPTextView/AppController.j b/Tests/Manual/CPTextView/AppController.j index 963916c9a..3258f11c3 100755 --- a/Tests/Manual/CPTextView/AppController.j +++ b/Tests/Manual/CPTextView/AppController.j @@ -51,23 +51,25 @@ [contentView setBackgroundColor:[CPColor colorWithWhite:0.95 alpha:1.0]]; - var mybutton=[[CPButton alloc] initWithFrame:CGRectMake(0, 0,50, 25)]; - [mybutton setTitle:"Open sheet"] - [mybutton setTarget:self] - [mybutton setAction:@selector(openSheet:)] - [contentView addSubview:mybutton] + var mybutton=[[CPButton alloc] initWithFrame:CGRectMake(0, 0, 250, 25)]; + [mybutton setTitle:"Open sheet (must not be triggered by return)"] + [mybutton setTarget:self]; + [mybutton setAction:@selector(openSheet:)]; + [mybutton setKeyEquivalent:@"\r"]; + + [contentView addSubview:mybutton]; - _textView = [[CPTextView alloc] initWithFrame:CGRectMake(0,0,500,500)]; + _textView = [[CPTextView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)]; [_textView setRichText:YES]; - _textView2 = [[CPTextView alloc] initWithFrame:CGRectMake(0,0,500,500)]; + _textView2 = [[CPTextView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)]; _textView2._isRichText = NO; [_textView setBackgroundColor:[CPColor whiteColor]]; [_textView2 setBackgroundColor:[CPColor whiteColor]]; - var scrollView = [[CPScrollView alloc] initWithFrame:CGRectMake(20, 20,520,510)]; - var scrollView2 = [[CPScrollView alloc] initWithFrame:CGRectMake(560, 20,520,510)]; + var scrollView = [[CPScrollView alloc] initWithFrame:CGRectMake(20, 70, 520, 510)]; + var scrollView2 = [[CPScrollView alloc] initWithFrame:CGRectMake(560, 70, 520, 510)]; // [scrollView setAutohidesScrollers:YES]; [scrollView setDocumentView:_textView]; [scrollView2 setDocumentView:_textView2]; diff --git a/Tests/Manual/KeyWindowInTheBackgroundActivation/AppController.j b/Tests/Manual/KeyWindowInTheBackgroundActivation/AppController.j new file mode 100644 index 000000000..959fc5541 --- /dev/null +++ b/Tests/Manual/KeyWindowInTheBackgroundActivation/AppController.j @@ -0,0 +1,42 @@ +/* + * AppController.j + * WindowFrontTest + * + * Created by You on January 15, 2018. + * Copyright 2018, Your Company All rights reserved. + */ + +@import +@import + + +@implementation AppController : CPObject +{ + @outlet CPWindow theWindow; + @outlet CPWindow window1; + @outlet CPWindow window2; +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + // This is called when the application is done loading. +} + +- (void)awakeFromCib +{ + // This is called when the cib is done loading. + // You can implement this method on any object instantiated from a Cib. + // It's a useful hook for setting up current UI values, and other things. + + // In this case, we want the window from Cib to become our full browser window + [theWindow setFullPlatformWindow:YES]; + + [window1 performSelector:@selector(makeKeyAndOrderFront:) withObject:self afterDelay:0.1]; +} + +- (IBAction)bringWindow2Front:(id)sender +{ + [window2 orderFront:self]; +} + +@end diff --git a/Tests/Manual/KeyWindowInTheBackgroundActivation/Info.plist b/Tests/Manual/KeyWindowInTheBackgroundActivation/Info.plist new file mode 100644 index 000000000..8016aeaa5 --- /dev/null +++ b/Tests/Manual/KeyWindowInTheBackgroundActivation/Info.plist @@ -0,0 +1,14 @@ + + + + + Main cib file base name + MainMenu.cib + CPBundleName + WindowFrontTest + CPBundleVersion + 1.0 + CPHumanReadableCopyright + Copyright © 2018, Your Company All rights reserved. + + diff --git a/Tests/Manual/KeyWindowInTheBackgroundActivation/Jakefile b/Tests/Manual/KeyWindowInTheBackgroundActivation/Jakefile new file mode 100644 index 000000000..f158726dc --- /dev/null +++ b/Tests/Manual/KeyWindowInTheBackgroundActivation/Jakefile @@ -0,0 +1,172 @@ +/* + * Jakefile + * WindowFrontTest + * + * Created by You on January 15, 2018. + * Copyright 2018, 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 = "WindowFrontTest"; + +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", "WindowFrontTest.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("WindowFrontTest"); + task.setIdentifier("com.yourcompany.WindowFrontTest"); + task.setVersion("1.0"); + task.setAuthor("Your Company"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("WindowFrontTest"); + 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("-O2"); +}); + +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") +}); + +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/KeyWindowInTheBackgroundActivation/Resources/MainMenu.cib b/Tests/Manual/KeyWindowInTheBackgroundActivation/Resources/MainMenu.cib new file mode 100644 index 000000000..20d490fd8 --- /dev/null +++ b/Tests/Manual/KeyWindowInTheBackgroundActivation/Resources/MainMenu.cib @@ -0,0 +1 @@ +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;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;35E;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;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;53E;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;54E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;132E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;135E;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;56E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;132E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;135E;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;3;136E;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;3;137E;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;3;127E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;138E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;127E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;124E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;139E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;127E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;128E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;140E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;127E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;132E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;141E;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;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;119E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;142E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;116E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;143E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;60E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;144E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;68E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;145E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;73E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;146E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;74E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;147E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;75E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;67E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;149E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;122E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;150E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;76E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;151E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;71E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;152E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;64E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;54E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;153E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;109E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;154E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;108E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;155E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;83E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;156E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;86E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;82E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;158E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;98E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;159E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;85E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;160E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;84E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;97E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;162E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;79E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;163E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;90E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;164E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;94E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;165E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;166E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;99E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;167E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;117E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;168E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;112E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;169E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;113E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;170E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;100E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;171E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;103E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;172E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;104E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;173E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;105E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;174E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;131E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;127E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;175E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;136E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;176E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;177E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;178E;E;D;K;10;$classnameS;10;CPMenuItemK;8;$classesA;S;10;CPMenuItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;179E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;59E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;180E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;59E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;56E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;179E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;182E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;184E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;185E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;186E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;187E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;188E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;189E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;185E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;186E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;187E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;190E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;191E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;192E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;66E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;180E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;66E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;56E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;192E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;193E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;194E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;66E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;195E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;196E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;66E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;197E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;198E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;70E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;180E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;70E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;66E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;198E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;199E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;200E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;201E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;70E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;185E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;186E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;187E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;66E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;202E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;66E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;203E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;204E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;66E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;205E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;206E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;66E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;207E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;208E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;209E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;66E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;210E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;78E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;180E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;78E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;56E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;210E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;211E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;212E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;213E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;214E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;215E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;208E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;185E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;186E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;187E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;216E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;217E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;218E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;219E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;220E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;221E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;222E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;223E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;224E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;185E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;186E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;187E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;225E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;89E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;180E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;89E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;225E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;226E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;227E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;228E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;89E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;229E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;230E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;231E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;89E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;232E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;233E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;234E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;89E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;235E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;208E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;236E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;237E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;89E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;238E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;239E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;89E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;240E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;241E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;96E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;180E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;96E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;241E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;242E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;243E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;96E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;244E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;245E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;96E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;246E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;247E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;96E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;248E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;96E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;249E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;102E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;180E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;102E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;249E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;250E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;251E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;228E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;102E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;229E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;252E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;231E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;102E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;232E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;253E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;234E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;102E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;235E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;208E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;254E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;107E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;180E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;107E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;78E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;254E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;255E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;256E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;257E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;258E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;111E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;180E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;111E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;56E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;258E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;259E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;260E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;111E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;261E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;262E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;263E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;111E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;264E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;115E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;180E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;115E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;56E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;264E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;265E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;266E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;267E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;115E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;268E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;269E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;115E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;185E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;186E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;187E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;115E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;270E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;115E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;271E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;121E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;180E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;121E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;56E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;271E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;272E;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;273E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;121E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;274E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;181E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;123E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;275E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;276E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;277E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;278E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;279E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;237E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;264E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;126E;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;3;125E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;280E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;281E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;281E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;282E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;283E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;283E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;187E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;284E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;285E;E;D;K;6;$classD;K;6;CP$UIDd;3;123E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;275E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;276E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;286E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;287E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;288E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;289E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;290E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;129E;E;D;K;6;$classD;K;6;CP$UIDd;3;125E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;280E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;291E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;291E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;292E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;282E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;283E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;283E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;187E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;293E;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;3;130E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;129E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;280E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;294E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;295E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;129E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;296E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;297E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;298E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;280E;K;6;$afontD;K;6;CP$UIDd;3;300E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;280E;K;11;$aalignmentD;K;6;CP$UIDd;3;231E;K;7;$aimageD;K;6;CP$UIDd;3;302E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;283E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;283E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;187E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;303E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;280E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;304E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;280E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;305E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;306E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;186E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;187E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;307E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;280E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;185E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;231E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;280E;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;3;123E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;275E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;276E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;286E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;308E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;288E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;289E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;309E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;133E;E;D;K;6;$classD;K;6;CP$UIDd;3;125E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;280E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;291E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;291E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;310E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;282E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;283E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;283E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;187E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;311E;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;3;134E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;133E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;280E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;312E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;313E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;133E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;296E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;314E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;315E;K;6;$afontD;K;6;CP$UIDd;3;316E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;280E;K;11;$aalignmentD;K;6;CP$UIDd;3;231E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;283E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;283E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;187E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;317E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;185E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;318E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;304E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;280E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;305E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;187E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;187E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;187E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;320E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;280E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;231E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;187E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;185E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;187E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;124E;E;E;S;8;delegateS;9;theWindowS;7;window1S;7;window2S;15;arrangeInFront:S;19;performMiniaturize:S;29;orderFrontStandardAboutPanel:S;13;openDocument:S;13;performClose:S;13;saveDocument:S;15;saveDocumentAs:S;12;newDocument:S;9;showHelp:S;22;revertDocumentToSaved:S;21;clearRecentDocuments:S;10;terminate:S;13;stopSpeaking:S;14;startSpeaking:S;5;copy:S;10;selectAll:S;4;cut:S;14;checkSpelling:S;7;delete:S;6;paste:S;15;showGuessPanel:S;5;undo:S;23;performFindPanelAction:S;29;centerSelectionInVisibleArea:S;5;redo:S;30;toggleContinuousSpellChecking:S;12;performZoom:S;19;toggleToolbarShown:S;31;runToolbarCustomizationPalette:S;22;toggleGrammarChecking:S;24;toggleSmartInsertDelete:S;33;toggleAutomaticQuoteSubstitution:S;29;toggleAutomaticLinkDetection:S;18;bringWindow2Front:S;9;AMainMenuS;11;_CPMainMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;120E;E;E;S;14;NewApplicationS;14;submenuAction:d;7;1048576S;18;_CPApplicationMenuD;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;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;E;E;S;20;About NewApplicationT;S;0;F;S;12;Preferences…S;1;,S;19;Quit NewApplicationS;1;qS;4;FileD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;76E;E;E;S;3;NewS;1;nS;5;Open…S;1;oS;11;Open RecentS;22;_CPRecentDocumentsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;71E;E;E;S;10;Clear MenuS;5;CloseS;1;wS;4;SaveS;1;sS;8;Save As…S;1;Sd;7;1179648S;15;Revert to SavedS;4;EditD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;106E;E;E;S;4;UndoS;1;zS;4;RedoS;1;ZS;3;CutS;1;xS;4;CopyS;1;cS;5;PasteS;1;vS;6;DeleteS;10;Select AllS;1;aS;4;FindD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;E;E;S;5;Find…d;1;1S;1;fS;9;Find Nextd;1;2S;1;gS;13;Find Previousd;1;3S;1;GS;22;Use Selection for Findd;1;7S;1;eS;17;Jump to SelectionS;1;jS;20;Spelling and GrammarD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;100E;E;E;S;14;Show Spelling…S;1;:S;14;Check SpellingS;1;;S;27;Check Spelling While TypingS;27;Check Grammar With SpellingS;13;SubstitutionsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;E;E;S;16;Smart Copy/PasteS;12;Smart QuotesS;11;Smart LinksS;6;SpeechD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;109E;E;E;S;14;Start SpeakingS;13;Stop SpeakingS;4;ViewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;E;E;S;12;Show ToolbarS;1;td;7;1572864S;18;Customize Toolbar…S;6;WindowS;14;_CPWindowsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;119E;E;E;S;8;MinimizeS;1;mS;4;ZoomS;18;Bring All to FrontS;4;HelpD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;122E;E;E;S;19;NewApplication HelpS;1;?S;32;{10000000000000, 10000000000000}S;8;CPWindowd;10;1879048192S;24;{{335, 128}, {480, 360}}S;21;{{0, 0}, {1440, 878}}d;1;0S;20;{{0, 0}, {480, 360}}S;6;normalS;6;{1, 1}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;13;AppControllerd;10;1618478080S;24;{{157, 107}, {480, 270}}S;22;{{0, 0}, {2560, 1417}}d;2;15S;8;Window 1S;20;{{0, 0}, {480, 270}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;131E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;23;{{151, 125}, {178, 25}}S;19;{{0, 0}, {178, 25}}d;2;36S;6;buttonS;27;bordered+controlSizeRegularD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;299E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;321E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;305E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;185E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;187E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;185E;E;D;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;301E;K;4;nameD;K;6;CP$UIDd;3;322E;K;12;defaultValueD;K;6;CP$UIDd;3;324E;K;5;stateD;K;6;CP$UIDd;3;325E;K;5;valueD;K;6;CP$UIDd;3;326E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;d;1;4d;2;-1S;23;Bring Window 2 To Frontd;2;14S;24;{{246, 251}, {480, 270}}S;8;Window 2D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;135E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;22;{{50, 114}, {380, 42}}S;19;{{0, 0}, {380, 42}}S;9;textfieldS;18;controlSizeRegularD;K;6;$classD;K;6;CP$UIDd;3;299E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;327E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;289E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;185E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;187E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;187E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;71;This is window 2--bet you can't click on window 1 to bring it to front!D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;319E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;328E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;329E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;282E;E;S;28;_CPFontSystemFacePlaceholderS;5;imageD;K;10;$classnameS;6;CPNullK;8;$classesA;S;6;CPNullS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;323E;E;S;11;highlightedD;K;6;$classD;K;6;CP$UIDd;3;299E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;330E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;331E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;187E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;187E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;187E;E;S;5;ArialD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;332E;D;K;6;CP$UIDd;3;332E;D;K;6;CP$UIDd;3;332E;D;K;6;CP$UIDd;3;228E;E;E;S;5;colorS;18;.AppleSystemUIFontd;2;13f;18;0.6862745098039216E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/KeyWindowInTheBackgroundActivation/Resources/MainMenu.xib b/Tests/Manual/KeyWindowInTheBackgroundActivation/Resources/MainMenu.xib new file mode 100644 index 000000000..b9721bd11 --- /dev/null +++ b/Tests/Manual/KeyWindowInTheBackgroundActivation/Resources/MainMenu.xib @@ -0,0 +1,345 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/Manual/KeyWindowInTheBackgroundActivation/index-debug.html b/Tests/Manual/KeyWindowInTheBackgroundActivation/index-debug.html new file mode 100644 index 000000000..c4de7ac52 --- /dev/null +++ b/Tests/Manual/KeyWindowInTheBackgroundActivation/index-debug.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + WindowFrontTest + + + + + + + + + + + + + + +
+
+
+ +
+
+ +
+ + diff --git a/Tests/Manual/KeyWindowInTheBackgroundActivation/index.html b/Tests/Manual/KeyWindowInTheBackgroundActivation/index.html new file mode 100644 index 000000000..6fd788486 --- /dev/null +++ b/Tests/Manual/KeyWindowInTheBackgroundActivation/index.html @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + WindowFrontTest + + + + + + + + + + + + +
+
+
+ +
+
+ +
+ + diff --git a/Tests/Manual/KeyWindowInTheBackgroundActivation/main.j b/Tests/Manual/KeyWindowInTheBackgroundActivation/main.j new file mode 100644 index 000000000..cb26b4ad7 --- /dev/null +++ b/Tests/Manual/KeyWindowInTheBackgroundActivation/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * WindowFrontTest + * + * Created by You on January 15, 2018. + * Copyright 2018, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +} diff --git a/Tests/Manual/PopUpButtonEscTest/.gitignore b/Tests/Manual/PopUpButtonEscTest/.gitignore new file mode 100755 index 000000000..0cfc56247 --- /dev/null +++ b/Tests/Manual/PopUpButtonEscTest/.gitignore @@ -0,0 +1,3 @@ +.XcodeSupport +Frameworks +*.cib diff --git a/Tests/Manual/PopUpButtonEscTest/AppController.j b/Tests/Manual/PopUpButtonEscTest/AppController.j new file mode 100755 index 000000000..b9edb7a51 --- /dev/null +++ b/Tests/Manual/PopUpButtonEscTest/AppController.j @@ -0,0 +1,43 @@ +/* + * AppController.j + * PopUpButtonTest + * + * Created by Glenn L. Austin on June 26, 2013. + * Copyright 2013, Austin-Soft.com All rights reserved. + */ + +@import +@import + +@implementation AppController : CPObject +{ + @outlet CPWindow theWindow; + @outlet CPButton clearButton; + @outlet CPButton escButton; + @outlet CPTextField wasPressedLabel; +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + // This is called when the application is done loading. +} + +- (void)awakeFromCib +{ + // This is called when the cib is done loading. + // You can implement this method on any object instantiated from a Cib. + // It's a useful hook for setting up current UI values, and other things. + + // In this case, we want the window from Cib to become our full browser window + [theWindow setFullPlatformWindow:YES]; +} + +- (@action)clearButtonPressed:(id)sender { + [wasPressedLabel setStringValue:@"No"]; +} + +- (@action)escButtonPressed:(id)sender { + [wasPressedLabel setStringValue:@"Yes"]; +} + +@end diff --git a/Tests/Manual/PopUpButtonEscTest/Info.plist b/Tests/Manual/PopUpButtonEscTest/Info.plist new file mode 100755 index 000000000..ae37e6dc7 --- /dev/null +++ b/Tests/Manual/PopUpButtonEscTest/Info.plist @@ -0,0 +1,14 @@ + + + + + Main cib file base name + MainMenu.cib + CPBundleName + PopUpButtonTest + CPBundleVersion + 1.0 + CPHumanReadableCopyright + Copyright © 2013, Austin-Soft.com All rights reserved. + + diff --git a/Tests/Manual/PopUpButtonEscTest/Jakefile b/Tests/Manual/PopUpButtonEscTest/Jakefile new file mode 100755 index 000000000..023520a95 --- /dev/null +++ b/Tests/Manual/PopUpButtonEscTest/Jakefile @@ -0,0 +1,98 @@ +/* + * Jakefile + * PopUpButtonTest + * + * Created by Glenn L. Austin on June 26, 2013. + * Copyright 2013, Austin-Soft.com 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"); + +app ("PopUpButtonTest", 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", "PopUpButtonTest.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("PopUpButtonTest"); + task.setIdentifier("com.austin-soft.PopUpButtonTest"); + task.setVersion("1.0"); + task.setAuthor("Austin-Soft.com"); + task.setEmail("support@austin-soft.com"); + task.setSummary("PopUpButtonTest"); + 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", ["PopUpButtonTest"], function() +{ + printResults(configuration); +}); + +task ("build", ["default"]); + +task ("debug", function() +{ + ENV["CONFIGURATION"] = "Debug"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("release", function() +{ + ENV["CONFIGURATION"] = "Release"; + JAKE.subjake(["."], "build", ENV); +}); + +task ("run", ["debug"], function() +{ + OS.system(["open", FILE.join("Build", "Debug", "PopUpButtonTest", "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", "PopUpButtonTest", "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", "PopUpButtonTest")); + OS.system(["press", "-f", FILE.join("Build", "Release", "PopUpButtonTest"), FILE.join("Build", "Deployment", "PopUpButtonTest")]); + printResults("Deployment") +}); + +task ("desktop", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Desktop", "PopUpButtonTest")); + require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "PopUpButtonTest"), FILE.join("Build", "Desktop", "PopUpButtonTest", "PopUpButtonTest.app")); + printResults("Desktop") +}); + +task ("run-desktop", ["desktop"], function() +{ + OS.system([FILE.join("Build", "Desktop", "PopUpButtonTest", "PopUpButtonTest.app", "Contents", "MacOS", "NativeHost"), "-i"]); +}); + +function printResults(configuration) +{ + print("----------------------------"); + print(configuration+" app built at path: "+FILE.join("Build", configuration, "PopUpButtonTest")); + print("----------------------------"); +} diff --git a/Tests/Manual/PopUpButtonEscTest/Resources/MainMenu.xib b/Tests/Manual/PopUpButtonEscTest/Resources/MainMenu.xib new file mode 100755 index 000000000..26958c946 --- /dev/null +++ b/Tests/Manual/PopUpButtonEscTest/Resources/MainMenu.xib @@ -0,0 +1,2165 @@ + + + + 1050 + 12E55 + 3084 + 1187.39 + 626.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 3084 + + + YES + NSButton + NSButtonCell + NSCustomObject + NSMenu + NSMenuItem + NSPopUpButton + NSPopUpButtonCell + NSTextField + NSTextFieldCell + NSView + NSWindowTemplate + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + AMainMenu + + YES + + + NewApplication + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + NewApplication + + YES + + + About NewApplication + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences… + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit NewApplication + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + File + + YES + + + New + n + 1048576 + 2147483647 + + + + + + Open… + o + 1048576 + 2147483647 + + + + + + Open Recent + + 1048576 + 2147483647 + + + submenuAction: + + Open Recent + + YES + + + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + Save + s + 1048576 + 2147483647 + + + + + + Save As… + S + 1179648 + 2147483647 + + + + + + Revert to Saved + + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + Edit + + YES + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1179648 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Delete + + 1048576 + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Find + + 1048576 + 2147483647 + + + submenuAction: + + Find + + YES + + + Find… + f + 1048576 + 2147483647 + + + 1 + + + + Find Next + g + 1048576 + 2147483647 + + + 2 + + + + Find Previous + G + 1179648 + 2147483647 + + + 3 + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + 7 + + + + Jump to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling and Grammar + + 1048576 + 2147483647 + + + submenuAction: + + Spelling and Grammar + + YES + + + Show Spelling… + : + 1048576 + 2147483647 + + + + + + Check Spelling + ; + 1048576 + 2147483647 + + + + + + Check Spelling While Typing + + 1048576 + 2147483647 + + + + + + Check Grammar With Spelling + + 1048576 + 2147483647 + + + + + + + + + Substitutions + + 1048576 + 2147483647 + + + submenuAction: + + Substitutions + + YES + + + Smart Copy/Paste + f + 1048576 + 2147483647 + + + 1 + + + + Smart Quotes + g + 1048576 + 2147483647 + + + 2 + + + + Smart Links + G + 1179648 + 2147483647 + + + 3 + + + + + + + Speech + + 1048576 + 2147483647 + + + submenuAction: + + Speech + + YES + + + Start Speaking + + 1048576 + 2147483647 + + + + + + Stop Speaking + + 1048576 + 2147483647 + + + + + + + + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + View + + YES + + + Show Toolbar + t + 1572864 + 2147483647 + + + + + + Customize Toolbar… + + 1048576 + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + Window + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 1048576 + 2147483647 + + + submenuAction: + + Help + + YES + + + NewApplication Help + ? + 1048576 + 2147483647 + + + + + + + + _NSMainMenu + + + 7 + 2 + {{335, 390}, {480, 360}} + 1946157056 + Window + NSWindow + + + + + 256 + + YES + + + 268 + {{204, 281}, {73, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + Clear + + LucidaGrande + 13 + 1044 + + _NS:9 + + -2038284288 + 129 + + Gw + 200 + 25 + + NO + + + + 268 + {{191, 188}, {100, 26}} + + + + _NS:9 + YES + + -2076180416 + 2048 + + _NS:9 + + 109199360 + 129 + + + 400 + 75 + + + Item 1 + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Item 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + 1 + YES + YES + 2 + + NO + + + + 268 + {{284, 230}, {26, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Yes + + _NS:1535 + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + NO + + + + 268 + {{170, 230}, {112, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Was Esc pressed: + + _NS:1535 + + + + + NO + + + + 268 + {{187, 248}, {106, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + Esc Button + + _NS:9 + + -2038284288 + 129 + + Gw + 200 + 25 + + NO + + + + 268 + {{17, 86}, {446, 97}} + + + + _NS:9 + {250, 750} + YES + + 67108864 + 138412032 + VG8gZGVtb25zdHJhdGUgdGhlIGJ1ZywgY2xpY2sgb24gdGhlIHBvcHVwIHRvIGRpc3BsYXkgdGhlIG1l +bnUsIHRoZW4gcHJlc3MgdGhlIEVzYyBrZXkuIFRoaXMgd2lsbCB0cmlnZ2VyIHRoZSBhY3Rpb24gY29u +bmVjdGVkIHRvIEVzYyBCdXR0b24gd2hpY2ggcHV0cyAiWWVzIiBpbnRvIHRoZSBmaWVsZC4KVGhlIENs +ZWFyIGJ1dHRvbiB3aWxsIHJlc2V0IHRoZSAiWWVzIiB0byAiTm8iA + + LucidaGrande + 13 + 16 + + _NS:9 + + + + + NO + YES + + + {480, 360} + + + + + {{0, 0}, {1680, 1028}} + {10000000000000, 10000000000000} + YES + + + AppController + + + + + YES + + + terminate: + + + + 449 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + delegate + + + + 451 + + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + clearRecentDocuments: + + + + 127 + + + + performClose: + + + + 193 + + + + toggleContinuousSpellChecking: + + + + 222 + + + + undo: + + + + 223 + + + + copy: + + + + 224 + + + + checkSpelling: + + + + 225 + + + + paste: + + + + 226 + + + + stopSpeaking: + + + + 227 + + + + cut: + + + + 228 + + + + showGuessPanel: + + + + 230 + + + + redo: + + + + 231 + + + + selectAll: + + + + 232 + + + + startSpeaking: + + + + 233 + + + + delete: + + + + 235 + + + + performZoom: + + + + 240 + + + + performFindPanelAction: + + + + 241 + + + + centerSelectionInVisibleArea: + + + + 245 + + + + toggleGrammarChecking: + + + + 347 + + + + toggleSmartInsertDelete: + + + + 355 + + + + toggleAutomaticQuoteSubstitution: + + + + 356 + + + + toggleAutomaticLinkDetection: + + + + 357 + + + + showHelp: + + + + 360 + + + + saveDocument: + + + + 362 + + + + saveDocumentAs: + + + + 363 + + + + revertDocumentToSaved: + + + + 364 + + + + runToolbarCustomizationPalette: + + + + 365 + + + + toggleToolbarShown: + + + + 366 + + + + newDocument: + + + + 373 + + + + openDocument: + + + + 374 + + + + theWindow + + + + 459 + + + + clearButton + + + + 474 + + + + escButton + + + + 475 + + + + wasPressedLabel + + + + 476 + + + + clearButtonPressed: + + + + 477 + + + + escButtonPressed: + + + + 478 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + YES + + + + + + + + + MainMenu + + + 19 + + + YES + + + + + + 56 + + + YES + + + + + + 103 + + + YES + + + + + + 217 + + + YES + + + + + + 83 + + + YES + + + + + + 81 + + + YES + + + + + + + + + + + + + 75 + + + + + 80 + + + + + 72 + + + + + 82 + + + + + 124 + + + YES + + + + + + 73 + + + + + 79 + + + + + 112 + + + + + 125 + + + YES + + + + + + 126 + + + + + 205 + + + YES + + + + + + + + + + + + + + + + + + 202 + + + + + 198 + + + + + 207 + + + + + 214 + + + + + 199 + + + + + 203 + + + + + 197 + + + + + 206 + + + + + 215 + + + + + 218 + + + YES + + + + + + 216 + + + YES + + + + + + 200 + + + YES + + + + + + + + + 219 + + + + + 201 + + + + + 204 + + + + + 220 + + + YES + + + + + + + + + + 213 + + + + + 210 + + + + + 221 + + + + + 208 + + + + + 209 + + + + + 106 + + + YES + + + + + + 111 + + + + + 57 + + + YES + + + + + + + + + + 58 + + + + + 136 + + + + + 129 + + + + + 143 + + + + + 236 + + + + + 24 + + + YES + + + + + + + + + 92 + + + + + 5 + + + + + 239 + + + + + 23 + + + + + 295 + + + YES + + + + + + 296 + + + YES + + + + + + + 297 + + + + + 298 + + + + + 211 + + + YES + + + + + + 212 + + + YES + + + + + + + 195 + + + + + 196 + + + + + 346 + + + + + 348 + + + YES + + + + + + 349 + + + YES + + + + + + + + 350 + + + + + 351 + + + + + 354 + + + + + 371 + + + YES + + + + + + 372 + + + YES + + + + + + + + + + + 450 + + + + + 460 + + + YES + + + + + + 461 + + + + + 462 + + + YES + + + + + + 463 + + + YES + + + + + + 464 + + + YES + + + + + + + + 465 + + + + + 466 + + + + + 467 + + + + + 468 + + + YES + + + + + + 469 + + + + + 470 + + + YES + + + + + + 471 + + + + + 472 + + + YES + + + + + + 473 + + + + + 479 + + + YES + + + + + + 480 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 103.IBPluginDependency + 106.IBPluginDependency + 111.IBPluginDependency + 112.IBPluginDependency + 124.IBPluginDependency + 125.IBPluginDependency + 126.IBPluginDependency + 129.IBPluginDependency + 136.IBPluginDependency + 143.IBPluginDependency + 19.IBPluginDependency + 195.IBPluginDependency + 196.IBPluginDependency + 197.IBPluginDependency + 198.IBPluginDependency + 199.IBPluginDependency + 200.IBPluginDependency + 201.IBPluginDependency + 202.IBPluginDependency + 203.IBPluginDependency + 204.IBPluginDependency + 205.IBPluginDependency + 206.IBPluginDependency + 207.IBPluginDependency + 208.IBPluginDependency + 209.IBPluginDependency + 210.IBPluginDependency + 211.IBPluginDependency + 212.IBPluginDependency + 213.IBPluginDependency + 214.IBPluginDependency + 215.IBPluginDependency + 216.IBPluginDependency + 217.IBPluginDependency + 218.IBPluginDependency + 219.IBPluginDependency + 220.IBPluginDependency + 221.IBPluginDependency + 23.IBPluginDependency + 236.IBPluginDependency + 239.IBPluginDependency + 24.IBPluginDependency + 29.IBPluginDependency + 295.IBPluginDependency + 296.IBPluginDependency + 297.IBPluginDependency + 298.IBPluginDependency + 346.IBPluginDependency + 348.IBPluginDependency + 349.IBPluginDependency + 350.IBPluginDependency + 351.IBPluginDependency + 354.IBPluginDependency + 371.IBPluginDependency + 371.IBWindowTemplateEditedContentRect + 371.NSWindowTemplate.visibleAtLaunch + 372.IBPluginDependency + 450.IBPluginDependency + 460.IBPluginDependency + 461.IBPluginDependency + 462.IBPluginDependency + 463.IBPluginDependency + 464.IBPluginDependency + 465.IBPluginDependency + 466.IBPluginDependency + 467.IBPluginDependency + 468.IBPluginDependency + 469.IBPluginDependency + 470.IBPluginDependency + 471.IBPluginDependency + 472.IBPluginDependency + 473.IBPluginDependency + 479.IBPluginDependency + 480.IBPluginDependency + 5.IBPluginDependency + 56.IBPluginDependency + 57.IBPluginDependency + 58.IBPluginDependency + 72.IBPluginDependency + 73.IBPluginDependency + 75.IBPluginDependency + 79.IBPluginDependency + 80.IBPluginDependency + 81.IBPluginDependency + 82.IBPluginDependency + 83.IBPluginDependency + 92.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{303, 221}, {480, 360}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + + + + YES + + + + + 480 + + + + YES + + AppController + NSObject + + YES + + YES + clearButtonPressed: + escButtonPressed: + + + YES + id + id + + + + YES + + YES + clearButtonPressed: + escButtonPressed: + + + YES + + clearButtonPressed: + id + + + escButtonPressed: + id + + + + + YES + + YES + clearButton + escButton + theWindow + wasPressedLabel + + + YES + NSButton + NSButton + NSWindow + NSTextField + + + + YES + + YES + clearButton + escButton + theWindow + wasPressedLabel + + + YES + + clearButton + NSButton + + + escButton + NSButton + + + theWindow + NSWindow + + + wasPressedLabel + NSTextField + + + + + IBProjectSource + ./Classes/AppController.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + YES + + YES + NSMenuCheckmark + NSMenuMixedState + + + YES + {11, 11} + {10, 3} + + + + diff --git a/Tests/Manual/PopUpButtonEscTest/Resources/spinner.gif b/Tests/Manual/PopUpButtonEscTest/Resources/spinner.gif new file mode 100755 index 000000000..a5e705f6c Binary files /dev/null and b/Tests/Manual/PopUpButtonEscTest/Resources/spinner.gif differ diff --git a/Tests/Manual/PopUpButtonEscTest/index-debug.html b/Tests/Manual/PopUpButtonEscTest/index-debug.html new file mode 100755 index 000000000..355456078 --- /dev/null +++ b/Tests/Manual/PopUpButtonEscTest/index-debug.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + PopUpButtonTest + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/PopUpButtonEscTest/index.html b/Tests/Manual/PopUpButtonEscTest/index.html new file mode 100755 index 000000000..9006d46fd --- /dev/null +++ b/Tests/Manual/PopUpButtonEscTest/index.html @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + PopUpButtonTest + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/PopUpButtonEscTest/main.j b/Tests/Manual/PopUpButtonEscTest/main.j new file mode 100755 index 000000000..86e615eea --- /dev/null +++ b/Tests/Manual/PopUpButtonEscTest/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * PopUpButtonTest + * + * Created by Glenn L. Austin on June 26, 2013. + * Copyright 2013, Austin-Soft.com All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +} diff --git a/Tests/Manual/SheetWindowOrderFrontIssue/AppController.j b/Tests/Manual/SheetWindowOrderFrontIssue/AppController.j new file mode 100644 index 000000000..14bdf96eb --- /dev/null +++ b/Tests/Manual/SheetWindowOrderFrontIssue/AppController.j @@ -0,0 +1,44 @@ +/* + * AppController.j + * WindowSheetOrderTest + * + * Created by You on March 23, 2018. + * Copyright 2018, Your Company All rights reserved. + */ + +@import +@import + + +@implementation AppController : CPObject +{ + @outlet CPWindow theWindow; + @outlet CPWindow window; + @outlet CPWindow window2; + @outlet CPWindow sheetWindow; +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + // This is called when the application is done loading. + [window makeKeyAndOrderFront:self]; + [CPApp beginSheet:sheetWindow modalForWindow:window modalDelegate:nil didEndSelector:nil contextInfo:nil]; + [window2 performSelector:@selector(makeKeyAndOrderFront:) withObject:self afterDelay:0.4]; +} + +- (void)awakeFromCib +{ + // This is called when the cib is done loading. + // You can implement this method on any object instantiated from a Cib. + // It's a useful hook for setting up current UI values, and other things. + + // In this case, we want the window from Cib to become our full browser window + [theWindow setFullPlatformWindow:YES]; +} + +- (IBAction)closeSheet:(idf)sender +{ + [CPApp endSheet:sheetWindow]; +} + +@end diff --git a/Tests/Manual/SheetWindowOrderFrontIssue/Info.plist b/Tests/Manual/SheetWindowOrderFrontIssue/Info.plist new file mode 100644 index 000000000..db30f0c72 --- /dev/null +++ b/Tests/Manual/SheetWindowOrderFrontIssue/Info.plist @@ -0,0 +1,14 @@ + + + + + Main cib file base name + MainMenu.cib + CPBundleName + WindowSheetOrderTest + CPBundleVersion + 1.0 + CPHumanReadableCopyright + Copyright © 2018, Your Company All rights reserved. + + diff --git a/Tests/Manual/SheetWindowOrderFrontIssue/Jakefile b/Tests/Manual/SheetWindowOrderFrontIssue/Jakefile new file mode 100644 index 000000000..74848265e --- /dev/null +++ b/Tests/Manual/SheetWindowOrderFrontIssue/Jakefile @@ -0,0 +1,172 @@ +/* + * Jakefile + * WindowSheetOrderTest + * + * Created by You on March 23, 2018. + * Copyright 2018, 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 = "WindowSheetOrderTest"; + +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", "WindowSheetOrderTest.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("WindowSheetOrderTest"); + task.setIdentifier("com.yourcompany.WindowSheetOrderTest"); + task.setVersion("1.0"); + task.setAuthor("Your Company"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("WindowSheetOrderTest"); + 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 -S --inline-msg-send"); + else + task.setCompilerFlags("-O2"); +}); + +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") +}); + +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/SheetWindowOrderFrontIssue/Resources/MainMenu.cib b/Tests/Manual/SheetWindowOrderFrontIssue/Resources/MainMenu.cib new file mode 100644 index 000000000..b0cfec082 --- /dev/null +++ b/Tests/Manual/SheetWindowOrderFrontIssue/Resources/MainMenu.cib @@ -0,0 +1 @@ +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;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;35E;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;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;56E;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;57E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;132E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;138E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;142E;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;59E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;138E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;142E;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;3;143E;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;3;144E;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;3;132E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;145E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;132E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;138E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;146E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;132E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;127E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;147E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;132E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;133E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;132E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;135E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;149E;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;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;122E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;150E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;119E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;151E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;63E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;152E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;71E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;153E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;76E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;154E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;155E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;78E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;156E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;70E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;125E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;158E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;79E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;159E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;74E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;160E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;67E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;57E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;112E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;162E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;111E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;163E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;86E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;164E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;89E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;165E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;85E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;166E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;101E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;167E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;88E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;168E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;87E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;169E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;100E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;170E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;82E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;171E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;93E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;172E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;97E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;173E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;83E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;174E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;102E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;175E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;120E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;176E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;115E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;177E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;116E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;178E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;103E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;106E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;180E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;107E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;181E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;108E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;137E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;133E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;142E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;138E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;131E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;133E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;183E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;143E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;185E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;186E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;187E;E;D;K;10;$classnameS;10;CPMenuItemK;8;$classesA;S;10;CPMenuItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;188E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;62E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;189E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;62E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;188E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;191E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;192E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;193E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;62E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;194E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;195E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;196E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;62E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;197E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;62E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;198E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;194E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;195E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;196E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;62E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;199E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;62E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;200E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;201E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;69E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;189E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;69E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;201E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;202E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;203E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;69E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;204E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;205E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;69E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;206E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;207E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;73E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;189E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;73E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;69E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;207E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;208E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;209E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;210E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;73E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;194E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;195E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;196E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;69E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;211E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;69E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;212E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;213E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;69E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;214E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;215E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;69E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;216E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;218E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;219E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;81E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;189E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;81E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;219E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;220E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;221E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;222E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;223E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;224E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;194E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;195E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;196E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;225E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;226E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;227E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;228E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;229E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;230E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;231E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;232E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;233E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;194E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;195E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;196E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;234E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;92E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;189E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;92E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;234E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;235E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;236E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;237E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;92E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;238E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;239E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;240E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;92E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;241E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;242E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;243E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;92E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;244E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;245E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;246E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;92E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;247E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;248E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;92E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;249E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;250E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;99E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;189E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;99E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;250E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;251E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;252E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;99E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;253E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;254E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;99E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;255E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;256E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;99E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;257E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;99E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;258E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;105E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;189E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;105E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;258E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;259E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;260E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;237E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;105E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;238E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;261E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;240E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;105E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;241E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;262E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;243E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;105E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;244E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;217E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;263E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;110E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;189E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;110E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;263E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;265E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;110E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;266E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;110E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;267E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;114E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;189E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;114E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;267E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;268E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;269E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;114E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;270E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;271E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;272E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;114E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;273E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;118E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;189E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;118E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;273E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;274E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;275E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;276E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;118E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;277E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;278E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;118E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;194E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;195E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;22;CPMenuItemIsEnabledKeyD;K;6;CP$UIDd;3;196E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;118E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;279E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;118E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;280E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;124E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;189E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;124E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;280E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;281E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;282E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;124E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;283E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;190E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;126E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;284E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;285E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;286E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;287E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;288E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;246E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;273E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;129E;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;3;128E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;289E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;290E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;290E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;291E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;292E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;293E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;293E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;196E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;294E;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;3;130E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;129E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;289E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;295E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;296E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;129E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;297E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;298E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;299E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;289E;K;6;$afontD;K;6;CP$UIDd;3;301E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;289E;K;11;$aalignmentD;K;6;CP$UIDd;3;240E;K;7;$aimageD;K;6;CP$UIDd;3;303E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;293E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;293E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;196E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;304E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;289E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;305E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;289E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;306E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;307E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;196E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;289E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;194E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;240E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;289E;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;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;309E;E;D;K;6;$classD;K;6;CP$UIDd;3;126E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;284E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;285E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;310E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;311E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;312E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;313E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;273E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;134E;E;D;K;6;$classD;K;6;CP$UIDd;3;128E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;289E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;314E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;314E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;292E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;293E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;293E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;196E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;315E;E;D;K;6;$classD;K;6;CP$UIDd;3;126E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;284E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;285E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;310E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;316E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;312E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;313E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;317E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;136E;E;D;K;6;$classD;K;6;CP$UIDd;3;128E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;289E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;314E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;314E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;318E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;292E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;293E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;293E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;196E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;319E;E;D;K;6;$classD;K;6;CP$UIDd;3;130E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;136E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;289E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;320E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;296E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;136E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;321E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;298E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;299E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;289E;K;6;$afontD;K;6;CP$UIDd;3;301E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;289E;K;11;$aalignmentD;K;6;CP$UIDd;3;240E;K;7;$aimageD;K;6;CP$UIDd;3;322E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;293E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;293E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;196E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;323E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;289E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;305E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;289E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;306E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;307E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;196E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;289E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;194E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;240E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;289E;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;3;126E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;284E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;324E;K;30;_CPCibWindowTemplateWTFlagsKeyD;K;6;CP$UIDd;3;310E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;325E;K;33;_CPCibWindowTemplateScreenRectKeyD;K;6;CP$UIDd;3;312E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;313E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;273E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;139E;E;D;K;6;$classD;K;6;CP$UIDd;3;128E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;289E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;326E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;326E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;327E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;292E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;293E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;293E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;196E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;328E;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;3;140E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;139E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;289E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;329E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;330E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;139E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;321E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;331E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;332E;K;6;$afontD;K;6;CP$UIDd;3;333E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;240E;K;11;$aalignmentD;K;6;CP$UIDd;3;305E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;293E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;293E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;196E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;334E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;194E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;335E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;305E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;289E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;306E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;196E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;196E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;196E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;337E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;240E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;305E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldUsesSingleLineModeD;K;6;CP$UIDd;3;196E;K;16;CPTextFieldWrapsD;K;6;CP$UIDd;3;196E;K;18;CPTextFieldScrollsD;K;6;CP$UIDd;3;194E;E;D;K;6;$classD;K;6;CP$UIDd;3;130E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;139E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;289E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;338E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;339E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;139E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;321E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;298E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;299E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;289E;K;6;$afontD;K;6;CP$UIDd;3;301E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;289E;K;11;$aalignmentD;K;6;CP$UIDd;3;240E;K;7;$aimageD;K;6;CP$UIDd;3;340E;K;14;CPViewScaleKeyD;K;6;CP$UIDd;3;293E;K;18;CPViewSizeScaleKeyD;K;6;CP$UIDd;3;293E;K;17;CPViewIsScaledKeyD;K;6;CP$UIDd;3;196E;K;19;CPViewAppearanceKeyD;K;6;CP$UIDd;1;0E;K;22;CPViewTrackingAreasKeyD;K;6;CP$UIDd;3;341E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;289E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;305E;K;23;CPControlControlSizeKeyD;K;6;CP$UIDd;3;289E;K;33;CPControlBaseWrittingDirectionKeyD;K;6;CP$UIDd;3;306E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;342E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;195E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;196E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;308E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;289E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;194E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;240E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;289E;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;3;127E;D;K;6;CP$UIDd;3;135E;E;E;S;8;delegateS;11;sheetWindowS;9;theWindowS;6;windowS;7;window2S;15;arrangeInFront:S;19;performMiniaturize:S;29;orderFrontStandardAboutPanel:S;13;openDocument:S;13;performClose:S;13;saveDocument:S;15;saveDocumentAs:S;12;newDocument:S;9;showHelp:S;22;revertDocumentToSaved:S;21;clearRecentDocuments:S;10;terminate:S;13;stopSpeaking:S;14;startSpeaking:S;5;copy:S;10;selectAll:S;4;cut:S;14;checkSpelling:S;7;delete:S;6;paste:S;15;showGuessPanel:S;5;undo:S;23;performFindPanelAction:S;29;centerSelectionInVisibleArea:S;5;redo:S;30;toggleContinuousSpellChecking:S;12;performZoom:S;19;toggleToolbarShown:S;31;runToolbarCustomizationPalette:S;22;toggleGrammarChecking:S;24;toggleSmartInsertDelete:S;33;toggleAutomaticQuoteSubstitution:S;29;toggleAutomaticLinkDetection:S;21;makeKeyAndOrderFront:S;9;orderOut:S;9;AMainMenuS;11;_CPMainMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;123E;E;E;S;14;NewApplicationS;14;submenuAction:d;7;1048576S;18;_CPApplicationMenuD;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;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;E;E;S;20;About NewApplicationT;S;0;F;S;12;Preferences…S;1;,S;19;Quit NewApplicationS;1;qS;4;FileD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;79E;E;E;S;3;NewS;1;nS;5;Open…S;1;oS;11;Open RecentS;22;_CPRecentDocumentsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;74E;E;E;S;10;Clear MenuS;5;CloseS;1;wS;4;SaveS;1;sS;8;Save As…S;1;Sd;7;1179648S;15;Revert to SavedS;4;EditD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;109E;E;E;S;4;UndoS;1;zS;4;RedoS;1;ZS;3;CutS;1;xS;4;CopyS;1;cS;5;PasteS;1;vS;6;DeleteS;10;Select AllS;1;aS;4;FindD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;97E;E;E;S;5;Find…d;1;1S;1;fS;9;Find Nextd;1;2S;1;gS;13;Find Previousd;1;3S;1;GS;22;Use Selection for Findd;1;7S;1;eS;17;Jump to SelectionS;1;jS;20;Spelling and GrammarD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;3;103E;E;E;S;14;Show Spelling…S;1;:S;14;Check SpellingS;1;;S;27;Check Spelling While TypingS;27;Check Grammar With SpellingS;13;SubstitutionsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;108E;E;E;S;16;Smart Copy/PasteS;12;Smart QuotesS;11;Smart LinksS;6;SpeechD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;112E;E;E;S;14;Start SpeakingS;13;Stop SpeakingS;4;ViewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;116E;E;E;S;12;Show ToolbarS;1;td;7;1572864S;18;Customize Toolbar…S;6;WindowS;14;_CPWindowsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;122E;E;E;S;8;MinimizeS;1;mS;4;ZoomS;18;Bring All to FrontS;4;HelpD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;125E;E;E;S;19;NewApplication HelpS;1;?S;32;{10000000000000, 10000000000000}S;8;CPWindowd;10;1879048192S;24;{{335, 128}, {480, 360}}S;21;{{0, 0}, {1440, 878}}d;1;0S;20;{{0, 0}, {480, 360}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;131E;E;E;S;6;normalS;6;{1, 1}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;23;{{173, 170}, {134, 25}}S;19;{{0, 0}, {134, 25}}d;2;45S;6;buttonS;27;bordered+controlSizeRegularD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;300E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;343E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;306E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;194E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;196E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;194E;E;D;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;302E;K;4;nameD;K;6;CP$UIDd;3;344E;K;12;defaultValueD;K;6;CP$UIDd;3;346E;K;5;stateD;K;6;CP$UIDd;3;347E;K;5;valueD;K;6;CP$UIDd;3;348E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;d;1;4d;2;-1S;16;Make Other Frontd;2;14S;13;AppControllerd;10;1618478080S;24;{{200, 148}, {480, 270}}S;22;{{0, 0}, {2560, 1418}}d;2;15S;20;{{0, 0}, {480, 270}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;24;{{220, 168}, {480, 270}}S;7;Window2D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;137E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;22;{{154, 80}, {134, 25}}d;2;36D;K;6;$classD;K;6;CP$UIDd;3;302E;K;4;nameD;K;6;CP$UIDd;3;344E;K;12;defaultValueD;K;6;CP$UIDd;3;346E;K;5;stateD;K;6;CP$UIDd;3;347E;K;5;valueD;K;6;CP$UIDd;3;348E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;7;CPPanelS;25;{{272, 1077}, {436, 169}}S;20;{{0, 0}, {436, 169}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;142E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;21;{{20, 20}, {284, 17}}S;19;{{0, 0}, {284, 17}}S;9;textfieldS;18;controlSizeRegularD;K;6;$classD;K;6;CP$UIDd;3;300E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;343E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;306E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;196E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;196E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;194E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;46;This is a window that can be attached as sheetD;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;336E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;349E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;350E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;292E;E;S;23;{{315, 128}, {101, 25}}S;19;{{0, 0}, {101, 25}}D;K;6;$classD;K;6;CP$UIDd;3;302E;K;4;nameD;K;6;CP$UIDd;3;344E;K;12;defaultValueD;K;6;CP$UIDd;3;346E;K;5;stateD;K;6;CP$UIDd;3;347E;K;5;valueD;K;6;CP$UIDd;3;348E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;11;Close SheetS;28;_CPFontSystemFacePlaceholderS;5;imageD;K;10;$classnameS;6;CPNullK;8;$classesA;S;6;CPNullS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;345E;E;S;11;highlightedD;K;6;$classD;K;6;CP$UIDd;3;300E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;351E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;352E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;196E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;196E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;196E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;353E;D;K;6;CP$UIDd;3;353E;D;K;6;CP$UIDd;3;353E;D;K;6;CP$UIDd;3;237E;E;E;S;5;colorS;18;.AppleSystemUIFontd;2;13f;18;0.6862745098039216E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/SheetWindowOrderFrontIssue/Resources/MainMenu.xib b/Tests/Manual/SheetWindowOrderFrontIssue/Resources/MainMenu.xib new file mode 100644 index 000000000..906d6d2e4 --- /dev/null +++ b/Tests/Manual/SheetWindowOrderFrontIssue/Resources/MainMenu.xib @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/Manual/SheetWindowOrderFrontIssue/index-debug.html b/Tests/Manual/SheetWindowOrderFrontIssue/index-debug.html new file mode 100644 index 000000000..dbdee830d --- /dev/null +++ b/Tests/Manual/SheetWindowOrderFrontIssue/index-debug.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + WindowSheetOrderTest + + + + + + + + + + + + + + +
+
+
+ +
+
+ +
+ + diff --git a/Tests/Manual/SheetWindowOrderFrontIssue/index.html b/Tests/Manual/SheetWindowOrderFrontIssue/index.html new file mode 100644 index 000000000..2356dfcbf --- /dev/null +++ b/Tests/Manual/SheetWindowOrderFrontIssue/index.html @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + WindowSheetOrderTest + + + + + + + + + + + + +
+
+
+ +
+
+ +
+ + diff --git a/Tests/Manual/SheetWindowOrderFrontIssue/main.j b/Tests/Manual/SheetWindowOrderFrontIssue/main.j new file mode 100644 index 000000000..4a83e0fb0 --- /dev/null +++ b/Tests/Manual/SheetWindowOrderFrontIssue/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * WindowSheetOrderTest + * + * Created by You on March 23, 2018. + * Copyright 2018, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +} diff --git a/Tests/Manual/SmartFoldersDemo/BadgedOutlineView.j b/Tests/Manual/SmartFoldersDemo/BadgedOutlineView.j index 62c3142e1..70fc51c7e 100644 --- a/Tests/Manual/SmartFoldersDemo/BadgedOutlineView.j +++ b/Tests/Manual/SmartFoldersDemo/BadgedOutlineView.j @@ -72,7 +72,7 @@ var CPSourceListDataSource_sourceList_itemHasBadge_ = 1 << 1, //Make sure that the item has a badge if (![self itemHasBadge:rowItem]) - return CGSizeZero(); + return CGSizeMakeZero(); var badgeString = [CPString stringWithFormat:@"%d", [self badgeValueForItem:rowItem]]; diff --git a/Tests/Manual/TrackingArea/AppController.j b/Tests/Manual/TrackingArea/AppController.j index 5c9f6f729..014a1c801 100644 --- a/Tests/Manual/TrackingArea/AppController.j +++ b/Tests/Manual/TrackingArea/AppController.j @@ -531,10 +531,11 @@ @implementation SensibleView : CPView { - CPString viewName @accessors; - CPCursor viewCursor @accessors; - CPColor viewColor; - CPTextField coords; + CPString viewName @accessors; + CPCursor viewCursor @accessors; + CPColor viewColor; + CPTextField coords; + CPTrackingArea trackingArea; } - (id)initWithFrame:(CGRect)aFrame @@ -666,15 +667,16 @@ - (void)updateTrackingAreas { CPLog.trace("updateTrackingAreas @"+viewName); + + if (trackingArea) + [self removeTrackingArea:trackingArea]; - [self removeAllTrackingAreas]; + trackingArea = [[CPTrackingArea alloc] initWithRect:CGRectMake(0, 0, 25, 25) + options:CPTrackingMouseEnteredAndExited | CPTrackingActiveInKeyWindow + owner:self + userInfo:nil]; - var t = [[CPTrackingArea alloc] initWithRect:CGRectMake(0, 0, 25, 25) - options:CPTrackingMouseEnteredAndExited | CPTrackingActiveInKeyWindow - owner:self - userInfo:nil]; - - [self addTrackingArea:t]; + [self addTrackingArea:trackingArea]; } @end @@ -684,15 +686,16 @@ - (void)updateTrackingAreas { CPLog.trace("updateTrackingAreas @"+viewName); + + if (trackingArea) + [self removeTrackingArea:trackingArea]; - [self removeAllTrackingAreas]; + trackingArea = [[CPTrackingArea alloc] initWithRect:CGRectMakeZero() + options:CPTrackingMouseEnteredAndExited | CPTrackingActiveInKeyWindow | CPTrackingInVisibleRect + owner:self + userInfo:nil]; - var t = [[CPTrackingArea alloc] initWithRect:CGRectMakeZero() - options:CPTrackingMouseEnteredAndExited | CPTrackingActiveInKeyWindow | CPTrackingInVisibleRect - owner:self - userInfo:nil]; - - [self addTrackingArea:t]; + [self addTrackingArea:trackingArea]; } @end diff --git a/Tests/System/Dockerfile b/Tests/System/Dockerfile new file mode 100644 index 000000000..1c40ee73f --- /dev/null +++ b/Tests/System/Dockerfile @@ -0,0 +1,10 @@ +FROM ubuntu:18.04 + +RUN apt-get update && apt-get install -y \ + curl \ + default-jre \ + unzip + +ADD bootstrap.sh /tmp/cappuccino_bootstrap.sh + +RUN chmod a+x /tmp/cappuccino_bootstrap.sh && /tmp/cappuccino_bootstrap.sh --noprompt --directory /usr/local/narwhal diff --git a/Tools/Documentation/Cappuccino.doxygen b/Tools/Documentation/Cappuccino.doxygen index 176dac670..aa72ea5b2 100644 --- a/Tools/Documentation/Cappuccino.doxygen +++ b/Tools/Documentation/Cappuccino.doxygen @@ -38,7 +38,7 @@ PROJECT_NAME = " API" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 0.9.10 +PROJECT_NUMBER = 1.0.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/Tools/Documentation/preprocess/003.make_headers.rb b/Tools/Documentation/preprocess/003.make_headers.rb index 2cf277fa9..817972e58 100755 --- a/Tools/Documentation/preprocess/003.make_headers.rb +++ b/Tools/Documentation/preprocess/003.make_headers.rb @@ -5,6 +5,9 @@ # $1 Cappuccino documentation directory +Encoding.default_external = 'UTF-8' + + ACCESSOR_GET_TEMPLATE = < 'UTF-8') source = sourceFile.read sourceFile.close() @@ -51,7 +54,7 @@ def makeHeaderFileFrom(fileName) source.gsub!(/^\s*(@implementation \s*\w+(?:\s*:\s*\w+)?)\n(\s*[^{])/, "\\1\n{\n#{DUMMY_IVAR}\n}\n\\2") source.gsub!(/^\s*(@implementation \s*\w+(?:\s*:\s*\w+)?)\n\s*\{\s*\}/, "\\1\n{\n#{DUMMY_IVAR}\n}") - sourceFile = File.new(fileName, "w") + sourceFile = File.new(fileName, "w", :encoding => 'UTF-8') # Remove @accessor declarations from ivars before writing the source file sourceFile.write(source.gsub(/(\s*\w+\s+\w+)\s+@accessors(\(.+?\))?;/m, "\\1;")) diff --git a/Tools/Documentation/support/massage_text.py b/Tools/Documentation/support/massage_text.py index 2efdc8a0b..061676d7b 100755 --- a/Tools/Documentation/support/massage_text.py +++ b/Tools/Documentation/support/massage_text.py @@ -28,10 +28,15 @@ transforms = [ html = glob.glob(os.path.join(sys.argv[1], "*.html")) for count, filename in enumerate(html): - f = open(filename, "r+") - text = f.read() + try: + # For some reason we get some UTF errors in the output HTML. Ignoring them should be fine. + f = open(filename, "r+", encoding='UTF-8', errors='ignore') + text = f.read() + except: + print("Failed to read %s." % filename) + raise + i = 0 - while i < len(transforms): text = transforms[i].sub(transforms[i + 1], text) i += 2 diff --git a/Tools/XcodeCapp/Jakefile b/Tools/XcodeCapp/Jakefile index 3ae57348a..06239f767 100644 --- a/Tools/XcodeCapp/Jakefile +++ b/Tools/XcodeCapp/Jakefile @@ -44,14 +44,14 @@ task ("build", function() if (executableExists("xcodebuild")) { - var args = "-sdk macosx -alltargets -configuration Release", - installPath = FILE.join("/", "Applications", applicationName); + var args = installPath = FILE.join("/", "Applications", applicationName); - // Remove an old symlink, the application is built directly into /Applications now. + // Remove old symlink, if present. + //The application is now built directly into /Applications if (FILE.isLink(installPath)) FILE.remove(installPath); - if (OS.system("xcodebuild " + args)) + if (OS.system("xcodebuild install")) colorPrint("Unable to build XcodeCapp. Skipping", "orange"); } else diff --git a/Tools/XcodeCapp/XcodeCapp.xcodeproj/project.pbxproj b/Tools/XcodeCapp/XcodeCapp.xcodeproj/project.pbxproj index 59d960f67..c19b750d1 100644 --- a/Tools/XcodeCapp/XcodeCapp.xcodeproj/project.pbxproj +++ b/Tools/XcodeCapp/XcodeCapp.xcodeproj/project.pbxproj @@ -517,6 +517,7 @@ COMBINE_HIDPI_IMAGES = YES; DSTROOT = /; INFOPLIST_FILE = XcodeCapp/Info.plist; + INSTALL_PATH = "$(LOCAL_APPS_DIR)"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.7; PRODUCT_BUNDLE_IDENTIFIER = org.cappuccino.xcodecapp; @@ -532,6 +533,7 @@ COMBINE_HIDPI_IMAGES = YES; DSTROOT = /; INFOPLIST_FILE = XcodeCapp/Info.plist; + INSTALL_PATH = "$(LOCAL_APPS_DIR)"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.7; PRODUCT_BUNDLE_IDENTIFIER = org.cappuccino.xcodecapp; diff --git a/Tools/XcodeCapp/XcodeCapp/Base.lproj/MainMenu.xib b/Tools/XcodeCapp/XcodeCapp/Base.lproj/MainMenu.xib index 61be0ea93..71b199a62 100644 --- a/Tools/XcodeCapp/XcodeCapp/Base.lproj/MainMenu.xib +++ b/Tools/XcodeCapp/XcodeCapp/Base.lproj/MainMenu.xib @@ -1,9 +1,10 @@ - - + + - - + + + @@ -375,10 +376,10 @@ - + - + @@ -409,22 +410,19 @@ - + - + - + - - - @@ -524,19 +522,19 @@ -