From df2cf923e12e03fe4f2f9834440c8c704398cb76 Mon Sep 17 00:00:00 2001 From: Martin Carlberg Date: Fri, 11 May 2012 15:52:44 +0200 Subject: [PATCH 001/109] MainBundle path has no '/' at the end when running in CommonJS. This will make relative paths fail. For example if OBJJ_INCLUDE_PATHS has the path "../../MyLibrary". MyLibrary will not be found when the path is joined with mainBundlePath without an ending '/'. This is working when running in Browser. --- Objective-J/Bootstrap.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Objective-J/Bootstrap.js b/Objective-J/Bootstrap.js index 3ed56821d..3ea3fe515 100644 --- a/Objective-J/Bootstrap.js +++ b/Objective-J/Bootstrap.js @@ -22,7 +22,7 @@ #ifdef COMMONJS -var mainBundleURL = new CFURL("file:" + require("file").cwd()); +var mainBundleURL = new CFURL("file:" + require("file").cwd()).asDirectoryPathURL(); #elif defined(BROWSER) // This is automatic when importing, but we'd like these important URLs to // be taken into consideration in the cache as well. From db8f2fdf757c2bfe2790a1deed8f95da74633d50 Mon Sep 17 00:00:00 2001 From: cacaodev Date: Wed, 14 Mar 2012 22:54:48 +0100 Subject: [PATCH 002/109] Added support for CPTableView content binding, generally used with view-based tables. Grouped the 3 ways to set objectValue on a dataview (content binding, column value binding or regular delegate method) under one main method: _setObjectValueFortableColumn:row:ForView: Also fixed a bug where the dragging rows didn't have their bindings applied. Columns and row dragging are now using the previous method for setting data view objectValue. Updated TableBindings example: table with content binding vs. columns with value binding. --- AppKit/CPTableView.j | 76 +- .../TableTest/TableBindings/AppController.j | 30 +- .../TableBindings/Resources/MainMenu.cib | 2 +- .../TableBindings/Resources/MainMenu.xib | 3933 ++++------------- 4 files changed, 994 insertions(+), 3047 deletions(-) diff --git a/AppKit/CPTableView.j b/AppKit/CPTableView.j index 38b86ff85..dbb14cd19 100644 --- a/AppKit/CPTableView.j +++ b/AppKit/CPTableView.j @@ -239,6 +239,7 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5; BOOL _disableAutomaticResizing @accessors(property=disableAutomaticResizing); BOOL _lastColumnShouldSnap; BOOL _implementsCustomDrawRow; + BOOL _contentBindingExpicitelySet; CPTableColumn _draggedColumn; CPArray _differedColumnDataToRemove; @@ -305,6 +306,7 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5; _retargetedDropOperation = nil; _dragOperationDefaultMask = nil; _destinationDragStyle = CPTableViewDraggingDestinationFeedbackStyleRegular; + _contentBindingExpicitelySet = NO; [self setBackgroundColor:[CPColor whiteColor]]; [self _init]; @@ -344,6 +346,7 @@ CPTableViewFirstColumnOnlyAutoresizingStyle = 5; _exposedRows = [CPIndexSet indexSet]; _exposedColumns = [CPIndexSet indexSet]; _cachedDataViews = { }; + _cachedRowHeights = []; _groupRows = [CPIndexSet indexSet]; @@ -2823,11 +2826,8 @@ Your delegate can implement this method to avoid subclassing the tableview to ad var dataView = [self _newDataViewForRow:row tableColumn:tableColumn]; [dataView setFrame:[self frameOfDataViewAtColumn:columnIndex row:row]]; - [dataView setObjectValue:[self _objectValueForTableColumn:tableColumn row:row]]; - - // If the column uses content bindings, allow them to override the objectValueForTableColumn. - [tableColumn _prepareDataView:dataView forRow:row]; + [self _setObjectValueForTableColumn:tableColumn row:row forView:dataView]; [view addSubview:dataView]; row = [theDraggedRows indexGreaterThanIndex:row]; @@ -2868,7 +2868,7 @@ Your delegate can implement this method to avoid subclassing the tableview to ad dataViewFrame.origin.y = ( _CGRectGetMinY(dataViewFrame) - _CGRectGetMinY([self exposedRect]) ) + 23.0; [dataView setFrame:dataViewFrame]; - [dataView setObjectValue:[self _objectValueForTableColumn:tableColumn row:row]]; + [self _setObjectValueForTableColumn:tableColumn row:row forView:dataView]; [dragView addSubview:dataView]; row = [_exposedRows indexGreaterThanIndex:row]; @@ -3267,11 +3267,8 @@ Your delegate can implement this method to avoid subclassing the tableview to ad isTextField = [dataView isKindOfClass:[CPTextField class]]; [dataView setFrame:[self frameOfDataViewAtColumn:column row:row]]; - [dataView setObjectValue:[self _objectValueForTableColumn:tableColumn row:row]]; - // This gives the table column an opportunity to apply its bindings. - // It will override the value set above if there is a binding. - [tableColumn _prepareDataView:dataView forRow:row]; + [self _setObjectValueForTableColumn:tableColumn row:row forView:dataView]; if (isColumnSelected || [self isRowSelected:row]) [dataView setThemeState:CPThemeStateSelectedDataView]; @@ -3329,6 +3326,30 @@ Your delegate can implement this method to avoid subclassing the tableview to ad } } +- (void)_setObjectValueForTableColumn:(CPTableColumn)aTableColumn row:(CPInteger)aRow forView:(CPView)aDataView +{ + if (_implementedDataSourceMethods & CPTableViewDataSource_tableView_objectValueForTableColumn_row_) + [aDataView setObjectValue:[self _objectValueForTableColumn:aTableColumn row:aRow]]; + + // This gives the table column an opportunity to apply its bindings. + // It will override the value set above if there is a binding. + + if (_contentBindingExpicitelySet) + [self _prepareContentBindedDataView:aDataView forRow:aRow]; + else + // For both cell-based and view-based + [aTableColumn _prepareDataView:aDataView forRow:aRow]; +} + +- (void)_prepareContentBindedDataView:(CPView)dataView forRow:(CPInteger)aRow +{ + var binder = [CPTableContentBinder getBinding:@"content" forObject:self], + content = [binder content], + rowContent = [content objectAtIndex:aRow]; + + [dataView setObjectValue:rowContent]; +} + /*! @ignore */ @@ -4707,6 +4728,14 @@ Your delegate can implement this method to avoid subclassing the tableview to ad @implementation CPTableView (Bindings) ++ (id)_binderClassForBinding:(CPString)aBinding +{ + if (aBinding == @"content") + return [CPTableContentBinder class]; + + return [super _binderClassForBinding:aBinding]; +} + /*! @ignore */ @@ -4724,7 +4753,10 @@ Your delegate can implement this method to avoid subclassing the tableview to ad - (void)_establishBindingsIfUnbound:(id)destination { if ([[self infoForBinding:@"content"] objectForKey:CPObservedObjectKey] !== destination) - [self bind:@"content" toObject:destination withKeyPath:@"arrangedObjects" options:nil]; + { + [super bind:@"content" toObject:destination withKeyPath:@"arrangedObjects" options:nil]; + _contentBindingExpicitelySet = NO; + } if ([[self infoForBinding:@"selectionIndexes"] objectForKey:CPObservedObjectKey] !== destination) [self bind:@"selectionIndexes" toObject:destination withKeyPath:@"selectionIndexes" options:nil]; @@ -4732,9 +4764,29 @@ Your delegate can implement this method to avoid subclassing the tableview to ad //[self bind:@"sortDescriptors" toObject:destination withKeyPath:@"sortDescriptors" options:nil]; } -- (void)setContent:(CPArray)content +- (void)bind:(CPString)aBinding toObject:(id)anObject withKeyPath:(CPString)aKeyPath options:(CPDictionary)options { - [self reloadData]; + [super bind:aBinding toObject:anObject withKeyPath:aKeyPath options:options]; + + if (aBinding == @"content") + _contentBindingExpicitelySet = YES; +} + +@end + +@implementation CPTableContentBinder : CPBinder +{ + id _content @accessors(property=content); +} + +- (void)setValueFor:(id)aBinding +{ + var destination = [_info objectForKey:CPObservedObjectKey], + keyPath = [_info objectForKey:CPObservedKeyPathKey]; + + _content = [destination valueForKey:keyPath]; + + [_source reloadData]; } @end diff --git a/Tests/Manual/TableTest/TableBindings/AppController.j b/Tests/Manual/TableTest/TableBindings/AppController.j index 6cb6051e6..424c21710 100644 --- a/Tests/Manual/TableTest/TableBindings/AppController.j +++ b/Tests/Manual/TableTest/TableBindings/AppController.j @@ -12,10 +12,11 @@ @implementation AppController : CPObject { CPWindow theWindow; //this "outlet" is connected automatically by the Cib - CPArrayController arrayController; - CPTextField from; - CPTextField to; - + + @outlet CPTextField locationField; + @outlet CPTextField lengthField; + @outlet CPPopUpButton KeyPathPopup; + CPArray rows @accessors; } @@ -46,11 +47,22 @@ [self setRows:theRows]; } -- (void)test:(id)sender +- (IBAction)updateOrReloadContent:(id)sender { - var range = CPMakeRange([from intValue], [to intValue]); - var indexes = [CPIndexSet indexSetWithIndexesInRange:range]; - - [[rows objectsAtIndexes:indexes] setValue:@"b" forKey:@"colTwo"]; + var range = CPMakeRange([locationField intValue], [lengthField intValue]), + indexes = [CPIndexSet indexSetWithIndexesInRange:range], + keyPath = [KeyPathPopup titleOfSelectedItem]; + + var value = String.fromCharCode(97 + Math.round(Math.random() * 26)); + + if ([sender tag] == 1000) + [[rows objectsAtIndexes:indexes] setValue:value forKey:keyPath]; + else + { + var rowsCopy = [rows copy]; + [[rowsCopy objectsAtIndexes:indexes] setValue:value forKey:keyPath]; + [self setRows:rowsCopy]; + } } + @end diff --git a/Tests/Manual/TableTest/TableBindings/Resources/MainMenu.cib b/Tests/Manual/TableTest/TableBindings/Resources/MainMenu.cib index 3614c66e3..6bd00af62 100644 --- a/Tests/Manual/TableTest/TableBindings/Resources/MainMenu.cib +++ b/Tests/Manual/TableTest/TableBindings/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;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;D;K;6;CP$UIDd;2;57E;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;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;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;89E;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;128E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;131E;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;3;138E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;150E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;156E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;176E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;180E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;3;199E;D;K;6;CP$UIDd;3;200E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;203E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;205E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;207E;D;K;6;CP$UIDd;3;208E;D;K;6;CP$UIDd;3;209E;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;212E;D;K;6;CP$UIDd;3;214E;D;K;6;CP$UIDd;3;216E;D;K;6;CP$UIDd;3;218E;D;K;6;CP$UIDd;3;219E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;3;223E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;224E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;226E;D;K;6;CP$UIDd;3;228E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;229E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;231E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;232E;D;K;6;CP$UIDd;3;234E;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;89E;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;89E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;2;89E;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;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;3;115E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;132E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;138E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;212E;D;K;6;CP$UIDd;3;214E;D;K;6;CP$UIDd;3;216E;D;K;6;CP$UIDd;3;216E;D;K;6;CP$UIDd;3;216E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;3;223E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;3;224E;D;K;6;CP$UIDd;3;216E;D;K;6;CP$UIDd;3;214E;D;K;6;CP$UIDd;3;228E;D;K;6;CP$UIDd;3;214E;D;K;6;CP$UIDd;3;229E;D;K;6;CP$UIDd;3;214E;D;K;6;CP$UIDd;3;231E;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;235E;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;236E;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;232E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;237E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;232E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;234E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;238E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;232E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;228E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;239E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;232E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;212E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;240E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;232E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;229E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;241E;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;2;94E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;242E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;96E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;243E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;99E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;244E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;152E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;245E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;158E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;246E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;149E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;247E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;157E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;248E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;249E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;150E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;250E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;153E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;251E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;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;252E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;160E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;253E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;156E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;254E;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;255E;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;2;87E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;256E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;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;257E;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;258E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;140E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;259E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;141E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;260E;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;261E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;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;262E;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;263E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;135E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;264E;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;265E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;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;266E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;136E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;267E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;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;268E;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;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;269E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;128E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;270E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;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;271E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;134E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;272E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;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;273E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;164E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;274E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;165E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;275E;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;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;276E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;144E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;277E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;145E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;278E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;146E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;279E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;203E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;280E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;204E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;281E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;205E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;282E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;206E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;283E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;208E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;284E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;209E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;285E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;210E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;286E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;173E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;287E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;197E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;288E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;199E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;289E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;200E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;290E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;191E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;291E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;192E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;292E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;193E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;293E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;194E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;294E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;195E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;295E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;186E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;296E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;187E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;188E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;298E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;180E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;299E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;181E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;300E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;182E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;301E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;183E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;302E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;231E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;232E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;303E;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;83E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;234E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;232E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;304E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;305E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;306E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;308E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;224E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;234E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;309E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;310E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;311E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;312E;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;223E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;234E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;313E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;310E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;314E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;315E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;235E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;316E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;317E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;318E;E;D;K;10;$classnameS;10;CPMenuItemK;8;$classesA;S;10;CPMenuItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;319E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;92E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;89E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;319E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;322E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;323E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;324E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;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;326E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;92E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;327E;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;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;328E;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;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;329E;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;330E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;331E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;98E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;89E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;331E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;332E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;333E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;334E;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;98E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;335E;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;98E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;336E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;337E;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;98E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;338E;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;98E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;339E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;324E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;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;326E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;98E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;340E;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;98E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;341E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;324E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;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;326E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;98E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;324E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;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;326E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;98E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;342E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;108E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;98E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;342E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;343E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;344E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;324E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;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;326E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;98E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;98E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;336E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;346E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;347E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;112E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;89E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;347E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;348E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;349E;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;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;350E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;351E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;115E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;89E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;351E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;352E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;353E;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;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;354E;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;355E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;356E;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;357E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;324E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;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;326E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;115E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;358E;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;359E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;360E;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;361E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;362E;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;363E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;324E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;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;326E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;115E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;364E;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;365E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;367E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;126E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;115E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;367E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;368E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;369E;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;370E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;126E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;371E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;372E;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;373E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;374E;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;375E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;126E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;376E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;377E;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;378E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;126E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;379E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;380E;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;381E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;126E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;382E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;383E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;133E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;115E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;383E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;384E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;385E;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;133E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;386E;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;133E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;387E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;388E;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;133E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;389E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;390E;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;133E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;391E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;139E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;115E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;391E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;392E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;393E;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;139E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;139E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;395E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;143E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;115E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;395E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;396E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;397E;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;381E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;143E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;382E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;398E;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;378E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;143E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;379E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;399E;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;370E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;143E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;371E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;400E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;148E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;89E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;400E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;401E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;402E;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;148E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;403E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;404E;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;148E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;405E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;406E;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;148E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;407E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;408E;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;148E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;409E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;410E;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;148E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;411E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;412E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;155E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;148E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;412E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;413E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;414E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;415E;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;155E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;416E;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;148E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;417E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;418E;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;148E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;419E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;324E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;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;326E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;148E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;420E;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;148E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;324E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;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;326E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;148E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;421E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;163E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;89E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;421E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;422E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;423E;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;163E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;424E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;346E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;425E;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;163E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;426E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;167E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;89E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;426E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;427E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;428E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;169E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;167E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;428E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;429E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;430E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;431E;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;169E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;424E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;432E;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;378E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;169E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;433E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;434E;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;381E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;169E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;435E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;436E;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;169E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;437E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;324E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;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;326E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;169E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;438E;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;370E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;169E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;439E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;440E;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;441E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;169E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;442E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;324E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;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;326E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;169E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;443E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;179E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;169E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;443E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;444E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;445E;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;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;446E;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;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;447E;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;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;448E;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;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;449E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;185E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;169E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;449E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;450E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;445E;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;185E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;446E;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;185E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;451E;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;185E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;452E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;190E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;169E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;452E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;453E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;445E;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;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;454E;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;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;455E;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;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;456E;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;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;457E;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;190E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;324E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;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;326E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;169E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;458E;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;169E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;459E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;324E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;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;326E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;169E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;460E;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;169E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;363E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;346E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;461E;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;169E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;361E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;346E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;462E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;320E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;202E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;167E;E;D;K;6;$classD;K;6;CP$UIDd;2;88E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;462E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;463E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;464E;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;202E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;465E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;466E;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;202E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;467E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;468E;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;202E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;469E;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;202E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;470E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;324E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;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;326E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;202E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;471E;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;202E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;472E;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;202E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;363E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;473E;E;D;K;6;$classD;K;6;CP$UIDd;2;90E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;474E;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;202E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;361E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;473E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;211E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;475E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;476E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;477E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;375E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;319E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;214E;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;213E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;478E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;479E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;479E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;480E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;481E;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;215E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;214E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;478E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;482E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;483E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;484E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;214E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;485E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;486E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;481E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;3;488E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;3;489E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;3;218E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;3;219E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;3;490E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;3;490E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;3;490E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;3;490E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;3;324E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;3;324E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;3;324E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;3;491E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;3;378E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;K;6;CP$UIDd;3;478E;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;217E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;216E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;478E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;492E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;493E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;216E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;494E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;495E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;496E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;497E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;3;216E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;499E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;441E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;478E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;500E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;217E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;216E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;478E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;501E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;502E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;216E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;494E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;495E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;496E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;503E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;478E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;3;216E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;504E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;441E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;478E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;505E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;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;220E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;488E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;478E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;506E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;506E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;488E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;508E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;509E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;481E;K;12;$agrid-colorD;K;6;CP$UIDd;3;510E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;441E;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;511E;K;30;CPTableViewIntercellSpacingKeyD;K;6;CP$UIDd;3;512E;K;37;CPTableViewSelectionHighlightStyleKeyD;K;6;CP$UIDd;3;478E;K;37;CPTableViewColumnAutoresizingStyleKeyD;K;6;CP$UIDd;3;381E;K;31;CPTableViewMultipleSelectionKeyD;K;6;CP$UIDd;3;326E;K;28;CPTableViewEmptySelectionKeyD;K;6;CP$UIDd;3;324E;K;30;CPTableViewColumnReorderingKeyD;K;6;CP$UIDd;3;324E;K;28;CPTableViewColumnResizingKeyD;K;6;CP$UIDd;3;324E;K;29;CPTableViewColumnSelectionKeyD;K;6;CP$UIDd;3;324E;K;26;CPTableViewTableColumnsKeyD;K;6;CP$UIDd;3;513E;K;23;CPTableViewGridColorKeyD;K;6;CP$UIDd;3;510E;K;27;CPTableViewGridStyleMaskKeyD;K;6;CP$UIDd;3;478E;K;39;CPTableViewUsesAlternatingBackgroundKeyD;K;6;CP$UIDd;3;324E;K;34;CPTableViewAlternatingRowColorsKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewCornerViewKeyD;K;6;CP$UIDd;3;515E;K;24;CPTableViewHeaderViewKeyD;K;6;CP$UIDd;3;226E;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;222E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;1;0E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;516E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;517E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;518E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;520E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;521E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;370E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;326E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;324E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;222E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;1;0E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;522E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;517E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;518E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;523E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;524E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;370E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;326E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;324E;K;28;CPSortDescriptorPrototypeKeyD;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;225E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;489E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;478E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;525E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;525E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;489E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;526E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;481E;K;29;CPTableHeaderViewTableViewKeyD;K;6;CP$UIDd;3;221E;K;33;CPTableHeaderViewDrawsColumnLinesD;K;6;CP$UIDd;3;324E;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;227E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;214E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;478E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;527E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;528E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;214E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;485E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;529E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;530E;K;6;$afontD;K;6;CP$UIDd;3;532E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;378E;K;11;$aalignmentD;K;6;CP$UIDd;3;441E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;324E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;325E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;533E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;324E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;324E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;324E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;508E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;378E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;441E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;227E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;214E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;478E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;534E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;528E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;214E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;485E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;529E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;530E;K;6;$afontD;K;6;CP$UIDd;3;532E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;378E;K;11;$aalignmentD;K;6;CP$UIDd;3;441E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;324E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;325E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;533E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;324E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;324E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;324E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;508E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;378E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;441E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;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;230E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;214E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;478E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;535E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;536E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;214E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;485E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;537E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;538E;K;16;$aimage-positionD;K;6;CP$UIDd;3;478E;K;6;$afontD;K;6;CP$UIDd;3;539E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;478E;K;11;$aalignmentD;K;6;CP$UIDd;3;478E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;478E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;441E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;540E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;326E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;478E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;478E;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;541E;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;233E;K;28;CPObjectControllerContentKeyD;K;6;CP$UIDd;1;0E;K;36;CPObjectControllerObjectClassNameKeyD;K;6;CP$UIDd;3;542E;K;31;CPObjectControllerIsEditableKeyD;K;6;CP$UIDd;3;324E;K;49;CPObjectControllerAutomaticallyPreparesContentKeyD;K;6;CP$UIDd;3;326E;K;37;CPArrayControllerAvoidsEmptySelectionD;K;6;CP$UIDd;3;326E;K;49;CPArrayControllerClearsFilterPredicateOnInsertionD;K;6;CP$UIDd;3;326E;K;41;CPArrayControllerFilterRestrictsInsertionD;K;6;CP$UIDd;3;324E;K;35;CPArrayControllerPreservesSelectionD;K;6;CP$UIDd;3;326E;K;39;CPArrayControllerSelectsInsertedObjectsD;K;6;CP$UIDd;3;326E;K;47;CPArrayControllerAlwaysUsesMultipleValuesMarkerD;K;6;CP$UIDd;3;326E;K;47;CPArrayControllerAutomaticallyRearrangesObjectsD;K;6;CP$UIDd;3;326E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;212E;E;E;S;8;delegateS;15;arrayControllerS;4;fromS;9;theWindowS;2;toS;15;arrangeInFront:S;19;performMiniaturize:S;29;orderFrontStandardAboutPanel:S;13;openDocument:S;13;performClose:S;13;saveDocument:S;14;runPageLayout:S;6;print:S;15;saveDocumentAs:S;12;newDocument:S;9;showHelp:S;22;revertDocumentToSaved:S;21;clearRecentDocuments:S;5;hide:S;10;terminate:S;22;hideOtherApplications:S;22;unhideAllApplications: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;10;alignLeft:S;12;alignCenter:S;15;alignJustified:S;11;alignRight:S;12;toggleRuler:S;10;copyRuler:S;11;pasteRuler:S;10;underline:S;21;orderFrontColorPanel:S;9;copyFont:S;10;pasteFont:S;9;unscript:S;12;superscript:S;10;subscript:S;14;raiseBaseline:S;14;lowerBaseline:S;21;useStandardLigatures:S;17;turnOffLigatures:S;16;useAllLigatures:S;19;useStandardKerning:S;15;turnOffKerning:S;15;tightenKerning:S;14;loosenKerning:S;5;test:S;18;contentArray: rowsS;12;contentArrayS;4;rowsD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;307E;K;10;CP.objectsD;E;E;S;29;value: arrangedObjects.colTwoS;5;valueS;22;arrangedObjects.colTwoD;K;6;$classD;K;6;CP$UIDd;3;307E;K;10;CP.objectsD;K;22;CPValidatesImmediatelyD;K;6;CP$UIDd;3;324E;E;E;S;29;value: arrangedObjects.colOneS;22;arrangedObjects.colOneD;K;6;$classD;K;6;CP$UIDd;3;307E;K;10;CP.objectsD;K;22;CPValidatesImmediatelyD;K;6;CP$UIDd;3;324E;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;97E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;3;111E;E;E;S;6;WindowS;14;submenuAction:d;7;1048576S;14;_CPWindowsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;2;94E;E;E;T;S;0;F;S;18;Bring All to FrontS;4;ZoomS;8;MinimizeS;1;mS;14;NewApplicationS;18;_CPApplicationMenuD;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;106E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;102E;E;E;S;20;About NewApplicationS;19;Hide NewApplicationS;1;hS;8;Show AllS;19;Quit NewApplicationS;1;qS;12;Preferences…S;1;,S;8;ServicesS;15;_CPServicesMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;11;Hide Othersd;7;1572864S;4;HelpD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;113E;E;E;S;19;NewApplication HelpS;1;?S;4;EditD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;132E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;138E;E;E;S;6;DeleteS;10;Select AllS;1;aS;4;UndoS;1;zS;3;CutS;1;xS;5;PasteS;1;vS;4;CopyS;1;cS;4;RedoS;1;Zd;7;1179648S;4;FindD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;128E;E;E;S;13;Find Previousd;1;3S;1;GS;17;Jump to SelectionS;1;jS;22;Use Selection for Findd;1;7S;1;eS;9;Find Nextd;1;2S;1;gS;5;Find…d;1;1S;1;fS;20;Spelling and GrammarD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;137E;E;E;S;27;Check Spelling While TypingS;14;Check SpellingS;1;;S;14;Show Spelling…S;1;:S;27;Check Grammar With SpellingS;6;SpeechD;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;140E;E;E;S;13;Stop SpeakingS;14;Start SpeakingS;13;SubstitutionsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;146E;E;E;S;16;Smart Copy/PasteS;12;Smart QuotesS;11;Smart LinksS;4;FileD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;150E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;151E;E;E;S;4;SaveS;1;sS;8;Save As…S;1;SS;6;Print…S;1;pS;5;Open…S;1;oS;3;NewS;1;nS;11;Open RecentS;22;_CPRecentDocumentsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;156E;E;E;S;10;Clear MenuS;13;Page Setup...S;1;PS;5;CloseS;1;wS;15;Revert to SavedS;4;ViewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;165E;E;E;S;12;Show ToolbarS;1;tS;18;Customize Toolbar…S;6;FormatD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;201E;E;E;S;4;FontS;11;_CPFontMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;176E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;3;199E;D;K;6;CP$UIDd;3;200E;E;E;S;10;Show FontsS;4;BoldS;1;bS;6;ItalicS;1;iS;9;UnderlineS;1;uS;6;BiggerS;1;+S;7;Smallerd;1;4S;1;-S;4;KernD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;180E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;183E;E;E;S;11;Use DefaultS;8;Use NoneS;7;TightenS;6;LoosenS;8;LigatureD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;188E;E;E;S;7;Use AllS;8;BaselineD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;195E;E;E;S;11;SuperscriptS;9;SubscriptS;5;RaiseS;5;LowerS;11;Show ColorsS;1;CS;10;Copy StyleS;11;Paste StyleS;4;TextD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;203E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;205E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;207E;D;K;6;CP$UIDd;3;208E;D;K;6;CP$UIDd;3;209E;D;K;6;CP$UIDd;3;210E;E;E;S;10;Align LeftS;1;{S;6;CenterS;1;|S;7;JustifyS;11;Align RightS;1;}S;10;Show RulerS;10;Copy Rulerd;7;1310720S;11;Paste RulerS;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{335, 128}, {663, 442}}d;1;0S;20;{{0, 0}, {663, 442}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;216E;D;K;6;CP$UIDd;3;231E;D;K;6;CP$UIDd;3;228E;D;K;6;CP$UIDd;3;229E;E;E;S;6;normalS;22;{{-1, -1}, {665, 384}}S;20;{{0, 0}, {665, 384}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;488E;D;K;6;CP$UIDd;3;218E;D;K;6;CP$UIDd;3;219E;D;K;6;CP$UIDd;3;489E;D;K;6;CP$UIDd;3;515E;D;K;6;CP$UIDd;3;491E;E;E;d;2;36S;10;scrollviewD;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;487E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;216E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;478E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;543E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;506E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;544E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;216E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;494E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;545E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;481E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;3;221E;E;D;K;6;$classD;K;6;CP$UIDd;3;487E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;216E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;478E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;546E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;547E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;548E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;216E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;494E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;545E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;481E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;3;226E;E;d;2;10D;K;6;$classD;K;6;CP$UIDd;3;213E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;216E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;549E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;549E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;216E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;481E;E;S;23;{{224, 265}, {15, 102}}S;19;{{0, 0}, {15, 102}}d;1;8d;11;-2147483648S;8;scrollerS;17;disabled+verticald;2;37S;27;_verticalScrollerDidScroll:f;18;0.1947367936372757S;21;{{1, 250}, {223, 15}}S;19;{{0, 0}, {223, 15}}S;8;disabledS;29;_horizontalScrollerDidScroll:f;18;0.5714285969734192S;20;{{0, 0}, {663, 366}}D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;507E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;550E;E;S;9;tableviewD;K;6;$classD;K;6;CP$UIDd;3;507E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;551E;E;d;2;23S;6;{3, 2}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;223E;D;K;6;CP$UIDd;3;224E;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;514E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;216E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;478E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;552E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;553E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;216E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;494E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;554E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;481E;E;d;3;101d;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;519E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;549E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;549E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;556E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;481E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;478E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;325E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;532E;E;D;K;6;$classD;K;6;CP$UIDd;3;227E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;549E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;549E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;529E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;557E;K;6;$afontD;K;6;CP$UIDd;3;559E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;441E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;378E;K;11;$aalignmentD;K;6;CP$UIDd;3;478E;K;15;$acontent-insetD;K;6;CP$UIDd;3;561E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;325E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;533E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;441E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;478E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;325E;E;d;3;556D;K;6;$classD;K;6;CP$UIDd;3;519E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;549E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;549E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;562E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;556E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;481E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;478E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;325E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;532E;E;D;K;6;$classD;K;6;CP$UIDd;3;227E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;549E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;549E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;529E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;557E;K;6;$afontD;K;6;CP$UIDd;3;563E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;441E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;378E;K;11;$aalignmentD;K;6;CP$UIDd;3;478E;K;15;$acontent-insetD;K;6;CP$UIDd;3;564E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;325E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;533E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;441E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;478E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;325E;E;S;19;{{0, 0}, {663, 23}}S;14;tableHeaderRowS;22;{{556, 392}, {40, 29}}S;18;{{0, 0}, {40, 29}}S;9;textfieldS;19;bezeled+placeholderD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;531E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;565E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;566E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;326E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;326E;E;d;4;3072S;22;{{605, 392}, {40, 29}}S;23;{{380, 393}, {163, 24}}S;19;{{0, 0}, {163, 24}}S;6;buttonS;8;borderedD;K;6;$classD;K;6;CP$UIDd;3;531E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;565E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;566E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;324E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;326E;E;S;22;Change Model In Range:S;13;AppControllerS;19;CPMutableDictionaryS;20;{{1, 1}, {663, 366}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;221E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;507E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;567E;E;S;21;{{1, 367}, {663, 17}}S;19;{{0, 0}, {663, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;226E;E;E;S;16;{{0, 0}, {0, 0}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;381E;D;K;6;CP$UIDd;3;381E;D;K;6;CP$UIDd;3;381E;D;K;6;CP$UIDd;3;381E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;568E;D;K;6;CP$UIDd;3;568E;D;K;6;CP$UIDd;3;568E;D;K;6;CP$UIDd;3;381E;E;E;S;22;{{224, 361}, {16, 23}}S;18;{{0, 0}, {16, 23}}S;10;cornerviewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;570E;E;E;S;12;columnHeaderS;11;placeholderD;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;558E;K;4;nameD;K;6;CP$UIDd;3;571E;K;12;defaultValueD;K;6;CP$UIDd;3;532E;K;6;valuesD;K;6;CP$UIDd;3;572E;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;560E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;573E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;574E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;558E;K;4;nameD;K;6;CP$UIDd;3;571E;K;12;defaultValueD;K;6;CP$UIDd;3;532E;K;6;valuesD;K;6;CP$UIDd;3;575E;E;D;K;6;$classD;K;6;CP$UIDd;3;560E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;573E;E;S;17;Arial, sans-serifd;2;12D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;381E;D;K;6;CP$UIDd;3;381E;D;K;6;CP$UIDd;3;381E;D;K;6;CP$UIDd;3;381E;E;E;f;3;0.5D;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;569E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;520E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;549E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;549E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;520E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;576E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;481E;E;S;4;fontD;K;6;$classD;K;6;CP$UIDd;3;307E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;539E;K;6;normalD;K;6;CP$UIDd;3;532E;E;E;S;39;{"top":0,"right":5,"bottom":0,"left":5}D;K;6;$classD;K;6;CP$UIDd;3;569E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;523E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;549E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;549E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;523E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;576E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;481E;E;D;K;6;$classD;K;6;CP$UIDd;3;307E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;539E;K;6;normalD;K;6;CP$UIDd;3;532E;E;E;d;2;18E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file +280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;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;29E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;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;33E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;1;0E;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;1;0E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;79E;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;35E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;55E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;80E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;81E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;75E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;82E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;75E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;55E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;83E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;75E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;84E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;75E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;51E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;85E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;75E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;52E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;86E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;75E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;51E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;87E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;75E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;35E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;88E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;75E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;52E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;89E;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;23E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;61E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;51E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;90E;E;D;K;6;$classD;K;6;CP$UIDd;2;23E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;62E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;52E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;90E;E;D;K;6;$classD;K;6;CP$UIDd;2;23E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;74E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;75E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;91E;E;D;K;6;$classD;K;6;CP$UIDd;2;23E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;73E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;75E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;91E;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;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;92E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;93E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;94E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;96E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;75E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;97E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;98E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;99E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;100E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;68E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;101E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;102E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;103E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;104E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;67E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;105E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;102E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;106E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;107E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;80E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;108E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;109E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;110E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;111E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;112E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;37E;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;36E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;114E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;114E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;115E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;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;2;38E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;117E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;118E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;119E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;120E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;121E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;3;123E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;3;124E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;2;49E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;2;48E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;3;125E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;3;125E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;3;125E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;3;125E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;3;126E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;3;126E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;3;126E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;3;127E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;3;128E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;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;2;40E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;124E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;129E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;129E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;124E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;130E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;29;CPTableHeaderViewTableViewKeyD;K;6;CP$UIDd;2;43E;K;33;CPTableHeaderViewDrawsColumnLinesD;K;6;CP$UIDd;3;126E;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;2;42E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;123E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;131E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;131E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;123E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;133E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;134E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;12;$agrid-colorD;K;6;CP$UIDd;3;135E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;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;137E;K;30;CPTableViewIntercellSpacingKeyD;K;6;CP$UIDd;3;138E;K;37;CPTableViewSelectionHighlightStyleKeyD;K;6;CP$UIDd;3;113E;K;37;CPTableViewColumnAutoresizingStyleKeyD;K;6;CP$UIDd;3;139E;K;31;CPTableViewMultipleSelectionKeyD;K;6;CP$UIDd;3;140E;K;28;CPTableViewEmptySelectionKeyD;K;6;CP$UIDd;3;126E;K;30;CPTableViewColumnReorderingKeyD;K;6;CP$UIDd;3;126E;K;28;CPTableViewColumnResizingKeyD;K;6;CP$UIDd;3;126E;K;29;CPTableViewColumnSelectionKeyD;K;6;CP$UIDd;3;126E;K;26;CPTableViewTableColumnsKeyD;K;6;CP$UIDd;3;141E;K;23;CPTableViewGridColorKeyD;K;6;CP$UIDd;3;135E;K;27;CPTableViewGridStyleMaskKeyD;K;6;CP$UIDd;1;0E;K;39;CPTableViewUsesAlternatingBackgroundKeyD;K;6;CP$UIDd;3;126E;K;34;CPTableViewAlternatingRowColorsKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewCornerViewKeyD;K;6;CP$UIDd;3;143E;K;24;CPTableViewHeaderViewKeyD;K;6;CP$UIDd;2;41E;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;2;44E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;1;0E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;144E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;145E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;146E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;148E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;149E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;150E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;140E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;126E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;1;0E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;151E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;145E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;146E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;152E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;153E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;150E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;140E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;126E;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;2;47E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;39E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;155E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;39E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;156E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;157E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;158E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;159E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;113E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;39E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;160E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;113E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;161E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;39E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;162E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;163E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;39E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;156E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;157E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;158E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;164E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;39E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;166E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;113E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;167E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;168E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;169E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;120E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;170E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;171E;K;6;$afontD;K;6;CP$UIDd;3;173E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;128E;K;11;$aalignmentD;K;6;CP$UIDd;3;136E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;126E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;174E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;175E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;126E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;126E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;126E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;133E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;128E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;136E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;176E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;177E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;120E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;170E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;171E;K;6;$afontD;K;6;CP$UIDd;3;178E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;128E;K;11;$aalignmentD;K;6;CP$UIDd;3;136E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;126E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;179E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;175E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;126E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;126E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;126E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;133E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;128E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;136E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;180E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;181E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;120E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;170E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;6;$afontD;K;6;CP$UIDd;3;182E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;128E;K;11;$aalignmentD;K;6;CP$UIDd;3;136E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;126E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;183E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;175E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;140E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;140E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;140E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;128E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;136E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;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;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;2;79E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;184E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;185E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;120E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;186E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;187E;K;6;$afontD;K;6;CP$UIDd;3;188E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;136E;K;11;$aalignmentD;K;6;CP$UIDd;3;113E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;113E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;140E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;128E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;113E;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;56E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;189E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;55E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;190E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;139E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;79E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;191E;E;D;K;6;$classD;K;6;CP$UIDd;2;56E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;192E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;55E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;190E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;1;0E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;1;0E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;79E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;191E;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;193E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;194E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;120E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;170E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;6;$afontD;K;6;CP$UIDd;3;182E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;128E;K;11;$aalignmentD;K;6;CP$UIDd;3;136E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;126E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;195E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;175E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;140E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;140E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;140E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;128E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;136E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;9;CPStepperK;8;$classesA;S;9;CPStepperS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;196E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;197E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;120E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;198E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;113E;K;11;$aalignmentD;K;6;CP$UIDd;3;113E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;199E;K;18;CPStepperIncrementD;K;6;CP$UIDd;3;139E;K;17;CPStepperMaxValueD;K;6;CP$UIDd;3;151E;K;19;CPStepperAutorepeatD;K;6;CP$UIDd;3;126E;E;D;K;6;$classD;K;6;CP$UIDd;2;60E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;200E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;197E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;120E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;198E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;113E;K;11;$aalignmentD;K;6;CP$UIDd;3;113E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;201E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;199E;K;18;CPStepperIncrementD;K;6;CP$UIDd;3;139E;K;17;CPStepperMaxValueD;K;6;CP$UIDd;3;151E;K;19;CPStepperAutorepeatD;K;6;CP$UIDd;3;126E;E;D;K;6;$classD;K;6;CP$UIDd;2;38E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;202E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;203E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;204E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;120E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;121E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;3;205E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;3;206E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;2;64E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;2;65E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;3;125E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;3;125E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;3;125E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;3;125E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;3;126E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;3;126E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;3;126E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;3;207E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;3;128E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;63E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;162E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;163E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;63E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;156E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;157E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;158E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;164E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;165E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;63E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;166E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;113E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;167E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;63E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;155E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;63E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;156E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;157E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;158E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;159E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;113E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;63E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;160E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;113E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;161E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;42E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;205E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;208E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;208E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;205E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;133E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;134E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;12;$agrid-colorD;K;6;CP$UIDd;3;135E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;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;137E;K;30;CPTableViewIntercellSpacingKeyD;K;6;CP$UIDd;3;138E;K;37;CPTableViewSelectionHighlightStyleKeyD;K;6;CP$UIDd;3;113E;K;37;CPTableViewColumnAutoresizingStyleKeyD;K;6;CP$UIDd;3;139E;K;31;CPTableViewMultipleSelectionKeyD;K;6;CP$UIDd;3;140E;K;28;CPTableViewEmptySelectionKeyD;K;6;CP$UIDd;3;126E;K;30;CPTableViewColumnReorderingKeyD;K;6;CP$UIDd;3;126E;K;28;CPTableViewColumnResizingKeyD;K;6;CP$UIDd;3;126E;K;29;CPTableViewColumnSelectionKeyD;K;6;CP$UIDd;3;126E;K;26;CPTableViewTableColumnsKeyD;K;6;CP$UIDd;3;209E;K;23;CPTableViewGridColorKeyD;K;6;CP$UIDd;3;135E;K;27;CPTableViewGridStyleMaskKeyD;K;6;CP$UIDd;1;0E;K;39;CPTableViewUsesAlternatingBackgroundKeyD;K;6;CP$UIDd;3;126E;K;34;CPTableViewAlternatingRowColorsKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewCornerViewKeyD;K;6;CP$UIDd;3;210E;K;24;CPTableViewHeaderViewKeyD;K;6;CP$UIDd;2;69E;K;26;CPTableViewAutosaveNameKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;1;0E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;211E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;145E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;146E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;212E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;213E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;150E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;140E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;126E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;1;0E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;214E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;145E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;146E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;215E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;216E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;150E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;140E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;126E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;40E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;217E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;217E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;130E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;29;CPTableHeaderViewTableViewKeyD;K;6;CP$UIDd;2;66E;K;33;CPTableHeaderViewDrawsColumnLinesD;K;6;CP$UIDd;3;126E;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;218E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;219E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;120E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;170E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;6;$afontD;K;6;CP$UIDd;3;182E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;128E;K;11;$aalignmentD;K;6;CP$UIDd;3;136E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;126E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;220E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;175E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;140E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;140E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;140E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;128E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;136E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;221E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;219E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;120E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;170E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;6;$afontD;K;6;CP$UIDd;3;182E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;128E;K;11;$aalignmentD;K;6;CP$UIDd;3;136E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;126E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;222E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;175E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;140E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;140E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;140E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;128E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;136E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;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;72E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;223E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;224E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;120E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;225E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;187E;K;6;$afontD;K;6;CP$UIDd;3;188E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;113E;K;11;$aalignmentD;K;6;CP$UIDd;3;128E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;113E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;226E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;140E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;128E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;113E;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;72E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;146E;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;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;120E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;225E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;187E;K;6;$afontD;K;6;CP$UIDd;3;188E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;113E;K;11;$aalignmentD;K;6;CP$UIDd;3;128E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;113E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;136E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;229E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;140E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;128E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;113E;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;230E;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;2;76E;K;28;CPObjectControllerContentKeyD;K;6;CP$UIDd;1;0E;K;36;CPObjectControllerObjectClassNameKeyD;K;6;CP$UIDd;3;231E;K;31;CPObjectControllerIsEditableKeyD;K;6;CP$UIDd;3;126E;K;49;CPObjectControllerAutomaticallyPreparesContentKeyD;K;6;CP$UIDd;3;140E;K;37;CPArrayControllerAvoidsEmptySelectionD;K;6;CP$UIDd;3;140E;K;49;CPArrayControllerClearsFilterPredicateOnInsertionD;K;6;CP$UIDd;3;140E;K;41;CPArrayControllerFilterRestrictsInsertionD;K;6;CP$UIDd;3;126E;K;35;CPArrayControllerPreservesSelectionD;K;6;CP$UIDd;3;140E;K;39;CPArrayControllerSelectsInsertedObjectsD;K;6;CP$UIDd;3;140E;K;47;CPArrayControllerAlwaysUsesMultipleValuesMarkerD;K;6;CP$UIDd;3;140E;K;47;CPArrayControllerAutomaticallyRearrangesObjectsD;K;6;CP$UIDd;3;140E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;78E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;232E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;233E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;35E;E;E;S;8;delegateS;12;KeyPathPopupS;15;arrayControllerS;4;fromS;11;lengthFieldS;13;locationFieldS;9;theWindowS;2;toS;21;takeIntegerValueFrom:S;22;updateOrReloadContent:S;24;content: arrangedObjectsS;7;contentS;15;arrangedObjectsD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;95E;K;10;CP.objectsD;E;E;S;18;contentArray: rowsS;12;contentArrayS;4;rowsD;K;6;$classD;K;6;CP$UIDd;2;95E;K;10;CP.objectsD;E;E;S;29;value: arrangedObjects.colTwoS;5;valueS;22;arrangedObjects.colTwoD;K;6;$classD;K;6;CP$UIDd;2;95E;K;10;CP.objectsD;E;E;S;29;value: arrangedObjects.colOneS;22;arrangedObjects.colOneD;K;6;$classD;K;6;CP$UIDd;2;95E;K;10;CP.objectsD;E;E;S;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{335, 266}, {999, 454}}d;1;7S;6;Windowd;1;0S;20;{{0, 0}, {999, 454}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;71E;E;E;S;6;normalS;23;{{478, 31}, {501, 360}}S;20;{{0, 0}, {501, 360}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;127E;E;E;d;2;36S;10;scrollviewD;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;122E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;39E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;234E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;131E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;235E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;39E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;156E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;236E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;43E;E;D;K;6;$classD;K;6;CP$UIDd;3;122E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;39E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;237E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;238E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;239E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;39E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;156E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;236E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;41E;E;d;2;10T;D;K;6;$classD;K;6;CP$UIDd;2;36E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;39E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;240E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;240E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;39E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;E;d;1;2S;19;{{0, 0}, {499, 23}}S;14;tableHeaderRowS;20;{{0, 0}, {499, 342}}D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;132E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;241E;E;S;9;tableviewD;K;6;$classD;K;6;CP$UIDd;3;132E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;242E;E;d;1;4d;2;23S;6;{3, 2}d;1;1F;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;45E;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;142E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;243E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;244E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;245E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;E;d;3;393d;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;147E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;240E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;240E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;246E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;247E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;113E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;248E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;240E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;240E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;170E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;249E;K;6;$afontD;K;6;CP$UIDd;3;251E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;136E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;128E;K;11;$aalignmentD;K;6;CP$UIDd;3;113E;K;15;$acontent-insetD;K;6;CP$UIDd;3;253E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;248E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;175E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;136E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;113E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;248E;E;d;1;3d;3;100D;K;6;$classD;K;6;CP$UIDd;3;147E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;240E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;240E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;254E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;247E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;113E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;248E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;240E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;240E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;170E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;249E;K;6;$afontD;K;6;CP$UIDd;3;255E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;136E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;128E;K;11;$aalignmentD;K;6;CP$UIDd;3;113E;K;15;$acontent-insetD;K;6;CP$UIDd;3;256E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;248E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;175E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;136E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;113E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;248E;E;S;21;{{1, -23}, {461, 15}}S;19;{{0, 0}, {461, 15}}d;1;8d;11;-2147483648S;8;scrollerS;8;disabledS;29;_horizontalScrollerDidScroll:f;17;0.878095238095238S;23;{{224, 241}, {15, 102}}S;19;{{0, 0}, {15, 102}}S;17;disabled+verticald;2;37S;27;_verticalScrollerDidScroll:f;18;0.1947367936372757S;22;{{510, 408}, {34, 29}}S;18;{{0, 0}, {34, 29}}S;9;textfieldS;7;bezeledD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;172E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;257E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;258E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;140E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;140E;E;S;1;0d;4;3072S;22;{{581, 408}, {35, 29}}S;18;{{0, 0}, {35, 29}}D;K;6;$classD;K;6;CP$UIDd;3;172E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;257E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;258E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;140E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;140E;E;S;1;5S;23;{{179, 417}, {171, 17}}S;19;{{0, 0}, {171, 17}}D;K;6;$classD;K;6;CP$UIDd;3;172E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;257E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;258E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;140E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;140E;E;S;26;Model values for Key Path:S;22;{{353, 412}, {74, 24}}S;18;{{0, 0}, {74, 24}}S;12;popup-buttonS;8;borderedD;K;6;$classD;K;6;CP$UIDd;3;172E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;257E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;258E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;140E;E;S;6;colOneS;17;_popUpItemAction:d;7;1048576S;6;colTwoS;22;{{452, 417}, {59, 17}}S;18;{{0, 0}, {59, 17}}S;8;In RangeS;22;{{547, 410}, {19, 27}}S;18;{{0, 0}, {19, 27}}S;7;stepperd;5;65540S;22;{{619, 410}, {19, 27}}d;1;5S;22;{{20, 31}, {450, 360}}S;20;{{0, 0}, {450, 360}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;205E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;207E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;122E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;63E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;259E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;208E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;260E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;63E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;156E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;236E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;66E;E;D;K;6;$classD;K;6;CP$UIDd;3;122E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;63E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;261E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;262E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;263E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;63E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;156E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;236E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;36E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;63E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;240E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;240E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;63E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;E;S;20;{{0, 0}, {448, 342}}D;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;E;E;D;K;6;$classD;K;6;CP$UIDd;3;142E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;113E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;243E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;244E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;245E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;E;d;2;76D;K;6;$classD;K;6;CP$UIDd;3;147E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;240E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;240E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;264E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;247E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;113E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;248E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;240E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;240E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;170E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;249E;K;6;$afontD;K;6;CP$UIDd;3;265E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;136E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;128E;K;11;$aalignmentD;K;6;CP$UIDd;3;113E;K;15;$acontent-insetD;K;6;CP$UIDd;3;266E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;248E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;175E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;136E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;113E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;248E;E;d;3;366D;K;6;$classD;K;6;CP$UIDd;3;147E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;240E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;240E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;267E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;247E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;113E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;248E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;240E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;240E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;170E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;249E;K;6;$afontD;K;6;CP$UIDd;3;268E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;136E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;128E;K;11;$aalignmentD;K;6;CP$UIDd;3;113E;K;15;$acontent-insetD;K;6;CP$UIDd;3;269E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;248E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;175E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;136E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;113E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;248E;E;S;19;{{0, 0}, {448, 23}}S;20;{{17, 6}, {244, 17}}S;19;{{0, 0}, {244, 17}}S;26;Table Column Value BindingS;21;{{478, 6}, {244, 17}}S;26;Table View Content BindingS;22;{{930, 414}, {47, 24}}S;18;{{0, 0}, {47, 24}}S;6;buttonS;3;SetS;22;{{834, 414}, {84, 24}}S;18;{{0, 0}, {84, 24}}S;8;MutationS;13;AppControllerS;19;CPMutableDictionaryS;10;OtherViewsD;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;58E;E;E;S;20;{{1, 1}, {499, 342}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;43E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;132E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;270E;E;S;21;{{1, 343}, {499, 17}}S;19;{{0, 0}, {499, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;41E;E;E;S;16;{{0, 0}, {0, 0}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;139E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;271E;D;K;6;CP$UIDd;3;271E;D;K;6;CP$UIDd;3;271E;D;K;6;CP$UIDd;3;139E;E;E;S;20;{{224, 0}, {16, 23}}S;18;{{0, 0}, {16, 23}}S;10;cornerviewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;273E;E;E;S;12;columnHeaderS;0;S;11;placeholderD;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;250E;K;4;nameD;K;6;CP$UIDd;3;274E;K;12;defaultValueD;K;6;CP$UIDd;3;182E;K;6;valuesD;K;6;CP$UIDd;3;275E;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;252E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;276E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;277E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;250E;K;4;nameD;K;6;CP$UIDd;3;274E;K;12;defaultValueD;K;6;CP$UIDd;3;182E;K;6;valuesD;K;6;CP$UIDd;3;278E;E;D;K;6;$classD;K;6;CP$UIDd;3;252E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;276E;E;S;17;Arial, sans-serifd;2;12S;20;{{1, 1}, {448, 342}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;66E;E;E;S;21;{{1, 343}, {448, 17}}S;19;{{0, 0}, {448, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;69E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;279E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;250E;K;4;nameD;K;6;CP$UIDd;3;274E;K;12;defaultValueD;K;6;CP$UIDd;3;182E;K;6;valuesD;K;6;CP$UIDd;3;280E;E;D;K;6;$classD;K;6;CP$UIDd;3;252E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;276E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;281E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;250E;K;4;nameD;K;6;CP$UIDd;3;274E;K;12;defaultValueD;K;6;CP$UIDd;3;182E;K;6;valuesD;K;6;CP$UIDd;3;282E;E;D;K;6;$classD;K;6;CP$UIDd;3;252E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;276E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;139E;E;E;f;3;0.5D;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;272E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;148E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;240E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;240E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;148E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;283E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;E;S;4;fontD;K;6;$classD;K;6;CP$UIDd;2;95E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;188E;K;6;normalD;K;6;CP$UIDd;3;182E;E;E;S;39;{"top":0,"right":5,"bottom":0,"left":5}D;K;6;$classD;K;6;CP$UIDd;3;272E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;152E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;240E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;240E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;152E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;283E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;E;D;K;6;$classD;K;6;CP$UIDd;2;95E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;188E;K;6;normalD;K;6;CP$UIDd;3;182E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;272E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;212E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;240E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;240E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;212E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;283E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;E;D;K;6;$classD;K;6;CP$UIDd;2;95E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;188E;K;6;normalD;K;6;CP$UIDd;3;182E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;272E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;215E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;240E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;240E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;215E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;283E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;116E;E;D;K;6;$classD;K;6;CP$UIDd;2;95E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;188E;K;6;normalD;K;6;CP$UIDd;3;182E;E;E;d;2;18E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/TableTest/TableBindings/Resources/MainMenu.xib b/Tests/Manual/TableTest/TableBindings/Resources/MainMenu.xib index adc7c5981..338daa889 100644 --- a/Tests/Manual/TableTest/TableBindings/Resources/MainMenu.xib +++ b/Tests/Manual/TableTest/TableBindings/Resources/MainMenu.xib @@ -2,17 +2,35 @@ 1050 - 10J567 - 823 - 1038.35 - 462.00 + 11D50 + 2427 + 1138.32 + 568.00 com.apple.InterfaceBuilder.CocoaPlugin - 823 + 2427 - + YES - + NSPopUpButtonCell + NSStepper + NSScroller + NSArrayController + NSTableHeaderView + NSPopUpButton + NSScrollView + NSTextFieldCell + NSMenu + NSMenuItem + NSButton + NSTableView + NSButtonCell + NSCustomObject + NSStepperCell + NSView + NSWindowTemplate + NSTextField + NSTableColumn YES @@ -33,1090 +51,15 @@ 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 - - - - - - Services - - 1048576 - 2147483647 - - - submenuAction: - - Services - - YES - - _NSServicesMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hide NewApplication - h - 1048576 - 2147483647 - - - - - - Hide Others - h - 1572864 - 2147483647 - - - - - - Show All - - 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 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Page Setup... - P - 1179648 - 2147483647 - - - - - - - Print… - p - 1048576 - 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 - - - - - - - - - - - - Format - - 2147483647 - - - submenuAction: - - Format - - YES - - - Font - - 2147483647 - - - submenuAction: - - Font - - YES - - - Show Fonts - t - 1048576 - 2147483647 - - - - - - Bold - b - 1048576 - 2147483647 - - - 2 - - - - Italic - i - 1048576 - 2147483647 - - - 1 - - - - Underline - u - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Bigger - + - 1048576 - 2147483647 - - - 3 - - - - Smaller - - - 1048576 - 2147483647 - - - 4 - - - - YES - YES - - - 2147483647 - - - - - - Kern - - 2147483647 - - - submenuAction: - - Kern - - YES - - - Use Default - - 2147483647 - - - - - - Use None - - 2147483647 - - - - - - Tighten - - 2147483647 - - - - - - Loosen - - 2147483647 - - - - - - - - - Ligature - - 2147483647 - - - submenuAction: - - Ligature - - YES - - - Use Default - - 2147483647 - - - - - - Use None - - 2147483647 - - - - - - Use All - - 2147483647 - - - - - - - - - Baseline - - 2147483647 - - - submenuAction: - - Baseline - - YES - - - Use Default - - 2147483647 - - - - - - Superscript - - 2147483647 - - - - - - Subscript - - 2147483647 - - - - - - Raise - - 2147483647 - - - - - - Lower - - 2147483647 - - - - - - - - - YES - YES - - - 2147483647 - - - - - - Show Colors - C - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Copy Style - c - 1572864 - 2147483647 - - - - - - Paste Style - v - 1572864 - 2147483647 - - - - - _NSFontMenu - - - - - Text - - 2147483647 - - - submenuAction: - - Text - - YES - - - Align Left - { - 1048576 - 2147483647 - - - - - - Center - | - 1048576 - 2147483647 - - - - - - Justify - - 2147483647 - - - - - - Align Right - } - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Show Ruler - - 2147483647 - - - - - - Copy Ruler - c - 1310720 - 2147483647 - - - - - - Paste Ruler - v - 1310720 - 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, 308}, {663, 442}} + {{335, 308}, {999, 454}} 1946157056 Window NSWindow - {1.79769e+308, 1.79769e+308} + 256 @@ -1135,26 +78,29 @@ 256 - {663, 366} + {448, 342} + + YES 256 - {663, 17} + {448, 17} + + - - + + -2147483392 {{224, 0}, {16, 17}} - YES - 101 + 76 40 1000 @@ -1194,7 +140,7 @@ 6 System controlBackgroundColor - + 3 MC42NjY2NjY2NjY3AA @@ -1212,7 +158,7 @@ - 556 + 366 40 1000 @@ -1244,7 +190,7 @@ 3 MQA - + 6 System gridColor @@ -1262,10 +208,12 @@ 0 YES 0 + 1 - {{1, 17}, {663, 366}} + {{1, 17}, {448, 342}} + @@ -1276,6 +224,8 @@ -2147483392 {{224, 17}, {15, 102}} + + _doScroller: 37 @@ -1284,12 +234,14 @@ -2147483392 - {{1, 119}, {223, 15}} + {{1, 368}, {461, 15}} + + 1 _doScroller: - 0.57142859697341919 + 0.87809523809523804 @@ -1298,56 +250,38 @@ YES - {{1, 0}, {663, 17}} + {{1, 0}, {448, 17}} + 4 - - {{-1, 59}, {665, 384}} + {{20, 63}, {450, 360}} - - 562 + + + 133682 - QSAAAEEgAABBmAAAQZgAAA - - - 268 - {{382, 20}, {163, 31}} - - YES - - 67239424 - 0 - Change Model In Range: - - - -2038152961 - 134 - - - 400 - 75 - - 268 - {{562, 24}, {32, 22}} + {{516, 20}, {26, 22}} + + YES -1804468671 272630784 - + 0 YES @@ -1368,13 +302,15 @@ 268 - {{611, 24}, {32, 22}} + {{587, 20}, {27, 22}} + + YES -1804468671 272630784 - + 5 YES @@ -1382,12 +318,418 @@ + + + 268 + + YES + + + 2304 + + YES + + + 256 + {499, 342} + + + + YES + + + 256 + {499, 17} + + + + + + + + -2147483392 + {{224, 0}, {16, 17}} + + + YES + + 100 + 40 + 1000 + + 75628096 + 2048 + + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 337772096 + 2048 + Text Cell + + + + + + 3 + YES + YES + + + + 393 + 40 + 1000 + + 75628096 + 2048 + + + + + + + 337772096 + 2048 + Text Cell + + + + + + 3 + YES + YES + + + + 3 + 2 + + + 17 + -692027392 + + + 1 + 15 + 0 + YES + 0 + 1 + + + {{1, 17}, {499, 342}} + + + + + + 4 + + + + -2147483392 + {{224, 17}, {15, 102}} + + + + + _doScroller: + 37 + 0.1947367936372757 + + + + -2147483392 + {{1, 368}, {461, 15}} + + + + 1 + + _doScroller: + 0.87809523809523804 + + + + 2304 + + YES + + + {{1, 0}, {499, 17}} + + + + + + 4 + + + {{478, 63}, {501, 360}} + + + + 133682 + + + + + QSAAAEEgAABBmAAAQZgAAA + + + + 268 + {{179, 20}, {171, 17}} + + + + _NS:1505 + YES + + 68288064 + 272630784 + Model values for Key Path: + + _NS:1505 + + + 6 + System + controlColor + + + + + + + + 268 + {{352, 16}, {80, 26}} + + + + _NS:9 + YES + + -2076049856 + 2048 + + _NS:9 + + 109199360 + 129 + + + 400 + 75 + + + colOne + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + colTwo + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + 1 + YES + YES + 2 + + + + + 268 + {{452, 20}, {59, 17}} + + + + _NS:1505 + YES + + 68288064 + 272630784 + In Range + + _NS:1505 + + + + + + + + 268 + {{547, 17}, {19, 27}} + + + + _NS:1083 + YES + + 917024 + 0 + _NS:1083 + + 100 + 1 + YES + + + + + 268 + {{619, 17}, {19, 27}} + + + + _NS:1083 + YES + + 917024 + 0 + _NS:1083 + + 5 + 100 + 1 + YES + + + + + 268 + {{830, 10}, {96, 32}} + + + + _NS:9 + 1000 + YES + + 67108864 + 134217728 + Mutation + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + + + + 268 + {{926, 10}, {59, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + Set + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + + + + 268 + {{17, 431}, {244, 17}} + + + + _NS:1505 + YES + + 68288064 + 272630784 + Table Column Value Binding + + _NS:1505 + + + + + + + + 268 + {{478, 431}, {244, 17}} + + + + _NS:1505 + YES + + 68288064 + 272630784 + Table View Content Binding + + _NS:1505 + + + + + - {663, 442} + {999, 454} + + - {{0, 0}, {1440, 878}} - {1.79769e+308, 1.79769e+308} + {{0, 0}, {1680, 1028}} + {10000000000000, 10000000000000} + YES AppController @@ -1406,494 +748,6 @@ YES - - - performMiniaturize: - - - - 37 - - - - arrangeInFront: - - - - 39 - - - - print: - - - - 86 - - - - runPageLayout: - - - - 87 - - - - clearRecentDocuments: - - - - 127 - - - - orderFrontStandardAboutPanel: - - - - 142 - - - - 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 - - - - hide: - - - - 367 - - - - hideOtherApplications: - - - - 368 - - - - unhideAllApplications: - - - - 370 - - - - newDocument: - - - - 373 - - - - openDocument: - - - - 374 - - - - raiseBaseline: - - - - 426 - - - - lowerBaseline: - - - - 427 - - - - copyFont: - - - - 428 - - - - subscript: - - - - 429 - - - - superscript: - - - - 430 - - - - tightenKerning: - - - - 431 - - - - underline: - - - - 432 - - - - orderFrontColorPanel: - - - - 433 - - - - useAllLigatures: - - - - 434 - - - - loosenKerning: - - - - 435 - - - - pasteFont: - - - - 436 - - - - unscript: - - - - 437 - - - - useStandardKerning: - - - - 438 - - - - useStandardLigatures: - - - - 439 - - - - turnOffLigatures: - - - - 440 - - - - turnOffKerning: - - - - 441 - - - - alignLeft: - - - - 442 - - - - alignJustified: - - - - 443 - - - - copyRuler: - - - - 444 - - - - alignCenter: - - - - 445 - - - - toggleRuler: - - - - 446 - - - - alignRight: - - - - 447 - - - - pasteRuler: - - - - 448 - - - - terminate: - - - - 449 - delegate @@ -1910,6 +764,70 @@ 459 + + + arrayController + + + + 486 + + + + from + + + + 496 + + + + to + + + + 497 + + + + KeyPathPopup + + + + 535 + + + + locationField + + + + 536 + + + + lengthField + + + + 537 + + + + updateOrReloadContent: + + + + 551 + + + + updateOrReloadContent: + + + + 552 + value: arrangedObjects.colOne @@ -1921,14 +839,10 @@ value: arrangedObjects.colOne value arrangedObjects.colOne - - NSValidatesImmediately - - 2 - 484 + 511 @@ -1941,22 +855,10 @@ value: arrangedObjects.colTwo value arrangedObjects.colTwo - - NSValidatesImmediately - - 2 - 485 - - - - arrayController - - - - 486 + 514 @@ -1976,27 +878,35 @@ - test: - - + takeIntegerValueFrom: + + - 491 + 529 - - from - - + + takeIntegerValueFrom: + + - 496 + 530 - - to - - + + content: arrangedObjects + + + + + + content: arrangedObjects + content + arrangedObjects + 2 + - 497 + 509 @@ -2028,548 +938,6 @@ Application - - 29 - - - YES - - - - - - - - - - MainMenu - - - 19 - - - YES - - - - - - 56 - - - YES - - - - - - 103 - - - YES - - - - 1 - - - 217 - - - YES - - - - - - 83 - - - YES - - - - - - 81 - - - YES - - - - - - - - - - - - - - - - 75 - - - 3 - - - 80 - - - 8 - - - 78 - - - 6 - - - 72 - - - - - 82 - - - 9 - - - 124 - - - YES - - - - - - 77 - - - 5 - - - 73 - - - 1 - - - 79 - - - 7 - - - 112 - - - 10 - - - 74 - - - 2 - - - 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 - - - - 2 - - - 111 - - - - - 57 - - - YES - - - - - - - - - - - - - - - - 58 - - - - - 134 - - - - - 150 - - - - - 136 - - - 1111 - - - 144 - - - - - 129 - - - 121 - - - 143 - - - - - 236 - - - - - 131 - - - YES - - - - - - 149 - - - - - 145 - - - - - 130 - - - - - 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 @@ -2584,407 +952,32 @@ YES - + - + + + + + + + + + + - - 375 - - - YES - - - - - - 376 - - - YES - - - - - - - 377 - - - YES - - - - - - 378 - - - YES - - - - - - 379 - - - YES - - - - - - - - - - - - - 380 - - - - - 381 - - - - - 382 - - - - - 383 - - - - - 384 - - - - - 385 - - - - - 386 - - - - - 387 - - - - - 388 - - - YES - - - - - - - - - - - - - - - - - - - - - 389 - - - - - 390 - - - - - 391 - - - - - 392 - - - - - 393 - - - - - 394 - - - - - 395 - - - - - 396 - - - - - 397 - - - YES - - - - - - 398 - - - YES - - - - - - 399 - - - YES - - - - - - 400 - - - - - 401 - - - - - 402 - - - - - 403 - - - - - 404 - - - - - 405 - - - YES - - - - - - - - - - 406 - - - - - 407 - - - - - 408 - - - - - 409 - - - - - 410 - - - - - 411 - - - YES - - - - - - - - 412 - - - - - 413 - - - - - 414 - - - - - 415 - - - YES - - - - - - - - - 416 - - - - - 417 - - - - - 418 - - - - - 419 - - - 450 - - 460 - - - YES - - - - - - - - - 461 - - - - - 462 - - - - - 463 - - - YES - - - - - - - 464 - - - - - 465 - - - YES - - - - - - 466 - - - YES - - - - - - 467 - - - - - 468 - - - 473 - - 489 - - - YES - - - - - - 490 - - - 492 @@ -3013,196 +1006,300 @@ + + 500 + + + YES + + + + + + + + + 501 + + + + + 502 + + + YES + + + + + + + 503 + + + + + 504 + + + + + 505 + + + YES + + + + + + 506 + + + YES + + + + + + 507 + + + + + 508 + + + + + 515 + + + YES + + + + + + 516 + + + + + 517 + + + YES + + + + + + 518 + + + YES + + + + + + 519 + + + YES + + + + + + + 520 + + + + + 521 + + + + + 523 + + + YES + + + + + + 524 + + + + + 525 + + + YES + + + + + + 526 + + + + + 527 + + + YES + + + + + + 528 + + + + + 531 + + + YES + + + + + + 532 + + + + + 533 + + + YES + + + + + + 534 + + + + + 460 + + + YES + + + + + + + + + 464 + + + + + 463 + + + YES + + + + + + + 466 + + + YES + + + + + + 467 + + + + + 465 + + + YES + + + + + + 468 + + + + + 462 + + + + + 461 + + + + + 553 + + + YES + + + + + + 554 + + + + + 555 + + + YES + + + + + + 556 + + + YES YES + -1.IBPluginDependency + -2.IBPluginDependency -3.IBPluginDependency - 103.IBPluginDependency - 103.ImportedFromIB2 - 106.IBPluginDependency - 106.ImportedFromIB2 - 106.editorWindowContentRectSynchronizationRect - 111.IBPluginDependency - 111.ImportedFromIB2 - 112.IBPluginDependency - 112.ImportedFromIB2 - 124.IBPluginDependency - 124.ImportedFromIB2 - 125.IBPluginDependency - 125.ImportedFromIB2 - 125.editorWindowContentRectSynchronizationRect - 126.IBPluginDependency - 126.ImportedFromIB2 - 129.IBPluginDependency - 129.ImportedFromIB2 - 130.IBPluginDependency - 130.ImportedFromIB2 - 130.editorWindowContentRectSynchronizationRect - 131.IBPluginDependency - 131.ImportedFromIB2 - 134.IBPluginDependency - 134.ImportedFromIB2 - 136.IBPluginDependency - 136.ImportedFromIB2 - 143.IBPluginDependency - 143.ImportedFromIB2 - 144.IBPluginDependency - 144.ImportedFromIB2 - 145.IBPluginDependency - 145.ImportedFromIB2 - 149.IBPluginDependency - 149.ImportedFromIB2 - 150.IBPluginDependency - 150.ImportedFromIB2 - 19.IBPluginDependency - 19.ImportedFromIB2 - 195.IBPluginDependency - 195.ImportedFromIB2 - 196.IBPluginDependency - 196.ImportedFromIB2 - 197.IBPluginDependency - 197.ImportedFromIB2 - 198.IBPluginDependency - 198.ImportedFromIB2 - 199.IBPluginDependency - 199.ImportedFromIB2 - 200.IBPluginDependency - 200.ImportedFromIB2 - 200.editorWindowContentRectSynchronizationRect - 201.IBPluginDependency - 201.ImportedFromIB2 - 202.IBPluginDependency - 202.ImportedFromIB2 - 203.IBPluginDependency - 203.ImportedFromIB2 - 204.IBPluginDependency - 204.ImportedFromIB2 - 205.IBPluginDependency - 205.ImportedFromIB2 - 205.editorWindowContentRectSynchronizationRect - 206.IBPluginDependency - 206.ImportedFromIB2 - 207.IBPluginDependency - 207.ImportedFromIB2 - 208.IBPluginDependency - 208.ImportedFromIB2 - 209.IBPluginDependency - 209.ImportedFromIB2 - 210.IBPluginDependency - 210.ImportedFromIB2 - 211.IBPluginDependency - 211.ImportedFromIB2 - 212.IBPluginDependency - 212.ImportedFromIB2 - 212.editorWindowContentRectSynchronizationRect - 213.IBPluginDependency - 213.ImportedFromIB2 - 214.IBPluginDependency - 214.ImportedFromIB2 - 215.IBPluginDependency - 215.ImportedFromIB2 - 216.IBPluginDependency - 216.ImportedFromIB2 - 217.IBPluginDependency - 217.ImportedFromIB2 - 218.IBPluginDependency - 218.ImportedFromIB2 - 219.IBPluginDependency - 219.ImportedFromIB2 - 220.IBPluginDependency - 220.ImportedFromIB2 - 220.editorWindowContentRectSynchronizationRect - 221.IBPluginDependency - 221.ImportedFromIB2 - 23.IBPluginDependency - 23.ImportedFromIB2 - 236.IBPluginDependency - 236.ImportedFromIB2 - 239.IBPluginDependency - 239.ImportedFromIB2 - 24.IBPluginDependency - 24.ImportedFromIB2 - 24.editorWindowContentRectSynchronizationRect - 29.IBEditorWindowLastContentRect - 29.IBPluginDependency - 29.ImportedFromIB2 - 29.WindowOrigin - 29.editorWindowContentRectSynchronizationRect - 295.IBPluginDependency - 296.IBPluginDependency - 296.editorWindowContentRectSynchronizationRect - 297.IBPluginDependency - 298.IBPluginDependency - 346.IBPluginDependency - 346.ImportedFromIB2 - 348.IBPluginDependency - 348.ImportedFromIB2 - 349.IBPluginDependency - 349.ImportedFromIB2 - 349.editorWindowContentRectSynchronizationRect - 350.IBPluginDependency - 350.ImportedFromIB2 - 351.IBPluginDependency - 351.ImportedFromIB2 - 354.IBPluginDependency - 354.ImportedFromIB2 - 371.IBEditorWindowLastContentRect 371.IBPluginDependency 371.IBWindowTemplateEditedContentRect 371.NSWindowTemplate.visibleAtLaunch - 371.editorWindowContentRectSynchronizationRect - 371.windowTemplate.maxSize 372.IBPluginDependency - 375.IBPluginDependency - 376.IBEditorWindowLastContentRect - 376.IBPluginDependency - 377.IBPluginDependency - 378.IBPluginDependency - 379.IBPluginDependency - 380.IBPluginDependency - 381.IBPluginDependency - 382.IBPluginDependency - 383.IBPluginDependency - 384.IBPluginDependency - 385.IBPluginDependency - 386.IBPluginDependency - 387.IBPluginDependency - 388.IBEditorWindowLastContentRect - 388.IBPluginDependency - 389.IBPluginDependency - 390.IBPluginDependency - 391.IBPluginDependency - 392.IBPluginDependency - 393.IBPluginDependency - 394.IBPluginDependency - 395.IBPluginDependency - 396.IBPluginDependency - 397.IBPluginDependency - 398.IBPluginDependency - 399.IBPluginDependency - 400.IBPluginDependency - 401.IBPluginDependency - 402.IBPluginDependency - 403.IBPluginDependency - 404.IBPluginDependency - 405.IBPluginDependency - 406.IBPluginDependency - 407.IBPluginDependency - 408.IBPluginDependency - 409.IBPluginDependency - 410.IBPluginDependency - 411.IBPluginDependency - 412.IBPluginDependency - 413.IBPluginDependency - 414.IBPluginDependency - 415.IBPluginDependency - 416.IBPluginDependency - 417.IBPluginDependency - 418.IBPluginDependency - 419.IBPluginDependency + 450.IBPluginDependency 460.IBPluginDependency 461.IBPluginDependency 462.IBPluginDependency @@ -3213,192 +1310,51 @@ 467.IBPluginDependency 468.IBPluginDependency 473.IBPluginDependency - 489.IBPluginDependency - 489.IBViewBoundsToFrameTransform - 490.IBPluginDependency 492.IBPluginDependency - 492.IBViewBoundsToFrameTransform 493.IBPluginDependency 494.IBPluginDependency - 494.IBViewBoundsToFrameTransform 495.IBPluginDependency - 5.IBPluginDependency - 5.ImportedFromIB2 - 56.IBPluginDependency - 56.ImportedFromIB2 - 57.IBEditorWindowLastContentRect - 57.IBPluginDependency - 57.ImportedFromIB2 - 57.editorWindowContentRectSynchronizationRect - 58.IBPluginDependency - 58.ImportedFromIB2 - 72.IBPluginDependency - 72.ImportedFromIB2 - 73.IBPluginDependency - 73.ImportedFromIB2 - 74.IBPluginDependency - 74.ImportedFromIB2 - 75.IBPluginDependency - 75.ImportedFromIB2 - 77.IBPluginDependency - 77.ImportedFromIB2 - 78.IBPluginDependency - 78.ImportedFromIB2 - 79.IBPluginDependency - 79.ImportedFromIB2 - 80.IBPluginDependency - 80.ImportedFromIB2 - 81.IBPluginDependency - 81.ImportedFromIB2 - 81.editorWindowContentRectSynchronizationRect - 82.IBPluginDependency - 82.ImportedFromIB2 - 83.IBPluginDependency - 83.ImportedFromIB2 - 92.IBPluginDependency - 92.ImportedFromIB2 + 500.IBPluginDependency + 501.IBPluginDependency + 502.IBPluginDependency + 503.IBPluginDependency + 504.IBPluginDependency + 505.IBPluginDependency + 506.IBPluginDependency + 507.IBPluginDependency + 508.IBPluginDependency + 515.IBPluginDependency + 516.IBPluginDependency + 517.IBPluginDependency + 518.IBPluginDependency + 519.IBPluginDependency + 520.IBPluginDependency + 521.IBPluginDependency + 523.IBPluginDependency + 524.IBPluginDependency + 525.IBPluginDependency + 526.IBPluginDependency + 527.IBPluginDependency + 528.IBPluginDependency + 531.IBPluginDependency + 532.IBPluginDependency + 533.IBPluginDependency + 534.IBPluginDependency + 553.IBPluginDependency + 554.IBPluginDependency + 555.IBPluginDependency + 556.IBPluginDependency - + YES com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{596, 852}, {216, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{522, 812}, {146, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{436, 809}, {64, 6}} - 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 - - {{608, 612}, {275, 83}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{187, 434}, {243, 243}} - 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 - - {{608, 612}, {167, 43}} - 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 - - {{608, 612}, {241, 103}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{525, 802}, {197, 73}} - {{143, 285}, {478, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - - {74, 862} - {{6, 978}, {478, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{475, 832}, {234, 43}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{608, 612}, {215, 63}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{312, 306}, {663, 442}} com.apple.InterfaceBuilder.CocoaPlugin {{312, 306}, {663, 442}} - {{33, 99}, {480, 360}} - {3.40282e+38, 3.40282e+38} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{437, 242}, {86, 43}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3411,7 +1367,6 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{523, 2}, {178, 283}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3444,85 +1399,21 @@ 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 - - P4AAAL+AAABDuIAAwkQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABEDIAAwkQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABEGMAAwkQAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{155, 102}, {245, 183}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{23, 794}, {245, 183}} - 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 - - {{145, 474}, {199, 203}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - YES - - YES - + YES - - YES - + - 498 + 556 @@ -3531,13 +1422,13 @@ AppController NSObject - test: + updateOrReloadContent: id - test: + updateOrReloadContent: - test: + updateOrReloadContent: id @@ -3545,16 +1436,14 @@ YES YES - arrayController - from - theWindow - to + KeyPathPopup + lengthField + locationField - + YES - NSArrayController + NSPopUpButton NSTextField - NSWindow NSTextField @@ -3562,34 +1451,29 @@ YES YES - arrayController - from - theWindow - to + KeyPathPopup + lengthField + locationField - + YES - arrayController - NSArrayController + KeyPathPopup + NSPopUpButton - from + lengthField NSTextField - theWindow - NSWindow - - - to + locationField NSTextField - IBUserSource - + IBProjectSource + ./Classes/AppController.h @@ -3605,7 +1489,6 @@ YES - ../adsfsdf.xcodeproj 3 YES @@ -3614,10 +1497,10 @@ NSMenuCheckmark NSMenuMixedState - + YES - {9, 8} - {7, 2} + {11, 11} + {10, 3} From 2f875615a2ee7e3184201626bf6f0da8f435f35b Mon Sep 17 00:00:00 2001 From: Martin Carlberg Date: Fri, 25 May 2012 11:14:43 +0200 Subject: [PATCH 003/109] Removed hardcoded width in disclosure button --- AppKit/CPOutlineView.j | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AppKit/CPOutlineView.j b/AppKit/CPOutlineView.j index 9bbcb6f9f..ffddcfab1 100644 --- a/AppKit/CPOutlineView.j +++ b/AppKit/CPOutlineView.j @@ -711,7 +711,8 @@ var CPOutlineViewCoalesceSelectionNotificationStateOff = 0, return _CGRectMakeZero(); var dataViewFrame = [self _frameOfOutlineDataViewAtRow:aRow], - frame = _CGRectMake(_CGRectGetMinX(dataViewFrame) - 10, _CGRectGetMinY(dataViewFrame), 10, _CGRectGetHeight(dataViewFrame)); + disclosureWidth = _CGRectGetWidth([_disclosureControlPrototype frame]), + frame = _CGRectMake(_CGRectGetMinX(dataViewFrame) - disclosureWidth, _CGRectGetMinY(dataViewFrame), disclosureWidth, _CGRectGetHeight(dataViewFrame)); return frame; } From 539a8f0ca96e94a167625a48f43b44b6785db181 Mon Sep 17 00:00:00 2001 From: cacaodev Date: Fri, 22 Jun 2012 21:59:41 +0200 Subject: [PATCH 004/109] An OJTest for the table view's content binding --- Tests/AppKit/CPTableViewTest.j | 44 ++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/Tests/AppKit/CPTableViewTest.j b/Tests/AppKit/CPTableViewTest.j index 48edb6f4e..c648d3bec 100644 --- a/Tests/AppKit/CPTableViewTest.j +++ b/Tests/AppKit/CPTableViewTest.j @@ -217,6 +217,35 @@ [self assert:2 * visibleRows equals:[allViews count] message:"only as many data views as necessary should be present (2)"]; } +- (void)testContentBinding +{ + var theWindow = [[CPWindow alloc] initWithContentRect:CGRectMake(0, 0, 200, 150) + styleMask:CPWindowNotSizable], + contentBindingTable = [[CPTableView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)], + tableColumn = [[CPTableColumn alloc] initWithIdentifier:@"A"], + delegate = [ContentBindingTableDelegate new]; + + [contentBindingTable addTableColumn:tableColumn]; + [delegate setTester:self]; + [contentBindingTable setDelegate:delegate]; + + [delegate setTableEntries:[[@"A1", @"B1"], [@"A2", @"B2"], [@"A3", @"B3"]]]; + [contentBindingTable bind:@"content" toObject:delegate withKeyPath:@"tableEntries" options:nil]; + + // The following should also work: + //var ac = [[CPArrayController alloc] initWithContent:[delegate tableEntries]]; + //[contentBindingTable bind:@"content" toObject:ac withKeyPath:@"arrangedObjects" options:nil]; + + [[theWindow contentView] addSubview:contentBindingTable]; + [theWindow makeFirstResponder:contentBindingTable]; + + [[CPRunLoop currentRunLoop] limitDateForMode:CPDefaultRunLoopMode]; + + // Set the model again with different values + [delegate setTableEntries:[[@"C1", @"D1"], [@"C2", @"D2"], [@"C3", @"D3"]]]; + [contentBindingTable reloadData]; +} + @end @implementation TestDataSource : CPObject @@ -252,6 +281,21 @@ @end +@implementation ContentBindingTableDelegate : CPObject +{ + // For the purpose of this test, the delegate contains the model (!). + CPArray tableEntries @accessors; + CPTableViewTest tester @accessors; +} + +- (void)tableView:(CPTableView)aTableView willDisplayView:(CPView)aView forTableColumn:(CPTableColumn)tableColumn row:(int)row +{ + // Make sure each view contains the full row in its objectValue + [tester assert:tableEntries[row] equals:[aView objectValue]]; +} + +@end + @implementation CustomTextView0 : CPTextField @end From 3f65153d4fbcb74400c744a33a2477dbafe17d1e Mon Sep 17 00:00:00 2001 From: Malte Tancred Date: Sat, 23 Jun 2012 22:46:25 +0200 Subject: [PATCH 005/109] Corrected the format specifier for the flags variable. --- Tools/XcodeCapp/FSEventCallback.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tools/XcodeCapp/FSEventCallback.m b/Tools/XcodeCapp/FSEventCallback.m index 9df1fd56a..fcf4baef5 100644 --- a/Tools/XcodeCapp/FSEventCallback.m +++ b/Tools/XcodeCapp/FSEventCallback.m @@ -79,7 +79,7 @@ void fsevents_callback(ConstFSEventStreamRef streamRef, flags & kFSEventStreamEventFlagItemXattrMod || flags & kFSEventStreamEventFlagItemChangeOwner)) { - DLog(@"event type: %@ for path %@", flags, path); + DLog(@"event type: %d for path %@", flags, path); [xcc handleFileModification:path notify:YES]; } From db47d8fb85de14307038cb2f01cb928f5e057881 Mon Sep 17 00:00:00 2001 From: ggsato Date: Thu, 28 Jun 2012 12:01:37 +0900 Subject: [PATCH 006/109] fixed needsUntitled evaluation --- AppKit/CPApplication.j | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AppKit/CPApplication.j b/AppKit/CPApplication.j index 15ad65916..91dd37b80 100644 --- a/AppKit/CPApplication.j +++ b/AppKit/CPApplication.j @@ -254,7 +254,7 @@ CPRunContinuesResponse = -1002; count = [URLStrings count]; for (; index < count; ++index) - needsUntitled = ![self _openURL:[CPURL URLWithString:URLStrings[index]]] || needsUntitled; + needsUntitled = ![self _openURL:[CPURL URLWithString:URLStrings[index]]] && needsUntitled; if (needsUntitled && [_delegate respondsToSelector:@selector(applicationShouldOpenUntitledFile:)]) needsUntitled = [_delegate applicationShouldOpenUntitledFile:self]; From 606f3dfe6b7495c36cd8e0663974dd03bcf73392 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Thu, 28 Jun 2012 19:33:48 -0700 Subject: [PATCH 007/109] Replaced Java-based image utility with Cocoa command line app, cleaned up some fontinfo stuff --- CommonJS/lib/cappuccino/image-utility.js | 140 ----------- CommonJS/lib/cappuccino/imagesize.j | 12 + Tools/Jakefile | 6 +- Tools/fontinfo/Jakefile | 2 +- .../fontinfo.xcodeproj/project.pbxproj | 8 +- Tools/fontinfo/fontinfo_Prefix.pch | 8 - Tools/imagesize/.gitignore | 1 + Tools/imagesize/Jakefile | 40 ++++ Tools/imagesize/README | 30 +++ Tools/imagesize/imagesize.m | 71 ++++++ .../imagesize.xcodeproj/project.pbxproj | 223 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + Tools/nib2cib/NSCustomResource.j | 5 +- 13 files changed, 394 insertions(+), 159 deletions(-) delete mode 100644 CommonJS/lib/cappuccino/image-utility.js create mode 100644 CommonJS/lib/cappuccino/imagesize.j delete mode 100644 Tools/fontinfo/fontinfo_Prefix.pch create mode 100644 Tools/imagesize/.gitignore create mode 100644 Tools/imagesize/Jakefile create mode 100644 Tools/imagesize/README create mode 100644 Tools/imagesize/imagesize.m create mode 100644 Tools/imagesize/imagesize.xcodeproj/project.pbxproj create mode 100644 Tools/imagesize/imagesize.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/CommonJS/lib/cappuccino/image-utility.js b/CommonJS/lib/cappuccino/image-utility.js deleted file mode 100644 index fabd6fdf9..000000000 --- a/CommonJS/lib/cappuccino/image-utility.js +++ /dev/null @@ -1,140 +0,0 @@ - -var OS = require("os"); -var FILE = require("file"); -var ByteString = require("binary").ByteString; - -var javaImageSize = function (aFilePath) -{ - var imageStream = javax.imageio.ImageIO.createImageInputStream(new Packages.java.io.File(aFilePath).getCanonicalFile()), - readers = javax.imageio.ImageIO.getImageReaders(imageStream), - reader = null; - - if(readers.hasNext()) - reader = readers.next(); - - else - { - imageStream.close(); - //can't read image format... what do you want to do about it, - //throw an exception, return ? - } - - reader.setInput(imageStream, true, true); - - // Now we know the size (yay!) - var size = {width:reader.getWidth(0), height:reader.getHeight(0)}; - - reader.dispose(); - imageStream.close(); - - return size; -} - -var server = null; - -var serverImageSize = function (aFilePath) -{ - if (!server) - { - var cmd = "NARWHAL_ENGINE_HOME='' NARWHAL_ENGINE=rhino narwhal "+OS.enquote(module.path); - server = OS.popen(cmd, { charset : "UTF-8" }); - } - - var request = aFilePath.toByteString("UTF-8"); - sendLengthPrefixMessage(server.stdin.raw, request); - - var response = receiveLengthPrefixMessage(server.stdout.raw); - return JSON.parse(response.decodeToString("UTF-8")); -} - -if (system.engine == "rhino") - exports.sizeOfImageAtPath = javaImageSize; -else - exports.sizeOfImageAtPath = serverImageSize; - -// TODO: move these methods somewhere else? - -var bytesToNumberLE = function(bytes) { - var acc = 0; - for (var i = 0; i < bytes.length; i++) - acc += bytes.get(i) << (8*i); - return acc; -} - -var bytesToNumberBE = function(bytes) { - var acc = 0; - for (var i = 0; i < bytes.length; i++) - acc = (acc << 8) + bytes.get(i); - return acc; -} - -var numberToBytesLE = function(number, length) { - var bytes = []; - for (var i = 0; i < length; i++) - bytes[i] = (number >> (8*i)) & 0xFF; - return new ByteString(bytes); -} - -var numberToBytesBE = function(number, length) { - var bytes = []; - for (var i = 0; i < length; i++) - bytes[length-i-1] = (number >> (8*i)) & 0xFF; - return new ByteString(bytes); -} - -var lengthPrefixServer = function(stream, callback, prefixLength) { - var bytes; - do { - bytes = receiveLengthPrefixMessage(stream, prefixLength); - callback(bytes); - } while (bytes); -} - -var receiveLengthPrefixMessage = function(stream, prefixLength) { - var prefixBytes = stream.read(prefixLength || 4); - var length = bytesToNumberBE(prefixBytes); - var bytes = stream.read(length); - return bytes; -} - -var sendLengthPrefixMessage = function(stream, bytes, prefixLength) { - var lengthBytes = numberToBytesBE(bytes.length, prefixLength || 4); - stream.write(lengthBytes).write(bytes).flush(); -} - -if (module == require.main) -{ - var bytes; - while (bytes = receiveLengthPrefixMessage(require("system").stdin.raw)) - { - var fileName = bytes.decodeToString("UTF-8"); - var size = javaImageSize(fileName); - - sendLengthPrefixMessage(require("system").stdout.raw, JSON.stringify(size).toByteString("UTF-8")); - } -} - -/* - //ASYNCHRONOUS, so not useful to us - -function jscImageSize(aFilePath) -{ - var MIME_TYPES = { - ".png" : "image/png", - ".jpg" : "image/jpeg", - ".jpeg" : "image/jpeg", - ".gif" : "image/gif", - ".tif" : "image/tiff", - ".tiff" : "image/tiff" - }, - FILE = require("file"); - - var image = new Image(); - - image.src = "data:" + MIME_TYPES[FILE.extension(aFilePath)] + ";base64," + require("base64").encode(FILE.read(aFilePath, { mode : 'b'})); - - return CGSizeMake(image.width, image.height); -} - -*/ - diff --git a/CommonJS/lib/cappuccino/imagesize.j b/CommonJS/lib/cappuccino/imagesize.j new file mode 100644 index 000000000..c6e534bfa --- /dev/null +++ b/CommonJS/lib/cappuccino/imagesize.j @@ -0,0 +1,12 @@ + +var OS = require("os"); + +exports.imagesize = function(path) +{ + var p = OS.popen(["imagesize", "-n", path]); + + if (p.wait() === 0) + return JSON.parse(p.stdout.read()); + else + return null; +}; diff --git a/Tools/Jakefile b/Tools/Jakefile index a32dfbd3b..40a8a1fb9 100644 --- a/Tools/Jakefile +++ b/Tools/Jakefile @@ -1,7 +1,7 @@ require("../common.jake"); -// nib2cib uses fontinfo and capp uses nib2cib -subtasks(["fontinfo", "nib2cib", "capp", "dump_theme", "NativeHost", "XcodeCapp"], ["build"/*, "clean", "clobber"*/]); +// nib2cib uses fontinfo and imagesize and capp uses nib2cib +subtasks(["fontinfo", "imagesize", "nib2cib", "capp", "dump_theme", "NativeHost", "XcodeCapp"], ["build"/*, "clean", "clobber"*/]); -subtasks(["fontinfo"], ["clean", "clobber"]); +subtasks(["fontinfo", "imagesize"], ["clean", "clobber"]); diff --git a/Tools/fontinfo/Jakefile b/Tools/fontinfo/Jakefile index 38d02b91c..04d2a5a97 100644 --- a/Tools/fontinfo/Jakefile +++ b/Tools/fontinfo/Jakefile @@ -8,7 +8,7 @@ task ("build", function() { if (executableExists("xcodebuild")) { - var args = "-alltargets -configuration " + $CONFIGURATION; + var args = "-alltargets -configuration Release"; if (xcodebuildHasTenPointFiveSDK()) args = "-sdk macosx10.5 " + args; diff --git a/Tools/fontinfo/fontinfo.xcodeproj/project.pbxproj b/Tools/fontinfo/fontinfo.xcodeproj/project.pbxproj index 9e523b2ac..73829f007 100644 --- a/Tools/fontinfo/fontinfo.xcodeproj/project.pbxproj +++ b/Tools/fontinfo/fontinfo.xcodeproj/project.pbxproj @@ -14,7 +14,6 @@ /* Begin PBXFileReference section */ 08FB7796FE84155DC02AAC07 /* fontinfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = fontinfo.m; sourceTree = ""; }; 08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 32A70AAB03705E1F00C91783 /* fontinfo_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fontinfo_Prefix.pch; sourceTree = ""; }; E11C89CC1277CECE0012609B /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; E18587D81279B93100FB6A47 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = ""; }; E1C392BB133D513B0092D7CA /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; @@ -47,7 +46,6 @@ 08FB7795FE84155DC02AAC07 /* Source */ = { isa = PBXGroup; children = ( - 32A70AAB03705E1F00C91783 /* fontinfo_Prefix.pch */, 08FB7796FE84155DC02AAC07 /* fontinfo.m */, ); name = Source; @@ -142,8 +140,8 @@ CONFIGURATION_TEMP_DIR = "$(CAPP_BUILD)"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = fontinfo_Prefix.pch; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; OBJROOT = "$(CAPP_BUILD)"; @@ -171,6 +169,8 @@ DEPLOYMENT_POSTPROCESSING = NO; DSTROOT = "/tmp/$(PROJECT_NAME).dst"; GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; INSTALL_PATH = ""; diff --git a/Tools/fontinfo/fontinfo_Prefix.pch b/Tools/fontinfo/fontinfo_Prefix.pch deleted file mode 100644 index 8a571c50e..000000000 --- a/Tools/fontinfo/fontinfo_Prefix.pch +++ /dev/null @@ -1,8 +0,0 @@ -// -// Prefix header for all source files of the 'font_info' target in the 'font_info' project. -// - -#ifdef __OBJC__ - #import - #import -#endif diff --git a/Tools/imagesize/.gitignore b/Tools/imagesize/.gitignore new file mode 100644 index 000000000..567609b12 --- /dev/null +++ b/Tools/imagesize/.gitignore @@ -0,0 +1 @@ +build/ diff --git a/Tools/imagesize/Jakefile b/Tools/imagesize/Jakefile new file mode 100644 index 000000000..e4e7d721d --- /dev/null +++ b/Tools/imagesize/Jakefile @@ -0,0 +1,40 @@ + +require ("../../common.jake"); + +var OS = require("os"), + task = require("jake").task; + +task ("build", function() +{ + if (executableExists("xcodebuild")) + { + var args = "-alltargets -configuration Release"; + + if (xcodebuildHasTenPointFiveSDK()) + args = "-sdk macosx10.5 " + args; + + else + args = "-sdk macosx " + args; + + if (OS.system("xcodebuild " + args)) + OS.exit(1); + } + else + { + print("Building imagesize requires Xcode."); + } +}); + +task ("clean", function() +{ + if (executableExists("xcodebuild") && OS.system("xcodebuild clean")) + OS.exit(1); +}); + +task ("clobber", function() +{ + if (executableExists("xcodebuild") && OS.system("xcodebuild clean")) + OS.exit(1); +}); + +task ("default", ["build"]); diff --git a/Tools/imagesize/README b/Tools/imagesize/README new file mode 100644 index 000000000..38695f664 --- /dev/null +++ b/Tools/imagesize/README @@ -0,0 +1,30 @@ +NAME + imagesize -- retrieve size information for an image + +SYNOPSIS + imagesize [-n] path + +DESCRIPTION + imagesize is a tiny utility that returns the size of an image. + The path may be either an absolute path or a path relative to the current directory. + + If the -n option is passed, the output will not be terminated with a linefeed. + +EXIT STATUS + imagesize exits with a return status of zero if there are no errors. + imagesize exits with a return status of 1 if any arguments are invalid, or a status of 2 if the image + cannot be found or the file at the given path is not a valid image. + +OUTPUT + imagesize outputs a stringified JSON object with the following structure: + + { + width:, + height: + } + + If -n is not passed, the JSON is terminated with a linefeed. The fields of the object are as follows: + +AUTHORS + Aparajita Fishman, Victory-Heart Productions + http://www.aparajita.com diff --git a/Tools/imagesize/imagesize.m b/Tools/imagesize/imagesize.m new file mode 100644 index 000000000..fed8edb9d --- /dev/null +++ b/Tools/imagesize/imagesize.m @@ -0,0 +1,71 @@ +/* + imagesize + + Copyright 2012 Aparajita Fishman +*/ + +#import +#import + + +enum { + kErrInvalidArguments = 1, + kErrInvalidPath +}; + + +int getImageSize(const char* utf8Path, BOOL appendLineFeed) +{ + NSString* path = [NSString stringWithUTF8String:utf8Path]; + NSImage* image = [[NSImage alloc] initWithContentsOfFile:path]; + + if (!image) + return kErrInvalidPath; + + NSSize size = [image size]; + + NSMutableString* result = [NSMutableString stringWithFormat:@"{\"width\":%g, \"height\":%g}", size.width, size.height]; + + if (appendLineFeed) + [result appendString:@"\n"]; + + printf("%s", [result UTF8String]); + return 0; +} + + +int main(int argc, const char* argv[]) +{ + NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; + int exitCode = 0; + + // usage: imagesize [-n] path + + if (argc >= 2) + { + BOOL appendLineFeed = YES; + int nextArgument = 1; + + if (argv[1][0] == '-') + { + if (argv[1][1] == 'n') + { + appendLineFeed = NO; + ++nextArgument; + } + else + exitCode = kErrInvalidArguments; + } + + if (exitCode == 0) + exitCode = getImageSize(argv[nextArgument], appendLineFeed); + } + else + { + exitCode = kErrInvalidArguments; + } + + [pool drain]; + return exitCode; +} + diff --git a/Tools/imagesize/imagesize.xcodeproj/project.pbxproj b/Tools/imagesize/imagesize.xcodeproj/project.pbxproj new file mode 100644 index 000000000..a97ddf15f --- /dev/null +++ b/Tools/imagesize/imagesize.xcodeproj/project.pbxproj @@ -0,0 +1,223 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + E14061B7159D449000D99541 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E14061B6159D449000D99541 /* AppKit.framework */; }; + E1D3CFAA12AFFB7F00CBB79E /* imagesize.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* imagesize.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 08FB7796FE84155DC02AAC07 /* imagesize.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = imagesize.m; sourceTree = ""; }; + 08FB779EFE84155DC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + E14061B6159D449000D99541 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; + E18587D81279B93100FB6A47 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = ""; }; + E1E20D0B12B09283005A6A64 /* imagesize */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = imagesize; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + E1D3CF6912AFEE3800CBB79E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E14061B7159D449000D99541 /* AppKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 08FB7794FE84155DC02AAC07 /* font_info */ = { + isa = PBXGroup; + children = ( + 08FB7795FE84155DC02AAC07 /* Source */, + E18587DD1279B93600FB6A47 /* Documentation */, + 08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */, + 1AB674ADFE9D54B511CA2CBB /* Products */, + ); + name = font_info; + sourceTree = ""; + }; + 08FB7795FE84155DC02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + 08FB7796FE84155DC02AAC07 /* imagesize.m */, + ); + name = Source; + sourceTree = ""; + }; + 08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */ = { + isa = PBXGroup; + children = ( + 08FB779EFE84155DC02AAC07 /* Foundation.framework */, + E14061B6159D449000D99541 /* AppKit.framework */, + ); + name = "External Frameworks and Libraries"; + sourceTree = ""; + }; + 1AB674ADFE9D54B511CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + E1E20D0B12B09283005A6A64 /* imagesize */, + ); + name = Products; + sourceTree = ""; + }; + E18587DD1279B93600FB6A47 /* Documentation */ = { + isa = PBXGroup; + children = ( + E18587D81279B93100FB6A47 /* README */, + ); + name = Documentation; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + E1D3CF6A12AFEE3800CBB79E /* imagesize */ = { + isa = PBXNativeTarget; + buildConfigurationList = E1D3CF6F12AFEE3B00CBB79E /* Build configuration list for PBXNativeTarget "imagesize" */; + buildPhases = ( + E1D3CF6812AFEE3800CBB79E /* Sources */, + E1D3CF6912AFEE3800CBB79E /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = imagesize; + productName = font_info; + productReference = E1E20D0B12B09283005A6A64 /* imagesize */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "imagesize" */; + compatibilityVersion = "Xcode 3.1"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 08FB7794FE84155DC02AAC07 /* font_info */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + E1D3CF6A12AFEE3800CBB79E /* imagesize */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + E1D3CF6812AFEE3800CBB79E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E1D3CFAA12AFFB7F00CBB79E /* imagesize.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 1DEB927908733DD40010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; + CONFIGURATION_TEMP_DIR = "$(CAPP_BUILD)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OBJROOT = "$(CAPP_BUILD)"; + ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + PREBINDING = NO; + PRODUCT_NAME = image_size; + SDKROOT = macosx10.5; + SYMROOT = "$(CAPP_BUILD)/Debug/CommonJS/cappuccino/bin"; + }; + name = Debug; + }; + 1DEB927A08733DD40010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; + CONFIGURATION_TEMP_DIR = "$(CAPP_BUILD)"; + DEPLOYMENT_LOCATION = NO; + DEPLOYMENT_POSTPROCESSING = NO; + DSTROOT = "/tmp/$(PROJECT_NAME).dst"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INSTALL_PATH = ""; + OBJROOT = "$(CAPP_BUILD)"; + ONLY_ACTIVE_ARCH = NO; + PREBINDING = NO; + PRODUCT_NAME = image_size; + SDKROOT = macosx10.5; + SYMROOT = "$(CAPP_BUILD)/Release/CommonJS/cappuccino/bin"; + }; + name = Release; + }; + E1D3CF6D12AFEE3900CBB79E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = imagesize; + }; + name = Debug; + }; + E1D3CF6E12AFEE3900CBB79E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + MACOSX_DEPLOYMENT_TARGET = 10.5; + PRODUCT_NAME = imagesize; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1DEB927808733DD40010E9CD /* Build configuration list for PBXProject "imagesize" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB927908733DD40010E9CD /* Debug */, + 1DEB927A08733DD40010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E1D3CF6F12AFEE3B00CBB79E /* Build configuration list for PBXNativeTarget "imagesize" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E1D3CF6D12AFEE3900CBB79E /* Debug */, + E1D3CF6E12AFEE3900CBB79E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +} diff --git a/Tools/imagesize/imagesize.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Tools/imagesize/imagesize.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..562d5df16 --- /dev/null +++ b/Tools/imagesize/imagesize.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Tools/nib2cib/NSCustomResource.j b/Tools/nib2cib/NSCustomResource.j index 6d716f36b..2c6c1dff2 100644 --- a/Tools/nib2cib/NSCustomResource.j +++ b/Tools/nib2cib/NSCustomResource.j @@ -25,7 +25,8 @@ @import -var FILE = require("file"); +var FILE = require("file"), + imageSize = require("cappuccino/imagesize").imagesize; @implementation _CPCibCustomResource (NSCoding) @@ -73,8 +74,6 @@ var FILE = require("file"); @end -var ImageUtility = require("cappuccino/image-utility"), - imageSize = ImageUtility.sizeOfImageAtPath; @implementation NSCustomResource : _CPCibCustomResource { From 3ba5be1ec650d0f0c824c471dca5f0a77bf78509 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Fri, 29 Jun 2012 11:11:07 -0700 Subject: [PATCH 008/109] nib2cib image fixes - nib2cib will now log the path and size of custom image resources in super verbose mode. - Alternate images for buttons were not being set by nib2cib, that has been fixed. - Fixed the name of the imagesize binary in the Xcode project. --- .../imagesize.xcodeproj/project.pbxproj | 4 ++-- Tools/nib2cib/NSButton.j | 17 +++++++++++++++-- Tools/nib2cib/NSCustomResource.j | 4 +++- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/Tools/imagesize/imagesize.xcodeproj/project.pbxproj b/Tools/imagesize/imagesize.xcodeproj/project.pbxproj index a97ddf15f..8b39c972c 100644 --- a/Tools/imagesize/imagesize.xcodeproj/project.pbxproj +++ b/Tools/imagesize/imagesize.xcodeproj/project.pbxproj @@ -151,7 +151,7 @@ AppKit, ); PREBINDING = NO; - PRODUCT_NAME = image_size; + PRODUCT_NAME = imagesize; SDKROOT = macosx10.5; SYMROOT = "$(CAPP_BUILD)/Debug/CommonJS/cappuccino/bin"; }; @@ -175,7 +175,7 @@ OBJROOT = "$(CAPP_BUILD)"; ONLY_ACTIVE_ARCH = NO; PREBINDING = NO; - PRODUCT_NAME = image_size; + PRODUCT_NAME = imagesize; SDKROOT = macosx10.5; SYMROOT = "$(CAPP_BUILD)/Release/CommonJS/cappuccino/bin"; }; diff --git a/Tools/nib2cib/NSButton.j b/Tools/nib2cib/NSButton.j index da8fc3518..afdc6cfa5 100644 --- a/Tools/nib2cib/NSButton.j +++ b/Tools/nib2cib/NSButton.j @@ -112,6 +112,7 @@ var NSButtonIsBorderedMask = 0x00800000, } _themeClass = [[self class] defaultThemeClass]; + alternateImage = nil; } NIB_CONNECTION_EQUIVALENCY_TABLE[[cell UID]] = self; @@ -122,8 +123,7 @@ var NSButtonIsBorderedMask = 0x00800000, [self setBordered:[cell isBordered]]; _bezelStyle = [cell bezelStyle]; - - // clean up: + // Map Cocoa bezel styles to Cappuccino bezel styles and adjust frame switch (_bezelStyle) { // implemented: @@ -132,13 +132,16 @@ var NSButtonIsBorderedMask = 0x00800000, positionOffsetOriginX = 4; positionOffsetSizeWidth = -12; break; + case CPTexturedRoundedBezelStyle: positionOffsetOriginY = 2; positionOffsetOriginX = -2; positionOffsetSizeWidth = 0; break; + case CPHUDBezelStyle: break; + // approximations: case CPRoundRectBezelStyle: positionOffsetOriginY = -3; @@ -146,11 +149,13 @@ var NSButtonIsBorderedMask = 0x00800000, positionOffsetSizeWidth = 0; _bezelStyle = CPRoundedBezelStyle; break; + case CPSmallSquareBezelStyle: positionOffsetOriginX = -2; positionOffsetSizeWidth = 0; _bezelStyle = CPTexturedRoundedBezelStyle; break; + case CPThickSquareBezelStyle: case CPThickerSquareBezelStyle: case CPRegularSquareBezelStyle: @@ -159,24 +164,28 @@ var NSButtonIsBorderedMask = 0x00800000, positionOffsetSizeWidth = -4; _bezelStyle = CPTexturedRoundedBezelStyle; break; + case CPTexturedSquareBezelStyle: positionOffsetOriginY = 4; positionOffsetOriginX = -1; positionOffsetSizeWidth = -2; _bezelStyle = CPTexturedRoundedBezelStyle; break; + case CPShadowlessSquareBezelStyle: positionOffsetOriginY = 5; positionOffsetOriginX = -2; positionOffsetSizeWidth = 0; _bezelStyle = CPTexturedRoundedBezelStyle; break; + case CPRecessedBezelStyle: positionOffsetOriginY = -3; positionOffsetOriginX = -2; positionOffsetSizeWidth = 0; _bezelStyle = CPHUDBezelStyle; break; + // unsupported case CPRoundedDisclosureBezelStyle: case CPHelpButtonBezelStyle: @@ -185,6 +194,7 @@ var NSButtonIsBorderedMask = 0x00800000, CPLog.warn("NSButton [%s]: unsupported bezel style: %d", _title == null ? "" : '"' + _title + '"', _bezelStyle); _bezelStyle = CPHUDBezelStyle; break; + // error: default: CPLog.warn("NSButton [%s]: unknown bezel style: %d", _title == null ? "" : '"' + _title + '"', _bezelStyle); @@ -211,6 +221,7 @@ var NSButtonIsBorderedMask = 0x00800000, _allowsMixedState = [cell allowsMixedState]; [self setImage:[cell normalImage]]; + [self setAlternateImage:alternateImage]; [self setImagePosition:[cell imagePosition]]; [self setEnabled:[cell isEnabled]]; @@ -298,6 +309,7 @@ var NSButtonIsBorderedMask = 0x00800000, _imagePosition = CPNoImage; _highlightsBy = CPNoCellMask; + if (buttonFlags & NSHighlightsByPushInCellMask) _highlightsBy |= CPPushInCellMask; if (buttonFlags & NSHighlightsByContentsCellMask) @@ -308,6 +320,7 @@ var NSButtonIsBorderedMask = 0x00800000, _highlightsBy |= CPChangeBackgroundCellMask; _showsStateBy = CPNoCellMask; + if (buttonFlags & NSShowsStateByContentsCellMask) _showsStateBy |= CPContentsCellMask; if (buttonFlags & NSShowsStateByChangeGrayCellMask) diff --git a/Tools/nib2cib/NSCustomResource.j b/Tools/nib2cib/NSCustomResource.j index 2c6c1dff2..998a3a121 100644 --- a/Tools/nib2cib/NSCustomResource.j +++ b/Tools/nib2cib/NSCustomResource.j @@ -59,11 +59,13 @@ var FILE = require("file"), if (!resourcePath) CPLog.warn("Resource \"" + _resourceName + "\" not found in the resources path: " + [aCoder resourcesPath]); else - size = imageSize(FILE.canonical(resourcePath)); + size = imageSize(FILE.canonical(resourcePath)) || CGSizeMakeZero(); // Account for the fact that an extension may have been inferred. if (resourcePath && FILE.extension(resourcePath) !== FILE.extension(_resourceName)) _resourceName += FILE.extension(resourcePath); + + CPLog.debug("Image path: %s\nImage size: %dx%d", FILE.canonical(resourcePath), size.width, size.height); } _properties = [CPDictionary dictionaryWithObject:size forKey:@"size"]; From 345a865cc8ef43c962e8797427915a23fcb7e4ba Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Fri, 29 Jun 2012 13:08:51 -0700 Subject: [PATCH 009/109] Post OS X 10.5, Cocoa adds a userInfo with the divider index when the user drags the divider --- AppKit/CPSplitView.j | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/AppKit/CPSplitView.j b/AppKit/CPSplitView.j index 499f6f7e4..ca58caab6 100644 --- a/AppKit/CPSplitView.j +++ b/AppKit/CPSplitView.j @@ -1028,13 +1028,28 @@ The sum of the views and the sum of the dividers should be equal to the size of - (void)_postNotificationWillResize { - [[CPNotificationCenter defaultCenter] postNotificationName:CPSplitViewWillResizeSubviewsNotification object:self]; + var userInfo = nil; + + if (_currentDivider !== CPNotFound) + userInfo = [CPDictionary dictionaryWithObject:_currentDivider forKey:@"CPSplitViewDividerIndex"]; + + [[CPNotificationCenter defaultCenter] postNotificationName:CPSplitViewWillResizeSubviewsNotification + object:self + userInfo:userInfo]; } - (void)_postNotificationDidResize { [self _autosave]; - [[CPNotificationCenter defaultCenter] postNotificationName:CPSplitViewDidResizeSubviewsNotification object:self]; + + var userInfo = nil; + + if (_currentDivider !== CPNotFound) + userInfo = [CPDictionary dictionaryWithObject:_currentDivider forKey:@"CPSplitViewDividerIndex"]; + + [[CPNotificationCenter defaultCenter] postNotificationName:CPSplitViewDidResizeSubviewsNotification + object:self + userInfo:userInfo]; } /*! From 6efa30c52aa20b62e4b75fe0f523fc4583b20fb8 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Sat, 30 Jun 2012 16:14:01 -0400 Subject: [PATCH 010/109] autosave of position should not happen until divider tracking is completely done. Also renamed a local variable that looked like an ivar. --- AppKit/CPSplitView.j | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/AppKit/CPSplitView.j b/AppKit/CPSplitView.j index ca58caab6..7d6f1a0b4 100644 --- a/AppKit/CPSplitView.j +++ b/AppKit/CPSplitView.j @@ -455,6 +455,7 @@ var CPSplitViewHorizontalImage = nil, if (_currentDivider != CPNotFound) { _currentDivider = CPNotFound; + [self _autosave]; [self _updateResizeCursor:anEvent]; } @@ -481,19 +482,19 @@ var CPSplitViewHorizontalImage = nil, { var minPosition = [self minPossiblePositionOfDividerAtIndex:i], maxPosition = [self maxPossiblePositionOfDividerAtIndex:i], - _preCollapsePosition = [_preCollapsePositions objectForKey:"" + i] || 0; + preCollapsePosition = [_preCollapsePositions objectForKey:"" + i] || 0; if ([_delegate splitView:self canCollapseSubview:_subviews[i]] && [_delegate splitView:self shouldCollapseSubview:_subviews[i] forDoubleClickOnDividerAtIndex:i]) { if ([self isSubviewCollapsed:_subviews[i]]) - [self setPosition:_preCollapsePosition ? _preCollapsePosition : (minPosition + (maxPosition - minPosition) / 2) ofDividerAtIndex:i]; + [self setPosition:preCollapsePosition ? preCollapsePosition : (minPosition + (maxPosition - minPosition) / 2) ofDividerAtIndex:i]; else [self setPosition:minPosition ofDividerAtIndex:i]; } else if ([_delegate splitView:self canCollapseSubview:_subviews[i + 1]] && [_delegate splitView:self shouldCollapseSubview:_subviews[i + 1] forDoubleClickOnDividerAtIndex:i]) { if ([self isSubviewCollapsed:_subviews[i + 1]]) - [self setPosition:_preCollapsePosition ? _preCollapsePosition : (minPosition + (maxPosition - minPosition) / 2) ofDividerAtIndex:i]; + [self setPosition:preCollapsePosition ? preCollapsePosition : (minPosition + (maxPosition - minPosition) / 2) ofDividerAtIndex:i]; else [self setPosition:maxPosition ofDividerAtIndex:i]; } @@ -725,13 +726,13 @@ var CPSplitViewHorizontalImage = nil, frameA = [viewA frame], viewB = _subviews[dividerIndex + 1], frameB = [viewB frame], - _preCollapsePosition = 0, + preCollapsePosition = 0, preSize = frameA.size[_sizeComponent]; frameA.size[_sizeComponent] = realPosition - frameA.origin[_originComponent]; if (preSize !== 0 && frameA.size[_sizeComponent] === 0) - _preCollapsePosition = preSize; + preCollapsePosition = preSize; if (preSize !== frameA.size[_sizeComponent]) { @@ -746,7 +747,7 @@ var CPSplitViewHorizontalImage = nil, frameB.size[_sizeComponent] = frameB.origin[_originComponent] + frameB.size[_sizeComponent] - realPosition - [self dividerThickness]; if (preSize !== 0 && frameB.size[_sizeComponent] === 0) - _preCollapsePosition = frameB.origin[_originComponent]; + preCollapsePosition = frameB.origin[_originComponent]; frameB.origin[_originComponent] = realPosition + [self dividerThickness]; @@ -757,8 +758,8 @@ var CPSplitViewHorizontalImage = nil, SPLIT_VIEW_MAYBE_POST_DID_RESIZE(); } - if (_preCollapsePosition) - [_preCollapsePositions setObject:_preCollapsePosition forKey:"" + dividerIndex]; + if (preCollapsePosition) + [_preCollapsePositions setObject:preCollapsePosition forKey:"" + dividerIndex]; [self setNeedsDisplay:YES]; @@ -1040,8 +1041,6 @@ The sum of the views and the sum of the dividers should be equal to the size of - (void)_postNotificationDidResize { - [self _autosave]; - var userInfo = nil; if (_currentDivider !== CPNotFound) From 2e1a72030e7c9b57921224fe841822fc8c09c0b4 Mon Sep 17 00:00:00 2001 From: Mike Holman Date: Mon, 2 Jul 2012 16:17:35 +0800 Subject: [PATCH 011/109] Fix CPPredicateEditor CPTextField action bug. --- AppKit/CPRuleEditor/CPPredicateEditorRowTemplate.j | 1 + 1 file changed, 1 insertion(+) diff --git a/AppKit/CPRuleEditor/CPPredicateEditorRowTemplate.j b/AppKit/CPRuleEditor/CPPredicateEditorRowTemplate.j index 0843f8ea1..fda92ebf0 100644 --- a/AppKit/CPRuleEditor/CPPredicateEditorRowTemplate.j +++ b/AppKit/CPRuleEditor/CPPredicateEditorRowTemplate.j @@ -686,6 +686,7 @@ CPTransformableAttributeType = 1800; [textField setBordered:YES]; [textField setEditable:YES]; [textField setFont:[CPFont systemFontOfSize:10]]; + [textField setSendsActionOnEndEditing:YES]; return textField; } From 2f1e9d76ec6b142dbc73e3533ee57b54ef527c90 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Fri, 29 Jun 2012 09:01:33 -0700 Subject: [PATCH 012/109] Non-bordered buttons should retain their size, not shrink to fit. --- AppKit/CPButton.j | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AppKit/CPButton.j b/AppKit/CPButton.j index 7944347cc..7add82d70 100644 --- a/AppKit/CPButton.j +++ b/AppKit/CPButton.j @@ -591,7 +591,7 @@ CPButtonImageOffset = 3.0; - (CGRect)bezelRectForBounds:(CGRect)bounds { if (![self isBordered]) - return _CGRectMakeZero(); + return bounds; var bezelInset = [self currentValueForThemeAttribute:@"bezel-inset"]; From fc23863d85bcfa8546e86eb301c55e80c75d399f Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Mon, 2 Jul 2012 09:43:08 -0400 Subject: [PATCH 013/109] Added support for alternate button title in nib2cib --- Tools/nib2cib/NSButton.j | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Tools/nib2cib/NSButton.j b/Tools/nib2cib/NSButton.j index afdc6cfa5..6221a18fe 100644 --- a/Tools/nib2cib/NSButton.j +++ b/Tools/nib2cib/NSButton.j @@ -118,6 +118,7 @@ var NSButtonIsBorderedMask = 0x00800000, NIB_CONNECTION_EQUIVALENCY_TABLE[[cell UID]] = self; _title = [cell title]; + _alternateTitle = [cell alternateTitle]; _controlSize = CPRegularControlSize; [self setBordered:[cell isBordered]]; @@ -254,6 +255,7 @@ var NSButtonIsBorderedMask = 0x00800000, int _bezelStyle @accessors(readonly, getter=bezelStyle); CPString _title @accessors(readonly, getter=title); + CPString _alternateTitle @accessors(readonly, getter=alternateTitle); CPImage _normalImage @accessors(readonly, getter=normalImage); CPImage _alternateImage @accessors(readonly, getter=alternateImage); @@ -281,8 +283,9 @@ var NSButtonIsBorderedMask = 0x00800000, _isBordered = (buttonFlags & NSButtonIsBorderedMask) ? YES : NO; _bezelStyle = (buttonFlags2 & 0x7) | ((buttonFlags2 & 0x20) >> 2); - // NSContents for NSButton is actually the title + // NSContents/NSAlternateContents for NSButton is actually the title/alternate title _title = [aCoder decodeObjectForKey:@"NSContents"]; + _alternateTitle = [aCoder decodeObjectForKey:@"NSAlternateContents"]; // ... and _objectValue is _state _objectValue = [self state]; From 2f27291c53abb71434372adc85e3bfd734b21d74 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Mon, 2 Jul 2012 09:43:33 -0400 Subject: [PATCH 014/109] Tweaked debug output of custom image resources in nib2cib --- Tools/nib2cib/NSCustomResource.j | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tools/nib2cib/NSCustomResource.j b/Tools/nib2cib/NSCustomResource.j index 998a3a121..3c1370f08 100644 --- a/Tools/nib2cib/NSCustomResource.j +++ b/Tools/nib2cib/NSCustomResource.j @@ -65,7 +65,7 @@ var FILE = require("file"), if (resourcePath && FILE.extension(resourcePath) !== FILE.extension(_resourceName)) _resourceName += FILE.extension(resourcePath); - CPLog.debug("Image path: %s\nImage size: %dx%d", FILE.canonical(resourcePath), size.width, size.height); + CPLog.debug(" Path: %s\n Size: %dx%d", FILE.canonical(resourcePath), size.width, size.height); } _properties = [CPDictionary dictionaryWithObject:size forKey:@"size"]; From 37d4a06aa49bb6bab36f0df83fdd2e95fbb1a00b Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Tue, 3 Jul 2012 10:44:07 +0100 Subject: [PATCH 015/109] Fixes #1558. Support "thick divider" split view style in nib2cib. The thick divider style is converted to the pane splitter style in nib2cib since we only use two styles in Cappuccino. --- Tools/nib2cib/NSSplitView.j | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Tools/nib2cib/NSSplitView.j b/Tools/nib2cib/NSSplitView.j index 6079cbd7b..741b970af 100644 --- a/Tools/nib2cib/NSSplitView.j +++ b/Tools/nib2cib/NSSplitView.j @@ -22,6 +22,7 @@ @import +var NSThinDividerStyle = 2; @implementation CPSplitView (CPCoding) @@ -30,7 +31,11 @@ if (self = [super NS_initWithCoder:aCoder]) { _isVertical = [aCoder decodeBoolForKey:@"NSIsVertical"]; - _isPaneSplitter = [aCoder decodeIntForKey:@"NSDividerStyle"] == 3; + + // The possible values appear to be: no value (thick divider), 2 (thin divider) and 3 (pane splitter). For + // Cappuccino's purposes we treat thick divider and pane splitter as the same thing since the only difference + // seems to be graphical. + _isPaneSplitter = [aCoder decodeIntForKey:@"NSDividerStyle"] != NSThinDividerStyle; _autosaveName = [aCoder decodeObjectForKey:@"NSAutosaveName"]; } From 5f9463a0303a0d1b65103e61ab4325da106ff747 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Tue, 3 Jul 2012 10:54:27 +0100 Subject: [PATCH 016/109] Refs #1558. Test all split view divider types. --- .../CPSplitViewTest/Resources/MainMenu.cib | 2 +- .../CPSplitViewTest/Resources/MainMenu.xib | 2921 +---------------- 2 files changed, 129 insertions(+), 2794 deletions(-) diff --git a/Tests/Manual/CPSplitViewTest/Resources/MainMenu.cib b/Tests/Manual/CPSplitViewTest/Resources/MainMenu.cib index 0d5c972a0..2c48aab21 100644 --- a/Tests/Manual/CPSplitViewTest/Resources/MainMenu.cib +++ b/Tests/Manual/CPSplitViewTest/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;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;54E;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;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;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;81E;D;K;6;CP$UIDd;2;83E;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;128E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;131E;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;3;138E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;150E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;156E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;176E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;180E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;3;199E;D;K;6;CP$UIDd;3;200E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;203E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;208E;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;212E;D;K;6;CP$UIDd;3;214E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;215E;D;K;6;CP$UIDd;3;217E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;218E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;219E;D;K;6;CP$UIDd;3;220E;D;K;6;CP$UIDd;3;222E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;223E;D;K;6;CP$UIDd;3;224E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;225E;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;83E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;83E;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;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;3;101E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;109E;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;3;120E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;132E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;3;156E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;208E;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;212E;D;K;6;CP$UIDd;3;214E;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;215E;D;K;6;CP$UIDd;3;217E;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;218E;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;219E;D;K;6;CP$UIDd;3;220E;D;K;6;CP$UIDd;3;222E;D;K;6;CP$UIDd;3;219E;D;K;6;CP$UIDd;3;223E;D;K;6;CP$UIDd;3;224E;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;226E;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;227E;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;225E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;228E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;225E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;206E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;229E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;210E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;225E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;228E;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;2;88E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;230E;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;231E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;93E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;232E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;146E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;233E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;152E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;234E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;143E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;235E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;151E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;236E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;145E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;237E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;144E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;238E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;147E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;239E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;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;240E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;154E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;241E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;150E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;242E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;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;243E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;96E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;81E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;244E;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;245E;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;246E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;134E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;247E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;135E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;248E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;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;249E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;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;250E;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;251E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;129E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;252E;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;253E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;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;254E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;130E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;255E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;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;256E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;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;257E;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;258E;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;259E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;128E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;260E;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;261E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;158E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;262E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;159E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;263E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;131E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;264E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;138E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;265E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;139E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;266E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;140E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;267E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;197E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;268E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;198E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;269E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;199E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;270E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;200E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;271E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;202E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;272E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;203E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;273E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;204E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;274E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;167E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;275E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;191E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;276E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;193E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;277E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;194E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;278E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;185E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;279E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;186E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;280E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;187E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;281E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;188E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;282E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;189E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;283E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;180E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;284E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;181E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;285E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;182E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;286E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;174E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;287E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;175E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;288E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;176E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;289E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;177E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;290E;E;D;K;6;$classD;K;6;CP$UIDd;2;18E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;217E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;214E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;291E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;226E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;292E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;293E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;294E;E;D;K;10;$classnameS;10;CPMenuItemK;8;$classesA;S;10;CPMenuItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;295E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;86E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;295E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;298E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;299E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;300E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;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;302E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;86E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;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;2;86E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;304E;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;86E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;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;2;86E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;306E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;307E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;92E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;307E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;308E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;309E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;310E;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;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;311E;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;312E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;313E;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;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;314E;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;315E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;300E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;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;302E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;92E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;316E;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;317E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;300E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;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;302E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;92E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;300E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;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;302E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;92E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;318E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;102E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;92E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;318E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;319E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;320E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;300E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;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;302E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;92E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;321E;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;312E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;322E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;323E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;106E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;323E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;324E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;325E;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;106E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;326E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;327E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;109E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;327E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;328E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;329E;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;109E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;330E;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;109E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;331E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;332E;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;109E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;333E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;300E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;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;302E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;109E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;334E;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;109E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;335E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;336E;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;109E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;337E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;338E;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;109E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;339E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;300E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;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;302E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;109E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;340E;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;109E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;341E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;342E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;343E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;120E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;109E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;343E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;344E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;120E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;347E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;342E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;348E;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;349E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;350E;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;351E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;120E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;352E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;353E;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;354E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;120E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;355E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;356E;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;357E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;120E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;358E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;359E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;127E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;109E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;359E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;360E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;361E;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;127E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;362E;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;127E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;363E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;364E;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;127E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;365E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;366E;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;127E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;367E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;133E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;109E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;367E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;368E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;369E;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;133E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;370E;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;133E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;371E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;137E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;109E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;371E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;372E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;373E;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;357E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;137E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;358E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;374E;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;354E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;137E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;355E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;375E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;137E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;347E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;342E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;376E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;142E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;376E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;377E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;378E;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;142E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;379E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;380E;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;142E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;381E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;342E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;382E;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;142E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;383E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;384E;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;142E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;385E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;386E;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;142E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;387E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;388E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;149E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;142E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;388E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;389E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;391E;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;149E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;392E;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;142E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;393E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;342E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;142E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;395E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;300E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;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;302E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;142E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;396E;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;142E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;300E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;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;302E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;142E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;397E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;157E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;397E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;398E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;399E;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;157E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;400E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;322E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;401E;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;157E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;402E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;161E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;83E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;402E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;403E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;404E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;163E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;404E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;405E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;406E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;407E;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;163E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;400E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;408E;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;354E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;163E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;409E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;410E;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;357E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;163E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;411E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;412E;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;163E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;413E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;300E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;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;302E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;163E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;414E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;163E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;415E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;416E;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;417E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;163E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;418E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;300E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;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;302E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;163E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;419E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;173E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;163E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;419E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;420E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;421E;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;173E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;422E;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;173E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;423E;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;173E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;424E;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;173E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;425E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;179E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;163E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;425E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;426E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;421E;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;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;422E;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;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;427E;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;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;428E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;184E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;163E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;428E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;429E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;421E;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;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;430E;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;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;431E;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;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;432E;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;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;433E;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;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;300E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;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;302E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;163E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;434E;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;163E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;435E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;300E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;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;302E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;163E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;436E;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;163E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;339E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;322E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;437E;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;163E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;337E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;322E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;438E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;296E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;196E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;438E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;439E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;440E;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;196E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;441E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;442E;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;196E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;443E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;444E;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;196E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;445E;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;196E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;446E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;300E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;301E;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;302E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;196E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;447E;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;196E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;448E;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;196E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;339E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;449E;E;D;K;6;$classD;K;6;CP$UIDd;2;84E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;450E;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;196E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;337E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;449E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;205E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;451E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;452E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;453E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;351E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;295E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;208E;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;207E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;454E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;455E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;455E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;456E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;457E;E;D;K;10;$classnameS;11;CPSplitViewK;8;$classesA;S;11;CPSplitViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;208E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;454E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;458E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;459E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;460E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;208E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;461E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;462E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;457E;K;22;CPSplitViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;24;CPSplitViewIsVerticalKeyD;K;6;CP$UIDd;3;302E;K;28;CPSplitViewIsPaneSplitterKeyD;K;6;CP$UIDd;3;300E;K;26;CPSplitViewAutosaveNameKeyD;K;6;CP$UIDd;1;0E;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;3;211E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;210E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;454E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;463E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;464E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;465E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;210E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;466E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;457E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;467E;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;213E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;212E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;454E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;468E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;469E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;212E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;470E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;471E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;472E;K;6;$afontD;K;6;CP$UIDd;3;474E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;354E;K;11;$aalignmentD;K;6;CP$UIDd;3;417E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;300E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;301E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;475E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;300E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;300E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;300E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;477E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;354E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;417E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;211E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;210E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;454E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;478E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;479E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;480E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;210E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;466E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;457E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;467E;E;D;K;10;$classnameS;8;CPSliderK;8;$classesA;S;8;CPSliderS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;216E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;215E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;454E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;481E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;482E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;215E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;470E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;483E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;457E;K;6;$afontD;K;6;CP$UIDd;3;484E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;454E;K;11;$aalignmentD;K;6;CP$UIDd;3;454E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;485E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;486E;K;19;CPSliderMinValueKeyD;K;6;CP$UIDd;3;454E;K;19;CPSliderMaxValueKeyD;K;6;CP$UIDd;3;487E;K;23;CPSliderAltIncrValueKeyD;K;6;CP$UIDd;3;454E;E;D;K;6;$classD;K;6;CP$UIDd;3;213E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;210E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;454E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;488E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;489E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;210E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;490E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;471E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;457E;K;6;$afontD;K;6;CP$UIDd;3;474E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;354E;K;11;$aalignmentD;K;6;CP$UIDd;3;417E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;300E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;491E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;475E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;302E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;302E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;302E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;354E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;417E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;210E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;454E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;492E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;492E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;493E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;210E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;490E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;462E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;457E;K;22;CPSplitViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;24;CPSplitViewIsVerticalKeyD;K;6;CP$UIDd;3;300E;K;28;CPSplitViewIsPaneSplitterKeyD;K;6;CP$UIDd;3;302E;K;26;CPSplitViewAutosaveNameKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;211E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;219E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;454E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;494E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;494E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;495E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;219E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;466E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;457E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;467E;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;221E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;220E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;454E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;496E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;497E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;220E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;466E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;499E;K;6;$afontD;K;6;CP$UIDd;3;500E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;454E;K;11;$aalignmentD;K;6;CP$UIDd;3;354E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;454E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;417E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;501E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;302E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;354E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;454E;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;211E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;219E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;454E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;502E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;503E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;219E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;466E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;457E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;467E;E;D;K;6;$classD;K;6;CP$UIDd;3;221E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;223E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;454E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;505E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;506E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;223E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;466E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;499E;K;6;$afontD;K;6;CP$UIDd;3;500E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;454E;K;11;$aalignmentD;K;6;CP$UIDd;3;354E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;454E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;417E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;507E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;302E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;354E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;454E;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;508E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;206E;E;E;S;8;delegateS;9;theWindowS;15;arrangeInFront:S;19;performMiniaturize:S;29;orderFrontStandardAboutPanel:S;13;openDocument:S;13;performClose:S;13;saveDocument:S;14;runPageLayout:S;6;print:S;15;saveDocumentAs:S;12;newDocument:S;9;showHelp:S;22;revertDocumentToSaved:S;21;clearRecentDocuments:S;5;hide:S;10;terminate:S;22;hideOtherApplications:S;22;unhideAllApplications: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;10;alignLeft:S;12;alignCenter:S;15;alignJustified:S;11;alignRight:S;12;toggleRuler:S;10;copyRuler:S;11;pasteRuler:S;10;underline:S;21;orderFrontColorPanel:S;9;copyFont:S;10;pasteFont:S;9;unscript:S;12;superscript:S;10;subscript:S;14;raiseBaseline:S;14;lowerBaseline:S;21;useStandardLigatures:S;17;turnOffLigatures:S;16;useAllLigatures:S;19;useStandardKerning:S;15;turnOffKerning:S;15;tightenKerning:S;14;loosenKerning:S;20;takeDoubleValueFrom:S;9;AMainMenuS;11;_CPMainMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;156E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;3;105E;E;E;S;6;WindowS;14;submenuAction:d;7;1048576S;14;_CPWindowsMenuD;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;89E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;E;E;T;S;0;F;S;18;Bring All to FrontS;4;ZoomS;8;MinimizeS;1;mS;14;NewApplicationS;18;_CPApplicationMenuD;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;3;100E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;2;96E;E;E;S;20;About NewApplicationS;19;Hide NewApplicationS;1;hS;8;Show AllS;19;Quit NewApplicationS;1;qS;12;Preferences…S;1;,S;8;ServicesS;15;_CPServicesMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;11;Hide Othersd;7;1572864S;4;HelpD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;107E;E;E;S;19;NewApplication HelpS;1;?S;4;EditD;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;118E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;132E;E;E;S;6;DeleteS;10;Select AllS;1;aS;4;UndoS;1;zS;3;CutS;1;xS;5;PasteS;1;vS;4;CopyS;1;cS;4;RedoS;1;Zd;7;1179648S;4;FindD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;122E;E;E;S;13;Find Previousd;1;3S;1;GS;17;Jump to SelectionS;1;jS;22;Use Selection for Findd;1;7S;1;eS;9;Find Nextd;1;2S;1;gS;5;Find…d;1;1S;1;fS;20;Spelling and GrammarD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;131E;E;E;S;27;Check Spelling While TypingS;14;Check SpellingS;1;;S;14;Show Spelling…S;1;:S;27;Check Grammar With SpellingS;6;SpeechD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;134E;E;E;S;13;Stop SpeakingS;14;Start SpeakingS;13;SubstitutionsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;138E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;140E;E;E;S;16;Smart Copy/PasteS;12;Smart QuotesS;11;Smart LinksS;4;FileD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;145E;E;E;S;4;SaveS;1;sS;8;Save As…S;1;SS;6;Print…S;1;pS;5;Open…S;1;oS;3;NewS;1;nS;11;Open RecentS;22;_CPRecentDocumentsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;150E;E;E;S;10;Clear MenuS;13;Page Setup...S;1;PS;5;CloseS;1;wS;15;Revert to SavedS;4;ViewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;159E;E;E;S;12;Show ToolbarS;1;tS;18;Customize Toolbar…S;6;FormatD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;195E;E;E;S;4;FontS;11;_CPFontMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;194E;E;E;S;10;Show FontsS;4;BoldS;1;bS;6;ItalicS;1;iS;9;UnderlineS;1;uS;6;BiggerS;1;+S;7;Smallerd;1;4S;1;-S;4;KernD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;176E;D;K;6;CP$UIDd;3;177E;E;E;S;11;Use DefaultS;8;Use NoneS;7;TightenS;6;LoosenS;8;LigatureD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;180E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;182E;E;E;S;7;Use AllS;8;BaselineD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;189E;E;E;S;11;SuperscriptS;9;SubscriptS;5;RaiseS;5;LowerS;11;Show ColorsS;1;CS;10;Copy StyleS;11;Paste StyleS;4;TextD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;3;199E;D;K;6;CP$UIDd;3;200E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;203E;D;K;6;CP$UIDd;3;204E;E;E;S;10;Align LeftS;1;{S;6;CenterS;1;|S;7;JustifyS;11;Align RightS;1;}S;10;Show RulerS;10;Copy Rulerd;7;1310720S;11;Paste RulerS;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{335, 668}, {480, 360}}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;210E;E;E;S;6;normalS;22;{{20, 20}, {440, 191}}S;20;{{0, 0}, {440, 191}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;218E;D;K;6;CP$UIDd;3;212E;D;K;6;CP$UIDd;3;215E;D;K;6;CP$UIDd;3;219E;E;E;d;2;18S;9;splitviewS;21;{{0, 119}, {440, 45}}S;19;{{0, 0}, {440, 45}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;214E;E;E;d;1;8S;6;CPViewS;21;{{166, 8}, {104, 29}}S;19;{{0, 0}, {104, 29}}d;2;45S;9;textfieldS;19;bezeled+placeholderD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;473E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;509E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;510E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;302E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;302E;E;d;4;3072D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;476E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;511E;E;S;20;{{0, 44}, {440, 65}}S;19;{{0, 0}, {440, 65}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;217E;E;E;S;21;{{172, 23}, {96, 21}}S;18;{{0, 0}, {96, 21}}S;6;sliderD;K;6;$classD;K;6;CP$UIDd;3;473E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;512E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;510E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;302E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;302E;E;d;2;50d;2;68d;3;100S;21;{{0, 174}, {440, 17}}S;19;{{0, 0}, {440, 17}}d;2;36S;5;LabelS;19;{{0, 0}, {440, 34}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;220E;D;K;6;CP$UIDd;3;223E;E;E;S;19;{{0, 0}, {218, 34}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;222E;E;E;S;19;{{81, 5}, {52, 24}}S;18;{{0, 0}, {52, 24}}S;6;buttonS;8;borderedD;K;6;$classD;K;6;CP$UIDd;3;473E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;509E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;510E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;300E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;302E;E;S;4;LeftS;21;{{227, 0}, {213, 34}}S;19;{{0, 0}, {213, 34}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;224E;E;E;S;19;{{74, 5}, {61, 24}}S;18;{{0, 0}, {61, 24}}S;5;RightS;13;AppControllerS;17;Arial, sans-serifd;2;12D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;357E;D;K;6;CP$UIDd;3;357E;D;K;6;CP$UIDd;3;357E;D;K;6;CP$UIDd;3;357E;E;E;S;9;HelveticaE;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file +280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;19E;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;20E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;44E;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;22E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;26E;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;37E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;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;2;45E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;46E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;47E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;44E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;22E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;48E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;26E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;47E;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;2;33E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;30E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;49E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;45E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;21E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;50E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;51E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;52E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;53E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;54E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;24E;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;23E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;56E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;E;D;K;10;$classnameS;11;CPSplitViewK;8;$classesA;S;11;CPSplitViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;56E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;59E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;22;CPSplitViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;24;CPSplitViewIsVerticalKeyD;K;6;CP$UIDd;2;62E;K;28;CPSplitViewIsPaneSplitterKeyD;K;6;CP$UIDd;2;63E;K;26;CPSplitViewAutosaveNameKeyD;K;6;CP$UIDd;2;64E;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;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;26E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;65E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;66E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;67E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;26E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;69E;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;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;70E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;71E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;72E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;73E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;74E;K;6;$afontD;K;6;CP$UIDd;2;76E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;77E;K;11;$aalignmentD;K;6;CP$UIDd;2;78E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;63E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;64E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;79E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;63E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;63E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;63E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;81E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;77E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;78E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;26E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;82E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;83E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;84E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;26E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;69E;E;D;K;10;$classnameS;8;CPSliderK;8;$classesA;S;8;CPSliderS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;85E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;86E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;72E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;6;$afontD;K;6;CP$UIDd;2;88E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;55E;K;11;$aalignmentD;K;6;CP$UIDd;2;55E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;89E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;K;19;CPSliderMinValueKeyD;K;6;CP$UIDd;2;55E;K;19;CPSliderMaxValueKeyD;K;6;CP$UIDd;2;91E;K;23;CPSliderAltIncrValueKeyD;K;6;CP$UIDd;2;55E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;26E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;92E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;93E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;26E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;94E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;73E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;6;$afontD;K;6;CP$UIDd;2;76E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;77E;K;11;$aalignmentD;K;6;CP$UIDd;2;78E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;63E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;95E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;79E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;62E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;62E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;62E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;77E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;78E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;26E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;96E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;96E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;26E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;22;CPSplitViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;24;CPSplitViewIsVerticalKeyD;K;6;CP$UIDd;2;63E;K;28;CPSplitViewIsPaneSplitterKeyD;K;6;CP$UIDd;2;62E;K;26;CPSplitViewAutosaveNameKeyD;K;6;CP$UIDd;2;64E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;35E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;98E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;98E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;35E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;36E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;98E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;98E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;100E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;36E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;22;CPSplitViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;24;CPSplitViewIsVerticalKeyD;K;6;CP$UIDd;2;62E;K;28;CPSplitViewIsPaneSplitterKeyD;K;6;CP$UIDd;2;63E;K;26;CPSplitViewAutosaveNameKeyD;K;6;CP$UIDd;2;64E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;101E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;102E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;103E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;103E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;104E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;69E;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;40E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;39E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;105E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;106E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;39E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;107E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;108E;K;6;$afontD;K;6;CP$UIDd;3;109E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;55E;K;11;$aalignmentD;K;6;CP$UIDd;2;77E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;55E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;78E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;110E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;2;64E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;62E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;111E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;55E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;63E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;77E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;55E;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;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;35E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;112E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;113E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;114E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;35E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;40E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;115E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;116E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;42E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;107E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;108E;K;6;$afontD;K;6;CP$UIDd;3;109E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;55E;K;11;$aalignmentD;K;6;CP$UIDd;2;77E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;55E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;78E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;117E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;2;64E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;62E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;111E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;55E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;63E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;77E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;55E;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;118E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;22E;E;E;S;8;delegateS;9;theWindowS;20;takeDoubleValueFrom:S;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{335, 668}, {480, 360}}d;1;7S;6;Windowd;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;2;26E;E;E;S;6;normalD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;35E;E;E;d;2;18S;9;splitviewF;T;S;0;S;21;{{0, 231}, {480, 85}}S;19;{{0, 0}, {480, 85}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;30E;E;E;d;1;8S;6;CPViewS;22;{{186, 29}, {104, 29}}S;19;{{0, 0}, {104, 29}}d;2;45S;9;textfieldS;19;bezeled+placeholderD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;75E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;119E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;120E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;62E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;62E;E;d;1;2d;1;4d;4;3072D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;121E;E;S;21;{{0, 142}, {480, 79}}S;19;{{0, 0}, {480, 79}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;33E;E;E;S;21;{{192, 31}, {96, 21}}S;18;{{0, 0}, {96, 21}}S;6;sliderD;K;6;$classD;K;6;CP$UIDd;2;75E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;122E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;120E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;62E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;62E;E;d;2;50d;2;68d;3;100S;21;{{0, 326}, {480, 34}}S;19;{{0, 0}, {480, 34}}d;2;36S;5;LabelS;20;{{0, 0}, {480, 132}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;42E;E;E;S;20;{{0, 0}, {246, 132}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;37E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;39E;E;E;S;20;{{0, 81}, {246, 51}}S;19;{{0, 0}, {246, 51}}S;19;{{0, 0}, {246, 72}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;41E;E;E;S;21;{{68, 38}, {102, 24}}S;19;{{0, 0}, {102, 24}}S;6;buttonS;8;borderedD;K;6;$classD;K;6;CP$UIDd;2;75E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;119E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;120E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;63E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;62E;E;S;11;Bottom Leftd;2;14S;22;{{247, 0}, {233, 132}}S;20;{{0, 0}, {233, 132}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;43E;E;E;S;21;{{74, 103}, {61, 24}}S;18;{{0, 0}, {61, 24}}S;5;RightS;13;AppControllerS;17;Arial, sans-serifd;2;12D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;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;E;E;S;9;Helveticad;1;1E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/CPSplitViewTest/Resources/MainMenu.xib b/Tests/Manual/CPSplitViewTest/Resources/MainMenu.xib index df5d4dc8b..7712aff99 100644 --- a/Tests/Manual/CPSplitViewTest/Resources/MainMenu.xib +++ b/Tests/Manual/CPSplitViewTest/Resources/MainMenu.xib @@ -2,29 +2,27 @@ 1050 - 11C74 - 1938 - 1138.23 - 567.00 + 11E53 + 2182 + 1138.47 + 569.00 com.apple.InterfaceBuilder.CocoaPlugin - 1938 + 2182 YES - NSSplitView - NSMenuItem - NSMenu - NSTextFieldCell - NSButton - NSButtonCell - NSSlider - NSSliderCell - NSCustomView - NSCustomObject + NSTextField NSView NSWindowTemplate - NSTextField + NSSplitView + NSTextFieldCell + NSSliderCell + NSCustomView + NSSlider + NSButtonCell + NSButton + NSCustomObject YES @@ -45,1081 +43,6 @@ 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 - - - - - - Services - - 1048576 - 2147483647 - - - submenuAction: - - Services - - YES - - _NSServicesMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hide NewApplication - h - 1048576 - 2147483647 - - - - - - Hide Others - h - 1572864 - 2147483647 - - - - - - Show All - - 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 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Page Setup... - P - 1179648 - 2147483647 - - - - - - - Print… - p - 1048576 - 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 - - - - - - - - - - - - Format - - 2147483647 - - - submenuAction: - - Format - - YES - - - Font - - 2147483647 - - - submenuAction: - - Font - - YES - - - Show Fonts - t - 1048576 - 2147483647 - - - - - - Bold - b - 1048576 - 2147483647 - - - 2 - - - - Italic - i - 1048576 - 2147483647 - - - 1 - - - - Underline - u - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Bigger - + - 1048576 - 2147483647 - - - 3 - - - - Smaller - - - 1048576 - 2147483647 - - - 4 - - - - YES - YES - - - 2147483647 - - - - - - Kern - - 2147483647 - - - submenuAction: - - Kern - - YES - - - Use Default - - 2147483647 - - - - - - Use None - - 2147483647 - - - - - - Tighten - - 2147483647 - - - - - - Loosen - - 2147483647 - - - - - - - - - Ligature - - 2147483647 - - - submenuAction: - - Ligature - - YES - - - Use Default - - 2147483647 - - - - - - Use None - - 2147483647 - - - - - - Use All - - 2147483647 - - - - - - - - - Baseline - - 2147483647 - - - submenuAction: - - Baseline - - YES - - - Use Default - - 2147483647 - - - - - - Superscript - - 2147483647 - - - - - - Subscript - - 2147483647 - - - - - - Raise - - 2147483647 - - - - - - Lower - - 2147483647 - - - - - - - - - YES - YES - - - 2147483647 - - - - - - Show Colors - C - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Copy Style - c - 1572864 - 2147483647 - - - - - - Paste Style - v - 1572864 - 2147483647 - - - - - _NSFontMenu - - - - - Text - - 2147483647 - - - submenuAction: - - Text - - YES - - - Align Left - { - 1048576 - 2147483647 - - - - - - Center - | - 1048576 - 2147483647 - - - - - - Justify - - 2147483647 - - - - - - Align Right - } - 1048576 - 2147483647 - - - - - - YES - YES - - - 2147483647 - - - - - - Show Ruler - - 2147483647 - - - - - - Copy Ruler - c - 1310720 - 2147483647 - - - - - - Paste Ruler - v - 1310720 - 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 @@ -1142,7 +65,7 @@ 268 - {440, 17} + {480, 34} @@ -1187,7 +110,7 @@ 301 - {{172, 11}, {96, 22}} + {{192, 30}, {96, 22}} @@ -1217,7 +140,7 @@ - {{0, 27}, {440, 45}} + {{0, 44}, {480, 85}} @@ -1232,7 +155,7 @@ 301 - {{172, 21}, {96, 21}} + {{192, 27}, {96, 21}} @@ -1258,7 +181,7 @@ - {{0, 82}, {440, 65}} + {{0, 139}, {480, 79}} @@ -1267,7 +190,7 @@ - 268 + 256 YES @@ -1275,35 +198,71 @@ 256 YES - + - 256 - {{77, -1}, {64, 32}} + 274 + + YES + + + 256 + {246, 51} + + + + _NS:11 + NSView + + + + 256 + + YES + + + 256 + {{64, 4}, {114, 32}} + + + + _NS:687 + YES + + 67239424 + 134217728 + Bottom Left + + _NS:687 + + -2038284033 + 129 + + + 200 + 25 + + + + {{0, 60}, {246, 72}} + + + + _NS:13 + NSView + + + {246, 132} - - _NS:687 - YES - - 67239424 - 134217728 - Left - - _NS:687 - - -2038284033 - 129 - - - 200 - 25 - + + _NS:9 + - {218, 34} + {246, 132} - + _NS:1165 NSView @@ -1337,7 +296,7 @@ - {{227, 0}, {213, 34}} + {{247, 0}, {233, 132}} @@ -1345,20 +304,23 @@ NSView - {{0, 157}, {440, 34}} + {{0, 228}, {480, 132}} _NS:1163 YES + 2 + - {{20, 149}, {440, 191}} + {480, 360} _NS:1111 3 + {480, 360} @@ -1377,22 +339,6 @@ YES - - - terminate: - - - - 449 - - - - orderFrontStandardAboutPanel: - - - - 142 - delegate @@ -1401,478 +347,6 @@ 451 - - - performMiniaturize: - - - - 37 - - - - arrangeInFront: - - - - 39 - - - - print: - - - - 86 - - - - runPageLayout: - - - - 87 - - - - 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 - - - - hide: - - - - 367 - - - - hideOtherApplications: - - - - 368 - - - - unhideAllApplications: - - - - 370 - - - - newDocument: - - - - 373 - - - - openDocument: - - - - 374 - - - - raiseBaseline: - - - - 426 - - - - lowerBaseline: - - - - 427 - - - - copyFont: - - - - 428 - - - - subscript: - - - - 429 - - - - superscript: - - - - 430 - - - - tightenKerning: - - - - 431 - - - - underline: - - - - 432 - - - - orderFrontColorPanel: - - - - 433 - - - - useAllLigatures: - - - - 434 - - - - loosenKerning: - - - - 435 - - - - pasteFont: - - - - 436 - - - - unscript: - - - - 437 - - - - useStandardKerning: - - - - 438 - - - - useStandardLigatures: - - - - 439 - - - - turnOffLigatures: - - - - 440 - - - - turnOffKerning: - - - - 441 - - - - alignLeft: - - - - 442 - - - - alignJustified: - - - - 443 - - - - copyRuler: - - - - 444 - - - - alignCenter: - - - - 445 - - - - toggleRuler: - - - - 446 - - - - alignRight: - - - - 447 - - - - pasteRuler: - - - - 448 - theWindow @@ -1927,548 +401,6 @@ Application - - 29 - - - YES - - - - - - - - - - MainMenu - - - 19 - - - YES - - - - - - 56 - - - YES - - - - - - 103 - - - YES - - - - 1 - - - 217 - - - YES - - - - - - 83 - - - YES - - - - - - 81 - - - YES - - - - - - - - - - - - - - - - 75 - - - 3 - - - 80 - - - 8 - - - 78 - - - 6 - - - 72 - - - - - 82 - - - 9 - - - 124 - - - YES - - - - - - 77 - - - 5 - - - 73 - - - 1 - - - 79 - - - 7 - - - 112 - - - 10 - - - 74 - - - 2 - - - 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 - - - - 2 - - - 111 - - - - - 57 - - - YES - - - - - - - - - - - - - - - - 58 - - - - - 134 - - - - - 150 - - - - - 136 - - - 1111 - - - 144 - - - - - 129 - - - 121 - - - 143 - - - - - 236 - - - - - 131 - - - YES - - - - - - 149 - - - - - 145 - - - - - 130 - - - - - 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 @@ -2487,311 +419,6 @@ - - 375 - - - YES - - - - - - 376 - - - YES - - - - - - - 377 - - - YES - - - - - - 378 - - - YES - - - - - - 379 - - - YES - - - - - - - - - - - - - 380 - - - - - 381 - - - - - 382 - - - - - 383 - - - - - 384 - - - - - 385 - - - - - 386 - - - - - 387 - - - - - 388 - - - YES - - - - - - - - - - - - - - - - - - - - - 389 - - - - - 390 - - - - - 391 - - - - - 392 - - - - - 393 - - - - - 394 - - - - - 395 - - - - - 396 - - - - - 397 - - - YES - - - - - - 398 - - - YES - - - - - - 399 - - - YES - - - - - - 400 - - - - - 401 - - - - - 402 - - - - - 403 - - - - - 404 - - - - - 405 - - - YES - - - - - - - - - - 406 - - - - - 407 - - - - - 408 - - - - - 409 - - - - - 410 - - - - - 411 - - - YES - - - - - - - - 412 - - - - - 413 - - - - - 414 - - - - - 415 - - - YES - - - - - - - - - 416 - - - - - 417 - - - - - 418 - - - - - 419 - - - 450 @@ -2884,7 +511,7 @@ YES - + @@ -2897,20 +524,6 @@ - - 468 - - - YES - - - - - - 469 - - - 470 @@ -2925,6 +538,44 @@ + + 474 + + + YES + + + + + + + 475 + + + + + 476 + + + YES + + + + + + 468 + + + YES + + + + + + 469 + + + @@ -2934,115 +585,10 @@ -1.IBPluginDependency -2.IBPluginDependency -3.IBPluginDependency - 103.IBPluginDependency - 106.IBPluginDependency - 111.IBPluginDependency - 112.IBPluginDependency - 124.IBPluginDependency - 125.IBPluginDependency - 126.IBPluginDependency - 129.IBPluginDependency - 130.IBPluginDependency - 131.IBPluginDependency - 134.IBPluginDependency - 136.IBPluginDependency - 143.IBPluginDependency - 144.IBPluginDependency - 145.IBPluginDependency - 149.IBPluginDependency - 150.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 - 375.IBPluginDependency - 376.IBPluginDependency - 377.IBPluginDependency - 378.IBPluginDependency - 379.IBPluginDependency - 380.IBPluginDependency - 381.IBPluginDependency - 382.IBPluginDependency - 383.IBPluginDependency - 384.IBPluginDependency - 385.IBPluginDependency - 386.IBPluginDependency - 387.IBPluginDependency - 388.IBPluginDependency - 389.IBPluginDependency - 390.IBPluginDependency - 391.IBPluginDependency - 392.IBPluginDependency - 393.IBPluginDependency - 394.IBPluginDependency - 395.IBPluginDependency - 396.IBPluginDependency - 397.IBPluginDependency - 398.IBPluginDependency - 399.IBPluginDependency - 400.IBPluginDependency - 401.IBPluginDependency - 402.IBPluginDependency - 403.IBPluginDependency - 404.IBPluginDependency - 405.IBPluginDependency - 406.IBPluginDependency - 407.IBPluginDependency - 408.IBPluginDependency - 409.IBPluginDependency - 410.IBPluginDependency - 411.IBPluginDependency - 412.IBPluginDependency - 413.IBPluginDependency - 414.IBPluginDependency - 415.IBPluginDependency - 416.IBPluginDependency - 417.IBPluginDependency - 418.IBPluginDependency - 419.IBPluginDependency 450.IBPluginDependency 452.IBPluginDependency 453.IBPluginDependency @@ -3060,89 +606,16 @@ 469.IBPluginDependency 470.IBPluginDependency 471.IBPluginDependency - 5.IBPluginDependency - 56.IBPluginDependency - 57.IBPluginDependency - 58.IBPluginDependency - 72.IBPluginDependency - 73.IBPluginDependency - 74.IBPluginDependency - 75.IBPluginDependency - 77.IBPluginDependency - 78.IBPluginDependency - 79.IBPluginDependency - 80.IBPluginDependency - 81.IBPluginDependency - 82.IBPluginDependency - 83.IBPluginDependency - 92.IBPluginDependency + 474.IBPluginDependency + 475.IBPluginDependency + 476.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 - 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 @@ -3166,64 +639,6 @@ 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 - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin @@ -3238,7 +653,7 @@ - 473 + 476 @@ -3251,73 +666,6 @@ ./Classes/AppController.h - - NSDocument - - YES - - YES - printDocument: - revertDocumentToSaved: - runPageLayout: - saveDocument: - saveDocumentAs: - saveDocumentTo: - - - YES - id - id - id - id - id - id - - - - YES - - YES - printDocument: - revertDocumentToSaved: - runPageLayout: - saveDocument: - saveDocumentAs: - saveDocumentTo: - - - YES - - printDocument: - id - - - revertDocumentToSaved: - id - - - runPageLayout: - id - - - saveDocument: - id - - - saveDocumentAs: - id - - - saveDocumentTo: - id - - - - - IBProjectSource - ./Classes/NSDocument.h - - 0 @@ -3332,18 +680,5 @@ YES 3 - - YES - - YES - NSMenuCheckmark - NSMenuMixedState - - - YES - {9, 8} - {7, 2} - - From 814e72879e29418b6e7e303311486945c8924b73 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Tue, 3 Jul 2012 11:09:39 +0100 Subject: [PATCH 017/109] Manual test for split view autosave. --- Tests/Manual/CPSplitViewTest/AppController.j | 34 ++++- .../CPSplitViewTest/Resources/MainMenu.cib | 2 +- .../CPSplitViewTest/Resources/MainMenu.xib | 141 +++++++++++++++++- 3 files changed, 167 insertions(+), 10 deletions(-) diff --git a/Tests/Manual/CPSplitViewTest/AppController.j b/Tests/Manual/CPSplitViewTest/AppController.j index 6f1decd76..5a4559e22 100644 --- a/Tests/Manual/CPSplitViewTest/AppController.j +++ b/Tests/Manual/CPSplitViewTest/AppController.j @@ -11,7 +11,11 @@ @implementation AppController : CPObject { - CPWindow theWindow; //this "outlet" is connected automatically by the Cib + CPWindow theWindow; //this "outlet" is connected automatically by the Cib + + @outlet CPSplitView splitViewA; + @outlet CPSplitView splitViewB; + @outlet CPSplitView splitViewC; } - (void)applicationDidFinishLaunching:(CPNotification)aNotification @@ -35,4 +39,32 @@ return (subview !== [subviews objectAtIndex:1]); } +- (@action)deleteAutosave:(id)sender +{ + [splitViewA deleteAutosave]; + [splitViewB deleteAutosave]; + [splitViewC deleteAutosave]; + + [sender setTitle:@"Autosave deleted. Reload to see original positions."]; + [sender setEnabled:NO]; + [sender sizeToFit]; +} + +@end + +@implementation CPSplitView (Reset) + +- (void)deleteAutosave +{ + var userDefaults = [CPUserDefaults standardUserDefaults], + autosaveName = [self _framesKeyForAutosaveName:[self autosaveName]], + autosavePrecollapseName = [self _precollapseKeyForAutosaveName:[self autosaveName]]; + + [userDefaults setObject:nil forKey:autosaveName]; + [userDefaults setObject:nil forKey:autosavePrecollapseName]; + + // Prevent a new autosave from being made. + [self setAutosaveName:nil]; +} + @end diff --git a/Tests/Manual/CPSplitViewTest/Resources/MainMenu.cib b/Tests/Manual/CPSplitViewTest/Resources/MainMenu.cib index 2c48aab21..acbdeb481 100644 --- a/Tests/Manual/CPSplitViewTest/Resources/MainMenu.cib +++ b/Tests/Manual/CPSplitViewTest/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;17E;D;K;6;CP$UIDd;2;19E;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;20E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;44E;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;22E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;26E;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;37E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;43E;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;2;45E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;46E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;47E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;44E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;22E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;48E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;26E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;47E;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;2;33E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;30E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;49E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;45E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;21E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;50E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;51E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;52E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;53E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;54E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;24E;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;23E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;56E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;57E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;E;D;K;10;$classnameS;11;CPSplitViewK;8;$classesA;S;11;CPSplitViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;56E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;56E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;59E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;22;CPSplitViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;24;CPSplitViewIsVerticalKeyD;K;6;CP$UIDd;2;62E;K;28;CPSplitViewIsPaneSplitterKeyD;K;6;CP$UIDd;2;63E;K;26;CPSplitViewAutosaveNameKeyD;K;6;CP$UIDd;2;64E;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;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;26E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;65E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;66E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;67E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;26E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;69E;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;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;70E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;71E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;72E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;73E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;74E;K;6;$afontD;K;6;CP$UIDd;2;76E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;77E;K;11;$aalignmentD;K;6;CP$UIDd;2;78E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;63E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;64E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;79E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;63E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;63E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;63E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;81E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;77E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;78E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;26E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;82E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;83E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;84E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;26E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;69E;E;D;K;10;$classnameS;8;CPSliderK;8;$classesA;S;8;CPSliderS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;85E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;86E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;72E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;6;$afontD;K;6;CP$UIDd;2;88E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;55E;K;11;$aalignmentD;K;6;CP$UIDd;2;55E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;89E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;K;19;CPSliderMinValueKeyD;K;6;CP$UIDd;2;55E;K;19;CPSliderMaxValueKeyD;K;6;CP$UIDd;2;91E;K;23;CPSliderAltIncrValueKeyD;K;6;CP$UIDd;2;55E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;26E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;92E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;93E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;26E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;94E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;73E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;6;$afontD;K;6;CP$UIDd;2;76E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;77E;K;11;$aalignmentD;K;6;CP$UIDd;2;78E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;63E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;95E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;79E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;62E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;62E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;62E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;77E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;78E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;26E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;96E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;96E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;97E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;26E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;22;CPSplitViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;24;CPSplitViewIsVerticalKeyD;K;6;CP$UIDd;2;63E;K;28;CPSplitViewIsPaneSplitterKeyD;K;6;CP$UIDd;2;62E;K;26;CPSplitViewAutosaveNameKeyD;K;6;CP$UIDd;2;64E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;35E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;98E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;98E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;35E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;36E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;98E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;98E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;100E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;36E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;60E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;22;CPSplitViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;24;CPSplitViewIsVerticalKeyD;K;6;CP$UIDd;2;62E;K;28;CPSplitViewIsPaneSplitterKeyD;K;6;CP$UIDd;2;63E;K;26;CPSplitViewAutosaveNameKeyD;K;6;CP$UIDd;2;64E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;101E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;102E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;103E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;103E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;104E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;69E;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;40E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;39E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;105E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;106E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;39E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;107E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;108E;K;6;$afontD;K;6;CP$UIDd;3;109E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;55E;K;11;$aalignmentD;K;6;CP$UIDd;2;77E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;55E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;78E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;110E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;2;64E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;62E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;111E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;55E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;63E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;77E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;55E;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;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;35E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;112E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;113E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;114E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;35E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;58E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;40E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;55E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;115E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;116E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;42E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;107E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;108E;K;6;$afontD;K;6;CP$UIDd;3;109E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;55E;K;11;$aalignmentD;K;6;CP$UIDd;2;77E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;55E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;78E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;117E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;2;64E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;62E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;111E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;55E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;63E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;77E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;55E;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;118E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;22E;E;E;S;8;delegateS;9;theWindowS;20;takeDoubleValueFrom:S;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{335, 668}, {480, 360}}d;1;7S;6;Windowd;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;2;26E;E;E;S;6;normalD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;35E;E;E;d;2;18S;9;splitviewF;T;S;0;S;21;{{0, 231}, {480, 85}}S;19;{{0, 0}, {480, 85}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;30E;E;E;d;1;8S;6;CPViewS;22;{{186, 29}, {104, 29}}S;19;{{0, 0}, {104, 29}}d;2;45S;9;textfieldS;19;bezeled+placeholderD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;75E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;119E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;120E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;62E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;62E;E;d;1;2d;1;4d;4;3072D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;121E;E;S;21;{{0, 142}, {480, 79}}S;19;{{0, 0}, {480, 79}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;33E;E;E;S;21;{{192, 31}, {96, 21}}S;18;{{0, 0}, {96, 21}}S;6;sliderD;K;6;$classD;K;6;CP$UIDd;2;75E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;122E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;120E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;62E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;62E;E;d;2;50d;2;68d;3;100S;21;{{0, 326}, {480, 34}}S;19;{{0, 0}, {480, 34}}d;2;36S;5;LabelS;20;{{0, 0}, {480, 132}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;42E;E;E;S;20;{{0, 0}, {246, 132}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;37E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;39E;E;E;S;20;{{0, 81}, {246, 51}}S;19;{{0, 0}, {246, 51}}S;19;{{0, 0}, {246, 72}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;41E;E;E;S;21;{{68, 38}, {102, 24}}S;19;{{0, 0}, {102, 24}}S;6;buttonS;8;borderedD;K;6;$classD;K;6;CP$UIDd;2;75E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;119E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;120E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;63E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;62E;E;S;11;Bottom Leftd;2;14S;22;{{247, 0}, {233, 132}}S;20;{{0, 0}, {233, 132}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;43E;E;E;S;21;{{74, 103}, {61, 24}}S;18;{{0, 0}, {61, 24}}S;5;RightS;13;AppControllerS;17;Arial, sans-serifd;2;12D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;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;E;E;S;9;Helveticad;1;1E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file +280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;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;24E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;1;0E;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;1;0E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;49E;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;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;30E;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;43E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;48E;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;2;50E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;51E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;49E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;52E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;49E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;30E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;53E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;49E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;41E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;54E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;49E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;55E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;49E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;26E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;56E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;30E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;49E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;52E;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;21E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;39E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;36E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;57E;E;D;K;6;$classD;K;6;CP$UIDd;2;21E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;34E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;49E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;58E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;50E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;59E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;60E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;61E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;62E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;63E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;28E;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;27E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;65E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;65E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;66E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;67E;E;D;K;10;$classnameS;11;CPSplitViewK;8;$classesA;S;11;CPSplitViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;65E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;65E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;68E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;69E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;70E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;67E;K;22;CPSplitViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;24;CPSplitViewIsVerticalKeyD;K;6;CP$UIDd;2;71E;K;28;CPSplitViewIsPaneSplitterKeyD;K;6;CP$UIDd;2;72E;K;26;CPSplitViewAutosaveNameKeyD;K;6;CP$UIDd;2;53E;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;31E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;73E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;74E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;75E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;67E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;77E;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;33E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;32E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;78E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;79E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;32E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;80E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;81E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;82E;K;6;$afontD;K;6;CP$UIDd;2;84E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;11;$aalignmentD;K;6;CP$UIDd;2;85E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;64E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;86E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;2;87E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;2;88E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;71E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;2;89E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;64E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;72E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;85E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;64E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;32E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;90E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;91E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;32E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;92E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;93E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;94E;K;6;$afontD;K;6;CP$UIDd;2;95E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;85E;K;11;$aalignmentD;K;6;CP$UIDd;2;86E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;72E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;88E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;96E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;72E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;72E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;72E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;98E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;85E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;86E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;31E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;99E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;100E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;101E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;67E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;77E;E;D;K;10;$classnameS;8;CPSliderK;8;$classesA;S;8;CPSliderS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;38E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;37E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;102E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;103E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;37E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;92E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;104E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;67E;K;6;$afontD;K;6;CP$UIDd;3;105E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;11;$aalignmentD;K;6;CP$UIDd;2;64E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;107E;K;19;CPSliderMinValueKeyD;K;6;CP$UIDd;2;64E;K;19;CPSliderMaxValueKeyD;K;6;CP$UIDd;3;108E;K;23;CPSliderAltIncrValueKeyD;K;6;CP$UIDd;2;64E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;109E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;110E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;80E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;93E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;67E;K;6;$afontD;K;6;CP$UIDd;2;95E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;85E;K;11;$aalignmentD;K;6;CP$UIDd;2;86E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;72E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;111E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;96E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;71E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;71E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;71E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;85E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;86E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;112E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;112E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;113E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;70E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;67E;K;22;CPSplitViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;24;CPSplitViewIsVerticalKeyD;K;6;CP$UIDd;2;72E;K;28;CPSplitViewIsPaneSplitterKeyD;K;6;CP$UIDd;2;71E;K;26;CPSplitViewAutosaveNameKeyD;K;6;CP$UIDd;2;54E;E;D;K;6;$classD;K;6;CP$UIDd;2;31E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;41E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;114E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;114E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;115E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;41E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;67E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;77E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;114E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;114E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;116E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;42E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;69E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;70E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;67E;K;22;CPSplitViewDelegateKeyD;K;6;CP$UIDd;1;0E;K;24;CPSplitViewIsVerticalKeyD;K;6;CP$UIDd;2;71E;K;28;CPSplitViewIsPaneSplitterKeyD;K;6;CP$UIDd;2;72E;K;26;CPSplitViewAutosaveNameKeyD;K;6;CP$UIDd;2;55E;E;D;K;6;$classD;K;6;CP$UIDd;2;31E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;117E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;118E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;67E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;77E;E;D;K;6;$classD;K;6;CP$UIDd;2;31E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;43E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;119E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;119E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;120E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;43E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;67E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;77E;E;D;K;6;$classD;K;6;CP$UIDd;2;33E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;45E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;121E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;122E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;45E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;81E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;82E;K;6;$afontD;K;6;CP$UIDd;2;84E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;11;$aalignmentD;K;6;CP$UIDd;2;85E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;64E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;86E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;123E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;2;88E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;71E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;2;89E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;64E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;72E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;85E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;64E;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;31E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;41E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;124E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;125E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;126E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;41E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;67E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;2;77E;E;D;K;6;$classD;K;6;CP$UIDd;2;33E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;47E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;64E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;127E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;128E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;47E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;81E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;82E;K;6;$afontD;K;6;CP$UIDd;2;84E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;64E;K;11;$aalignmentD;K;6;CP$UIDd;2;85E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;64E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;86E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;129E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;2;88E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;71E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;2;89E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;64E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;72E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;85E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;64E;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;130E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;26E;E;E;S;8;delegateS;10;splitViewAS;10;splitViewBS;10;splitViewCS;9;theWindowS;20;takeDoubleValueFrom:S;15;deleteAutosave:S;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{335, 668}, {480, 360}}d;1;7S;6;Windowd;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;2;30E;E;E;S;6;normalD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;41E;E;E;d;2;18S;9;splitviewF;T;S;21;{{0, 231}, {480, 85}}S;19;{{0, 0}, {480, 85}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;36E;E;E;d;1;8S;6;CPViewS;21;{{18, 31}, {130, 24}}S;19;{{0, 0}, {130, 24}}d;2;36S;6;buttonS;8;borderedD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;83E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;131E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;132E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;72E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;71E;E;d;1;2d;1;4S;15;Delete AutosaveS;0;d;2;14S;22;{{358, 29}, {104, 29}}S;19;{{0, 0}, {104, 29}}d;2;45S;9;textfieldS;19;bezeled+placeholderD;K;6;$classD;K;6;CP$UIDd;2;83E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;131E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;132E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;71E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;71E;E;d;4;3072D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;97E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;133E;E;S;21;{{0, 142}, {480, 79}}S;19;{{0, 0}, {480, 79}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;39E;E;E;S;21;{{192, 31}, {96, 21}}S;18;{{0, 0}, {96, 21}}S;6;sliderD;K;6;$classD;K;6;CP$UIDd;2;83E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;134E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;132E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;71E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;71E;E;d;2;50d;2;68d;3;100S;21;{{0, 326}, {480, 34}}S;19;{{0, 0}, {480, 34}}S;5;LabelS;20;{{0, 0}, {480, 132}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;47E;E;E;S;20;{{0, 0}, {246, 132}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;43E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;E;E;S;20;{{0, 81}, {246, 51}}S;19;{{0, 0}, {246, 51}}S;19;{{0, 0}, {246, 72}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;46E;E;E;S;21;{{70, 24}, {102, 24}}S;19;{{0, 0}, {102, 24}}S;11;Bottom LeftS;22;{{247, 0}, {233, 132}}S;20;{{0, 0}, {233, 132}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;48E;E;E;S;20;{{84, 54}, {61, 24}}S;18;{{0, 0}, {61, 24}}S;5;RightS;13;AppControllerS;17;Arial, sans-serifd;2;12D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;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;135E;E;E;S;9;Helveticad;1;1E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/CPSplitViewTest/Resources/MainMenu.xib b/Tests/Manual/CPSplitViewTest/Resources/MainMenu.xib index 7712aff99..d497e2df5 100644 --- a/Tests/Manual/CPSplitViewTest/Resources/MainMenu.xib +++ b/Tests/Manual/CPSplitViewTest/Resources/MainMenu.xib @@ -107,10 +107,34 @@ 256 YES + + + 268 + {{14, 24}, {142, 32}} + + + + _NS:9 + YES + + 67239424 + 134217728 + Delete Autosave + + _NS:9 + + -2038284033 + 129 + + + 200 + 25 + + 301 - {{192, 30}, {96, 22}} + {{364, 30}, {96, 22}} @@ -143,7 +167,7 @@ {{0, 44}, {480, 85}} - + _NS:1113 NSView @@ -221,7 +245,7 @@ 256 - {{64, 4}, {114, 32}} + {{66, 18}, {114, 32}} @@ -256,7 +280,7 @@ _NS:9 - + splitViewC {246, 132} @@ -274,7 +298,7 @@ 256 - {{70, -1}, {73, 32}} + {{80, 48}, {73, 32}} @@ -311,7 +335,7 @@ _NS:1163 YES 2 - + splitViewB {480, 360} @@ -320,7 +344,7 @@ _NS:1111 3 - + splitViewA {480, 360} @@ -355,6 +379,38 @@ 459 + + + splitViewA + + + + 479 + + + + splitViewB + + + + 480 + + + + splitViewC + + + + 481 + + + + deleteAutosave: + + + + 482 + takeDoubleValueFrom: @@ -441,6 +497,7 @@ YES + @@ -576,6 +633,20 @@ + + 477 + + + YES + + + + + + 478 + + + @@ -609,6 +680,8 @@ 474.IBPluginDependency 475.IBPluginDependency 476.IBPluginDependency + 477.IBPluginDependency + 478.IBPluginDependency YES @@ -639,6 +712,8 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin @@ -653,7 +728,7 @@ - 476 + 482 @@ -661,6 +736,56 @@ AppController NSObject + + deleteAutosave: + id + + + deleteAutosave: + + deleteAutosave: + id + + + + YES + + YES + splitViewA + splitViewB + splitViewC + + + YES + NSSplitView + NSSplitView + NSSplitView + + + + YES + + YES + splitViewA + splitViewB + splitViewC + + + YES + + splitViewA + NSSplitView + + + splitViewB + NSSplitView + + + splitViewC + NSSplitView + + + IBProjectSource ./Classes/AppController.h From c9b7d1e8424248a95315eec3392cd03923006be9 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Tue, 3 Jul 2012 13:44:30 +0100 Subject: [PATCH 018/109] Refs #1559. Autosave split view positions for frame size changes. This covers the case where the whole split view is resized and the divider moves as a consequence. For example if the split view was made much smaller the fixed position of the divider previously autosaved might not even be inside of the split view frame anymore, and on restore from autosave that side of the split view might unexpectedly become collapsed. The new behaviour also more closely matches Cocoa's, although there is still a slight difference in implementation. --- AppKit/CPSplitView.j | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/AppKit/CPSplitView.j b/AppKit/CPSplitView.j index 7d6f1a0b4..d59eddca1 100644 --- a/AppKit/CPSplitView.j +++ b/AppKit/CPSplitView.j @@ -452,6 +452,9 @@ var CPSplitViewHorizontalImage = nil, if (type == CPLeftMouseUp) { + // We disabled autosaving during tracking. + _shouldAutosave = YES; + if (_currentDivider != CPNotFound) { _currentDivider = CPNotFound; @@ -504,6 +507,8 @@ var CPSplitViewHorizontalImage = nil, _currentDivider = i; _initialOffset = startPosition - point[_originComponent]; + // Don't autosave during a resize. We'll wait until it's done. + _shouldAutosave = NO; [self _postNotificationWillResize]; } } @@ -1049,6 +1054,11 @@ The sum of the views and the sum of the dividers should be equal to the size of [[CPNotificationCenter defaultCenter] postNotificationName:CPSplitViewDidResizeSubviewsNotification object:self userInfo:userInfo]; + + + // TODO Cocoa always autosaves on "viewDidEndLiveResize". If Cappuccino adds support for this we + // should do the same. + [self _autosave]; } /*! @@ -1067,7 +1077,7 @@ The sum of the views and the sum of the dividers should be equal to the size of /*! Get the name under which the split view divider position is automatically saved to CPUserDefaults. - @return the name to save under or nil if no auto save is active + @return the name to save under or nil if no autosave is active */ - (CPString)autosaveName { From fcc11b8969629738488bb6b6787f38bba642af6f Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Tue, 3 Jul 2012 13:53:52 +0100 Subject: [PATCH 019/109] Fixes #1559. Nested split view autosave and better override support. Nested split views now correctly restore their divider positions by restoring "top down". E.g. a nesting split view is restored before the nested split view so that the nested split view has the correct frame size for the position it is restoring. This commit also makes it easier to override autosave restores in a subclass or a controller's `viewDidLoad`. Now if `setPosition:ofDividerAtIndex:` is called after the split view's `initWithCoder:` has finished, but before the final autosave restore has occurred, the autosave restore is cancelled. This preserves whatever the modification the programmer intended to make instead of overwriting it with the autosaved position. This commit also fixes a bug where an autosaved position would not be restored, or would be restored at an unexpected time, if `setFrameSize:` was not sent to the split view shortly after its `initWithCoder:`. (Such a `setFrameSize:` message is often sent due to a window `setFullPlatformWindow:` call in `AppController.j`'s `awakeFromCib`, but it's not necessarily sent.) --- AppKit/CPSplitView.j | 68 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 57 insertions(+), 11 deletions(-) diff --git a/AppKit/CPSplitView.j b/AppKit/CPSplitView.j index d59eddca1..6020da5cf 100644 --- a/AppKit/CPSplitView.j +++ b/AppKit/CPSplitView.j @@ -723,6 +723,10 @@ var CPSplitViewHorizontalImage = nil, */ - (void)setPosition:(float)position ofDividerAtIndex:(int)dividerIndex { + // Any manual changes to the divider position should override anything we are restoring from + // autosave. + _needsRestoreFromAutosave = NO; + SPLIT_VIEW_SUPPRESS_RESIZE_NOTIFICATIONS(YES); [self _adjustSubviewsWithCalculatedSize]; @@ -784,11 +788,7 @@ var CPSplitViewHorizontalImage = nil, [super setFrameSize:aSize]; if (_needsRestoreFromAutosave) - { - _needsRestoreFromAutosave = NO; - [self _restoreFromAutosave]; _shouldAutosave = YES; - } [self setNeedsDisplay:YES]; } @@ -1089,7 +1089,7 @@ The sum of the views and the sum of the dividers should be equal to the size of */ - (void)_autosave { - if (!_shouldAutosave || !_autosaveName) + if (_needsRestoreFromAutosave || !_shouldAutosave || !_autosaveName) return; var userDefaults = [CPUserDefaults standardUserDefaults], @@ -1110,6 +1110,22 @@ The sum of the views and the sum of the dividers should be equal to the size of [userDefaults setObject:preCollapseArray forKey:autosavePrecollapseName]; } +/*! + This is called sometime later after a split view has been restored from a Cib. + See notes in initWithCoder. + + @ignore +*/ +- (void)_restoreFromAutosaveIfNeeded +{ + if (_needsRestoreFromAutosave && !_CGSizeEqualToSize([self frameSize], _needsRestoreFromAutosave)) + { + [self _restoreFromAutosave]; + } + + _needsRestoreFromAutosave = NO; +} + /*! @ignore */ @@ -1191,6 +1207,35 @@ var CPSplitViewDelegateKey = "CPSplitViewDelegateKey", */ - (id)initWithCoder:(CPCoder)aCoder { + // We need to restore this property before calling super's initWithCoder:. + _autosaveName = [aCoder decodeObjectForKey:CPSplitViewAutosaveNameKey]; + + /* + + It is common for the main window of a Cappuccino app window to be resized to match the browser + window size at the end of the UI being loaded from a cib. But at decoding time (now) whatever + window size was originally saved will be in place, so if we try to restore the autosaved divider + positions now they might be constrained to the wrong positions due to the difference in frame size, + and in addition they might move later when the window is resized. + + The workaround is to restore the position once now (so it's approximately correct during loading), + and then once more in the next runloop cycle when any `setFullPlatformWindow` calls are done. + + (However if the frame size doesn't change before the next cycle, we should not restore the position + again because that would overwrite any changes the app developer might have made in user code.) + + The other consideration is that any parent split views need to be restored before any child + subviews, otherwise the parent restore will also change the positioning of the child. + + */ + if (_autosaveName) + { + // Schedule /before/ [super initWithCoder:]. This way this instance's _restoreFromAutosaveIfNeeded + // will happen before that of any subviews loaded by [super initWithCoder:]. + [[CPRunLoop currentRunLoop] performSelector:@selector(_restoreFromAutosaveIfNeeded) target:self argument:nil order:0 modes:[CPDefaultRunLoopMode]]; + _needsRestoreFromAutosave = YES; + } + self = [super initWithCoder:aCoder]; if (self) @@ -1210,12 +1255,13 @@ var CPSplitViewDelegateKey = "CPSplitViewDelegateKey", _isPaneSplitter = [aCoder decodeBoolForKey:CPSplitViewIsPaneSplitterKey]; [self _setVertical:[aCoder decodeBoolForKey:CPSplitViewIsVerticalKey]]; - [self setAutosaveName:[aCoder decodeObjectForKey:CPSplitViewAutosaveNameKey]]; - - // We have to wait until we know our frame size before restoring, or the frame resize later will throw - // away the restored size. - if (_autosaveName) - _needsRestoreFromAutosave = YES; + if (_needsRestoreFromAutosave) + { + [self _restoreFromAutosave]; + // Remember the frame size we had at this point so that we can restore again if it changes + // before the next runloop cycle. See above notes. + _needsRestoreFromAutosave = [self frameSize]; + } } return self; From cde50cc8b495e7c416a54bebcc1456e8306cc18a Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Tue, 3 Jul 2012 13:57:11 +0100 Subject: [PATCH 020/109] Refs #1558. Better ivar name and type. --- AppKit/CPSplitView.j | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/AppKit/CPSplitView.j b/AppKit/CPSplitView.j index 6020da5cf..cd6734518 100644 --- a/AppKit/CPSplitView.j +++ b/AppKit/CPSplitView.j @@ -89,7 +89,7 @@ var CPSplitViewHorizontalImage = nil, CPString _autosaveName; BOOL _shouldAutosave; - BOOL _needsRestoreFromAutosave; + CGSize _shouldRestoreFromAutosaveUnlessFrameSize; BOOL _needsResizeSubviews; int _suppressResizeNotificationsMask; @@ -725,7 +725,7 @@ var CPSplitViewHorizontalImage = nil, { // Any manual changes to the divider position should override anything we are restoring from // autosave. - _needsRestoreFromAutosave = NO; + _shouldRestoreFromAutosaveUnlessFrameSize = nil; SPLIT_VIEW_SUPPRESS_RESIZE_NOTIFICATIONS(YES); [self _adjustSubviewsWithCalculatedSize]; @@ -780,14 +780,14 @@ var CPSplitViewHorizontalImage = nil, - (void)setFrameSize:(CGSize)aSize { - if (_needsRestoreFromAutosave) + if (_shouldRestoreFromAutosaveUnlessFrameSize) _shouldAutosave = NO; else [self _adjustSubviewsWithCalculatedSize]; [super setFrameSize:aSize]; - if (_needsRestoreFromAutosave) + if (_shouldRestoreFromAutosaveUnlessFrameSize) _shouldAutosave = YES; [self setNeedsDisplay:YES]; @@ -1089,7 +1089,7 @@ The sum of the views and the sum of the dividers should be equal to the size of */ - (void)_autosave { - if (_needsRestoreFromAutosave || !_shouldAutosave || !_autosaveName) + if (_shouldRestoreFromAutosaveUnlessFrameSize || !_shouldAutosave || !_autosaveName) return; var userDefaults = [CPUserDefaults standardUserDefaults], @@ -1118,12 +1118,12 @@ The sum of the views and the sum of the dividers should be equal to the size of */ - (void)_restoreFromAutosaveIfNeeded { - if (_needsRestoreFromAutosave && !_CGSizeEqualToSize([self frameSize], _needsRestoreFromAutosave)) + if (_shouldRestoreFromAutosaveUnlessFrameSize && !_CGSizeEqualToSize([self frameSize], _shouldRestoreFromAutosaveUnlessFrameSize)) { [self _restoreFromAutosave]; } - _needsRestoreFromAutosave = NO; + _shouldRestoreFromAutosaveUnlessFrameSize = nil; } /*! @@ -1233,7 +1233,6 @@ var CPSplitViewDelegateKey = "CPSplitViewDelegateKey", // Schedule /before/ [super initWithCoder:]. This way this instance's _restoreFromAutosaveIfNeeded // will happen before that of any subviews loaded by [super initWithCoder:]. [[CPRunLoop currentRunLoop] performSelector:@selector(_restoreFromAutosaveIfNeeded) target:self argument:nil order:0 modes:[CPDefaultRunLoopMode]]; - _needsRestoreFromAutosave = YES; } self = [super initWithCoder:aCoder]; @@ -1255,12 +1254,12 @@ var CPSplitViewDelegateKey = "CPSplitViewDelegateKey", _isPaneSplitter = [aCoder decodeBoolForKey:CPSplitViewIsPaneSplitterKey]; [self _setVertical:[aCoder decodeBoolForKey:CPSplitViewIsVerticalKey]]; - if (_needsRestoreFromAutosave) + if (_autosaveName) { [self _restoreFromAutosave]; // Remember the frame size we had at this point so that we can restore again if it changes // before the next runloop cycle. See above notes. - _needsRestoreFromAutosave = [self frameSize]; + _shouldRestoreFromAutosaveUnlessFrameSize = [self frameSize]; } } From 0f5a6b4e5ef00a2a4987a712014fa405845a57e4 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Wed, 4 Jul 2012 15:41:45 -0400 Subject: [PATCH 021/109] Added CPArray -indexesOfObjectPassingTest methods --- Foundation/CPArray/CPArray.j | 79 ++++++++++++++++++++++++ Tests/Foundation/CPArrayTest.j | 106 ++++++++++++++++++++++++++++++++- 2 files changed, 184 insertions(+), 1 deletion(-) diff --git a/Foundation/CPArray/CPArray.j b/Foundation/CPArray/CPArray.j index 72af3a0a4..8a2dd673c 100755 --- a/Foundation/CPArray/CPArray.j +++ b/Foundation/CPArray/CPArray.j @@ -483,6 +483,85 @@ var concat = Array.prototype.concat, return CPNotFound; } +/*! + Returns the indexes of the objects in the receiver that pass a test in a given Javascript function. + @param predicate The function to apply to objects of the array. The function should have the signature: + @code function(object, index) @endcode + The predicate function should either return a Boolean value that indicates whether the object passed the test, + or nil to stop the search, which will return \c CPNotFound to the sender. + @return A CPIndexSet of the matching object indexes. +*/ +- (CPIndexSet)indexesOfObjectPassingTest:(Function)aPredicate +{ + return [self indexesOfObjectWithOptions:CPEnumerationNormal passingTest:aPredicate context:undefined]; +} + +/*! + Returns the indexes of the objects in the receiver that pass a test in a given Javascript function. + @param predicate The function to apply to objects of the array. The function should have the signature: + @code function(object, index, context) @endcode + The predicate function should either return a Boolean value that indicates whether the object passed the test, + or nil to stop the search, which will return \c CPNotFound to the sender. + @param context An object that contains context information you want passed to the predicate function. + @return A CPIndexSet of the matching object indexes. +*/ +- (CPIndexSet)indexesOfObjectPassingTest:(Function)aPredicate context:(id)aContext +{ + return [self indexesOfObjectWithOptions:CPEnumerationNormal passingTest:aPredicate context:aContext]; +} + +/*! + Returns the indexes of the objects in the receiver that pass a test in a given Javascript function. + @param options Specifies the direction in which the array is searched. Pass CPEnumerationNormal to search forwards + or CPEnumerationReverse to search in reverse. + @param predicate The function to apply to objects of the array. The function should have the signature: + @code function(object, index) @endcode + The predicate function should either return a Boolean value that indicates whether the object passed the test, + or nil to stop the search, which will return CPNotFound to the sender. + @return A CPIndexSet of the matching object indexes. +*/ +- (CPIndexSet)indexesOfObjectWithOptions:(CPEnumerationOptions)options passingTest:(Function)aPredicate +{ + return [self indexesOfObjectWithOptions:options passingTest:aPredicate context:undefined]; +} + +/*! + Returns the indexes of the objects in the receiver that pass a test in a given Javascript function. + @param options Specifies the direction in which the array is searched. Pass CPEnumerationNormal to search forwards + or CPEnumerationReverse to search in reverse. + @param predicate The function to apply to objects of the array. The function should have the signature: + @code function(object, index, context) @endcode + The predicate function should either return a Boolean value that indicates whether the object passed the test, + or nil to stop the search, which will return CPNotFound to the sender. + @param context An object that contains context information you want passed to the predicate function. + @return A CPIndexSet of the matching object indexes. +*/ +- (CPIndexSet)indexesOfObjectWithOptions:(CPEnumerationOptions)options passingTest:(Function)aPredicate context:(id)aContext +{ + // We don't use an enumerator because they return nil to indicate end of enumeration, + // but nil may actually be the value we are looking for, so we have to loop over the array. + if (options & CPEnumerationReverse) + { + var index = [self count] - 1, + stop = -1, + increment = -1; + } + else + { + var index = 0, + stop = [self count], + increment = 1; + } + + var indexes = [CPIndexSet indexSet]; + + for (; index !== stop; index += increment) + if (aPredicate([self objectAtIndex:index], index, aContext)) + [indexes addIndex:index]; + + return indexes; +} + // Sending messages to elements /*! Sends each element in the array a message. diff --git a/Tests/Foundation/CPArrayTest.j b/Tests/Foundation/CPArrayTest.j index a99dfc931..248df12e5 100644 --- a/Tests/Foundation/CPArrayTest.j +++ b/Tests/Foundation/CPArrayTest.j @@ -198,7 +198,6 @@ } context:13] same:1]; } - - (void)test_indexOfObjectWithOptions_passingTest { var array = [[[self class] arrayClass] arrayWithObjects: @@ -357,6 +356,111 @@ } +- (void)test_indexesOfObjectPassingTest_ +{ + var array = [[[self class] arrayClass] arrayWithObjects: + { name:@"Tom", age:7 }, + { name:@"Dick", age:13 }, + { name:@"Harry", age:27 }, + { name:@"Zelda", age:7 }]; + + [self assert:[array indexesOfObjectPassingTest:function() { return YES; }] equals:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(0, 4)]]; + [self assert:[array indexesOfObjectPassingTest:function() { return NO; }] equals:[CPIndexSet indexSet]]; + [self assert:[array indexesOfObjectPassingTest:function() { return nil; }] equals:[CPIndexSet indexSet]]; + + [self assert:[array indexesOfObjectPassingTest:function(anObject, anIndex) + { + return [anObject.name isEqual:@"Harry"]; + }] equals:[CPIndexSet indexSetWithIndex:2]]; + + var indexSet = [CPIndexSet indexSetWithIndex:0]; + [indexSet addIndex:3]; + + [self assert:[array indexesOfObjectPassingTest:function(anObject, anIndex) + { + return anObject.age === 7; + }] equals:indexSet]; + + [self assert:[array indexesOfObjectPassingTest:function(anObject, anIndex) + { + return [anObject.name isEqual:@"Horton"]; + }] equals:[CPIndexSet indexSet]]; +} + +- (void)test_indexesOfObjectPassingTest_context_ +{ + var array = [[[self class] arrayClass] arrayWithObjects: + { name:@"Tom", age:7 }, + { name:@"Dick", age:13 }, + { name:@"Harry", age:27 }, + { name:@"Zelda", age:7 }]; + + [self assert:[array indexesOfObjectPassingTest:function(anObject, anIndex, aContext) + { + return [anObject.name isEqual:aContext]; + } context:@"Harry"] equals:[CPIndexSet indexSetWithIndex:2]]; + + var indexSet = [CPIndexSet indexSetWithIndex:0]; + [indexSet addIndex:3]; + + [self assert:[array indexesOfObjectPassingTest:function(anObject, anIndex, aContext) + { + return anObject.age === aContext; + } context:7] equals:indexSet]; +} + +- (void)test_indexesOfObjectWithOptions_passingTest +{ + var array = [[[self class] arrayClass] arrayWithObjects: + { name:@"Tom", age:7 }, + { name:@"Dick", age:13 }, + { name:@"Harry", age:27 }, + { name:@"Zelda", age:7 }], + namePredicate = function(anObject, anIndex) + { + return [anObject.name isEqual:@"Harry"]; + }, + agePredicate = function(anObject, anIndex) + { + return anObject.age === 7; + }; + + [self assert:[array indexesOfObjectWithOptions:CPEnumerationNormal passingTest:namePredicate] equals:[CPIndexSet indexSetWithIndex:2]]; + [self assert:[array indexesOfObjectWithOptions:CPEnumerationReverse passingTest:namePredicate] equals:[CPIndexSet indexSetWithIndex:2]]; + + var indexSet = [CPIndexSet indexSetWithIndex:0]; + [indexSet addIndex:3]; + + [self assert:[array indexesOfObjectWithOptions:CPEnumerationNormal passingTest:agePredicate] equals:indexSet]; + [self assert:[array indexesOfObjectWithOptions:CPEnumerationReverse passingTest:agePredicate] equals:indexSet]; +} + +- (void)test_indexesOfObjectWithOptions_passingTest_context +{ + var array = [[[self class] arrayClass] arrayWithObjects: + { name:@"Tom", age:7 }, + { name:@"Dick", age:13 }, + { name:@"Harry", age:27 }, + { name:@"Zelda", age:7 }], + namePredicate = function(anObject, anIndex, aContext) + { + return [anObject.name isEqual:aContext]; + }, + agePredicate = function(anObject, anIndex, aContext) + { + return anObject.age === aContext; + }; + + [self assert:[array indexesOfObjectWithOptions:CPEnumerationNormal passingTest:namePredicate context:@"Harry"] equals:[CPIndexSet indexSetWithIndex:2]]; + [self assert:[array indexesOfObjectWithOptions:CPEnumerationReverse passingTest:namePredicate context:@"Harry"] equals:[CPIndexSet indexSetWithIndex:2]]; + + var indexSet = [CPIndexSet indexSetWithIndex:0]; + [indexSet addIndex:3]; + + [self assert:[array indexesOfObjectWithOptions:CPEnumerationNormal passingTest:agePredicate context:7] equals:indexSet]; + [self assert:[array indexesOfObjectWithOptions:CPEnumerationReverse passingTest:agePredicate context:7] equals:indexSet]; +} + - (void)test_isEqualToArray_ { var arrayClass = [[self class] arrayClass], From 1d29fda5fd3fdb92332179c3c653a40e83b2934a Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Wed, 4 Jul 2012 16:25:59 -0400 Subject: [PATCH 022/109] Added missing @ --- AppKit/CPTableView.j | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/AppKit/CPTableView.j b/AppKit/CPTableView.j index b2fdb2b01..756538771 100644 --- a/AppKit/CPTableView.j +++ b/AppKit/CPTableView.j @@ -723,7 +723,7 @@ NOT YET IMPLEMENTED - (void)setAlternatingRowBackgroundColors:(CPArray)alternatingRowBackgroundColors { - [self setValue:alternatingRowBackgroundColors forThemeAttribute:"alternating-row-colors"]; + [self setValue:alternatingRowBackgroundColors forThemeAttribute:@"alternating-row-colors"]; [self setNeedsDisplay:YES]; } @@ -781,7 +781,7 @@ NOT YET IMPLEMENTED */ - (void)setSelectionHighlightColor:(CPColor)aColor { - [self setValue:aColor forThemeAttribute:"selection-color"]; + [self setValue:aColor forThemeAttribute:@"selection-color"]; [self setNeedsDisplay:YES]; } @@ -807,7 +807,7 @@ NOT YET IMPLEMENTED */ - (void)setSelectionGradientColors:(CPDictionary)aDictionary { - [self setValue:aDictionary forThemeAttribute:"sourcelist-selection-color"]; + [self setValue:aDictionary forThemeAttribute:@"sourcelist-selection-color"]; [self setNeedsDisplay:YES]; } @@ -831,7 +831,7 @@ NOT YET IMPLEMENTED */ - (void)setGridColor:(CPColor)aColor { - [self setValue:aColor forThemeAttribute:"grid-color"]; + [self setValue:aColor forThemeAttribute:@"grid-color"]; [self setNeedsDisplay:YES]; } @@ -2725,7 +2725,7 @@ Your delegate can implement this method to avoid subclassing the tableview to ad */ - (CPImage)_tableHeaderSortImage { - return [self currentValueForThemeAttribute:"sort-image"]; + return [self currentValueForThemeAttribute:@"sort-image"]; } /*! @@ -2733,7 +2733,7 @@ Your delegate can implement this method to avoid subclassing the tableview to ad */ - (CPImage)_tableHeaderReverseSortImage { - return [self currentValueForThemeAttribute:"sort-image-reversed"]; + return [self currentValueForThemeAttribute:@"sort-image-reversed"]; } /*! @@ -3840,7 +3840,7 @@ Your delegate can implement this method to avoid subclassing the tableview to ad } CGContextClosePath(context); - CGContextSetStrokeColor(context, [self currentValueForThemeAttribute:"highlighted-grid-color"]); + CGContextSetStrokeColor(context, [self currentValueForThemeAttribute:@"highlighted-grid-color"]); CGContextStrokePath(context); } From e9fb82172129fce96fae635b6c93cb4182c69424 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Wed, 4 Jul 2012 16:39:47 -0400 Subject: [PATCH 023/109] Make the default grid color in IB show correctly in CPTableView Currently #888888 is being used as the default, mainly because NSColor.j doesn't recognize the "gridColor" named color, and the cached color in the .xib is #888888 for some reason. Actually the default grid color is #CCCCCC. --- AppKit/Themes/Aristo/ThemeDescriptors.j | 24 +++++++------- Tools/nib2cib/NSColor.j | 43 +++++++++++++------------ Tools/nib2cib/NSTableView.j | 6 +--- 3 files changed, 35 insertions(+), 38 deletions(-) diff --git a/AppKit/Themes/Aristo/ThemeDescriptors.j b/AppKit/Themes/Aristo/ThemeDescriptors.j index d4166a9c5..602e8db92 100755 --- a/AppKit/Themes/Aristo/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo/ThemeDescriptors.j @@ -1556,7 +1556,7 @@ var themedButtonValues = nil, sortImage = PatternImage("tableview-headerview-ascending.png", 9.0, 8.0), sortImageReversed = PatternImage("tableview-headerview-descending.png", 9.0, 8.0), alternatingRowColors = [[CPColor whiteColor], [CPColor colorWithRed:245.0 / 255.0 green:249.0 / 255.0 blue:252.0 / 255.0 alpha:1.0]], - gridColor = [CPColor colorWithHexString:@"dce0e2"], + gridColor = [CPColor colorWithHexString:@"cccccc"], selectionColor = [CPColor colorWithHexString:@"5f83b9"], sourceListSelectionColor = [CPDictionary dictionaryWithObjects: [CGGradientCreateWithColorComponents(CGColorSpaceCreateDeviceRGB(), [98.0 / 255.0, 143.0 / 210.0, 209.0 / 255.0, 1.0, 46.0 / 255.0, 88.0 / 176.0, 208.0 / 255.0,1.0], [0,1], 2), [CPColor colorWithCalibratedRed:81.0 / 255.0 green:127.0 / 255.0 blue:200.0 / 255.0 alpha:1.0], @@ -1749,17 +1749,17 @@ var themedButtonValues = nil, removeImage = PatternImage(@"rule-editor-remove.png", 8.0, 8.0); var ruleEditorThemedValues = - [ - [@"alternating-row-colors", backgroundColors], - [@"selected-color", selectedActiveRowColor, CPThemeStateNormal], - [@"selected-color", selectedInactiveRowColor, CPThemeStateDisabled], - [@"slice-top-border-color", sliceTopBorderColor], - [@"slice-bottom-border-color", sliceBottomBorderColor], - [@"slice-last-bottom-border-color", sliceLastBottomBorderColor], - [@"font", [CPFont systemFontOfSize:10.0]], - [@"add-image", addImage], - [@"remove-image", removeImage] - ]; + [ + [@"alternating-row-colors", backgroundColors], + [@"selected-color", selectedActiveRowColor, CPThemeStateNormal], + [@"selected-color", selectedInactiveRowColor, CPThemeStateDisabled], + [@"slice-top-border-color", sliceTopBorderColor], + [@"slice-bottom-border-color", sliceBottomBorderColor], + [@"slice-last-bottom-border-color", sliceLastBottomBorderColor], + [@"font", [CPFont systemFontOfSize:10.0]], + [@"add-image", addImage], + [@"remove-image", removeImage] + ]; [self registerThemeValues:ruleEditorThemedValues forView:ruleEditor]; diff --git a/Tools/nib2cib/NSColor.j b/Tools/nib2cib/NSColor.j index 78d44ff6e..c4d3c830c 100644 --- a/Tools/nib2cib/NSColor.j +++ b/Tools/nib2cib/NSColor.j @@ -74,6 +74,7 @@ var NSUnknownColorSpaceModel = -1, result = [CPColor colorWithCalibratedWhite:values[0] alpha:values[1]]; break; + /* case 5: var cmyk = [aCoder decodeBytesForKey:@"NSCMYK"], @@ -87,37 +88,37 @@ var NSUnknownColorSpaceModel = -1, result = [CPColor colorWithDeviceCyan:values[0] magenta:values[1] yellow:values[2] black:values[3] alpha:values[4]]; break; */ - case 6: + + case 6: // named color var catalogName = [aCoder decodeObjectForKey:@"NSCatalogName"], colorName = [aCoder decodeObjectForKey:@"NSColorName"], - color = [aCoder decodeObjectForKey:@"NSColor"]; - - // We don't having color mappings implemented, so just use the cached NSColor + color = [aCoder decodeObjectForKey:@"NSColor"], + result = nil; if (catalogName === @"System") { - var //display = [NSDisplay currentDisplay], - result = null;//[display colorWithName: colorName]; - - if (colorName === @"controlColor") - result = nil; - - else if (colorName === @"controlBackgroundColor") - result = [CPColor whiteColor]; - - else if (!result) + switch (colorName) { - result = color; - //[display _addSystemColor: result forName: colorName]; + case "controlColor": + result = [CPColor colorWithCalibratedWhite:175.0 / 255.0 alpha:1.0]; + break; + + case "controlBackgroundColor": + result = [CPColor whiteColor]; + break; + + case "gridColor": + result = [CPColor colorWithCalibratedWhite:204.0 / 255.0 alpha:1.0]; + break; + + default: + result = color; } } else - { - result = null;//[CPColor colorWithCatalogName: catalogName colorName: colorName]; - if (!result) - result = color; - } + result = color; break; + default: CPLog.warn(@"-[%@ %s] unknown color space %d", isa, _cmd, colorSpace); result = [CPColor blackColor]; diff --git a/Tools/nib2cib/NSTableView.j b/Tools/nib2cib/NSTableView.j index b54ebb1a8..a41342a45 100644 --- a/Tools/nib2cib/NSTableView.j +++ b/Tools/nib2cib/NSTableView.j @@ -59,11 +59,7 @@ _intercellSpacing = CGSizeMake([aCoder decodeFloatForKey:@"NSIntercellSpacingWidth"], [aCoder decodeFloatForKey:@"NSIntercellSpacingHeight"]); - var gridColor = [aCoder decodeObjectForKey:@"NSGridColor"]; - - if (![gridColor isEqual:[CPColor colorWithRed:127.0 / 255.0 green:127.0 / 255.0 blue:127.0 / 255.0 alpha:1.0]]) - [self setValue:gridColor forThemeAttribute:@"grid-color"]; - + [self setValue:[aCoder decodeObjectForKey:@"NSGridColor"] forThemeAttribute:@"grid-color"]; _gridStyleMask = [aCoder decodeIntForKey:@"NSGridStyleMask"]; _usesAlternatingRowBackgroundColors = (flags & 0x00800000) ? YES : NO; From 593f3c2109a147c243b023face70ab0f62b9b046 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Wed, 4 Jul 2012 17:03:53 -0400 Subject: [PATCH 024/109] Fixed the method names --- Foundation/CPArray/CPArray.j | 14 ++++++------ Tests/Foundation/CPArrayTest.j | 40 +++++++++++++++++----------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/Foundation/CPArray/CPArray.j b/Foundation/CPArray/CPArray.j index 8a2dd673c..8a40866e1 100755 --- a/Foundation/CPArray/CPArray.j +++ b/Foundation/CPArray/CPArray.j @@ -491,9 +491,9 @@ var concat = Array.prototype.concat, or nil to stop the search, which will return \c CPNotFound to the sender. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectPassingTest:(Function)aPredicate +- (CPIndexSet)indexesOfObjectsPassingTest:(Function)aPredicate { - return [self indexesOfObjectWithOptions:CPEnumerationNormal passingTest:aPredicate context:undefined]; + return [self indexesOfObjectsWithOptions:CPEnumerationNormal passingTest:aPredicate context:undefined]; } /*! @@ -505,9 +505,9 @@ var concat = Array.prototype.concat, @param context An object that contains context information you want passed to the predicate function. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectPassingTest:(Function)aPredicate context:(id)aContext +- (CPIndexSet)indexesOfObjectsPassingTest:(Function)aPredicate context:(id)aContext { - return [self indexesOfObjectWithOptions:CPEnumerationNormal passingTest:aPredicate context:aContext]; + return [self indexesOfObjectsWithOptions:CPEnumerationNormal passingTest:aPredicate context:aContext]; } /*! @@ -520,9 +520,9 @@ var concat = Array.prototype.concat, or nil to stop the search, which will return CPNotFound to the sender. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectWithOptions:(CPEnumerationOptions)options passingTest:(Function)aPredicate +- (CPIndexSet)indexesOfObjectsWithOptions:(CPEnumerationOptions)options passingTest:(Function)aPredicate { - return [self indexesOfObjectWithOptions:options passingTest:aPredicate context:undefined]; + return [self indexesOfObjectsWithOptions:options passingTest:aPredicate context:undefined]; } /*! @@ -536,7 +536,7 @@ var concat = Array.prototype.concat, @param context An object that contains context information you want passed to the predicate function. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectWithOptions:(CPEnumerationOptions)options passingTest:(Function)aPredicate context:(id)aContext +- (CPIndexSet)indexesOfObjectsWithOptions:(CPEnumerationOptions)options passingTest:(Function)aPredicate context:(id)aContext { // We don't use an enumerator because they return nil to indicate end of enumeration, // but nil may actually be the value we are looking for, so we have to loop over the array. diff --git a/Tests/Foundation/CPArrayTest.j b/Tests/Foundation/CPArrayTest.j index 248df12e5..df51505f4 100644 --- a/Tests/Foundation/CPArrayTest.j +++ b/Tests/Foundation/CPArrayTest.j @@ -356,7 +356,7 @@ } -- (void)test_indexesOfObjectPassingTest_ +- (void)test_indexesOfObjectsPassingTest_ { var array = [[[self class] arrayClass] arrayWithObjects: { name:@"Tom", age:7 }, @@ -364,11 +364,11 @@ { name:@"Harry", age:27 }, { name:@"Zelda", age:7 }]; - [self assert:[array indexesOfObjectPassingTest:function() { return YES; }] equals:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(0, 4)]]; - [self assert:[array indexesOfObjectPassingTest:function() { return NO; }] equals:[CPIndexSet indexSet]]; - [self assert:[array indexesOfObjectPassingTest:function() { return nil; }] equals:[CPIndexSet indexSet]]; + [self assert:[array indexesOfObjectsPassingTest:function() { return YES; }] equals:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(0, 4)]]; + [self assert:[array indexesOfObjectsPassingTest:function() { return NO; }] equals:[CPIndexSet indexSet]]; + [self assert:[array indexesOfObjectsPassingTest:function() { return nil; }] equals:[CPIndexSet indexSet]]; - [self assert:[array indexesOfObjectPassingTest:function(anObject, anIndex) + [self assert:[array indexesOfObjectsPassingTest:function(anObject, anIndex) { return [anObject.name isEqual:@"Harry"]; }] equals:[CPIndexSet indexSetWithIndex:2]]; @@ -376,18 +376,18 @@ var indexSet = [CPIndexSet indexSetWithIndex:0]; [indexSet addIndex:3]; - [self assert:[array indexesOfObjectPassingTest:function(anObject, anIndex) + [self assert:[array indexesOfObjectsPassingTest:function(anObject, anIndex) { return anObject.age === 7; }] equals:indexSet]; - [self assert:[array indexesOfObjectPassingTest:function(anObject, anIndex) + [self assert:[array indexesOfObjectsPassingTest:function(anObject, anIndex) { return [anObject.name isEqual:@"Horton"]; }] equals:[CPIndexSet indexSet]]; } -- (void)test_indexesOfObjectPassingTest_context_ +- (void)test_indexesOfObjectsPassingTest_context_ { var array = [[[self class] arrayClass] arrayWithObjects: { name:@"Tom", age:7 }, @@ -395,7 +395,7 @@ { name:@"Harry", age:27 }, { name:@"Zelda", age:7 }]; - [self assert:[array indexesOfObjectPassingTest:function(anObject, anIndex, aContext) + [self assert:[array indexesOfObjectsPassingTest:function(anObject, anIndex, aContext) { return [anObject.name isEqual:aContext]; } context:@"Harry"] equals:[CPIndexSet indexSetWithIndex:2]]; @@ -403,13 +403,13 @@ var indexSet = [CPIndexSet indexSetWithIndex:0]; [indexSet addIndex:3]; - [self assert:[array indexesOfObjectPassingTest:function(anObject, anIndex, aContext) + [self assert:[array indexesOfObjectsPassingTest:function(anObject, anIndex, aContext) { return anObject.age === aContext; } context:7] equals:indexSet]; } -- (void)test_indexesOfObjectWithOptions_passingTest +- (void)test_indexesOfObjectsWithOptions_passingTest { var array = [[[self class] arrayClass] arrayWithObjects: { name:@"Tom", age:7 }, @@ -425,17 +425,17 @@ return anObject.age === 7; }; - [self assert:[array indexesOfObjectWithOptions:CPEnumerationNormal passingTest:namePredicate] equals:[CPIndexSet indexSetWithIndex:2]]; - [self assert:[array indexesOfObjectWithOptions:CPEnumerationReverse passingTest:namePredicate] equals:[CPIndexSet indexSetWithIndex:2]]; + [self assert:[array indexesOfObjectsWithOptions:CPEnumerationNormal passingTest:namePredicate] equals:[CPIndexSet indexSetWithIndex:2]]; + [self assert:[array indexesOfObjectsWithOptions:CPEnumerationReverse passingTest:namePredicate] equals:[CPIndexSet indexSetWithIndex:2]]; var indexSet = [CPIndexSet indexSetWithIndex:0]; [indexSet addIndex:3]; - [self assert:[array indexesOfObjectWithOptions:CPEnumerationNormal passingTest:agePredicate] equals:indexSet]; - [self assert:[array indexesOfObjectWithOptions:CPEnumerationReverse passingTest:agePredicate] equals:indexSet]; + [self assert:[array indexesOfObjectsWithOptions:CPEnumerationNormal passingTest:agePredicate] equals:indexSet]; + [self assert:[array indexesOfObjectsWithOptions:CPEnumerationReverse passingTest:agePredicate] equals:indexSet]; } -- (void)test_indexesOfObjectWithOptions_passingTest_context +- (void)test_indexesOfObjectsWithOptions_passingTest_context { var array = [[[self class] arrayClass] arrayWithObjects: { name:@"Tom", age:7 }, @@ -451,14 +451,14 @@ return anObject.age === aContext; }; - [self assert:[array indexesOfObjectWithOptions:CPEnumerationNormal passingTest:namePredicate context:@"Harry"] equals:[CPIndexSet indexSetWithIndex:2]]; - [self assert:[array indexesOfObjectWithOptions:CPEnumerationReverse passingTest:namePredicate context:@"Harry"] equals:[CPIndexSet indexSetWithIndex:2]]; + [self assert:[array indexesOfObjectsWithOptions:CPEnumerationNormal passingTest:namePredicate context:@"Harry"] equals:[CPIndexSet indexSetWithIndex:2]]; + [self assert:[array indexesOfObjectsWithOptions:CPEnumerationReverse passingTest:namePredicate context:@"Harry"] equals:[CPIndexSet indexSetWithIndex:2]]; var indexSet = [CPIndexSet indexSetWithIndex:0]; [indexSet addIndex:3]; - [self assert:[array indexesOfObjectWithOptions:CPEnumerationNormal passingTest:agePredicate context:7] equals:indexSet]; - [self assert:[array indexesOfObjectWithOptions:CPEnumerationReverse passingTest:agePredicate context:7] equals:indexSet]; + [self assert:[array indexesOfObjectsWithOptions:CPEnumerationNormal passingTest:agePredicate context:7] equals:indexSet]; + [self assert:[array indexesOfObjectsWithOptions:CPEnumerationReverse passingTest:agePredicate context:7] equals:indexSet]; } - (void)test_isEqualToArray_ From 618194996aa4a7ab8cbe8bb527cdef8e183d1b46 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Wed, 4 Jul 2012 17:29:28 -0400 Subject: [PATCH 025/109] Fixed CPString -hasSuffix docs --- Foundation/CPString.j | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Foundation/CPString.j b/Foundation/CPString.j index 4dc630026..c7da015b1 100644 --- a/Foundation/CPString.j +++ b/Foundation/CPString.j @@ -550,7 +550,7 @@ var CPStringUIDs = new CFMutableDictionary(), } /*! - Returns \c NO if the receiver ends + Returns \c YES if the receiver ends with the specified string. If \c aString is empty, the method will return \c NO. */ From 34be9cea3a10466f39c70d8a2324874419815779 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Wed, 4 Jul 2012 23:17:38 +0100 Subject: [PATCH 026/109] Refs #1559. Fix split view autosave test. --- Tests/AppKit/CPSplitViewTest.j | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Tests/AppKit/CPSplitViewTest.j b/Tests/AppKit/CPSplitViewTest.j index 04a99b9be..6551c07b5 100644 --- a/Tests/AppKit/CPSplitViewTest.j +++ b/Tests/AppKit/CPSplitViewTest.j @@ -125,12 +125,12 @@ // Recreate the split view. [self setUp]; [splitView setAutosaveName:@"Charles"]; + // FIXME At the moment restore from autosave only happens if the split view is loaded from a // coder. It seems like it should happen when initialising in code too, but some research of - // Cocoa's behaviour will need to be done first. - splitView._needsRestoreFromAutosave = YES; - // Trigger autosave restore. - [splitView setFrameSize:CGSizeMake(110, 100)]; + // Cocoa's behaviour will need to be done first. For now, trigger it by hand. + [splitView _restoreFromAutosave]; + [self assert:25 equals:[viewA frameSize].height message:@"divider position restored"]; } From 8afb67521d0ce3527759e41a4f3a245616006199 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Wed, 4 Jul 2012 23:26:07 +0100 Subject: [PATCH 027/109] Annotate indexesOfObjectsPassingTest: function signature. --- Foundation/CPArray/CPArray.j | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Foundation/CPArray/CPArray.j b/Foundation/CPArray/CPArray.j index 8a40866e1..131189507 100755 --- a/Foundation/CPArray/CPArray.j +++ b/Foundation/CPArray/CPArray.j @@ -491,7 +491,7 @@ var concat = Array.prototype.concat, or nil to stop the search, which will return \c CPNotFound to the sender. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectsPassingTest:(Function)aPredicate +- (CPIndexSet)indexesOfObjectsPassingTest:(Function /*(id anObject, int idx)*/)aPredicate { return [self indexesOfObjectsWithOptions:CPEnumerationNormal passingTest:aPredicate context:undefined]; } @@ -505,7 +505,7 @@ var concat = Array.prototype.concat, @param context An object that contains context information you want passed to the predicate function. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectsPassingTest:(Function)aPredicate context:(id)aContext +- (CPIndexSet)indexesOfObjectsPassingTest:(Function /*(id anObject, int idx, id context)*/)aPredicate context:(id)aContext { return [self indexesOfObjectsWithOptions:CPEnumerationNormal passingTest:aPredicate context:aContext]; } @@ -520,7 +520,7 @@ var concat = Array.prototype.concat, or nil to stop the search, which will return CPNotFound to the sender. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectsWithOptions:(CPEnumerationOptions)options passingTest:(Function)aPredicate +- (CPIndexSet)indexesOfObjectsWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int idx)*/)aPredicate { return [self indexesOfObjectsWithOptions:options passingTest:aPredicate context:undefined]; } @@ -536,7 +536,7 @@ var concat = Array.prototype.concat, @param context An object that contains context information you want passed to the predicate function. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectsWithOptions:(CPEnumerationOptions)options passingTest:(Function)aPredicate context:(id)aContext +- (CPIndexSet)indexesOfObjectsWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int idx, id context)*/)aPredicate context:(id)aContext { // We don't use an enumerator because they return nil to indicate end of enumeration, // but nil may actually be the value we are looking for, so we have to loop over the array. From 4094a1f826232aabbcb85534aa9f42f23a80ba5b Mon Sep 17 00:00:00 2001 From: Ilya Kulakov Date: Thu, 5 Jul 2012 16:40:20 +0700 Subject: [PATCH 028/109] Fix wrong change is sent to observer when top level object is changed. When you change the top level object, observer MUST receive value for the key path of the previous top level object as old and value for the key path of the new top level object as new. --- Foundation/CPKeyValueObserving.j | 9 ++++++- Tests/Foundation/CPKVOTest.j | 42 +++++++++++++++++++++++++++----- 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/Foundation/CPKeyValueObserving.j b/Foundation/CPKeyValueObserving.j index 5bcedbe5e..c30799283 100644 --- a/Foundation/CPKeyValueObserving.j +++ b/Foundation/CPKeyValueObserving.j @@ -1114,7 +1114,14 @@ var kvoNewAndOld = CPKeyValueObservingOptionNew | CPKeyValueObservingOpti { if (aKeyPath === _firstPart) { - [_observer observeValueForKeyPath:_firstPart ofObject:_object change:changes context:_context]; + var oldValue = [_value valueForKeyPath:_secondPart], + newValue = [_object valueForKeyPath:_firstPart+"."+_secondPart], + pathChanges = [CPDictionary dictionaryWithObjectsAndKeys: + newValue ? newValue : [CPNull null], CPKeyValueChangeNewKey, + oldValue ? oldValue : [CPNull null], CPKeyValueChangeOldKey, + CPKeyValueChangeSetting, CPKeyValueChangeKindKey]; + + [_observer observeValueForKeyPath:_firstPart+"."+_secondPart ofObject:_object change:pathChanges context:_context]; //since a has changed, we should remove ourselves as an observer of the old a, and observe the new one if (_value) diff --git a/Tests/Foundation/CPKVOTest.j b/Tests/Foundation/CPKVOTest.j index 5dde8c147..1254ba0ea 100644 --- a/Tests/Foundation/CPKVOTest.j +++ b/Tests/Foundation/CPKVOTest.j @@ -290,7 +290,10 @@ [a addObserver:self forKeyPath:"b.c.d.e.f" options:0 context:"testCrazyKeyPathChanges"]; - [a setValue:[D new] forKeyPath:"b.c.d"]; + var newD = [D new]; + [newD setValue:[E new] forKeyPath:@"e"]; + [newD setValue:[F new] forKeyPath:@"e.f"]; + [a setValue:newD forKeyPath:"b.c.d"]; [self assertTrue: _sawObservation message:"Never recieved an observation"]; } @@ -382,6 +385,22 @@ [self assertTrue: _sawObservation message:"Never recieved an observation"]; } +- (void)testChangeTopLevelObject +{ + var tester = [IndirectToManyTester new]; + + tester.tester = [ToManyTester new]; + + [tester.tester setValue:[1, 2, 3, 4] forKey:@"subviews"]; + [tester addObserver:self forKeyPath:@"tester.subviews" options:0 context:"testChangeTopLevelObject"]; + + var newTesterTester = [ToManyTester new]; + [newTesterTester setValue:[5, 6, 7, 8] forKey:@"subviews"]; + [tester setValue:newTesterTester forKey:@"tester"]; + + [self assertTrue: _sawObservation message:"Never recieved an observation"]; +} + - (void)testPerformance { bob = [PersonTester new]; @@ -537,21 +556,21 @@ break; case "testThreePartKeyPart2": - [self assertTrue: aKeyPath == "teacher.car" message:"Keypath should be: teacher.car, was: "+aKeyPath]; - [self assertTrue: newValue.year == "2000" message:"New value should be a car with year: 2000, was: "+[newValue description]]; + [self assertTrue: aKeyPath == "teacher.car.year" message:"Keypath should be: teacher.car, was: "+aKeyPath]; + [self assertTrue: newValue == "2000" message:"New value should be a car with year: 2000, was: "+[newValue description]]; [self assertTrue: anObject == cs101 message: "anObject should be: "+[cs101 description]+", was: "+[anObject description]]; break; case "testCrazyKeyPathChanges": [self assertTrue: [anObject class] == A message:"Should be observing an A class, was: "+[anObject class]]; - [self assertTrue: [newValue class] == D message:"Changed class was a D class, got: "+[newValue class]]; - [self assertTrue: aKeyPath == "b.c.d" message:"Expected keyPath b.c.d, got: "+aKeyPath]; + [self assertTrue: [newValue class] == F message:"Changed class was a F class, got: "+[newValue class]]; + [self assertTrue: aKeyPath == "b.c.d.e.f" message:"Expected keyPath b.c.d.e.f, got: "+aKeyPath]; break; case "testCrazyKeyPathChanges2": [self assertTrue: [anObject class] == A message:"Should be observing an A class, was: "+[anObject class]]; [self assertTrue: newValue == [CPNull null] message:"Expected null, got: "+newValue]; - [self assertTrue: aKeyPath == "b.c" message:"Expected keyPath b.c, got: "+aKeyPath]; + [self assertTrue: aKeyPath == "b.c.d.e.f" message:"Expected keyPath b.c.d.e.f, got: "+aKeyPath]; break; case "testCrazyKeyPathChanges3": @@ -616,6 +635,17 @@ break; + case "testChangeTopLevelObject": + var type = [changes objectForKey:CPKeyValueChangeKindKey]; + [self assertTrue: type == CPKeyValueChangeSetting message: "Should have been a set, was: "+type]; + + var oldValue = [changes objectForKey:CPKeyValueChangeOldKey], + newValue = [changes objectForKey:CPKeyValueChangeNewKey]; + [self assert:oldValue equals:[1, 2, 3, 4]]; + [self assert:newValue equals:[5, 6, 7, 8]]; + + break; + case "testRemoveFromToManyProperty": var type = [changes objectForKey:CPKeyValueChangeKindKey]; [self assertTrue: type == CPKeyValueChangeRemoval message: "Should have been a removal, was: "+type]; From d0bfde1887c5995dc490d24c962d716a57b6b2fd Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Thu, 5 Jul 2012 11:34:01 -0700 Subject: [PATCH 029/109] Annotate indexOfObject methods, use "index" instead of "idx" --- Foundation/CPArray/CPArray.j | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Foundation/CPArray/CPArray.j b/Foundation/CPArray/CPArray.j index 131189507..4fdc50f25 100755 --- a/Foundation/CPArray/CPArray.j +++ b/Foundation/CPArray/CPArray.j @@ -351,7 +351,7 @@ var concat = Array.prototype.concat, or nil to stop the search, which will return \c CPNotFound to the sender. @return The index of the first matching object, or \c CPNotFound if there is no matching object. */ -- (unsigned)indexOfObjectPassingTest:(Function)aPredicate +- (unsigned)indexOfObjectPassingTest:(Function /*(id anObject, int index)*/)aPredicate { return [self indexOfObjectWithOptions:CPEnumerationNormal passingTest:aPredicate context:undefined]; } @@ -365,7 +365,7 @@ var concat = Array.prototype.concat, @param context An object that contains context information you want passed to the predicate function. @return The index of the first matching object, or \c CPNotFound if there is no matching object. */ -- (unsigned)indexOfObjectPassingTest:(Function)aPredicate context:(id)aContext +- (unsigned)indexOfObjectPassingTest:(Function /*(id anObject, int index, id context)*/)aPredicate context:(id)aContext { return [self indexOfObjectWithOptions:CPEnumerationNormal passingTest:aPredicate context:aContext]; } @@ -380,7 +380,7 @@ var concat = Array.prototype.concat, or nil to stop the search, which will return CPNotFound to the sender. @return The index of the first matching object, or \c CPNotFound if there is no matching object. */ -- (unsigned)indexOfObjectWithOptions:(CPEnumerationOptions)options passingTest:(Function)aPredicate +- (unsigned)indexOfObjectWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int index)*/)aPredicate { return [self indexOfObjectWithOptions:options passingTest:aPredicate context:undefined]; } @@ -396,7 +396,7 @@ var concat = Array.prototype.concat, @param context An object that contains context information you want passed to the predicate function. @return The index of the first matching object, or \c CPNotFound if there is no matching object. */ -- (unsigned)indexOfObjectWithOptions:(CPEnumerationOptions)options passingTest:(Function)aPredicate context:(id)aContext +- (unsigned)indexOfObjectWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int index, id context)*/)aPredicate context:(id)aContext { // We don't use an enumerator because they return nil to indicate end of enumeration, // but nil may actually be the value we are looking for, so we have to loop over the array. @@ -491,7 +491,7 @@ var concat = Array.prototype.concat, or nil to stop the search, which will return \c CPNotFound to the sender. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectsPassingTest:(Function /*(id anObject, int idx)*/)aPredicate +- (CPIndexSet)indexesOfObjectsPassingTest:(Function /*(id anObject, int index)*/)aPredicate { return [self indexesOfObjectsWithOptions:CPEnumerationNormal passingTest:aPredicate context:undefined]; } @@ -505,7 +505,7 @@ var concat = Array.prototype.concat, @param context An object that contains context information you want passed to the predicate function. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectsPassingTest:(Function /*(id anObject, int idx, id context)*/)aPredicate context:(id)aContext +- (CPIndexSet)indexesOfObjectsPassingTest:(Function /*(id anObject, int index, id context)*/)aPredicate context:(id)aContext { return [self indexesOfObjectsWithOptions:CPEnumerationNormal passingTest:aPredicate context:aContext]; } @@ -520,7 +520,7 @@ var concat = Array.prototype.concat, or nil to stop the search, which will return CPNotFound to the sender. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectsWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int idx)*/)aPredicate +- (CPIndexSet)indexesOfObjectsWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int index)*/)aPredicate { return [self indexesOfObjectsWithOptions:options passingTest:aPredicate context:undefined]; } @@ -536,7 +536,7 @@ var concat = Array.prototype.concat, @param context An object that contains context information you want passed to the predicate function. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectsWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int idx, id context)*/)aPredicate context:(id)aContext +- (CPIndexSet)indexesOfObjectsWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int index, id context)*/)aPredicate context:(id)aContext { // We don't use an enumerator because they return nil to indicate end of enumeration, // but nil may actually be the value we are looking for, so we have to loop over the array. @@ -609,7 +609,7 @@ var concat = Array.prototype.concat, objj_msgSend([self objectAtIndex:index], aSelector); } -- (void)enumerateObjectsUsingBlock:(Function /*(id anObject, int idx, @ref BOOL stop)*/)aFunction +- (void)enumerateObjectsUsingBlock:(Function /*(id anObject, int index, @ref BOOL stop)*/)aFunction { // This could have been [self enumerateObjectsWithOptions:CPEnumerationNormal usingBlock:aFunction] // but this method should be as fast as possible. @@ -626,7 +626,7 @@ var concat = Array.prototype.concat, } } -- (void)enumerateObjectsWithOptions:(CPEnumerationOptions)options usingBlock:(Function /*(id anObject, int idx, @ref BOOL stop)*/)aFunction +- (void)enumerateObjectsWithOptions:(CPEnumerationOptions)options usingBlock:(Function /*(id anObject, int index, @ref BOOL stop)*/)aFunction { var shouldStop = NO; From b6adf265495845433ae5abe0a7d2b5aa78ff5ebe Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Thu, 5 Jul 2012 12:26:55 -0700 Subject: [PATCH 030/109] Make Alexander happy. ;-) --- Foundation/CPArray/CPArray.j | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Foundation/CPArray/CPArray.j b/Foundation/CPArray/CPArray.j index 4fdc50f25..7507a21d6 100755 --- a/Foundation/CPArray/CPArray.j +++ b/Foundation/CPArray/CPArray.j @@ -351,7 +351,7 @@ var concat = Array.prototype.concat, or nil to stop the search, which will return \c CPNotFound to the sender. @return The index of the first matching object, or \c CPNotFound if there is no matching object. */ -- (unsigned)indexOfObjectPassingTest:(Function /*(id anObject, int index)*/)aPredicate +- (unsigned)indexOfObjectPassingTest:(Function /*(id anObject, int idx)*/)aPredicate { return [self indexOfObjectWithOptions:CPEnumerationNormal passingTest:aPredicate context:undefined]; } @@ -365,7 +365,7 @@ var concat = Array.prototype.concat, @param context An object that contains context information you want passed to the predicate function. @return The index of the first matching object, or \c CPNotFound if there is no matching object. */ -- (unsigned)indexOfObjectPassingTest:(Function /*(id anObject, int index, id context)*/)aPredicate context:(id)aContext +- (unsigned)indexOfObjectPassingTest:(Function /*(id anObject, int idx, id context)*/)aPredicate context:(id)aContext { return [self indexOfObjectWithOptions:CPEnumerationNormal passingTest:aPredicate context:aContext]; } @@ -380,7 +380,7 @@ var concat = Array.prototype.concat, or nil to stop the search, which will return CPNotFound to the sender. @return The index of the first matching object, or \c CPNotFound if there is no matching object. */ -- (unsigned)indexOfObjectWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int index)*/)aPredicate +- (unsigned)indexOfObjectWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int idx)*/)aPredicate { return [self indexOfObjectWithOptions:options passingTest:aPredicate context:undefined]; } @@ -396,7 +396,7 @@ var concat = Array.prototype.concat, @param context An object that contains context information you want passed to the predicate function. @return The index of the first matching object, or \c CPNotFound if there is no matching object. */ -- (unsigned)indexOfObjectWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int index, id context)*/)aPredicate context:(id)aContext +- (unsigned)indexOfObjectWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int idx, id context)*/)aPredicate context:(id)aContext { // We don't use an enumerator because they return nil to indicate end of enumeration, // but nil may actually be the value we are looking for, so we have to loop over the array. @@ -491,7 +491,7 @@ var concat = Array.prototype.concat, or nil to stop the search, which will return \c CPNotFound to the sender. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectsPassingTest:(Function /*(id anObject, int index)*/)aPredicate +- (CPIndexSet)indexesOfObjectsPassingTest:(Function /*(id anObject, int idx)*/)aPredicate { return [self indexesOfObjectsWithOptions:CPEnumerationNormal passingTest:aPredicate context:undefined]; } @@ -505,7 +505,7 @@ var concat = Array.prototype.concat, @param context An object that contains context information you want passed to the predicate function. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectsPassingTest:(Function /*(id anObject, int index, id context)*/)aPredicate context:(id)aContext +- (CPIndexSet)indexesOfObjectsPassingTest:(Function /*(id anObject, int idx, id context)*/)aPredicate context:(id)aContext { return [self indexesOfObjectsWithOptions:CPEnumerationNormal passingTest:aPredicate context:aContext]; } @@ -520,7 +520,7 @@ var concat = Array.prototype.concat, or nil to stop the search, which will return CPNotFound to the sender. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectsWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int index)*/)aPredicate +- (CPIndexSet)indexesOfObjectsWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int idx)*/)aPredicate { return [self indexesOfObjectsWithOptions:options passingTest:aPredicate context:undefined]; } @@ -536,7 +536,7 @@ var concat = Array.prototype.concat, @param context An object that contains context information you want passed to the predicate function. @return A CPIndexSet of the matching object indexes. */ -- (CPIndexSet)indexesOfObjectsWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int index, id context)*/)aPredicate context:(id)aContext +- (CPIndexSet)indexesOfObjectsWithOptions:(CPEnumerationOptions)options passingTest:(Function /*(id anObject, int idx, id context)*/)aPredicate context:(id)aContext { // We don't use an enumerator because they return nil to indicate end of enumeration, // but nil may actually be the value we are looking for, so we have to loop over the array. @@ -609,7 +609,7 @@ var concat = Array.prototype.concat, objj_msgSend([self objectAtIndex:index], aSelector); } -- (void)enumerateObjectsUsingBlock:(Function /*(id anObject, int index, @ref BOOL stop)*/)aFunction +- (void)enumerateObjectsUsingBlock:(Function /*(id anObject, int idx, @ref BOOL stop)*/)aFunction { // This could have been [self enumerateObjectsWithOptions:CPEnumerationNormal usingBlock:aFunction] // but this method should be as fast as possible. @@ -626,7 +626,7 @@ var concat = Array.prototype.concat, } } -- (void)enumerateObjectsWithOptions:(CPEnumerationOptions)options usingBlock:(Function /*(id anObject, int index, @ref BOOL stop)*/)aFunction +- (void)enumerateObjectsWithOptions:(CPEnumerationOptions)options usingBlock:(Function /*(id anObject, int idx, @ref BOOL stop)*/)aFunction { var shouldStop = NO; From 32737e0b7225e55c27938ce889be2cc7388582e4 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Fri, 6 Jul 2012 00:15:23 -0700 Subject: [PATCH 031/109] CPComboBox and CPTextField enhancements - Full Cocoa-compliant implementation of CPComboBox and CPComboBoxDelegate. - Better focus ring for CPTextField and all subclasses. - CPTextField and its subclasses draw disabled contents differently, per Cocoa. --- AppKit/AppKit.j | 1 + AppKit/CPComboBox.j | 1193 +++++++++++++++++ AppKit/CPKeyValueBinding.j | 2 + AppKit/CPTextField.j | 22 +- AppKit/CPTokenField.j | 43 +- .../Resources/combobox-bezel-center.png | Bin 0 -> 145 bytes .../combobox-bezel-disabled-center.png | Bin 0 -> 139 bytes .../combobox-bezel-disabled-left.png | Bin 0 -> 196 bytes .../combobox-bezel-disabled-right.png | Bin 0 -> 487 bytes .../combobox-bezel-focused-center.png | Bin 0 -> 162 bytes .../Resources/combobox-bezel-focused-left.png | Bin 0 -> 383 bytes .../combobox-bezel-focused-right.png | Bin 0 -> 700 bytes .../Aristo/Resources/combobox-bezel-left.png | Bin 0 -> 209 bytes .../combobox-bezel-no-border-center.png | Bin 0 -> 141 bytes ...mbobox-bezel-no-border-disabled-center.png | Bin 0 -> 141 bytes ...combobox-bezel-no-border-disabled-left.png | Bin 0 -> 211 bytes ...ombobox-bezel-no-border-disabled-right.png | Bin 0 -> 392 bytes ...ombobox-bezel-no-border-focused-center.png | Bin 0 -> 162 bytes .../combobox-bezel-no-border-focused-left.png | Bin 0 -> 373 bytes ...combobox-bezel-no-border-focused-right.png | Bin 0 -> 615 bytes .../combobox-bezel-no-border-left.png | Bin 0 -> 220 bytes .../combobox-bezel-no-border-right.png | Bin 0 -> 413 bytes .../Aristo/Resources/combobox-bezel-right.png | Bin 0 -> 527 bytes .../textfield-bezel-rounded-center.png | Bin 123 -> 141 bytes ...extfield-bezel-rounded-disabled-center.png | Bin 0 -> 141 bytes .../textfield-bezel-rounded-disabled-left.png | Bin 0 -> 436 bytes ...textfield-bezel-rounded-disabled-right.png | Bin 0 -> 473 bytes ...textfield-bezel-rounded-focused-center.png | Bin 149 -> 165 bytes .../textfield-bezel-rounded-focused-left.png | Bin 757 -> 837 bytes .../textfield-bezel-rounded-focused-right.png | Bin 735 -> 910 bytes .../textfield-bezel-rounded-left.png | Bin 559 -> 451 bytes .../textfield-bezel-rounded-right.png | Bin 531 -> 501 bytes .../Resources/textfield-bezel-square-0.png | Bin 1029 -> 155 bytes .../Resources/textfield-bezel-square-1.png | Bin 1004 -> 129 bytes .../Resources/textfield-bezel-square-2.png | Bin 1033 -> 161 bytes .../Resources/textfield-bezel-square-3.png | Bin 994 -> 117 bytes .../Resources/textfield-bezel-square-4.png | Bin 991 -> 109 bytes .../Resources/textfield-bezel-square-5.png | Bin 994 -> 115 bytes .../Resources/textfield-bezel-square-6.png | Bin 1034 -> 160 bytes .../Resources/textfield-bezel-square-7.png | Bin 997 -> 124 bytes .../Resources/textfield-bezel-square-8.png | Bin 1034 -> 161 bytes .../textfield-bezel-square-disabled-0.png | Bin 1029 -> 155 bytes .../textfield-bezel-square-disabled-1.png | Bin 1004 -> 129 bytes .../textfield-bezel-square-disabled-2.png | Bin 1031 -> 167 bytes .../textfield-bezel-square-disabled-3.png | Bin 994 -> 117 bytes .../textfield-bezel-square-disabled-4.png | Bin 991 -> 109 bytes .../textfield-bezel-square-disabled-5.png | Bin 994 -> 115 bytes .../textfield-bezel-square-disabled-6.png | Bin 1033 -> 153 bytes .../textfield-bezel-square-disabled-7.png | Bin 997 -> 124 bytes .../textfield-bezel-square-disabled-8.png | Bin 1034 -> 157 bytes .../textfield-bezel-square-focused-0.png | Bin 1112 -> 216 bytes .../textfield-bezel-square-focused-1.png | Bin 1012 -> 134 bytes .../textfield-bezel-square-focused-2.png | Bin 1132 -> 231 bytes .../textfield-bezel-square-focused-3.png | Bin 1012 -> 130 bytes .../textfield-bezel-square-focused-4.png | Bin 991 -> 109 bytes .../textfield-bezel-square-focused-5.png | Bin 1009 -> 129 bytes .../textfield-bezel-square-focused-6.png | Bin 1123 -> 229 bytes .../textfield-bezel-square-focused-7.png | Bin 1007 -> 134 bytes .../textfield-bezel-square-focused-8.png | Bin 1124 -> 218 bytes .../Resources/token-center-disabled.png | Bin 0 -> 153 bytes .../Aristo/Resources/token-left-disabled.png | Bin 0 -> 477 bytes .../Aristo/Resources/token-right-disabled.png | Bin 0 -> 498 bytes AppKit/Themes/Aristo/ThemeDescriptors.j | 230 +++- AppKit/_CPPopUpList.j | 849 ++++++++++++ AppKit/_CPPopUpListDataSource.j | 98 ++ Tests/Manual/CPComboBoxTest/AppController.j | 228 ++++ Tests/Manual/CPComboBoxTest/Info.plist | 10 + Tests/Manual/CPComboBoxTest/Jakefile | 94 ++ .../CPComboBoxTest/Resources/MainMenu.cib | 1 + .../CPComboBoxTest/Resources/MainMenu.xib | 828 ++++++++++++ .../CPComboBoxTest/Resources/spinner.gif | Bin 0 -> 1849 bytes Tests/Manual/CPComboBoxTest/index-debug.html | 103 ++ Tests/Manual/CPComboBoxTest/index.html | 78 ++ Tests/Manual/CPComboBoxTest/main.j | 18 + .../Manual/NewTextFieldBezel/AppController.j | 121 ++ Tests/Manual/NewTextFieldBezel/Info.plist | 12 + Tests/Manual/NewTextFieldBezel/Jakefile | 93 ++ .../NewTextFieldBezel/Resources/spinner.gif | Bin 0 -> 1849 bytes .../Manual/NewTextFieldBezel/index-debug.html | 107 ++ Tests/Manual/NewTextFieldBezel/index.html | 78 ++ Tests/Manual/NewTextFieldBezel/main.j | 18 + Tools/nib2cib/NSAppKit.j | 1 + Tools/nib2cib/NSComboBox.j | 105 ++ 83 files changed, 4252 insertions(+), 81 deletions(-) create mode 100644 AppKit/CPComboBox.j create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-center.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-disabled-center.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-disabled-left.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-disabled-right.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-focused-center.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-focused-left.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-focused-right.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-left.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-center.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-disabled-center.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-disabled-left.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-disabled-right.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-focused-center.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-focused-left.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-focused-right.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-left.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-right.png create mode 100644 AppKit/Themes/Aristo/Resources/combobox-bezel-right.png create mode 100644 AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-disabled-center.png create mode 100644 AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-disabled-left.png create mode 100644 AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-disabled-right.png create mode 100644 AppKit/Themes/Aristo/Resources/token-center-disabled.png create mode 100644 AppKit/Themes/Aristo/Resources/token-left-disabled.png create mode 100644 AppKit/Themes/Aristo/Resources/token-right-disabled.png create mode 100644 AppKit/_CPPopUpList.j create mode 100644 AppKit/_CPPopUpListDataSource.j create mode 100644 Tests/Manual/CPComboBoxTest/AppController.j create mode 100644 Tests/Manual/CPComboBoxTest/Info.plist create mode 100644 Tests/Manual/CPComboBoxTest/Jakefile create mode 100644 Tests/Manual/CPComboBoxTest/Resources/MainMenu.cib create mode 100644 Tests/Manual/CPComboBoxTest/Resources/MainMenu.xib create mode 100644 Tests/Manual/CPComboBoxTest/Resources/spinner.gif create mode 100644 Tests/Manual/CPComboBoxTest/index-debug.html create mode 100644 Tests/Manual/CPComboBoxTest/index.html create mode 100644 Tests/Manual/CPComboBoxTest/main.j create mode 100644 Tests/Manual/NewTextFieldBezel/AppController.j create mode 100644 Tests/Manual/NewTextFieldBezel/Info.plist create mode 100644 Tests/Manual/NewTextFieldBezel/Jakefile create mode 100644 Tests/Manual/NewTextFieldBezel/Resources/spinner.gif create mode 100644 Tests/Manual/NewTextFieldBezel/index-debug.html create mode 100644 Tests/Manual/NewTextFieldBezel/index.html create mode 100644 Tests/Manual/NewTextFieldBezel/main.j create mode 100644 Tools/nib2cib/NSComboBox.j diff --git a/AppKit/AppKit.j b/AppKit/AppKit.j index 2a34e76f4..c48b219d3 100644 --- a/AppKit/AppKit.j +++ b/AppKit/AppKit.j @@ -47,6 +47,7 @@ @import "CPColorPanel.j" @import "CPColorSpace.j" @import "CPColorWell.j" +@import "CPComboBox.j" @import "CPCompatibility.j" @import "CPControl.j" @import "CPController.j" diff --git a/AppKit/CPComboBox.j b/AppKit/CPComboBox.j new file mode 100644 index 000000000..1d2af4928 --- /dev/null +++ b/AppKit/CPComboBox.j @@ -0,0 +1,1193 @@ +/* + * CPComboBox.j + * AppKit + * + * Created by Aparajita Fishman. + * Copyright (c) 2012, The Cappuccino Foundation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +@import "CPTextField.j" +@import "_CPPopUpList.j" + + +CPComboBoxSelectionDidChangeNotification = @"CPComboBoxSelectionDidChangeNotification"; +CPComboBoxSelectionIsChangingNotification = @"CPComboBoxSelectionIsChangingNotification"; +CPComboBoxWillDismissNotification = @"CPComboBoxWillDismissNotification"; +CPComboBoxWillPopUpNotification = @"CPComboBoxWillPopUpNotification"; + +CPComboBoxStateButtonBordered = CPThemeState("button-bordered"); + +var CPComboBoxTextSubview = @"text", + CPComboBoxButtonSubview = @"button", + CPComboBoxDefaultNumberOfVisibleItems = 5, + CPComboBoxFocusRingWidth = -1; + + +@implementation CPComboBox : CPTextField +{ + CPArray _items; + _CPPopUpList _listDelegate; + CPComboBoxDataSource _dataSource; + BOOL _usesDataSource; + BOOL _completes; + BOOL _canComplete; + int _numberOfVisibleItems; + BOOL _forceSelection; + BOOL _hasVerticalScroller; + CPString _selectedStringValue; + BOOL _popUpButtonCausedResign; +} + ++ (CPString)defaultThemeClass +{ + return "combobox"; +} + ++ (id)themeAttributes +{ + return [CPDictionary dictionaryWithObjectsAndKeys:_CGSizeMake(21.0, 29.0), @"popup-button-size", _CGInsetMake(3.0, 3.0, 3.0, 3.0), @"border-inset"]; +} + ++ (Class)_binderClassForBinding:(CPString)theBinding +{ + if (theBinding === CPContentBinding || theBinding === CPContentValuesBinding) + return [_CPComboBoxContentBinder class]; + + return [super _binderClassForBinding:theBinding]; +} + +- (id)initWithFrame:(CGRect)aFrame +{ + self = [super initWithFrame:aFrame]; + + if (self) + [self _initComboBox]; + + return self; +} + +- (void)_initComboBox +{ + _items = [CPArray array]; + _listClass = [_CPPopUpList class]; + _usesDataSource = NO; + _completes = NO; + _canComplete = NO; + _numberOfVisibleItems = CPComboBoxDefaultNumberOfVisibleItems; + _forceSelection = NO; + _hasVerticalScroller = YES; + _selectedStringValue = @""; + _popUpButtonCausedResign = NO; + + [self setTheme:[CPTheme defaultTheme]]; + [self setBordered:YES]; + [self setBezeled:YES]; + [self setEditable:YES]; + [self setThemeState:CPComboBoxStateButtonBordered]; +} + +#pragma mark Setting Display Attributes + +- (BOOL)hasVerticalScroller +{ + return _hasVerticalScroller; +} + +- (void)setHasVerticalScroller:(BOOL)flag +{ + flag = !!flag; + + if (_hasVerticalScroller === flag) + return; + + _hasVerticalScroller = flag; + [[_listDelegate scrollView] setHasVerticalScroller:flag]; +} + +- (CGSize)intercellSpacing +{ + return [[_listDelegate tableView] intercellSpacing]; +} + +- (void)setIntercellSpacing:(CGSize)aSize +{ + [[_listDelegate tableView] setIntercellSpacing:aSize]; +} + +- (BOOL)isButtonBordered +{ + return [self hasThemeState:CPComboBoxStateButtonBordered]; +} + +- (void)setButtonBordered:(BOOL)flag +{ + if (!!flag) + [self setThemeState:CPComboBoxStateButtonBordered]; + else + [self unsetThemeState:CPComboBoxStateButtonBordered]; +} + +- (float)itemHeight +{ + return [[_listDelegate tableView] rowHeight]; +} + +- (void)setItemHeight:(float)itemHeight +{ + [[_listDelegate tableView] setRowHeight:itemHeight]; + + // FIXME: This shouldn't be necessary, but CPTableView does not tile after setRowHeight + [[_listDelegate tableView] reloadData]; +} + +- (int)numberOfVisibleItems +{ + return _numberOfVisibleItems; +} + +- (void)setNumberOfVisibleItems:(int)visibleItems +{ + // There should always be at least 1 visible item! + _numberOfVisibleItems = MAX(visibleItems, 1); +} + +#pragma mark Setting a Delegate + +- (id < CPComboBoxDelegate >)delegate +{ + return [super delegate]; +} + +/*! + Sets the CPComboBox delegate. Note that although the Cocoa + docs say that the delegate must conform to the NSComboBoxDelegate + protocol, in actual fact it doesn't. Also note that the same + delegate may conform to the NSTextFieldDelegate protocol. +*/ +- (void)setDelegate:(id < CPComboBoxDelegate >)aDelegate +{ + var delegate = [self delegate]; + + if (aDelegate === delegate) + return; + + var defaultCenter = [CPNotificationCenter defaultCenter]; + + if (delegate) + { + [defaultCenter removeObserver:delegate name:CPComboBoxSelectionIsChangingNotification object:self]; + [defaultCenter removeObserver:delegate name:CPComboBoxSelectionDidChangeNotification object:self]; + [defaultCenter removeObserver:delegate name:CPComboBoxWillDismissNotification object:self]; + [defaultCenter removeObserver:delegate name:CPComboBoxWillPopUpNotification object:self]; + } + + if (aDelegate) + { + if ([aDelegate respondsToSelector:@selector(comboBoxSelectionIsChanging:)]) + [defaultCenter addObserver:delegate + selector:@selector(comboBoxSelectionIsChanging:) + name:CPComboBoxSelectionIsChangingNotification + object:self]; + + if ([aDelegate respondsToSelector:@selector(comboBoxSelectionDidChange:)]) + [defaultCenter addObserver:delegate + selector:@selector(comboBoxSelectionDidChange:) + name:CPComboBoxSelectionDidChangeNotification + object:self]; + + if ([aDelegate respondsToSelector:@selector(comboBoxWillPopUp:)]) + [defaultCenter addObserver:delegate + selector:@selector(comboBoxWillPopUp:) + name:CPComboBoxWillPopUpNotification + object:self]; + + if ([aDelegate respondsToSelector:@selector(comboBoxWillDismiss:)]) + [defaultCenter addObserver:delegate + selector:@selector(comboBoxWillDissmis:) + name:CPComboBoxWillDismissNotification + object:self]; + } + + [super setDelegate:aDelegate]; +} + +#pragma mark Setting a Data Source + +- (id < CPComboBoxDataSource >)dataSource +{ + if (!_usesDataSource) + [self _dataSourceWarningForMethod:_cmd condition:NO]; + + return _dataSource; +} + +- (void)setDataSource:(id < CPComboBoxDataSource >)aSource +{ + if (!_usesDataSource) + [self _dataSourceWarningForMethod:_cmd condition:NO]; + else if (_dataSource !== aSource) + { + if (![aSource respondsToSelector:@selector(numberOfItemsInComboBox:)] || + ![aSource respondsToSelector:@selector(comboBox:objectValueForItemAtIndex:)]) + { + CPLog.warn("Illegal %s data source (%s). Must implement numberOfItemsInComboBox: and comboBox:objectValueForItemAtIndex:", [self className], [aSource description]); + } + else + _dataSource = aSource; + } +} + +- (BOOL)usesDataSource +{ + return _usesDataSource; +} + +- (void)setUsesDataSource:(BOOL)flag +{ + flag = !!flag; + + if (_usesDataSource === flag) + return; + + _usesDataSource = flag; + + // Cocoa empties the internal item list if usesDataSource is YES + if (_usesDataSource) + [_items removeAllObjects]; + + [self reloadData]; +} + +#pragma mark Working with an Internal List + +- (void)addItemsWithObjectValues:(CPArray)objects +{ + [_items addObjectsFromArray:objects]; + + [self reloadDataSourceForSelector:_cmd]; +} + +- (void)addItemWithObjectValue:(id)anObject +{ + [_items addObject:anObject]; + + [self reloadDataSourceForSelector:_cmd]; +} + +- (void)insertItemWithObjectValue:(id)anObject atIndex:(int)anIndex +{ + // Issue the warning first, because removeObjectAtIndex may raise + if (_usesDataSource) + [self _dataSourceWarningForMethod:_cmd condition:YES]; + + [_items insertObject:anObject atIndex:anIndex]; + [self reloadData]; +} + +/*! + Returns the internal array of items. NOTE: Unlike Cocoa the array is mutable, + since all arrays in Objective-J are mutable. But you should treat it as + an immutable array. Do NOT attempt to change the returned array in any way. + + If usesDataSource is YES, a warning is logged and an empty array is returned. +*/ +- (CPArray)objectValues +{ + if (_usesDataSource) + [self _dataSourceWarningForMethod:_cmd condition:YES]; + + return _items; +} + +- (void)removeAllItems +{ + [_items removeAllObjects]; + + [self reloadDataSourceForSelector:_cmd]; +} + +- (void)removeItemAtIndex:(int)index +{ + // Issue the warning first, because removeObjectAtIndex may raise + if (_usesDataSource) + [self _dataSourceWarningForMethod:_cmd condition:YES]; + + [_items removeObjectAtIndex:index]; + [self reloadData]; +} + +- (void)removeItemWithObjectValue:(id)anObject +{ + [_items removeObject:anObject]; + + [self reloadDataSourceForSelector:_cmd]; +} + +- (int)numberOfItems +{ + if (_usesDataSource) + return [_dataSource numberOfItemsInComboBox:self]; + else + return _items.length; +} + +#pragma mark Manipulating the Displayed List + +/*! + Returns the delegate to be used when creating the pop up list. +*/ +- (_CPPopUpList)listDelegate +{ + return _listDelegate; +} + +/*! + Sets the delegate to be used when creating the pop up list. + By default this is _CPPopUpList. If you are using a subclass + of _CPPopUpList, call this method with your subclass. +*/ +- (void)setListDelegate:(_CPPopUpList)aDelegate +{ + if (_listDelegate === aDelegate) + return; + + var defaultCenter = [CPNotificationCenter defaultCenter]; + + if (_listDelegate) + { + [defaultCenter removeObserver:self name:_CPPopUpListWillPopUpNotification object:_listDelegate]; + [defaultCenter removeObserver:self name:_CPPopUpListWillDismissNotification object:_listDelegate]; + [defaultCenter removeObserver:self name:_CPPopUpListDidDismissNotification object:_listDelegate]; + [defaultCenter removeObserver:self name:_CPPopUpListItemWasClickedNotification object:_listDelegate]; + + var oldTableView = [_listDelegate tableView]; + + if (oldTableView) + { + [defaultCenter removeObserver:self name:CPTableViewSelectionIsChangingNotification object:oldTableView]; + [defaultCenter removeObserver:self name:CPTableViewSelectionDidChangeNotification object:oldTableView]; + } + } + + _listDelegate = aDelegate; + + [defaultCenter addObserver:self + selector:@selector(comboBoxWillPopUp:) + name:_CPPopUpListWillPopUpNotification + object:_listDelegate]; + + [defaultCenter addObserver:self + selector:@selector(comboBoxWillDismiss:) + name:_CPPopUpListWillDismissNotification + object:_listDelegate]; + + [defaultCenter addObserver:self + selector:@selector(listDidDismiss:) + name:_CPPopUpListDidDismissNotification + object:_listDelegate]; + + [defaultCenter addObserver:self + selector:@selector(itemWasClicked:) + name:_CPPopUpListItemWasClickedNotification + object:_listDelegate]; + + [[_listDelegate scrollView] setHasVerticalScroller:_hasVerticalScroller]; + + var tableView = [_listDelegate tableView]; + + [defaultCenter addObserver:self + selector:@selector(comboBoxSelectionIsChanging:) + name:CPTableViewSelectionIsChangingNotification + object:tableView]; + + [defaultCenter addObserver:self + selector:@selector(comboBoxSelectionDidChange:) + name:CPTableViewSelectionDidChangeNotification + object:tableView]; + + // Apply our text style to the list + [_listDelegate setFont:[self font]]; + [_listDelegate setAlignment:[self alignment]]; +} + +- (int)indexOfItemWithObjectValue:(id)anObject +{ + if (_usesDataSource) + [self _dataSourceWarningForMethod:_cmd condition:YES]; + + return [_items indexOfObject:anObject]; +} + +- (id)itemObjectValueAtIndex:(int)index +{ + if (_usesDataSource) + [self _dataSourceWarningForMethod:_cmd condition:YES]; + + return [_items objectAtIndex:index]; +} + +- (void)noteNumberOfItemsChanged +{ + [[_listDelegate tableView] noteNumberOfRowsChanged]; +} + +- (void)scrollItemAtIndexToTop:(int)index +{ + [_listDelegate scrollItemAtIndexToTop:index]; +} + +- (void)scrollItemAtIndexToVisible:(int)index +{ + [[_listDelegate tableView] scrollRowToVisible:index]; +} + +- (void)reloadData +{ + [[_listDelegate tableView] reloadData]; +} + +/*! @ignore */ +- (void)popUpList +{ + if (!_listDelegate) + [self setListDelegate:[[_CPPopUpList alloc] initWithDataSource:self]]; + + [self _selectMatchingItem]; + + // Note the offset here is 1 less than the focus ring width because the outer edge + // of the focus ring is very transparent and it looks better if the list is closer. + if (CPComboBoxFocusRingWidth < 0) + { + var inset = [self currentValueForThemeAttribute:@"border-inset"]; + + CPComboBoxFocusRingWidth = inset.bottom; + } + + [_listDelegate popUpRelativeToRect:[self _borderFrame] view:self offset:CPComboBoxFocusRingWidth - 1]; +} + +/*! @ignore */ +- (BOOL)listIsVisible +{ + return _listDelegate ? [_listDelegate isVisible] : NO; +} + +/*! @ignore */ +- (void)reloadDataSourceForSelector:(SEL)cmd +{ + if (_usesDataSource) + [self _dataSourceWarningForMethod:cmd condition:YES] + else + [self reloadData]; +} + +/*! + If the list is non-empty, sets the value of the field from the currently selected value of the list + and returns YES. If the list is empty or the list has no selected item, returns NO. + @ignore +*/ +- (BOOL)takeStringValueFromList +{ + if (_usesDataSource && _dataSource && [_dataSource numberOfItemsInComboBox:self] === 0) + return NO; + + var selectedStringValue = [_listDelegate selectedStringValue]; + + if (selectedStringValue === nil) + return NO; + else + _selectedStringValue = selectedStringValue; + + [self setStringValue:_selectedStringValue]; + [self _reverseSetBinding]; + + return YES; +} + +/*! + The receiver receives this notification when the list is closed. + @ignore +*/ +- (void)listDidDismiss:(CPNotification)aNotification +{ + [[self window] makeFirstResponder:self]; +} + +/*! + The receiver receives this notification when an item in the list is clicked. + @ignore +*/ +- (void)itemWasClicked:(CPNotification)aNotification +{ + [self takeStringValueFromList]; + [self sendAction:[self action] to:[self target]]; +} + +#pragma mark Manipulating the Selection + +- (void)deselectItemAtIndex:(int)index +{ + var table = [_listDelegate tableView], + row = [table selectedRow]; + + if (row !== index) + return; + + [table deselectRow:index]; +} + +- (int)indexOfSelectedItem +{ + return [[_listDelegate tableView] selectedRow]; +} + +- (id)objectValueOfSelectedItem +{ + var row = [[_listDelegate tableView] selectedRow]; + + if (row >= 0) + { + if (_usesDataSource) + [self _dataSourceWarningForMethod:_cmd condition:YES]; + + return _items[row]; + } + + return nil; +} + +- (void)selectItemAtIndex:(int)index +{ + var table = [_listDelegate tableView], + row = [table selectedRow]; + + if (row === index) + return; + + [table selectRowIndexes:[CPIndexSet indexSetWithIndex:index] byExtendingSelection:NO]; +} + +- (void)selectItemWithObjectValue:(id)anObject +{ + var index = [self indexOfItemWithObjectValue:anObject]; + + if (index !== CPNotFound) + [self selectItemAtIndex:index]; +} + +#pragma mark Completing the Text Field + +- (BOOL)completes +{ + return _completes; +} + +- (void)setCompletes:(BOOL)flag +{ + _completes = !!flag; +} + +- (CPString)completedString:(CPString)substring +{ + if (_usesDataSource) + return [self comboBoxCompletedString:substring]; + else + { + var index = [_items indexOfObjectPassingTest:CPComboBoxCompletionTest context:substring]; + + return index !== CPNotFound ? _items[index] : nil; + } +} + +/*! + Returns whether the combo box forces the user to enter or select + an item that is in the item list. +*/ +- (BOOL)forceSelection +{ + return _forceSelection; +} + +/*! + Sets whether the combo box forces the user to enter or select + an item that is in the item list. If \c flag is \c YES and the user enters a value + that is not in the list, when the field loses focus it will revert + to the previous value. If \c flag is \c NO, the user can enter any value they wish. + + Note that this flag is ignored if \ref setStringValue or \ref setObjectValue are + called directly. +*/ +- (void)setForceSelection:(BOOL)flag +{ + _forceSelection = !!flag; +} + +#pragma mark CPTextField Delegate Methods and Overrides + +/*! @ignore */ +- (BOOL)sendAction:(SEL)anAction to:(id)anObject +{ + // When the action is sent, be sure to get the value and close the list. + // This covers the case where the action is triggered by pressing a key + // that triggers the text field action. + + if ([self listIsVisible]) + { + [self takeStringValueFromList]; + [_listDelegate close]; + } + + return [super sendAction:anAction to:anObject]; +} + +/*! @ignore */ +- (void)setObjectValue:(id)object +{ + [super setObjectValue:object]; + + _selectedStringValue = [self stringValue]; +} + +/*! @ignore */ +- (void)interpretKeyEvents:(CPArray)events +{ + var theEvent = events[0]; + + // Only if characters are added at the end of the value can completion occur + _canComplete = NO; + + if (_completes) + { + console.log("%d: %s", [theEvent keyCode], [theEvent _couldBeKeyEquivalent]); + if (![theEvent _couldBeKeyEquivalent] && [theEvent characters].charAt(0) !== CPDeleteCharacter) + { + var value = [self _inputElement].value, + selectedRange = [self selectedRange]; + + _canComplete = CPMaxRange(selectedRange) === value.length; + } + } + + [super interpretKeyEvents:events]; +} + +/*! @ignore */ +- (void)paste:(id)sender +{ + if (_completes) + { + // Completion can occur only if pasting at the end of the value + var value = [self _inputElement].value, + selectedRange = [self selectedRange]; + + _canComplete = CPMaxRange(selectedRange) === value.length; + } + else + _canComplete = NO; + + [super paste:sender]; +} + +/*! @ignore */ +- (void)textDidChange:(CPNotification)aNotification +{ + /* + Completion is attempted iff: + - _completes is YES + - Characters were added at the end of the value + */ + var uncompletedString = [self stringValue], + newString = uncompletedString; + + if (_completes && _canComplete) + { + newString = [self completedString:uncompletedString]; + + if (newString && newString.length > uncompletedString.length) + { + [self setStringValue:newString]; + [self setSelectedRange:CPMakeRange(uncompletedString.length, newString.length - uncompletedString.length)]; + } + } + + [self _selectMatchingItem]; + _canComplete = NO; + + [super textDidChange:aNotification]; +} + +/*! + Override of CPView -performKeyEquivalent + @ignore +*/ +- (BOOL)performKeyEquivalent:(CPEvent)anEvent +{ + if ([[self window] firstResponder] === self) + { + var key = [anEvent charactersIgnoringModifiers]; + + switch (key) + { + case CPDownArrowFunctionKey: + if (![self listIsVisible]) + { + [self popUpList]; + return YES; + } + break; + + case CPEscapeFunctionKey: + if ([self listIsVisible]) + { + // If we are forcing a selection and the user has entered a value which is not + // in the list, revert to the most recent valid value. + if (_forceSelection && ([self _inputElement].value !== _selectedStringValue)) + [self setStringValue:_selectedStringValue]; + } + break; + } + + if ([_listDelegate performKeyEquivalent:anEvent]) + return YES; + } + + return [super performKeyEquivalent:anEvent]; +} + +/*! @ignore */ +- (BOOL)resignFirstResponder +{ + var buttonCausedResign = _popUpButtonCausedResign; + + _popUpButtonCausedResign = NO; + + /* + If the list or popup button is clicked, we lose focus. The list will refuse first responder, + and we refuse to resign. But we still have to manually restore the focus to the input element. + */ + var shouldResign = !buttonCausedResign && (!_listDelegate || [_listDelegate controllingViewShouldResign]); + + if (!shouldResign) + { +#if PLATFORM(DOM) + // In FireFox this needs to be done in setTimeout, otherwise there is no caret + // We have to save the input element now, when we lose focus it will change. + var element = [self _inputElement]; + window.setTimeout(function() { element.focus(); }, 0); +#endif + + return NO; + } + + // The list was not clicked, we need to close it now + [_listDelegate close]; + + // If the field is empty, allow it to remain empty. + // Otherwise restore the most recently selected value if forcing selection. + var value = [self stringValue]; + + if (value) + { + if (_forceSelection && ![value isEqual:_selectedStringValue]) + [self setStringValue:_selectedStringValue]; + } + else + _selectedStringValue = @""; + + return [super resignFirstResponder]; +} + +- (void)setFont:(CPFont)aFont +{ + [super setFont:aFont]; + [_listDelegate setFont:aFont]; +} + +- (void)setAlignment:(CPTextAlignment)alignment +{ + [super setAlignment:alignment]; + [_listDelegate setAlignment:alignment]; +} + +#pragma mark Pop Up Button Layout + +- (CGRect)popupButtonRectForBounds:(CGRect)bounds +{ + var borderInset = [self currentValueForThemeAttribute:@"border-inset"], + buttonSize = [self currentValueForThemeAttribute:@"popup-button-size"]; + + bounds.origin.x = CGRectGetMaxX(bounds) - borderInset.right - buttonSize.width; + bounds.origin.y += borderInset.top; + + bounds.size.width = buttonSize.width; + bounds.size.height = buttonSize.height; + + return bounds; +} + +- (CGRect)rectForEphemeralSubviewNamed:(CPString)aName +{ + if (aName === "popup-button-view") + return [self popupButtonRectForBounds:[self bounds]]; + + return [super rectForEphemeralSubviewNamed:aName]; +} + +- (CPView)createEphemeralSubviewNamed:(CPString)aName +{ + if (aName === "popup-button-view") + { + var view = [[_CPComboBoxPopUpButton alloc] initWithFrame:_CGRectMakeZero() comboBox:self]; + + return view; + } + + return [super createEphemeralSubviewNamed:aName]; +} + +- (void)layoutSubviews +{ + [super layoutSubviews]; + + var popupButtonView = [self layoutEphemeralSubviewNamed:@"popup-button-view" + positioned:CPWindowAbove + relativeToEphemeralSubviewNamed:@"content-view"]; +} + +#pragma mark Internal Helpers + +/*! @ignore */ +- (void)_dataSourceWarningForMethod:(SEL)cmd condition:(CPString)flag +{ + CPLog.warn("-[%s %s] should not be called when usesDataSource is set to %s", [self className], cmd, flag ? "YES" : "NO"); +} + +/*! + Select the item that matches the current value of the combobox. + @ignore +*/ +- (void)_selectMatchingItem +{ + var index = CPNotFound, + stringValue = [self stringValue]; + + if (_usesDataSource) + { + if (_dataSource && [_dataSource respondsToSelector:@selector(comboBox:indexOfItemWithStringValue:)]) + index = [_dataSource comboBox:self indexOfItemWithStringValue:stringValue] + } + else + index = [self indexOfItemWithObjectValue:stringValue]; + + [_listDelegate selectRow:index]; + + // selectRow scrolls the row to visible, if a row is selected scroll it to the top + if (index !== CPNotFound) + { + [_listDelegate scrollItemAtIndexToTop:index]; + _selectedStringValue = stringValue; + } +} + +/*! + Calculate the frame in base coordinates that will nestle just below the visible border of the text field. + @ignore +*/ +- (CGRect)_borderFrame +{ + var inset = [self currentValueForThemeAttribute:@"border-inset"], + frame = [self bounds]; + + frame.origin.x += inset.left; + frame.origin.y += inset.top; + frame.size.width -= inset.left + inset.right; + frame.size.height -= inset.top + inset.bottom; + + return frame; +} + +/* @ignore */ +- (void)_popUpButtonWasClicked +{ + if (![self isEnabled]) + return; + + // If we are currently the first responder, we will be asked to resign when the list pops up. + // Set a flag to let resignResponder know that the button was clicked and we should not resign. + var firstResponder = [[self window] firstResponder]; + + _popUpButtonCausedResign = firstResponder === self; + + if ([self listIsVisible]) + [_listDelegate close]; + else + { + if (firstResponder !== self) + [[self window] makeFirstResponder:self]; + + [self popUpList]; + } +} + +@end + +@implementation CPComboBox (CPComboBoxDelegate) + +/*! @ignore */ +- (void)comboBoxSelectionIsChanging:(CPNotification)aNotification +{ + [[CPNotificationCenter defaultCenter] postNotificationName:CPComboBoxSelectionIsChangingNotification object:self]; +} + +/*! @ignore */ +- (void)comboBoxSelectionDidChange:(CPNotification)aNotification +{ + [[CPNotificationCenter defaultCenter] postNotificationName:CPComboBoxSelectionDidChangeNotification object:self]; +} + +/*! @ignore */ +- (void)comboBoxWillPopUp:(CPNotification)aNotification +{ + [[CPNotificationCenter defaultCenter] postNotificationName:CPComboBoxWillPopUpNotification object:self]; +} + +/*! @ignore */ +- (void)comboBoxWillDismiss:(CPNotification)aNotification +{ + [[CPNotificationCenter defaultCenter] postNotificationName:CPComboBoxWillDismissNotification object:self]; +} + +@end + +@implementation CPComboBox (CPComboBoxDataSource) + +/*! @ignore */ +- (CPString)comboBoxCompletedString:(CPString)uncompletedString +{ + if ([_dataSource respondsToSelector:@selector(comboBox:completedString:)]) + return [_dataSource comboBox:self completedString:uncompletedString]; + else + return nil; +} + +@end + +@implementation CPComboBox (_CPPopUpListDataSource) + +- (int)numberOfItemsInList:(_CPPopUpList)aList +{ + return [self numberOfItems]; +} + +- (int)numberOfVisibleItemsInList:(_CPPopUpList)aList +{ + return [self numberOfVisibleItems]; +} + +- (id)list:(_CPPopUpList)aList objectValueForItemAtIndex:(int)index +{ + if (_usesDataSource) + return [_dataSource comboBox:self objectValueForItemAtIndex:index]; + else + return _items[index]; +} + +- (id)list:(_CPPopUpList)aList displayValueForObjectValue:(id)aValue +{ + return aValue || @""; +} + +- (CPString)list:(_CPPopUpList)aList stringValueForObjectValue:(id)aValue +{ + return String(aValue); +} + +@end + +@implementation CPComboBox (Bindings) + +/*! @ignore */ +- (void)setContentValues:(CPArray)anArray +{ + [self setUsesDataSource:NO]; + [self removeAllItems]; + [self addItemsWithObjectValues:anArray]; +} + +/*! @ignore */ +- (void)setContent:(CPArray)anArray +{ + [self setUsesDataSource:NO]; + + // Directly nuke _items, [_items removeAll] will trigger an extra call to setContent + _items = []; + + var values = []; + + [anArray enumerateObjectsUsingBlock:function(object) + { + values.push([object description]); + }]; + + [self addItemsWithObjectValues:values]; +} + +@end + +var CPComboBoxItemsKey = @"CPComboBoxItemsKey", + CPComboBoxListKey = @"CPComboBoxListKey", + CPComboBoxDelegateKey = @"CPComboBoxDelegateKey", + CPComboBoxDataSourceKey = @"CPComboBoxDataSourceKey", + CPComboBoxUsesDataSourceKey = @"CPComboBoxUsesDataSourceKey", + CPComboBoxCompletesKey = @"CPComboBoxCompletesKey", + CPComboBoxNumberOfVisibleItemsKey = @"CPComboBoxNumberOfVisibleItemsKey", + CPComboBoxHasVerticalScrollerKey = @"CPComboBoxHasVerticalScrollerKey", + CPComboBoxButtonBorderedKey = @"CPComboBoxButtonBorderedKey"; + +@implementation CPComboBox (CPCoding) + +- (id)initWithCoder:(CPCoder)aCoder +{ + self = [super initWithCoder:aCoder]; + + if (self) + { + [self _initComboBox]; + + _items = [aCoder decodeObjectForKey:CPComboBoxItemsKey]; + _listDelegate = [aCoder decodeObjectForKey:CPComboBoxListKey]; + _delegate = [aCoder decodeObjectForKey:CPComboBoxDelegateKey]; + _dataSource = [aCoder decodeObjectForKey:CPComboBoxDataSourceKey]; + _usesDataSource = [aCoder decodeBoolForKey:CPComboBoxUsesDataSourceKey]; + _completes = [aCoder decodeBoolForKey:CPComboBoxCompletesKey]; + _numberOfVisibleItems = [aCoder decodeIntForKey:CPComboBoxNumberOfVisibleItemsKey]; + _hasVerticalScroller = [aCoder decodeBoolForKey:CPComboBoxHasVerticalScrollerKey]; + [self setButtonBordered:[aCoder decodeBoolForKey:CPComboBoxButtonBorderedKey]]; + } + + return self; +} + +- (void)encodeWithCoder:(CPCoder)aCoder +{ + [super encodeWithCoder:aCoder]; + + [aCoder encodeObject:_items forKey:CPComboBoxItemsKey]; + [aCoder encodeObject:_listDelegate forKey:CPComboBoxListKey]; + [aCoder encodeObject:_delegate forKey:CPComboBoxDelegateKey]; + [aCoder encodeObject:_dataSource forKey:CPComboBoxDataSourceKey]; + [aCoder encodeBool:_usesDataSource forKey:CPComboBoxUsesDataSourceKey]; + [aCoder encodeBool:_completes forKey:CPComboBoxCompletesKey]; + [aCoder encodeInt:_numberOfVisibleItems forKey:CPComboBoxNumberOfVisibleItemsKey]; + [aCoder encodeBool:_hasVerticalScroller forKey:CPComboBoxHasVerticalScrollerKey]; + [aCoder encodeBool:[self isButtonBordered] forKey:CPComboBoxButtonBorderedKey]; +} + +@end + + +var CPComboBoxCompletionTest = function(object, index, context) +{ + return object.toString().indexOf(context) === 0; +}; + + +/* + This class is only used for CPContentBinding and CPContentValuesBinding. +*/ +@implementation _CPComboBoxContentBinder : CPBinder + +- (void)setValueFor:(CPString)theBinding +{ + var destination = [_info objectForKey:CPObservedObjectKey], + keyPath = [_info objectForKey:CPObservedKeyPathKey], + options = [_info objectForKey:CPOptionsKey], + newValue = [destination valueForKeyPath:keyPath], + isPlaceholder = CPIsControllerMarker(newValue); + + [_source removeAllItems]; + + if (isPlaceholder) + { + // By default the placeholders will all result in an empty list + switch (newValue) + { + case CPMultipleValuesMarker: + newValue = [options objectForKey:CPMultipleValuesPlaceholderBindingOption] || []; + break; + + case CPNoSelectionMarker: + newValue = [options objectForKey:CPNoSelectionPlaceholderBindingOption] || []; + break; + + case CPNotApplicableMarker: + if ([options objectForKey:CPRaisesForNotApplicableKeysBindingOption]) + [CPException raise:CPGenericException + reason:@"can't transform non applicable key on: " + _source + " value: " + newValue]; + + newValue = [options objectForKey:CPNotApplicablePlaceholderBindingOption] || []; + break; + + case CPNullMarker: + newValue = [options objectForKey:CPNullPlaceholderBindingOption] || []; + break; + } + + if (![newValue isKindOfClass:[CPArray class]]) + newValue = []; + } + else + newValue = [self transformValue:newValue withOptions:options]; + + switch (theBinding) + { + case CPContentBinding: [_source setContent:newValue]; + break; + + case CPContentValuesBinding: [_source setContentValues:newValue]; + break; + } +} + +@end + +@implementation _CPComboBoxPopUpButton : CPView +{ + CPComboBox _comboBox; +} + +- (id)initWithFrame:(CGRect)aFrame comboBox:(CPComboBox)aComboBox +{ + self = [super initWithFrame:aFrame]; + + if (self) + _comboBox = aComboBox; + + return self; +} + +- (void)mouseDown:(CPEvent)theEvent +{ + [_comboBox _popUpButtonWasClicked]; +} + +- (BOOL)acceptsFirstResponder +{ + return NO; +} + +@end diff --git a/AppKit/CPKeyValueBinding.j b/AppKit/CPKeyValueBinding.j index 608f7ae4a..1794085a3 100644 --- a/AppKit/CPKeyValueBinding.j +++ b/AppKit/CPKeyValueBinding.j @@ -558,6 +558,8 @@ CPValueBinding = @"value"; CPValueURLBinding = @"valueURL"; CPValuePathBinding = @"valuePath"; CPDataBinding = @"data"; +CPContentBinding = @"content"; +CPContentValuesBinding = @"contentValues"; //Binding options constants CPAllowsEditingMultipleValuesSelectionBindingOption = @"CPAllowsEditingMultipleValuesSelection"; diff --git a/AppKit/CPTextField.j b/AppKit/CPTextField.j index bda0c5a1b..60874a91a 100644 --- a/AppKit/CPTextField.j +++ b/AppKit/CPTextField.j @@ -486,10 +486,8 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); #if PLATFORM(DOM) var element = [self _inputElement], - font = [self currentValueForThemeAttribute:@"font"]; - - // generate the font metric - [font _getMetrics]; + font = [self currentValueForThemeAttribute:@"font"], + lineHeight = ROUND([font defaultLineHeightForFont]); element.value = _stringValue; element.style.color = [[self currentValueForThemeAttribute:@"text-color"] cssString]; @@ -511,26 +509,26 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); switch (verticalAlign) { case CPTopVerticalTextAlignment: - var topPoint = (_CGRectGetMinY(contentRect) + 1) + "px"; // for the same reason we have a -1 for the left, we also have a + 1 here + var topPoint = _CGRectGetMinY(contentRect) + "px"; break; case CPCenterVerticalTextAlignment: - var topPoint = (_CGRectGetMidY(contentRect) - (font._lineHeight / 2) + 1) + "px"; + var topPoint = (_CGRectGetMidY(contentRect) - (lineHeight / 2)) + "px"; break; case CPBottomVerticalTextAlignment: - var topPoint = (_CGRectGetMaxY(contentRect) - font._lineHeight) + "px"; + var topPoint = (_CGRectGetMaxY(contentRect) - lineHeight) + "px"; break; default: - var topPoint = (_CGRectGetMinY(contentRect) + 1) + "px"; + var topPoint = _CGRectGetMinY(contentRect) + "px"; break; } element.style.top = topPoint; - element.style.left = (_CGRectGetMinX(contentRect) - 1) + "px"; // why -1? + element.style.left = (_CGRectGetMinX(contentRect) - 1) + "px"; // -1 because input element seems to have 1px left inset element.style.width = _CGRectGetWidth(contentRect) + "px"; - element.style.height = font._lineHeight + "px"; // private ivar for the line height of the DOM text at this particular size + element.style.height = lineHeight + "px"; _DOMElement.appendChild(element); @@ -1315,9 +1313,6 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); { var contentInset = [self currentValueForThemeAttribute:@"content-inset"]; - if (!contentInset) - return bounds; - bounds.origin.x += contentInset.left; bounds.origin.y += contentInset.top; bounds.size.width -= contentInset.left + contentInset.right; @@ -1365,7 +1360,6 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); else { var view = [[_CPImageAndTextView alloc] initWithFrame:_CGRectMakeZero()]; - //[view setImagePosition:CPNoImage]; [view setHitTests:NO]; diff --git a/AppKit/CPTokenField.j b/AppKit/CPTokenField.j index d306052e9..a0c094816 100755 --- a/AppKit/CPTokenField.j +++ b/AppKit/CPTokenField.j @@ -90,6 +90,11 @@ var CPScrollDestinationNone = 0, return "tokenfield"; } ++ (id)themeAttributes +{ + return [CPDictionary dictionaryWithObject:_CGInsetMakeZero() forKey:@"editor-inset"]; +} + - (id)initWithFrame:(CPRect)frame { if (self = [super initWithFrame:frame]) @@ -179,6 +184,7 @@ var CPScrollDestinationNone = 0, // Give the delegate a chance to confirm, replace or add to the list of tokens being added. var delegateApprovedObjects = [self _shouldAddObjects:[CPArray arrayWithObject:token] atIndex:_selectedRange.location], delegateApprovedObjectsCount = [delegateApprovedObjects count]; + if (delegateApprovedObjects) { for (var i = 0; i < delegateApprovedObjectsCount; i++) @@ -313,11 +319,12 @@ var CPScrollDestinationNone = 0, #if PLATFORM(DOM) var string = [self stringValue], - element = [self _inputElement]; + element = [self _inputElement], + font = [self currentValueForThemeAttribute:@"font"]; element.value = nil; element.style.color = [[self currentValueForThemeAttribute:@"text-color"] cssString]; - element.style.font = [[self currentValueForThemeAttribute:@"font"] cssString]; + element.style.font = [font cssString]; element.style.zIndex = 1000; switch ([self alignment]) @@ -332,9 +339,9 @@ var CPScrollDestinationNone = 0, var contentRect = [self contentRectForBounds:[self bounds]]; element.style.top = CGRectGetMinY(contentRect) + "px"; - element.style.left = (CGRectGetMinX(contentRect) - 1) + "px"; // why -1? + element.style.left = (CGRectGetMinX(contentRect) - 1) + "px"; // element effectively imposes a 1px left margin element.style.width = CGRectGetWidth(contentRect) + "px"; - element.style.height = CGRectGetHeight(contentRect) + "px"; + element.style.height = ROUND([font defaultLineHeightForFont]) + "px"; [_tokenScrollView documentView]._DOMElement.appendChild(element); @@ -472,6 +479,7 @@ var CPScrollDestinationNone = 0, - (id)objectValue { var objectValue = []; + for (var i = 0, count = [[self _tokens] count]; i < count; i++) { var token = [[self _tokens] objectAtIndex:i]; @@ -570,6 +578,20 @@ var CPScrollDestinationNone = 0, [self setNeedsDisplay:YES]; } +- (void)setEnabled:(BOOL)shouldBeEnabled +{ + [super setEnabled:shouldBeEnabled]; + + // Set the enabled state of the tokens + for (var i = 0, count = [[self _tokens] count]; i < count; i++) + { + var token = [[self _tokens] objectAtIndex:i]; + + if ([token respondsToSelector:@selector(setEnabled:)]) + [token setEnabled:shouldBeEnabled]; + } +} + - (void)sendAction:(SEL)anAction to:(id)anObject { _shouldNotifyTarget = NO; @@ -962,7 +984,10 @@ var CPScrollDestinationNone = 0, offset = CPPointMake(contentOrigin.x, contentOrigin.y), spaceBetweenTokens = CPSizeMake(2.0, 2.0), isEditing = [[self window] firstResponder] == self, - tokenToken = [_CPTokenFieldToken new]; + tokenToken = [_CPTokenFieldToken new], + font = [self currentValueForThemeAttribute:@"font"], + lineHeight = ROUND([font defaultLineHeightForFont]), + editorInset = [self currentValueForThemeAttribute:@"editor-inset"]; // Get the height of a typical token, or a token token if you will. [tokenToken sizeToFit]; @@ -1001,15 +1026,17 @@ var CPScrollDestinationNone = 0, // XXX The "X" here is used to estimate the space needed to fit the next character // without clipping. Since different fonts might have different sizes of "X" this // solution is not ideal, but it works. - textWidth = [(element.value || @"") + "X" sizeWithFont:[self font]].width; + textWidth = [(element.value || @"") + "X" sizeWithFont:font].width; + if (useRemainingWidth) textWidth = MAX(contentSize.width - offset.x - 1, textWidth); } _inputFrame = fitAndFrame(textWidth, tokenHeight); + _inputFrame.size.height = lineHeight; - element.style.left = _inputFrame.origin.x + "px"; - element.style.top = _inputFrame.origin.y + "px"; + element.style.left = (_inputFrame.origin.x + editorInset.left) + "px"; + element.style.top = (_inputFrame.origin.y + editorInset.top) + "px"; element.style.width = _inputFrame.size.width + "px"; element.style.height = _inputFrame.size.height + "px"; diff --git a/AppKit/Themes/Aristo/Resources/combobox-bezel-center.png b/AppKit/Themes/Aristo/Resources/combobox-bezel-center.png new file mode 100644 index 0000000000000000000000000000000000000000..8f5171d3c673d102f7e1b56ff2ad2283c856db7a GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{Q!3HF=8QC&{lw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlB4bY%$B>F!Nk9Jow`Ue+7I5g$jo$Vrz2ei8ll5)&|Ns3> rPfAH~nYPr7aZ7I_<5gA$Mm7fZUBcXcrE`*i+8I1u{an^LB{Ts5AHOYr literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/combobox-bezel-disabled-center.png b/AppKit/Themes/Aristo/Resources/combobox-bezel-disabled-center.png new file mode 100644 index 0000000000000000000000000000000000000000..584597d709e4960a1fe0b567bc129a874077e6b1 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{Q!3HF=8QC&{lw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlB3(}x$B>F!Nk9Jow`Ue+7I5h37T5om{^Qfr)Aei%j?}Ag k&Ju9AEg=yQ%OH@zP*5)X(kSm>8c-vHr>mdKI;Vst0J&}{xBvhE literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/combobox-bezel-disabled-left.png b/AppKit/Themes/Aristo/Resources/combobox-bezel-disabled-left.png new file mode 100644 index 0000000000000000000000000000000000000000..5cd37245fc3f3f5fd0bddfc262528d1145e322d3 GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol_0U|r^$_fA}$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GX`U{QAr-fh{`~)M&un(!NCWeODG4rSuO1!k&T&}9*C8Bn zLBy=6pdh59tIKGCx60{Lr;G}Uijr<9atWoRq#W5IqvA2I*j+V4;p4CS`|BfApY5ys r+{UQVsXKKGbD@ax*B~W_21bU^SB#xYT9iD&_F9CPP1q}(bmI-M;ZI*;I(tx#{HntQAQn?4a_Gf>tlOWDH zR0|9!`FuFF1`lVYl!Uq_AV#sCo^wb#CXF^*)+^H1QrZjYO` zy)i&c0_F_-;4L_H>icsQsOSR~A*djVF>Zd>>s$h;YicrCJyyhzGJr%ZWfXl?02vkJ zN|E9USP}qa1w7{_X8=qlAv|=uKq*bxG);rH=Ye6Ami7S8C`wADT!N10WM{)<{F!Nh_kNZ_nv$Y+TsT+23y7^z!`dXda&SbvA#` ze~{;J5aQXQc+U3EnFCv1KM7@1b7OR6Tjn2cx1Pn*hk?U@L3^Lr(<1^~@t@O1Ta JS?83{1OTq!H17Za literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/combobox-bezel-focused-left.png b/AppKit/Themes/Aristo/Resources/combobox-bezel-focused-left.png new file mode 100644 index 0000000000000000000000000000000000000000..cf33abf0daabf36392d7ffe4456c71054c4046dd GIT binary patch literal 383 zcmV-_0f7FAP)3MX1hH|%^_gm3t_(fWmx#( z#q|)<*|Y%wO(G#SiBP&B4|a)TqDO2=canz#-}BCtRNF!bkS==Sd;U3=I>^SaQwcg0 zPV|(N9i6_JIPl~C(VpN$Ky*2-P)DbS2hiVd11A)*K>#9(u<3y(g%x(Td?QQyxe{y7 zFM(A8ss&aEtpBUJVs*KH*@3l}uM6{6A}8k78Yr{809_bchA(1RmL=py%ZH;(qbHxHO_MSM8kyTg#SY#4~Y4@`d0gc4ZR91=W;OkGzYx d_YP)D%pAheX0g7pJWf;SId{U^NmCx}SFo1p)L$AXsa!4_QmLCv;lH{B#V zGrmbuVUt~5$oSwF$eYaj&AfSU@?)<)Y~Kbw79d)P6NH0kBRIpyOAWy#;vBJu*g|X~ zb`%jCH^&}m+5re5Am{{pp6|cG*H4H#JNx-nTYMmSw@{ikjY8oClKep50fRyg=5Aig z9KG!abbI%}Y&RQ@Id$Daf-1Vdu+bp`Bb9Pyf)Py5)!Y!&zipY6Qsug=+)U+7NSQrB zgaD^Z9XE|V!-zbSiU6U*BrX(r{!pq%v;(e>AZd&v0T*0bnMxqt1j@-Z?LY__wOkhg z=fE|cK~yX4CXe1ebuqtXaU3j><4Bro%(JK4)0Zn&u*a!b;G&Npt91YNDq)#VnYc$g5F57eWb+0trb67~ND~Xny>4 zeSLg{>a%-$DkndDettgBi_V4r9v*JbagaIcv3ClGKmvpCB-lr*<{an^L HB{Ts5b>dNL literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-center.png b/AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-center.png new file mode 100644 index 0000000000000000000000000000000000000000..0d654e92e89fd4d96dad68dc34fb408cbe865124 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{Q!3HF=8QC&{lw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlB7IL6$B>F!Nk9Jow`Ue+7I5g$jo$Vrz2euGm-TE5j?}Ag m&JtkflSxQ$C}nhLU}VrfBy3ds_&5hpD}$%2pUXO@geCy{mno3| literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-disabled-center.png b/AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-disabled-center.png new file mode 100644 index 0000000000000000000000000000000000000000..49cb956b387da9c9d5f475145091e098a52395b4 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{Q!3HF=8QC&{lw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlB7IL6$B>F!Nk9Jow`Ue+7I5h37T5om{^Qfr)Aei%j?}Ag m&Jx(3e?Kk3p_I{~fsvtTvIx6t&7Si>tqh*7elF{r5}E)mKr2=N literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-disabled-left.png b/AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-disabled-left.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9d6ac337bbf0746540790750376dfa6172f9ec GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol_0U|r^$_fA}$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GrJgR1Ar-fh{`~)M&un(!NCWeODG83xV)j%_FVdQ I&MBb@0R8GsH2?qr literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-disabled-right.png b/AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-disabled-right.png new file mode 100644 index 0000000000000000000000000000000000000000..811bbcd91911a3aecd3a463ddaa5201b50f8d347 GIT binary patch literal 392 zcmV;30eAk1P)MF&e+#~T{W|YE5CFLqRP(}rDERm9-~VslzWoRK z=q)JXsfFQjz{tqRz`?-*VhYhLl0lY$@X$`CqdvgM2gE2keE2X?hS}QMl4k)3u(7de z0I3r|%#TI-BM_Sb@h!50=-01bU;h00a|K&o1&Ut+%73LalAi!`dnpj3xbpAczc+zm z#X#m$YDDsJple%zMZhZ%2WaqfpaqRU=4ooCqNPAf<^wHx0W^FDkiU}RRD=fp0S#{k zmcE~W>^@K&kYoXo`2ZB5ZB)w#*wXh1EsKE34&;M(G_e3wy?yxb0mPg`)xz%f?b{4! mt%_P|TEIBkvLgfl0t^5^_QKP685%?Y0000F!Nh_kNZ_nv$Y+TsT+23y7^z!`dXda&SbvA#` ze~{;J5aQXQc+U3EnFCv1KM7@1b7OR6Tjn2cx1Pn*hk?U@L3^Lr(<1^~@t@O1Ta JS?83{1OTq!H17Za literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-focused-left.png b/AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-focused-left.png new file mode 100644 index 0000000000000000000000000000000000000000..475f79853bcabbc7c16e430fca4f411052558e1e GIT binary patch literal 373 zcmV-*0gC>KP)xe1kCxr`>iUs-)%0-OjV)L!2M&Kr*SxCeo-?42+VAa3Pjo!L|I FKfQ6x|- zM1c_Hk18v&%l%6aQM&oMSo~EHlAo-{ER6Y*i{xp)$=F&8DK!Sqlf1$w!!U~8QQgJY z)W`i`n2X0?9^3?0PHdwCvE5CMnvoH?rFQtup9Ap?AifO551ta<>EVEvT=^x8Tp4TW}5|GaCaNkGLcQ8(S{Wk|#i+mlRuIr>_iV{P_Ks z;o|*Q3_riTWMJi&lK@(v0TezB#Lpr8jG8{U0oq>so2_z&5#9Ry% z0wx%Pm4%6ci-QeWjuRwIH4DITz{m(9;9LeO044?+0}KloX>9=m?Jc0LA6SSn-$V2{ zoPGH4bDW0R+S(Ff0S;hiX9vo7CxDnAi!`W!H2eSm|1GlP;LxE%Uy6!~t}rs9dJ&i@ z|Cg7SUjoX1r8JVC1Ox<>`uh5!xDqIK)7#s-7|47|Try?E8_CD>^72}=wY6V?IEIFX z&w>0#XqiQwWXi_IwzQ$4VZMQZ!3!Wg0~karNlQh9!9Q_v@#aaBCV?uWK4@h{iUmaF z15kvvk(Up!fE}+T$*z;JL^A!#qW@I2;LqRx;A#^o4!%R1GL)4?=N^8B*U9JZ0h2c~ zE4Xz5ZNhw`*n(XruOfIr!x=e67=Hcv{Q}xP`arP-i~@=b$n7GK;m~%`WoW~TG7CO^ z`Me58%kCkx`ABhn(2vwM{RS<1KjLbek_rF<3;^qtuIms<{K)_S002ovPDHLkV1gAh B4x0b~ literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-left.png b/AppKit/Themes/Aristo/Resources/combobox-bezel-no-border-left.png new file mode 100644 index 0000000000000000000000000000000000000000..67d0702e0c752a11fe911f536f735f3a5f0f7c65 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol_0U|r^$_fA}$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1Gb)GJcAr-fh{`~)M&un(UW9E@*y3scpLd*q@Z&4%P)II-z6m~l{5TIte+P0asOE+LQ1JWr@Bc4fzWfjL z(OXc&Qwzi6fQ5yHK}bjl#1x`gB!etrWMmxT$#m2Q82Nx03l1MXOq5}^wzh;Vzy<8= z>@vnC`1J=fkQQ&w{^y|Dsv&_aBBJReb;oe{2@KefySS$?}y9KY#wj zkYi_OXNZXmXAl+^Cg=kukPrS~!D1pJ49VdESY4SK83dNcrVrf*OfVmy<8MEIF^EV= zGx#{$p=j`Tb7T+{lLX6S(}&dufB#{}@4o(EFgG`2&{0l;6WH2!?VR#P|$E627 zPvMLM7ADcl-Fo~ ze*b28`|>%1w5Z@76bnFg^7V5kD7Ju$gZ;a-sL%l^VW9|QamLY>9U%Y^U;t&MX5J(I RXi5M8002ovPDHLkV1k-Q<(>cl literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-center.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-center.png index 2ffc73c8b44af8d784c58b18da775a3cf84b7fb9..47b21b4227a44de060eb9603d6d0275aee464e91 100644 GIT binary patch delta 88 zcmV-e0H^|6H_V+Po~-c73q7rIEGZ*O8W8tzdf@svw%ZKx48bl^dFy|o~~zGaHL*^ nbC!U^Z3&4BF$_u!Ogs!%_=I1_ea(3b)XL!L>gTe~DWM4fyY8E2a$=Ec%BPENXYkvCY&mXciAN=<18`+xIzkmOp zY|Y0%fBt-dSldxF>+9?P1yW_NU%zG`D&WvF1~hX_c=__>e?kCPq!vGa{(RG`SFi9| z%!tc*&;nrsFq7nnh=_oTAEGs*6?|PlLkt821Q<9uIT?WE8KgKOHbtS8p3*=p!8kN) e42m=Z1Q-C=b-Ir|2f^BCG~#o=lKbS(C>jZi~TeA?%ARW2CO&@e?!7M+dTZp14uPQ-~$Z`0Wdh++3{H=(3uC?p`{9_yhe+n=FhHa7fHe&^1 P00000NkvXXu0mjfRu|T; literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-focused-center.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-focused-center.png index b5dad6f9f1f5dd9a65b9e113e5582f3fc914ccb5..e1aad4ee2081aea77d8318e9fcfa11e558ae6f91 100644 GIT binary patch delta 99 zcmV-p0G$7o0i^+uNnA%sL_t(|+G40$d)tDEfq|iriI0ajjOovtTMP_`t~~wE@E-_3 z5)8B<&OQ9hz_jb+RR$(T0YwI;PhUQ-0!j3P>}3E5FaW0L8PE{^C{_Rf002ovPDHLk FV1k*ZDSiL| delta 83 zcmZ3=IF)gNr;oX(i(?3fY;r`!tBE$u6FS%he>)thZ*yH;{x{vC{_DB=wsLv9zv(|d nf0ys&*zhqyJ8@d`+=UDbWp+9K5-$@I7=Xaj)z4*}Q$iB}sm~%H diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-focused-left.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-focused-left.png index b44bf2c1c8b8cbaf9bdc9dfa34156d901333e9a3..66a00a37e8aa72461c6e9ae03f21479fc8e4486b 100644 GIT binary patch delta 812 zcmV+{1JnHV1;qv-iBL{Q4GJ0x0000DNk~Le0000F0000U2nGNE0P|c#bdez_f9FX= zK~#9!jFro7(?Ar4f7|0*?rBSDo0h7S%K}8H3X3kdDhr+g38@d!hu}$g10;};5Nuc# z(GBVbRY_^-B@KnxO>B=noD&?CN+GqSFZLq;{4?kLKGt5o-N&fwx7X3>W)gX#nBE;i zh!G-#ZZ0uK)QEXvj+i1Uynq-Yf6`K?DzQK;6RSdq$HEYEhG9V0G-!kvvc()RO)L?0 z%e0<5wpCPN7b<8Ykv+t51gPXpoI2)Hw+G~~W(xD3i4gG#)rAB(*T(cz8P%c<$28A5 zo9THTl4#wr?Rn)NA_+UFO;m7e;Sy%5ITT$BjwK)r{jWGJ4xe#}9s9!0e;zay;>q$N zuFq6a%9$_?{ak$p&ThKhI=QYW{|GuHp54EJo3%1+(HPnhJuMQqW0{L%(HS-A;pyG0 zBZYl&dRFe^Dpxi3TbP|3$F=Fv!hx78JkNbpQ5Oaj?krAHVFWI^^fYo;H~=d2Q7Gmy zRdykCEt8m?FLQE00hpaAf1}`B>^cy0$jcl#4#HT;fhF|JVy=qCSyf12TUI~2S;a9C zDy1mwI-*D-q35jP9`UO$Fif2I0YaH%7W>3O9LLavi|?%t{2+1SR`4<9F|a%c^V`ipf6hOL4y z*c`x&26p(wt%cXKoL6z*(n7T4@IMh%c0b*Tj{PUyOei;goo^$SKE{ q*h&XSVeqZeRK_=G*!4$%0RWccI3?_&b^ibW002ovPDHLk0$_qDjCT(J delta 731 zcmV<10wn##2K5CYiBL{Q4GJ0x0000DNk~Le0000H0000U2nGNE0LnY{FOeZAf0s!_ zK~zY`oz+WE6Hyoj;2JS5(1gf>#u(kG8*!;Wz#B_VaABfxp)TY{s7u*<3nZomsUfBk zBP9{!s#GX6ZIJ>g6znCowYC&2p!D|op5Zh!lj(JmXF2bj@0@SGqwAUp=*l=i2k9^! zrAE@z2|7uq%DsGuj!+YwrHgcxe{Rq%xyf%-((EABp?*`FL>Jl1cz-{WJ zfN|P~PKyn1-VfvBpcSK&4ouk>V4w5A>0W_r!HdF8td}LU%7B=`>V=_ie;fnD)0lBC z!Lu4fFcihF-wDJMn@DUVv9Xy%VHtY42ciVO2rzvZ$HbINc{v(OAi2GR-Bb#hOcuFZ z4ms>S`4F*+W_m~yMw=f!{a<07b;B2o;7@WJ>2yYUQR~skMrxAh|BO<`A&0U85wNxW z7ny7p+OO}2h)z61_h{5OfAs^F5gR<-fU*J+Q0~#mR=z-w=x5iM8#c$1vUy4gWh3@N zL|RhfVq_J>gKhJtSxQ}ATGyz)mTOcUR#)mm{|{3&TBR^ShiU)- N002ovPDHLkV1k;oRLTGV diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-focused-right.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-focused-right.png index aeed868998a5331cfa617ff6588fbdd8841208af..53711d5ad441e26edf8d0cd237517a96a70a3cc8 100644 GIT binary patch delta 886 zcmV-+1Bv|K1&#+HiBL{Q4GJ0x0000DNk~Le0000F0000U2nGNE0P|c#bdez^e*-W{ zL_t(|+MHF(P8>%RJ>6a1%rG;I4cIsV#{yZlBPB8lN+cF}C`uM=@&T;!2ia$pU&t3E zD|_WHz>nKgp^9F zVqAhel`Ph%DttOM28ROcB!p7xYYtx{YG;y_ZQ)9@f_l9Mo%Wy{b(O;(iQhBHV)cr` z#OM%nkKj0RZ!mVQoy9z5V|Zwghm*p#QkE@Eu4(T~a#m=(@)P($0LvXL z>z%_b={RSSgDA&xt3#69DU!2n(U4EyIcBbFJ0V&xc3@S9!O{#&hiQvw_G!e`*C8JK zwT8@cDKASSP3~}Ne~FOZR;YeCN~p4<5Mwq8UAuxL3Wapvbd#{Wx*~jD=<+y3RS`#W zTz}aqcM~GRZBgalxbzv(HGK_gX>FG+D94*##N!A`RZ}{W98>Li=R8zaDw3f_`t+)8ykLl*6~mGF9?k_P+oF0O1OobA&R6tN;K2 M07*qoM6N<$f|zfgL;wH) delta 710 zcmV;%0y+JT2j2xDiBL{Q4GJ0x0000DNk~Le0000H0000U2nGNE0LnY{FOeZ9e*%F? zL_t(Y$EB4^Pg7A4$4h{)KoTMgn`m@n+=yF007l)KV2p{z4Q~7tF7*Q_1QOF0AvT5@ zA|cff6M6I=tAf5Am?4x9kTK)0NXKNhe6=71iIg8N_uTm=_IguS4v znS>4?36{Vka1RWDv!Gu@^{-^|xruZ@qklzDW-K&5^M=OfU8GqJv#bPGzymN0&V%Fo zMJnG$h`j5c$n6i1&Ama3?>zL~D4s}DU@J~e??;+9+e!0ci8R&_i!wqqEK=*0imf7?DpRdexm=-NdwWzU?ov9F ztI3vaKAN7bi=ra6AyMq^x@7-hVX0K6?}Z{o;wiGa)@f?)EomK57A=cn4~pyWI8Y)* zSFTj(NAYJ(#1Uy1JW{dwf7Y&uKI&{Lkq(PEB2LX{L7{D*NnHPkXvm&JB^(i_#x>$% z>nwhjq(nn9Na?hQnJv01H2eo?w+=u#{d8T07*qoM6N<$f+NH@asU7T diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-left.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-left.png index c4d22bfc2e2876806b7ff0085afabc86ef1d1e22..39a880af9e406a4f3d35c1e2da5fb091f5a36fc9 100644 GIT binary patch delta 422 zcmV;X0a^a91j7R%iBL{Q4GJ0x0000DNk~Le0000F0000U2nGNE0P|c#bdez_e`QHT zK~#9!V*LOAKLfddiGcz@k!BWR6>izG#T7{T0kI_zivqD63lW-}fK)FtGqV9NFE0Zh zA0Go37Z(F3Cns*3ftr{>npjv^@Tz?xWDSs8!^F)%SPVb=`RxSE@rJ5WnY zi$Op@fPsyTje(JoktjcR0i77Af3L640CFnGCTxHaJ)S{+WM^mJYiw)`wh`n!QlhF? zR#ujQpPwJEMhwkBTWx@$XrQR5h|{U~Z1xio5djAdIVsFZOiTG$v7$<}=E?c29xYhM52#S5}EAOHCAjq^Ebi8@<<_VWBUHVT5;7a+$4)^ijT z6c{8VB#76HR`7KJ4KV;2ASfuv07`|xJWp6Nj?z;ah$R?@W{p9SW`F<#0J7(kQs9i1 QI{*Lx07*qoM6N<$f?*S{UH||9 delta 531 zcmV+u0_^?61Fr-jiBL{Q4GJ0x0000DNk~Le0000D0000M2nGNE02}%iB#|K~f6+-q zK~y-)m6Y2{0#Ojg=PBqZ=qU*L!-D>Rptp*odgx9_H=?rWMoO86kT1caC2F z#V1tXHp*|;4jap+jO(sd`yn2APBC~H!q9C5?;oQ06pdk2lu(RG$U88gM`tRZwQODQ zI=%dGWygtObupLR2v!m|avuBzXyW zO)N-q{elh1(Hdq@)sIUyX#$Eu5p@$(+lWHP3=4bClk)5EU09W2c{GNNFt=!j1Gle& zKv&*qWJB1iGjWhQ7SpIrw4?YPLgiNof5jc>2Lfx`hfJK(v&&FT_%^aa7kGZg{R0EJ V;&Z(8LHPgx002ovPDHLkV1nC)`8xmr diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-right.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-rounded-right.png index 8281342b392227e04a46bb724d3ddea9d7dd6bbf..8aac94d7b0ed25d1330dc6e13794f033568b3241 100644 GIT binary patch delta 473 zcmV;~0Ve*F1oZGGekxHd* z==M{fXtO8mL9tk5V->n}8R)1)QA8$_L7`CK<#XV3W)CDuLL!kU(efg2f0A$@IR+%x zfng3}E|=r!RjBl&sPk|h3Z^~ta25*Y3?wl_!IWt{e1w8^UB_;<`Gz%3gIBJ>U{zIN znr73hcmFV#Yq#6w>Emu?9fjNNHb$dSbzgUh9)h^5wpuOpdcB(05a0_Q3N!{P9S zmiGrc313#L6_(2-#^bRIFA~)B_SiVqJ>8Fye){R2KMLl5{xMF1zXTWnrV*J5Jt%?N P00000NkvXXu0mjfVN2C@ delta 503 zcmV40#Ojg&r{%2;8P&<{|UWS6xBm_BDxW!MpmSlT_`d%v8*UEH7ymavNO3$QQ)#%pPeJVZ4x$$^*bkh5&FO(jv)$V}YOW&H`gYwLgbygtEfhcyM9AiH zz-OM}E|HSpZFdk%i|bc?+Bp@0AJF$hAIRqgc;qv18M^_OFHE4fcf?%re=Af}7eo=B zGA|NHidbsnpHT4-NQzXd&FM~}Ih7?LQlwI;M>5B-;82%@ianA!r>KVGu*ibwkgIVV z$CfJ)mkm*GRHEnLI4c_xvBbnfnl^_o8}bDs5&7lew$Pg4e*Vjd@+`*zb7*R8SDmubpEbA^aS7 td@+EwT5&OJuxaJ$hKJz~M^gA4_gAsN^6MoiJhT7+002ovPDHLkV1i8O=n((_ diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-0.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-0.png index 1f0cfabe59ae5e1180640329ac6a4bfc7eb133f9..9277864a32d97d88aa9a1dd0591aa3444599b049 100644 GIT binary patch delta 125 zcmZqWn9Zoz8Q|y6%O%Cdz`(%k>ERLtq}f2214KSJ^WI~kqIxict*47)NX4zBKmY&R zGn*Ya(!l&+N`m9FoSU0kc|A&*3wgR&l$Ddk#l^$tty!b9icg{A>a}ZW0zyJb3>*dw Y%WOI3JWiQ91!y9Jr>mdKI;Vst0O5!ykpKVy literal 1029 zcmbVL&ui0A9M3kbI@n22RFFpoda=oSNt<7+j;v{1(QKou*o)9Kd2Pd%yqLVTSq}<= zpr9Zgyn6KJAD{>EB!Yi|e}WfJGC>4i`eQ1L9SkJzM?Rm=_xF>njT=jg7Z*8>TdJ>H z4Yn?@_r&P}``#=*I>nX?wAP~Aq)Ufxf;rPC9SrKB+rtg)`uq1j;T1;e2F(_2Ikyat zgo2x6ge;61o8wkiv)J`^Fa;gl3!)1D?cIAG1b&6TQ+A*eS8+dBA0>Euw9)iNJD%?I ztJlFwW-x&eQx|06Zj>5Xg&*r0Y@c6?JQzdhPKBR1)pE8#l_VIH1z7Z;0)c`AB$rfG zy#^$Rpa>-qNkya@vSdIArVr1oC4SdvSoYKwJ5~5TrLiH3!{JaE$^uDxBGPp|*N~(l zLlo2fh`L!ZN|$E}7EZk+h-p9~kSn?!vPUaC^K=qI7(33PaFk9H#Zo3_ZY&}JieZ?? zHAbhjf&aL1Bsy*G$5?FOl4DTTEyE6aYXA@g=c>R zKkyBRG>DK|f~o`+4Iv#t-Lh=OHceYrENP~3B)5dhimB-}S=AA;Yz->Xnqo_)Su59S znmXgwqm;Ulhi7(!-0p;{9m_SU33e$-nuP4mI$*0$C`tPy2G#8{a9l5l@^fCENwgMD zf&upJgoI$6Un4lu{=adXa@jVKDYHPoQcdCF>j8)nq_vyIxycJwmv%? z4iApl#3XDq?v}15Y^=(4%WP&}I)1y|p6}cSFHd#~&(55^^7-xP``1f_!C-Lkdh^x& mAHRMcJb3=}{NuTKZmz&ZFV0yDA3t2q2eV$=u->e-AN~d&NINnB diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-1.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-1.png index 72c8add06e0e4df8da3810730fe8256d7e963bb8..373b4521a124a7a6e79bd3eb77b804d05044c45e 100644 GIT binary patch delta 78 zcmaFE-pDvXoQsWvje&uIN#Kj&L`8K=24znd$B>F!Nk9Jow`Ue+7I5g$jo$Vrz2euG im-TE5j?_0WFf%OR<~_NsZQEa?jLFJ;v)5S>*0~LnTmngZHvX6onkREI5j3!aJ@li$6*jg&3kHM98c| zQ-ekmAqzpvbv?s#98Wh~tWR9B({%k63Fi^J*g&_qm3CPrg= z_rpgqRyRAY(=XnShQr}EQvCe>`SH_Vx8JOM(xjDZQuoE>A77sBT`lLY)82JoZV#XQ E2IgEf2mk;8 diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-2.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-2.png index 3679527d64ac8e5f4af0ffece33df268a37228ee..8a25d7d5670b94a5b3fb8534315fb9ebd970458c 100644 GIT binary patch delta 131 zcmeC=Sjec@8Q|y6%O%Cdz`(%k>ERLtq}f2214KSJ^WI~kqIx8Qv!{z=NX4zBKmY&R zGn*Ya(!l&+N`jf8VP*O2Yr2{W_m(eP_Dy`9GZ0LeJ=?l};>3-dM>SYkS=n-Pa|NtL dBbgKqFl5W|-BQro82~hw!PC{xWt~$(696tHDkuN| literal 1033 zcmbVLJ#W)M7BWkC#xk8=_ikg5(?vhTys^Ss}WH`Z><&0d-1IBu@7YBt$= zp1l`lrrGyq>Cr{DT&7lswn&c-+yrxmPr4X1LU#){vFjh)e~T9wsTZ_6wBy{;JrW9T zjuEmjW^9gISjuA8+rboc@m3Jk_~RF^co6tC{!Yb#PF%TI81i#!-X=uV9vJJoSEK%FEQR0LS^paOw{1SFSLRlNoz zh@c215lJPa>awIm2qq8DtR;R=Z<_YR7CY7WKBciPii5#G7{~%iwnU_9TCO2UC59-a z2N89%Qk2dY3MNjyB#3E1B9JS(U9v}OJo9uMLKr*FiExxo62(#`W^ODZ0g7Rm$2CHy zw2A+?aVk1(AH-N};*{(q9;-)hz96&Qooy%wGH>+tBw$5xcTM8$g*c)Ov&OSOf*<%g zL{*58T863wl`29Sf|_aCiftISte8@vaVobgm8(d#ELqhMGVLl@rJ;5#|Nt=+}q60Sigp#yRVo+~Yfa7{Wl%MnRjH5Mi66|B& zPDltw`PG9{?f)CMAy;ez88QoGrChZkKjHfSlQWSyBj(NVSF;pXtON7yN$a!2$?)Ka zO-#Z@W9Fq%VPmB=OrxEB==L@@UaZeY=kcwMLKmPx> lXXbf-W8-6c9tIW(hIcP@;vX;~Sm2z*1*ED2mhAiR^E~hO>*J#*JKOiRB}v-p9r}H--VpD` z)~5L0|9a=WSnl%fke|>AUtmTgFQ#JxdMTcgKEd(%i_fGjNRwnRrtON<-5c0?{bWGmgtf zR_xXaJ}DxW^EB4uica}_C2P17o_CA#2!^2d!U z(Z%3ACu*M*bj~7CkI8OL7P-6LPz4m;IL}xjih|F48qHIZ@t*I>;*Sz1u>+9>5i*<5 z)SzJ@WFu(%eqaQi7wCqs)f!iFn_AOCme$ox8zDciprIWYf#!MLR<~=JHMf@)9A^=! z?IxAo6&GF0bvle-PT7Fcv$_M0XOz=oMsv_PX@L+&NmiY!@~oou2}@p*IAAmd%ltaY zmG=LQ+tXWthdf;ba?rE_D6hHk|Kv;+&Zt#${M9V=mFU1~d)fNpa5+3A6BEP4XncD6 s=Ajs?+dbbKlwZc9(J23U>!!4^DLvTR+WYlA`cX|?uY2UbI~cwC4L;{BVE_OC diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-4.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-4.png index 6dcbf53ef69eab07396df03ff3f893fbb0383576..b9d310c9103991a26764dacab462ca493ced76e7 100644 GIT binary patch delta 9 Qcmcc5o;$%~@-Ajo02F`&p#T5? literal 991 zcmbVLJ#W)M758XS4uP5l`qD_f_HPDuld@<7?rfS|>`ROs{dNBMs_#F5_CFD?T89+_({4jTR-* z2c)8BED`mX?lfePyW0&(pzy|f!7@=4d>Yc^EGGr;hrTNQXla&u5IGPbyA5pvS`I=k zf^HZ_Rulx0X@y3kaU-{Fv>oJFJ=1m(3L^(v#=aF9LD1{;dXC+2`$ffZk&wo2Che}c zom;tHml4b<8&P`NbimP!a$3!33A)1$h;fn?@+`}t#3E|2OWy z>_hdsJfsj4!^CJTzCJ3%Sl#c3 j!KnT=`E_-*_w?S6I z@mr9P*pOi6FEBB&vNCc`;sR3D0ZaCM_<5f9`|aW2>DH|Ww-iO$>hI&BTyMyCZDU=2 zAAZ04Q7-pIZ!C`3RLlvdiXXEH1^tv9(;+4C`OB|#SCXd5Xe`Fzfg7<@BNav~(_FF@ zWp}U4NpwO5n9$=S^VFZ8zNjFHJ@t7jgkj#Lvt<8*)1!;QD7rX_oLJp^0(MJR3ZzsJ zP^PC@;g+7d&~@d$y4F>&fQS=MT{<-m4?&l43R)U$M9_l3LK-rgwrxKG21HPYhK`H| zvR%_~Aq1;OmDYGXb%!`u*^(zuoe7bDm`6>kmg}{DV!CnM9GxtCCPQ9K|M{YxEAO_4Cx;?u0$83 z^PK8KTCg)7$$Ct8YO>7T^@b{-^u~S06Im2;idl4)(oFQRr^-KCoWw3fZHSQFgth^# zHbM@94#t5M_QTK^s~|#|jMJ@3nfpwq0}kSs_Rk(b{fO z*({Mx>`xw$z|*47n#d*ktkciV5Osq6O!_)$NCD!2du diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-6.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-6.png index 8bd048b991434d841532c20d0ac615cb421eeffc..657130254422d6e577ed696b45108066ad3b5712 100644 GIT binary patch delta 130 zcmeC;Siq>*8Q|y6%O%Cdz`(%k>ERLtq}f2214KSJ^WI~kqIv{_lc$SgNX4zBAOHW` zGxNN^z5V^$_3``vH8Th^Yem%j|5w{)U;ocwgF?5FkTf-Q9m$f8ZVAjjJQfUo doDB@j45B8=^`^09Q-H=Yc)I$ztaD0e0su<2DhdDq literal 1034 zcmbVLyKmD#95w<9s#LMCKqYi?rHX;rcXndORzu~+F^#B8Nh6VsIQFHnTKkNBC2kia zqzqj0#&e9+_UjGWu$Od~ z1cH-cgfxg4o8#u@)5vkxF$FEW=7%Nz%kvjJ@Vyd$r(i=nD&vm7xEo9r z!Sg*Gq9Q~{%|lg!N)aIqLCrKR#WD;_R!nKEaV$5Vm$bZORb*8|$h3-3krot7GK@;0 zQYorqZZ%A(6S{b8*U#(@xs?;SdO5}pC2^gQjd2I8bOG1R0 tg9rUzKOgPCe@5Q)dcE1*-Q8L4)C9Nxak~8B@spiwI;)js^XWqK;ctZiNO1rF diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-7.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-7.png index e96d14560105656624b9226f867c1692b74fc192..516547dd324b7ff0470f116c2d6042fd885d19fb 100644 GIT binary patch delta 72 zcmaFLUNb?Qi;aVgfq{WZ;EUlzMRgMfIZqeIkcwMLKloXEcpMItJUGC}#-`BEc!*Vy cfsu`2ZzHGEySqPCfLa(lUHx3vIVCg!0L;J?+yDRo literal 997 zcmbVLJ#W)M7&an8P*E{4fP{2%B_?9u`7=J%ZJju#k?OWegUHCmzBE>ApRupR?a0Ot zVT6f|fvzmfs3U)Xm63BA7m%tBShDZK&-1+B@Ah|}udX~^ktAt#u#uZOl5S6v(U_0J9UQS#AvH#+(p<15 zX??TGNpwUxn9#!{bLF3(zsMkoUHPRM!Z7dAS+adr(1WwxQFL|`IkCLC0oE%l1X9Wg zsM6!C#FZ;Abg|gi*QyK_5Psy!mrjkteb8eC1*QVq5wsw%kb-o>w(Vy?g9xfnQ<2t2 zHr6!^Ay_`LuvWxVJoJO5Epc+?8Rt1x)%kp`%yoqohbnR$r`FK4wm`JY(~Ogzn<4$8NZTtmGt%Xk$02 z?HY#W7`k>N7xxNEI4ees9XB1YKVzJgGnRwifeAtqC0Tv0%X1m6PmAOYje~-vV3A*( zTx50I&XncJcIcm0puS8smERLtq}f2214KSJ^WI~kqIx8Qv!{z=NX4zBAN(x) z>;C@QpMQVfb_X?P9^=11Kes>p_xCrCgF!nZ=LQ+eq9?W!;?A5n5z(!4kmFJtuYutM f1`AaNCLRXcP{rBofg4JI<}!G?`njxgN@xNAx$i8$ literal 1034 zcmbVLyKmD#95&)zrD6t_lRF_b_MPp-vDJ_|ahyifrAi}_fdR+9G*)Y$YhQ`m302C# z#?Xy{k&SuE-}n9A&sSF(vom*QIF6fbE}1R1 zUS{u=8`s$PL4J6hEw^dCL)S=;4xAWshDW*>Gy`WHx3J^wY`w<|jMVen9on&%b(aK! zlVOB3h!~sW7Ak4vxEq*)E?)P;GJp8?9S?l3%s(pF(2i=j?=S7fcx`v3?e1>4n#Wh} zgN0OQ0s*EDNQ2EV(bF_~%p58L8i7j?2^LzJn<|(%abrKCJ_$jl=yb_8E%VINaR@&Ch0q`ebiv4s<|9lNX^y}2owU?skAf+BC~N`y+V1 zr$bbN2&oEGC0HyWq#>x8rd6~I!;*`pG}Snls}z(%RW|Cfsv%@rC0LZIMN2Y_dZAt~ zsZ(wQGIE?5RKWEMzODOr%8aJ~P@naG?Gv*!4xS*BO41GDXE>$Ah@ z@ZgY5Ow2~(=rNJlSm{mEXs4gLKW|;l<#Jz^7xzAYcvU$Z4u>c5@$ciKgKr;Se{D1x pC-}wwzH)DVUitOo;AL*{*(L5fzFQgI+{%WVYt~oHH`OP5e*nhEL!bZv diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-disabled-0.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-disabled-0.png index 86d3a0b3c1bd16ebc5040f8eac5b24be630f5dbf..9d9c481494545014484a74ffb2b843817d2ca8f1 100644 GIT binary patch delta 125 zcmZqWn9Zoz8Q|y6%O%Cdz`(%k>ERLtq}f2214KSJ^WI~kqIxict*47)NX4zBKmY&R zGn*Ya(!l&+N`m9Fm^~E}c|A&*3wgR&l$Ddk)z#DItyrP4icg_q>cokO4<0;7VBj!d Y*p|%E8k; z17hM6@C}%lU|?b48z6)j8DL;wL{yxUxPVl3z>zPYk|d70z5mDZNs zX6FKX7tb%T@2$#{bL_Z8n_ap~26W=3n6m=X$DkE?d$^6g;Nbpyyum<&u+ybo_qO4a zNbm|9A&(M<=D3Z`Jn{T}OhF&-g|W$hfAf|HVPNw26c@Tl0}sQk!xZlxZg>2{eP0jw z%^P4NHyA;LsR#0C6lX?m@>5=e-3ztIgQ*GKH~CpmU3UjGNQ!|Xz={u52vj5>xvFW} zbs#|mMJS0#svymfB?Ce*e|Y9C4F*QrcILjAWb#8w6GIdylZh~q1(NQGNZ0j(Ly{`Y zqLLlN)XOVzwq7#WIP=pmp&^Mu!RYnLn3_C`be2Mtxb87=oXrcxN+#xBA|e5bQB>qL zwa#c8{|Vzn>#TE-V6lxeGERNgkHLBgX0%u=ngrDvLOO!FZ9A%CS&ppQQps^5R&OdzMN*nF10vh0K~<`&j$~O(->hjR zwiRd8i+x=B4GX_BZ1q&E(MYjJN!lS~R8GLokWi8hNdg+X3UEC?j0?GF&n#OTr{Mz} zI4Oz1w7y1olK-84<9{94*UwXcJ?e42jugBlcF08G+`1F!Nk9Jow`Ue+7I5h37T5om{^Qfr i)Aei%j?_0WFf%N@$LG6f#{qSqJ_b)$KbLh*2~7a$Y8!6= literal 1004 zcmbVLJ#W)M7&f8;RH-Wh#Bg#aBx2v$@uzBv8^<&fPNOu4jB)HsVzu^}^Od++kQk8o z4g3To{s03EEX*v3nT3gki3QF{TtKQiV9CA@zt8i$pD%me2V0xBHU&Z0>g;=czFy+* z#@#4mU$Q*VFt!{nq-dn{p~vuB(Wnt)&dyhEj&y17Ze{Zx`SwO6j`yjdk^fC zHYZ3i3qhG4XN6rl;*!_q`|4U2!P0~sIpWHxVbB9DLNU-J*odGGfsQ1kHVwnL3lxZ; z3>6tE4P@A=VnYblkI2<%JhA(pzt-X>N1QR1+p;{L&!xF45jvHTWmy%6qBOWgqd3i2 zST?d^yJqlk5z!=P3CTdk7>>yab42dxDugr-f-~Z*SSO07OfJJ*MiP|Mw2EtKU9dj> z&Wyrm;4`{-R5*~XbI!STHI-Vo)KT@2;Hbf>w z$Y?@Cfx3y1g`nkmzV5rOuj-ysbDW3OT8d?PI&7<^f{^E%P*?VJUvb^G)^3|djqPLw z3$qB&=DWyMErj-(rVqt6HvXTS$=n&aYL35}rM}`FSZ&W*pC8VK2WNa@ zC?AbiA6{SQV|BaZxr6e{cr+UIqVngDZ_i%*y8nLTt0HXN5W42oPmAWAQ8j;^cGr8e HH+udX)~_=k diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-disabled-2.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-disabled-2.png index 9a8ffa1bc3eda6af54a91ba83a2ea00c438a70be..c16b43a4c3a5a81777125387bb081b932042eda8 100644 GIT binary patch delta 137 zcmZqYSk9=}8Q|y6%O%Cdz`(%k>ERLtq}f2214KSJ^WI~kqIx`or>Bc!NX4zBKmY&R zGn*Ya(!l&+N&+7bPtEsFPrWr2?x`y(eiUEl92XZip}SkVf8xZAoUW($*Z==l|NGn9 l|3|yU?>EUX9cEx;V`$}8(wX`yzXoVJgQu&X%Q~loCIIx^G6Dbq literal 1031 zcmbVLJ#W)M7jUWgi;@FqQYV9-jmAD-k zkQfj@gBAD#3``6xj12sR4y78E3Yo{WsxCTm13ylL(^F79Z9;=%sZsjMnxtvaz?`3HG)EGZa^D zgXO~F1TkSgDB|rTw+dSv^ICjgUdtjFo3JfgJa($(DoY*R+2X_g#{QsEYr zd^cf!QAzTpDFY^XkVPqrXaY(`zfX6VEpktfLx@w)J0VW;NuqelB$&j}%6s z1(5*}(yLHcpk^RsB4}dlYOdqBs)m&*$7$GFT`^6pRU4|IAcS25YRanSDvr~rH5!IK z#Ws_i`AI;gx)Il%VAV6RRy`v=qgjX2?P&+JhLq8KNK;VXr~%IpqNF^RUaZeY=kcwMLKmPx> lXXc6DS@hJNhk-?c;nP%+>_0k2$AM}YJYD@<);T3K0RYRc87%++ literal 994 zcmbVL%Wl&^6m^BDs)`D!Vnf-CT(KkejNSO9n##?@G!iaR8i_13u_uYu+GEC3;+7pd zK7wCBEZDJN%`YGp`~g3}f^ixbkg6`QWY5F*oO7S=`p3_|AWeMrWjlgV(V_G7=#tZu%j02uc^bQkdhitNSDqxu zs34%q&hpZ$e09m|$$fpTt6*s&PJQ*tsZrDi9mXkWYp@kV3jzyi$lSAS`w1{0f;u#G zWVDd&nT7`;SUsv#IUak@)Q>Is>(2)l9EUV*MT9;x#|G06Z zbve8!s6L=2JLj>i$8@&=%iP^AR2xcfycax`MImRH#pfB#MGyO`{G%ml;z8s41{p#K+8C^LL&&e?QYkx8*DEx1<7OD z=%!M4g|%WG*_|%>+N;x%ft2X&|FRom!t9h t&Bi@BR@*%s46ARG@p#<-b^oriwyr$h-q@L%AK%wg*XthR4~OHozX5+xD>(oF diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-disabled-4.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-disabled-4.png index 2e66015bafff42603809691033e80fc2fb91aebb..b9d310c9103991a26764dacab462ca493ced76e7 100644 GIT binary patch delta 9 Qcmcc5o;$%~@-Ajo02F`&p#T5? literal 991 zcmbVLJ#W)M7Uv zgEF0Fg;TonlGhRY>ROe-(u7Z3dF9j~JOeGt2xuy>5kUh211U&9FimqGXb?daYAVti z$aHkgfe@@8S*Wpi|8~*ZC4zc)({qrVv%uNHnL)` zX7EW7u_WgS%|OM7hjhkWS$Mh%AXU9^=ULqNyadF^JqZJ9N;lNB6i5vg?( zp}WSyTd_`y5zHy;Q#!3X;A~7eEygqltzHv^I7+hWT$N`Ptxs6;n#2L4DOl#$Np8@G z*1vIkdNc5lr`re}A6NmD*Vy=fa;6Gr)T%lDYL@y+bYQjJw7xiOhKFQgVwf0>H~TNX pi?O=j@x6Zeb@=Q0`snf7E$Qyn_EqD{<&SFQI_*>c!|}^^zX7jjFN**G diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-disabled-5.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-disabled-5.png index 785335b230b3811deccca1d0f88457ea3831eab9..1bbb21e960c21f11bf72a463d765207ff117aba2 100644 GIT binary patch delta 84 zcmaFFUaZ&|;OEZECB?hB` zFd;E8u&^+(GqJ+L%E&p53rJN5EZO(r_j#W8^VQMe1!WWnk$xrB*fPRLjWI%9oe)gH{3D6`Rj`%2g;>I*naBZVhSs~Dp zw6|XsI6fg9jL9_3J^AN{k1|LTPkv@ZFex|Js{d0nxuuT>c=P56l?Uph64jzE_(0t^MVVrW8OA_eJf%d#E<4I-#QO+{J@ zS+1_R5Q5bs3pJKZ+(8how8Y7iXPg(VsxB4_WuYsSO;zMLPR*fdEn(3r&vTBeR$lHl z3;`))mKHpvIj9-&n9jK;3r{aY$ciYsBF@WIqD0En3KuF;pqgcMTubYc56B-kuC*?Q z=LJy*q@;5ei+W6U8?eaT%|f-I@Wy@0Qc)Cq8qj#2k(~DfPZocaBu!k1Y>1H6hL#3R z8zBclCkR3_^!-pb1Fhk>4r_FEWSN@L(`^l*Ahe;Wb<9xn{hrb5*;a$?=OxE^Od8!( z=&rEs8?kPe5zHwYQhM5Sz|o9yTFz(zy2l2HaGd7#xh~ITv;kr13zCG4W?-3LH@!w5 z+W*Gw>qh7!Uw07dwCxbeD{S&VIa7r*YTX=vHA{0PIEb^Pnj?X9h?*V5X$)cvus({jGNucxlxI}F}-p1=GJVqz?c diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-disabled-6.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-disabled-6.png index cd3848f179f2a232c81f361ce23f8224405b2752..34f8ea207e2bfe55d7d1638aa176775b272aaccf 100644 GIT binary patch delta 123 zcmeC=n8~Qv8Q|y6%O%Cdz`(%k>ERLtq}f2214KSJ^WI~kqIw{MwWo_?NX4zBAOHW` zGxOZvRr>nv{r&a-n;C?ewIcpJJj}j9Nz9~k)As!PMofh|${u3U2}uVS3%nRuBp9;W WRP2L)>zn|Z$KdJe=d#Wzp$P!^c_V8b-Uo6WV6X^H?+ybWa_3{K~Mw* z5&r`{c=F)En|SC=uzK+-c=hT*P>Nce?4v4_9td-BW#`(7&CJbe51u zLeb4_#4L;%n&ajdve@<3G3DEMEr?3O=T|!dANVEVYS95sT*2L7v7g}8{&K_XuX~0s zEL`B{GsFl&OkF+;H=-0}C1Jpe*gn6O1b$#b*Gt0Csiw2SS4e{Sq6i8ePyw$(5h`<< zrk&$u0D%N#3CabiAw@<2@S{gyYKh-Lb;}-Uu~SLtQW_&k>h*eJPZ3G7CPBk6at>K8 zFpEOE6;U@UMCt69!NRGR1ThUr#OI7|n{3jOz&ss>5XO#kKpdr`M6r}fnHx(`1X390 zaSg0fTE~CfIMh0AY{giriRw)izCAQ7w7QaTvB(QPi>twN<>$OS z!)Ps>1UIm6CnV$t`9;AY`au6TZc{1RCNvcT!t$JM17U>q|0ib>b4JRW4ZGHRCD$Ud}Nt=6Nxv!|AJcXuEB+W)!zmOGw)dUxgJ w_P6NcN4?)9CSFXyN4z0ZfUR$aE9ms_`g1MEmeDgXcg diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-disabled-7.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-disabled-7.png index af73498eb90667d53d3efb62737e29dd539b52b4..78e4e0197bf29cf6d4e3958e610e11e20d36cb3b 100644 GIT binary patch delta 72 zcmaFLUNb?Qi;aVgfq{WZ;EUlzMRgMfIZqeIkcwMLKloXEcpMIt{Qj29#-`BEc!*Vy bfsu{jurcT4f=7zUKrIZOu6{1-oD!M<)n*is literal 997 zcmbVLJ#W)M7&f9psG?%(Kv_<%#6;{nyZ$=Wv`!q;NOfDKL1g4&UmB~m&z!Hs?TA>| z`5pWL23YwAz;8feW#pX31*D1rOZI*EeV*t2e0y~8bZvEGRZ*0+!Cp9&>n-`N+`S{e zhhLsyxjYd4u{dT^F(;fVLCPi+403Wphm@ojFF(_5MY%oAMq@FK_i@5>Z{MK7{+Cf&a%BrPLD4SM#<%A;-%`&6R=%lNsv=P zK%Jiz6|Q}C!Hea-xz<&%FcGJ|dgatOJ_0?)DX=uyNuUjZjWlF#Igaxf7!W}n8agsM z$ib$8Aq2}um1;bl;$avqwdBcHXF`-%*XQ%OHa9iKPjuvYUc+G+9cj_2E($^FPEl>P z3?Z!&o|PhF1!x$_gq;gtm7ZROke6|MOj{}yTtr8oGHXR;{dEM&=fP75&zeO3O^(k#Ugxey^|3pxh0 zU4%RYy)caIC$wqiaV-5cI8n-*sB-pr`~X658r! zQg?~9{)xpsPKjWA#MoKe0Y@_?ST$oM=p9=iCP`K_=cYVY(T0>~uV@-^mV-rpadv|~ zbpMV!Fs&#+f$1UC-Et$SF0twV&HY%GdAB;0^i*;rs53*S`S3mMka$ diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-disabled-8.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-disabled-8.png index 9928549571bc20b104ed4617f802687d9cb3e334..7cacd441ee0e40381bf29c1141a2ce9a1c0fd45a 100644 GIT binary patch delta 127 zcmeC;n9Hcx8Q|y6%O%Cdz`(%k>ERLtq}f2214KSJ^WI~kqIxKUy{C&~NX4zBAN(x! z|Ns51e|>H3b_X?P9^=LietA0shJ!L}DhG<5pPT#Lp~_I;x{|j+Q%M4|503?dA7=vt aGsCj`N|h1iN4tP#GI+ZBxvX*mrj0muiX=$27DqRT_y1799K1SdD$gz7n?!s0aiz z>d=Y*0R8}mijj#G!GM^UP*+q$#W{^jk*W?@vhU&V`+o12t1GvrCTAu~rP5S$(Q2{v z0(&oBxy-&xm1h%dnWl{nT_Zg@bQ4@MebU9C8M^DZgr)!*f-oEo`Ju#H+pBGAHX5o@ zaGOy|-N?g*-GJF0bG381dOg7|B}to*LD2!LeL_jvCo!n6Re|GrL6o2K@*GEN;Usv3 zeLEo`80A+F&ae;Ff8#c#s%;`u(h#c6sW#-sT>pP^CNO7&yg5!aOL4_IFyEfEK0BNY z502QxBy2S9AGG$^Sm{m6Y-gXlKd)XYm&@Yv&7E&w_aBqp-QDTEqod!y4&OhWcy)Ve pNxMcV^}m07{r2$37iIbh8}Lu}W}Y7%zOeJ@Y&KS`H?;>le*n&CL+k(m diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-0.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-0.png index de125412849c1164aac3e16acee8f4d538704abb..45338f2076132daa6270b378eaa3564eaf7cb5ce 100644 GIT binary patch delta 187 zcmcb?af4B@Gr-TCmrII^fq{Y7)59eQNV9=32Z(%d=Do*6MfG}yDo+>3kcwMLZ*Kf- zdU$#I`7=B`JTeYv*pK{iICGXsl!a4+VI!YFHp500?hsXv3zO&e>dv0p8rs#_+1bdt zDztxYuWf(#T-P}dZ)dl~-?uk5a8xykh>SQQxqpA+kI$c_nF|7$4o}kD6GQuo9kA5R|*~-puaK&fuh@vy)q`*}9~WhsK$wPC9>@dA6&k zQi3`J9ivMTbP9s4qeMYMiA0C2Lr_F@?-10bus7;jfplnK=DqLD@Av!uyzjf(*L!4p z-R?SuVYcUbv;tkXMDNzk^gCY|ctw|Hk{u-d-Uulf0cKRo8^$2#7^Ap=4QuNB0&ZuR z*oa*mB!l_mvgtVqBf=!gj!)SP)80|`4Rah5FpNiSS7E=*J!XMzDeOQh5A%LE95{2J?NO+Y2yA zC1BiyX$aCNfrO+eifw?02y&3;5FbaPEbuafVC`Y4x4;^a3!1*>i&_dhMu;zST&Yw_ zl!SyAjB-elq)3D3;}j7Or(9x`<8HXGs-WS}3~Zm+o(m#HW7wM{3QHqhO~LW=`E_A8 zTq_hU8CN!Z4kaMxI8k0J=#Uif?=Ut*hs7x$a|IlFlYvR^V`N{IOl$XVM-h-lBcBLt zdMU<)=9!ZYc1ccCSo$Yn*_I4Z1|lRTp~%B@1|bPSNz?SSuBy6_*7&N%hTLQ-nd%a< zSwWN#()0{W^Id73SJiAPo6U$-Zq5yf;hMPW*N*(Iaa0>c62?f*=jhjFJMa#JO`}QSGG6w|99T1kkVD83N(?fWJZVV8rS-t znsGE3E^3ZHnx%R~J22X=w>~x2hX=cKVgfoE3V3mhj@6Z%rWVU@hkqtS`sANYg(*yUi*0I=#AQn(sZV_ zlB{29Yz3!cxgX2lxessd3X9^)TMu?w`}Zt0UO#z?8bjv}Jp20T^Lyvf^KT0^m8F}_ k@8p7(&d`k24;4?wJ2am43k^bF$p8QV diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-1.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-1.png index fbd78313eeb194fd421eb27fc761b9cf2f3b9651..b5425fd487239a56f7d1c134bf330e87eb142bbb 100644 GIT binary patch delta 83 zcmeyu-o`jVoQsWvje&uIN#Kj&L`8Kw1`SUa$B>F!Nh_kNZ_nv$Y+TsT+23y7^z!`d nXda&SbvA#`e~{;3VB%qzF3g+0RnO4@sF}gj)z4*}Q$iB}hqN3h literal 1012 zcmbVLJ#W)M7&b&|t4c*eOt5frK`g|+vlBbEYEm~B(@1rx(nth}0mr^1R%@SYUy0iZ z(FH~%*8T$KGY!4kc8BluImqh z0uhvGK2*LajxwSMHnqBP7ZSj*Oju}f#S)NQL(nOVLI+BrL7=?zSR5_xW z9mUMct8unkDqxcNX_&B(#-LF22K10wBKLF_LX^1fg>anB6U9>|=UyTs3CdAa#5F}{ ztV{m5aVa|M9VJBWl8hdvKCj1cwIuW0U2UiUa&OEhX~>J>?PKa6MkHn(Y>E7j6oi2Z zQ3E2R*PyOIt$~n%pnnh20sqbtTtqrNm=2?NPd4cEHYt R>zP!{VW+)~KWw~s{TpGiGqeBz diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-2.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-2.png index bb4be64f4de832e9683af2c919deea9e00d0a828..d0ed1884187b4f4392979ec7d0994ece9abd6224 100644 GIT binary patch delta 202 zcmV;*05$*Y2P!U|FQsy93XxU#5aKWG7vuiDPZB_;Z6AW?;peO zKfj;<{Pk-JP;fgC-(vdv?hXU%&({oG?5vXPY;3teL0ur`XEIWiV)*m(8w2Byw+yT- ztP(&$4X}iho*aXzrYytHub&v0AefkdVhoZ%%mol&0Nc(dnpNE0NdN!<07*qoM6N<$ Eg6a8GOaK4? literal 1132 zcmbVLO=#0l9M4v^sW2TVf`S+_bRKN;Ub;4ISY5NGaUFIWUBMkZm?f`m*z#fWX0s{o zn3uqmpm+p`sQ6k&P<6?HSgd|bTE(7Kjj4o9*eYo}02@11ne z&}4sJog7u;8qbx&qnz*DOOPf`nYv(QT|-ChaRKBi1-hFvQc<5DYt;T@yCl zTB1nGSWmH87y_(e_;FRyF3zFfZmf%T^Ak2=bI7&E9hKCh&|W8#-2K~-42>DLHb08XnFb+XnlH{l?igGwAadnM#xt-BSSWLro zn2$p!$uSV+dZIEXis?u?9pmfVjOk*6^mXn39k&>c$RZTOB#@rYm<*U2SNorw zvBVkHZ;n5jrG7;^(BH1LJ~^xn4>HNbIAk>DF9lDLvAUR%#Ju-%9j>FUfD)`=%QDrnmiQ$}|T)wbM(1%8i+?8}rY$%xO$pchmAp z^5k4YWAgsb!qSO%-vUZTmlgPMP?qoSPTu9g%K6=|ZeBn4_TJ}5#j9^_?Pd0SpthZ) zDoERLtq}hO&kpo2jJ$e7bL`8Kg1{F^i$B>F!No%62 zZ#OkIE}YQcZvN)|ZfhR7X;nOKpZ4%DFtRbEPGI{dI9>c1P$Pq-{=IVH?I(U*Wt{=rAtN>kDVE%r3^C}Y;V$msFg|?v5wA&7ZItu}Y!KYBBa$ki zuu;l1=V(b8xkbG= z%ve~~vtqSk@Nf~)Bxec9fM5)VwD{MC_ zSeQk)@|y_1Gi>8btlg$KWQ6t!*{>#GdrTN9#v}*rohAsvD9MB@+B3`6!!&t>W1o@~ zOzUeWr~3alZ&z>nE^>9A$VQ{(LwSyk|EFdu4@MQk@z=0aDn5bYdNTT4I9VQ?@r|Kk zHNL*E_*z}>dTzh`GQ3}Ydv>l?d*WQWA-!(DfBy3O@$vDb_W7c;uqe@=OTR9^aUHRT M-OiTxYU9D<-{`zG=Kufz diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-4.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-4.png index 6b4c7b191e8c65474c33093d80c03ab1a00b6595..b9d310c9103991a26764dacab462ca493ced76e7 100644 GIT binary patch delta 9 Qcmcc5o;$%~@-Ajo02F`&p#T5? literal 991 zcmbVLJ#W)M7v}v5*LuF4p_49!_V`)-xr4mPc}CmZYYYf+20QbVqKH(y>;<@ zJ0E@%%LCpU^C6w`Ic7u&QaT}^pW`DkAUHjH`I&4h%AIL88uM}d)JtftVTsY|ycBFj z+1{;7oE#GlCgdn9eD%l2Pb$b#Uwz(*VO(~}EZaY4WO#lsO3sfHH&u6cz;^8kft+v* z>indryxLb6x}Mm}Yh48k2tW4KrBmbh5OgUcprgT70xbwEq#?6y+x8=1Km>JY=*Vax z+cOOhLa=&NVU49zZxBW+TjJ!aGtNs-*XQ%OHa9iOj&$U@uGBD$mO!+svx4KgRa9Gz zLP)BFWhKvO0i+_H&{OWK!qa64c^Svo!bP=8lt`Ig<5EW&)bm`%wLn*VK>oOKBf1)$ zl|&zqik`AW)ML8UkVWopHza|=8}Av*L{acbNR!i?6uck$s`#U&S?WRLK!ofzv<+xE z2)PKlVHjCa5JaXG8jZ${+_q!5jvMq$+eIjh9B3JPR%8T0uhZ)}cEjx#6~{$F8oQaa zyX3mJa=k7im{T^Q^rY#4!x`nYn$Z$;haC{(BrD`umS-7lNLcoYq!FVzSmf8sZnpnV z+=1DN0u-1ckiE7OL3PDV|0idERLtq}hO&kpo2jJ$e7bL`8K=24znd$B>F!Nq_iR yp3Bvx-6;Gc#JqU|*Wu;*^TQ1d48Ab4NHCnJ=e3zC>fZ*`$KdJe=d#Wzp$Pyd0UZGV literal 1009 zcmbVLJ#W)M7sx(qFAsqYCSdD$gz7n@18$W0{82{THQ2tq7I`p%&|QcYNj@YgXl*rs=LbBIInHdZ&=w$&|;`oFJUSX_N~c=+S>uP@KPu6~~b54iX9bLSSh7u;oXBt5%b O4q@BbuwSk{eDVjLA~mf5 diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-6.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-6.png index 22aa9f17e82163d78e223300c43fe2dfb3dab01e..427e771b22bb2c48a3f0f83bb38d37cc1ce8b253 100644 GIT binary patch delta 200 zcmaFN@sv@qGr-TCmrII^fq{Y7)59eQNV9=32Z(%d=Do*6MfG}yc25__kcwMLYoe-e z&uDB^Z0~P3Z+v*!nJwE^l#M&pkxgvD19OGCkMHl>v+?oewHa@pXV}0XEKtw#NP7SO zKb1eH$96olXI4JE(YySC(DeF$zbwDrK5xIiZUdL`pXZa=rN1(F$TNHlTks@V;Tppx zRSD~|eF;ClJT*3+aG3LmT#dsS{v&r77}*$lI1G>096zrIbR2`HtDnm{r-UW|06$Hg literal 1123 zcmbVLO-$2J94`()5(grj~V;MTcZ8kr)&0+BayReYJhKg7E`A z=}kNs55}wUV2s9-8ZJwS;o!lOdLZHG#c-0uM0^E?nh*~*Y2QbGzu*7+?%=@bj`q%W zj^jFt{aTr=ZPB}Z8~ZlO=RdOL04)sDAyT7t!^fOzktzm7#~8t7Y*>?5-s4`5i`DGP zFdZ(PRZQXtMuZVU$75`c>pdBIhB<~QsNxaZ&GFyf%<{mta{T#J36{J(9<}?Yd^|KY zP%)>*%&f(qJOO$`g$X#A8X$DW-9QO*{Hm_P_R+P-gH;F}%kgVY4VMN%p7k z8iF(uP_jpsDwN)i3=h{qe>=dj%S{(h2VIl(uS}btS5@4 zObiWAL;@5YCyHwo9ndoV?Z&3)pfc%Uv5W&U;hU@;wZly^%iX^XML_0_a?ZC|QH*ho zm=g|mX;I7Z?2lmCmI6@*A|&@fS%T>dLRkc}nx?09Rn?PeO=@av%I(QW*^DX`l5!Ry zP0zrz)R)#JRV}0ng^b+f7Ttgvu8Es=?a1yL7yXl~OoOcE8*wr#qjI>Oe}WiSiCKErSFn) zd+t%}_`_E(UTl|Iw%*vXbPe3t)%cK?&RqZS__)0C{o4XjXJ&6LC*lh&i{{H`7wj+O zZSCb!`@LFg=Y0F#y{*-wPnUL|8sE{F={~h6#&1q{?%Z;4dbuk;KYe87(5D}5U6cE) r&YhK1|MxxMXGi17^zzpDtCrUNobpbXn|pm4Mq^(r3~0~$F5mtIb0%b6 diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-7.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-7.png index 474edf7ecfaec2136f32382b0d22de2d8eda6f98..cdc204445c82cfd58bf69d8818fa19e50f4590e5 100644 GIT binary patch delta 83 zcmaFQ-o`jVoQsWvje&uIN#Kj&L`8Kw1`SUa$B>F!Nk8~me4fkIr6t@d{iMY#ytqM$ n`SNo8`Qb)}1_nM190m-Zs(D=-)ASvHni)J@{an^LB{Ts5{+Jl$ literal 1007 zcmbVLyKmD#95zt#s3>d*SU9-@3$gF)#Ez|+%8hLrsV-3(iHvpZOJXJVne&yn9hqQf zXJbU{3<$PLj7^k1k7C%|yn6b>1<=Jc|%~Xldk&Fz(C^ZzN#u2srFl9ke zOY`+g!NGY*vfO&q+ z_*DD<#%-$&&qlV&1KFxKJt!`@(f{O3=FZ4vbNtmT)fMl+a(mMH{BSZnIOP*V`DnQB zf4$^mb*Jsvz2fuW$Muz+tDXH1Z@zt6hu?)~eL=i-e&wd{QNQx)hW+zPIf89>*Ll6Q G|MWLN>N6hz diff --git a/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-8.png b/AppKit/Themes/Aristo/Resources/textfield-bezel-square-focused-8.png index e77d1c1ebee773d5344f779eadbc6546832ff1d6..0bfdb231cdb9d17765c9ab468f2e1c92871772be 100644 GIT binary patch delta 189 zcmaFDaf?y0Gr-TCmrII^fq{Y7)59eQNV9=32Z(%d=Do*6MfG}y8c!F;kcwM6y}P-Z z9RytSr};W?IPE(y{~PlsaC nY4z9sKWdUp+CTrYN-(es3)-;dT|4*@=pqJBS3j3^P6?a)r6MX6!3R1-4<6iPCi{-NwrR7`1-F*%LhD6Lli6-)lSz}Qn-*z( zAXGdk;=!9oPYND9sZ>x9@gTlX^q}m?i%1bgVXaQuZdE8A3?%c&_kI8STwm{j_3c~R zIgVRjIH;D`+7`ZR*Rbz{(!g`JY@zu<+D|I9rhAxEOfrN)!PbXy3G3#>*dv_fxJbn+ z57NQnA=x0dpobVCuwBOHxNK+O>c$ABUEZs# z-m)<{Vq{Fdb3e!iG83>d)j?p7I=&p__yt{=?Za!42MZ87lH(Vh8Z7pK9^zq;5Mb1R zNeGfiK(Tl#mD&p=h@c215lK;$l4Ft#Ay|5NX3aAza!J*eY_U_0uTtvDqFAfdgj!4> z-mr)=nM|l5Nl}J~`V$V-gQ(;0YAUGMH$2Ow7I8qRs1K2Gn&X+Liy_!M_Wf4i|F+AmMISS(?mjC%&FM`c%&%yRc{Lm`lPBOmrGRup|y zCC0do9a>OxJo_VHZewDbO zr#}ITx?wrtIV{g&v?}(jhBm*T(nH>&`qofA>_&lT+U|ZJceZUpuPMCnMOkP%ZJX3b1gF$R?R6F$GT2zn0a@z>toRRa%|ho&dA&_n19@IYrFYy v-<~yvMr(a~Z=W%xte!eUPwqZ>Wfi!`RVT9@*Du#Q!nrTxd(|7=$4>tO-;iyf diff --git a/AppKit/Themes/Aristo/Resources/token-center-disabled.png b/AppKit/Themes/Aristo/Resources/token-center-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0fcdbc47a0ee4a35febf07c79c0279c2abdb6829 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{R!3HD)xziF!Nft#;Fs4`1k*R z|J(y=++xWLOdKCyU)N___WAkwdbW=&3`{%>wXBBT74x+nfW|O*y85}Sb4q9e05>u- AD*ylh literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/token-left-disabled.png b/AppKit/Themes/Aristo/Resources/token-left-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c3ae314d9bbd8e3f2ff6f411a3c2466d499fa6f7 GIT binary patch literal 477 zcmV<30V4j1P)e@}{=HOTe#X`4!hzgDtcRxY9I=D(f6hsHL#N^WV!kxr4Z67?2 zTz>!mdw2Ip7=}tR2m~(8X47yS=T6hK2Bq|jrGOL+c)#DjHcj)TSS(fy!(bqwEDanC z2KUu!_0h5{Q`dFEIah)pP>5_pl%~C2@2Xa-y_U=60{+8o$;6!z)}XYT&*uy1h9TEI zEL=0)ZnpuY&lzI}&;cx5SuU5m$!4<|+(^5nIGlmFK-V-d4pWgQAov%K1b96Nru8cw z_p#gUK0VKi1Zf$E`DU|uU$57SJm7CI*5%Xb^lhXUu^gNkN=F8ky=t{uFO*UV@T>qf zO*4ZBB1sYnf*@NimoC_@o6Y7!*+GF6wii4rl?rV%8Yo z(e1rnub+V4!ut_M7t9!j2o;Wsq7YS8&vaeC0E~?6f51Xfs@1AotJN+sRl%<8>CkU6 zz%I-3IWqqX1|S}%7@cdHccU!4hKvKrLFPD)Ns=U1A+>#AEPlOS 0) + [_tableView selectRowIndexes:[CPIndexSet indexSetWithIndex:0] byExtendingSelection:NO]; + else + [_tableView setEnabled:NO]; + + [_scrollView scrollToBeginningOfDocument:nil]; + } + + return self; +} + +/*! @ignore */ +- (CPPanel)makeListPanelWithFrame:(CGRect)aFrame +{ + var panel = [[_CPPopUpPanel alloc] initWithContentRect:aFrame styleMask:CPBorderlessWindowMask]; + + [panel setTitle:@""]; + [panel setFloatingPanel:YES]; + [panel setBecomesKeyOnlyIfNeeded:YES]; + [panel setHasShadow:YES]; + [panel setShadowStyle:CPMenuWindowShadowStyle]; + [panel setDelegate:self]; + + return panel; +} + +/*! @ignore */ +- (_CPPopUpTableView)makeTableView +{ + [self removeTableViewObservers]; + + var table = [[_CPPopUpTableView alloc] initWithFrame:CGRectMakeZero()]; + + [table setDelegate:self]; + [table setDataSource:self]; + [table setColumnAutoresizingStyle:CPTableViewLastColumnOnlyAutoresizingStyle]; + [table setUsesAlternatingRowBackgroundColors:NO]; + [table setAllowsMultipleSelection:NO]; + [table setIntercellSpacing:CGSizeMake(3, 2)]; + [table setTarget:self]; + [table setDoubleAction:@selector(tableViewClickAction:)]; + [table setAction:@selector(tableViewClickAction:)]; + [table setRowHeight:[self rowHeightForTableView:table]]; + + return table; +} + +/*! @ignore */ +- (void)removeTableViewObservers +{ + if (_tableView) + { + var defaultCenter = [CPNotificationCenter defaultCenter]; + + [defaultCenter removeObserver:self name:CPTableViewSelectionIsChangingNotification object:_tableView]; + [defaultCenter removeObserver:self name:CPTableViewSelectionDidChangeNotification object:_tableView]; + } +} + +/*! @ignore */ +- (CPScrollView)makeScrollViewWithFrame:(CGRect)aFrame +{ + var scroll = [[CPScrollView alloc] initWithFrame:aFrame]; + + [scroll setBorderType:CPLineBorder]; + [scroll setAutohidesScrollers:NO]; + [scroll setHasVerticalScroller:YES]; + [scroll setHasHorizontalScroller:NO]; + [scroll setLineScroll:[_tableView rowHeight]]; + [scroll setVerticalPageScroll:0.0]; + + return scroll; +} + +/*! + Pop up the list if it is not already visible. + If it is not visible, a _CPPopUpListWillPopUpNotification will be sent. + + @param aRect A rect (in \c aView coordinates) to display relative to + @param aView The view whose coordinate system \c aRect is in + @param offset How far to offset the list from \c aRect +*/ +- (void)popUpRelativeToRect:(CGRect)aRect view:(CPView)aView offset:(int)offset +{ + if ([_panel isVisible]) + return; + + var rowRect = [_tableView rectOfRow:[self numberOfRowsInTableView:_tableView] - 1], + frame = CGRectMake(0, 0, MAX(_listWidth, CGRectGetWidth(aRect)), CGRectGetMaxY(rowRect)); + + // Place the frame relative to aRect and constrain it to the screen bounds + frame = [self constrain:frame relativeToRect:aRect view:aView offset:offset]; + + [_panel setFrame:frame]; + [_scrollView setFrameSize:CGSizeMakeCopy(frame.size)]; + [_tableView setEnabled:[_dataSource numberOfItemsInList:self] > 0]; + [self scrollItemAtIndexToTop:[_tableView selectedRow]]; + + [self listWillPopUp]; + + [_panel orderFront:nil]; +} + +#pragma mark Setting Display Attributes + +/*! + Returns the desired width of the list. +*/ +- (int)listWidth +{ + return _listWidth; +} + +/*! + Sets the desired width of the list for the next call to \ref showListForfield:relativeTo:. + Note that the actual display width may be larger if the given width is less than the width of the associated + field. +*/ +- (void)setListWidth:(int)width +{ + _listWidth = width; +} + +- (void)setFont:(CPFont)aFont +{ + var oldDataView = [_tableColumn dataView], + newDataView = [CPTextField new]; + + [newDataView setFont:aFont]; + [newDataView setAlignment:[oldDataView alignment]]; + [_tableColumn setDataView:newDataView]; + + // Force the data view cache to flush + [_tableView reloadData]; +} + +- (void)setAlignment:(CPTextAlignment)alignment +{ + var oldDataView = [_tableColumn dataView], + newDataView = [CPTextField new]; + + [newDataView setAlignment:alignment]; + [newDataView setFont:[oldDataView font]]; + [_tableColumn setDataView:newDataView]; + + // Force the data view cache to flush + [_tableView reloadData]; +} + +/*! + Returns whether the list is currently visible. +*/ +- (BOOL)isVisible +{ + return [_panel isVisible]; +} + +/*! + Returns the desired row height for the table view. + Subclasses should override this if they want something other than the default. +*/ +- (int)rowHeightForTableView:(CPTableView)aTableView +{ + return [aTableView rowHeight]; +} + +/*! + Returns the table view used by the list. +*/ +- (CPTableView)tableView +{ + return _tableView; +} + +/*! + Returns the single table column used by the list. +*/ +- (CPTableColumn)tableColumn +{ + return _tableColumn; +} + +/*! + Returns the scroll view used by the list. +*/ +- (CPScrollView)scrollView +{ + return _scrollView; +} + +/*! + Returns the panel in which the list appears. +*/ +- (CPPanel)panel +{ + return _panel; +} + +#pragma mark Setting a Data Source + +- (void)setDataSource:(_CPPopUpListDataSource)aDataSource +{ + if (_dataSource === aDataSource) + return; + + if (![_CPPopUpListDataSource protocolIsImplementedByObject:aDataSource]) + { + CPLog.warn("Illegal %s data source (%s). Must implement the methods in _CPPopUpListDataSource.", [self className], [aDataSource description]); + } + else + _dataSource = aDataSource; +} + +- (_CPPopUpListDataSource)dataSource +{ + return _dataSource; +} + +#pragma mark Manipulating the Selection + +/*! + Select the next item in the list if there one. If there is currently no selected item, + the first item is selected. Returns YES if the selection changed. +*/ +- (BOOL)selectNextItem +{ + if (![_tableView isEnabled]) + return NO; + + var row = [_tableView selectedRow]; + + if (row < ([_dataSource numberOfItemsInList:self] - 1)) + return [self selectRow:++row]; + else + return NO; +} + +/*! + Select the previous item in the list. If there is currently no selected item, + nothing happens. Returns YES if the selection changed. +*/ +- (BOOL)selectPreviousItem +{ + if (![_tableView isEnabled]) + return NO; + + var row = [_tableView selectedRow]; + + if (row > 0) + return [self selectRow:--row]; + else + return NO; +} + +/*! + Returns the selected object value. If no value is selected, + returns nil. +*/ +- (id)selectedObjectValue +{ + var row = [_tableView selectedRow]; + + return (row >= 0) ? [_dataSource list:self objectValueForItemAtIndex:row] : nil; +} + +/*! + Returns the selected value as a single-line string. If no value is selected, + returns nil. +*/ +- (CPString)selectedStringValue +{ + var value = [self selectedObjectValue]; + + return value !== nil ? [_dataSource list:self stringValueForObjectValue:value] : nil; +} + +/*! + Returns the last selected row in the list. If no row has been selected, returns -1. +*/ +- (int)selectedRow +{ + return [_tableView selectedRow]; +} + +/*! + Selects a row and scrolls it to be visible. Returns YES if the selection actually changed. +*/ +- (BOOL)selectRow:(int)row +{ + if (row === [_tableView selectedRow]) + return NO; + + var validRow = (row >= 0 && row < [self numberOfRowsInTableView:_tableView]), + indexes = validRow ? [CPIndexSet indexSetWithIndex:row] : [CPIndexSet indexSet]; + + [_tableView selectRowIndexes:indexes byExtendingSelection:NO]; + + if (validRow) + { + [_tableView scrollRowToVisible:row]; + return YES; + } + else + return NO; +} + +#pragma mark Manipulating the Displayed List + +/*! + Scroll the list down one page. +*/ +- (void)scrollPageDown +{ + [_scrollView scrollPageDown:nil]; +} + +/*! + Scroll the list up one page. +*/ +- (void)scrollPageUp +{ + [_scrollView scrollPageUp:nil]; +} + +/*! + Scroll to the top of the list. +*/ +- (void)scrollToTop +{ + [_scrollView scrollToBeginningOfDocument:nil]; +} + +/*! + Scroll to the bottom of the list. +*/ +- (void)scrollToBottom +{ + [_scrollView scrollToEndOfDocument:nil]; +} + +- (void)scrollItemAtIndexToTop:(int)row +{ + var rect = [_tableView rectOfRow:row]; + + [[_tableView superview] scrollToPoint:rect.origin]; +} + +/*! + Close the list if it is currently visible. If it is visible, + a CPComboBoxWillDismissNotification will be sent. If the + list is being closed after an item was clicked, the close + is delayed slightly so the user can briefly see the clicked row + get highlighted. +*/ +- (void)close +{ + if (![_panel isVisible]) + return; + + if ([self listWasClicked]) + { + [self setListWasClicked:NO]; + + // Wait until we get through the run loop and delay a little + // so the user can briefly see the clicked row get highlighted. + if ([self itemWasClicked]) + { + [self setItemWasClicked:NO]; + [CPTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(closeListAfterItemClick) userInfo:nil repeats:NO]; + return; + } + } + + [[CPNotificationCenter defaultCenter] postNotificationName:_CPPopUpListWillDismissNotification object:self]; + [_panel close]; + [[CPNotificationCenter defaultCenter] postNotificationName:_CPPopUpListDidDismissNotification object:self]; +} + +/*! + Close the list after an item was clicked. +*/ +- (void)closeListAfterItemClick +{ + [self close]; + [[CPNotificationCenter defaultCenter] postNotificationName:_CPPopUpListItemWasClickedNotification object:self]; +} + +#pragma mark Handling Events + +/*! + Handles standard key equivalents for moving the selection + and selecting an item. This method should be called by + the -performKeyEquivalent method of the field that is + controlling the list. +*/ +- (BOOL)performKeyEquivalent:(CPEvent)anEvent +{ + var key = [anEvent charactersIgnoringModifiers]; + + switch (key) + { + case CPDownArrowFunctionKey: + if ([self isVisible]) + { + [self selectNextItem]; + return YES; + } + break; + + case CPUpArrowFunctionKey: + if ([self isVisible]) + { + [self selectPreviousItem]; + return YES; + } + break; + + case CPEscapeFunctionKey: + if ([self isVisible]) + { + [self close]; + return YES; + } + break; + + case CPPageUpFunctionKey: + if ([self isVisible]) + { + [self scrollPageUp]; + return YES; + } + break; + + case CPPageDownFunctionKey: + if ([self isVisible]) + { + [self scrollPageDown]; + return YES; + } + break; + + case CPHomeFunctionKey: + if ([self isVisible]) + { + [self scrollToTop]; + return YES; + } + break; + + case CPEndFunctionKey: + if ([self isVisible]) + { + [self scrollToBottom]; + return YES; + } + break; + } + + return NO; +} + +/*! + Returns whether an item in the list was clicked since it was opened. + If there are no items, \ref itemWasClicked will always return NO. +*/ +- (BOOL)itemWasClicked +{ + return _itemWasClicked && ([_dataSource numberOfItemsInList:self] > 0); +} + +/*! + Sets whether an item in the list was clicked since it was opened. + If there are no items, \ref itemWasClicked will always return NO. + + Subclasses will usually want to set this in the mouseDown: + of the control. +*/ +- (void)setItemWasClicked:(BOOL)flag +{ + _itemWasClicked = ([_dataSource numberOfItemsInList:self] > 0) && flag; +} + +/*! + Returns whether any view in the list was clicked since it was opened. + If there are no items, \ref listWasClicked will always return NO. +*/ +- (BOOL)listWasClicked +{ + return _listWasClicked && ([_dataSource numberOfItemsInList:self] > 0); +} + +/*! + Sets whether any view in the list was clicked since it was opened. + If there are no items, \ref listWasClicked will always return NO. + + Subclasses will usually want to use a subclass of CPPanel and override + sendEvent: to set this flag when the event type is CPLeftMouseDown + or CPRightMouseDown. This is distinct from \ref itemWasClicked because, + for example, a scroller in the list may be clicked without clicking an + item in the list. +*/ +- (void)setListWasClicked:(BOOL)flag +{ + _listWasClicked = ([_dataSource numberOfItemsInList:self] > 0) && flag; +} + +/*! + Returns whether a controlling view should resign. This should be called + from the controlling view's resignFirstResponder method. +*/ +- (BOOL)controllingViewShouldResign +{ + if ([self listWasClicked]) + { + /* + If an item was not clicked (probably the scrollbar), clear the click flag so that future + clicks outside the list will allow it to close. + */ + if ([self listWasClicked] && ![self itemWasClicked]) + [self setListWasClicked:NO]; + + return NO; + } + else + return YES; +} +#pragma mark Internal Helpers + +/*! @ignore */ +- (void)listWillPopUp +{ + [[CPNotificationCenter defaultCenter] postNotificationName:_CPPopUpListWillPopUpNotification object:self]; +} + +/*! + Return a frame in platform window base coordinates such that the list, when displayed, will show at least ListMinimumItems + items completely on screen. Normally the list should be displayed below \c aRect, but if there is not room + for at least ListMinimumItems items, an attempt should be made to display that many + items above \c aRect. If the minimum cannot be displayed on top, whichever direction can display more items + is chosen. + @ignore +*/ +- (CGRect)constrain:(CGRect)aFrame relativeToRect:(CGRect)aRect view:(CPView)aView offset:(int)offset +{ + // Convert from the view's coordinate system to the coordinate system of the primary platform window + var baseOrigin = [aView convertPointToBase:aRect.origin], + windowOrigin = [[aView window] convertBaseToPlatformWindow:baseOrigin], + rowHeight = [self rowHeightForTableView:_tableView] + [_tableView intercellSpacing].height, + + // Be sure to clip the number of displayed rows to what the field wants + numberOfRows = MIN([self numberOfRowsInTableView:_tableView], [_dataSource numberOfVisibleItemsInList:self]), + + // Add 2 to height for border + frame = CGRectMake(windowOrigin.x, windowOrigin.y + CGRectGetHeight(aRect) + offset, MAX(_listWidth, CGRectGetWidth(aFrame)), (rowHeight * numberOfRows) + 2), + + // Get the bottom coordinate of the frame and the platform window + bottomFrame = CGRectMakeCopy(frame), + bottom = CGRectGetMaxY(bottomFrame), + viewRect = [[CPPlatformWindow primaryPlatformWindow] visibleFrame], + visibleBottom = CGRectGetMaxY(viewRect), + bottomVisibleRows = numberOfRows; + + // Make sure it will fit in the screen. If not, reduce the number of items till we reach the minimum. + while (bottom > visibleBottom && bottomVisibleRows >= ListMinimumItems) + { + bottom -= rowHeight; + bottomFrame.size.height -= rowHeight; + --bottomVisibleRows; + } + + if (bottom >= visibleBottom || bottomVisibleRows < ListMinimumItems) + { + // The minimum number of items will not fit, try above + var topFrame = CGRectMakeCopy(frame); + + topFrame.origin.y = windowOrigin.y - offset - CGRectGetHeight(topFrame); + + var visibleTop = CGRectGetMinY(viewRect), + topVisibleRows = numberOfRows; + + while (topFrame.origin.y <= visibleTop && topVisibleRows >= ListMinimumItems) + { + topFrame.origin.y += rowHeight; + topFrame.size.height -= rowHeight; + --topVisibleRows; + } + + // If there is room on the top or it can display more than at the bottom, show it there + if ((topFrame.origin.y > visibleTop && topVisibleRows >= ListMinimumItems) || topVisibleRows > bottomVisibleRows) + frame = topFrame; + else + frame = bottomFrame; + } + else + frame = bottomFrame; + + return frame; +} + +- (void)tableViewClickAction:(id)sender +{ + [self close]; +} + +@end + + +var _CPPopUpListDataSourceKey = @"_CPPopUpListDataSourceKey", + _CPPopUpListListWidthKey = @"_CPPopUpListListWidthKey", + _CPPopUpListListPanelKey = @"_CPPopUpListListPanelKey", + _CPPopUpListScrollViewKey = @"_CPPopUpListScrollViewKey", + _CPPopUpListTableViewKey = @"_CPPopUpListTableViewKey"; + +@implementation _CPPopUpList (CPCoding) + +- (id)initWithCoder:(CPCoder)aCoder +{ + self = [super initWithCoder:aCoder]; + + if (self) + { + _listWasClicked = NO; + _itemWasClicked = NO; + + _dataSource = [aCoder decodeObjectForKey:_CPPopUpListDataSourceKey]; + _listWidth = [aCoder decodeIntForKey:_CPPopUpListListWidthKey]; + _panel = [aCoder decodeObjectForKey:_CPPopUpListListPanelKey]; + _scrollView = [aCoder decodeObjectForKey:_CPPopUpListScrollViewKey]; + _tableView = [aCoder decodeObjectForKey:_CPPopUpListTableViewKey]; + _tableColumn = [_tableView tableColumnWithIdentifier:ListColumnIdentifier]; + [_scrollView setDocumentView:_tableView]; + } + + return self; +} + +- (void)encodeWithCoder:(CPCoder)aCoder +{ + [super encodeWithCoder:aCoder]; + + [aCoder encodeObject:_dataSource forKey:_CPPopUpListDataSourceKey]; + [aCoder encodeObject:_listWidth forKey:_CPPopUpListListWidthKey]; + [aCoder encodeObject:_panel forKey:_CPPopUpListListPanelKey]; + [aCoder encodeObject:_scrollView forKey:_CPPopUpListScrollViewKey]; + [aCoder encodeObject:_tableView forKey:_CPPopUpListTableViewKey]; +} + +@end + +@implementation _CPPopUpList (CPTableViewDataSource) + +- (int)numberOfRowsInTableView:(id)aTableView +{ + return MAX([_dataSource numberOfItemsInList:self], 1); +} + +- (id)tableView:(id)aTableView objectValueForTableColumn:(CPTableColumn)aColumn row:(int)aRow +{ + return [_dataSource list:self displayValueForObjectValue:[_dataSource list:self objectValueForItemAtIndex:aRow]]; +} + +@end + +@implementation _CPPopUpTableView : CPTableView +{ + BOOL _acceptFirstResponder; +} + +- (id)initWithFrame:(CGRect)aFrame +{ + if (self = [super initWithFrame:aFrame]) + { + // We want the autocomplete to remain first responder until we are clicked. + _acceptFirstResponder = NO; + } + + return self; +} + +- (void)trackMouse:(CPEvent)anEvent +{ + if (![self isEnabled]) + return; + + [[self delegate] setItemWasClicked:YES]; + + // CPTableView will not track the click if it is not first responder + _acceptFirstResponder = YES; + [[self window] makeFirstResponder:self]; + [super trackMouse:anEvent]; +} + +- (void)stopTracking:(CGPoint)lastPoint at:(CGPoint)aPoint mouseIsUp:(BOOL)mouseIsUp +{ + _acceptFirstResponder = NO; + [super stopTracking:lastPoint at:aPoint mouseIsUp:mouseIsUp]; +} + +- (BOOL)acceptsFirstResponder +{ + return _acceptFirstResponder; +} + +/*! + Return the column used for the list. +*/ +- (CPTableColumn)listColumn +{ + return _tableColumn; +} + +@end + +@implementation _CPPopUpPanel : CPPanel + +- (void)sendEvent:(CPEvent)anEvent +{ + var type = [anEvent type]; + + if (type === CPLeftMouseDown || type === CPRightMouseDown) + [[self delegate] setListWasClicked:YES]; + + return [super sendEvent:anEvent]; +} + +@end diff --git a/AppKit/_CPPopUpListDataSource.j b/AppKit/_CPPopUpListDataSource.j new file mode 100644 index 000000000..cd413779d --- /dev/null +++ b/AppKit/_CPPopUpListDataSource.j @@ -0,0 +1,98 @@ +/* + * _CPPopUpListDataSource.j + * AppKit + * + * Created by Aparajita Fishman. + * Copyright (c) 2012, The Cappuccino Foundation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + + +/*! + This abstract base class defines the methods that delegates of _CPPopUpList must implement. + You may either subclass this class to use the default implementation of + list:objectValueForItemAtIndex: and list:displayValueForObjectValue: or use your + own class and define these methods yourself. +*/ +@implementation _CPPopUpListDataSource : CPObject + +/*! + Returns whether the given object conforms to the minimum protocol defined by this class. +*/ ++ (BOOL)protocolIsImplementedByObject:(id)anObject +{ + return (anObject && + [anObject respondsToSelector:@selector(numberOfItemsInList:)] && + [anObject respondsToSelector:@selector(numberOfVisibleItemsInList:)] && + [anObject respondsToSelector:@selector(list:objectValueForItemAtIndex:)] && + [anObject respondsToSelector:@selector(list:displayValueForObjectValue:)] && + [anObject respondsToSelector:@selector(list:stringValueForObjectValue:)]); +} + +/*! + Returns the number of items managed by the list. +*/ +- (int)numberOfItemsInList:(_CPPopUpList)aList +{ + _CPRaiseInvalidAbstractInvocation(self, _cmd); +} + +/*! + Returns the number of items to display at one time. +*/ +- (int)numberOfVisibleItemsInList:(_CPPopUpList)aList +{ + _CPRaiseInvalidAbstractInvocation(self, _cmd); +} + +/*! + Returns the data for a given row index. +*/ +- (id)list:(_CPPopUpList)aList objectValueForItemAtIndex:(int)index +{ + _CPRaiseInvalidAbstractInvocation(self, _cmd); +} + +/*! + Returns a value to display for a single row in the list. Subclasses should override + this if the table data needs to be converted or formatted in some way to be displayed. + If your data source use a data representation other than CPStrings, you must override + this method and return the appropriate data when there are no search results. + + If the _CPPopUpList's table uses a custom data view, this method should return a value suitable + for sending to the setObjectValue: method of the data view. + + @param aValue Data for the given row + @return A value to be displayed in the list +*/ +- (id)list:(_CPPopUpList)aList displayValueForObjectValue:(id)aValue +{ + return aValue || @""; +} + +/*! + Returns a single-line string representation for an object value. Subclasses should override + this if the object data is not convertible to a simple single-line string. + + @param aValue Table data to be converted to a string + @return A value to be displayed in the autocomplete field +*/ +- (CPString)list:(_CPPopUpList)aList stringValueForObjectValue:(id)aValue +{ + return String(aValue); +} + +@end diff --git a/Tests/Manual/CPComboBoxTest/AppController.j b/Tests/Manual/CPComboBoxTest/AppController.j new file mode 100644 index 000000000..87a40e1ef --- /dev/null +++ b/Tests/Manual/CPComboBoxTest/AppController.j @@ -0,0 +1,228 @@ +/* + * AppController.j + * CPComboBoxTest + * + * Created by Aparajita Fishman. + * Copyright (c) 2011, Intalio, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +@import + + +@implementation Companies : CPObject +{ + CPMutableArray items @accessors; +} + +- (id)init +{ + self = [super init]; + + if (self) + { + items = [CPMutableArray array]; + + var employees = "Tom,Dick,Harry,Ted,Sam,Fred,Ralph,Ed,Tim,John,Bill,Irving,Stan,Rodney".split(","); + + employees = [CPArray arrayWithObjects:employees count:employees.length]; + [items addObject:[CPDictionary dictionaryWithObjectsAndKeys:@"Spacely Sprockets", @"name", employees, @"employees"]]; + + employees = "Jane,Sally,Joan,Sara,Melissa,Beverly,Gillian,Sandra,Samantha,Mary,Kate".split(","); + employees = [CPArray arrayWithObjects:employees count:employees.length]; + [items addObject:[CPDictionary dictionaryWithObjectsAndKeys:@"Cogswell Cogs", @"name", employees, @"employees"]]; + } + + return self; +} + +@end + +@implementation AppController : CPObject +{ + @outlet CPWindow theWindow; + CPWindow testWindow; + CPString employee @accessors; + Companies companies @accessors; + CPArrayController companiesController; + CPArrayController employeesController; + CPComboBox combo; + @outlet CPComboBox cibCombo; + @outlet CPTextField comboTarget; + CPString fontName; + int nextCheckboxY; +} + +- (id)init +{ + if (self = [super init]) + { + fontName = [CPFont systemFontFace]; + companies = [Companies new]; + } + + return self; +} + +- (void)awakeFromCib +{ +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + testWindow = [[CPWindow alloc] initWithContentRect:CGRectMake(30, 50, 500, 400) styleMask:CPTitledWindowMask | CPResizableWindowMask]; + + var contentView = [testWindow contentView], + companiesScrollView = [[CPScrollView alloc] initWithFrame:CGRectMake(30, 30, 200, 100)], + companiesTable = [[CPTableView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)], + employeesScrollView = [[CPScrollView alloc] initWithFrame:CGRectMake(250, 30, 200, 200)], + employeesTable = [[CPTableView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)]; + + [testWindow setTitle:@"CPComboBox (from code)"]; + + var column = [[CPTableColumn alloc] initWithIdentifier:@"name"]; + [column setResizingMask:CPTableColumnAutoresizingMask]; + [companiesTable addTableColumn:column]; + [companiesTable setAllowsMultipleSelection:YES]; + [companiesTable setColumnAutoresizingStyle:CPTableViewLastColumnOnlyAutoresizingStyle]; + [companiesScrollView setHasHorizontalScroller:NO]; + [companiesScrollView setHasVerticalScroller:YES]; + [companiesScrollView setDocumentView:companiesTable]; + [companiesScrollView setBorderType:CPBezelBorder]; + [companiesTable setHeaderView:nil]; + [companiesTable setAllowsEmptySelection:NO]; + + [contentView addSubview:companiesScrollView]; + + column = [[CPTableColumn alloc] initWithIdentifier:@"name"]; + [column setResizingMask:CPTableColumnAutoresizingMask]; + [employeesTable addTableColumn:column]; + [employeesTable setAllowsMultipleSelection:YES]; + [employeesTable setColumnAutoresizingStyle:CPTableViewLastColumnOnlyAutoresizingStyle]; + [employeesScrollView setHasHorizontalScroller:NO]; + [employeesScrollView setHasVerticalScroller:YES]; + [employeesScrollView setDocumentView:employeesTable]; + [employeesScrollView setBorderType:CPBezelBorder]; + [employeesTable setHeaderView:nil]; + [employeesTable setAllowsEmptySelection:YES]; + + [contentView addSubview:employeesScrollView]; + + combo = [[CPComboBox alloc] initWithFrame:CGRectMake(250, 240, 200, 29)]; + [combo setCompletes:YES]; + [contentView addSubview:combo]; + + var textfield = [CPTextField textFieldWithStringValue:@"" placeholder:@"" width:200]; + [textfield setFrameOrigin:CGPointMake(250, 290)]; + [contentView addSubview:textfield]; + + var center = [CPNotificationCenter defaultCenter]; + [center addObserver:self selector:@selector(comboNote:) name:CPComboBoxSelectionDidChangeNotification object:combo]; + [center addObserver:self selector:@selector(comboNote:) name:CPComboBoxSelectionIsChangingNotification object:combo]; + [center addObserver:self selector:@selector(comboNote:) name:CPComboBoxWillDismissNotification object:combo]; + [center addObserver:self selector:@selector(comboNote:) name:CPComboBoxWillPopUpNotification object:combo]; + [center addObserver:self selector:@selector(comboNote:) name:CPControlTextDidEndEditingNotification object:combo]; + + nextCheckboxY = 166; + [self makeCheckBoxWithTitle:@"Enabled" defaultState:CPOnState]; + [self makeCheckBoxWithTitle:@"Button bordered" defaultState:CPOnState]; + [self makeCheckBoxWithTitle:@"Bold" defaultState:CPOffState]; + [self makeCheckBoxWithTitle:@"Completes" defaultState:CPOnState]; + [self makeCheckBoxWithTitle:@"Force selection" defaultState:CPOffState]; + [self makeCheckBoxWithTitle:@"Vertical scrollbar" defaultState:CPOnState]; + [self makeCheckBoxWithTitle:@"Big item height" defaultState:CPOffState]; + [self makeCheckBoxWithTitle:@"More visible items" defaultState:CPOffState]; + + companiesController = [CPArrayController new]; + [companiesController bind:@"contentArray" toObject:companies withKeyPath:@"items" options:nil]; + + employeesController = [CPArrayController new]; + [employeesController bind:@"contentArray" toObject:companiesController withKeyPath:@"selection.employees" options:nil]; + + var employeeController = [CPObjectController new]; + [employeeController bind:@"content" toObject:employeesController withKeyPath:@"selection.self" options:nil]; + + [[companiesTable tableColumnWithIdentifier:@"name"] bind:@"value" toObject:companiesController withKeyPath:@"arrangedObjects.name" options:nil]; + [[employeesTable tableColumnWithIdentifier:@"name"] bind:@"value" toObject:employeesController withKeyPath:@"arrangedObjects" options:nil]; + [combo bind:@"contentValues" toObject:employeesController withKeyPath:@"arrangedObjects" options:nil]; + [combo bind:@"value" toObject:employeeController withKeyPath:@"content" options:nil]; + + [companiesController addObserver:self forKeyPath:@"selection" options:0 context:@"companies.selection"]; + [companiesController addObserver:self forKeyPath:@"selectionIndexes" options:0 context:@"companies.selectionIndexes"]; + [companiesController addObserver:self forKeyPath:@"arrangedObjects" options:0 context:@"companies.arrangedObjects"]; + [employeesController addObserver:self forKeyPath:@"selectionIndexes" options:0 context:@"employees.selectionIndexes"]; + [employeesController addObserver:self forKeyPath:@"selection" options:0 context:@"employees.selection"]; + [employeesController addObserver:self forKeyPath:@"arrangedObjects" options:0 context:@"employees.arrangedObjects"]; + [combo addObserver:self forKeyPath:@"value" options:0 context:@"combo.value"]; + + [testWindow setInitialFirstResponder:combo]; + [testWindow makeKeyAndOrderFront:self]; +} + +- (void)makeCheckBoxWithTitle:(CPString)aTitle defaultState:(BOOL)aState +{ + var checkbox = [CPCheckBox checkBoxWithTitle:aTitle]; + [checkbox setFrameOrigin:CGPointMake(55, nextCheckboxY)]; + [checkbox setState:aState]; + [checkbox setTarget:self]; + [checkbox setAction:@selector(setComboState:)]; + [[testWindow contentView] addSubview:checkbox]; + + nextCheckboxY += 25; +} + +- (void)observeValueForKeyPath:(CPString)keyPath ofObject:(id)object change:(CPDictionary)change context:(id)context +{ + console.log("\nkeyPath: %s\ncontext: %s\nnew: %s\nold: %s", keyPath, context, [[change valueForKey:CPKeyValueChangeNewKey] description], [[change valueForKey:CPKeyValueChangeOldKey] description]); +} + +- (void)setComboState:(id)sender +{ + var title = [sender title], + state = [sender state] === CPOnState; + + if (title === @"Enabled") + [combo setEnabled:state]; + else if (title === @"Button bordered") + [combo setButtonBordered:state]; + else if (title === @"Bold") + { + var font = [sender state] === CPOnState ? [CPFont boldFontWithName:fontName size:12] : [CPFont fontWithName:fontName size:12]; + [combo setFont:font]; + } + else if (title === @"Completes") + [combo setCompletes:state]; + else if (title === @"Force selection") + [combo setForceSelection:state]; + else if (title === @"Vertical scroller") + [combo setHasVerticalScroller:state]; + else if (title === @"Big item height") + [combo setItemHeight:state ? 47 : 23]; + else if (title === @"More visible items") + [combo setNumberOfVisibleItems:state ? 10 : 5]; +} + +- (void)comboNote:(CPNotification)aNote +{ + console.log([aNote name]); + + var object = [aNote object]; + + if ([aNote name] === CPComboBoxWillDismissNotification) + console.log("Selected: %d - %s", [object indexOfSelectedItem], [object objectValueOfSelectedItem]); +} + +@end diff --git a/Tests/Manual/CPComboBoxTest/Info.plist b/Tests/Manual/CPComboBoxTest/Info.plist new file mode 100644 index 000000000..eee5519b4 --- /dev/null +++ b/Tests/Manual/CPComboBoxTest/Info.plist @@ -0,0 +1,10 @@ + + + + + Main cib file base name + MainMenu.cib + CPBundleName + CPComboBoxTest + + diff --git a/Tests/Manual/CPComboBoxTest/Jakefile b/Tests/Manual/CPComboBoxTest/Jakefile new file mode 100644 index 000000000..a83c45d07 --- /dev/null +++ b/Tests/Manual/CPComboBoxTest/Jakefile @@ -0,0 +1,94 @@ +/* + * Jakefile + * test + * + * Created by aparajita on August 19, 2011. + * Copyright 2011, Victory-Heart Productions 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 ("test", function(task) +{ + task.setBuildIntermediatesPath(FILE.join("Build", "test.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("test"); + task.setIdentifier("com.aparajita.test"); + task.setVersion("1.0"); + task.setAuthor("Victory-Heart Productions"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("test"); + task.setSources((new FileList("**/*.j")).exclude(FILE.join("Build", "**"))); + task.setResources(new FileList("Resources/**")); + task.setIndexFilePath("index.html"); + task.setInfoPlistPath("Info.plist"); + task.setNib2CibFlags("-R Resources/"); + + if (configuration === "Debug") + task.setCompilerFlags("-DDEBUG -g"); + else + task.setCompilerFlags("-O"); +}); + +task ("default", ["test"], 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", "test", "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", "test", "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", "test")); + OS.system(["press", "-f", FILE.join("Build", "Release", "test"), FILE.join("Build", "Deployment", "test")]); + printResults("Deployment") +}); + +task ("desktop", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Desktop", "test")); + require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "test"), FILE.join("Build", "Desktop", "test", "test.app")); + printResults("Desktop") +}); + +task ("run-desktop", ["desktop"], function() +{ + OS.system([FILE.join("Build", "Desktop", "test", "test.app", "Contents", "MacOS", "NativeHost"), "-i"]); +}); + +function printResults(configuration) +{ + print("----------------------------"); + print(configuration+" app built at path: "+FILE.join("Build", configuration, "test")); + print("----------------------------"); +} diff --git a/Tests/Manual/CPComboBoxTest/Resources/MainMenu.cib b/Tests/Manual/CPComboBoxTest/Resources/MainMenu.cib new file mode 100644 index 000000000..0f50b6fc6 --- /dev/null +++ b/Tests/Manual/CPComboBoxTest/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;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;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;29E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;1;0E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;46E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;47E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;48E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;30E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;49E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;30E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;38E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;50E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;30E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;51E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;30E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;34E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;52E;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;2;38E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;53E;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;21E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;44E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;30E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;54E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;55E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;56E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;58E;E;D;K;6;$classD;K;6;CP$UIDd;2;21E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;30E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;59E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;55E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;60E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;61E;E;D;K;6;$classD;K;6;CP$UIDd;2;21E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;42E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;30E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;62E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;55E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;63E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;64E;E;D;K;6;$classD;K;6;CP$UIDd;2;21E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;41E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;30E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;65E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;55E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;66E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;21E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;32E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;30E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;68E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;69E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;70E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;71E;E;D;K;6;$classD;K;6;CP$UIDd;2;21E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;40E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;30E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;72E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;55E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;73E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;74E;E;D;K;6;$classD;K;6;CP$UIDd;2;21E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;38E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;32E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;75E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;76E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;77E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;78E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;47E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;79E;E;D;K;10;$classnameS;18;CPObjectControllerK;8;$classesA;S;18;CPObjectControllerS;12;CPControllerS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;31E;K;28;CPObjectControllerContentKeyD;K;6;CP$UIDd;1;0E;K;36;CPObjectControllerObjectClassNameKeyD;K;6;CP$UIDd;2;80E;K;31;CPObjectControllerIsEditableKeyD;K;6;CP$UIDd;2;81E;K;49;CPObjectControllerAutomaticallyPreparesContentKeyD;K;6;CP$UIDd;2;82E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;33E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;83E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;84E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;85E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;86E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;87E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;36E;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;35E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;88E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;89E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;89E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;90E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;91E;E;D;K;10;$classnameS;10;CPComboBoxK;8;$classesA;S;10;CPComboBoxS;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;36E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;88E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;92E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;93E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;36E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;94E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;95E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;96E;K;6;$afontD;K;6;CP$UIDd;2;98E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;99E;K;11;$aalignmentD;K;6;CP$UIDd;3;100E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;81E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;101E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;102E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;81E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;81E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;81E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;104E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;99E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;100E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;K;18;CPComboBoxItemsKeyD;K;6;CP$UIDd;3;105E;K;17;CPComboBoxListKeyD;K;6;CP$UIDd;1;0E;K;21;CPComboBoxDelegateKeyD;K;6;CP$UIDd;1;0E;K;23;CPComboBoxDataSourceKeyD;K;6;CP$UIDd;1;0E;K;27;CPComboBoxUsesDataSourceKeyD;K;6;CP$UIDd;2;82E;K;22;CPComboBoxCompletesKeyD;K;6;CP$UIDd;2;81E;K;33;CPComboBoxNumberOfVisibleItemsKeyD;K;6;CP$UIDd;3;106E;K;32;CPComboBoxHasVerticalScrollerKeyD;K;6;CP$UIDd;2;81E;K;27;CPComboBoxButtonBorderedKeyD;K;6;CP$UIDd;2;81E;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;39E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;36E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;88E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;107E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;108E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;36E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;94E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;110E;K;16;$aimage-positionD;K;6;CP$UIDd;2;99E;K;6;$afontD;K;6;CP$UIDd;2;98E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;88E;K;11;$aalignmentD;K;6;CP$UIDd;2;88E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;111E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;112E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;82E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;111E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;111E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;81E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;99E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;88E;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;39E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;36E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;88E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;113E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;114E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;36E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;94E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;110E;K;16;$aimage-positionD;K;6;CP$UIDd;2;99E;K;6;$afontD;K;6;CP$UIDd;2;98E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;88E;K;11;$aalignmentD;K;6;CP$UIDd;2;88E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;111E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;115E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;82E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;111E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;111E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;81E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;99E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;88E;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;39E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;36E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;88E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;116E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;117E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;36E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;94E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;91E;K;16;$aimage-positionD;K;6;CP$UIDd;2;99E;K;6;$afontD;K;6;CP$UIDd;2;98E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;88E;K;11;$aalignmentD;K;6;CP$UIDd;2;88E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;88E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;118E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;82E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;111E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;111E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;81E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;99E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;88E;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;39E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;36E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;88E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;119E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;120E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;36E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;94E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;110E;K;16;$aimage-positionD;K;6;CP$UIDd;2;99E;K;6;$afontD;K;6;CP$UIDd;2;98E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;88E;K;11;$aalignmentD;K;6;CP$UIDd;2;88E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;111E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;121E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;82E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;111E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;111E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;81E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;99E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;88E;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;39E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;36E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;88E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;122E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;123E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;36E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;94E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;109E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;110E;K;16;$aimage-positionD;K;6;CP$UIDd;2;99E;K;6;$afontD;K;6;CP$UIDd;2;98E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;88E;K;11;$aalignmentD;K;6;CP$UIDd;2;88E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;111E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;124E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;82E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;111E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;111E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;81E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;99E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;88E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;45E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;36E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;88E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;125E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;126E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;36E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;94E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;127E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;128E;K;6;$afontD;K;6;CP$UIDd;2;98E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;99E;K;11;$aalignmentD;K;6;CP$UIDd;3;100E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;81E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;101E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;102E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;81E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;81E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;81E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;104E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;99E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;100E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;101E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;34E;E;E;S;8;delegateS;8;cibComboS;11;comboTargetS;9;theWindowS;20;takeStringValueFrom:S;30;value: cibCombo.buttonBorderedS;5;valueS;23;cibCombo.buttonBorderedD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;57E;K;10;CP.objectsD;E;E;S;35;value: cibCombo.hasVerticalScrollerS;28;cibCombo.hasVerticalScrollerD;K;6;$classD;K;6;CP$UIDd;2;57E;K;10;CP.objectsD;E;E;S;30;value: cibCombo.forceSelectionS;23;cibCombo.forceSelectionD;K;6;$classD;K;6;CP$UIDd;2;57E;K;10;CP.objectsD;E;E;S;25;value: cibCombo.completesS;18;cibCombo.completesD;K;6;$classD;K;6;CP$UIDd;2;57E;K;10;CP.objectsD;E;E;S;20;contentObject: comboS;13;contentObjectS;5;comboD;K;6;$classD;K;6;CP$UIDd;2;57E;K;10;CP.objectsD;E;E;S;23;value: cibCombo.enabledS;16;cibCombo.enabledD;K;6;$classD;K;6;CP$UIDd;2;57E;K;10;CP.objectsD;E;E;S;18;enabled: selectionS;7;enabledS;9;selectionD;K;6;$classD;K;6;CP$UIDd;2;57E;K;10;CP.objectsD;E;E;S;13;AppControllerS;10;CPComboBoxT;F;S;32;{10000000000000, 10000000000000}S;8;CPWindowS;23;{{583, 51}, {394, 166}}d;2;15S;21;CPComboBox (from cib)d;1;0S;20;{{0, 0}, {394, 166}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;44E;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;46E;E;E;S;6;normalS;21;{{14, 25}, {199, 29}}S;19;{{0, 0}, {199, 29}}d;2;36S;8;comboboxS;35;bezeled+placeholder+button-borderedD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;97E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;129E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;130E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;82E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;82E;E;d;1;2d;1;4S;0;d;4;3072D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;103E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;131E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;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;3;138E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;140E;E;E;d;1;7S;21;{{247, 30}, {72, 18}}S;18;{{0, 0}, {72, 18}}S;9;check-boxS;8;selectedd;1;1S;7;EnabledS;21;{{247, 80}, {89, 18}}S;18;{{0, 0}, {89, 18}}S;9;CompletesS;23;{{247, 105}, {117, 18}}S;19;{{0, 0}, {117, 18}}S;15;Force selectionS;23;{{247, 130}, {129, 18}}S;19;{{0, 0}, {129, 18}}S;18;Vertical scrollbarS;22;{{247, 55}, {125, 18}}S;19;{{0, 0}, {125, 18}}S;15;Button borderedS;21;{{14, 74}, {196, 29}}S;19;{{0, 0}, {196, 29}}S;9;textfieldS;19;bezeled+placeholderS;17;Arial, sans-serifd;2;12D;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;111E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;111E;E;E;S;3;MoeS;5;LarryS;6;CheeseS;5;CurlyS;5;ShempS;7;GrouchoS;5;HarpoS;5;ChicoS;5;ZeppoE;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/CPComboBoxTest/Resources/MainMenu.xib b/Tests/Manual/CPComboBoxTest/Resources/MainMenu.xib new file mode 100644 index 000000000..265203b64 --- /dev/null +++ b/Tests/Manual/CPComboBoxTest/Resources/MainMenu.xib @@ -0,0 +1,828 @@ + + + + 1050 + 11E53 + 2182 + 1138.47 + 569.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 2182 + + + YES + NSView + NSComboBox + NSWindowTemplate + NSObjectController + NSTextField + NSTextFieldCell + NSButtonCell + NSComboBoxCell + NSButton + NSCustomObject + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + AppController + + + NSComboBox + YES + + + + 15 + 2 + {{583, 961}, {394, 166}} + 544735232 + CPComboBox (from cib) + NSWindow + + + + + 256 + + YES + + + 268 + {{20, 115}, {191, 26}} + + + + YES + + 343014976 + 272630784 + + + LucidaGrande + 13 + 1044 + + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + controlTextColor + + 3 + MAA + + + 7 + YES + YES + + YES + Moe + Larry + Cheese + Curly + Shemp + Groucho + Harpo + Chico + Zeppo + + + + + 274 + {13, 189} + + + YES + + YES + + 10 + 10 + 1000 + + 75628032 + 0 + + + LucidaGrande + 12 + 16 + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 338820672 + 268436480 + + + YES + + 6 + System + controlBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + + + 3 + YES + + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 19 + tableViewAction: + -765427712 + + + + 1 + 15 + 0 + YES + 0 + 1 + + + + + + 268 + {{247, 118}, {72, 18}} + + + + YES + + -2080244224 + 0 + Enabled + + + 1211912703 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + + 268 + {{247, 93}, {125, 18}} + + + + YES + + -2080244224 + 0 + Button bordered + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{247, 68}, {89, 18}} + + + + YES + + -2080244224 + 0 + Completes + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{247, 43}, {117, 18}} + + + + YES + + 67239424 + 0 + Force selection + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{247, 18}, {129, 18}} + + + + YES + + -2080244224 + 0 + Vertical scrollbar + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{20, 66}, {188, 22}} + + + + YES + + -1804468671 + 272630784 + + + + + YES + + + 6 + System + textColor + + + + + + {394, 166} + + + + + {{0, 0}, {1920, 1178}} + {10000000000000, 10000000000000} + YES + + + + + YES + + + delegate + + + + 451 + + + + theWindow + + + + 464 + + + + cibCombo + + + + 529 + + + + comboTarget + + + + 577 + + + + enabled: selection + + + + + + enabled: selection + enabled + selection + 2 + + + 522 + + + + value: cibCombo.enabled + + + + + + value: cibCombo.enabled + value + cibCombo.enabled + 2 + + + 531 + + + + contentObject: combo + + + + + + contentObject: combo + contentObject + combo + 2 + + + 521 + + + + value: cibCombo.completes + + + + + + value: cibCombo.completes + value + cibCombo.completes + 2 + + + 535 + + + + value: cibCombo.forceSelection + + + + + + value: cibCombo.forceSelection + value + cibCombo.forceSelection + 2 + + + 548 + + + + value: cibCombo.hasVerticalScroller + + + + + + value: cibCombo.hasVerticalScroller + value + cibCombo.hasVerticalScroller + 2 + + + 546 + + + + value: cibCombo.buttonBordered + + + + + + value: cibCombo.buttonBordered + value + cibCombo.buttonBordered + 2 + + + 552 + + + + takeStringValueFrom: + + + + 578 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 450 + + + + + 460 + + + YES + + + + + + 461 + + + YES + + + + + + + + + + + + 462 + + + YES + + + + + + 463 + + + + + 515 + + + YES + + + + + + 516 + + + + + 517 + + + + + 532 + + + YES + + + + + + 533 + + + + + 536 + + + YES + + + + + + 537 + + + + + 539 + + + YES + + + + + + 540 + + + + + 549 + + + YES + + + + + + 550 + + + + + 573 + + + YES + + + + + + 574 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 450.IBPluginDependency + 460.IBPluginDependency + 460.IBWindowTemplateEditedContentRect + 460.NSWindowTemplate.visibleAtLaunch + 461.IBPluginDependency + 462.IBPluginDependency + 463.IBComboBoxObjectValuesKey.objectValues + 463.IBPluginDependency + 515.IBPluginDependency + 516.IBPluginDependency + 517.IBPluginDependency + 532.IBPluginDependency + 533.IBPluginDependency + 536.IBPluginDependency + 537.IBPluginDependency + 539.IBPluginDependency + 540.IBPluginDependency + 549.IBPluginDependency + 550.IBPluginDependency + 573.IBPluginDependency + 574.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{357, 418}, {480, 270}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + YES + Moe + Larry + Cheese + Curly + Shemp + Groucho + Harpo + Chico + Zeppo + + 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 + + + + + 578 + + + + YES + + AppController + NSObject + + YES + + YES + cibCombo + comboTarget + theWindow + + + YES + NSComboBox + NSTextField + NSWindow + + + + YES + + YES + cibCombo + comboTarget + theWindow + + + YES + + cibCombo + NSComboBox + + + comboTarget + NSTextField + + + theWindow + NSWindow + + + + + IBProjectSource + ./Classes/AppController.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + NSSwitch + {15, 15} + + + diff --git a/Tests/Manual/CPComboBoxTest/Resources/spinner.gif b/Tests/Manual/CPComboBoxTest/Resources/spinner.gif new file mode 100644 index 0000000000000000000000000000000000000000..06dbc2bc21dddcf0e09b566d5b211aee89570f52 GIT binary patch literal 1849 zcma*odr(tX9tZHtz31lM+(&Y`A`Ou`NeG&R#DrIfV%?hng21vs6v>ooRQQFbk7E_K!V( z{?5!fpZWgIZ%*d6t%i*j24bL}AZUJm9)h6R*;%L4IWse3G#VWaN1#$zSSXcBhlYlH zJ|D}n{r&w2f+Qp)SS*&n?*G4}{}!h?td_mjU6Kad-rW*QwWYCUk7d^e+sjpZAn6kT z5rM;`{~_}-wm+L@%+E;JphLm}C3WzQAQD0wBoY|rOTQX{(@pp-WAA8Iw0HKl|15j) zhGh(SFWu#5zUCw^T!}C~eC}~?{xG-r7ugQC>taC+|L^xr&a%{#cgUOZXIM&v?)k^2 z1i5%0!U00wq)r4vlAwXBA_m5J5WNeuBm-XJQ5pG4GD%vc|K){+TJ{AkHqN@SJKczX zU}QRd9n*_bf^h94)6Ctv{CUfz_;qs#RDuQ$DR%y1&5G-a6rhf*4Y zl+UOD1*GE{GQ7vv;c-tTIMkz0ovO>9j%b5hpa@a*CBJ#W!0@ndSwF|%hMkdFtXiU) z`BEp+yhkt8ZY>tg&uyH@%^%K4jDrbA;et&vnnzZ3z22@e6<27z2Vk13kb7OtISyxv z(XoO-LNQCZe3lfzc%*pNqU<9T+p~teThOEB+~e&U0mC|zS{Q)dJZ)!^1f7L(zg*L> z*vSW%?dR~@@0(}x6-V^A`~ImD;)NaBUnP8;RH=bS2@pk`wp>>8r&jGjmGPy%1BW}v zoPo}ca$~bze@efc3kapuEVW1!%teOZT3j2Tw5=hjiAf02d}7dL0oFC%@=RXp5Ow#% z@a>+AM|YWt$n&e`>sB-32gBcuTi>R>*|8@lp`y6thc7ydyqDsuUn~YzZf|{-R@-3y zL#wx{Ii}xxL_csiW*LBn0-A$>zp4WOmkf6=ilrjlW?-l9+bCd7|i?*b5NTmy<<6NZ0T8$SN@mwdC2f z6jqK=N@bS@!=YSj%>h0}*4p+%0HbTIrE$w7UMT6+AZZ&DAo*qZAAi(OtNbIfl#Dw^ zJWeiCp~zi#&t6x}m9)O^eR4HiLV3QA<<0>HZ8%$^lrSE94Wb}=+MM^!b>n#5&-JQR zkr-CEu9C;_F*7DqDisulV6Pmg$nFL0TPn%~*m^-`Z3^BgU(sNpnx%nW(!eV9A&FvI zHL3X3lw8Wji^6=8KbQDE-e%b?svdFxxdh$8r97@7$ojeI`6AL8Ob6QC$qh&>ZWVDX1F{0vJnT%%mE;GveKWR%C} zM&4d;Jf3s9|HAA)yVUPo`Aq;0do#)uHSXi5*QF*)x@MVVHr+cN)uMZ__F|&Ta#p8d z53TOKtce!PJUuie8UWol-S(`c2nH?UGqJP{!4RR4u$LCfn)q-hj0^f=h(VYy)T6eN zhRO!ja-aDBTcgeyP(8Ua4IdiOog^*CQa?R(cP#9AgL9`j>EX-6Yf1lzX(!~``M1XC zNmM<4<6d~wWZ$Xrk0K}UteTrq@LBBk#MsjkK;pbuVhe)NI7(7Pf(l?lxC7=1Z7Pzl zMbS;nV4NI5_N{1$P)&XC)huOGQ+h^zpYUZfb*1n6>!`#*b3y52LGmi+<4sY5jyD#- zw&$d}DTguLAfnRtjrM*JfqtHqUu6rQoU=g%1E9xk%;)TDm^2<8n-0IhTsQFaek)MY}>PK4;nBk=ow4pF>vzkO& gna%Org-kgQCf=+BeMi^RbuY;YE~rTjend;_cdi8t>i_@% literal 0 HcmV?d00001 diff --git a/Tests/Manual/CPComboBoxTest/index-debug.html b/Tests/Manual/CPComboBoxTest/index-debug.html new file mode 100644 index 000000000..052bcacac --- /dev/null +++ b/Tests/Manual/CPComboBoxTest/index-debug.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + CPComboBoxTest + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/CPComboBoxTest/index.html b/Tests/Manual/CPComboBoxTest/index.html new file mode 100644 index 000000000..bf35f355e --- /dev/null +++ b/Tests/Manual/CPComboBoxTest/index.html @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + CPComboBoxTest + + + + + + + + + + + + +
+
+ + + +
+
+ + + + diff --git a/Tests/Manual/CPComboBoxTest/main.j b/Tests/Manual/CPComboBoxTest/main.j new file mode 100644 index 000000000..e2cfd7a56 --- /dev/null +++ b/Tests/Manual/CPComboBoxTest/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * test + * + * Created by aparajita on August 19, 2011. + * Copyright 2011, Victory-Heart Productions All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +} diff --git a/Tests/Manual/NewTextFieldBezel/AppController.j b/Tests/Manual/NewTextFieldBezel/AppController.j new file mode 100644 index 000000000..fb92db10c --- /dev/null +++ b/Tests/Manual/NewTextFieldBezel/AppController.j @@ -0,0 +1,121 @@ +/* + * AppController.j + * NewTextField + * + * Created by Aparajita Fishman. + * Copyright (c) 2011, Intalio, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +@import + + +@implementation AppController : CPObject +{ + CPWindow theWindow; + CPMutableArray fields; +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + theWindow = [[CPWindow alloc] initWithContentRect:CGRectMakeZero() styleMask:CPBorderlessBridgeWindowMask]; + fields = [CPMutableArray array]; + + var field = [CPTextField textFieldWithStringValue:@"" placeholder:@"Text field" width:200]; + [fields addObject:field]; + [self configureField:field at:50]; + + field = [CPTextField roundedTextFieldWithStringValue:@"" placeholder:@"Text field" width:200]; + [fields addObject:field]; + [self configureField:field at:100]; + + field = [CPTextField textFieldWithStringValue:@"" placeholder:@"Big text field" width:200]; + [field setFont:[CPFont systemFontOfSize:16]]; + [fields addObject:field]; + [self configureField:field at:150]; + + field = [[CPSearchField alloc] initWithFrame:CPMakeRect(0, 0, 200, 30)]; + [fields addObject:field]; + [self configureField:field at:200]; + + field = [[CPTokenField alloc] initWithFrame:CPMakeRect(0, 0, 200, 30)]; + [field setEditable:YES]; + [field setPlaceholderString:"Type in a token!"]; + [field setTokenizingCharacterSet:[CPCharacterSet characterSetWithCharactersInString:@" "]]; + [fields addObject:field]; + [self configureField:field at:250]; + + [self makeTableAt:300]; + [theWindow orderFront:self]; +} + +- (void)configureField:(CPTextField)aField at:(int)yCoord +{ + var contentView = [theWindow contentView]; + + [aField setFrameOrigin:CGPointMake(50, yCoord)]; + [aField sizeToFit]; + [contentView addSubview:aField]; + + var enabler = [CPCheckBox checkBoxWithTitle:@"Enabled"]; + + [enabler setFrameOrigin:CGPointMake(50 + 200 + 10, yCoord + 7)]; + [enabler setTarget:self]; + [enabler setAction:@selector(enableField:)]; + [enabler setState:CPOnState]; + [enabler setTag:[fields count] - 1]; + [contentView addSubview:enabler]; +} + +- (void)makeTableAt:(int)yCoord +{ + var scrollView = [[CPScrollView alloc] initWithFrame:CGRectMake(50, yCoord, 200, 200)], + table = [[CPTableView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)], + column = [[CPTableColumn alloc] initWithIdentifier:@"1"]; + + [scrollView setBorderType:CPBezelBorder]; + [table setDataSource:self]; + [table setVerticalMotionCanBeginDrag:NO]; + [column setResizingMask:CPTableColumnAutoresizingMask]; + [column setEditable:YES]; + [table setColumnAutoresizingStyle:CPTableViewLastColumnOnlyAutoresizingStyle]; + [table addTableColumn:column]; + [[theWindow contentView] addSubview:scrollView]; + [scrollView setDocumentView:table]; +} + +- (void)enableField:(id)sender +{ + var field = [fields objectAtIndex:[sender tag]]; + [field setEnabled:[sender state] === CPOnState]; +} + +- (int)numberOfRowsInTableView:(CPTableView)aTableView +{ + return 7; +} + +- (id)tableView:(CPTableView)aTableView objectValueForTableColumn:(CPTableColumn)column row:(int)row +{ + return "Double-click to edit"; +} + +- (void)tableView:(CPTableView)aTableView setObjectValue:(id)anObject forTableColumn:(CPTableColumn)aTableColumn row:(int)rowIndex +{ + +} + +@end diff --git a/Tests/Manual/NewTextFieldBezel/Info.plist b/Tests/Manual/NewTextFieldBezel/Info.plist new file mode 100644 index 000000000..19de2f81c --- /dev/null +++ b/Tests/Manual/NewTextFieldBezel/Info.plist @@ -0,0 +1,12 @@ + + + + + CPApplicationDelegateClass + AppController + CPBundleName + NewTextField + CPPrincipalClass + CPApplication + + diff --git a/Tests/Manual/NewTextFieldBezel/Jakefile b/Tests/Manual/NewTextFieldBezel/Jakefile new file mode 100644 index 000000000..684e5113f --- /dev/null +++ b/Tests/Manual/NewTextFieldBezel/Jakefile @@ -0,0 +1,93 @@ +/* + * Jakefile + * NewTextField + * + * Created by aparajita on August 10, 2011. + * Copyright 2011, Victory-Heart Productions 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 ("NewTextField", function(task) +{ + task.setBuildIntermediatesPath(FILE.join("Build", "NewTextField.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("NewTextField"); + task.setIdentifier("com.aparajita.NewTextField"); + task.setVersion("1.0"); + task.setAuthor("Victory-Heart Productions"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("NewTextField"); + 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", ["NewTextField"], 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", "NewTextField", "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", "NewTextField", "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", "NewTextField")); + OS.system(["press", "-f", FILE.join("Build", "Release", "NewTextField"), FILE.join("Build", "Deployment", "NewTextField")]); + printResults("Deployment") +}); + +task ("desktop", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Desktop", "NewTextField")); + require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "NewTextField"), FILE.join("Build", "Desktop", "NewTextField", "NewTextField.app")); + printResults("Desktop") +}); + +task ("run-desktop", ["desktop"], function() +{ + OS.system([FILE.join("Build", "Desktop", "NewTextField", "NewTextField.app", "Contents", "MacOS", "NativeHost"), "-i"]); +}); + +function printResults(configuration) +{ + print("----------------------------"); + print(configuration+" app built at path: "+FILE.join("Build", configuration, "NewTextField")); + print("----------------------------"); +} diff --git a/Tests/Manual/NewTextFieldBezel/Resources/spinner.gif b/Tests/Manual/NewTextFieldBezel/Resources/spinner.gif new file mode 100644 index 0000000000000000000000000000000000000000..06dbc2bc21dddcf0e09b566d5b211aee89570f52 GIT binary patch literal 1849 zcma*odr(tX9tZHtz31lM+(&Y`A`Ou`NeG&R#DrIfV%?hng21vs6v>ooRQQFbk7E_K!V( z{?5!fpZWgIZ%*d6t%i*j24bL}AZUJm9)h6R*;%L4IWse3G#VWaN1#$zSSXcBhlYlH zJ|D}n{r&w2f+Qp)SS*&n?*G4}{}!h?td_mjU6Kad-rW*QwWYCUk7d^e+sjpZAn6kT z5rM;`{~_}-wm+L@%+E;JphLm}C3WzQAQD0wBoY|rOTQX{(@pp-WAA8Iw0HKl|15j) zhGh(SFWu#5zUCw^T!}C~eC}~?{xG-r7ugQC>taC+|L^xr&a%{#cgUOZXIM&v?)k^2 z1i5%0!U00wq)r4vlAwXBA_m5J5WNeuBm-XJQ5pG4GD%vc|K){+TJ{AkHqN@SJKczX zU}QRd9n*_bf^h94)6Ctv{CUfz_;qs#RDuQ$DR%y1&5G-a6rhf*4Y zl+UOD1*GE{GQ7vv;c-tTIMkz0ovO>9j%b5hpa@a*CBJ#W!0@ndSwF|%hMkdFtXiU) z`BEp+yhkt8ZY>tg&uyH@%^%K4jDrbA;et&vnnzZ3z22@e6<27z2Vk13kb7OtISyxv z(XoO-LNQCZe3lfzc%*pNqU<9T+p~teThOEB+~e&U0mC|zS{Q)dJZ)!^1f7L(zg*L> z*vSW%?dR~@@0(}x6-V^A`~ImD;)NaBUnP8;RH=bS2@pk`wp>>8r&jGjmGPy%1BW}v zoPo}ca$~bze@efc3kapuEVW1!%teOZT3j2Tw5=hjiAf02d}7dL0oFC%@=RXp5Ow#% z@a>+AM|YWt$n&e`>sB-32gBcuTi>R>*|8@lp`y6thc7ydyqDsuUn~YzZf|{-R@-3y zL#wx{Ii}xxL_csiW*LBn0-A$>zp4WOmkf6=ilrjlW?-l9+bCd7|i?*b5NTmy<<6NZ0T8$SN@mwdC2f z6jqK=N@bS@!=YSj%>h0}*4p+%0HbTIrE$w7UMT6+AZZ&DAo*qZAAi(OtNbIfl#Dw^ zJWeiCp~zi#&t6x}m9)O^eR4HiLV3QA<<0>HZ8%$^lrSE94Wb}=+MM^!b>n#5&-JQR zkr-CEu9C;_F*7DqDisulV6Pmg$nFL0TPn%~*m^-`Z3^BgU(sNpnx%nW(!eV9A&FvI zHL3X3lw8Wji^6=8KbQDE-e%b?svdFxxdh$8r97@7$ojeI`6AL8Ob6QC$qh&>ZWVDX1F{0vJnT%%mE;GveKWR%C} zM&4d;Jf3s9|HAA)yVUPo`Aq;0do#)uHSXi5*QF*)x@MVVHr+cN)uMZ__F|&Ta#p8d z53TOKtce!PJUuie8UWol-S(`c2nH?UGqJP{!4RR4u$LCfn)q-hj0^f=h(VYy)T6eN zhRO!ja-aDBTcgeyP(8Ua4IdiOog^*CQa?R(cP#9AgL9`j>EX-6Yf1lzX(!~``M1XC zNmM<4<6d~wWZ$Xrk0K}UteTrq@LBBk#MsjkK;pbuVhe)NI7(7Pf(l?lxC7=1Z7Pzl zMbS;nV4NI5_N{1$P)&XC)huOGQ+h^zpYUZfb*1n6>!`#*b3y52LGmi+<4sY5jyD#- zw&$d}DTguLAfnRtjrM*JfqtHqUu6rQoU=g%1E9xk%;)TDm^2<8n-0IhTsQFaek)MY}>PK4;nBk=ow4pF>vzkO& gna%Org-kgQCf=+BeMi^RbuY;YE~rTjend;_cdi8t>i_@% literal 0 HcmV?d00001 diff --git a/Tests/Manual/NewTextFieldBezel/index-debug.html b/Tests/Manual/NewTextFieldBezel/index-debug.html new file mode 100644 index 000000000..4c283399a --- /dev/null +++ b/Tests/Manual/NewTextFieldBezel/index-debug.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + NewTextField + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/NewTextFieldBezel/index.html b/Tests/Manual/NewTextFieldBezel/index.html new file mode 100644 index 000000000..d288174a1 --- /dev/null +++ b/Tests/Manual/NewTextFieldBezel/index.html @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + NewTextField + + + + + + + + + + + + +
+
+ + + +
+
+ + + + diff --git a/Tests/Manual/NewTextFieldBezel/main.j b/Tests/Manual/NewTextFieldBezel/main.j new file mode 100644 index 000000000..c5515727b --- /dev/null +++ b/Tests/Manual/NewTextFieldBezel/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * NewTextField + * + * Created by aparajita on August 10, 2011. + * Copyright 2011, Victory-Heart Productions All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +} diff --git a/Tools/nib2cib/NSAppKit.j b/Tools/nib2cib/NSAppKit.j index f26db332a..227d47fbd 100644 --- a/Tools/nib2cib/NSAppKit.j +++ b/Tools/nib2cib/NSAppKit.j @@ -31,6 +31,7 @@ @import "NSColorWell.j" @import "NSCollectionView.j" @import "NSCollectionViewItem.j" +@import "NSComboBox.j" @import "NSControl.j" @import "NSCustomObject.j" @import "NSCustomResource.j" diff --git a/Tools/nib2cib/NSComboBox.j b/Tools/nib2cib/NSComboBox.j new file mode 100644 index 000000000..16ed5ba49 --- /dev/null +++ b/Tools/nib2cib/NSComboBox.j @@ -0,0 +1,105 @@ +/* + * NSComboBox.j + * nib2cib + * + * Created by Aparajita Fishman. + * Copyright (c) 2012, The Cappuccino Foundation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +@import +@import + +@import "NSTextField.j" + + +@implementation CPComboBox (NSCoding) + +- (id)NS_initWithCoder:(CPCoder)aCoder +{ + self = [super NS_initWithCoder:aCoder]; + + if (self) + { + var cell = [aCoder decodeObjectForKey:@"NSCell"]; + + _items = [cell itemList]; + _usesDataSource = [cell usesDataSource]; + _completes = [cell completes]; + _numberOfVisibleItems = [cell visibleItemCount]; + _hasVerticalScroller = [cell hasVerticalScroller]; + [self setButtonBordered:[cell borderedButton]]; + + // Make sure the height is clipped to the max given by the theme + var maxSize = [[[Converter sharedConverter] themes][0] valueForAttributeWithName:@"max-size" forClass:[CPComboBox class]], + size = [self frameSize]; + + [self setFrameSize:CGSizeMake(size.width, MIN(size.height, maxSize.height))]; + } + + return self; +} + +@end + +@implementation NSComboBox : CPComboBox + +- (id)initWithCoder:(CPCoder)aCoder +{ + return [self NS_initWithCoder:aCoder]; +} + +- (Class)classForKeyedArchiver +{ + return [CPComboBox class]; +} + +@end + +@implementation NSComboBoxCell : NSTextFieldCell +{ + int _visibleItemCount @accessors(readonly, getter=visibleItemCount); + BOOL _hasVerticalScroller @accessors(readonly, getter=hasVerticalScroller); + BOOL _usesDataSource @accessors(readonly, getter=usesDataSource); + BOOL _completes @accessors(readonly, getter=completes); + CPArray _itemList @accessors(readonly, getter=itemList); + BOOL _borderedButton @accessors(readonly, getter=borderedButton); +} + +- (id)initWithCoder:(CPCoder)aCoder +{ + self = [super initWithCoder:aCoder]; + + if (self) + { + _visibleItemCount = [aCoder decodeIntForKey:@"NSVisibleItemCount"]; + _hasVerticalScroller = [aCoder decodeBoolForKey:@"NSHasVerticalScroller"]; + _usesDataSource = [aCoder decodeBoolForKey:@"NSUsesDataSource"]; + _completes = [aCoder decodeBoolForKey:@"NSCompletes"]; + + if (!_usesDataSource) + _itemList = [aCoder decodeObjectForKey:@"NSPopUpListData"] || []; + else + _itemList = []; + + // NSButtonBordered key is present only if the value is NO, go figure + _borderedButton = [aCoder containsValueForKey:@"NSButtonBordered"] ? [aCoder decodeBoolForKey:@"NSButtonBordered"] : YES; + } + + return self; +} + +@end From cff29904d7cb0c262e1243c1b992ccea76dcc697 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Fri, 6 Jul 2012 15:49:27 +0100 Subject: [PATCH 032/109] Refs #1599. Format code. --- Foundation/CPKeyValueObserving.j | 8 +- Tests/Foundation/CPKVOTest.j | 323 +++++++++++++++---------------- 2 files changed, 165 insertions(+), 166 deletions(-) diff --git a/Foundation/CPKeyValueObserving.j b/Foundation/CPKeyValueObserving.j index c30799283..2ab51e5df 100644 --- a/Foundation/CPKeyValueObserving.j +++ b/Foundation/CPKeyValueObserving.j @@ -1093,7 +1093,7 @@ var kvoNewAndOld = CPKeyValueObservingOptionNew | CPKeyValueObservingOpti var dotIndex = aKeyPath.indexOf('.'); if (dotIndex === CPNotFound) - [CPException raise:CPInvalidArgumentException reason:"Created _CPKVOForwardingObserver without compound key path: "+aKeyPath]; + [CPException raise:CPInvalidArgumentException reason:"Created _CPKVOForwardingObserver without compound key path: " + aKeyPath]; _firstPart = aKeyPath.substring(0, dotIndex); _secondPart = aKeyPath.substring(dotIndex + 1); @@ -1115,13 +1115,13 @@ var kvoNewAndOld = CPKeyValueObservingOptionNew | CPKeyValueObservingOpti if (aKeyPath === _firstPart) { var oldValue = [_value valueForKeyPath:_secondPart], - newValue = [_object valueForKeyPath:_firstPart+"."+_secondPart], + newValue = [_object valueForKeyPath:_firstPart + "." + _secondPart], pathChanges = [CPDictionary dictionaryWithObjectsAndKeys: newValue ? newValue : [CPNull null], CPKeyValueChangeNewKey, oldValue ? oldValue : [CPNull null], CPKeyValueChangeOldKey, CPKeyValueChangeSetting, CPKeyValueChangeKindKey]; - [_observer observeValueForKeyPath:_firstPart+"."+_secondPart ofObject:_object change:pathChanges context:_context]; + [_observer observeValueForKeyPath:_firstPart + "." + _secondPart ofObject:_object change:pathChanges context:_context]; //since a has changed, we should remove ourselves as an observer of the old a, and observe the new one if (_value) @@ -1135,7 +1135,7 @@ var kvoNewAndOld = CPKeyValueObservingOptionNew | CPKeyValueObservingOpti else { //a is the same, but a.b has changed -- nothing to do but forward this message along - [_observer observeValueForKeyPath:_firstPart+"."+aKeyPath ofObject:_object change:changes context:_context]; + [_observer observeValueForKeyPath:_firstPart + "." + aKeyPath ofObject:_object change:changes context:_context]; } } diff --git a/Tests/Foundation/CPKVOTest.j b/Tests/Foundation/CPKVOTest.j index 1254ba0ea..b3874955b 100644 --- a/Tests/Foundation/CPKVOTest.j +++ b/Tests/Foundation/CPKVOTest.j @@ -25,66 +25,66 @@ { bob = [[PersonTester alloc] init]; - [bob addObserver:self forKeyPath:@"name" options:nil context:"testAddObserver"]; + [bob addObserver:self forKeyPath:@"name" options:nil context:@"testAddObserver"]; [bob setValue:@"bob" forKey:@"name"]; - [self assertTrue: [bob valueForKey:@"name"] == @"set_bob" message: "valueForKey:'name' should be 'set_bob', was: "+[bob valueForKey:@"name"]]; - [self assertTrue: bob.name == @"set_bob" message: "bob.name should be 'set_bob', was: "+bob.name]; - [self assertTrue: _sawObservation message:"Never received an observation"]; + [self assertTrue: [bob valueForKey:@"name"] == @"set_bob" message:@"valueForKey:'name' should be 'set_bob', was: " + [bob valueForKey:@"name"]]; + [self assertTrue: bob.name == @"set_bob" message:@"bob.name should be 'set_bob', was: " + bob.name]; + [self assertTrue: _sawObservation message:@"Never received an observation"]; } - (void)testUnobservedKey { bob = [[PersonTester alloc] init]; - [bob addObserver:self forKeyPath:@"name" options:nil context:"testUnobservedKey"]; + [bob addObserver:self forKeyPath:@"name" options:nil context:@"testUnobservedKey"]; [bob setValue:@"555" forKey:@"phoneNumber"]; - [self assertTrue: [bob valueForKey:@"phoneNumber"] == @"555" message: "'phoneNumber' should be '555', was: "+[bob valueForKey:@"phoneNumber"]]; - [self assertFalse: _sawObservation message:"Should not have recieved an observation"]; + [self assertTrue: [bob valueForKey:@"phoneNumber"] == @"555" message:@"'phoneNumber' should be '555', was: " + [bob valueForKey:@"phoneNumber"]]; + [self assertFalse: _sawObservation message:@"Should not have recieved an observation"]; } - (void)testAddTwoObservers { bob = [[PersonTester alloc] init]; - [bob addObserver:self forKeyPath:@"name" options:nil context:"testAddTwoObservers"]; - [bob addObserver:[CPObject new] forKeyPath:@"name" options:nil context:"testAddTwoObservers"]; + [bob addObserver:self forKeyPath:@"name" options:nil context:@"testAddTwoObservers"]; + [bob addObserver:[CPObject new] forKeyPath:@"name" options:nil context:@"testAddTwoObservers"]; [bob setValue:@"bob" forKey:@"name"]; - [self assertTrue: [bob valueForKey:@"name"] == @"set_bob" message: "valueForKey:'name' should be bob, was: "+[bob valueForKey:@"name"]]; - [self assertTrue: bob.name == @"set_bob" message: "bob.name should be 'bob', was: "+bob.name]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [self assertTrue: [bob valueForKey:@"name"] == @"set_bob" message:@"valueForKey:'name' should be bob, was: " + [bob valueForKey:@"name"]]; + [self assertTrue: bob.name == @"set_bob" message:@"bob.name should be 'bob', was: " + bob.name]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testDirectIVarObservation { var bob = [[PersonTester alloc] init]; - [bob addObserver:self forKeyPath:@"phoneNumber" options:nil context:"testDirectIVarObservation"]; + [bob addObserver:self forKeyPath:@"phoneNumber" options:nil context:@"testDirectIVarObservation"]; [bob setValue:@"555" forKey:@"phoneNumber"]; - [self assertTrue: [bob valueForKey:@"phoneNumber"] == @"555" message: "valueForKey:'phoneNumber' should be '555', was: "+[bob valueForKey:@"phoneNumber"]]; - [self assertTrue: bob.phoneNumber == @"555" message: "bob.phoneNumber should be '555', was: "+bob.phoneNumber]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [self assertTrue: [bob valueForKey:@"phoneNumber"] == @"555" message:@"valueForKey:'phoneNumber' should be '555', was: " + [bob valueForKey:@"phoneNumber"]]; + [self assertTrue: bob.phoneNumber == @"555" message:@"bob.phoneNumber should be '555', was: " + bob.phoneNumber]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testRemoveObserver { bob = [[PersonTester alloc] init]; - [bob addObserver:self forKeyPath:@"name" options:nil context:"testRemoveObserver"]; - [bob addObserver:[CPString new] forKeyPath:@"name" options:nil context:"testRemoveObserver"]; + [bob addObserver:self forKeyPath:@"name" options:nil context:@"testRemoveObserver"]; + [bob addObserver:[CPString new] forKeyPath:@"name" options:nil context:@"testRemoveObserver"]; [bob removeObserver:self forKeyPath:@"name"]; [bob setValue:@"bob" forKey:@"name"]; - [self assertTrue: [bob valueForKey:@"name"] == @"set_bob" message: "valueForKey:'name' should be bob, was: "+[bob valueForKey:@"name"]]; + [self assertTrue: [bob valueForKey:@"name"] == @"set_bob" message:@"valueForKey:'name' should be bob, was: " + [bob valueForKey:@"name"]]; } - (void)testRemoveOtherObserver @@ -92,15 +92,15 @@ bob = [[PersonTester alloc] init]; obj = [CPString new]; - [bob addObserver:self forKeyPath:@"name" options:nil context:"testRemoveOtherObserver"]; - [bob addObserver:obj forKeyPath:@"name" options:nil context:"testRemoveOtherObserver"]; + [bob addObserver:self forKeyPath:@"name" options:nil context:@"testRemoveOtherObserver"]; + [bob addObserver:obj forKeyPath:@"name" options:nil context:@"testRemoveOtherObserver"]; [bob removeObserver:obj forKeyPath:@"name"]; [bob setValue:@"bob" forKey:@"name"]; - [self assertTrue: [bob valueForKey:@"name"] == @"set_bob" message: "valueForKey:'name' should be bob, was: "+[bob valueForKey:@"name"]]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [self assertTrue: [bob valueForKey:@"name"] == @"set_bob" message:@"valueForKey:'name' should be bob, was: " + [bob valueForKey:@"name"]]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testRemoveAllObservers @@ -109,8 +109,8 @@ obj = [CPArray new]; obj2 = [CPString new]; - [bob addObserver:obj forKeyPath:@"name" options:nil context:"testRemoveAllObservers"]; - [bob addObserver:obj2 forKeyPath:@"name" options:nil context:"testRemoveAllObservers"]; + [bob addObserver:obj forKeyPath:@"name" options:nil context:@"testRemoveAllObservers"]; + [bob addObserver:obj2 forKeyPath:@"name" options:nil context:@"testRemoveAllObservers"]; [bob removeObserver:obj forKeyPath:@"name"]; [bob removeObserver:obj2 forKeyPath:@"name"]; @@ -118,8 +118,7 @@ [bob setValue:@"bob" forKey:@"name"]; - [self assertTrue: [bob valueForKey:@"name"] == @"set_bob" message: "valueForKey:'name' should be bob, was: "+[bob valueForKey:@"name"]]; - + [self assertTrue: [bob valueForKey:@"name"] == @"set_bob" message:@"valueForKey:'name' should be bob, was: " + [bob valueForKey:@"name"]]; } - (void)testDictionary @@ -131,11 +130,11 @@ [dict addObserver:self forKeyPath:@"dictionaryKey" options:nil - context:"testDictionary"]; + context:@"testDictionary"]; [dict setObject:@"Jo Bob Ray" forKey:@"dictionaryKey"]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testPriorObservationOption @@ -144,11 +143,11 @@ bob = [[PersonTester alloc] init]; - [bob addObserver:self forKeyPath:@"name" options:CPKeyValueObservingOptionPrior context:"testPriorObservationOption"]; + [bob addObserver:self forKeyPath:@"name" options:CPKeyValueObservingOptionPrior context:@"testPriorObservationOption"]; [bob setValue:@"bob" forKey:@"name"]; - [self assertTrue: _sawPriorObservation message: "asked for CPKeyValueObservingOptionPrior but did not recieve corresponding notification"]; + [self assertTrue: _sawPriorObservation message:@"asked for CPKeyValueObservingOptionPrior but did not recieve corresponding notification"]; } - (void)testInitialObservationOption @@ -159,12 +158,12 @@ bob.name = "paul"; - [bob addObserver:self forKeyPath:@"name" options:CPKeyValueObservingOptionInitial context:"testInitialObservationOption"]; + [bob addObserver:self forKeyPath:@"name" options:CPKeyValueObservingOptionInitial context:@"testInitialObservationOption"]; [bob removeObserver:self forKeyPath:@"name"]; [bob setValue:@"bob" forKey:@"name"]; - [self assertTrue: _sawInitialObservation message: "asked for CPKeyValueObservingOptionInitial but did not recieve corresponding notification"]; + [self assertTrue: _sawInitialObservation message:@"asked for CPKeyValueObservingOptionInitial but did not recieve corresponding notification"]; } - (void)testDependentKeyObservation @@ -175,13 +174,13 @@ bob.name = "paul"; - [bob addObserver:self forKeyPath:@"bobName" options:0 context:"testDependentKeyObservation"]; - [bob addObserver:self forKeyPath:@"twiceRemoved" options:0 context:"testDependentKeyObservation2"]; + [bob addObserver:self forKeyPath:@"bobName" options:0 context:@"testDependentKeyObservation"]; + [bob addObserver:self forKeyPath:@"twiceRemoved" options:0 context:@"testDependentKeyObservation2"]; [bob setValue:@"bob" forKey:@"name"]; - [self assertTrue:_sawDependentObservation message:"asked for bobName but did not recieve corresponding notification"]; - [self assertTrue: [bob valueForKey:@"bobName"] === @"BOB! set_bob" message: "should have been BOB! set_bob, was "+[bob valueForKey:@"bobName"]]; + [self assertTrue:_sawDependentObservation message:@"asked for bobName but did not recieve corresponding notification"]; + [self assertTrue: [bob valueForKey:@"bobName"] === @"BOB! set_bob" message:@"should have been BOB! set_bob, was " + [bob valueForKey:@"bobName"]]; } - (void)testMultipartKey @@ -191,12 +190,12 @@ [cs101 setTeacher:bob]; - [cs101 addObserver:self forKeyPath:@"teacher.name" options:0 context:"testMultipartKey"]; + [cs101 addObserver:self forKeyPath:@"teacher.name" options:0 context:@"testMultipartKey"]; [bob setName:@"bob"]; - [self assertTrue:[cs101 valueForKeyPath:@"teacher.name"] == "set_bob" message:"teacher.name should be: set_bob, was: "+[cs101 valueForKeyPath:@"teacher.name"]]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [self assertTrue:[cs101 valueForKeyPath:@"teacher.name"] == "set_bob" message:@"teacher.name should be: set_bob, was: " + [cs101 valueForKeyPath:@"teacher.name"]]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testMultiPartKeysWhereValuesEvaluateToSelf @@ -204,13 +203,13 @@ focus = [CarTester new]; bob = [PersonTester new]; - [bob setValue:focus forKey:"car"]; + [bob setValue:focus forKey:@"car"]; - [bob addObserver:self forKeyPath:@"self.car.thisCar.model" options:0 context:"testMultiPartKeysWhereValuesEvaluateToSelf"]; + [bob addObserver:self forKeyPath:@"self.car.thisCar.model" options:0 context:@"testMultiPartKeysWhereValuesEvaluateToSelf"]; - [focus setValue:"ford focus" forKey:"model"]; + [focus setValue:@"ford focus" forKey:@"model"]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testThreePartKey @@ -220,12 +219,12 @@ bob = [PersonTester new]; [cs101 setTeacher:bob]; - [bob setValue:focus forKey:"car"]; + [bob setValue:focus forKey:@"car"]; - [cs101 addObserver:self forKeyPath:@"teacher.car.model" options:0 context:"testThreePartKey"]; + [cs101 addObserver:self forKeyPath:@"teacher.car.model" options:0 context:@"testThreePartKey"]; - [focus setValue:"ford focus" forKey:"model"]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [focus setValue:@"ford focus" forKey:@"model"]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testThreePartKeyPart2 @@ -235,13 +234,13 @@ bob = [PersonTester new]; [cs101 setTeacher:bob]; - [focus setValue:"2000" forKey:"year"]; + [focus setValue:@"2000" forKey:@"year"]; - [cs101 addObserver:self forKeyPath:@"teacher.car.year" options:0 context:"testThreePartKeyPart2"]; + [cs101 addObserver:self forKeyPath:@"teacher.car.year" options:0 context:@"testThreePartKeyPart2"]; - [bob setValue:focus forKey:"car"]; + [bob setValue:focus forKey:@"car"]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testRemoveMultipartKey @@ -251,13 +250,13 @@ [cs101 setTeacher:bob]; - [cs101 addObserver:self forKeyPath:@"teacher.name" options:0 context:"testRemoveMultipartKey"]; + [cs101 addObserver:self forKeyPath:@"teacher.name" options:0 context:@"testRemoveMultipartKey"]; [cs101 removeObserver:self forKeyPath:@"teacher.name"]; [bob setName:@"bob"]; - [self assertFalse: _sawObservation message:"Should not have recieved an observation"]; + [self assertFalse: _sawObservation message:@"Should not have recieved an observation"]; } - (void)testRemoveThreePartKey @@ -267,69 +266,69 @@ bob = [PersonTester new]; [cs101 setTeacher:bob]; - [bob setValue:focus forKey:"car"]; + [bob setValue:focus forKey:@"car"]; - [cs101 addObserver:self forKeyPath:@"teacher.car.model" options:0 context:"testRemoveThreePartKey"]; + [cs101 addObserver:self forKeyPath:@"teacher.car.model" options:0 context:@"testRemoveThreePartKey"]; [cs101 removeObserver:self forKeyPath:@"teacher.car.model"]; - [focus setValue:"ford focus" forKey:"model"]; + [focus setValue:@"ford focus" forKey:@"model"]; - [self assertFalse: _sawObservation message:"Should not have recieved an observation"]; + [self assertFalse: _sawObservation message:@"Should not have recieved an observation"]; } - - (void)testCrazyKeyPathChanges { var a = [A new]; - [a setValue:[B new] forKeyPath:"b"]; - [a setValue:[C new] forKeyPath:"b.c"]; - [a setValue:[D new] forKeyPath:"b.c.d"]; - [a setValue:[E new] forKeyPath:"b.c.d.e"]; - [a setValue:[F new] forKeyPath:"b.c.d.e.f"]; + [a setValue:[B new] forKeyPath:@"b"]; + [a setValue:[C new] forKeyPath:@"b.c"]; + [a setValue:[D new] forKeyPath:@"b.c.d"]; + [a setValue:[E new] forKeyPath:@"b.c.d.e"]; + [a setValue:[F new] forKeyPath:@"b.c.d.e.f"]; - [a addObserver:self forKeyPath:"b.c.d.e.f" options:0 context:"testCrazyKeyPathChanges"]; + [a addObserver:self forKeyPath:@"b.c.d.e.f" options:0 context:@"testCrazyKeyPathChanges"]; var newD = [D new]; + [newD setValue:[E new] forKeyPath:@"e"]; [newD setValue:[F new] forKeyPath:@"e.f"]; - [a setValue:newD forKeyPath:"b.c.d"]; + [a setValue:newD forKeyPath:@"b.c.d"]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testCrazyKeyPathChanges2 { var a = [A new]; - [a setValue:[B new] forKeyPath:"b"]; - [a setValue:[C new] forKeyPath:"b.c"]; - [a setValue:[D new] forKeyPath:"b.c.d"]; - [a setValue:[E new] forKeyPath:"b.c.d.e"]; - [a setValue:[F new] forKeyPath:"b.c.d.e.f"]; + [a setValue:[B new] forKeyPath:@"b"]; + [a setValue:[C new] forKeyPath:@"b.c"]; + [a setValue:[D new] forKeyPath:@"b.c.d"]; + [a setValue:[E new] forKeyPath:@"b.c.d.e"]; + [a setValue:[F new] forKeyPath:@"b.c.d.e.f"]; - [a addObserver:self forKeyPath:"b.c.d.e.f" options:0 context:"testCrazyKeyPathChanges2"]; + [a addObserver:self forKeyPath:@"b.c.d.e.f" options:0 context:@"testCrazyKeyPathChanges2"]; - [a setValue:nil forKeyPath:"b.c"]; + [a setValue:nil forKeyPath:@"b.c"]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testCrazyKeyPathChanges3 { var a = [A new]; - [a setValue:[B new] forKeyPath:"b"]; - [a setValue:[C new] forKeyPath:"b.c"]; - [a setValue:[D new] forKeyPath:"b.c.d"]; - [a setValue:[E new] forKeyPath:"b.c.d.e"]; - [a setValue:[F new] forKeyPath:"b.c.d.e.f"]; + [a setValue:[B new] forKeyPath:@"b"]; + [a setValue:[C new] forKeyPath:@"b.c"]; + [a setValue:[D new] forKeyPath:@"b.c.d"]; + [a setValue:[E new] forKeyPath:@"b.c.d.e"]; + [a setValue:[F new] forKeyPath:@"b.c.d.e.f"]; - [a addObserver:self forKeyPath:"b.c.d.e.f" options:0 context:"testCrazyKeyPathChanges3"]; + [a addObserver:self forKeyPath:@"b.c.d.e.f" options:0 context:@"testCrazyKeyPathChanges3"]; - [a setValue:7 forKeyPath:"b.c.d.e.f"]; + [a setValue:7 forKeyPath:@"b.c.d.e.f"]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testInsertIntoToManyProperty @@ -338,11 +337,11 @@ [tester setValue:[1, 2, 3, 4] forKey:@"managedObjects"]; - [tester addObserver:self forKeyPath:@"managedObjects" options:0 context:"testInsertIntoToManyProperty"]; + [tester addObserver:self forKeyPath:@"managedObjects" options:0 context:@"testInsertIntoToManyProperty"]; [tester insertObject:5 inManagedObjectsAtIndex:4]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testRemoveFromToManyProperty @@ -351,11 +350,11 @@ [tester setValue:[1, 2, 3, 4] forKey:@"managedObjects"]; - [tester addObserver:self forKeyPath:@"managedObjects" options:0 context:"testRemoveFromToManyProperty"]; + [tester addObserver:self forKeyPath:@"managedObjects" options:0 context:@"testRemoveFromToManyProperty"]; [tester removeObjectFromManagedObjectsAtIndex:0]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testInsertIntoToManyPropertyIndirectly @@ -364,11 +363,11 @@ tester.tester = [ToManyTester new]; [tester.tester setValue:[1, 2, 3, 4] forKey:@"managedObjects"]; - [tester addObserver:self forKeyPath:@"tester.managedObjects" options:0 context:"testInsertIntoToManyPropertyIndirectly"]; + [tester addObserver:self forKeyPath:@"tester.managedObjects" options:0 context:@"testInsertIntoToManyPropertyIndirectly"]; [tester.tester insertObject:5 inManagedObjectsAtIndex:4]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testInsertIntoArrayPropertyIndirectly @@ -378,11 +377,11 @@ tester.tester = [ToManyTester new]; [tester.tester setValue:[1, 2, 3, 4] forKey:@"subviews"]; - [tester addObserver:self forKeyPath:@"tester.subviews" options:0 context:"testInsertIntoArrayPropertyIndirectly"]; + [tester addObserver:self forKeyPath:@"tester.subviews" options:0 context:@"testInsertIntoArrayPropertyIndirectly"]; [tester.tester insertSubview:5 atIndex:4]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testChangeTopLevelObject @@ -392,46 +391,46 @@ tester.tester = [ToManyTester new]; [tester.tester setValue:[1, 2, 3, 4] forKey:@"subviews"]; - [tester addObserver:self forKeyPath:@"tester.subviews" options:0 context:"testChangeTopLevelObject"]; + [tester addObserver:self forKeyPath:@"tester.subviews" options:0 context:@"testChangeTopLevelObject"]; var newTesterTester = [ToManyTester new]; [newTesterTester setValue:[5, 6, 7, 8] forKey:@"subviews"]; [tester setValue:newTesterTester forKey:@"tester"]; - [self assertTrue: _sawObservation message:"Never recieved an observation"]; + [self assertTrue: _sawObservation message:@"Never recieved an observation"]; } - (void)testPerformance { bob = [PersonTester new]; - [bob setValue:"initial bob" forKey:"name"]; + [bob setValue:@"initial bob" forKey:@"name"]; var startTime = new Date(); for (var i = 0; i < 1000; i++) - [bob setValue:i + "bob" forKey:"name"]; + [bob setValue:i + @"bob" forKey:@"name"]; var total = new Date() - startTime; - [bob addObserver:[CPObject new] forKeyPath:"name" options:nil context:nil]; + [bob addObserver:[CPObject new] forKeyPath:@"name" options:nil context:nil]; startTime = new Date(); for (var i = 0; i < 1000; i++) - [bob setValue: i + "bob" forKey:"name"]; + [bob setValue: i + @"bob" forKey:@"name"]; var secondTotal = new Date() - startTime; CPLog.info("runtime overhead was: "+(secondTotal/total)+" but test has been disabled for the moment"); - //[self assertTrue: (secondTotal < total*4) message: "Overhead of one observer exceeded 400%. first: "+total+" second: "+secondTotal+" %"+FLOOR(secondTotal/total*100)]; + //[self assertTrue: (secondTotal < total * 4) message:@"Overhead of one observer exceeded 400%. first: "+total+" second: "+secondTotal+" %"+FLOOR(secondTotal / total * 100)]; } - (void)testDependentKeysPaths { var object = [[TestObject alloc] init]; - [object addObserver:self forKeyPath:@"key" options:0 context:"testDependentKeysPaths"]; + [object addObserver:self forKeyPath:@"key" options:0 context:@"testDependentKeysPaths"]; observationCount = 0; @@ -447,19 +446,19 @@ var bob = [[PersonTester alloc] init], betty = [CPObject new]; - [bob addObserver:self forKeyPath:@"name" options:nil context:"testSettersReplacedOnce"]; + [bob addObserver:self forKeyPath:@"name" options:nil context:@"testSettersReplacedOnce"]; var oldImp = class_getMethodImplementation(bob.isa, @selector(setName:)); [bob removeObserver:self forKeyPath:@"name"]; - [bob addObserver:self forKeyPath:@"name" options:nil context:"testSettersReplacedOnce"]; + [bob addObserver:self forKeyPath:@"name" options:nil context:@"testSettersReplacedOnce"]; var newImp = class_getMethodImplementation(bob.isa, @selector(setName:)); [self assertTrue:newImp === oldImp]; - [bob addObserver:betty forKeyPath:@"name" options:nil context:"testSettersReplacedOnce"]; + [bob addObserver:betty forKeyPath:@"name" options:nil context:@"testSettersReplacedOnce"]; var newImp = class_getMethodImplementation(bob.isa, @selector(setName:)); @@ -476,34 +475,34 @@ case "testDependentKeysPaths": ++observationCount; break; case "testAddObserver": - [self assertTrue: newValue == "set_bob" message: "newValue should be: set_bob was: "+newValue]; - [self assertTrue: oldValue == [CPNull null] message: "oldValue should be CPNull was: "+oldValue]; - [self assertTrue: anObject == bob message: "anObject should be: "+[bob description]+", was: "+[anObject description]]; + [self assertTrue: newValue == "set_bob" message:@"newValue should be: set_bob was: "+newValue]; + [self assertTrue: oldValue == [CPNull null] message:@"oldValue should be CPNull was: "+oldValue]; + [self assertTrue: anObject == bob message:@"anObject should be: " + [bob description]+", was: " + [anObject description]]; break; case "testUnobservedKey": - [self assertFalse: YES message: "not observing this key, should never get here"]; + [self assertFalse: YES message:@"not observing this key, should never get here"]; break; case "testAddTwoObservers": - [self assertTrue: newValue == "set_bob" message: "newValue should be: set_bob was: "+newValue]; - [self assertTrue: oldValue == [CPNull null] message: "oldValue should be CPNull was: "+oldValue]; + [self assertTrue: newValue == "set_bob" message:@"newValue should be: set_bob was: "+newValue]; + [self assertTrue: oldValue == [CPNull null] message:@"oldValue should be CPNull was: "+oldValue]; break; case "testDirectIVarObservation": - [self assertTrue: newValue == "555" message: "newValue should be: 555 was: "+newValue]; - [self assertTrue: oldValue == [CPNull null] message: "oldValue should be CPNull was: "+oldValue]; + [self assertTrue: newValue == "555" message:@"newValue should be: 555 was: "+newValue]; + [self assertTrue: oldValue == [CPNull null] message:@"oldValue should be CPNull was: "+oldValue]; break; case "testRemoveObserver": - [self assertTrue: NO message: "observer was removed, but notification was still received"]; + [self assertTrue: NO message:@"observer was removed, but notification was still received"]; break; case "testRemoveOtherObserver": - [self assertTrue: newValue == "set_bob" message: "newValue should be: set_bob was: "+newValue]; - [self assertTrue: oldValue == [CPNull null] message: "oldValue should be CPNull was: "+oldValue]; + [self assertTrue: newValue == "set_bob" message:@"newValue should be: set_bob was: "+newValue]; + [self assertTrue: oldValue == [CPNull null] message:@"oldValue should be CPNull was: "+oldValue]; break; case "testRemoveAllObservers": - [self assertTrue: NO message: "all observers were removed, but notification was still received"]; + [self assertTrue: NO message:@"all observers were removed, but notification was still received"]; break; case "testPriorObservationOption": @@ -511,72 +510,72 @@ if (!_sawPriorObservation) { - [self assertTrue:prior message:"Have not been sent the prior notification, but it should have been sent"]; - [self assertTrue:oldValue == [CPNull null] message: "Shoudl be no initial value"]; - [self assertFalse:newValue message: "Should be no object for the new value key on the prior notification"]; + [self assertTrue:prior message:@"Have not been sent the prior notification, but it should have been sent"]; + [self assertTrue:oldValue == [CPNull null] message:@"Shoudl be no initial value"]; + [self assertFalse:newValue message:@"Should be no object for the new value key on the prior notification"]; _sawPriorObservation = YES; } else { - [self assertFalse: prior message: "there should be no value for the notification is prior key, that notification was already sent"]; - [self assertTrue: newValue == "set_bob" message: "newValue should be: set_bob was: "+newValue]; + [self assertFalse: prior message:@"there should be no value for the notification is prior key, that notification was already sent"]; + [self assertTrue: newValue == "set_bob" message:@"newValue should be: set_bob was: "+newValue]; } break; case "testInitialObservationOption": if (!_sawInitialObservation) { - [self assertTrue: newValue == "paul" message:"Expected old value to be: paul was: "+oldValue]; - [self assertFalse: oldValue message:"Should be no value for new change key on initial observation"]; + [self assertTrue: newValue == "paul" message:@"Expected old value to be: paul was: "+oldValue]; + [self assertFalse: oldValue message:@"Should be no value for new change key on initial observation"]; _sawInitialObservation = YES; } else - [self assertFalse:YES message:"Should never have received this notification"]; + [self assertFalse:YES message:@"Should never have received this notification"]; break; case "testMultipartKey": - [self assertTrue: aKeyPath == "teacher.name" message:"Keypath should be: teacher.name, was: "+aKeyPath]; - [self assertTrue: newValue == "set_bob" message:"New value should be: set_bob, was: "+newValue]; - [self assertTrue: anObject == cs101 message: "anObject should be: "+[cs101 description]+", was: "+[anObject description]]; + [self assertTrue: aKeyPath == "teacher.name" message:@"Keypath should be: teacher.name, was: "+aKeyPath]; + [self assertTrue: newValue == "set_bob" message:@"New value should be: set_bob, was: "+newValue]; + [self assertTrue: anObject == cs101 message:@"anObject should be: " + [cs101 description]+", was: " + [anObject description]]; break; case "testRemoveMultipartKey": - [self assertFalse:YES message:"Should never have received this notification"]; + [self assertFalse:YES message:@"Should never have received this notification"]; break; case "testRemoveThreePartKey": - [self assertFalse:YES message:"Should never have received this notification"]; + [self assertFalse:YES message:@"Should never have received this notification"]; break; case "testThreePartKey": - [self assertTrue: aKeyPath == "teacher.car.model" message:"Keypath should be: teacher.car.model, was: "+aKeyPath]; - [self assertTrue: newValue == "ford focus" message:"New value should be: ford focus, was: "+newValue]; - [self assertTrue: anObject == cs101 message: "anObject should be: "+[cs101 description]+", was: "+[anObject description]]; + [self assertTrue: aKeyPath == "teacher.car.model" message:@"Keypath should be: teacher.car.model, was: "+aKeyPath]; + [self assertTrue: newValue == "ford focus" message:@"New value should be: ford focus, was: "+newValue]; + [self assertTrue: anObject == cs101 message:@"anObject should be: " + [cs101 description]+", was: " + [anObject description]]; break; case "testThreePartKeyPart2": - [self assertTrue: aKeyPath == "teacher.car.year" message:"Keypath should be: teacher.car, was: "+aKeyPath]; - [self assertTrue: newValue == "2000" message:"New value should be a car with year: 2000, was: "+[newValue description]]; - [self assertTrue: anObject == cs101 message: "anObject should be: "+[cs101 description]+", was: "+[anObject description]]; + [self assertTrue: aKeyPath == "teacher.car.year" message:@"Keypath should be: teacher.car, was: "+aKeyPath]; + [self assertTrue: newValue == "2000" message:@"New value should be a car with year: 2000, was: " + [newValue description]]; + [self assertTrue: anObject == cs101 message:@"anObject should be: " + [cs101 description]+", was: " + [anObject description]]; break; case "testCrazyKeyPathChanges": - [self assertTrue: [anObject class] == A message:"Should be observing an A class, was: "+[anObject class]]; - [self assertTrue: [newValue class] == F message:"Changed class was a F class, got: "+[newValue class]]; - [self assertTrue: aKeyPath == "b.c.d.e.f" message:"Expected keyPath b.c.d.e.f, got: "+aKeyPath]; + [self assertTrue: [anObject class] == A message:@"Should be observing an A class, was: " + [anObject class]]; + [self assertTrue: [newValue class] == F message:@"Changed class was a F class, got: " + [newValue class]]; + [self assertTrue: aKeyPath == "b.c.d.e.f" message:@"Expected keyPath b.c.d.e.f, got: "+aKeyPath]; break; case "testCrazyKeyPathChanges2": - [self assertTrue: [anObject class] == A message:"Should be observing an A class, was: "+[anObject class]]; - [self assertTrue: newValue == [CPNull null] message:"Expected null, got: "+newValue]; - [self assertTrue: aKeyPath == "b.c.d.e.f" message:"Expected keyPath b.c.d.e.f, got: "+aKeyPath]; + [self assertTrue: [anObject class] == A message:@"Should be observing an A class, was: " + [anObject class]]; + [self assertTrue: newValue == [CPNull null] message:@"Expected null, got: "+newValue]; + [self assertTrue: aKeyPath == "b.c.d.e.f" message:@"Expected keyPath b.c.d.e.f, got: "+aKeyPath]; break; case "testCrazyKeyPathChanges3": - [self assertTrue: [anObject class] == A message:"Should be observing an A class, was: "+[anObject class]]; - [self assertTrue: newValue == 7 message:"Expected 7, got: "+newValue]; - [self assertTrue: aKeyPath == "b.c.d.e.f" message:"Expected keyPath b.c.d.e.f, got: "+aKeyPath]; + [self assertTrue: [anObject class] == A message:@"Should be observing an A class, was: " + [anObject class]]; + [self assertTrue: newValue == 7 message:@"Expected 7, got: "+newValue]; + [self assertTrue: aKeyPath == "b.c.d.e.f" message:@"Expected keyPath b.c.d.e.f, got: "+aKeyPath]; break; case "testDependentKeyObservation": @@ -603,41 +602,41 @@ case "testInsertIntoToManyProperty": var type = [changes objectForKey:CPKeyValueChangeKindKey]; - [self assertTrue: type == CPKeyValueChangeInsertion message: "Should have been an insertion, was: "+type]; + [self assertTrue: type == CPKeyValueChangeInsertion message:@"Should have been an insertion, was: " + type]; var values = [changes objectForKey:CPKeyValueChangeNewKey]; - [self assertTrue: [values isEqual:[5]] message: "array should have contained 5, was: "+values+" type: "+[values.isa description]+" length: "+values.length]; + [self assertTrue: [values isEqual:[5]] message:@"array should have contained 5, was: " + values + " type: " + [values.isa description] + " length: " + values.length]; break; case "testInsertIntoToManyPropertyIndirectly": var type = [changes objectForKey:CPKeyValueChangeKindKey]; - [self assertTrue: type == CPKeyValueChangeInsertion message: "Should have been an insertion, was: "+type]; + [self assertTrue: type == CPKeyValueChangeInsertion message:@"Should have been an insertion, was: " + type]; var values = [changes objectForKey:CPKeyValueChangeNewKey]; - [self assertTrue: [values isEqual:[5]] message: "array should have contained 5, was: "+values+" type: "+[values.isa description]+" length: "+values.length]; + [self assertTrue:[values isEqual:[5]] message:@"array should have contained 5, was: " + values + " type: " + [values.isa description] + " length: " + values.length]; - [self assert:aKeyPath equals:"tester.managedObjects"]; + [self assert:aKeyPath equals:@"tester.managedObjects"]; [self assert:[anObject valueForKeyPath:@"tester.managedObjects"] equals:[1, 2, 3, 4, 5]]; break; case "testInsertIntoArrayPropertyIndirectly": var type = [changes objectForKey:CPKeyValueChangeKindKey]; - [self assertTrue: type == CPKeyValueChangeInsertion message: "Should have been an insertion, was: "+type]; + [self assertTrue: type == CPKeyValueChangeInsertion message:@"Should have been an insertion, was: " + type]; var values = [changes objectForKey:CPKeyValueChangeNewKey]; - [self assertTrue: [values isEqual:[5]] message: "array should have contained 5, was: "+values+" type: "+[values.isa description]+" length: "+values.length]; + [self assertTrue:[values isEqual:[5]] message:@"array should have contained 5, was: " + values + " type: " + [values.isa description] + " length: " + values.length]; - [self assert:aKeyPath equals:"tester.subviews"]; + [self assert:aKeyPath equals:@"tester.subviews"]; [self assert:[anObject valueForKeyPath:aKeyPath] equals:[1, 2, 3, 4, 5]]; break; case "testChangeTopLevelObject": var type = [changes objectForKey:CPKeyValueChangeKindKey]; - [self assertTrue: type == CPKeyValueChangeSetting message: "Should have been a set, was: "+type]; + [self assertTrue: type == CPKeyValueChangeSetting message:@"Should have been a set, was: " + type]; var oldValue = [changes objectForKey:CPKeyValueChangeOldKey], newValue = [changes objectForKey:CPKeyValueChangeNewKey]; @@ -648,30 +647,30 @@ case "testRemoveFromToManyProperty": var type = [changes objectForKey:CPKeyValueChangeKindKey]; - [self assertTrue: type == CPKeyValueChangeRemoval message: "Should have been a removal, was: "+type]; + [self assertTrue: type == CPKeyValueChangeRemoval message:@"Should have been a removal, was: " + type]; var values = [changes objectForKey:CPKeyValueChangeOldKey]; - [self assertTrue: [values isEqual:[1]] message: "array should have contained 1, was: "+values+" type: "+[values.isa description]+" length: "+values.length]; + [self assertTrue: [values isEqual:[1]] message:@"array should have contained 1, was: " + values + " type: " + [values.isa description] + " length: " + values.length]; [self assert:[anObject valueForKey:@"managedObjects"] equals:[2, 3, 4]]; - [self assert:aKeyPath equals:"managedObjects"]; + [self assert:aKeyPath equals:@"managedObjects"]; break; case "testMultiPartKeysWhereValuesEvaluateToSelf": - [self assert:aKeyPath equals:"self.car.thisCar.model"]; - [self assert:newValue equals:"ford focus"]; + [self assert:aKeyPath equals:@"self.car.thisCar.model"]; + [self assert:newValue equals:@"ford focus"]; [self assert:anObject equals:bob]; break; case "testDictionary": - [self assert:aKeyPath equals:"dictionaryKey"]; - [self assert:oldValue equals:"Bob Jones"]; - [self assert:newValue equals:"Jo Bob Ray"]; + [self assert:aKeyPath equals:@"dictionaryKey"]; + [self assert:oldValue equals:@"Bob Jones"]; + [self assert:newValue equals:@"Jo Bob Ray"]; break; default: - [self assertFalse:YES message:"unhandled observation, must be an error"]; + [self assertFalse:YES message:@"unhandled observation, must be an error"]; return; } @@ -698,12 +697,12 @@ + (CPSet)keyPathsForValuesAffectingTwiceRemoved { - return [CPSet setWithObject:"bobName"]; + return [CPSet setWithObject:@"bobName"]; } + (CPSet)keyPathsForValuesAffectingBobName { - return [CPSet setWithObject:"name"]; + return [CPSet setWithObject:@"name"]; } - (void)setName:(CPString)aName From 552ba68187b9e054013e4e2e97463cfc6438a81d Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Fri, 6 Jul 2012 15:53:19 +0100 Subject: [PATCH 033/109] Refs #1599. Fix teacher.car.year unit test message. --- Tests/Foundation/CPKVOTest.j | 44 ++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/Tests/Foundation/CPKVOTest.j b/Tests/Foundation/CPKVOTest.j index b3874955b..04104f33e 100644 --- a/Tests/Foundation/CPKVOTest.j +++ b/Tests/Foundation/CPKVOTest.j @@ -517,16 +517,16 @@ } else { - [self assertFalse: prior message:@"there should be no value for the notification is prior key, that notification was already sent"]; - [self assertTrue: newValue == "set_bob" message:@"newValue should be: set_bob was: "+newValue]; + [self assertFalse:prior message:@"there should be no value for the notification is prior key, that notification was already sent"]; + [self assertTrue:newValue == "set_bob" message:@"newValue should be: set_bob was: " + newValue]; } break; case "testInitialObservationOption": if (!_sawInitialObservation) { - [self assertTrue: newValue == "paul" message:@"Expected old value to be: paul was: "+oldValue]; - [self assertFalse: oldValue message:@"Should be no value for new change key on initial observation"]; + [self assertTrue:newValue == "paul" message:@"Expected old value to be: paul was: " + oldValue]; + [self assertFalse:oldValue message:@"Should be no value for new change key on initial observation"]; _sawInitialObservation = YES; } else @@ -535,9 +535,9 @@ break; case "testMultipartKey": - [self assertTrue: aKeyPath == "teacher.name" message:@"Keypath should be: teacher.name, was: "+aKeyPath]; - [self assertTrue: newValue == "set_bob" message:@"New value should be: set_bob, was: "+newValue]; - [self assertTrue: anObject == cs101 message:@"anObject should be: " + [cs101 description]+", was: " + [anObject description]]; + [self assertTrue:aKeyPath == "teacher.name" message:@"Keypath should be: teacher.name, was: " + aKeyPath]; + [self assertTrue:newValue == "set_bob" message:@"New value should be: set_bob, was: " + newValue]; + [self assertTrue:anObject == cs101 message:@"anObject should be: " + [cs101 description] + ", was: " + [anObject description]]; break; case "testRemoveMultipartKey": @@ -549,33 +549,33 @@ break; case "testThreePartKey": - [self assertTrue: aKeyPath == "teacher.car.model" message:@"Keypath should be: teacher.car.model, was: "+aKeyPath]; - [self assertTrue: newValue == "ford focus" message:@"New value should be: ford focus, was: "+newValue]; - [self assertTrue: anObject == cs101 message:@"anObject should be: " + [cs101 description]+", was: " + [anObject description]]; + [self assertTrue:aKeyPath == "teacher.car.model" message:@"Keypath should be: teacher.car.model, was: " + aKeyPath]; + [self assertTrue:newValue == "ford focus" message:@"New value should be: ford focus, was: "+newValue]; + [self assertTrue:anObject == cs101 message:@"anObject should be: " + [cs101 description] + ", was: " + [anObject description]]; break; case "testThreePartKeyPart2": - [self assertTrue: aKeyPath == "teacher.car.year" message:@"Keypath should be: teacher.car, was: "+aKeyPath]; - [self assertTrue: newValue == "2000" message:@"New value should be a car with year: 2000, was: " + [newValue description]]; - [self assertTrue: anObject == cs101 message:@"anObject should be: " + [cs101 description]+", was: " + [anObject description]]; + [self assertTrue:aKeyPath == "teacher.car.year" message:@"Keypath should be: teacher.car.year, was: " + aKeyPath]; + [self assertTrue:newValue == "2000" message:@"New value should be a car with year: 2000, was: " + [newValue description]]; + [self assertTrue:anObject == cs101 message:@"anObject should be: " + [cs101 description] + ", was: " + [anObject description]]; break; case "testCrazyKeyPathChanges": - [self assertTrue: [anObject class] == A message:@"Should be observing an A class, was: " + [anObject class]]; - [self assertTrue: [newValue class] == F message:@"Changed class was a F class, got: " + [newValue class]]; - [self assertTrue: aKeyPath == "b.c.d.e.f" message:@"Expected keyPath b.c.d.e.f, got: "+aKeyPath]; + [self assertTrue:[anObject class] == A message:@"Should be observing an A class, was: " + [anObject class]]; + [self assertTrue:[newValue class] == F message:@"Changed class was a F class, got: " + [newValue class]]; + [self assertTrue:aKeyPath == "b.c.d.e.f" message:@"Expected keyPath b.c.d.e.f, got: " + aKeyPath]; break; case "testCrazyKeyPathChanges2": - [self assertTrue: [anObject class] == A message:@"Should be observing an A class, was: " + [anObject class]]; - [self assertTrue: newValue == [CPNull null] message:@"Expected null, got: "+newValue]; - [self assertTrue: aKeyPath == "b.c.d.e.f" message:@"Expected keyPath b.c.d.e.f, got: "+aKeyPath]; + [self assertTrue:[anObject class] == A message:@"Should be observing an A class, was: " + [anObject class]]; + [self assertTrue:newValue == [CPNull null] message:@"Expected null, got: " + newValue]; + [self assertTrue:aKeyPath == "b.c.d.e.f" message:@"Expected keyPath b.c.d.e.f, got: " + aKeyPath]; break; case "testCrazyKeyPathChanges3": - [self assertTrue: [anObject class] == A message:@"Should be observing an A class, was: " + [anObject class]]; - [self assertTrue: newValue == 7 message:@"Expected 7, got: "+newValue]; - [self assertTrue: aKeyPath == "b.c.d.e.f" message:@"Expected keyPath b.c.d.e.f, got: "+aKeyPath]; + [self assertTrue:[anObject class] == A message:@"Should be observing an A class, was: " + [anObject class]]; + [self assertTrue:newValue == 7 message:@"Expected 7, got: " + newValue]; + [self assertTrue:aKeyPath == "b.c.d.e.f" message:@"Expected keyPath b.c.d.e.f, got: " + aKeyPath]; break; case "testDependentKeyObservation": From 88f8581dcc04afbf82f8453a3b9fc70f3b18c8c1 Mon Sep 17 00:00:00 2001 From: Ilya Kulakov Date: Sun, 13 May 2012 00:54:43 +0700 Subject: [PATCH 034/109] Implement -[CPWindowController setViewControllerContainerView:], fix -[CPWindowController setViewControllerView:] Container view is responsible for laying out its views. Container view is a content view of the window. If there is no container view, view controller's view is a content view of the window. --- AppKit/CPWindowController.j | 78 ++++++++++++++++++++++++++++++------- 1 file changed, 65 insertions(+), 13 deletions(-) diff --git a/AppKit/CPWindowController.j b/AppKit/CPWindowController.j index dfd480746..ab438e5c2 100644 --- a/AppKit/CPWindowController.j +++ b/AppKit/CPWindowController.j @@ -33,7 +33,7 @@ @class CPWindowController An instance of a CPWindowController manages a CPWindow. Windows are typically loaded via a cib, - but they can also manage windows created in code. A CPWindowController can manage a window by + but they can also manage windows created in code. A CPWindowController can manage a window by itself or work with AppKits's document-based architecture. In a Document based app, a CPWindowController instance is created and managed by a CPDocument subclass. @@ -333,6 +333,36 @@ - (void)setViewControllerContainerView:(CPView)aView { + if (!_viewControllerContainerView && !aView) + return; + + var viewController = [self viewController], + contentView = [[self window] contentView]; + if (aView) + { + [aView setFrame:[contentView frame]]; + [aView setAutoresizingMask:[contentView autoresizingMask]]; + if (viewController) + { + [[viewController view] removeFromSuperview]; + [aView addSubview:[viewController view]]; + } + [[self window] setContentView:aView]; + } + else if (viewController) + { + [[viewController view] removeFromSuperview]; + [[viewController view] setFrame:[contentView frame]]; + [[viewController view] setAutoresizingMask:[contentView autoresizingMask]] + [[self window] setContentView:[viewController view]]; + } + else + { + var view = [[CPView alloc] init]; + [view setFrame:[contentView frame]]; + [view setAutoresizingMask:[contentView autoresizingMask]]; + [[self window] setContentView:view] + } _viewControllerContainerView = aView; } @@ -343,21 +373,43 @@ - (void)setViewController:(CPViewController)aViewController { - var containerView = [self viewControllerContainerView] || [[self window] contentView], - view = [_viewController view], - frame = view ? [view frame] : [containerView bounds]; + if (!_viewController && !aViewController) + return; - [view removeFromSuperview]; - - _viewController = aViewController; - - view = [_viewController view]; - - if (view) + var containerView = [self viewControllerContainerView], + newView = [aViewController view]; + if (containerView) { - [view setFrame:frame]; - [containerView addSubview:view]; + var oldView = [_viewController view]; + if (oldView) + { + [newView setFrame:[oldView frame]]; + [newView setAutoresizingMask:[oldView autoresizingMask]]; + } + + if (oldView && newView) + [containerView replaceSubview:oldView with:newView]; + else if (oldView) + [oldView removeFromSuperview]; + else if (newView) + [containerView addSubview:newView]; } + else if (newView) + { + var contentView = [[self window] contentView]; + [newView setFrame:[contentView frame]]; + [newView setAutoresizingMask:[contentView autoresizingMask]]; + [[self window] setContentView:newView]; + } + else + { + var view = [[CPView alloc] init], + contentView = [[self window] contentView]; + [view setFrame:[contentView frame]]; + [view setAutoresizingMask:[contentView autoresizingMask]]; + [[self window] setContentView:view] + } + _viewController = aViewController; } - (CPViewController)viewController From f4347173722ed4a44ce5b4d1ced1261536fbffff Mon Sep 17 00:00:00 2001 From: Ilya Kulakov Date: Sun, 13 May 2012 09:47:44 +0700 Subject: [PATCH 035/109] Fix style. --- AppKit/CPWindowController.j | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/AppKit/CPWindowController.j b/AppKit/CPWindowController.j index ab438e5c2..0a2b7202a 100644 --- a/AppKit/CPWindowController.j +++ b/AppKit/CPWindowController.j @@ -336,25 +336,26 @@ if (!_viewControllerContainerView && !aView) return; - var viewController = [self viewController], + var viewControllerView = [[self viewController] view], contentView = [[self window] contentView]; + if (aView) { [aView setFrame:[contentView frame]]; [aView setAutoresizingMask:[contentView autoresizingMask]]; - if (viewController) + if (viewControllerView) { - [[viewController view] removeFromSuperview]; - [aView addSubview:[viewController view]]; + [viewControllerView removeFromSuperview]; + [aView addSubview:viewControllerView]; } [[self window] setContentView:aView]; } - else if (viewController) + else if (viewControllerView) { - [[viewController view] removeFromSuperview]; - [[viewController view] setFrame:[contentView frame]]; - [[viewController view] setAutoresizingMask:[contentView autoresizingMask]] - [[self window] setContentView:[viewController view]]; + [viewControllerView removeFromSuperview]; + [viewControllerView setFrame:[contentView frame]]; + [viewControllerView setAutoresizingMask:[contentView autoresizingMask]] + [[self window] setContentView:viewControllerView]; } else { @@ -363,6 +364,7 @@ [view setAutoresizingMask:[contentView autoresizingMask]]; [[self window] setContentView:view] } + _viewControllerContainerView = aView; } @@ -378,6 +380,7 @@ var containerView = [self viewControllerContainerView], newView = [aViewController view]; + if (containerView) { var oldView = [_viewController view]; @@ -409,6 +412,7 @@ [view setAutoresizingMask:[contentView autoresizingMask]]; [[self window] setContentView:view] } + _viewController = aViewController; } From e265d090344c11d8d94f36f2b908f1c0e1f337b7 Mon Sep 17 00:00:00 2001 From: Martin Carlberg Date: Fri, 6 Jul 2012 20:52:33 +0200 Subject: [PATCH 036/109] Fixed sortUsingDescriptors: so it can handle sort descriptors with a key path instead of just a key. Also added a test case for this. --- Foundation/CPArray/CPMutableArray.j | 4 ++-- Tests/Foundation/CPArrayTest.j | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Foundation/CPArray/CPMutableArray.j b/Foundation/CPArray/CPMutableArray.j index 308390429..629bb9382 100644 --- a/Foundation/CPArray/CPMutableArray.j +++ b/Foundation/CPArray/CPMutableArray.j @@ -485,7 +485,7 @@ var sortArrayUsingJSDescriptors = function(a, d) do { key = d[cn].k; - C1[key] = [A valueForKey:key]; + C1[key] = [A valueForKeyPath:key]; } while (cn--) c[aUID] = C1; @@ -506,7 +506,7 @@ var sortArrayUsingJSDescriptors = function(a, d) do { key = d[cn].k; - C2[key] = [B[i] valueForKey:key]; + C2[key] = [B[i] valueForKeyPath:key]; } while (cn--) c[bUID] = C2; diff --git a/Tests/Foundation/CPArrayTest.j b/Tests/Foundation/CPArrayTest.j index df51505f4..0c4e23cd4 100644 --- a/Tests/Foundation/CPArrayTest.j +++ b/Tests/Foundation/CPArrayTest.j @@ -657,6 +657,22 @@ [self assertTrue:s2[1] === a message:s2[1] + " is larger then " + a + " when sorting case insensitive"]; } +- (void)testSortUsingDescriptorsWithKeyPath +{ + var a = [CPDictionary dictionaryWithJSObject:{"a": "AB", "b": "ba"}], + b = [CPDictionary dictionaryWithJSObject:{"a": "aa", "b": "BB"}], + A = [CPDictionary dictionaryWithJSObject:{"x": a}], + B = [CPDictionary dictionaryWithJSObject:{"x": b}], + array = [A, B], + d1 = [[CPSortDescriptor sortDescriptorWithKey:@"x.b" ascending:YES selector:@selector(compare:)]], + d2 = [[CPSortDescriptor sortDescriptorWithKey:@"x.b" ascending:NO selector:@selector(compare:)]], + s1 = [array sortedArrayUsingDescriptors:d1], + s2 = [array sortedArrayUsingDescriptors:d2]; + + [self assertTrue:s1[1] === A message:s1[1] + " is larger then " + A + " when sorting ascending"]; + [self assertTrue:s2[0] === A message:s2[0] + " is larger then " + A + " when sorting descending"]; +} + @end @implementation AlwaysEqual : CPObject From 72cc494df43a1b8054022ff4a22e86da5fa3e990 Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Fri, 6 Jul 2012 16:02:40 -0700 Subject: [PATCH 037/109] fix bug showing the CPComboBox's list under popover --- AppKit/_CPPopUpList.j | 1 + 1 file changed, 1 insertion(+) diff --git a/AppKit/_CPPopUpList.j b/AppKit/_CPPopUpList.j index d42d87a18..b214c777d 100644 --- a/AppKit/_CPPopUpList.j +++ b/AppKit/_CPPopUpList.j @@ -140,6 +140,7 @@ var ListColumnIdentifier = @"1"; [panel setTitle:@""]; [panel setFloatingPanel:YES]; [panel setBecomesKeyOnlyIfNeeded:YES]; + [panel setLevel:CPStatusWindowLevel]; [panel setHasShadow:YES]; [panel setShadowStyle:CPMenuWindowShadowStyle]; [panel setDelegate:self]; From 1a639afd9927de201b2d7694a83740894fc622a1 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Sun, 8 Jul 2012 14:13:21 +0100 Subject: [PATCH 038/109] Typos. --- AppKit/CPView.j | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AppKit/CPView.j b/AppKit/CPView.j index 888123496..7031c06ec 100644 --- a/AppKit/CPView.j +++ b/AppKit/CPView.j @@ -769,7 +769,7 @@ var CPCurrentToolTip, } /*! - Called when the receiver is about to be remove one of its subviews. + Called when the receiver is about to remove one of its subviews. @param aView the view that will be removed */ - (void)willRemoveSubview:(CPView)aView @@ -840,7 +840,7 @@ var CPCurrentToolTip, /*! Sets the frame size of the receiver to the dimensions and origin of the provided rectangle in the coordinate system - of the superview. The method also posts an CPViewFrameDidChangeNotification to the notification + of the superview. The method also posts a CPViewFrameDidChangeNotification to the notification center if the receiver is configured to do so. If the frame is the same as the current frame, the method simply returns (and no notification is posted). @param aFrame the rectangle specifying the new origin and size of the receiver From 6dd44687c5ea0cafb2fdb0e02dbfa82bbb1b3c0a Mon Sep 17 00:00:00 2001 From: Ilya Kulakov Date: Mon, 9 Jul 2012 02:39:24 +0700 Subject: [PATCH 039/109] Implement *passingTest methods of CPIndexSet. --- Foundation/CPIndexSet.j | 144 ++++++++++++++++++++++++++++++ Tests/Foundation/CPIndexSetTest.j | 106 ++++++++++++++++++++++ 2 files changed, 250 insertions(+) diff --git a/Foundation/CPIndexSet.j b/Foundation/CPIndexSet.j index c0a13c3d4..c7210c8b7 100644 --- a/Foundation/CPIndexSet.j +++ b/Foundation/CPIndexSet.j @@ -549,6 +549,150 @@ } } +- (unsigned)indexPassingTest:(Function /*(int anIndex)*/)aPredicate +{ + return [self indexWithOptions:CPEnumerationNormal passingTest:aPredicate]; +} + +- (CPIndexSet)indexesPassingTest:(Function /*(int anIndex)*/)aPredicate +{ + return [self indexesWithOptions:CPEnumerationNormal passingTest:aPredicate]; +} + +- (unsigned)indexWithOptions:(CPEnumerationOptions)anOptions passingTest:(Function /*(int anIndex)*/)aPredicate +{ + if (!_count) + return CPNotFound; + + return [self indexInRange:CPMakeRange(0, _CPMaxRange(_ranges[_ranges.length - 1])) options:anOptions passingTest:aPredicate]; +} + +- (CPIndexSet)indexesWithOptions:(CPEnumerationOptions)anOptions passingTest:(Function /*(int anIndex)*/)aPredicate +{ + if (!_count) + return [CPIndexSet indexSet]; + + return [self indexesInRange:CPMakeRange(0, _CPMaxRange(_ranges[_ranges.length - 1])) options:anOptions passingTest:aPredicate]; +} + +- (unsigned)indexInRange:(CPRange)aRange options:(CPEnumerationOptions)anOptions passingTest:(Function /*(int anIndex)*/)aPredicate +{ + if (!_count || CPEmptyRange(aRange)) + return CPNotFound; + + var shouldStop = NO, + index, + stop, + increment; + + if (anOptions & CPEnumerationReverse) + { + index = _ranges.length - 1, + stop = -1, + increment = -1; + } + else + { + index = 0; + stop = _ranges.length; + increment = 1; + } + + for (; index !== stop; index += increment) + { + var range = _ranges[index]; + + var rangeIndex, + rangeStop, + rangeIncrement; + + if (anOptions & CPEnumerationReverse) + { + rangeIndex = _CPMaxRange(range) - 1; + rangeStop = range.location - 1; + rangeIncrement = -1; + } + else + { + rangeIndex = range.location; + rangeStop = _CPMaxRange(range); + rangeIncrement = 1; + } + + for (; rangeIndex !== rangeStop; rangeIndex += rangeIncrement) + { + if (CPLocationInRange(rangeIndex, aRange)) + { + if (aPredicate(rangeIndex, AT_REF(shouldStop))) + return rangeIndex; + + if (shouldStop) + return CPNotFound; + } + } + } + return CPNotFound; +} + +- (CPIndexSet)indexesInRange:(CPRange)aRange options:(CPEnumerationOptions)anOptions passingTest:(Function /*(int anIndex)*/)aPredicate +{ + if (!_count || CPEmptyRange(aRange)) + return [CPIndexSet indexSet]; + + var shouldStop = NO, + index, + stop, + increment; + + if (anOptions & CPEnumerationReverse) + { + index = _ranges.length - 1, + stop = -1, + increment = -1; + } + else + { + index = 0; + stop = _ranges.length; + increment = 1; + } + + var indexesPassingTest = [CPMutableIndexSet indexSet]; + for (; index !== stop; index += increment) + { + var range = _ranges[index]; + + var rangeIndex, + rangeStop, + rangeIncrement; + + if (anOptions & CPEnumerationReverse) + { + rangeIndex = _CPMaxRange(range) - 1; + rangeStop = range.location - 1; + rangeIncrement = -1; + } + else + { + rangeIndex = range.location; + rangeStop = _CPMaxRange(range); + rangeIncrement = 1; + } + + for (; rangeIndex !== rangeStop; rangeIndex += rangeIncrement) + { + if (CPLocationInRange(rangeIndex, aRange)) + { + if (aPredicate(rangeIndex, AT_REF(shouldStop))) + [indexesPassingTest addIndex:rangeIndex]; + + if (shouldStop) + return indexesPassingTest; + } + } + } + return indexesPassingTest; +} @end diff --git a/Tests/Foundation/CPIndexSetTest.j b/Tests/Foundation/CPIndexSetTest.j index 654116773..fe1831a3d 100644 --- a/Tests/Foundation/CPIndexSetTest.j +++ b/Tests/Foundation/CPIndexSetTest.j @@ -543,6 +543,112 @@ function descriptionWithoutEntity(aString) [self assert:[0, 3] equals:visitedIndexes message:"enumeration should stop after 2 results"]; } +- (void)testIndexPassingTest +{ + var set0 = [CPMutableIndexSet indexSet], + index = [set0 indexPassingTest:function(anIndex) + { + return anIndex % 2 === 0; + }]; + [self assertTrue:index === CPNotFound message:"must be equal to CPNotFound, was " + index]; + + [set0 addIndexesInRange:CPMakeRange(1, 10)]; + index = [set0 indexPassingTest:function(anIndex) + { + return anIndex % 2 === 0; + }]; + [self assertTrue:index === 2 message:"index must be equal to 2"]; + + index = [set0 indexPassingTest:function(anIndex) + { + return anIndex === 1000; + }]; + [self assertTrue:index === CPNotFound message:"must be equal to CPNotFound, was " + index]; +} + +- (void)testIndexesPassingTest +{ + var set0 = [CPMutableIndexSet indexSet], + set1 = [CPMutableIndexSet indexSet], + indexes = [set0 indexesPassingTest:function(anIndex) + { + return anIndex % 2 === 0; + }]; + + [self assertTrue:[indexes isEqualToIndexSet:set1] message:"must be equal to " + [set1 description] + ", was " + [indexes description]]; + + [set0 addIndexesInRange:CPMakeRange(1, 10)]; + [set1 addIndex:2]; + [set1 addIndex:4]; + [set1 addIndex:6]; + [set1 addIndex:8]; + [set1 addIndex:10]; + indexes = [set0 indexesPassingTest:function(anIndex) + { + return anIndex % 2 === 0; + }]; + [self assertTrue:[indexes isEqualToIndexSet:set1] message:"must be equal to " + [set1 description] + ", was " + [indexes description]]; +} + +- (void)testIndexPassingTest_options +{ + var set0 = [CPMutableIndexSet indexSetWithIndexesInRange:CPMakeRange(1, 10)], + index = [set0 indexWithOptions:CPEnumerationReverse + passingTest:function(anIndex) + { + return anIndex % 2 === 0; + }]; + [self assertTrue:index === 10 message:"index must be equal to 10"]; +} + +- (void)testIndexesPassingTest_options +{ + var set0 = [CPMutableIndexSet indexSetWithIndexesInRange:CPMakeRange(1, 5)], + set1 = [CPMutableIndexSet indexSet], + visitedIndexes = [], + indexes = [set0 indexesWithOptions:CPEnumerationReverse + passingTest:function(anIndex) + { + visitedIndexes.push(anIndex); + return anIndex % 2 === 0; + }]; + [set1 addIndex:2]; + [set1 addIndex:4]; + + [self assertTrue:[indexes isEqualToIndexSet:set1] message:"must be equal to " + [set1 description] + ", was " + [indexes description]]; + [self assert:[5, 4, 3, 2, 1] equals:visitedIndexes message:"enumeration should be done in reverse"]; +} + +- (void)testIndexPassingTest_options_range +{ + var set0 = [CPMutableIndexSet indexSetWithIndexesInRange:CPMakeRange(1, 10)], + index = [set0 indexInRange:CPMakeRange(3, 4) + options:CPEnumerationReverse + passingTest:function(anIndex) + { + return anIndex % 2 === 0; + }]; + [self assertTrue:index === 6 message:"index must be equal to 6"]; +} + +- (void)testIndexesPassingTest_options_range +{ + var set0 = [CPMutableIndexSet indexSetWithIndexesInRange:CPMakeRange(1, 5)], + set1 = [CPMutableIndexSet indexSet], + visitedIndexes = [], + indexes = [set0 indexesInRange:CPMakeRange(3, 4) + options:CPEnumerationReverse + passingTest:function(anIndex) + { + visitedIndexes.push(anIndex); + return anIndex % 2 === 0; + }]; + [set1 addIndex:4]; + + [self assertTrue:[indexes isEqualToIndexSet:set1] message:"must be equal to " + [set1 description] + ", was " + [indexes description]]; + [self assert:[5, 4, 3] equals:visitedIndexes message:"enumeration should be done in reverse"]; +} + - (void)tearDown { _set = nil; From 09e235eb60fba5df8ee7a1000d8d0bf57ddf75df Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Sun, 8 Jul 2012 21:26:47 +0100 Subject: [PATCH 040/109] Refs #1603. Optimise slightly. --- Foundation/CPIndexSet.j | 30 ++++++++++++++---------------- Foundation/CPRange.h | 2 ++ Foundation/CPRange.j | 10 ++-------- 3 files changed, 18 insertions(+), 24 deletions(-) diff --git a/Foundation/CPIndexSet.j b/Foundation/CPIndexSet.j index c7210c8b7..1d3dd8060 100644 --- a/Foundation/CPIndexSet.j +++ b/Foundation/CPIndexSet.j @@ -315,7 +315,7 @@ var range = _ranges[rangeIndex]; // Check if it's actually in this range. - if (CPLocationInRange(anIndex, range)) + if (_CPLocationInRange(anIndex, range)) return anIndex; // If not, it must be the first element of this range. @@ -346,7 +346,7 @@ var range = _ranges[rangeIndex]; // Check if it's actually in this range. - if (CPLocationInRange(anIndex, range)) + if (_CPLocationInRange(anIndex, range)) return anIndex; // If not, it must be the first element of this range. @@ -495,7 +495,7 @@ - (void)enumerateIndexesInRange:(CPRange)enumerationRange options:(CPEnumerationOptions)options usingBlock:(Function /*(int idx, @ref BOOL stop)*/)aFunction { - if (!_count || CPEmptyRange(enumerationRange)) + if (!_count || _CPEmptyRange(enumerationRange)) return; var shouldStop = NO, @@ -539,7 +539,7 @@ for (; rangeIndex !== rangeStop; rangeIndex += rangeIncrement) { - if (CPLocationInRange(rangeIndex, enumerationRange)) + if (_CPLocationInRange(rangeIndex, enumerationRange)) { aFunction(rangeIndex, AT_REF(shouldStop)); if (shouldStop) @@ -564,7 +564,7 @@ if (!_count) return CPNotFound; - return [self indexInRange:CPMakeRange(0, _CPMaxRange(_ranges[_ranges.length - 1])) options:anOptions passingTest:aPredicate]; + return [self indexInRange:_CPMakeRange(0, _CPMaxRange(_ranges[_ranges.length - 1])) options:anOptions passingTest:aPredicate]; } - (CPIndexSet)indexesWithOptions:(CPEnumerationOptions)anOptions passingTest:(Function /*(int anIndex)*/)aPredicate @@ -572,12 +572,12 @@ if (!_count) return [CPIndexSet indexSet]; - return [self indexesInRange:CPMakeRange(0, _CPMaxRange(_ranges[_ranges.length - 1])) options:anOptions passingTest:aPredicate]; + return [self indexesInRange:_CPMakeRange(0, _CPMaxRange(_ranges[_ranges.length - 1])) options:anOptions passingTest:aPredicate]; } - (unsigned)indexInRange:(CPRange)aRange options:(CPEnumerationOptions)anOptions passingTest:(Function /*(int anIndex)*/)aPredicate { - if (!_count || CPEmptyRange(aRange)) + if (!_count || _CPEmptyRange(aRange)) return CPNotFound; var shouldStop = NO, @@ -600,9 +600,8 @@ for (; index !== stop; index += increment) { - var range = _ranges[index]; - - var rangeIndex, + var range = _ranges[index], + rangeIndex, rangeStop, rangeIncrement; @@ -621,7 +620,7 @@ for (; rangeIndex !== rangeStop; rangeIndex += rangeIncrement) { - if (CPLocationInRange(rangeIndex, aRange)) + if (_CPLocationInRange(rangeIndex, aRange)) { if (aPredicate(rangeIndex, AT_REF(shouldStop))) return rangeIndex; @@ -636,7 +635,7 @@ - (CPIndexSet)indexesInRange:(CPRange)aRange options:(CPEnumerationOptions)anOptions passingTest:(Function /*(int anIndex)*/)aPredicate { - if (!_count || CPEmptyRange(aRange)) + if (!_count || _CPEmptyRange(aRange)) return [CPIndexSet indexSet]; var shouldStop = NO, @@ -660,9 +659,8 @@ var indexesPassingTest = [CPMutableIndexSet indexSet]; for (; index !== stop; index += increment) { - var range = _ranges[index]; - - var rangeIndex, + var range = _ranges[index], + rangeIndex, rangeStop, rangeIncrement; @@ -681,7 +679,7 @@ for (; rangeIndex !== rangeStop; rangeIndex += rangeIncrement) { - if (CPLocationInRange(rangeIndex, aRange)) + if (_CPLocationInRange(rangeIndex, aRange)) { if (aPredicate(rangeIndex, AT_REF(shouldStop))) [indexesPassingTest addIndex:rangeIndex]; diff --git a/Foundation/CPRange.h b/Foundation/CPRange.h index f20a08f7a..ffd15058b 100644 --- a/Foundation/CPRange.h +++ b/Foundation/CPRange.h @@ -23,3 +23,5 @@ #define _CPMaxRange(aRange) ((aRange).location + (aRange).length) #define _CPMakeRange(aLocation, aLength) { location:(aLocation), length:aLength } #define _CPMakeRangeCopy(aRange) { location:(aRange).location, length:(aRange).length } +#define _CPEmptyRange(aRange) ((aRange).length === 0) +#define _CPLocationInRange(aLocation, aRange) (((aLocation) >= (aRange).location) && ((aLocation) < _CPMaxRange(aRange))) diff --git a/Foundation/CPRange.j b/Foundation/CPRange.j index d96bbb834..f9f09a3ae 100755 --- a/Foundation/CPRange.j +++ b/Foundation/CPRange.j @@ -52,10 +52,7 @@ _function(CPMakeRangeCopy(aRange)) @group CPRange @return YES if the range is empty */ -function CPEmptyRange(aRange) -{ - return aRange.length === 0; -} +_function(CPEmptyRange(aRange)) /*! Finds the range maximum. (\c location + length) @@ -83,10 +80,7 @@ function CPEqualRanges(lhsRange, rhsRange) @group CPRange @return BOOL \c YES if \c aLocation is within the range */ -function CPLocationInRange(aLocation, aRange) -{ - return (aLocation >= aRange.location) && (aLocation < CPMaxRange(aRange)); -} +_function(CPLocationInRange(aLocation, aRange)) /*! Creates a new range with the minimum \c location and a \c length From 1154a629a7e7a05ea40bdd1d0351f7687658144c Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Mon, 9 Jul 2012 11:11:37 +0100 Subject: [PATCH 041/109] Code formatting. --- Objective-J/Debug.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Objective-J/Debug.js b/Objective-J/Debug.js index b6f51acb9..58ec0d48f 100644 --- a/Objective-J/Debug.js +++ b/Objective-J/Debug.js @@ -117,7 +117,7 @@ GLOBAL(objj_backtrace_decorator) = function(msgSend) // make sure to always pop objj_backtrace.pop(); } - } + }; } GLOBAL(objj_supress_exceptions_decorator) = function(msgSend) @@ -135,7 +135,7 @@ GLOBAL(objj_supress_exceptions_decorator) = function(msgSend) // print the exception and backtrace CPLog.warn("Exception " + anException + " in " + objj_debug_message_format(aReceiver, aSelector)); } - } + }; } // type checking decorator @@ -148,7 +148,7 @@ GLOBAL(objj_typecheck_decorator) = function(msgSend) return function(aReceiverOrSuper, aSelector) { var aReceiver = aReceiverOrSuper && (aReceiverOrSuper.receiver || aReceiverOrSuper); - + if (!aReceiver) return msgSend.apply(NULL, arguments); @@ -170,7 +170,7 @@ GLOBAL(objj_typecheck_decorator) = function(msgSend) } } } - + var result = msgSend.apply(NULL, arguments); try @@ -189,14 +189,14 @@ GLOBAL(objj_typecheck_decorator) = function(msgSend) } return result; - } + }; } // type checking logic: GLOBAL(objj_debug_typecheck) = function(expectedType, object) { var objjClass; - + if (!expectedType) { return; @@ -230,7 +230,7 @@ GLOBAL(objj_debug_typecheck) = function(expectedType, object) { return; } - + var actualType; if (object === NULL) actualType = "null"; From 660c98d6e5a4cf9678182eae48842f72ef3ae6e2 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Mon, 9 Jul 2012 12:20:47 +0100 Subject: [PATCH 042/109] Use theme system for CPColorWell bordered state. This is more consistent with the rest of Cappuccino and prepares for theming support. --- AppKit/CPColorWell.j | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/AppKit/CPColorWell.j b/AppKit/CPColorWell.j index 9b86c4c6c..bcca9f133 100644 --- a/AppKit/CPColorWell.j +++ b/AppKit/CPColorWell.j @@ -98,25 +98,25 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv object:[CPColorPanel sharedColorPanel]]; } +/*! + Sets whether the color well is bordered. +*/ +- (void)setBordered:(BOOL)shouldBeBordered +{ + if (shouldBeBordered) + [self setThemeState:CPThemeStateBordered]; + else + [self unsetThemeState:CPThemeStateBordered]; + + [self drawWellInside:CGRectInset([self bounds], 3.0, 3.0)]; +} + /*! Returns whether the color well is bordered */ - (BOOL)isBordered { - return _bordered; -} - -/*! - Sets the color well's current color. -*/ -- (void)setBordered:(BOOL)bordered -{ - if (_bordered == bordered) - return; - - _bordered = bordered; - - [self drawWellInside:CGRectInset([self bounds], 3.0, 3.0)]; + return [self hasThemeState:CPThemeStateBordered]; } // Managing Color From Color Wells @@ -336,7 +336,7 @@ var CPColorWellColorKey = "CPColorWellColorKey", if (self) { _active = NO; - _bordered = [aCoder decodeBoolForKey:CPColorWellBorderedKey]; + [self setBordered:[aCoder decodeBoolForKey:CPColorWellBorderedKey]]; _color = [aCoder decodeObjectForKey:CPColorWellColorKey]; [self drawBezelWithHighlight:NO]; @@ -366,7 +366,7 @@ var CPColorWellColorKey = "CPColorWellColorKey", _subviews = actualSubviews; [aCoder encodeObject:_color forKey:CPColorWellColorKey]; - [aCoder encodeObject:_bordered forKey:CPColorWellBorderedKey]; + [aCoder encodeObject:[self isBordered] forKey:CPColorWellBorderedKey]; } @end From 4390bea31fc8b39d31f84bdbb940a3ee20155bbb Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Mon, 9 Jul 2012 13:01:44 +0100 Subject: [PATCH 043/109] Simplify CPColorWell drawing and mouse handling. Use standard CPControl mouse handling and highlighting. Switch to setNeedsLayout based drawing and hook up first themed property. --- AppKit/CPColorWell.j | 70 +++++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/AppKit/CPColorWell.j b/AppKit/CPColorWell.j index bcca9f133..de721243f 100644 --- a/AppKit/CPColorWell.j +++ b/AppKit/CPColorWell.j @@ -54,6 +54,17 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv return [super _binderClassForBinding:theBinding]; } ++ (CPString)defaultThemeClass +{ + return @"colorwell"; +} + ++ (id)themeAttributes +{ + return [CPDictionary dictionaryWithObjects:[_CGInsetMakeZero(), [CPNull null], _CGInsetMake(3.0, 3.0, 3.0, 3.0), _CGInsetMakeZero(), [CPNull null]] + forKeys:[@"bezel-inset", @"bezel-color", @"content-inset", @"content-border-inset", @"content-border-color"]]; +} + - (void)_reverseSetBinding { var binderClass = [[self class] _binderClassForBinding:CPValueBinding], @@ -72,9 +83,6 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv _bordered = YES; _color = [CPColor whiteColor]; - [self drawBezelWithHighlight:NO]; - [self drawWellInside:CGRectInset([self bounds], 3.0, 3.0)]; - [self _registerForNotifications]; } @@ -107,8 +115,6 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv [self setThemeState:CPThemeStateBordered]; else [self unsetThemeState:CPThemeStateBordered]; - - [self drawWellInside:CGRectInset([self bounds], 3.0, 3.0)]; } /*! @@ -139,7 +145,7 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv _color = aColor; - [self drawWellInside:CGRectInset([self bounds], 3.0, 3.0)]; + [self setNeedsLayout]; } /*! @@ -202,12 +208,6 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv return _active; } -// Drawing a Color Well - -- (void)drawBezelWithHighlight:(BOOL)shouldHighlight -{ -} - /*! Draws the colored area inside the color well without borders. @param aRect the location at which to draw @@ -245,27 +245,11 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv [self deactivate]; } -- (void)mouseDown:(CPEvent)anEvent +- (void)stopTracking:(CGPoint)lastPoint at:(CGPoint)aPoint mouseIsUp:(BOOL)mouseIsUp { - if (![self isEnabled]) - return; + [self highlight:NO]; - [self drawBezelWithHighlight:YES]; -} - -- (void)mouseDragged:(CPEvent)anEvent -{ - if (![self isEnabled]) - return; - - [self drawBezelWithHighlight:CGRectContainsPoint([self bounds], [self convertPoint:[anEvent locationInWindow] fromView:nil])]; -} - -- (void)mouseUp:(CPEvent)anEvent -{ - [self drawBezelWithHighlight:NO]; - - if (!CGRectContainsPoint([self bounds], [self convertPoint:[anEvent locationInWindow] fromView:nil]) || ![self isEnabled]) + if (!mouseIsUp || !CGRectContainsPoint([self bounds], aPoint) || ![self isEnabled]) return; [self activate:YES]; @@ -276,6 +260,27 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv [colorPanel orderFront:self]; } +- (CGRect)contentRectForBounds:(CGRect)bounds +{ + var contentInset = [self currentValueForThemeAttribute:@"content-inset"]; + + if (_CGInsetIsEmpty(contentInset)) + return bounds; + + bounds = _CGRectMakeCopy(bounds); + bounds.origin.x += contentInset.left; + bounds.origin.y += contentInset.top; + bounds.size.width -= contentInset.left + contentInset.right; + bounds.size.height -= contentInset.top + contentInset.bottom; + + return bounds; +} + +- (void)layoutSubviews +{ + [self drawWellInside:[self contentRectForBounds:[self bounds]]]; +} + @end @implementation CPColorWellValueBinder : CPBinder @@ -339,9 +344,6 @@ var CPColorWellColorKey = "CPColorWellColorKey", [self setBordered:[aCoder decodeBoolForKey:CPColorWellBorderedKey]]; _color = [aCoder decodeObjectForKey:CPColorWellColorKey]; - [self drawBezelWithHighlight:NO]; - [self drawWellInside:CGRectInset([self bounds], 3.0, 3.0)]; - [self _registerForNotifications]; } From f398185aada48e8537174195c8716d77113c31c3 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Mon, 9 Jul 2012 14:24:21 +0100 Subject: [PATCH 044/109] CGRectInsetByInset geometry function. This operation appears again and again in Cappuccino. --- AppKit/CPColorWell.j | 11 +---------- AppKit/CoreGraphics/CGGeometry.h | 13 +++++++++++++ AppKit/CoreGraphics/CGGeometry.j | 8 ++++++++ 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/AppKit/CPColorWell.j b/AppKit/CPColorWell.j index de721243f..aa8fbe705 100644 --- a/AppKit/CPColorWell.j +++ b/AppKit/CPColorWell.j @@ -264,16 +264,7 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv { var contentInset = [self currentValueForThemeAttribute:@"content-inset"]; - if (_CGInsetIsEmpty(contentInset)) - return bounds; - - bounds = _CGRectMakeCopy(bounds); - bounds.origin.x += contentInset.left; - bounds.origin.y += contentInset.top; - bounds.size.width -= contentInset.left + contentInset.right; - bounds.size.height -= contentInset.top + contentInset.bottom; - - return bounds; + return _CGRectInsetByInset(bounds, contentInset); } - (void)layoutSubviews diff --git a/AppKit/CoreGraphics/CGGeometry.h b/AppKit/CoreGraphics/CGGeometry.h index dbfef2039..f66a82d32 100644 --- a/AppKit/CoreGraphics/CGGeometry.h +++ b/AppKit/CoreGraphics/CGGeometry.h @@ -45,6 +45,19 @@ #define _CGRectOffset(aRect, dX, dY) _CGRectMake(aRect.origin.x + dX, aRect.origin.y + dY, aRect.size.width, aRect.size.height) #define _CGRectInset(aRect, dX, dY) _CGRectMake(aRect.origin.x + dX, aRect.origin.y + dY, aRect.size.width - 2 * dX, aRect.size.height - 2 * dY) +/*! + Slow: + + var theInsetRect = _CGRectInsetByInset([self bounds], [self contentInset]); + + Fast: + + var aRect = [self bounds], + anInset = [self contentInset], + theInsetRect = _CGRectInsetByInset(aRect, anInset); +*/ +#define _CGRectInsetByInset(aRect, anInset) _CGRectMake((aRect).origin.x + (anInset).left, (aRect).origin.y + (anInset).top, (aRect).size.width - (anInset).left - (anInset).right, (aRect).size.height - (anInset).top - (anInset).bottom) + #define _CGRectGetHeight(aRect) (aRect.size.height) #define _CGRectGetMaxX(aRect) (aRect.origin.x + aRect.size.width) #define _CGRectGetMaxY(aRect) (aRect.origin.y + aRect.size.height) diff --git a/AppKit/CoreGraphics/CGGeometry.j b/AppKit/CoreGraphics/CGGeometry.j index 20775a1a8..957662a00 100644 --- a/AppKit/CoreGraphics/CGGeometry.j +++ b/AppKit/CoreGraphics/CGGeometry.j @@ -241,6 +241,14 @@ function CGRectUnion(lhsRect, rhsRect) return _CGRectMake(minX, minY, maxX - minX, maxY - minY); } +/*! + Returns the specified rectangle inset by the given CGInset as a new rectangle. + @param aRect the rect to inset + @param anInset a CGInset to inset by + @return CGRect aRect inset by anInset +*/ +_function(CGRectInsetByInset(aRect, anInset)); + function CGPointFromString(aString) { var comma = aString.indexOf(','); From f6514f3c64dad5b013d8079fc99fc38e9b238971 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Mon, 9 Jul 2012 15:57:24 +0100 Subject: [PATCH 045/109] Fix CPColorPanel errors and code style. --- AppKit/CPColorPanel.j | 73 ++++++++++++++++++++-------------------- AppKit/CPColorPicker.j | 76 ++++++++++++++++++++++-------------------- 2 files changed, 77 insertions(+), 72 deletions(-) diff --git a/AppKit/CPColorPanel.j b/AppKit/CPColorPanel.j index d9fe9bbf7..25ee0ddda 100644 --- a/AppKit/CPColorPanel.j +++ b/AppKit/CPColorPanel.j @@ -144,7 +144,7 @@ CPColorPickerViewHeight = 370; - (void)setColor:(CPColor)aColor { _color = aColor; - [_previewView setBackgroundColor: _color]; + [_previewView setBackgroundColor:_color]; [CPApp sendAction:@selector(changeColor:) to:nil from:self]; @@ -299,7 +299,7 @@ CPColorPickerViewHeight = 370; bounds = [contentView bounds]; _toolbar = [[CPView alloc] initWithFrame:CGRectMake(0, 6, CGRectGetWidth(bounds), TOOLBAR_HEIGHT)]; - [_toolbar setAutoresizingMask: CPViewWidthSizable]; + [_toolbar setAutoresizingMask:CPViewWidthSizable]; var totalToolbarWidth = count * ICON_WIDTH + (count - 1) * ICON_PADDING, leftOffset = (CGRectGetWidth(bounds) - totalToolbarWidth) / 2.0, @@ -339,7 +339,7 @@ CPColorPickerViewHeight = 370; [previewBox addSubview:_previewView]; - var _previewLabel = [[CPTextField alloc] initWithFrame: CPRectMake(10, TOOLBAR_HEIGHT + 10, 60, 15)]; + var _previewLabel = [[CPTextField alloc] initWithFrame:CGRectMake(10, TOOLBAR_HEIGHT + 10, 60, 15)]; [_previewLabel setStringValue:"Preview:"]; [_previewLabel setTextColor:[CPColor blackColor]]; [_previewLabel setAlignment:CPRightTextAlignment]; @@ -357,14 +357,14 @@ CPColorPickerViewHeight = 370; [swatchBox addSubview:_swatchView]; - var _swatchLabel = [[CPTextField alloc] initWithFrame: CPRectMake(10, TOOLBAR_HEIGHT + 8 + PREVIEW_HEIGHT + 6, 60, 15)]; - [_swatchLabel setStringValue: "Swatches:"]; + var _swatchLabel = [[CPTextField alloc] initWithFrame:CGRectMake(10, TOOLBAR_HEIGHT + 8 + PREVIEW_HEIGHT + 6, 60, 15)]; + [_swatchLabel setStringValue:"Swatches:"]; [_swatchLabel setTextColor:[CPColor blackColor]]; [_swatchLabel setAlignment:CPRightTextAlignment]; - var opacityLabel = [[CPTextField alloc] initWithFrame: CPRectMake(10, TOOLBAR_HEIGHT + PREVIEW_HEIGHT + 35, 60, 20)]; - [opacityLabel setStringValue: "Opacity:"]; + var opacityLabel = [[CPTextField alloc] initWithFrame:CGRectMake(10, TOOLBAR_HEIGHT + PREVIEW_HEIGHT + 35, 60, 20)]; + [opacityLabel setStringValue:"Opacity:"]; [opacityLabel setTextColor:[CPColor blackColor]]; [opacityLabel setAlignment:CPRightTextAlignment]; @@ -389,7 +389,7 @@ CPColorPickerViewHeight = 370; _action = nil; _activePicker = nil; - [_previewView setBackgroundColor: _color]; + [_previewView setBackgroundColor:_color]; if (buttonForLater) [self _setPicker:buttonForLater]; @@ -407,12 +407,13 @@ CPColorPickerViewHeight = 370; CPColorDragType = "CPColorDragType"; + var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; /* @ignore */ @implementation _CPColorPanelSwatches : CPView { - CPView[] _swatches; + CPArray _swatches; CPColor _dragColor; CPColorPanel _colorPanel; CPCookie _swatchCookie; @@ -422,13 +423,13 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; { self = [super initWithFrame:aFrame]; - [self setBackgroundColor: [CPColor grayColor]]; + [self setBackgroundColor:[CPColor grayColor]]; [self registerForDraggedTypes:[CPArray arrayWithObjects:CPColorDragType]]; var whiteColor = [CPColor whiteColor]; - _swatchCookie = [[CPCookie alloc] initWithName: CPColorPanelSwatchesCookie]; + _swatchCookie = [[CPCookie alloc] initWithName:CPColorPanelSwatchesCookie]; var colorList = [self startingColorList]; _swatches = []; @@ -436,15 +437,15 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; for (var i = 0; i < 50; i++) { // FIXME: http://280north.lighthouseapp.com/projects/13294-cappuccino/tickets/25-implement-cpbox - var view = [[CPView alloc] initWithFrame: CPRectMake(13 * i + 1, 1, 12, 12)], + var view = [[CPView alloc] initWithFrame:CPRectMake(13 * i + 1, 1, 12, 12)], fillView = [[CPView alloc] initWithFrame:CGRectInset([view bounds], 1.0, 1.0)]; [view setBackgroundColor:whiteColor]; - [fillView setBackgroundColor: (i < colorList.length) ? colorList[i] : whiteColor]; + [fillView setBackgroundColor:(i < colorList.length) ? colorList[i] : whiteColor]; [view addSubview:fillView]; - [self addSubview: view]; + [self addSubview:view]; _swatches.push(view); } @@ -461,7 +462,7 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; { var cookieValue = [_swatchCookie value]; - if (cookieValue == "") + if (!cookieValue) { return [ [CPColor blackColor], @@ -480,7 +481,7 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; result = []; for (var i = 0; i < cookieValue.length; i++) - result.push([CPColor colorWithHexString: cookieValue[i]]); + result.push([CPColor colorWithHexString:cookieValue[i]]); return result; } @@ -495,7 +496,7 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; var future = new Date(); future.setYear(2019); - [_swatchCookie setValue: JSON.stringify(result) expires:future domain: nil]; + [_swatchCookie setValue:JSON.stringify(result) expires:future domain:nil]; } - (void)setColorPanel:(CPColorPanel)panel @@ -528,7 +529,7 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; if (!CGRectContainsPoint(bounds, point) || point.x > [self bounds].size.width - 1 || point.x < 1) return NO; - [_colorPanel setColor: [self colorAtIndex:FLOOR(point.x / 13)] updatePicker: YES]; + [_colorPanel setColor:[self colorAtIndex:FLOOR(point.x / 13)] updatePicker:YES]; } - (void)mouseDragged:(CPEvent)anEvent @@ -545,10 +546,10 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; // FIXME: http://280north.lighthouseapp.com/projects/13294-cappuccino/tickets/25-implement-cpbox _dragColor = [[swatch subviews][0] backgroundColor]; - var bounds = CPRectCreateCopy([swatch bounds]); + var bounds = CGRectMakeCopy([swatch bounds]); // FIXME: http://280north.lighthouseapp.com/projects/13294-cappuccino/tickets/25-implement-cpbox - var dragView = [[CPView alloc] initWithFrame: bounds], + var dragView = [[CPView alloc] initWithFrame:bounds], dragFillView = [[CPView alloc] initWithFrame:CGRectInset(bounds, 1.0, 1.0)]; [dragView setBackgroundColor:[CPColor blackColor]]; @@ -556,13 +557,13 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; [dragView addSubview:dragFillView]; - [self dragView: dragView - at: CPPointMake(point.x - bounds.size.width / 2.0, point.y - bounds.size.height / 2.0) - offset: CPPointMake(0.0, 0.0) - event: anEvent - pasteboard: nil - source: self - slideBack: YES]; + [self dragView:dragView + at:CGPointMake(point.x - bounds.size.width / 2.0, point.y - bounds.size.height / 2.0) + offset:CGPointMake(0.0, 0.0) + event:anEvent + pasteboard:nil + source:self + slideBack:YES]; } - (void)pasteboard:(CPPasteboard)aPasteboard provideDataForType:(CPString)aType @@ -580,7 +581,7 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; if (![pasteboard availableTypeFromArray:[CPColorDragType]] || location.x > [self bounds].size.width - 1 || location.x < 1) return NO; - [self setColor:[CPKeyedUnarchiver unarchiveObjectWithData:[pasteboard dataForType:CPColorDragType]] atIndex: FLOOR(location.x / 13)]; + [self setColor:[CPKeyedUnarchiver unarchiveObjectWithData:[pasteboard dataForType:CPColorDragType]] atIndex:FLOOR(location.x / 13)]; } @end @@ -635,7 +636,7 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; var bounds = CPRectMake(0, 0, 15, 15); // FIXME: http://280north.lighthouseapp.com/projects/13294-cappuccino/tickets/25-implement-cpbox - var dragView = [[CPView alloc] initWithFrame: bounds], + var dragView = [[CPView alloc] initWithFrame:bounds], dragFillView = [[CPView alloc] initWithFrame:CGRectInset(bounds, 1.0, 1.0)]; [dragView setBackgroundColor:[CPColor blackColor]]; @@ -643,13 +644,13 @@ var CPColorPanelSwatchesCookie = "CPColorPanelSwatchesCookie"; [dragView addSubview:dragFillView]; - [self dragView: dragView - at: CPPointMake(point.x - bounds.size.width / 2.0, point.y - bounds.size.height / 2.0) - offset: CPPointMake(0.0, 0.0) - event: anEvent - pasteboard: nil - source: self - slideBack: YES]; + [self dragView:dragView + at:CPPointMake(point.x - bounds.size.width / 2.0, point.y - bounds.size.height / 2.0) + offset:CPPointMake(0.0, 0.0) + event:anEvent + pasteboard:nil + source:self + slideBack:YES]; } - (void)pasteboard:(CPPasteboard)aPasteboard provideDataForType:(CPString)aType diff --git a/AppKit/CPColorPicker.j b/AppKit/CPColorPicker.j index 032f78dc4..7fe4e7c09 100644 --- a/AppKit/CPColorPicker.j +++ b/AppKit/CPColorPicker.j @@ -44,10 +44,11 @@ */ - (id)initWithPickerMask:(int)aMask colorPanel:(CPColorPanel)aPanel { - self = [super init]; - - _panel = aPanel; - _mask = aMask; + if (self = [super init]) + { + _panel = aPanel; + _mask = aMask; + } return self; } @@ -76,7 +77,6 @@ */ - (void)setMode:(CPColorPanelMode)mode { - return; } /*! @@ -85,7 +85,6 @@ */ - (void)setColor:(CPColor)aColor { - return; } @end @@ -110,12 +109,12 @@ - (id)initView { - aFrame = CPRectMake(0, 0, CPColorPickerViewWidth, CPColorPickerViewHeight); + var aFrame = _CGRectMake(0, 0, CPColorPickerViewWidth, CPColorPickerViewHeight); _pickerView = [[CPView alloc] initWithFrame:aFrame]; [_pickerView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable]; - _brightnessSlider = [[CPSlider alloc] initWithFrame:CGRectMake(0, (aFrame.size.height - 34), aFrame.size.width, 15)]; + _brightnessSlider = [[CPSlider alloc] initWithFrame:_CGRectMake(0, (aFrame.size.height - 34), aFrame.size.width, 15)]; [_brightnessSlider setValue:15.0 forThemeAttribute:@"track-width"]; [_brightnessSlider setValue:[CPColor colorWithPatternImage:[[CPImage alloc] initWithContentsOfFile:[[CPBundle bundleForClass:[CPColorPicker class]] pathForResource:@"brightness_bar.png"]]] forThemeAttribute:@"track-color"]; @@ -128,9 +127,9 @@ [_brightnessSlider setAction:@selector(brightnessSliderDidChange:)]; [_brightnessSlider setAutoresizingMask:CPViewWidthSizable | CPViewMinYMargin]; - _hueSaturationView = [[__CPColorWheel alloc] initWithFrame: CPRectMake(0, 0, aFrame.size.width, aFrame.size.height - 38)]; - [_hueSaturationView setDelegate: self]; - [_hueSaturationView setAutoresizingMask: (CPViewWidthSizable | CPViewHeightSizable)]; + _hueSaturationView = [[__CPColorWheel alloc] initWithFrame:_CGRectMake(0, 0, aFrame.size.width, aFrame.size.height - 38)]; + [_hueSaturationView setDelegate:self]; + [_hueSaturationView setAutoresizingMask:(CPViewWidthSizable | CPViewHeightSizable)]; [_pickerView addSubview:_hueSaturationView]; [_pickerView addSubview:_brightnessSlider]; @@ -225,46 +224,49 @@ - (id)initWithFrame:(CPRect)aFrame { - self = [super initWithFrame:aFrame]; - - var path = [[CPBundle bundleForClass:CPColorPicker] pathForResource:@"wheel.png"]; - - _wheelImage = new Image(); - _wheelImage.src = path; - _wheelImage.style.position = "absolute"; - - path = [[CPBundle bundleForClass:CPColorPicker] pathForResource:@"wheel_black.png"]; - - _blackWheelImage = new Image(); - _blackWheelImage.src = path; - _blackWheelImage.style.opacity = "0"; - _blackWheelImage.style.filter = "alpha(opacity=0)" - _blackWheelImage.style.position = "absolute"; - + if (self = [super initWithFrame:aFrame]) + { #if PLATFORM(DOM) - _DOMElement.appendChild(_wheelImage); - _DOMElement.appendChild(_blackWheelImage); + var path = [[CPBundle bundleForClass:CPColorPicker] pathForResource:@"wheel.png"]; + + _wheelImage = new Image(); + _wheelImage.src = path; + _wheelImage.style.position = "absolute"; + + path = [[CPBundle bundleForClass:CPColorPicker] pathForResource:@"wheel_black.png"]; + + _blackWheelImage = new Image(); + _blackWheelImage.src = path; + _blackWheelImage.style.opacity = "0"; + _blackWheelImage.style.filter = "alpha(opacity=0)" + _blackWheelImage.style.position = "absolute"; + + _DOMElement.appendChild(_wheelImage); + _DOMElement.appendChild(_blackWheelImage); #endif - [self setWheelSize:aFrame.size]; + [self setWheelSize:aFrame.size]; - _crosshair = [[CPView alloc] initWithFrame:CPRectMake(_radius - 2, _radius - 2, 4, 4)]; - [_crosshair setBackgroundColor:[CPColor blackColor]]; + _crosshair = [[CPView alloc] initWithFrame:CGRectMake(_radius - 2, _radius - 2, 4, 4)]; + [_crosshair setBackgroundColor:[CPColor blackColor]]; - var view = [[CPView alloc] initWithFrame:CGRectInset([_crosshair bounds], 1.0, 1.0)]; - [view setBackgroundColor:[CPColor whiteColor]]; + var view = [[CPView alloc] initWithFrame:CGRectInset([_crosshair bounds], 1.0, 1.0)]; + [view setBackgroundColor:[CPColor whiteColor]]; - [_crosshair addSubview:view]; + [_crosshair addSubview:view]; - [self addSubview:_crosshair]; + [self addSubview:_crosshair]; + } return self; } - (void)setWheelBrightness:(float)brightness { +#if PLATFORM(DOM) _blackWheelImage.style.opacity = 1.0 - brightness; _blackWheelImage.style.filter = "alpha(opacity=" + (1.0 - brightness) * 100 + ")" +#endif } - (void)setFrameSize:(CPSize)aSize @@ -277,6 +279,7 @@ { var min = MIN(aSize.width, aSize.height); +#if PLATFORM(DOM) _blackWheelImage.style.width = min; _blackWheelImage.style.height = min; _blackWheelImage.width = min; @@ -290,6 +293,7 @@ _wheelImage.height = min; _wheelImage.style.top = (aSize.height - min) / 2.0 + "px"; _wheelImage.style.left = (aSize.width - min) / 2.0 + "px"; +#endif _radius = min / 2.0; From 754311d2e2de17b71c22678d1e328bb6a1af651b Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Mon, 9 Jul 2012 16:06:09 +0100 Subject: [PATCH 046/109] More colour panel clean up. --- AppKit/CPSliderColorPicker.j | 282 +++++++++++++++++------------------ Tests/AppKit/CPButtonTest.j | 2 +- 2 files changed, 142 insertions(+), 142 deletions(-) diff --git a/AppKit/CPSliderColorPicker.j b/AppKit/CPSliderColorPicker.j index 3945d9619..3bf8106db 100644 --- a/AppKit/CPSliderColorPicker.j +++ b/AppKit/CPSliderColorPicker.j @@ -60,7 +60,7 @@ - (id)initWithPickerMask:(int)mask colorPanel:(CPColorPanel)owningColorPanel { - return [super initWithPickerMask:mask colorPanel: owningColorPanel]; + return [super initWithPickerMask:mask colorPanel:owningColorPanel]; } - (id)initView @@ -70,156 +70,156 @@ _contentView = [[CPView alloc] initWithFrame:aFrame]; [_contentView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable]; - _rgbLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 10, 100, 20)]; - [_rgbLabel setStringValue: "Red, Green, Blue"]; + _rgbLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 10, 100, 20)]; + [_rgbLabel setStringValue:"Red, Green, Blue"]; [_rgbLabel setTextColor:[CPColor blackColor]]; - _redLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 37, 15, 20)]; - [_redLabel setStringValue: "R"]; + _redLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 37, 15, 20)]; + [_redLabel setStringValue:"R"]; [_redLabel setTextColor:[CPColor blackColor]]; - _redSlider = [[CPSlider alloc] initWithFrame: CGRectMake(15, 35, aFrame.size.width - 70, 20)]; - [_redSlider setMaxValue: 1.0]; - [_redSlider setMinValue: 0.0]; - [_redSlider setTarget: self]; - [_redSlider setAction: @selector(sliderChanged:)]; - [_redSlider setAutoresizingMask: CPViewWidthSizable]; + _redSlider = [[CPSlider alloc] initWithFrame:CGRectMake(15, 35, aFrame.size.width - 70, 20)]; + [_redSlider setMaxValue:1.0]; + [_redSlider setMinValue:0.0]; + [_redSlider setTarget:self]; + [_redSlider setAction:@selector(sliderChanged:)]; + [_redSlider setAutoresizingMask:CPViewWidthSizable]; // red value input box - _redValue = [[CPTextField alloc] initWithFrame: CGRectMake(aFrame.size.width - 45, 30, 45, 28)]; - [_redValue setAutoresizingMask: CPViewMinXMargin]; - [_redValue setEditable: YES]; - [_redValue setBezeled: YES]; - [_redValue setDelegate: self]; - [_contentView addSubview: _redValue]; + _redValue = [[CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 30, 45, 28)]; + [_redValue setAutoresizingMask:CPViewMinXMargin]; + [_redValue setEditable:YES]; + [_redValue setBezeled:YES]; + [_redValue setDelegate:self]; + [_contentView addSubview:_redValue]; - _greenLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 63, 15, 20)]; - [_greenLabel setStringValue: "G"]; + _greenLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 63, 15, 20)]; + [_greenLabel setStringValue:"G"]; [_greenLabel setTextColor:[CPColor blackColor]]; - _greenSlider = [[CPSlider alloc] initWithFrame: CGRectMake(15, 61, aFrame.size.width - 70, 20)]; - [_greenSlider setMaxValue: 1.0]; - [_greenSlider setMinValue: 0.0]; - [_greenSlider setTarget: self]; - [_greenSlider setAction: @selector(sliderChanged:)]; - [_greenSlider setAutoresizingMask: CPViewWidthSizable]; + _greenSlider = [[CPSlider alloc] initWithFrame:CGRectMake(15, 61, aFrame.size.width - 70, 20)]; + [_greenSlider setMaxValue:1.0]; + [_greenSlider setMinValue:0.0]; + [_greenSlider setTarget:self]; + [_greenSlider setAction:@selector(sliderChanged:)]; + [_greenSlider setAutoresizingMask:CPViewWidthSizable]; // green value input box - _greenValue = [[CPTextField alloc] initWithFrame: CGRectMake(aFrame.size.width - 45, 56, 45, 28)]; - [_greenValue setAutoresizingMask: CPViewMinXMargin]; - [_greenValue setEditable: YES]; - [_greenValue setBezeled: YES]; - [_greenValue setDelegate: self]; - [_contentView addSubview: _greenValue]; + _greenValue = [[CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 56, 45, 28)]; + [_greenValue setAutoresizingMask:CPViewMinXMargin]; + [_greenValue setEditable:YES]; + [_greenValue setBezeled:YES]; + [_greenValue setDelegate:self]; + [_contentView addSubview:_greenValue]; - _blueLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 90, 15, 20)]; - [_blueLabel setStringValue: "B"]; + _blueLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 90, 15, 20)]; + [_blueLabel setStringValue:"B"]; [_blueLabel setTextColor:[CPColor blackColor]]; - _blueSlider = [[CPSlider alloc] initWithFrame: CGRectMake(15, 87, aFrame.size.width - 70, 20)]; - [_blueSlider setMaxValue: 1.0]; - [_blueSlider setMinValue: 0.0]; - [_blueSlider setTarget: self]; - [_blueSlider setAction: @selector(sliderChanged:)]; - [_blueSlider setAutoresizingMask: CPViewWidthSizable]; + _blueSlider = [[CPSlider alloc] initWithFrame:CGRectMake(15, 87, aFrame.size.width - 70, 20)]; + [_blueSlider setMaxValue:1.0]; + [_blueSlider setMinValue:0.0]; + [_blueSlider setTarget:self]; + [_blueSlider setAction:@selector(sliderChanged:)]; + [_blueSlider setAutoresizingMask:CPViewWidthSizable]; // blue value input box - _blueValue = [[CPTextField alloc] initWithFrame: CGRectMake(aFrame.size.width - 45, 82, 45, 28)]; - [_blueValue setAutoresizingMask: CPViewMinXMargin]; - [_blueValue setEditable: YES]; - [_blueValue setBezeled: YES]; - [_blueValue setDelegate: self]; - [_contentView addSubview: _blueValue]; + _blueValue = [[CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 82, 45, 28)]; + [_blueValue setAutoresizingMask:CPViewMinXMargin]; + [_blueValue setEditable:YES]; + [_blueValue setBezeled:YES]; + [_blueValue setDelegate:self]; + [_contentView addSubview:_blueValue]; - _hsbLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 120, 190, 20)]; - [_hsbLabel setStringValue: "Hue, Saturation, Brightness"]; + _hsbLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 120, 190, 20)]; + [_hsbLabel setStringValue:"Hue, Saturation, Brightness"]; [_hsbLabel setTextColor:[CPColor blackColor]]; - _hueLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 145, 15, 20)]; - [_hueLabel setStringValue: "H"]; + _hueLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 145, 15, 20)]; + [_hueLabel setStringValue:"H"]; [_hueLabel setTextColor:[CPColor blackColor]]; - _hueSlider = [[CPSlider alloc] initWithFrame: CGRectMake(15, 143, aFrame.size.width - 70, 20)]; - [_hueSlider setMaxValue: 359.0]; - [_hueSlider setMinValue: 0.0]; - [_hueSlider setTarget: self]; - [_hueSlider setAction: @selector(sliderChanged:)]; - [_hueSlider setAutoresizingMask: CPViewWidthSizable]; + _hueSlider = [[CPSlider alloc] initWithFrame:CGRectMake(15, 143, aFrame.size.width - 70, 20)]; + [_hueSlider setMaxValue:359.0]; + [_hueSlider setMinValue:0.0]; + [_hueSlider setTarget:self]; + [_hueSlider setAction:@selector(sliderChanged:)]; + [_hueSlider setAutoresizingMask:CPViewWidthSizable]; // hue value input box - _hueValue = [[CPTextField alloc] initWithFrame: CGRectMake(aFrame.size.width - 45, 138, 45, 28)]; - [_hueValue setAutoresizingMask: CPViewMinXMargin]; - [_hueValue setEditable: YES]; - [_hueValue setBezeled: YES]; - [_hueValue setDelegate: self]; - [_contentView addSubview: _hueValue]; + _hueValue = [[CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 138, 45, 28)]; + [_hueValue setAutoresizingMask:CPViewMinXMargin]; + [_hueValue setEditable:YES]; + [_hueValue setBezeled:YES]; + [_hueValue setDelegate:self]; + [_contentView addSubview:_hueValue]; - _saturationLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 170, 15, 20)]; - [_saturationLabel setStringValue: "S"]; + _saturationLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 170, 15, 20)]; + [_saturationLabel setStringValue:"S"]; [_saturationLabel setTextColor:[CPColor blackColor]]; - _saturationSlider = [[CPSlider alloc] initWithFrame: CGRectMake(15, 168, aFrame.size.width - 70, 20)]; - [_saturationSlider setMaxValue: 100.0]; - [_saturationSlider setMinValue: 0.0]; - [_saturationSlider setTarget: self]; - [_saturationSlider setAction: @selector(sliderChanged:)]; - [_saturationSlider setAutoresizingMask: CPViewWidthSizable]; + _saturationSlider = [[CPSlider alloc] initWithFrame:CGRectMake(15, 168, aFrame.size.width - 70, 20)]; + [_saturationSlider setMaxValue:100.0]; + [_saturationSlider setMinValue:0.0]; + [_saturationSlider setTarget:self]; + [_saturationSlider setAction:@selector(sliderChanged:)]; + [_saturationSlider setAutoresizingMask:CPViewWidthSizable]; // saturation value input box - _saturationValue = [[CPTextField alloc] initWithFrame: CGRectMake(aFrame.size.width - 45, 164, 45, 28)]; - [_saturationValue setAutoresizingMask: CPViewMinXMargin]; - [_saturationValue setEditable: YES]; - [_saturationValue setBezeled: YES]; - [_saturationValue setDelegate: self]; - [_contentView addSubview: _saturationValue]; + _saturationValue = [[CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 164, 45, 28)]; + [_saturationValue setAutoresizingMask:CPViewMinXMargin]; + [_saturationValue setEditable:YES]; + [_saturationValue setBezeled:YES]; + [_saturationValue setDelegate:self]; + [_contentView addSubview:_saturationValue]; - _brightnessLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 196, 15, 20)]; - [_brightnessLabel setStringValue: "B"]; + _brightnessLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 196, 15, 20)]; + [_brightnessLabel setStringValue:"B"]; [_brightnessLabel setTextColor:[CPColor blackColor]]; - _brightnessSlider = [[CPSlider alloc] initWithFrame: CGRectMake(15, 194, aFrame.size.width - 70, 20)]; - [_brightnessSlider setMaxValue: 100.0]; - [_brightnessSlider setMinValue: 0.0]; - [_brightnessSlider setTarget: self]; - [_brightnessSlider setAction: @selector(sliderChanged:)]; - [_brightnessSlider setAutoresizingMask: CPViewWidthSizable]; + _brightnessSlider = [[CPSlider alloc] initWithFrame:CGRectMake(15, 194, aFrame.size.width - 70, 20)]; + [_brightnessSlider setMaxValue:100.0]; + [_brightnessSlider setMinValue:0.0]; + [_brightnessSlider setTarget:self]; + [_brightnessSlider setAction:@selector(sliderChanged:)]; + [_brightnessSlider setAutoresizingMask:CPViewWidthSizable]; // brightness value input box - _brightnessValue = [[CPTextField alloc] initWithFrame: CGRectMake(aFrame.size.width - 45, 190, 45, 28)]; - [_brightnessValue setAutoresizingMask: CPViewMinXMargin]; - [_brightnessValue setEditable: YES]; - [_brightnessValue setBezeled: YES]; - [_brightnessValue setDelegate: self]; - [_contentView addSubview: _brightnessValue]; + _brightnessValue = [[CPTextField alloc] initWithFrame:CGRectMake(aFrame.size.width - 45, 190, 45, 28)]; + [_brightnessValue setAutoresizingMask:CPViewMinXMargin]; + [_brightnessValue setEditable:YES]; + [_brightnessValue setBezeled:YES]; + [_brightnessValue setDelegate:self]; + [_contentView addSubview:_brightnessValue]; - _hexLabel = [[CPTextField alloc] initWithFrame: CGRectMake(0, 230, 30, 20)]; - [_hexLabel setStringValue: "Hex"]; + _hexLabel = [[CPTextField alloc] initWithFrame:CGRectMake(0, 230, 30, 20)]; + [_hexLabel setStringValue:"Hex"]; [_hexLabel setTextColor:[CPColor blackColor]]; //hex input box - _hexValue = [[CPTextField alloc] initWithFrame: CGRectMake(32, 225, 80, 28)]; - [_hexValue setEditable: YES]; - [_hexValue setBezeled: YES]; - [_hexValue setDelegate: self]; - [_contentView addSubview: _hexValue]; + _hexValue = [[CPTextField alloc] initWithFrame:CGRectMake(32, 225, 80, 28)]; + [_hexValue setEditable:YES]; + [_hexValue setBezeled:YES]; + [_hexValue setDelegate:self]; + [_contentView addSubview:_hexValue]; - [_contentView addSubview: _rgbLabel]; - [_contentView addSubview: _redLabel]; - [_contentView addSubview: _greenLabel]; - [_contentView addSubview: _blueLabel]; - [_contentView addSubview: _redSlider]; - [_contentView addSubview: _greenSlider]; - [_contentView addSubview: _blueSlider]; + [_contentView addSubview:_rgbLabel]; + [_contentView addSubview:_redLabel]; + [_contentView addSubview:_greenLabel]; + [_contentView addSubview:_blueLabel]; + [_contentView addSubview:_redSlider]; + [_contentView addSubview:_greenSlider]; + [_contentView addSubview:_blueSlider]; - [_contentView addSubview: _hsbLabel]; - [_contentView addSubview: _hueLabel]; - [_contentView addSubview: _saturationLabel]; - [_contentView addSubview: _brightnessLabel]; - [_contentView addSubview: _hueSlider]; - [_contentView addSubview: _saturationSlider]; - [_contentView addSubview: _brightnessSlider]; + [_contentView addSubview:_hsbLabel]; + [_contentView addSubview:_hueLabel]; + [_contentView addSubview:_saturationLabel]; + [_contentView addSubview:_brightnessLabel]; + [_contentView addSubview:_hueSlider]; + [_contentView addSubview:_saturationSlider]; + [_contentView addSubview:_brightnessSlider]; - [_contentView addSubview: _hexLabel]; + [_contentView addSubview:_hexLabel]; } - (CPView)provideNewView:(BOOL)initialRequest @@ -250,35 +250,35 @@ { case _hueSlider: case _saturationSlider: - case _brightnessSlider: newColor = [CPColor colorWithHue: [_hueSlider floatValue] - saturation: [_saturationSlider floatValue] - brightness: [_brightnessSlider floatValue] - alpha: alpha]; + case _brightnessSlider: newColor = [CPColor colorWithHue:[_hueSlider floatValue] + saturation:[_saturationSlider floatValue] + brightness:[_brightnessSlider floatValue] + alpha:alpha]; - [self updateRGBSliders: newColor]; + [self updateRGBSliders:newColor]; break; case _redSlider: case _greenSlider: - case _blueSlider: newColor = [CPColor colorWithCalibratedRed: [_redSlider floatValue] - green: [_greenSlider floatValue] - blue: [_blueSlider floatValue] - alpha: alpha]; + case _blueSlider: newColor = [CPColor colorWithCalibratedRed:[_redSlider floatValue] + green:[_greenSlider floatValue] + blue:[_blueSlider floatValue] + alpha:alpha]; - [self updateHSBSliders: newColor]; + [self updateHSBSliders:newColor]; break; } [self updateLabels]; - [self updateHex: newColor]; - [colorPanel setColor: newColor]; + [self updateHex:newColor]; + [colorPanel setColor:newColor]; } - (void)setColor:(CPColor)aColor { - [self updateRGBSliders: aColor]; - [self updateHSBSliders: aColor]; - [self updateHex: aColor]; + [self updateRGBSliders:aColor]; + [self updateHSBSliders:aColor]; + [self updateHex:aColor]; [self updateLabels]; } @@ -307,13 +307,13 @@ - (void)updateLabels { - [_hueValue setStringValue: ROUND([_hueSlider floatValue])]; - [_saturationValue setStringValue: ROUND([_saturationSlider floatValue])]; - [_brightnessValue setStringValue: ROUND([_brightnessSlider floatValue])]; + [_hueValue setStringValue:ROUND([_hueSlider floatValue])]; + [_saturationValue setStringValue:ROUND([_saturationSlider floatValue])]; + [_brightnessValue setStringValue:ROUND([_brightnessSlider floatValue])]; - [_redValue setStringValue: ROUND([_redSlider floatValue] * 255)]; - [_greenValue setStringValue: ROUND([_greenSlider floatValue] * 255)]; - [_blueValue setStringValue: ROUND([_blueSlider floatValue] * 255)]; + [_redValue setStringValue:ROUND([_redSlider floatValue] * 255)]; + [_greenValue setStringValue:ROUND([_greenSlider floatValue] * 255)]; + [_blueValue setStringValue:ROUND([_blueSlider floatValue] * 255)]; } - (CPImage)provideNewButtonImage @@ -333,12 +333,12 @@ if (field === _hexValue) { - var newColor = [CPColor colorWithHexString: value]; + var newColor = [CPColor colorWithHexString:value]; if (newColor) { - [self setColor: newColor]; - [[self colorPanel] setColor: newColor]; + [self setColor:newColor]; + [[self colorPanel] setColor:newColor]; } } else @@ -346,27 +346,27 @@ switch (field) { case _redValue: [_redSlider setFloatValue:MAX(MIN(ROUND(value), 255) / 255.0, 0)]; - [self sliderChanged: _redSlider]; + [self sliderChanged:_redSlider]; break; case _greenValue: [_greenSlider setFloatValue:MAX(MIN(ROUND(value), 255) / 255.0, 0)]; - [self sliderChanged: _greenSlider]; + [self sliderChanged:_greenSlider]; break; case _blueValue: [_blueSlider setFloatValue:MAX(MIN(ROUND(value), 255) / 255.0, 0)]; - [self sliderChanged: _blueSlider]; + [self sliderChanged:_blueSlider]; break; case _hueValue: [_hueSlider setFloatValue:MAX(MIN(ROUND(value), 360), 0)]; - [self sliderChanged: _hueSlider]; + [self sliderChanged:_hueSlider]; break; case _saturationValue: [_saturationSlider setFloatValue:MAX(MIN(ROUND(value), 100), 0)]; - [self sliderChanged: _saturationSlider]; + [self sliderChanged:_saturationSlider]; break; case _brightnessValue: [_brightnessSlider setFloatValue:MAX(MIN(ROUND(value), 100), 0)]; - [self sliderChanged: _brightnessSlider]; + [self sliderChanged:_brightnessSlider]; break; } } diff --git a/Tests/AppKit/CPButtonTest.j b/Tests/AppKit/CPButtonTest.j index 3632a7d35..112d89020 100644 --- a/Tests/AppKit/CPButtonTest.j +++ b/Tests/AppKit/CPButtonTest.j @@ -3,7 +3,7 @@ @import @import -[CPApplication sharedApplication] +[CPApplication sharedApplication]; @implementation CPButtonTest : OJTestCase { From ad74e93ea26ea4226230d2241921851928e068b6 Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Mon, 9 Jul 2012 10:20:18 -0700 Subject: [PATCH 047/109] use CPPopUpMenuWindowLevel for _CPPopUpList's window level --- AppKit/_CPPopUpList.j | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AppKit/_CPPopUpList.j b/AppKit/_CPPopUpList.j index b214c777d..2bf5f081b 100644 --- a/AppKit/_CPPopUpList.j +++ b/AppKit/_CPPopUpList.j @@ -140,7 +140,7 @@ var ListColumnIdentifier = @"1"; [panel setTitle:@""]; [panel setFloatingPanel:YES]; [panel setBecomesKeyOnlyIfNeeded:YES]; - [panel setLevel:CPStatusWindowLevel]; + [panel setLevel:CPPopUpMenuWindowLevel]; [panel setHasShadow:YES]; [panel setShadowStyle:CPMenuWindowShadowStyle]; [panel setDelegate:self]; From b09908e6afa503480cd5d6274dd919a365644384 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Mon, 9 Jul 2012 19:18:46 +0100 Subject: [PATCH 048/109] Themable CPColorWell with Aristo look when bordered. --- AppKit/CPColorWell.j | 90 +++++++++++------- .../Resources/colorwell-bezel-center.png | Bin 0 -> 133 bytes .../Aristo/Resources/colorwell-bezel-left.png | Bin 0 -> 194 bytes .../Resources/colorwell-bezel-right.png | Bin 0 -> 198 bytes .../colorwell-content-border-center.png | Bin 0 -> 118 bytes .../colorwell-content-border-left.png | Bin 0 -> 119 bytes .../colorwell-content-border-right.png | Bin 0 -> 119 bytes AppKit/Themes/Aristo/ThemeDescriptors.j | 35 +++++++ 8 files changed, 93 insertions(+), 32 deletions(-) create mode 100644 AppKit/Themes/Aristo/Resources/colorwell-bezel-center.png create mode 100644 AppKit/Themes/Aristo/Resources/colorwell-bezel-left.png create mode 100644 AppKit/Themes/Aristo/Resources/colorwell-bezel-right.png create mode 100644 AppKit/Themes/Aristo/Resources/colorwell-content-border-center.png create mode 100644 AppKit/Themes/Aristo/Resources/colorwell-content-border-left.png create mode 100644 AppKit/Themes/Aristo/Resources/colorwell-content-border-right.png diff --git a/AppKit/CPColorWell.j b/AppKit/CPColorWell.j index aa8fbe705..35e113211 100644 --- a/AppKit/CPColorWell.j +++ b/AppKit/CPColorWell.j @@ -43,7 +43,6 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv BOOL _bordered; CPColor _color; - CPView _wellView; } + (Class)_binderClassForBinding:(CPString)theBinding @@ -80,8 +79,8 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv if (self) { _active = NO; - _bordered = YES; _color = [CPColor whiteColor]; + [self setBordered:YES]; [self _registerForNotifications]; } @@ -208,25 +207,6 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv return _active; } -/*! - Draws the colored area inside the color well without borders. - @param aRect the location at which to draw -*/ -- (void)drawWellInside:(CGRect)aRect -{ - if (!_wellView) - { - _wellView = [[CPView alloc] initWithFrame:aRect]; - [_wellView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable]; - - [self addSubview:_wellView]; - } - else - [_wellView setFrame:aRect]; - - [_wellView setBackgroundColor:_color]; -} - - (void)colorPanelDidChangeColor:(CPNotification)aNotification { [self takeColorFrom:[aNotification object]]; @@ -267,9 +247,64 @@ var _CPColorWellDidBecomeExclusiveNotification = @"_CPColorWellDidBecomeExclusiv return _CGRectInsetByInset(bounds, contentInset); } +- (CGRect)bezelRectForBounds:(CGRect)bounds +{ + var bezelInset = [self currentValueForThemeAttribute:@"bezel-inset"]; + + return _CGRectInsetByInset(bounds, bezelInset); +} + +- (CGRect)contentBorderRectForBounds:(CGRect)bounds +{ + var contentBorderInset = [self currentValueForThemeAttribute:@"content-border-inset"]; + + return _CGRectInsetByInset(bounds, contentBorderInset); +} + +- (CGRect)rectForEphemeralSubviewNamed:(CPString)aName +{ + switch (aName) + { + case "bezel-view": + return [self bezelRectForBounds:[self bounds]]; + case "content-view": + return [self contentRectForBounds:[self bounds]]; + case "content-border-view": + return [self contentBorderRectForBounds:[self bounds]]; + } + + return [super rectForEphemeralSubviewNamed:aName]; +} + +- (CPView)createEphemeralSubviewNamed:(CPString)aName +{ + var view = [[CPView alloc] initWithFrame:_CGRectMakeZero()]; + + [view setHitTests:NO]; + + return view; +} + - (void)layoutSubviews { - [self drawWellInside:[self contentRectForBounds:[self bounds]]]; + var bezelView = [self layoutEphemeralSubviewNamed:@"bezel-view" + positioned:CPWindowBelow + relativeToEphemeralSubviewNamed:@"content-view"]; + + [bezelView setBackgroundColor:[self currentValueForThemeAttribute:@"bezel-color"]]; + + var contentView = [self layoutEphemeralSubviewNamed:@"content-view" + positioned:CPWindowAbove + relativeToEphemeralSubviewNamed:@"bezel-view"]; + + + [contentView setBackgroundColor:_color]; + + var contentBorderView = [self layoutEphemeralSubviewNamed:@"content-border-view" + positioned:CPWindowAbove + relativeToEphemeralSubviewNamed:@"content-view"]; + + [contentBorderView setBackgroundColor:[self currentValueForThemeAttribute:@"content-border-color"]]; } @end @@ -332,8 +367,8 @@ var CPColorWellColorKey = "CPColorWellColorKey", if (self) { _active = NO; - [self setBordered:[aCoder decodeBoolForKey:CPColorWellBorderedKey]]; _color = [aCoder decodeObjectForKey:CPColorWellColorKey]; + [self setBordered:[aCoder decodeBoolForKey:CPColorWellBorderedKey]]; [self _registerForNotifications]; } @@ -347,17 +382,8 @@ var CPColorWellColorKey = "CPColorWellColorKey", */ - (void)encodeWithCoder:(CPCoder)aCoder { - // We do this in order to avoid encoding the _wellView, which - // should just automatically be created programmatically as needed. - var actualSubviews = _subviews; - - _subviews = [_subviews copy]; - [_subviews removeObjectIdenticalTo:_wellView]; - [super encodeWithCoder:aCoder]; - _subviews = actualSubviews; - [aCoder encodeObject:_color forKey:CPColorWellColorKey]; [aCoder encodeObject:[self isBordered] forKey:CPColorWellBorderedKey]; } diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-center.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-center.png new file mode 100644 index 0000000000000000000000000000000000000000..343e76d51909f118f05d637310422a3acc69b903 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!3HF)&rH7sq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6{&l=IEGZ*N=isbC`kIj&*BrmuO=~p$*4p9-{0Tvi}(Z> enFJXa*%*ZGImaFJo3sn4g~8L+&t;ucLK6V@?k0@@ literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-left.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-left.png new file mode 100644 index 0000000000000000000000000000000000000000..d188ea17bb76b69d4a026d6c8e272c8e09248146 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^%s?!`!3HGlE#033DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MJb*xjv*Ddl2Q^95}1-i6~x$+*tXXG{^tAl>+9?40>}S- zetv%bzM7w(=Chti{QdvGy}p2Pg9VQQ8%Kjh&z8pqe}8}Pm-}|Wa>0QgykGu{PhjZy r{NO+%b9N(ByyU`7Yz}J}1QHmck4JFLuW2p-+Q;DO>gTe~DWM4fHr+_+ literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-right.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-right.png new file mode 100644 index 0000000000000000000000000000000000000000..7c6bbf90d56dd4311ad6fde0ff757d8c51f57f37 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^%s?!`!3HGlE#033DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MH!whjv*DdlF||qHZUiZDb$_+@ca9F|KH!<&gOcu!l35o zr>Fm)pPz5fX!%X&|G&S?mw5I#oH_RC|NnY635RC}K{J`Rim=Sc$mC~Zm*9(Um~&re wf8F0-RUaN4-0E=7c0!4OfOO*=W`P8TRkC6B$L=cL2inQt>FVdQ&MBb@0HkJ3aR2}S literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/colorwell-content-border-center.png b/AppKit/Themes/Aristo/Resources/colorwell-content-border-center.png new file mode 100644 index 0000000000000000000000000000000000000000..96e46d5ca4074941106bc00cafa2db65e1663a07 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrK!3HE%<(K{hQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiX=Q;978H@B_$*z7^E!_kT9q9Ty{k PY8X6S{an^LB{Ts5pH(5) literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/colorwell-content-border-left.png b/AppKit/Themes/Aristo/Resources/colorwell-content-border-left.png new file mode 100644 index 0000000000000000000000000000000000000000..ca13ac1c804ea8488de10bd1edfd6095ba1ed26b GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrK!3HE%<(K{hQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=eiacE$Ln>}1B_t#mq%jHchzQ=_UvJLFVZb1r!<-=-dS@n3 O5re0zpUXO@geCxLZXUb< literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/colorwell-content-border-right.png b/AppKit/Themes/Aristo/Resources/colorwell-content-border-right.png new file mode 100644 index 0000000000000000000000000000000000000000..ca13ac1c804ea8488de10bd1edfd6095ba1ed26b GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrK!3HE%<(K{hQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=eiacE$Ln>}1B_t#mq%jHchzQ=_UvJLFVZb1r!<-=-dS@n3 O5re0zpUXO@geCxLZXUb< literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/ThemeDescriptors.j b/AppKit/Themes/Aristo/ThemeDescriptors.j index df1eae02c..0ae2790d4 100755 --- a/AppKit/Themes/Aristo/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo/ThemeDescriptors.j @@ -1129,6 +1129,41 @@ var themedButtonValues = nil, return button; } ++ (CPColorWell)themedColorWell +{ + // The CPColorPanel CPColorWell depends on requires CPApp. + [CPApplication sharedApplication]; + + var colorWell = [[CPColorWell alloc] initWithFrame:CGRectMake(0.0, 0.0, 60.0, 24.0)], + + bezelColor = PatternColor( + [ + ["colorwell-bezel-left.png", 3.0, 24.0], + ["colorwell-bezel-center.png", 1.0, 24.0], + ["colorwell-bezel-right.png", 3.0, 24.0] + ], + PatternIsHorizontal), + + contentBorderColor = PatternColor( + [ + ["colorwell-content-border-left.png", 1.0, 15.0], + ["colorwell-content-border-center.png", 1.0, 15.0], + ["colorwell-content-border-right.png", 1.0, 15.0] + ], + PatternIsHorizontal), + + themedColorWellValues = [ + [@"bezel-color", bezelColor, CPThemeStateBordered], + [@"content-inset", CGInsetMake(5.0, 5.0, 5.0, 5.0), CPThemeStateBordered], + [@"content-border-inset", CGInsetMake(5.0, 5.0, 4.0, 5.0), CPThemeStateBordered], + [@"content-border-color", contentBorderColor, CPThemeStateBordered], + ]; + + [self registerThemeValues:themedColorWellValues forView:colorWell]; + + return colorWell; +} + + (CPComboBox)themedComboBox { var combo = [[CPComboBox alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 29.0)], From 2d8a849d12fb3bfb4ddce7e1a9f8632a463a6f67 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Mon, 9 Jul 2012 19:19:38 +0100 Subject: [PATCH 049/109] nib2cib size fix for bordered CPColorWell. --- .../Resources/MainMenu.cib | 2 +- .../Resources/MainMenu.xib | 73 ++++++++++++++++--- Tools/nib2cib/NSColorWell.j | 8 ++ 3 files changed, 72 insertions(+), 11 deletions(-) diff --git a/Tests/Manual/CPColorWellBindings/Resources/MainMenu.cib b/Tests/Manual/CPColorWellBindings/Resources/MainMenu.cib index b0441739a..36d612407 100644 --- a/Tests/Manual/CPColorWellBindings/Resources/MainMenu.cib +++ b/Tests/Manual/CPColorWellBindings/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;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;24E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;46E;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;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;43E;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;2;47E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;48E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;49E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;44E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;26E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;50E;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;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;43E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;51E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;52E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;53E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;55E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;34E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;56E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;52E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;57E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;58E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;46E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;59E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;60E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;61E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;62E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;41E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;63E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;52E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;64E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;65E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;41E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;66E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;67E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;68E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;39E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;70E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;52E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;68E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;71E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;47E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;72E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;73E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;74E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;75E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;76E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;28E;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;27E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;78E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;78E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;79E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;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;2;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;81E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;82E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;83E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;84E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;85E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;2;87E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;1;0E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;2;37E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;2;36E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;2;88E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;2;88E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;2;88E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;2;88E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;2;89E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;2;89E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;2;89E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;2;90E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;2;91E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;K;6;CP$UIDd;2;77E;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;2;31E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;87E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;92E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;92E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;87E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;2;94E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;95E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;12;$agrid-colorD;K;6;CP$UIDd;2;96E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;97E;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;2;98E;K;30;CPTableViewIntercellSpacingKeyD;K;6;CP$UIDd;2;99E;K;37;CPTableViewSelectionHighlightStyleKeyD;K;6;CP$UIDd;2;77E;K;37;CPTableViewColumnAutoresizingStyleKeyD;K;6;CP$UIDd;2;77E;K;31;CPTableViewMultipleSelectionKeyD;K;6;CP$UIDd;2;89E;K;28;CPTableViewEmptySelectionKeyD;K;6;CP$UIDd;2;89E;K;30;CPTableViewColumnReorderingKeyD;K;6;CP$UIDd;3;100E;K;28;CPTableViewColumnResizingKeyD;K;6;CP$UIDd;3;100E;K;29;CPTableViewColumnSelectionKeyD;K;6;CP$UIDd;2;89E;K;26;CPTableViewTableColumnsKeyD;K;6;CP$UIDd;3;101E;K;23;CPTableViewGridColorKeyD;K;6;CP$UIDd;2;96E;K;27;CPTableViewGridStyleMaskKeyD;K;6;CP$UIDd;2;77E;K;39;CPTableViewUsesAlternatingBackgroundKeyD;K;6;CP$UIDd;2;89E;K;34;CPTableViewAlternatingRowColorsKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewHeaderViewKeyD;K;6;CP$UIDd;1;0E;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;2;33E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;1;0E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;102E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;103E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;104E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;106E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;107E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;108E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;100E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;2;89E;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;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;109E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;110E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;111E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;77E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;30E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;113E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;97E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;2;77E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;114E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;115E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;116E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;111E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;117E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;118E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;77E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;30E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;119E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;97E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;2;77E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;120E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPColorWellK;8;$classesA;S;11;CPColorWellS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;38E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;121E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;122E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;84E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;97E;K;19;CPColorWellColorKeyD;K;6;CP$UIDd;3;123E;K;22;CPColorWellBorderedKeyD;K;6;CP$UIDd;2;89E;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;40E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;124E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;125E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;84E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;126E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;6;$afontD;K;6;CP$UIDd;3;128E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;97E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;89E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;129E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;130E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;100E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;100E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;100E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;97E;K;31;CPTextFieldPlaceholderStringKeyD;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;42E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;131E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;132E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;84E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;133E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;134E;K;16;$aimage-positionD;K;6;CP$UIDd;2;91E;K;6;$afontD;K;6;CP$UIDd;3;128E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;77E;K;11;$aalignmentD;K;6;CP$UIDd;2;77E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;135E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;97E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;136E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;100E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;91E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;77E;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;137E;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;2;45E;K;28;CPObjectControllerContentKeyD;K;6;CP$UIDd;1;0E;K;36;CPObjectControllerObjectClassNameKeyD;K;6;CP$UIDd;3;138E;K;31;CPObjectControllerIsEditableKeyD;K;6;CP$UIDd;3;100E;K;49;CPObjectControllerAutomaticallyPreparesContentKeyD;K;6;CP$UIDd;3;100E;K;37;CPArrayControllerAvoidsEmptySelectionD;K;6;CP$UIDd;3;100E;K;49;CPArrayControllerClearsFilterPredicateOnInsertionD;K;6;CP$UIDd;3;100E;K;41;CPArrayControllerFilterRestrictsInsertionD;K;6;CP$UIDd;2;89E;K;35;CPArrayControllerPreservesSelectionD;K;6;CP$UIDd;3;100E;K;39;CPArrayControllerSelectsInsertedObjectsD;K;6;CP$UIDd;3;100E;K;47;CPArrayControllerAlwaysUsesMultipleValuesMarkerD;K;6;CP$UIDd;3;100E;K;47;CPArrayControllerAutomaticallyRearrangesObjectsD;K;6;CP$UIDd;3;100E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;26E;E;E;S;8;delegateS;9;theWindowS;27;value: avoidsEmptySelectionS;5;valueS;20;avoidsEmptySelectionD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;10;CP.objectsD;E;E;S;38;value: arrangedObjects.color.cssStringS;31;arrangedObjects.color.cssStringD;K;6;$classD;K;6;CP$UIDd;2;54E;K;10;CP.objectsD;E;E;S;19;contentArray: arrayS;12;contentArrayS;5;arrayD;K;6;$classD;K;6;CP$UIDd;2;54E;K;10;CP.objectsD;E;E;S;32;value: selection.color.cssStringS;25;selection.color.cssStringD;K;6;$classD;K;6;CP$UIDd;2;54E;K;10;CP.objectsD;K;17;CPNullPlaceholderD;K;6;CP$UIDd;3;139E;E;E;S;26;textColor: selection.colorS;9;textColorS;15;selection.colorD;K;6;$classD;K;6;CP$UIDd;2;54E;K;10;CP.objectsD;E;E;S;22;value: selection.colorD;K;6;$classD;K;6;CP$UIDd;2;54E;K;10;CP.objectsD;E;E;S;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{335, 165}, {715, 473}}d;1;7S;6;Windowd;1;0S;20;{{0, 0}, {715, 473}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;43E;E;E;S;6;normalS;22;{{20, 20}, {168, 135}}S;20;{{0, 0}, {168, 135}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;90E;E;E;d;2;36S;10;scrollviewD;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;2;86E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;77E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;140E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;141E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;142E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;111E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;143E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;32E;E;d;2;10T;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;144E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;E;d;1;2S;20;{{0, 0}, {167, 133}}D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;93E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;145E;E;S;9;tableviewD;K;6;$classD;K;6;CP$UIDd;2;93E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;146E;E;d;1;4d;2;23S;6;{3, 2}F;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;34E;E;E;d;3;164d;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;105E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;144E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;147E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;148E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;16;$atext-alignmentD;K;6;CP$UIDd;2;77E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;149E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;150E;E;D;K;6;$classD;K;6;CP$UIDd;2;40E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;144E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;126E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;151E;K;6;$afontD;K;6;CP$UIDd;3;153E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;97E;K;20;$avertical-alignmentD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;77E;K;15;$acontent-insetD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;149E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;130E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;97E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;77E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;149E;E;d;1;3S;19;{{1, 1}, {166, 15}}S;19;{{0, 0}, {166, 15}}d;1;8S;8;scrollerS;29;_horizontalScrollerDidScroll:f;18;0.9940119760479041S;22;{{224, 16}, {15, 102}}S;19;{{0, 0}, {15, 102}}d;11;-2147483648S;17;disabled+verticalS;27;_verticalScrollerDidScroll:f;18;0.9925373134328358S;22;{{213, 20}, {103, 23}}S;19;{{0, 0}, {103, 23}}D;K;6;$classD;K;6;CP$UIDd;2;93E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;156E;E;S;22;{{210, 51}, {194, 17}}S;19;{{0, 0}, {194, 17}}S;9;textfieldD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;127E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;157E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;158E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;100E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;100E;E;S;5;Labeld;4;3072S;22;{{18, 161}, {172, 18}}S;19;{{0, 0}, {172, 18}}S;9;check-boxS;8;selectedd;1;1S;21;Avoid Empty SelectionS;13;AppControllerS;19;CPMutableDictionaryS;4;NULLS;20;{{1, 1}, {166, 133}}S;20;{{0, 0}, {166, 133}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;32E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;93E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;159E;E;S;16;{{0, 0}, {0, 0}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;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;135E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;135E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;162E;E;E;S;12;columnHeaderS;0;D;K;6;$classD;K;6;CP$UIDd;3;127E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;157E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;158E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;100E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;100E;E;S;11;placeholderD;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;152E;K;4;nameD;K;6;CP$UIDd;3;163E;K;12;defaultValueD;K;6;CP$UIDd;3;150E;K;6;valuesD;K;6;CP$UIDd;3;164E;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;154E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;165E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;135E;E;E;S;17;Arial, sans-serifd;2;12D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;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;135E;E;E;f;3;0.5D;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;161E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;106E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;144E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;106E;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;2;80E;E;S;4;fontD;K;6;$classD;K;6;CP$UIDd;2;54E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;169E;K;6;normalD;K;6;CP$UIDd;3;150E;E;E;S;39;{"top":0,"right":5,"bottom":0,"left":5}f;13;0.05813049898f;13;0.05554189906d;2;18D;K;6;$classD;K;6;CP$UIDd;3;127E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;157E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;158E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;89E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;100E;E;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;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;25E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;48E;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;27E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;29E;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;2;49E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;50E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;51E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;46E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;27E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;52E;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;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;45E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;53E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;54E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;55E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;57E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;44E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;58E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;54E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;59E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;60E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;35E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;61E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;54E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;62E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;63E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;48E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;64E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;65E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;66E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;42E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;68E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;54E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;69E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;70E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;42E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;71E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;72E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;55E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;73E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;40E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;53E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;54E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;55E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;74E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;49E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;26E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;75E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;76E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;77E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;78E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;79E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;29E;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;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;81E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;81E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;82E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;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;2;30E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;84E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;85E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;86E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;2;90E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;1;0E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;2;38E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;2;37E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;2;91E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;2;91E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;2;91E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;2;91E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;2;92E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;2;92E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;2;92E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;2;93E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;2;94E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;K;6;CP$UIDd;2;80E;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;2;32E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;90E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;95E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;95E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;90E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;2;97E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;98E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;K;12;$agrid-colorD;K;6;CP$UIDd;2;99E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;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;101E;K;30;CPTableViewIntercellSpacingKeyD;K;6;CP$UIDd;3;102E;K;37;CPTableViewSelectionHighlightStyleKeyD;K;6;CP$UIDd;2;80E;K;37;CPTableViewColumnAutoresizingStyleKeyD;K;6;CP$UIDd;2;80E;K;31;CPTableViewMultipleSelectionKeyD;K;6;CP$UIDd;2;92E;K;28;CPTableViewEmptySelectionKeyD;K;6;CP$UIDd;2;92E;K;30;CPTableViewColumnReorderingKeyD;K;6;CP$UIDd;3;103E;K;28;CPTableViewColumnResizingKeyD;K;6;CP$UIDd;3;103E;K;29;CPTableViewColumnSelectionKeyD;K;6;CP$UIDd;2;92E;K;26;CPTableViewTableColumnsKeyD;K;6;CP$UIDd;3;104E;K;23;CPTableViewGridColorKeyD;K;6;CP$UIDd;2;99E;K;27;CPTableViewGridStyleMaskKeyD;K;6;CP$UIDd;2;80E;K;39;CPTableViewUsesAlternatingBackgroundKeyD;K;6;CP$UIDd;2;92E;K;34;CPTableViewAlternatingRowColorsKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewHeaderViewKeyD;K;6;CP$UIDd;1;0E;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;2;34E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;1;0E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;105E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;106E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;107E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;109E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;110E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;111E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;103E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;2;92E;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;2;36E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;112E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;113E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;114E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;115E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;80E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;31E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;116E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;2;80E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;117E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;36E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;118E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;119E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;114E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;120E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;115E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;121E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;80E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;31E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;122E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;2;80E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;123E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPColorWellK;8;$classesA;S;11;CPColorWellS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;39E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;124E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;125E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;126E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;127E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;K;19;CPColorWellColorKeyD;K;6;CP$UIDd;3;128E;K;22;CPColorWellBorderedKeyD;K;6;CP$UIDd;2;92E;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;41E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;129E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;130E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;K;6;$afontD;K;6;CP$UIDd;3;133E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;3;100E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;92E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;134E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;135E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;103E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;103E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;103E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;136E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;94E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;100E;K;31;CPTextFieldPlaceholderStringKeyD;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;43E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;137E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;138E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;139E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;140E;K;16;$aimage-positionD;K;6;CP$UIDd;2;94E;K;6;$afontD;K;6;CP$UIDd;3;133E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;80E;K;11;$aalignmentD;K;6;CP$UIDd;2;80E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;141E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;142E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;143E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;103E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;141E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;141E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;92E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;94E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;80E;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;39E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;145E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;126E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;100E;K;19;CPColorWellColorKeyD;K;6;CP$UIDd;3;146E;K;22;CPColorWellBorderedKeyD;K;6;CP$UIDd;3;103E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;147E;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;2;47E;K;28;CPObjectControllerContentKeyD;K;6;CP$UIDd;1;0E;K;36;CPObjectControllerObjectClassNameKeyD;K;6;CP$UIDd;3;148E;K;31;CPObjectControllerIsEditableKeyD;K;6;CP$UIDd;3;103E;K;49;CPObjectControllerAutomaticallyPreparesContentKeyD;K;6;CP$UIDd;3;103E;K;37;CPArrayControllerAvoidsEmptySelectionD;K;6;CP$UIDd;3;103E;K;49;CPArrayControllerClearsFilterPredicateOnInsertionD;K;6;CP$UIDd;3;103E;K;41;CPArrayControllerFilterRestrictsInsertionD;K;6;CP$UIDd;2;92E;K;35;CPArrayControllerPreservesSelectionD;K;6;CP$UIDd;3;103E;K;39;CPArrayControllerSelectsInsertedObjectsD;K;6;CP$UIDd;3;103E;K;47;CPArrayControllerAlwaysUsesMultipleValuesMarkerD;K;6;CP$UIDd;3;103E;K;47;CPArrayControllerAutomaticallyRearrangesObjectsD;K;6;CP$UIDd;3;103E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;27E;E;E;S;8;delegateS;9;theWindowS;22;value: selection.colorS;5;valueS;15;selection.colorD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;K;26;CPConditionallySetsEnabledD;K;6;CP$UIDd;3;103E;E;E;S;27;value: avoidsEmptySelectionS;20;avoidsEmptySelectionD;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;E;E;S;38;value: arrangedObjects.color.cssStringS;31;arrangedObjects.color.cssStringD;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;E;E;S;19;contentArray: arrayS;12;contentArrayS;5;arrayD;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;E;E;S;32;value: selection.color.cssStringS;25;selection.color.cssStringD;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;K;17;CPNullPlaceholderD;K;6;CP$UIDd;3;149E;E;E;S;26;textColor: selection.colorS;9;textColorD;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;E;E;D;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;K;26;CPConditionallySetsEnabledD;K;6;CP$UIDd;3;103E;E;E;S;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{335, 555}, {715, 473}}d;1;7S;6;Windowd;1;0S;20;{{0, 0}, {715, 473}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;E;E;S;6;normalS;22;{{20, 20}, {168, 135}}S;20;{{0, 0}, {168, 135}}D;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;38E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;93E;E;E;d;2;36S;10;scrollviewD;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;2;89E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;150E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;151E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;152E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;114E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;153E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;33E;E;d;2;10T;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;31E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;154E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;31E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;E;d;1;2S;20;{{0, 0}, {167, 133}}D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;96E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;155E;E;S;9;tableviewD;K;6;$classD;K;6;CP$UIDd;2;96E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;156E;E;d;1;4d;2;23S;6;{3, 2}F;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;35E;E;E;d;3;164d;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;108E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;154E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;157E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;158E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;K;16;$atext-alignmentD;K;6;CP$UIDd;2;80E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;143E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;159E;E;D;K;6;$classD;K;6;CP$UIDd;2;41E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;154E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;160E;K;6;$afontD;K;6;CP$UIDd;3;162E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;100E;K;20;$avertical-alignmentD;K;6;CP$UIDd;2;94E;K;11;$aalignmentD;K;6;CP$UIDd;2;80E;K;15;$acontent-insetD;K;6;CP$UIDd;3;164E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;143E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;135E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;100E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;80E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;143E;E;d;1;3S;19;{{1, 1}, {166, 15}}S;19;{{0, 0}, {166, 15}}d;1;8S;8;scrollerS;29;_horizontalScrollerDidScroll:f;18;0.9940119760479041S;22;{{224, 16}, {15, 102}}S;19;{{0, 0}, {15, 102}}d;11;-2147483648S;17;disabled+verticalS;27;_verticalScrollerDidScroll:f;18;0.9925373134328358S;22;{{213, 19}, {103, 24}}S;19;{{0, 0}, {103, 24}}S;9;colorwellS;8;borderedD;K;6;$classD;K;6;CP$UIDd;2;96E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;165E;E;S;22;{{210, 51}, {194, 17}}S;19;{{0, 0}, {194, 17}}S;9;textfieldD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;132E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;166E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;167E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;103E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;103E;E;S;5;Labeld;4;3072D;K;6;$classD;K;6;CP$UIDd;2;96E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;168E;E;S;22;{{18, 161}, {172, 18}}S;19;{{0, 0}, {172, 18}}S;9;check-boxS;8;selectedd;1;1S;21;Avoid Empty SelectionS;0;S;22;{{324, 20}, {103, 23}}S;19;{{0, 0}, {103, 23}}D;K;6;$classD;K;6;CP$UIDd;2;96E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;169E;E;S;13;AppControllerS;19;CPMutableDictionaryS;4;NULLS;20;{{1, 1}, {166, 133}}S;20;{{0, 0}, {166, 133}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;33E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;96E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;170E;E;S;16;{{0, 0}, {0, 0}}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;141E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;141E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;141E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;173E;E;E;S;12;columnHeaderD;K;6;$classD;K;6;CP$UIDd;3;132E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;166E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;167E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;103E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;103E;E;S;11;placeholderD;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;161E;K;4;nameD;K;6;CP$UIDd;3;174E;K;12;defaultValueD;K;6;CP$UIDd;3;159E;K;6;valuesD;K;6;CP$UIDd;3;175E;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;163E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;176E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;141E;E;E;S;17;Arial, sans-serifd;2;12D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;141E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;141E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;141E;E;E;f;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;172E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;109E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;154E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;109E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;180E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;83E;E;S;4;fontD;K;6;$classD;K;6;CP$UIDd;2;56E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;181E;K;6;normalD;K;6;CP$UIDd;3;159E;E;E;S;39;{"top":0,"right":5,"bottom":0,"left":5}f;13;0.05813049898f;13;0.05554189906f;18;0.6862745098039216d;2;18D;K;6;$classD;K;6;CP$UIDd;3;132E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;166E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;167E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;92E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;103E;E;E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/CPColorWellBindings/Resources/MainMenu.xib b/Tests/Manual/CPColorWellBindings/Resources/MainMenu.xib index b716f978c..789de57ac 100644 --- a/Tests/Manual/CPColorWellBindings/Resources/MainMenu.xib +++ b/Tests/Manual/CPColorWellBindings/Resources/MainMenu.xib @@ -2,13 +2,13 @@ 1050 - 11C74 - 1938 - 1138.23 - 567.00 + 11E53 + 2182 + 1138.47 + 569.00 com.apple.InterfaceBuilder.CocoaPlugin - 1938 + 2182 YES @@ -72,7 +72,7 @@ {{213, 430}, {103, 23}} - + _NS:1100 YES YES @@ -297,13 +297,34 @@ 25
+ + + 268 + + YES + + YES + NSColor pasteboard type + + + {{324, 430}, {103, 23}} + + + + _NS:1100 + YES + + 1 + MC4wNTgxMzA0OTg5OCAwLjA1NTU0MTg5OTA2IDEAA + +
{715, 473}
- {{0, 0}, {1680, 1028}} + {{0, 0}, {2560, 1418}} {10000000000000, 10000000000000} YES
@@ -349,10 +370,14 @@ value: selection.color value selection.color + + NSConditionallySetsEnabled + + 2
- 523 + 540 @@ -438,6 +463,26 @@ 534 + + + value: selection.color + + + + + + value: selection.color + value + selection.color + + NSConditionallySetsEnabled + + + 2 + + + 541 + @@ -486,6 +531,7 @@ + @@ -576,6 +622,11 @@ + + 538 + + + @@ -602,8 +653,9 @@ 507.IBPluginDependency 520.IBPluginDependency 521.IBPluginDependency + 538.IBPluginDependency - + YES com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -625,6 +677,7 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin @@ -639,7 +692,7 @@ - 535 + 541 diff --git a/Tools/nib2cib/NSColorWell.j b/Tools/nib2cib/NSColorWell.j index 161d7b80c..dbb0a0042 100644 --- a/Tools/nib2cib/NSColorWell.j +++ b/Tools/nib2cib/NSColorWell.j @@ -38,6 +38,14 @@ [self setEnabled:[aCoder decodeBoolForKey:@"NSEnabled"]]; [self setBordered:[aCoder decodeBoolForKey:@"NSIsBordered"]]; [self setColor:[aCoder decodeObjectForKey:@"NSColor"]]; + + if ([self isBordered]) + { + var frameSize = [self frameSize]; + CPLog.debug("NSColorWell: adjusting height from %d to %d", frameSize.height, 24.0); + frameSize.height = 24.0; + [self setFrameSize:frameSize]; + } } return self; From 77a009c9a61e773e1b0f8802ba89a68838160d87 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Mon, 9 Jul 2012 19:53:57 +0100 Subject: [PATCH 050/109] Highlighted and disabled looks for bordered CPColorWell. --- .../colorwell-bezel-disabled-center.png | Bin 0 -> 141 bytes .../colorwell-bezel-disabled-left.png | Bin 0 -> 199 bytes .../colorwell-bezel-disabled-right.png | Bin 0 -> 198 bytes .../colorwell-bezel-highlighted-center.png | Bin 0 -> 143 bytes .../colorwell-bezel-highlighted-left.png | Bin 0 -> 208 bytes .../colorwell-bezel-highlighted-right.png | Bin 0 -> 216 bytes AppKit/Themes/Aristo/ThemeDescriptors.j | 20 ++++++++++++++++++ 7 files changed, 20 insertions(+) create mode 100644 AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-center.png create mode 100644 AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-left.png create mode 100644 AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-right.png create mode 100644 AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-center.png create mode 100644 AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-left.png create mode 100644 AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-right.png diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-center.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-center.png new file mode 100644 index 0000000000000000000000000000000000000000..3aefab2d3ed3cae052a6733098ab37801b7067dc GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!3HF)&rH7sq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c73q7rIEGZ*N=isbn2_+}^Yiod%kJ;5H#T70$>a0?|NnNO njF=pjI@O3X%#6AX49pDY%}i93?^&M*YGv?r^>bP0l+XkK2&63_ literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-left.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-left.png new file mode 100644 index 0000000000000000000000000000000000000000..6f1614ab9c1f7099e8113827f64b71bb83c36541 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^%s?!`!3HGlE#033DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MVX#1jv*Ddl2Q^95?GSr6rM38vF-c){r&ZSzrMb81Y0*op|`5!K|dq5*uc*P5Sx$`T6<% v3XB5JAHTi5efeLYR$=8UtdAVd@Czg`Xuk6_(7nO~vXsHo)z4*}Q$iB}#OhCK literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-right.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-disabled-right.png new file mode 100644 index 0000000000000000000000000000000000000000..bf56b963735bae32f0b3282cf50d711cab65d706 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^%s?!`!3HGlE#033DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MH!whjv*DdlF||q1elZ36#gCk@cR0C{_pSauV*c)kla`Q z|DSxveP+u?K0E>n3`cx){{R2q{z+0I(83^9!iZzODw#7e}BC_ljZ*z v4L$zb^Y71Nds4&Txte(+i-)8`10zGyX)o^+cXbP0l+XkK;=xFg literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-center.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-center.png new file mode 100644 index 0000000000000000000000000000000000000000..3dd335f5bf933eedb7840d409af36db582d1bde3 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!3HF)&rH7sq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6&ZTEIEGZ*N(u-M&rjG<_4QT#vhVNj8ygrJ898w(IHV;$ pPEsy-)iC?apD!XNQ|bpSOpc)I$ztaD0e0sv{1FERiC literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-left.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-left.png new file mode 100644 index 0000000000000000000000000000000000000000..8c15793353669ded78ddfa3a44478d1bd4aaacd7 GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^%s?!`!3HGlE#033DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MMa)2jv*Ddl0w46)6)_X3Ye2@*?fI{`#mSC<=WT(`(v)= z=H^x_EG+yx|Ng#0BSyyO|NsBDY&<0q(ICUNK!b<;B zVSe5J&(F`7Pteie(VJ&o{!Ss_0ef;qg@w%u1|}YcA91qZ5>Bh~0BvXRboFyt=akR{ E0KIWXApigX literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-right.png b/AppKit/Themes/Aristo/Resources/colorwell-bezel-highlighted-right.png new file mode 100644 index 0000000000000000000000000000000000000000..8bde109b6b5c2c6f02cfa2632648dc4246536f4f GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^%s?!`!3HGlE#033DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MOB_Ijv*Ddl0w46_0tm)cCZ}TJ>xq=qlLg6+v;zYm$&EN zxA5`tc_S$)**ml063_qt|DUHMB|S=E>}vSIgXh z7y2m7w6FhH!(Oz{m{HRH++6E&0gZ~jpGUjJ>(|BZ-o|<2CbK{SgO!)+PA0C&zCc$n Nc)I$ztaD0e0svg)Op^cr literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/ThemeDescriptors.j b/AppKit/Themes/Aristo/ThemeDescriptors.j index 0ae2790d4..00b7787dc 100755 --- a/AppKit/Themes/Aristo/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo/ThemeDescriptors.j @@ -1144,6 +1144,22 @@ var themedButtonValues = nil, ], PatternIsHorizontal), + bezelHighlightedColor = PatternColor( + [ + ["colorwell-bezel-highlighted-left.png", 3.0, 24.0], + ["colorwell-bezel-highlighted-center.png", 1.0, 24.0], + ["colorwell-bezel-highlighted-right.png", 3.0, 24.0] + ], + PatternIsHorizontal), + + bezelDisabledColor = PatternColor( + [ + ["colorwell-bezel-disabled-left.png", 3.0, 24.0], + ["colorwell-bezel-disabled-center.png", 1.0, 24.0], + ["colorwell-bezel-disabled-right.png", 3.0, 24.0] + ], + PatternIsHorizontal), + contentBorderColor = PatternColor( [ ["colorwell-content-border-left.png", 1.0, 15.0], @@ -1157,6 +1173,10 @@ var themedButtonValues = nil, [@"content-inset", CGInsetMake(5.0, 5.0, 5.0, 5.0), CPThemeStateBordered], [@"content-border-inset", CGInsetMake(5.0, 5.0, 4.0, 5.0), CPThemeStateBordered], [@"content-border-color", contentBorderColor, CPThemeStateBordered], + + [@"bezel-color", bezelHighlightedColor, CPThemeStateBordered | CPThemeStateHighlighted], + + [@"bezel-color", bezelDisabledColor, CPThemeStateBordered | CPThemeStateDisabled], ]; [self registerThemeValues:themedColorWellValues forView:colorWell]; From 613f61a898d2614317c88e6567b794208f3a3064 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Mon, 9 Jul 2012 20:03:19 +0100 Subject: [PATCH 051/109] Unit test CPColorWell archiving. --- Tests/AppKit/CPColorWellTest.j | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Tests/AppKit/CPColorWellTest.j diff --git a/Tests/AppKit/CPColorWellTest.j b/Tests/AppKit/CPColorWellTest.j new file mode 100644 index 000000000..2e57ee0b9 --- /dev/null +++ b/Tests/AppKit/CPColorWellTest.j @@ -0,0 +1,32 @@ +@import +@import + +[CPApplication sharedApplication]; + +@implementation CPColorWellTest : OJTestCase +{ + CPColorWell colorWell; +} + +- (void)setUp +{ + colorWell = [[CPColorWell alloc] initWithFrame:CGRectMakeZero()]; +} + +- (void)testCoding +{ + [self assertTrue:[colorWell isBordered] message:"color well bordered"]; + [self assert:[CPColor whiteColor] equals:[colorWell color] message:"color well default color"]; + + [colorWell setColor:[CPColor greenColor]]; + [colorWell setBordered:NO]; + + // Test archiving. + var archived = [CPKeyedArchiver archivedDataWithRootObject:colorWell], + unarchived = [CPKeyedUnarchiver unarchiveObjectWithData:archived]; + + [self assertFalse:[colorWell isBordered] message:"color well archived bordered state"]; + [self assert:[CPColor greenColor] equals:[colorWell color] message:"color well archived color"]; +} + +@end From eb643a2df8580a3384d9d64211c38b0c17768ac9 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Mon, 9 Jul 2012 20:31:29 +0100 Subject: [PATCH 052/109] Simplify code. --- AppKit/CPButton.j | 23 +++-------------------- AppKit/CPTextField.j | 17 ++--------------- 2 files changed, 5 insertions(+), 35 deletions(-) diff --git a/AppKit/CPButton.j b/AppKit/CPButton.j index 7add82d70..8594bc410 100644 --- a/AppKit/CPButton.j +++ b/AppKit/CPButton.j @@ -576,35 +576,18 @@ CPButtonImageOffset = 3.0; { var contentInset = [self currentValueForThemeAttribute:@"content-inset"]; - if (_CGInsetIsEmpty(contentInset)) - return bounds; - - bounds = _CGRectMakeCopy(bounds); - bounds.origin.x += contentInset.left; - bounds.origin.y += contentInset.top; - bounds.size.width -= contentInset.left + contentInset.right; - bounds.size.height -= contentInset.top + contentInset.bottom; - - return bounds; + return _CGRectInsetByInset(bounds, contentInset); } - (CGRect)bezelRectForBounds:(CGRect)bounds { + // Is this necessary? The theme itself can just change its inset to a zero inset when !CPThemeStateBordered. if (![self isBordered]) return bounds; var bezelInset = [self currentValueForThemeAttribute:@"bezel-inset"]; - if (_CGInsetIsEmpty(bezelInset)) - return bounds; - - bounds = _CGRectMakeCopy(bounds); - bounds.origin.x += bezelInset.left; - bounds.origin.y += bezelInset.top; - bounds.size.width -= bezelInset.left + bezelInset.right; - bounds.size.height -= bezelInset.top + bezelInset.bottom; - - return bounds; + return _CGRectInsetByInset(bounds, bezelInset); } - (CGSize)_minimumFrameSize diff --git a/AppKit/CPTextField.j b/AppKit/CPTextField.j index 60874a91a..f02bb28fd 100644 --- a/AppKit/CPTextField.j +++ b/AppKit/CPTextField.j @@ -1313,27 +1313,14 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); { var contentInset = [self currentValueForThemeAttribute:@"content-inset"]; - bounds.origin.x += contentInset.left; - bounds.origin.y += contentInset.top; - bounds.size.width -= contentInset.left + contentInset.right; - bounds.size.height -= contentInset.top + contentInset.bottom; - - return bounds; + return _CGRectInsetByInset(bounds, contentInset); } - (CGRect)bezelRectForBounds:(CGRect)bounds { var bezelInset = [self currentValueForThemeAttribute:@"bezel-inset"]; - if (_CGInsetIsEmpty(bezelInset)) - return bounds; - - bounds.origin.x += bezelInset.left; - bounds.origin.y += bezelInset.top; - bounds.size.width -= bezelInset.left + bezelInset.right; - bounds.size.height -= bezelInset.top + bezelInset.bottom; - - return bounds; + return _CGRectInsetByInset(bounds, bezelInset); } - (CGRect)rectForEphemeralSubviewNamed:(CPString)aName From 63616cc50a1560854409e184f03313b0fb756b14 Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Mon, 9 Jul 2012 15:03:59 -0700 Subject: [PATCH 053/109] fix enter key not working to select items in CPComboBox. With the help of @aparajita --- AppKit/_CPPopUpList.j | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/AppKit/_CPPopUpList.j b/AppKit/_CPPopUpList.j index 2bf5f081b..20ebac313 100644 --- a/AppKit/_CPPopUpList.j +++ b/AppKit/_CPPopUpList.j @@ -578,6 +578,14 @@ var ListColumnIdentifier = @"1"; return YES; } break; + + case CPCarriageReturnCharacter: + if ([self isVisible]) + { +                [self closeListAfterItemClick]; + return YES; + } + break; } return NO; From 2712a4d45cd938fdfd477c000f9d1642919eb857 Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Mon, 9 Jul 2012 15:05:03 -0700 Subject: [PATCH 054/109] removed debug console.log --- AppKit/CPComboBox.j | 1 - 1 file changed, 1 deletion(-) diff --git a/AppKit/CPComboBox.j b/AppKit/CPComboBox.j index 1d2af4928..efd17405c 100644 --- a/AppKit/CPComboBox.j +++ b/AppKit/CPComboBox.j @@ -672,7 +672,6 @@ var CPComboBoxTextSubview = @"text", if (_completes) { - console.log("%d: %s", [theEvent keyCode], [theEvent _couldBeKeyEquivalent]); if (![theEvent _couldBeKeyEquivalent] && [theEvent characters].charAt(0) !== CPDeleteCharacter) { var value = [self _inputElement].value, From 6b6f5d98e4131b58c18556c5bdaf136577266ad9 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Mon, 9 Jul 2012 15:29:56 -0700 Subject: [PATCH 055/109] Overhaul of system font handling - System fonts now track the currently configured system font at runtime. - You can specify CPFontCurrentSystemSize as a system font size to track the currently configured system font size at runtime. - Theme fonts and nib2cib now determine face and size at runtime, there is no need to recompile if the system font is changed in Info.plist. - All hard-coded references to 12.0 as a system font size have been replaced by the current system font size. --- AppKit/CPApplication.j | 2 +- AppKit/CPFont.j | 214 +- AppKit/CPMenu/CPMenu.j | 2 +- AppKit/CPMenu/_CPMenuBarWindow.j | 6 +- AppKit/CPMenuItem/CPMenuItem.j | 2 +- AppKit/CPMenuItem/_CPMenuItemView.j | 2 +- AppKit/CPTableHeaderView.j | 6 +- AppKit/CPTextField.j | 2 +- AppKit/CPTokenField.j | 4 +- AppKit/CPWindow/_CPHUDWindowView.j | 2 +- AppKit/CPWindow/_CPStandardWindowView.j | 2 +- AppKit/Platform/DOM/CPPlatformString.j | 28 +- AppKit/Themes/Aristo/ThemeDescriptors.j | 34 +- AppKit/_CPImageAndTextView.j | 18 +- .../FontEnhancementTest/AppController.j | 22 +- Tests/Manual/FontEnhancementTest/Info.plist | 4 - .../Resources/MainMenu.cib | 2 +- .../Resources/MainMenu.xib | 4236 +++++++++-------- .../FontEnhancementTest/index-debug.html | 3 +- Tests/Manual/FontEnhancementTest/index.html | 3 +- .../Resources/MainMenu.cib | 2 +- .../Resources/MainMenu.xib | 132 +- .../fontinfo.xcodeproj/project.pbxproj | 29 +- .../imagesize.xcodeproj/project.pbxproj | 26 +- Tools/nib2cib/Converter+Mac.j | 20 +- Tools/nib2cib/NSFont.j | 64 +- Tools/nib2cib/NSTableColumn.j | 2 +- Tools/nib2cib/Nib2Cib.j | 10 + 28 files changed, 2572 insertions(+), 2307 deletions(-) diff --git a/AppKit/CPApplication.j b/AppKit/CPApplication.j index 15ad65916..127bc7b31 100644 --- a/AppKit/CPApplication.j +++ b/AppKit/CPApplication.j @@ -373,7 +373,7 @@ CPRunContinuesResponse = -1002; standardPath = [[CPBundle bundleForClass:[self class]] pathForResource:@"standardApplicationIcon.png"]; // FIXME move this into the CIB eventually - [applicationLabel setFont:[CPFont boldSystemFontOfSize:14.0]]; + [applicationLabel setFont:[CPFont boldSystemFontOfSize:[CPFont systemFontSize] + 2]]; [applicationLabel setAlignment:CPCenterTextAlignment]; [versionLabel setAlignment:CPCenterTextAlignment]; [copyrightLabel setAlignment:CPCenterTextAlignment]; diff --git a/AppKit/CPFont.j b/AppKit/CPFont.j index b96e4560c..0077df602 100644 --- a/AppKit/CPFont.j +++ b/AppKit/CPFont.j @@ -28,46 +28,83 @@ CPFontDefaultSystemFontFace = @"Arial, sans-serif"; CPFontDefaultSystemFontSize = 12; -var _CPFonts = {}, - _CPFontSystemFontFace = CPFontDefaultSystemFontFace, - _CPFontSystemFontSize = 12, - _CPFontFallbackFaces = CPFontDefaultSystemFontFace.split(", "), - _CPFontStripRegExp = new RegExp("(^\\s*[\"']?|[\"']?\\s*$)", "g"); +// To create a font of a size that will always reflect the current +// system font size, use this for the size argument. +CPFontCurrentSystemSize = -1; + +// For internal use only by this class and subclasses +_CPFontSystemFacePlaceholder = "_CPFontSystemFacePlaceholder"; + +var _CPFontCache = {}, + _CPSystemFontCache = {}, + _CPFontSystemFontFace = CPFontDefaultSystemFontFace, + _CPFontSystemFontSize = 12, + _CPFontFallbackFaces = CPFontDefaultSystemFontFace.split(", "), + _CPFontStripRegExp = new RegExp("(^\\s*[\"']?|[\"']?\\s*$)", "g"); +#define _CPRealFontSize(aSize) (aSize === CPFontCurrentSystemSize ? _CPFontSystemFontSize : aSize) #define _CPFontNormalizedNames(aName) _CPFontNormalizedNameArray(aName).join(", ") -#define _CPCachedFont(aName, aSize, isBold, isItalic) _CPFonts[_CPFontCreateCSSString(_CPFontNormalizedNames(aName), aSize, isBold, isItalic)] +#define _CPCachedFont(aName, aSize, isBold, isItalic) _CPFontCache[_CPFontCreateCSSString(_CPFontNormalizedNames(aName), aSize, isBold, isItalic)] +#define _CPUserFont(aName, aSize, isBold, isItalic) _CPCachedFont(aName, aSize, isBold, isItalic) || [[CPFont alloc] _initWithName:aName size:aSize bold:isBold italic:isItalic system:NO] + +#define _CPSystemFontCacheKey(aSize, isBold) (String(aSize) + (isBold ? "b" : "")) +#define _CPCachedSystemFont(aSize, isBold) _CPSystemFontCache[_CPSystemFontCacheKey(aSize, isBold)] +#define _CPSystemFont(aSize, isBold) (_CPCachedSystemFont(aSize, isBold) || [[CPFont alloc] _initWithName:_CPFontSystemFacePlaceholder size:aSize bold:isBold italic:NO system:YES]) /*! - @ingroup appkit - @class CPFont +@ingroup appkit +@class CPFont - The CPFont class allows control of the fonts used for displaying text anywhere on the screen. - The primary method for getting a particular font is through one of the class methods that take - a name and/or size as arguments, and return the appropriate CPFont. +The CPFont class allows control of the fonts used for displaying text anywhere on the screen. +The primary method for getting a particular font is through one of the class methods that take +a name and/or size as arguments, and return the appropriate CPFont. - By default the system font face/size is Arial 12px, with a fallback to sans-serif. You may - configure this at runtime in two ways: +### System fonts +When you create a font using \c -systemFontOfSize: or \c -boldSystemFontOfSize:, a proxy font is +created that always refers to the current system font face and size. By default the system +font face/size is Arial 12px, with a fallback to sans-serif 12px. You may configure this at +runtime in two ways: - - By sending [CPFont @link CPFont::setSystemFontFace: setSystemFontFace:@endlink] and/or [CPFont @link CPFont::setSystemFontSize: setSystemFontSize:@endlink]. - - By configuring Info.plist for your application or for AppKit. You can set the font face - by adding a CPSystemFontFace string item to the Info.plist, and you can set the font size - by adding a CPSystemFontSize integer item to the Info.plist. +- By sending [CPFont setSystemFontFace:] and/or [CPFont setSystemFontSize:]. + Note that if you change the system font face or size during runtime, the next time + any view using a system font is redrawn, it will show the new font. +- By configuring Info.plist for your application or for AppKit. You can set the font face + by adding a CPSystemFontFace string item to the Info.plist, and you can set the font size + by adding a CPSystemFontSize integer item to the Info.plist. - Note that in either case, you can specify a comma-delimited list of fonts as the font face. - The browser will use the first available font in the list. CPFont always ensures that Arial - and sans-serif are in the generated CSS string, so there is no need to add them to the end - of your font list. +Note that in either case, you can specify a comma-delimited list of fonts as the font face. +Do not quote enclose font faces that contain spaces, that is done automatically when a CSS +representation of a font is requested. - If you are using nib2cib, you should use the second method (using Info.plist), - and be sure to run nib2cib again any time you modify the CPSystemFontFace or CPSystemFontSize items. - For example, you might add this to your application's Info.plist to set the system font to Lucida Grande, - with an automatic fallback to Arial or sans-serif: +The browser will use the first available font in the list you supply. CPFont always ensures +that Arial and sans-serif are in the CSS representation of a font as a fallback, so there is +no need to add them to the end of your font list. - @code +### nib2cib conversion +Fonts are converted by nib2cib according to the following algorithm: + +- If the font family is Lucida Grande, then a system font will be created. +- If the font is Lucida Grande 13 (plain), the "default" font will be used at runtime. + The default font is taken from the "font" theme attribute if one exists, + otherwise from the current system font face and size. +- Lucida Grande of any size other than 13 will retain its size. +- Fonts using any family other than Lucida Grande will be used as is, including the size. + +### Using custom web fonts +The configurability of CPFont makes it easy to use a custom web font as the system font. +For example, if you want to use the google font Asap as the system font, you would do the +following: + +- Add a to the of index-debug.html and index.html: +@code + +@endcode +- Specify Asap as the system font in Info.plist by adding the following item: +@code CPSystemFontFace -Lucida Grande - @endcode +Asap +@endcode */ @implementation CPFont : CPObject { @@ -78,6 +115,7 @@ var _CPFonts = {}, float _lineHeight; BOOL _isBold @accessors(readonly, getter=isBold); BOOL _isItalic @accessors(readonly, getter=isItalic); + BOOL _isSystem @accessors(readonly, getter=isSystem); CPString _cssString; } @@ -93,7 +131,7 @@ var _CPFonts = {}, systemFontFace = [[CPBundle bundleForClass:[CPView class]] objectForInfoDictionaryKey:@"CPSystemFontFace"]; if (systemFontFace) - [self setSystemFontFace:systemFontFace]; + _CPFontSystemFontFace = _CPFontNormalizedNames(systemFontFace); var systemFontSize = [[CPBundle mainBundle] objectForInfoDictionaryKey:@"CPSystemFontSize"]; @@ -117,7 +155,13 @@ var _CPFonts = {}, */ + (CPString)setSystemFontFace:(CPString)aFace { - _CPFontSystemFontFace = _CPFontNormalizedNames(aFace); + var normalizedFaces = _CPFontNormalizedNames(aFace); + + if (normalizedFaces === _CPFontSystemFontFace) + return; + + [self _invalidateSystemFontCache] + _CPFontSystemFontFace = aFace; } /*! @@ -133,8 +177,26 @@ var _CPFonts = {}, */ + (float)setSystemFontSize:(float)size { - if (size > 0) + if (size > 0 && size !== _CPFontSystemFontSize) + { + [self _invalidateSystemFontCache]; _CPFontSystemFontSize = size; + } +} + ++ (void)_invalidateSystemFontCache +{ + var systemSize = String(_CPFontSystemFontSize), + currentSize = String(CPFontCurrentSystemSize); + + for (key in _CPSystemFontCache) + { + if (_CPSystemFontCache.hasOwnProperty(key) && + (key.indexOf(systemSize) === 0 || key.indexOf(currentSize) === 0)) + { + delete _CPSystemFontCache[key]; + } + } } /*! @@ -145,7 +207,7 @@ var _CPFonts = {}, */ + (CPFont)fontWithName:(CPString)aName size:(float)aSize { - return [CPFont fontWithName:aName size:aSize bold:NO italic:NO]; + return _CPUserFont(aName, aSize, NO, NO); } /*! @@ -157,7 +219,7 @@ var _CPFonts = {}, */ + (CPFont)fontWithName:(CPString)aName size:(float)aSize italic:(BOOL)italic { - return [CPFont fontWithName:aName size:aSize bold:NO italic:italic]; + return _CPUserFont(aName, aSize, NO, italic); } /*! @@ -168,7 +230,7 @@ var _CPFonts = {}, */ + (CPFont)boldFontWithName:(CPString)aName size:(float)aSize { - return [CPFont fontWithName:aName size:aSize bold:YES italic:NO]; + return _CPUserFont(aName, aSize, YES, NO); } /*! @@ -180,7 +242,7 @@ var _CPFonts = {}, */ + (CPFont)boldFontWithName:(CPString)aName size:(float)aSize italic:(BOOL)italic { - return [CPFont fontWithName:aName size:aSize bold:YES italic:italic]; + return _CPUserFont(aName, aSize, YES, italic); } /*! @@ -190,7 +252,7 @@ var _CPFonts = {}, */ + (CPFont)systemFontOfSize:(CPSize)aSize { - return [CPFont fontWithName:_CPFontSystemFontFace size:aSize bold:NO italic:NO]; + return _CPSystemFont(aSize, NO); } /*! @@ -200,34 +262,35 @@ var _CPFonts = {}, */ + (CPFont)boldSystemFontOfSize:(CPSize)aSize { - return [CPFont fontWithName:_CPFontSystemFontFace size:aSize bold:YES italic:NO]; + return _CPSystemFont(aSize, YES); } -/* FIXME Font Descriptor - @ignore -*/ -+ (CPFont)fontWithName:(CPString)aName size:(float)aSize bold:(BOOL)bold italic:(BOOL)italic -{ - return _CPCachedFont(aName, aSize, bold, italic) || [[CPFont alloc] _initWithName:aName size:aSize bold:bold italic:italic]; -} - -- (id)_initWithName:(CPString)aName size:(float)aSize bold:(BOOL)isBold italic:(BOOL)isItalic +- (id)_initWithName:(CPString)aName size:(float)aSize bold:(BOOL)isBold italic:(BOOL)isItalic system:(BOOL)isSystem { self = [super init]; if (self) { - _name = _CPFontNormalizedNames(aName); _size = aSize; _ascender = 0; _descender = 0; _lineHeight = 0; _isBold = isBold; _isItalic = isItalic; + _isSystem = isSystem; - _cssString = _CPFontCreateCSSString(_name, _size, _isBold, _isItalic); - - _CPFonts[_cssString] = self; + if (isSystem) + { + _name = aName; + _cssString = _CPFontCreateCSSString(_CPFontSystemFontFace, _size, _isBold, _isItalic); + _CPSystemFontCache[_CPSystemFontCacheKey(_size, _isBold)] = self; + } + else + { + _name = _CPFontNormalizedNames(aName); + _cssString = _CPFontCreateCSSString(_name, _size, _isBold, _isItalic); + _CPFontCache[_cssString] = self; + } } return self; @@ -238,10 +301,12 @@ var _CPFonts = {}, */ - (float)ascender { - if (!_ascender) - [self _getMetrics]; + var font = _isSystem ? _CPSystemFont(_size, _isBold) : self; - return _ascender; + if (!font._ascender) + [font _getMetrics]; + + return font._ascender; } /*! @@ -250,10 +315,12 @@ var _CPFonts = {}, */ - (float)descender { - if (!_descender) - [self _getMetrics]; + var font = _isSystem ? _CPSystemFont(_size, _isBold) : self; - return _descender; + if (!font._descender) + [font _getMetrics]; + + return font._descender; } /*! @@ -263,10 +330,12 @@ var _CPFonts = {}, */ - (float)defaultLineHeightForFont { - if (!_lineHeight) - [self _getMetrics]; + var font = _isSystem ? _CPSystemFont(_size, _isBold) : self; - return _lineHeight; + if (!font._lineHeight) + [font _getMetrics]; + + return font._lineHeight; } /*! @@ -274,7 +343,7 @@ var _CPFonts = {}, */ - (float)size { - return _size; + return _CPRealFontSize(_size); } /*! @@ -282,7 +351,9 @@ var _CPFonts = {}, */ - (CPString)cssString { - return _cssString; + var font = _isSystem ? _CPSystemFont(_size, _isBold) : self; + + return font._cssString; } /*! @@ -290,9 +361,17 @@ var _CPFonts = {}, */ - (CPString)familyName { + if (_isSystem) + return _CPFontSystemFontFace; + return _name; } +- (BOOL)isSystemSize +{ + return _size === CPFontCurrentSystemSize; +} + - (BOOL)isEqual:(id)anObject { return [anObject isKindOfClass:[CPFont class]] && [anObject cssString] === _cssString; @@ -305,7 +384,7 @@ var _CPFonts = {}, - (id)copy { - return [[CPFont alloc] _initWithName:_name size:_size bold:_isBold italic:_isItalic]; + return [[CPFont alloc] _initWithName:_name size:_size bold:_isBold italic:_isItalic isSystem:_isSystem]; } - (void)_getMetrics @@ -322,7 +401,8 @@ var _CPFonts = {}, var CPFontNameKey = @"CPFontNameKey", CPFontSizeKey = @"CPFontSizeKey", CPFontIsBoldKey = @"CPFontIsBoldKey", - CPFontIsItalicKey = @"CPFontIsItalicKey"; + CPFontIsItalicKey = @"CPFontIsItalicKey", + CPFontIsSystemKey = @"CPFontIsSystemKey"; @implementation CPFont (CPCoding) @@ -336,9 +416,10 @@ var CPFontNameKey = @"CPFontNameKey", var fontName = [aCoder decodeObjectForKey:CPFontNameKey], size = [aCoder decodeFloatForKey:CPFontSizeKey], isBold = [aCoder decodeBoolForKey:CPFontIsBoldKey], - isItalic = [aCoder decodeBoolForKey:CPFontIsItalicKey]; + isItalic = [aCoder decodeBoolForKey:CPFontIsItalicKey], + isSystem = [aCoder decodeBoolForKey:CPFontIsSystemKey]; - return [self _initWithName:fontName size:size bold:isBold italic:isItalic]; + return [self _initWithName:fontName size:size bold:isBold italic:isItalic system:isSystem]; } /*! @@ -351,6 +432,7 @@ var CPFontNameKey = @"CPFontNameKey", [aCoder encodeFloat:_size forKey:CPFontSizeKey]; [aCoder encodeBool:_isBold forKey:CPFontIsBoldKey]; [aCoder encodeBool:_isItalic forKey:CPFontIsItalicKey]; + [aCoder encodeBool:_isSystem forKey:CPFontIsSystemKey]; } @end @@ -359,7 +441,7 @@ var CPFontNameKey = @"CPFontNameKey", // aName must be normalized var _CPFontCreateCSSString = function(aName, aSize, isBold, isItalic) { - var properties = (isItalic ? "italic " : "") + (isBold ? "bold " : "") + aSize + "px "; + var properties = (isItalic ? "italic " : "") + (isBold ? "bold " : "") + _CPRealFontSize(aSize) + "px "; return properties + _CPFontConcatNameWithFallback(aName); }; diff --git a/AppKit/CPMenu/CPMenu.j b/AppKit/CPMenu/CPMenu.j index c022037cf..bdf617a8f 100644 --- a/AppKit/CPMenu/CPMenu.j +++ b/AppKit/CPMenu/CPMenu.j @@ -806,7 +806,7 @@ var _CPMenuBarVisible = NO, [aMenu _menuWillOpen]; if (!aFont) - aFont = [CPFont systemFontOfSize:12.0]; + aFont = [CPFont systemFontOfSize:[CPFont systemFontSize]]; var theWindow = [aView window], menuWindow = [_CPMenuWindow menuWindowWithMenu:aMenu font:aFont]; diff --git a/AppKit/CPMenu/_CPMenuBarWindow.j b/AppKit/CPMenu/_CPMenuBarWindow.j index 7f93dbd59..62d6a4426 100644 --- a/AppKit/CPMenu/_CPMenuBarWindow.j +++ b/AppKit/CPMenu/_CPMenuBarWindow.j @@ -39,7 +39,7 @@ var _CPMenuBarWindowBackgroundColor = nil, var bundle = [CPBundle bundleForClass:self]; - _CPMenuBarWindowFont = [CPFont boldSystemFontOfSize:12.0]; + _CPMenuBarWindowFont = [CPFont boldSystemFontOfSize:[CPFont systemFontSize]]; } + (CPFont)font @@ -74,7 +74,7 @@ var _CPMenuBarWindowBackgroundColor = nil, _titleField = [[CPTextField alloc] initWithFrame:CGRectMakeZero()]; - [_titleField setFont:[CPFont boldSystemFontOfSize:13.0]]; + [_titleField setFont:[CPFont boldSystemFontOfSize:[CPFont systemFontSize] + 1]]; [_titleField setAlignment:CPCenterTextAlignment]; [_titleField setTextShadowOffset:CGSizeMake(0, 1)]; @@ -335,7 +335,7 @@ var _CPMenuBarWindowBackgroundColor = nil, - (CPFont)font { - [CPFont systemFontOfSize:12.0]; + [CPFont systemFontOfSize:[CPFont systemFontSize]]; } - (void)tile diff --git a/AppKit/CPMenuItem/CPMenuItem.j b/AppKit/CPMenuItem/CPMenuItem.j index 063fed763..ea9e49225 100644 --- a/AppKit/CPMenuItem/CPMenuItem.j +++ b/AppKit/CPMenuItem/CPMenuItem.j @@ -281,7 +281,7 @@ var CPMenuItemStringRepresentationDictionary = [CPDictionary dictionary]; */ - (void)setFont:(CPFont)aFont { - if (_font == aFont) + if ([_font isEqual:aFont]) return; _font = aFont; diff --git a/AppKit/CPMenuItem/_CPMenuItemView.j b/AppKit/CPMenuItem/_CPMenuItemView.j index 86df38996..e29c93a2d 100644 --- a/AppKit/CPMenuItem/_CPMenuItemView.j +++ b/AppKit/CPMenuItem/_CPMenuItemView.j @@ -176,7 +176,7 @@ var _CPMenuItemSelectionColor = nil, - (void)setFont:(CPFont)aFont { - if (_font === aFont) + if ([_font isEqual:aFont]) return; _font = aFont; diff --git a/AppKit/CPTableHeaderView.j b/AppKit/CPTableHeaderView.j index 1ffcf2334..2420a9a5f 100644 --- a/AppKit/CPTableHeaderView.j +++ b/AppKit/CPTableHeaderView.j @@ -40,7 +40,7 @@ + (id)themeAttributes { return [CPDictionary dictionaryWithObjects:[[CPNull null], [CPNull null], CGInsetMakeZero(), [CPNull null], [CPNull null], [CPNull null], CGSizeMakeZero()] - forKeys:[@"background-color", @"text-alignment", @"text-inset", @"text-color", @"text-font", @"text-shadow-color", @"text-shadow-offset"]]; + forKeys:[@"background-color", @"text-alignment", @"text-inset", @"text-color", @"font", @"text-shadow-color", @"text-shadow-offset"]]; } - (void)initWithFrame:(CGRect)frame @@ -74,7 +74,7 @@ [_textField setFrame:_CGRectMake(inset.right, 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:@"text-font"]]; + [_textField setFont:[self currentValueForThemeAttribute:@"font"]]; [_textField setTextShadowColor:[self currentValueForThemeAttribute:@"text-shadow-color"]]; [_textField setTextShadowOffset:[self currentValueForThemeAttribute:@"text-shadow-offset"]]; [_textField setAlignment:[self currentValueForThemeAttribute:@"text-alignment"]]; @@ -102,7 +102,7 @@ - (void)setFont:(CPFont)aFont { - [self setValue:aFont forThemeAttribute:"text-font"]; + [self setValue:aFont forThemeAttribute:"font"]; } - (void)_setIndicatorImage:(CPImage)anImage diff --git a/AppKit/CPTextField.j b/AppKit/CPTextField.j index 60874a91a..83d74e2b5 100644 --- a/AppKit/CPTextField.j +++ b/AppKit/CPTextField.j @@ -487,7 +487,7 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); var element = [self _inputElement], font = [self currentValueForThemeAttribute:@"font"], - lineHeight = ROUND([font defaultLineHeightForFont]); + lineHeight = [font defaultLineHeightForFont]; element.value = _stringValue; element.style.color = [[self currentValueForThemeAttribute:@"text-color"] cssString]; diff --git a/AppKit/CPTokenField.j b/AppKit/CPTokenField.j index a0c094816..7791be27a 100755 --- a/AppKit/CPTokenField.j +++ b/AppKit/CPTokenField.j @@ -341,7 +341,7 @@ var CPScrollDestinationNone = 0, element.style.top = CGRectGetMinY(contentRect) + "px"; element.style.left = (CGRectGetMinX(contentRect) - 1) + "px"; // element effectively imposes a 1px left margin element.style.width = CGRectGetWidth(contentRect) + "px"; - element.style.height = ROUND([font defaultLineHeightForFont]) + "px"; + element.style.height = [font defaultLineHeightForFont] + "px"; [_tokenScrollView documentView]._DOMElement.appendChild(element); @@ -986,7 +986,7 @@ var CPScrollDestinationNone = 0, isEditing = [[self window] firstResponder] == self, tokenToken = [_CPTokenFieldToken new], font = [self currentValueForThemeAttribute:@"font"], - lineHeight = ROUND([font defaultLineHeightForFont]), + lineHeight = [font defaultLineHeightForFont], editorInset = [self currentValueForThemeAttribute:@"editor-inset"]; // Get the height of a typical token, or a token token if you will. diff --git a/AppKit/CPWindow/_CPHUDWindowView.j b/AppKit/CPWindow/_CPHUDWindowView.j index a45e6118e..488bd5c4b 100644 --- a/AppKit/CPWindow/_CPHUDWindowView.j +++ b/AppKit/CPWindow/_CPHUDWindowView.j @@ -127,7 +127,7 @@ var HUD_TITLEBAR_HEIGHT = 26.0; _titleField = [[CPTextField alloc] initWithFrame:CGRectMakeZero()]; [_titleField setHitTests:NO]; - [_titleField setFont:[CPFont systemFontOfSize:11.0]]; + [_titleField setFont:[CPFont systemFontOfSize:[CPFont systemFontSize] - 1]]; [_titleField setTextColor:[CPColor whiteColor]]; [_titleField setTextShadowColor:[CPColor blackColor]]; [_titleField setTextShadowOffset:CGSizeMake(0.0, 1.0)]; diff --git a/AppKit/CPWindow/_CPStandardWindowView.j b/AppKit/CPWindow/_CPStandardWindowView.j index 47cf61ddb..f0f9b9cf1 100644 --- a/AppKit/CPWindow/_CPStandardWindowView.j +++ b/AppKit/CPWindow/_CPStandardWindowView.j @@ -244,7 +244,7 @@ var STANDARD_GRADIENT_HEIGHT = 41.0, _titleField = [[CPTextField alloc] initWithFrame:CGRectMakeZero()]; - [_titleField setFont:[CPFont boldSystemFontOfSize:12.0]]; + [_titleField setFont:[CPFont boldSystemFontOfSize:CPFontCurrentSystemSize]]; [_titleField setAutoresizingMask:CPViewWidthSizable]; // FIXME: Make this to CPLineBreakByTruncatingMiddle once it's implemented. diff --git a/AppKit/Platform/DOM/CPPlatformString.j b/AppKit/Platform/DOM/CPPlatformString.j index b7b385904..5d06a9ee7 100644 --- a/AppKit/Platform/DOM/CPPlatformString.j +++ b/AppKit/Platform/DOM/CPPlatformString.j @@ -33,6 +33,14 @@ var DOMFixedWidthSpanElement = nil, { } ++ (void)initialize +{ + if (self !== [CPPlatformString class]) + return; + + DefaultFont = [CPFont systemFontOfSize:CPFontCurrentSystemSize]; +} + + (void)bootstrap { [self createDOMElements]; @@ -151,14 +159,6 @@ var DOMFixedWidthSpanElement = nil, + (CGSize)sizeOfString:(CPString)aString withFont:(CPFont)aFont forWidth:(float)aWidth { - if (!aFont) - { - if (!DefaultFont) - DefaultFont = [CPFont systemFontOfSize:12.0]; - - aFont = DefaultFont; - } - if (!DOMIFrameElement) [self createDOMElements]; @@ -172,7 +172,7 @@ var DOMFixedWidthSpanElement = nil, span.style.width = ROUND(aWidth) + "px"; } - span.style.font = [aFont cssString]; + span.style.font = [(aFont || DefaultFont) cssString]; if (CPFeatureIsCompatible(CPJavaScriptInnerTextFeature)) span.innerText = aString; @@ -184,18 +184,10 @@ var DOMFixedWidthSpanElement = nil, + (CPDictionary)metricsOfFont:(CPFont)aFont { - if (!aFont) - { - if (!DefaultFont) - DefaultFont = [CPFont systemFontOfSize:12.0]; - - aFont = DefaultFont; - } - if (!DOMMetricsDivElement) [self createDOMMetricsElements]; - DOMMetricsDivElement.style.font = [aFont cssString]; + DOMMetricsDivElement.style.font = [(aFont || DefaultFont) cssString]; var baseline = DOMMetricsImgElement.offsetTop - DOMMetricsTextSpanElement.offsetTop + DOMMetricsImgElement.offsetHeight, descender = baseline - DOMMetricsTextSpanElement.offsetHeight, diff --git a/AppKit/Themes/Aristo/ThemeDescriptors.j b/AppKit/Themes/Aristo/ThemeDescriptors.j index df1eae02c..b3b8e98b9 100755 --- a/AppKit/Themes/Aristo/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo/ThemeDescriptors.j @@ -443,7 +443,7 @@ var themedButtonValues = nil, themedButtonValues = [ - [@"font", [CPFont boldSystemFontOfSize:12.0], CPThemeStateBordered], + [@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize], CPThemeStateBordered], [@"text-color", [CPColor colorWithCalibratedWhite:79.0 / 255.0 alpha:1.0]], [@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], CPThemeStateBordered], [@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0], CPThemeStateBordered | CPThemeStateDisabled], @@ -536,7 +536,7 @@ var themedButtonValues = nil, [@"bezel-color", disabledColor, CPThemeStateBordered | CPThemeStateDisabled], [@"content-inset", CGInsetMake(0, 21.0 + 5.0, 0, 5.0), CPThemeStateBordered], - [@"font", [CPFont boldSystemFontOfSize:12.0]], + [@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize]], [@"text-color", [CPColor colorWithCalibratedWhite:79.0 / 255.0 alpha:1.0]], [@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0]], @@ -580,7 +580,7 @@ var themedButtonValues = nil, [@"bezel-color", disabledColor, CPPopUpButtonStatePullsDown | CPThemeStateBordered | CPThemeStateDisabled], [@"content-inset", CGInsetMake(0, 27.0 + 5.0, 0, 5.0), CPThemeStateBordered], - [@"font", [CPFont boldSystemFontOfSize:12.0]], + [@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize]], [@"text-color", [CPColor colorWithCalibratedWhite:79.0 / 255.0 alpha:1.0]], [@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0]], @@ -909,11 +909,11 @@ var themedButtonValues = nil, [@"bezel-color", bezelColor, CPThemeStateBezeled], [@"bezel-color", bezelFocusedColor, CPThemeStateBezeled | CPThemeStateEditing], [@"bezel-color", bezelDisabledColor, CPThemeStateBezeled | CPThemeStateDisabled], - [@"font", [CPFont systemFontOfSize:12.0], CPThemeStateBezeled], + [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateBezeled], // no border [@"bezel-inset", CGInsetMakeZero()], - [@"content-inset", CGInsetMake(2.0, 2.0, 2.0, 2.0)], // as defined in [CPTextField +themeAttributes] + [@"content-inset", CGInsetMakeZero()], // with border [@"bezel-inset", CGInsetMakeZero(), CPThemeStateBezeled], @@ -929,10 +929,10 @@ var themedButtonValues = nil, [@"text-color", [CPColor colorWithCalibratedWhite:51.0 / 255.0 alpha:1.0], CPThemeStateTableDataView], [@"text-color", [CPColor whiteColor], CPThemeStateTableDataView | CPThemeStateSelectedTableDataView], - [@"font", [CPFont boldSystemFontOfSize:12.0], CPThemeStateTableDataView | CPThemeStateSelectedTableDataView], + [@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize], CPThemeStateTableDataView | CPThemeStateSelectedTableDataView], [@"text-color", [CPColor blackColor], CPThemeStateTableDataView | CPThemeStateEditing], [@"content-inset", CGInsetMake(8.0, 8.0, 7.0, 5.0), CPThemeStateTableDataView | CPThemeStateEditing], - [@"font", [CPFont systemFontOfSize:12.0], CPThemeStateTableDataView | CPThemeStateEditing], + [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateTableDataView | CPThemeStateEditing], [@"bezel-inset", CGInsetMake(-1.0, -1.0, -1.0, -1.0), CPThemeStateTableDataView | CPThemeStateEditing], [@"text-color", [CPColor colorWithCalibratedWhite:125.0 / 255.0 alpha:1.0], CPThemeStateTableDataView | CPThemeStateGroupRow], @@ -940,7 +940,7 @@ var themedButtonValues = nil, [@"text-shadow-color", [CPColor whiteColor], CPThemeStateTableDataView | CPThemeStateGroupRow], [@"text-shadow-offset", CGSizeMake(0,1), CPThemeStateTableDataView | CPThemeStateGroupRow], [@"text-shadow-color", [CPColor colorWithCalibratedWhite:0.0 alpha:0.6], CPThemeStateTableDataView | CPThemeStateGroupRow | CPThemeStateSelectedTableDataView], - [@"font", [CPFont boldSystemFontOfSize:12.0], CPThemeStateTableDataView | CPThemeStateGroupRow] + [@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize], CPThemeStateTableDataView | CPThemeStateGroupRow] ]; [self registerThemeValues:themedTextFieldValues forView:textfield]; @@ -987,7 +987,7 @@ var themedButtonValues = nil, [@"bezel-color", bezelColor, CPTextFieldStateRounded | CPThemeStateBezeled], [@"bezel-color", bezelFocusedColor, CPTextFieldStateRounded | CPThemeStateBezeled | CPThemeStateEditing], [@"bezel-color", bezelDisabledColor, CPTextFieldStateRounded | CPThemeStateBezeled | CPThemeStateDisabled], - [@"font", [CPFont systemFontOfSize:12.0]], + [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize]], // The new bezel is one pixel shorter, so we add one extra empty pixel at the bottom // for size compatibility with an earlier version. @@ -1225,7 +1225,7 @@ var themedButtonValues = nil, themeValues = [ [@"alignment", CPLeftTextAlignment, CPThemeStateNormal], - [@"font", [CPFont systemFontOfSize:12.0], CPThemeStateNormal], + [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateNormal], [@"content-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateNormal], [@"image", imageNormal, CPThemeStateNormal], @@ -1261,8 +1261,8 @@ var themedButtonValues = nil, themeValues = [ [@"alignment", CPLeftTextAlignment, CPThemeStateNormal], - [@"font", [CPFont systemFontOfSize:12.0], CPThemeStateNormal], - [@"content-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateNormal], + [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateNormal], + [@"content-inset", CGInsetMakeZero(), CPThemeStateNormal], [@"image", imageNormal, CPThemeStateNormal], [@"image", imageSelected, CPThemeStateSelected], @@ -1388,7 +1388,7 @@ var themedButtonValues = nil, [@"content-inset", CGInsetMake(0.0, 4.0, 0.0, 4.0), CPThemeStateNormal], [@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateNormal], - [@"font", [CPFont boldSystemFontOfSize:12.0]], + [@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize]], [@"text-color", [CPColor colorWithCalibratedWhite:79.0 / 255.0 alpha:1.0]], [@"text-color", [CPColor colorWithCalibratedWhite:0.6 alpha:1.0], CPThemeStateDisabled], [@"text-shadow-color", [CPColor colorWithCalibratedWhite:240.0 / 255.0 alpha:1.0]], @@ -1619,7 +1619,7 @@ var themedButtonValues = nil, [@"text-inset", CGInsetMake(0, 5, 0, 5)], [@"text-color", [CPColor colorWithCalibratedWhite:51.0 / 255.0 alpha:1.0]], - [@"text-font", [CPFont boldSystemFontOfSize:12.0]], + [@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize]], [@"text-shadow-color", [CPColor whiteColor]], [@"text-shadow-offset", CGSizeMake(0.0, 1.0)], [@"text-alignment", CPLeftTextAlignment], @@ -1739,13 +1739,13 @@ var themedButtonValues = nil, helpLeftOffset = 15, imageOffset = CGPointMake(15, 18), informationIcon = PatternImage("alert-info.png", 53.0, 46.0), - informativeFont = [CPFont systemFontOfSize:12.0], + informativeFont = [CPFont systemFontOfSize:CPFontCurrentSystemSize], inset = CGInsetMake(15, 15, 15, 80), - messageFont = [CPFont boldSystemFontOfSize:13.0], + messageFont = [CPFont boldSystemFontOfSize:CPFontDefaultSystemFontSize + 1], size = CGSizeMake(400.0, 110.0), suppressionButtonXOffset = 2.0, suppressionButtonYOffset = 10.0, - suppressionButtonFont = [CPFont systemFontOfSize:12.0], + suppressionButtonFont = [CPFont systemFontOfSize:CPFontCurrentSystemSize], warningIcon = PatternImage("alert-warning.png", 53.0, 46.0); themedAlertValues = diff --git a/AppKit/_CPImageAndTextView.j b/AppKit/_CPImageAndTextView.j index adb34716f..3881d6b57 100644 --- a/AppKit/_CPImageAndTextView.j +++ b/AppKit/_CPImageAndTextView.j @@ -98,7 +98,7 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0, [self setLineBreakMode:CPLineBreakByClipping]; //[self setTextColor:[aControl textColor]]; [self setAlignment:CPCenterTextAlignment]; - [self setFont:[CPFont systemFontOfSize:12.0]]; + [self setFont:[CPFont systemFontOfSize:CPFontCurrentSystemSize]]; [self setImagePosition:CPNoImage]; [self setImageScaling:CPImageScaleNone]; } @@ -242,7 +242,7 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0, - (void)setFont:(CPFont)aFont { - if (_font === aFont) + if ([_font isEqual:aFont]) return; _font = aFont; @@ -434,7 +434,7 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0, var shadowStyle = _DOMTextShadowElement.style; - shadowStyle.font = [_font ? _font : [CPFont systemFontOfSize:12.0] cssString]; + shadowStyle.font = [(_font || [CPFont systemFontOfSize:CPFontCurrentSystemSize]) cssString]; shadowStyle.position = "absolute"; shadowStyle.whiteSpace = textStyle.whiteSpace; shadowStyle.wordWrap = textStyle.wordWrap; @@ -484,7 +484,7 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0, if (_flags & _CPImageAndTextViewFontChangedFlag) { - var fontStyle = [(_font ? _font : [CPFont systemFontOfSize:12.0]) cssString]; + var fontStyle = [(_font || [CPFont systemFontOfSize:CPFontCurrentSystemSize]) cssString]; textStyle.font = fontStyle; if (shadowStyle) @@ -700,8 +700,8 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0, textStyle.top = ROUND(textRectY) + "px"; textStyle.left = ROUND(textRectX) + "px"; - textStyle.width = MAX(ROUND(textRectWidth), 0) + "px"; - textStyle.height = MAX(ROUND(textRectHeight), 0) + "px"; + textStyle.width = MAX(CEIL(textRectWidth), 0) + "px"; + textStyle.height = MAX(CEIL(textRectHeight), 0) + "px"; if (shadowStyle) { @@ -710,8 +710,8 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0, shadowStyle.top = ROUND(textRectY + _textShadowOffset.height) + "px"; shadowStyle.left = ROUND(textRectX + _textShadowOffset.width) + "px"; - shadowStyle.width = MAX(ROUND(textRectWidth), 0) + "px"; - shadowStyle.height = MAX(ROUND(textRectHeight), 0) + "px"; + shadowStyle.width = MAX(CEIL(textRectWidth), 0) + "px"; + shadowStyle.height = MAX(CEIL(textRectHeight), 0) + "px"; } } #endif @@ -734,7 +734,7 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0, if ((_imagePosition !== CPImageOnly) && [_text length] > 0) { if (!_textSize) - _textSize = [_text sizeWithFont:_font ? _font : [CPFont systemFontOfSize:12.0]]; + _textSize = [_text sizeWithFont:_font || [CPFont systemFontOfSize:CPFontCurrentSystemSize]]; if (!_image || _imagePosition === CPImageOverlaps) { diff --git a/Tests/Manual/FontEnhancementTest/AppController.j b/Tests/Manual/FontEnhancementTest/AppController.j index 6a2bd3518..6eff78438 100644 --- a/Tests/Manual/FontEnhancementTest/AppController.j +++ b/Tests/Manual/FontEnhancementTest/AppController.j @@ -7,6 +7,7 @@ */ @import +@import var fontLabelField = nil, @@ -15,17 +16,13 @@ var fontLabelField = nil, @implementation AppController : CPObject { - CPWindow theWindow; //this "outlet" is connected automatically by the Cib - CPTextField label1; - CPTextField fontLabel; - CPTableView theTableView; - CPRadio radio1; - CPRadio radio2; -} - -- (void)applicationDidFinishLaunching:(CPNotification)aNotification -{ - // This is called when the application is done loading. + @outlet CPWindow theWindow; + @outlet CPTextField systemFontLabel; + @outlet CPTextField label1; + @outlet CPTextField fontLabel; + @outlet CPTableView theTableView; + @outlet CPRadio radio1; + @outlet CPRadio radio2; } - (void)awakeFromCib @@ -44,6 +41,9 @@ var fontLabelField = nil, [radio1 setFont:font]; [radio2 setFont:font]; + + var systemFont = [CPString stringWithFormat:@"System font: %@ %d", [CPFont systemFontFace], [CPFont systemFontSize]]; + [systemFontLabel setStringValue:systemFont]; } - (int)numberOfRowsInTableView:(id)aTableView diff --git a/Tests/Manual/FontEnhancementTest/Info.plist b/Tests/Manual/FontEnhancementTest/Info.plist index bb75f15fa..8edb4a8bc 100644 --- a/Tests/Manual/FontEnhancementTest/Info.plist +++ b/Tests/Manual/FontEnhancementTest/Info.plist @@ -6,9 +6,5 @@ MainMenu.cib CPBundleName FontEnhancementTest - CPSystemFontFace - Lucida Grande - CPSystemFontSize - 12 diff --git a/Tests/Manual/FontEnhancementTest/Resources/MainMenu.cib b/Tests/Manual/FontEnhancementTest/Resources/MainMenu.cib index 9c95c7c3e..9418b3961 100644 --- a/Tests/Manual/FontEnhancementTest/Resources/MainMenu.cib +++ b/Tests/Manual/FontEnhancementTest/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;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;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;24E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;1;0E;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;57E;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;1;0E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;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;2;76E;D;K;6;CP$UIDd;2;77E;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;2;80E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;82E;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;83E;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;84E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;87E;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;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;58E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;28E;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;11E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;73E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;88E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;89E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;84E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;90E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;84E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;65E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;91E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;84E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;30E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;92E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;84E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;94E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;95E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;84E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;96E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;97E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;84E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;46E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;98E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;84E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;26E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;46E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;84E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;100E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;46E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;84E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;90E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;88E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;101E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;102E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;103E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;104E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;105E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;28E;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;27E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;107E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;107E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;108E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;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;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;110E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;111E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;K;6;$afontD;K;6;CP$UIDd;3;115E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;116E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;118E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;119E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;120E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;121E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;121E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;121E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;116E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;117E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;122E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;123E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;K;6;$afontD;K;6;CP$UIDd;3;124E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;116E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;118E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;125E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;120E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;121E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;121E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;121E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;116E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;117E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;126E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;127E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;128E;K;6;$afontD;K;6;CP$UIDd;3;129E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;116E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;118E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;130E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;120E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;118E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;118E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;118E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;132E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;116E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;117E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;133E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;134E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;135E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;128E;K;6;$afontD;K;6;CP$UIDd;3;136E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;116E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;118E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;130E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;120E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;118E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;118E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;118E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;132E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;116E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;117E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;125E;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;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;137E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;138E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;139E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;140E;K;6;$afontD;K;6;CP$UIDd;3;141E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;116E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;130E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;120E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;118E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;118E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;118E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;132E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;116E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;117E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;142E;K;27;CPSendsWholeSearchStringKeyD;K;6;CP$UIDd;3;121E;K;33;CPSendsSearchStringImmediatelyKeyD;K;6;CP$UIDd;3;121E;K;19;CPMaximumRecentsKeyD;K;6;CP$UIDd;3;143E;E;D;K;10;$classnameS;18;CPSegmentedControlK;8;$classesA;S;18;CPSegmentedControlS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;36E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;145E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;146E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;K;6;$afontD;K;6;CP$UIDd;3;147E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;106E;K;11;$aalignmentD;K;6;CP$UIDd;3;116E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;117E;K;29;CPSegmentedControlSegmentsKeyD;K;6;CP$UIDd;3;148E;K;29;CPSegmentedControlSelectedKeyD;K;6;CP$UIDd;3;106E;K;33;CPSegmentedControlSegmentStyleKeyD;K;6;CP$UIDd;3;149E;K;33;CPSegmentedControlTrackingModeKeyD;K;6;CP$UIDd;3;106E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;150E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;151E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;139E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;140E;K;6;$afontD;K;6;CP$UIDd;3;136E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;116E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;130E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;120E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;118E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;118E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;118E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;132E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;116E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;117E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;125E;K;27;CPSendsWholeSearchStringKeyD;K;6;CP$UIDd;3;121E;K;33;CPSendsSearchStringImmediatelyKeyD;K;6;CP$UIDd;3;121E;K;19;CPMaximumRecentsKeyD;K;6;CP$UIDd;3;143E;E;D;K;6;$classD;K;6;CP$UIDd;2;36E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;152E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;153E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;146E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;106E;K;11;$aalignmentD;K;6;CP$UIDd;3;116E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;117E;K;29;CPSegmentedControlSegmentsKeyD;K;6;CP$UIDd;3;155E;K;29;CPSegmentedControlSelectedKeyD;K;6;CP$UIDd;3;106E;K;33;CPSegmentedControlSegmentStyleKeyD;K;6;CP$UIDd;3;149E;K;33;CPSegmentedControlTrackingModeKeyD;K;6;CP$UIDd;3;106E;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;2;40E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;156E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;158E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;159E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;3;161E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;3;162E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;2;43E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;2;44E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;3;163E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;3;163E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;3;163E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;3;163E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;3;118E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;3;121E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;3;118E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;3;164E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;3;116E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;K;6;CP$UIDd;3;106E;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;2;42E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;41E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;165E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;166E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;41E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;167E;K;17;CPViewIsHiddenKeyD;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;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;41E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;171E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;117E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;106E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;172E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;42E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;41E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;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;41E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;167E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;168E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;169E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;175E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;41E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;176E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;117E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;106E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;177E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;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;2;45E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;161E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;178E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;178E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;161E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;179E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;180E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;K;12;$agrid-colorD;K;6;CP$UIDd;3;181E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;117E;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;182E;K;30;CPTableViewIntercellSpacingKeyD;K;6;CP$UIDd;3;183E;K;37;CPTableViewSelectionHighlightStyleKeyD;K;6;CP$UIDd;3;106E;K;37;CPTableViewColumnAutoresizingStyleKeyD;K;6;CP$UIDd;3;106E;K;31;CPTableViewMultipleSelectionKeyD;K;6;CP$UIDd;3;121E;K;28;CPTableViewEmptySelectionKeyD;K;6;CP$UIDd;3;118E;K;30;CPTableViewColumnReorderingKeyD;K;6;CP$UIDd;3;118E;K;28;CPTableViewColumnResizingKeyD;K;6;CP$UIDd;3;118E;K;29;CPTableViewColumnSelectionKeyD;K;6;CP$UIDd;3;118E;K;26;CPTableViewTableColumnsKeyD;K;6;CP$UIDd;3;184E;K;23;CPTableViewGridColorKeyD;K;6;CP$UIDd;3;181E;K;27;CPTableViewGridStyleMaskKeyD;K;6;CP$UIDd;3;106E;K;39;CPTableViewUsesAlternatingBackgroundKeyD;K;6;CP$UIDd;3;121E;K;34;CPTableViewAlternatingRowColorsKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewCornerViewKeyD;K;6;CP$UIDd;3;186E;K;24;CPTableViewHeaderViewKeyD;K;6;CP$UIDd;2;52E;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;2;47E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;3;187E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;188E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;189E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;190E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;192E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;193E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;194E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;121E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;118E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;3;195E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;196E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;189E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;190E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;197E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;198E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;194E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;121E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;118E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;3;199E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;200E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;163E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;201E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;202E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;203E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;194E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;121E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;118E;K;28;CPSortDescriptorPrototypeKeyD;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;2;51E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;162E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;204E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;204E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;162E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;205E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;K;29;CPTableHeaderViewTableViewKeyD;K;6;CP$UIDd;2;46E;K;33;CPTableHeaderViewDrawsColumnLinesD;K;6;CP$UIDd;3;118E;E;D;K;10;$classnameS;9;CPTabViewK;8;$classesA;S;9;CPTabViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;206E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;207E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;208E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;106E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;K;17;CPTabViewItemsKeyD;K;6;CP$UIDd;3;209E;K;24;CPTabViewSelectedItemKeyD;K;6;CP$UIDd;2;58E;K;16;CPTabViewTypeKeyD;K;6;CP$UIDd;3;106E;K;16;CPTabViewFontKeyD;K;6;CP$UIDd;3;210E;K;20;CPTabViewDelegateKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;13;CPTabViewItemK;8;$classesA;S;13;CPTabViewItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;26;CPTabViewItemIdentifierKeyD;K;6;CP$UIDd;3;195E;K;21;CPTabViewItemLabelKeyD;K;6;CP$UIDd;3;211E;K;20;CPTabViewItemViewKeyD;K;6;CP$UIDd;2;57E;K;23;CPTabViewItemAuxViewKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;212E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;213E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;26;CPTabViewItemIdentifierKeyD;K;6;CP$UIDd;3;199E;K;21;CPTabViewItemLabelKeyD;K;6;CP$UIDd;3;214E;K;20;CPTabViewItemViewKeyD;K;6;CP$UIDd;2;59E;K;23;CPTabViewItemAuxViewKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;54E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;215E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;213E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;54E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;167E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;216E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;217E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;218E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;106E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;K;17;CPTabViewItemsKeyD;K;6;CP$UIDd;3;219E;K;24;CPTabViewSelectedItemKeyD;K;6;CP$UIDd;2;61E;K;16;CPTabViewTypeKeyD;K;6;CP$UIDd;3;106E;K;16;CPTabViewFontKeyD;K;6;CP$UIDd;3;154E;K;20;CPTabViewDelegateKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;26;CPTabViewItemIdentifierKeyD;K;6;CP$UIDd;3;195E;K;21;CPTabViewItemLabelKeyD;K;6;CP$UIDd;3;220E;K;20;CPTabViewItemViewKeyD;K;6;CP$UIDd;2;62E;K;23;CPTabViewItemAuxViewKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;60E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;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;60E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;167E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;55E;K;26;CPTabViewItemIdentifierKeyD;K;6;CP$UIDd;3;199E;K;21;CPTabViewItemLabelKeyD;K;6;CP$UIDd;3;223E;K;20;CPTabViewItemViewKeyD;K;6;CP$UIDd;2;64E;K;23;CPTabViewItemAuxViewKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;224E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;222E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;225E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;226E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;227E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;K;6;$afontD;K;6;CP$UIDd;3;124E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;116E;K;11;$aalignmentD;K;6;CP$UIDd;3;117E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;118E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;228E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;120E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;121E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;121E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;121E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;116E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;117E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;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;66E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;229E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;230E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;231E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;232E;K;16;$aimage-positionD;K;6;CP$UIDd;3;106E;K;6;$afontD;K;6;CP$UIDd;3;233E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;106E;K;11;$aalignmentD;K;6;CP$UIDd;3;116E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;149E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;117E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;234E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;121E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;106E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;106E;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;66E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;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;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;231E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;232E;K;16;$aimage-positionD;K;6;CP$UIDd;3;106E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;106E;K;11;$aalignmentD;K;6;CP$UIDd;3;116E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;149E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;117E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;125E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;121E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;106E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;106E;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;69E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;237E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;238E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;239E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;240E;K;16;$aimage-positionD;K;6;CP$UIDd;3;116E;K;6;$afontD;K;6;CP$UIDd;3;241E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;106E;K;11;$aalignmentD;K;6;CP$UIDd;3;106E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;149E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;117E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;242E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;121E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;116E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;106E;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;69E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;243E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;244E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;239E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;240E;K;16;$aimage-positionD;K;6;CP$UIDd;3;116E;K;6;$afontD;K;6;CP$UIDd;3;136E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;106E;K;11;$aalignmentD;K;6;CP$UIDd;3;106E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;149E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;117E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;125E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;121E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;116E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;106E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;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;72E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;2;87E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;245E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;246E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;247E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;248E;K;6;$afontD;K;6;CP$UIDd;3;249E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;117E;K;11;$aalignmentD;K;6;CP$UIDd;3;106E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;117E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;121E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;116E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;106E;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;74E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;250E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;73E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;251E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;149E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;87E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;252E;E;D;K;6;$classD;K;6;CP$UIDd;2;74E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;253E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;73E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;251E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;87E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;252E;E;D;K;6;$classD;K;6;CP$UIDd;2;74E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;254E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;73E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;251E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;87E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;252E;E;D;K;6;$classD;K;6;CP$UIDd;2;72E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;2;86E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;255E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;246E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;247E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;248E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;117E;K;11;$aalignmentD;K;6;CP$UIDd;3;106E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;117E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;121E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;116E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;106E;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;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;125E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;78E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;251E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;149E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;86E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;252E;E;D;K;6;$classD;K;6;CP$UIDd;2;74E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;253E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;78E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;251E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;86E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;252E;E;D;K;6;$classD;K;6;CP$UIDd;2;74E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;254E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;78E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;251E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;86E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;252E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;256E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;257E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;258E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;259E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;260E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;261E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;262E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;85E;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;85E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;263E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;265E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;26E;E;E;S;8;delegateS;9;fontLabelS;6;label1D;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;2;93E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;82E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;266E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;266E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;82E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;267E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;268E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;269E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;248E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;116E;K;16;$aimage-positionD;K;6;CP$UIDd;3;116E;K;6;$afontD;K;6;CP$UIDd;3;270E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;106E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;116E;K;11;$aalignmentD;K;6;CP$UIDd;3;106E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;117E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;271E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;121E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;116E;K;24;CPButtonKeyEquivalentKeyD;K;6;CP$UIDd;3;272E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;273E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;274E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;275E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;277E;E;S;6;radio1D;K;6;$classD;K;6;CP$UIDd;2;93E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;82E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;278E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;266E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;82E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;267E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;268E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;269E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;232E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;116E;K;16;$aimage-positionD;K;6;CP$UIDd;3;116E;K;6;$afontD;K;6;CP$UIDd;3;270E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;106E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;116E;K;11;$aalignmentD;K;6;CP$UIDd;3;106E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;149E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;117E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;279E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;121E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;116E;K;24;CPButtonKeyEquivalentKeyD;K;6;CP$UIDd;3;280E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;252E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;274E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;275E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;277E;E;S;6;radio2S;12;theTableViewS;9;theWindowS;10;dataSourceS;32;{10000000000000, 10000000000000}S;8;CPWindowS;23;{{256, 60}, {612, 664}}d;1;7S;21;Font Enhancement Testd;1;0S;20;{{0, 0}, {612, 664}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;65E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;60E;E;E;S;6;normalS;21;{{29, 49}, {221, 28}}S;19;{{0, 0}, {221, 28}}d;2;36S;9;textfieldD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;114E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;281E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;267E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;118E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;118E;E;d;1;2d;1;4T;S;22;Georgia bold italic 18d;4;3072F;S;20;{{29, 84}, {95, 17}}S;18;{{0, 0}, {95, 17}}D;K;6;$classD;K;6;CP$UIDd;3;114E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;282E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;283E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;121E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;121E;E;S;15;Default IB fontS;22;{{26, 123}, {210, 32}}S;19;{{0, 0}, {210, 32}}S;19;bezeled+placeholderD;K;6;$classD;K;6;CP$UIDd;3;114E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;284E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;285E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;121E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;121E;E;S;0;D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;131E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;286E;E;S;15;Trebuchet MS 14S;22;{{26, 159}, {210, 29}}S;19;{{0, 0}, {210, 29}}D;K;6;$classD;K;6;CP$UIDd;3;114E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;282E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;283E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;121E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;121E;E;S;22;{{26, 209}, {211, 30}}S;19;{{0, 0}, {211, 30}}S;11;searchfieldS;27;bezeled+rounded+placeholderD;K;6;$classD;K;6;CP$UIDd;3;114E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;287E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;283E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;121E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;121E;E;S;10;Verdana 12d;3;254S;22;{{26, 295}, {182, 24}}S;19;{{0, 0}, {182, 24}}S;17;segmented-controlD;K;6;$classD;K;6;CP$UIDd;3;114E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;288E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;289E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;118E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;121E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;291E;D;K;6;CP$UIDd;3;292E;D;K;6;CP$UIDd;3;293E;E;E;d;1;1S;22;{{26, 241}, {210, 30}}S;19;{{0, 0}, {210, 30}}S;22;{{26, 330}, {152, 24}}S;19;{{0, 0}, {152, 24}}D;K;6;$classD;K;6;CP$UIDd;3;114E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;282E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;283E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;118E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;121E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;294E;D;K;6;CP$UIDd;3;295E;D;K;6;CP$UIDd;3;296E;E;E;S;23;{{32, 405}, {455, 135}}S;20;{{0, 0}, {455, 135}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;164E;E;E;S;10;scrollviewD;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;160E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;41E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;297E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;178E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;298E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;41E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;167E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;179E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;46E;E;D;K;6;$classD;K;6;CP$UIDd;3;160E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;41E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;299E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;300E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;301E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;41E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;167E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;179E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;52E;E;d;2;10D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;41E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;302E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;302E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;41E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;E;S;21;{{439, 1}, {15, 117}}S;19;{{0, 0}, {15, 117}}d;1;8d;11;-2147483648S;8;scrollerS;17;disabled+verticalS;27;_verticalScrollerDidScroll:f;18;0.8717948717948718S;24;{{-100, 220}, {426, 15}}S;19;{{0, 0}, {426, 15}}S;8;disabledS;29;_horizontalScrollerDidScroll:f;18;0.9906976744186047S;20;{{0, 0}, {453, 117}}D;K;6;$classD;K;6;CP$UIDd;3;131E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;303E;E;S;9;tableviewD;K;6;$classD;K;6;CP$UIDd;3;131E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;304E;E;d;2;23S;6;{3, 2}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;50E;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;185E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;41E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;106E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;305E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;306E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;41E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;167E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;307E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;E;S;1;0d;3;137d;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;191E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;302E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;302E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;308E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;309E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;106E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;310E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;136E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;302E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;302E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;311E;K;6;$afontD;K;6;CP$UIDd;3;313E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;117E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;116E;K;11;$aalignmentD;K;6;CP$UIDd;3;106E;K;15;$acontent-insetD;K;6;CP$UIDd;3;315E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;130E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;120E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;117E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;106E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;130E;E;d;1;3S;1;1d;3;131D;K;6;$classD;K;6;CP$UIDd;3;191E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;302E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;302E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;316E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;309E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;106E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;317E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;136E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;302E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;302E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;311E;K;6;$afontD;K;6;CP$UIDd;3;318E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;117E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;116E;K;11;$aalignmentD;K;6;CP$UIDd;3;106E;K;15;$acontent-insetD;K;6;CP$UIDd;3;319E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;130E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;120E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;117E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;106E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;130E;E;S;1;2d;3;125f;22;3.4028234663852886e+38D;K;6;$classD;K;6;CP$UIDd;3;191E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;302E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;302E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;320E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;309E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;106E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;321E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;136E;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;302E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;302E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;113E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;311E;K;6;$afontD;K;6;CP$UIDd;3;322E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;117E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;116E;K;11;$aalignmentD;K;6;CP$UIDd;3;106E;K;15;$acontent-insetD;K;6;CP$UIDd;3;323E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;130E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;120E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;117E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;106E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;130E;E;S;19;{{0, 0}, {453, 23}}S;14;tableHeaderRowS;22;{{25, 564}, {257, 85}}S;19;{{0, 0}, {257, 85}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;59E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;58E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;114E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;211E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;289E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;118E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;121E;E;S;6;ImpactS;21;{{10, 33}, {237, 39}}S;19;{{0, 0}, {237, 39}}S;2;13S;21;{{10, 13}, {237, 39}}S;23;{{322, 564}, {266, 85}}S;19;{{0, 0}, {266, 85}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;62E;E;E;D;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;63E;E;E;S;7;DefaultS;21;{{10, 13}, {246, 39}}S;19;{{0, 0}, {246, 39}}S;7;IB fontS;21;{{10, 33}, {246, 39}}S;21;{{29, 14}, {578, 17}}S;19;{{0, 0}, {578, 17}}d;2;34S;45;View font: S;22;{{361, 54}, {168, 24}}S;19;{{0, 0}, {168, 24}}S;6;buttonS;17;selected+borderedD;K;6;$classD;K;6;CP$UIDd;3;114E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;284E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;285E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;118E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;121E;E;S;20;Trebuchet MS Bold 14S;22;{{361, 91}, {118, 24}}S;19;{{0, 0}, {118, 24}}S;23;{{361, 146}, {213, 18}}S;19;{{0, 0}, {213, 18}}S;9;check-boxS;8;selectedD;K;6;$classD;K;6;CP$UIDd;3;114E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;324E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;325E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;121E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;118E;E;S;25;Times New Roman italic 16S;23;{{361, 178}, {113, 18}}S;19;{{0, 0}, {113, 18}}S;23;{{361, 225}, {198, 24}}S;19;{{0, 0}, {198, 24}}S;12;popup-buttonS;8;borderedD;K;6;$classD;K;6;CP$UIDd;3;114E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;326E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;289E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;121E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;121E;E;S;17;Lucida Console 13S;17;_popUpItemAction:d;7;1048576S;6;Item 2S;6;Item 3S;23;{{361, 262}, {198, 24}}S;23;{{363, 319}, {218, 20}}S;19;{{0, 0}, {218, 20}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;96E;E;E;S;23;{{363, 353}, {218, 18}}S;19;{{0, 0}, {218, 18}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;327E;D;K;6;CP$UIDd;3;328E;E;E;S;13;AppControllerS;10;OtherViewsD;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;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;77E;E;E;S;19;{{0, 0}, {107, 20}}d;2;18D;K;6;$classD;K;6;CP$UIDd;3;131E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;329E;E;S;5;radioD;K;6;$classD;K;6;CP$UIDd;3;114E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;330E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;285E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;121E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;121E;E;S;11;Palatino orS;4;cAA=d;7;1572864f;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;276E;K;21;CPRadioGroupRadiosKeyD;K;6;CP$UIDd;3;331E;K;28;CPRadioGroupSelectedRadioKeyD;K;6;CP$UIDd;2;96E;E;S;21;{{111, 0}, {107, 20}}S;10;Cambria 14S;4;QwA=S;7;GeorgiaS;13;Lucida Granded;2;12S;12;Trebuchet MSd;2;14D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;149E;E;E;S;7;VerdanaS;13;Comic Sans MSd;2;13D;K;10;$classnameS;14;_CPSegmentItemK;8;$classesA;S;14;_CPSegmentItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;290E;K;21;CPSegmentItemImageKeyD;K;6;CP$UIDd;1;0E;K;21;CPSegmentItemLabelKeyD;K;6;CP$UIDd;3;332E;K;20;CPSegmentItemMenuKeyD;K;6;CP$UIDd;1;0E;K;24;CPSegmentItemSelectedKeyD;K;6;CP$UIDd;3;118E;K;23;CPSegmentItemEnabledKeyD;K;6;CP$UIDd;3;118E;K;19;CPSegmentItemTagKeyD;K;6;CP$UIDd;3;106E;K;21;CPSegmentItemWidthKeyD;K;6;CP$UIDd;3;106E;E;D;K;6;$classD;K;6;CP$UIDd;3;290E;K;21;CPSegmentItemImageKeyD;K;6;CP$UIDd;1;0E;K;21;CPSegmentItemLabelKeyD;K;6;CP$UIDd;3;333E;K;20;CPSegmentItemMenuKeyD;K;6;CP$UIDd;1;0E;K;24;CPSegmentItemSelectedKeyD;K;6;CP$UIDd;3;121E;K;23;CPSegmentItemEnabledKeyD;K;6;CP$UIDd;3;118E;K;19;CPSegmentItemTagKeyD;K;6;CP$UIDd;3;149E;K;21;CPSegmentItemWidthKeyD;K;6;CP$UIDd;3;106E;E;D;K;6;$classD;K;6;CP$UIDd;3;290E;K;21;CPSegmentItemImageKeyD;K;6;CP$UIDd;1;0E;K;21;CPSegmentItemLabelKeyD;K;6;CP$UIDd;3;214E;K;20;CPSegmentItemMenuKeyD;K;6;CP$UIDd;1;0E;K;24;CPSegmentItemSelectedKeyD;K;6;CP$UIDd;3;121E;K;23;CPSegmentItemEnabledKeyD;K;6;CP$UIDd;3;118E;K;19;CPSegmentItemTagKeyD;K;6;CP$UIDd;3;106E;K;21;CPSegmentItemWidthKeyD;K;6;CP$UIDd;3;106E;E;D;K;6;$classD;K;6;CP$UIDd;3;290E;K;21;CPSegmentItemImageKeyD;K;6;CP$UIDd;1;0E;K;21;CPSegmentItemLabelKeyD;K;6;CP$UIDd;3;220E;K;20;CPSegmentItemMenuKeyD;K;6;CP$UIDd;1;0E;K;24;CPSegmentItemSelectedKeyD;K;6;CP$UIDd;3;118E;K;23;CPSegmentItemEnabledKeyD;K;6;CP$UIDd;3;118E;K;19;CPSegmentItemTagKeyD;K;6;CP$UIDd;3;106E;K;21;CPSegmentItemWidthKeyD;K;6;CP$UIDd;3;106E;E;D;K;6;$classD;K;6;CP$UIDd;3;290E;K;21;CPSegmentItemImageKeyD;K;6;CP$UIDd;1;0E;K;21;CPSegmentItemLabelKeyD;K;6;CP$UIDd;3;334E;K;20;CPSegmentItemMenuKeyD;K;6;CP$UIDd;1;0E;K;24;CPSegmentItemSelectedKeyD;K;6;CP$UIDd;3;121E;K;23;CPSegmentItemEnabledKeyD;K;6;CP$UIDd;3;118E;K;19;CPSegmentItemTagKeyD;K;6;CP$UIDd;3;149E;K;21;CPSegmentItemWidthKeyD;K;6;CP$UIDd;3;106E;E;D;K;6;$classD;K;6;CP$UIDd;3;290E;K;21;CPSegmentItemImageKeyD;K;6;CP$UIDd;1;0E;K;21;CPSegmentItemLabelKeyD;K;6;CP$UIDd;3;335E;K;20;CPSegmentItemMenuKeyD;K;6;CP$UIDd;1;0E;K;24;CPSegmentItemSelectedKeyD;K;6;CP$UIDd;3;121E;K;23;CPSegmentItemEnabledKeyD;K;6;CP$UIDd;3;118E;K;19;CPSegmentItemTagKeyD;K;6;CP$UIDd;3;106E;K;21;CPSegmentItemWidthKeyD;K;6;CP$UIDd;3;106E;E;S;20;{{1, 1}, {453, 117}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;46E;E;E;S;21;{{1, 118}, {453, 17}}S;19;{{0, 0}, {453, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;52E;E;E;S;16;{{0, 0}, {0, 0}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;149E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;274E;D;K;6;CP$UIDd;3;274E;D;K;6;CP$UIDd;3;274E;D;K;6;CP$UIDd;3;149E;E;E;S;22;{{439, 112}, {16, 23}}S;18;{{0, 0}, {16, 23}}S;10;cornerviewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;337E;E;E;S;12;columnHeaderS;19;Courier New Bold 13S;11;placeholderD;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;312E;K;4;nameD;K;6;CP$UIDd;3;335E;K;12;defaultValueD;K;6;CP$UIDd;3;136E;K;6;valuesD;K;6;CP$UIDd;3;339E;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;314E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;340E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;341E;E;E;S;14;Courier New 13D;K;6;$classD;K;6;CP$UIDd;3;312E;K;4;nameD;K;6;CP$UIDd;3;335E;K;12;defaultValueD;K;6;CP$UIDd;3;136E;K;6;valuesD;K;6;CP$UIDd;3;342E;E;D;K;6;$classD;K;6;CP$UIDd;3;314E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;340E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;343E;E;E;S;15;Default IB FontD;K;6;$classD;K;6;CP$UIDd;3;312E;K;4;nameD;K;6;CP$UIDd;3;335E;K;12;defaultValueD;K;6;CP$UIDd;3;136E;K;6;valuesD;K;6;CP$UIDd;3;344E;E;D;K;6;$classD;K;6;CP$UIDd;3;314E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;340E;E;S;15;Times New Romand;2;16S;14;Lucida ConsoleD;K;6;$classD;K;6;CP$UIDd;2;93E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;83E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;345E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;345E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;83E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;267E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;268E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;269E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;232E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;116E;K;16;$aimage-positionD;K;6;CP$UIDd;3;116E;K;6;$afontD;K;6;CP$UIDd;3;136E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;106E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;116E;K;11;$aalignmentD;K;6;CP$UIDd;3;116E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;149E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;117E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;220E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;121E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;116E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;106E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;274E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;275E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;346E;E;D;K;6;$classD;K;6;CP$UIDd;2;93E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;83E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;347E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;345E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;83E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;267E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;268E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;269E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;348E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;116E;K;16;$aimage-positionD;K;6;CP$UIDd;3;116E;K;6;$afontD;K;6;CP$UIDd;3;136E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;106E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;116E;K;11;$aalignmentD;K;6;CP$UIDd;3;149E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;106E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;117E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;223E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;121E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;116E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;106E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;274E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;275E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;346E;E;D;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;106E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;106E;E;E;S;8;PalatinoD;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;3;349E;E;S;10;Comic SansS;4;boldS;2;IBS;4;fontD;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;336E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;192E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;302E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;302E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;192E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;267E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;E;D;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;338E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;350E;K;6;normalD;K;6;CP$UIDd;3;350E;E;E;S;39;{"top":0,"right":5,"bottom":0,"left":5}D;K;6;$classD;K;6;CP$UIDd;3;336E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;197E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;302E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;302E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;197E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;267E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;3;338E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;350E;K;6;normalD;K;6;CP$UIDd;3;351E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;336E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;202E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;302E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;302E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;202E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;267E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;3;338E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;352E;K;6;normalD;K;6;CP$UIDd;3;136E;E;E;S;19;{{0, 0}, {107, 18}}D;K;6;$classD;K;6;CP$UIDd;3;276E;K;21;CPRadioGroupRadiosKeyD;K;6;CP$UIDd;3;353E;K;28;CPRadioGroupSelectedRadioKeyD;K;6;CP$UIDd;3;327E;E;S;21;{{111, 0}, {107, 18}}S;17;disabled+borderedD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;96E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;114E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;354E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;289E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;118E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;121E;E;D;K;6;$classD;K;6;CP$UIDd;3;114E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;354E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;289E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;121E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;121E;E;D;K;6;$classD;K;6;CP$UIDd;3;114E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;282E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;283E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;118E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;121E;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;3;355E;E;S;11;Courier NewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;327E;D;K;6;CP$UIDd;3;328E;E;E;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;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;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;25E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;57E;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;1;0E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;1;0E;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;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;1;0E;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;1;0E;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;1;0E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;91E;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;27E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;50E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;61E;D;K;6;CP$UIDd;2;64E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;29E;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;29E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;74E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;92E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;93E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;88E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;94E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;88E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;66E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;95E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;88E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;31E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;96E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;88E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;98E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;88E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;100E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;101E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;88E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;87E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;102E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;88E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;47E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;103E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;88E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;27E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;104E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;47E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;88E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;105E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;47E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;88E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;94E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;92E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;26E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;106E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;107E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;108E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;109E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;110E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;29E;K;53;_CPCibWindowTemplateWindowAutorecalculatesKeyViewLoopD;K;6;CP$UIDd;3;111E;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;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;113E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;113E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;114E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;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;30E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;116E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;117E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;119E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;6;$afontD;K;6;CP$UIDd;3;121E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;122E;K;11;$aalignmentD;K;6;CP$UIDd;3;123E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;111E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;124E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;125E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;126E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;126E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;126E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;128E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;122E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;123E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;30E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;129E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;130E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;119E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;6;$afontD;K;6;CP$UIDd;3;131E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;122E;K;11;$aalignmentD;K;6;CP$UIDd;3;123E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;111E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;132E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;125E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;126E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;126E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;126E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;128E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;122E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;123E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;30E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;133E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;134E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;119E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;135E;K;6;$afontD;K;6;CP$UIDd;3;136E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;122E;K;11;$aalignmentD;K;6;CP$UIDd;3;123E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;111E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;137E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;125E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;111E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;111E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;111E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;138E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;122E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;123E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;139E;E;D;K;6;$classD;K;6;CP$UIDd;2;30E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;140E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;141E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;119E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;135E;K;6;$afontD;K;6;CP$UIDd;3;131E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;122E;K;11;$aalignmentD;K;6;CP$UIDd;3;123E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;111E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;137E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;125E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;111E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;111E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;111E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;138E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;122E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;123E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;132E;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;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;142E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;143E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;144E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;145E;K;6;$afontD;K;6;CP$UIDd;3;146E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;122E;K;11;$aalignmentD;K;6;CP$UIDd;3;123E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;137E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;125E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;111E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;111E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;111E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;138E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;122E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;123E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;147E;K;27;CPSendsWholeSearchStringKeyD;K;6;CP$UIDd;3;126E;K;33;CPSendsSearchStringImmediatelyKeyD;K;6;CP$UIDd;3;126E;K;19;CPMaximumRecentsKeyD;K;6;CP$UIDd;3;148E;E;D;K;10;$classnameS;18;CPSegmentedControlK;8;$classesA;S;18;CPSegmentedControlS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;149E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;150E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;6;$afontD;K;6;CP$UIDd;3;152E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;112E;K;11;$aalignmentD;K;6;CP$UIDd;3;122E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;K;29;CPSegmentedControlSegmentsKeyD;K;6;CP$UIDd;3;153E;K;29;CPSegmentedControlSelectedKeyD;K;6;CP$UIDd;3;112E;K;33;CPSegmentedControlSegmentStyleKeyD;K;6;CP$UIDd;3;154E;K;33;CPSegmentedControlTrackingModeKeyD;K;6;CP$UIDd;3;112E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;155E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;156E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;144E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;145E;K;6;$afontD;K;6;CP$UIDd;3;131E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;122E;K;11;$aalignmentD;K;6;CP$UIDd;3;123E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;137E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;125E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;111E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;111E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;111E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;138E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;122E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;123E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;132E;K;27;CPSendsWholeSearchStringKeyD;K;6;CP$UIDd;3;126E;K;33;CPSendsSearchStringImmediatelyKeyD;K;6;CP$UIDd;3;126E;K;19;CPMaximumRecentsKeyD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;158E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;6;$afontD;K;6;CP$UIDd;3;159E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;112E;K;11;$aalignmentD;K;6;CP$UIDd;3;122E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;K;29;CPSegmentedControlSegmentsKeyD;K;6;CP$UIDd;3;160E;K;29;CPSegmentedControlSelectedKeyD;K;6;CP$UIDd;3;112E;K;33;CPSegmentedControlSegmentStyleKeyD;K;6;CP$UIDd;3;154E;K;33;CPSegmentedControlTrackingModeKeyD;K;6;CP$UIDd;3;112E;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;2;41E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;161E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;162E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;163E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;164E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;3;166E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;3;167E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;2;44E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;2;45E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;3;168E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;3;168E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;3;168E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;3;168E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;3;111E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;3;126E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;3;111E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;3;169E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;3;122E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;K;6;CP$UIDd;3;112E;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;2;43E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;170E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;171E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;42E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;172E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;173E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;174E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;175E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;112E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;42E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;176E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;112E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;177E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;43E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;178E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;179E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;42E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;172E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;173E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;174E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;180E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;112E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;42E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;181E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;112E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;182E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;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;2;46E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;166E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;183E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;183E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;166E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;184E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;185E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;12;$agrid-colorD;K;6;CP$UIDd;3;186E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;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;187E;K;30;CPTableViewIntercellSpacingKeyD;K;6;CP$UIDd;3;188E;K;37;CPTableViewSelectionHighlightStyleKeyD;K;6;CP$UIDd;3;112E;K;37;CPTableViewColumnAutoresizingStyleKeyD;K;6;CP$UIDd;3;112E;K;31;CPTableViewMultipleSelectionKeyD;K;6;CP$UIDd;3;126E;K;28;CPTableViewEmptySelectionKeyD;K;6;CP$UIDd;3;111E;K;30;CPTableViewColumnReorderingKeyD;K;6;CP$UIDd;3;111E;K;28;CPTableViewColumnResizingKeyD;K;6;CP$UIDd;3;111E;K;29;CPTableViewColumnSelectionKeyD;K;6;CP$UIDd;3;111E;K;26;CPTableViewTableColumnsKeyD;K;6;CP$UIDd;3;189E;K;23;CPTableViewGridColorKeyD;K;6;CP$UIDd;3;186E;K;27;CPTableViewGridStyleMaskKeyD;K;6;CP$UIDd;3;112E;K;39;CPTableViewUsesAlternatingBackgroundKeyD;K;6;CP$UIDd;3;126E;K;34;CPTableViewAlternatingRowColorsKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewCornerViewKeyD;K;6;CP$UIDd;3;191E;K;24;CPTableViewHeaderViewKeyD;K;6;CP$UIDd;2;53E;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;2;48E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;3;192E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;193E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;194E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;195E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;197E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;198E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;199E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;126E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;111E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;48E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;3;200E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;201E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;194E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;195E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;202E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;203E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;199E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;126E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;111E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;48E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;3;204E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;205E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;168E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;206E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;207E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;208E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;199E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;126E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;111E;K;28;CPSortDescriptorPrototypeKeyD;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;2;52E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;167E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;209E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;209E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;167E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;210E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;29;CPTableHeaderViewTableViewKeyD;K;6;CP$UIDd;2;47E;K;33;CPTableHeaderViewDrawsColumnLinesD;K;6;CP$UIDd;3;111E;E;D;K;10;$classnameS;9;CPTabViewK;8;$classesA;S;9;CPTabViewS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;211E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;212E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;213E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;17;CPTabViewItemsKeyD;K;6;CP$UIDd;3;214E;K;24;CPTabViewSelectedItemKeyD;K;6;CP$UIDd;2;59E;K;16;CPTabViewTypeKeyD;K;6;CP$UIDd;3;112E;K;16;CPTabViewFontKeyD;K;6;CP$UIDd;3;215E;K;20;CPTabViewDelegateKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;13;CPTabViewItemK;8;$classesA;S;13;CPTabViewItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;56E;K;26;CPTabViewItemIdentifierKeyD;K;6;CP$UIDd;3;200E;K;21;CPTabViewItemLabelKeyD;K;6;CP$UIDd;3;216E;K;20;CPTabViewItemViewKeyD;K;6;CP$UIDd;2;58E;K;23;CPTabViewItemAuxViewKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;217E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;218E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;E;D;K;6;$classD;K;6;CP$UIDd;2;56E;K;26;CPTabViewItemIdentifierKeyD;K;6;CP$UIDd;3;204E;K;21;CPTabViewItemLabelKeyD;K;6;CP$UIDd;3;219E;K;20;CPTabViewItemViewKeyD;K;6;CP$UIDd;2;60E;K;23;CPTabViewItemAuxViewKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;55E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;220E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;218E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;55E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;172E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;221E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;222E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;223E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;17;CPTabViewItemsKeyD;K;6;CP$UIDd;3;224E;K;24;CPTabViewSelectedItemKeyD;K;6;CP$UIDd;2;64E;K;16;CPTabViewTypeKeyD;K;6;CP$UIDd;3;112E;K;16;CPTabViewFontKeyD;K;6;CP$UIDd;3;131E;K;20;CPTabViewDelegateKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;56E;K;26;CPTabViewItemIdentifierKeyD;K;6;CP$UIDd;3;200E;K;21;CPTabViewItemLabelKeyD;K;6;CP$UIDd;3;225E;K;20;CPTabViewItemViewKeyD;K;6;CP$UIDd;2;63E;K;23;CPTabViewItemAuxViewKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;226E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;227E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;E;D;K;6;$classD;K;6;CP$UIDd;2;56E;K;26;CPTabViewItemIdentifierKeyD;K;6;CP$UIDd;3;204E;K;21;CPTabViewItemLabelKeyD;K;6;CP$UIDd;3;228E;K;20;CPTabViewItemViewKeyD;K;6;CP$UIDd;2;65E;K;23;CPTabViewItemAuxViewKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;61E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;229E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;227E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;61E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;172E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;E;D;K;6;$classD;K;6;CP$UIDd;2;30E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;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;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;232E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;119E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;6;$afontD;K;6;CP$UIDd;3;131E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;122E;K;11;$aalignmentD;K;6;CP$UIDd;3;123E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;111E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;233E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;125E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;126E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;126E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;126E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;128E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;122E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;123E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;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;67E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;234E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;235E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;236E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;237E;K;16;$aimage-positionD;K;6;CP$UIDd;3;112E;K;6;$afontD;K;6;CP$UIDd;3;238E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;112E;K;11;$aalignmentD;K;6;CP$UIDd;3;122E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;154E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;239E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;137E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;126E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;240E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;112E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;111E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;112E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;112E;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;67E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;241E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;158E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;236E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;237E;K;16;$aimage-positionD;K;6;CP$UIDd;3;112E;K;6;$afontD;K;6;CP$UIDd;3;159E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;112E;K;11;$aalignmentD;K;6;CP$UIDd;3;122E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;154E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;132E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;137E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;126E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;240E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;112E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;111E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;112E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;112E;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;70E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;242E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;243E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;244E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;245E;K;16;$aimage-positionD;K;6;CP$UIDd;3;122E;K;6;$afontD;K;6;CP$UIDd;3;246E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;112E;K;11;$aalignmentD;K;6;CP$UIDd;3;112E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;154E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;247E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;137E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;126E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;154E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;154E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;111E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;122E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;112E;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;70E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;248E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;249E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;244E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;245E;K;16;$aimage-positionD;K;6;CP$UIDd;3;122E;K;6;$afontD;K;6;CP$UIDd;3;131E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;112E;K;11;$aalignmentD;K;6;CP$UIDd;3;112E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;154E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;132E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;137E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;126E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;154E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;154E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;111E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;122E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;112E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;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;73E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;2;91E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;250E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;251E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;252E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;253E;K;6;$afontD;K;6;CP$UIDd;3;254E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;123E;K;11;$aalignmentD;K;6;CP$UIDd;3;112E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;112E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;137E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;126E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;255E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;112E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;111E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;122E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;112E;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;75E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;256E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;74E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;257E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;154E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;91E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;258E;E;D;K;6;$classD;K;6;CP$UIDd;2;75E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;259E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;74E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;257E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;91E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;258E;E;D;K;6;$classD;K;6;CP$UIDd;2;75E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;260E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;74E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;257E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;91E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;258E;E;D;K;6;$classD;K;6;CP$UIDd;2;73E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;2;90E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;261E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;251E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;252E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;253E;K;6;$afontD;K;6;CP$UIDd;3;159E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;123E;K;11;$aalignmentD;K;6;CP$UIDd;3;112E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;112E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;137E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;126E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;255E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;112E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;111E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;122E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;112E;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;75E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;132E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;79E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;257E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;154E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;90E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;258E;E;D;K;6;$classD;K;6;CP$UIDd;2;75E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;259E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;79E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;257E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;90E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;258E;E;D;K;6;$classD;K;6;CP$UIDd;2;75E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;260E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;79E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;257E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;90E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;258E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;262E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;263E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;264E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;265E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;266E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;267E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;E;D;K;6;$classD;K;6;CP$UIDd;2;30E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;268E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;269E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;119E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;6;$afontD;K;6;CP$UIDd;3;270E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;154E;K;11;$aalignmentD;K;6;CP$UIDd;3;123E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;111E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;271E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;125E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;126E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;126E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;126E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;128E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;154E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;123E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;70E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;272E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;243E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;244E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;245E;K;16;$aimage-positionD;K;6;CP$UIDd;3;122E;K;6;$afontD;K;6;CP$UIDd;3;273E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;112E;K;11;$aalignmentD;K;6;CP$UIDd;3;112E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;154E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;274E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;137E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;126E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;154E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;154E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;111E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;122E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;112E;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;30E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;29E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;275E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;231E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;29E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;232E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;119E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;6;$afontD;K;6;CP$UIDd;3;131E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;122E;K;11;$aalignmentD;K;6;CP$UIDd;3;123E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;111E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;276E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;125E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;126E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;126E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;126E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;128E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;122E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;123E;K;31;CPTextFieldPlaceholderStringKeyD;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;277E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;89E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;278E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;279E;E;D;K;6;$classD;K;6;CP$UIDd;2;89E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;278E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;280E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;27E;E;E;S;8;delegateS;9;fontLabelS;6;label1D;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;2;97E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;83E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;281E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;281E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;83E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;282E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;283E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;284E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;253E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;122E;K;16;$aimage-positionD;K;6;CP$UIDd;3;122E;K;6;$afontD;K;6;CP$UIDd;3;285E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;112E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;122E;K;11;$aalignmentD;K;6;CP$UIDd;3;112E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;112E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;286E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;126E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;154E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;154E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;111E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;122E;K;24;CPButtonKeyEquivalentKeyD;K;6;CP$UIDd;3;287E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;288E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;289E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;290E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;292E;E;S;6;radio1D;K;6;$classD;K;6;CP$UIDd;2;97E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;83E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;293E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;281E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;83E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;282E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;283E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;284E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;237E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;122E;K;16;$aimage-positionD;K;6;CP$UIDd;3;122E;K;6;$afontD;K;6;CP$UIDd;3;285E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;112E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;122E;K;11;$aalignmentD;K;6;CP$UIDd;3;112E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;154E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;294E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;126E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;154E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;154E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;111E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;122E;K;24;CPButtonKeyEquivalentKeyD;K;6;CP$UIDd;3;295E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;258E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;289E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;290E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;292E;E;S;6;radio2S;15;systemFontLabelS;12;theTableViewS;9;theWindowS;10;dataSourceS;32;{10000000000000, 10000000000000}S;8;CPWindowS;23;{{148, 80}, {612, 685}}d;1;7S;21;Font Enhancement TestT;d;1;0S;20;{{0, 0}, {612, 685}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;66E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;68E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;71E;D;K;6;CP$UIDd;2;86E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;61E;E;E;S;6;normalS;21;{{29, 82}, {221, 28}}S;19;{{0, 0}, {221, 28}}d;2;36S;9;textfieldD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;296E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;282E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;111E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;111E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;126E;E;d;1;2d;1;4S;22;Georgia bold italic 18d;4;3072F;D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;127E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;297E;E;S;21;{{29, 117}, {79, 17}}S;18;{{0, 0}, {79, 17}}D;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;298E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;299E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;111E;E;S;11;System fontS;22;{{26, 189}, {210, 32}}S;19;{{0, 0}, {210, 32}}S;19;bezeled+placeholderD;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;300E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;240E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;126E;E;S;0;D;K;6;$classD;K;6;CP$UIDd;3;127E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;301E;E;S;15;Trebuchet MS 14S;22;{{26, 225}, {210, 29}}S;19;{{0, 0}, {210, 29}}S;22;{{26, 269}, {211, 30}}S;19;{{0, 0}, {211, 30}}S;11;searchfieldS;27;bezeled+rounded+placeholderD;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;302E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;255E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;126E;E;S;10;Verdana 12d;3;254S;22;{{26, 365}, {182, 24}}S;19;{{0, 0}, {182, 24}}S;17;segmented-controlD;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;303E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;304E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;111E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;126E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;306E;D;K;6;CP$UIDd;3;307E;D;K;6;CP$UIDd;3;308E;E;E;d;1;1S;22;{{26, 301}, {210, 30}}S;19;{{0, 0}, {210, 30}}S;22;{{26, 400}, {118, 24}}S;19;{{0, 0}, {118, 24}}D;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;298E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;299E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;111E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;111E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;309E;D;K;6;CP$UIDd;3;310E;E;E;S;22;{{32, 470}, {455, 85}}S;19;{{0, 0}, {455, 85}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;169E;E;E;S;10;scrollviewD;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;165E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;311E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;183E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;312E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;42E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;172E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;184E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;47E;E;D;K;6;$classD;K;6;CP$UIDd;3;165E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;313E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;314E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;315E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;42E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;172E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;184E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;53E;E;d;2;10D;K;6;$classD;K;6;CP$UIDd;2;28E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;316E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;316E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;42E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;E;S;23;{{439, -49}, {15, 117}}S;19;{{0, 0}, {15, 117}}d;1;8d;11;-2147483648S;8;scrollerS;17;disabled+verticalS;27;_verticalScrollerDidScroll:f;18;0.8717948717948718S;24;{{-100, 170}, {426, 15}}S;19;{{0, 0}, {426, 15}}S;8;disabledS;29;_horizontalScrollerDidScroll:f;18;0.9906976744186047S;19;{{0, 0}, {453, 67}}D;K;6;$classD;K;6;CP$UIDd;3;127E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;317E;E;S;9;tableviewD;K;6;$classD;K;6;CP$UIDd;3;127E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;318E;E;d;2;23S;6;{3, 2}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;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;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;190E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;112E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;319E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;320E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;321E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;E;S;1;0d;3;137d;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;196E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;316E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;316E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;322E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;323E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;112E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;324E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;316E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;316E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;119E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;326E;K;6;$afontD;K;6;CP$UIDd;3;328E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;123E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;122E;K;11;$aalignmentD;K;6;CP$UIDd;3;112E;K;15;$acontent-insetD;K;6;CP$UIDd;3;330E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;137E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;125E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;123E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;112E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;137E;E;d;1;3S;1;1d;3;131D;K;6;$classD;K;6;CP$UIDd;3;196E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;316E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;316E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;331E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;323E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;112E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;332E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;316E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;316E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;119E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;326E;K;6;$afontD;K;6;CP$UIDd;3;333E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;123E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;122E;K;11;$aalignmentD;K;6;CP$UIDd;3;112E;K;15;$acontent-insetD;K;6;CP$UIDd;3;334E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;137E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;125E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;123E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;112E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;137E;E;S;1;2d;3;125f;22;3.4028234663852886e+38D;K;6;$classD;K;6;CP$UIDd;3;196E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;316E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;316E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;335E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;323E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;112E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;336E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;316E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;316E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;119E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;326E;K;6;$afontD;K;6;CP$UIDd;3;337E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;123E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;122E;K;11;$aalignmentD;K;6;CP$UIDd;3;112E;K;15;$acontent-insetD;K;6;CP$UIDd;3;338E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;137E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;125E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;123E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;112E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;137E;E;S;19;{{0, 0}, {453, 23}}S;14;tableHeaderRowS;22;{{25, 574}, {257, 85}}S;19;{{0, 0}, {257, 85}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;60E;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;E;E;D;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;216E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;304E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;111E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;126E;E;S;6;ImpactS;21;{{10, 33}, {237, 39}}S;19;{{0, 0}, {237, 39}}S;2;13S;21;{{10, 13}, {237, 39}}S;23;{{322, 574}, {266, 85}}S;19;{{0, 0}, {266, 85}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;65E;E;E;D;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;64E;E;E;S;6;SystemS;21;{{10, 33}, {246, 39}}S;19;{{0, 0}, {246, 39}}S;4;fontS;21;{{10, 13}, {246, 39}}S;21;{{29, 41}, {578, 17}}S;19;{{0, 0}, {578, 17}}d;2;34S;45;View font: S;22;{{361, 85}, {168, 24}}S;19;{{0, 0}, {168, 24}}S;6;buttonS;17;selected+borderedD;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;300E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;240E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;111E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;126E;E;S;20;Trebuchet MS Bold 14d;2;14S;23;{{361, 122}, {118, 24}}S;23;{{361, 207}, {213, 18}}S;19;{{0, 0}, {213, 18}}S;9;check-boxS;8;selectedD;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;339E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;340E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;111E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;126E;E;S;25;Times New Roman italic 16S;22;{{361, 174}, {97, 18}}S;18;{{0, 0}, {97, 18}}S;23;{{361, 281}, {198, 24}}S;19;{{0, 0}, {198, 24}}S;12;popup-buttonS;8;borderedD;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;341E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;304E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;126E;E;d;2;12S;17;Lucida Console 13S;17;_popUpItemAction:d;7;1048576S;6;Item 2S;6;Item 3S;23;{{361, 318}, {198, 24}}S;23;{{363, 370}, {218, 20}}S;19;{{0, 0}, {218, 20}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;3;100E;E;E;S;23;{{363, 404}, {218, 18}}S;19;{{0, 0}, {218, 18}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;342E;D;K;6;CP$UIDd;3;343E;E;E;S;22;{{29, 142}, {208, 22}}S;19;{{0, 0}, {208, 22}}D;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;298E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;282E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;111E;E;S;14;System font 18S;23;{{361, 239}, {213, 18}}D;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;344E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;304E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;126E;E;S;9;Ubuntu 13S;21;{{29, 16}, {578, 17}}S;13;System font: S;13;AppControllerS;10;OtherViewsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;82E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;77E;D;K;6;CP$UIDd;2;78E;E;E;S;19;{{0, 0}, {107, 20}}d;2;18D;K;6;$classD;K;6;CP$UIDd;3;127E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;345E;E;S;5;radioD;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;346E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;240E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;126E;E;S;11;Palatino orS;4;cAA=d;7;1572864f;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;291E;K;21;CPRadioGroupRadiosKeyD;K;6;CP$UIDd;3;347E;K;28;CPRadioGroupSelectedRadioKeyD;K;6;CP$UIDd;3;100E;E;S;21;{{111, 0}, {107, 20}}S;10;Cambria 14S;4;QwA=S;7;GeorgiaD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;348E;D;K;6;CP$UIDd;3;348E;D;K;6;CP$UIDd;3;348E;D;K;6;CP$UIDd;3;154E;E;E;S;28;_CPFontSystemFacePlaceholderd;2;-1S;12;Trebuchet MSD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;E;E;S;7;VerdanaS;13;Comic Sans MSd;2;13D;K;10;$classnameS;14;_CPSegmentItemK;8;$classesA;S;14;_CPSegmentItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;305E;K;21;CPSegmentItemImageKeyD;K;6;CP$UIDd;1;0E;K;21;CPSegmentItemLabelKeyD;K;6;CP$UIDd;3;349E;K;20;CPSegmentItemMenuKeyD;K;6;CP$UIDd;1;0E;K;24;CPSegmentItemSelectedKeyD;K;6;CP$UIDd;3;111E;K;23;CPSegmentItemEnabledKeyD;K;6;CP$UIDd;3;111E;K;19;CPSegmentItemTagKeyD;K;6;CP$UIDd;3;112E;K;21;CPSegmentItemWidthKeyD;K;6;CP$UIDd;3;112E;E;D;K;6;$classD;K;6;CP$UIDd;3;305E;K;21;CPSegmentItemImageKeyD;K;6;CP$UIDd;1;0E;K;21;CPSegmentItemLabelKeyD;K;6;CP$UIDd;3;350E;K;20;CPSegmentItemMenuKeyD;K;6;CP$UIDd;1;0E;K;24;CPSegmentItemSelectedKeyD;K;6;CP$UIDd;3;126E;K;23;CPSegmentItemEnabledKeyD;K;6;CP$UIDd;3;111E;K;19;CPSegmentItemTagKeyD;K;6;CP$UIDd;3;154E;K;21;CPSegmentItemWidthKeyD;K;6;CP$UIDd;3;112E;E;D;K;6;$classD;K;6;CP$UIDd;3;305E;K;21;CPSegmentItemImageKeyD;K;6;CP$UIDd;1;0E;K;21;CPSegmentItemLabelKeyD;K;6;CP$UIDd;3;219E;K;20;CPSegmentItemMenuKeyD;K;6;CP$UIDd;1;0E;K;24;CPSegmentItemSelectedKeyD;K;6;CP$UIDd;3;126E;K;23;CPSegmentItemEnabledKeyD;K;6;CP$UIDd;3;111E;K;19;CPSegmentItemTagKeyD;K;6;CP$UIDd;3;112E;K;21;CPSegmentItemWidthKeyD;K;6;CP$UIDd;3;112E;E;D;K;6;$classD;K;6;CP$UIDd;3;305E;K;21;CPSegmentItemImageKeyD;K;6;CP$UIDd;1;0E;K;21;CPSegmentItemLabelKeyD;K;6;CP$UIDd;3;225E;K;20;CPSegmentItemMenuKeyD;K;6;CP$UIDd;1;0E;K;24;CPSegmentItemSelectedKeyD;K;6;CP$UIDd;3;111E;K;23;CPSegmentItemEnabledKeyD;K;6;CP$UIDd;3;111E;K;19;CPSegmentItemTagKeyD;K;6;CP$UIDd;3;112E;K;21;CPSegmentItemWidthKeyD;K;6;CP$UIDd;3;112E;E;D;K;6;$classD;K;6;CP$UIDd;3;305E;K;21;CPSegmentItemImageKeyD;K;6;CP$UIDd;1;0E;K;21;CPSegmentItemLabelKeyD;K;6;CP$UIDd;3;228E;K;20;CPSegmentItemMenuKeyD;K;6;CP$UIDd;1;0E;K;24;CPSegmentItemSelectedKeyD;K;6;CP$UIDd;3;126E;K;23;CPSegmentItemEnabledKeyD;K;6;CP$UIDd;3;111E;K;19;CPSegmentItemTagKeyD;K;6;CP$UIDd;3;154E;K;21;CPSegmentItemWidthKeyD;K;6;CP$UIDd;3;112E;E;S;19;{{1, 1}, {453, 67}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;47E;E;E;S;20;{{1, 68}, {453, 17}}S;19;{{0, 0}, {453, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;53E;E;E;S;16;{{0, 0}, {0, 0}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;154E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;351E;D;K;6;CP$UIDd;3;351E;D;K;6;CP$UIDd;3;351E;D;K;6;CP$UIDd;3;154E;E;E;S;20;{{439, 0}, {16, 23}}S;18;{{0, 0}, {16, 23}}S;10;cornerviewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;353E;E;E;S;12;columnHeaderS;19;Courier New Bold 13D;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;298E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;255E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;111E;E;S;11;placeholderD;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;327E;K;4;nameD;K;6;CP$UIDd;3;228E;K;12;defaultValueD;K;6;CP$UIDd;3;325E;K;6;valuesD;K;6;CP$UIDd;3;355E;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;329E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;356E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;357E;E;E;S;14;Courier New 13D;K;6;$classD;K;6;CP$UIDd;3;327E;K;4;nameD;K;6;CP$UIDd;3;228E;K;12;defaultValueD;K;6;CP$UIDd;3;325E;K;6;valuesD;K;6;CP$UIDd;3;358E;E;D;K;6;$classD;K;6;CP$UIDd;3;329E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;356E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;359E;E;E;S;11;System FontD;K;6;$classD;K;6;CP$UIDd;3;327E;K;4;nameD;K;6;CP$UIDd;3;228E;K;12;defaultValueD;K;6;CP$UIDd;3;325E;K;6;valuesD;K;6;CP$UIDd;3;360E;E;D;K;6;$classD;K;6;CP$UIDd;3;329E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;356E;E;S;15;Times New Romand;2;16S;14;Lucida ConsoleD;K;6;$classD;K;6;CP$UIDd;2;97E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;84E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;361E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;361E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;84E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;282E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;283E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;284E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;237E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;122E;K;16;$aimage-positionD;K;6;CP$UIDd;3;122E;K;6;$afontD;K;6;CP$UIDd;3;131E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;112E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;122E;K;11;$aalignmentD;K;6;CP$UIDd;3;112E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;154E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;225E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;126E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;154E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;154E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;111E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;122E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;112E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;289E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;290E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;362E;E;D;K;6;$classD;K;6;CP$UIDd;2;97E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;84E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;363E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;361E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;84E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;282E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;283E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;284E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;364E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;122E;K;16;$aimage-positionD;K;6;CP$UIDd;3;122E;K;6;$afontD;K;6;CP$UIDd;3;131E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;112E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;122E;K;11;$aalignmentD;K;6;CP$UIDd;3;112E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;112E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;123E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;228E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;126E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;154E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;154E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;111E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;122E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;112E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;289E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;290E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;362E;E;S;6;UbuntuD;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;112E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;112E;E;E;S;8;PalatinoD;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;3;365E;E;f;18;0.6862745098039216S;10;Comic SansS;4;boldf;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;352E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;197E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;316E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;316E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;197E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;282E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;E;D;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;354E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;366E;K;6;normalD;K;6;CP$UIDd;3;366E;E;E;S;39;{"top":0,"right":5,"bottom":0,"left":5}D;K;6;$classD;K;6;CP$UIDd;3;352E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;202E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;316E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;316E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;202E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;282E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;E;D;K;6;$classD;K;6;CP$UIDd;3;354E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;366E;K;6;normalD;K;6;CP$UIDd;3;367E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;352E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;207E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;316E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;316E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;207E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;282E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;115E;E;D;K;6;$classD;K;6;CP$UIDd;3;354E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;368E;K;6;normalD;K;6;CP$UIDd;3;325E;E;E;S;19;{{0, 0}, {107, 18}}D;K;6;$classD;K;6;CP$UIDd;3;291E;K;21;CPRadioGroupRadiosKeyD;K;6;CP$UIDd;3;369E;K;28;CPRadioGroupSelectedRadioKeyD;K;6;CP$UIDd;3;342E;E;S;21;{{111, 0}, {107, 18}}S;17;disabled+borderedD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;3;100E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;370E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;304E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;111E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;126E;E;D;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;370E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;304E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;126E;E;D;K;6;$classD;K;6;CP$UIDd;3;120E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;344E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;255E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;111E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;126E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;126E;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;3;371E;E;S;11;Courier NewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;342E;D;K;6;CP$UIDd;3;343E;E;E;E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/FontEnhancementTest/Resources/MainMenu.xib b/Tests/Manual/FontEnhancementTest/Resources/MainMenu.xib index 84e7e776a..6bea1776e 100644 --- a/Tests/Manual/FontEnhancementTest/Resources/MainMenu.xib +++ b/Tests/Manual/FontEnhancementTest/Resources/MainMenu.xib @@ -1,900 +1,979 @@ - - 1050 - 10J869 - 804 - 1038.35 - 461.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 804 - - - YES - - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - YES - - NSApplication - - - FirstResponder - - - NSApplication - - - 7 - 2 - {{256, 694}, {612, 664}} - 1946157056 - Font Enhancement Test - NSWindow - - {1.79769e+308, 1.79769e+308} - - - 256 - - YES - - - 268 - {{29, 588}, {221, 26}} - - YES - - 68288064 - 272630784 - Georgia bold italic 18 - - Georgia-BoldItalic - 18 - 16 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 266 - {{29, 633}, {578, 17}} - - YES - - 68288064 - 272630784 - View font: <roll over a view to see its font> - - LucidaGrande - 13 - 16 - - - - - - - - - 268 - {{29, 563}, {95, 17}} - - YES - - 68288064 - 272630784 - Default IB font - - LucidaGrande - 13 - 1044 - - - - - - - - - 268 - {{363, 584}, {168, 25}} - - YES - - -2080244224 - 134217728 - Trebuchet MS Bold 14 - - TrebuchetMS-Bold - 14 - 16 - - - -2038152961 - 163 - - - 400 - 75 - - - - - 268 - {{363, 547}, {118, 25}} - - YES - - -2080244224 - 134217728 - Default IB font - - - -2038152961 - 163 - - - 400 - 75 - - - - - 268 - - YES - - - 2304 - - YES - - - 256 - {453, 117} - - YES - - - 256 - {453, 17} - - - - - - -2147483392 - {{439, 0}, {16, 17}} - - - - YES - - 0 - 137 - 40 - 1000 - - 75628096 - 2048 - Courier New Bold 13 - - LucidaGrande - 11 - 3100 - - - 3 - MC4zMzMzMzI5ODU2AA - - - 6 - System - headerTextColor - - - - - 337772096 - 2048 - Text Cell - - CourierNewPS-BoldMT - 13 - 16 - - - - 6 - System - controlBackgroundColor - - - - - 3 - YES - YES - - - - 1 - 131 - 40 - 1000 - - 75628096 - 2048 - Courier New 13 - - - - - - 337772096 - 2048 - Text Cell - - CourierNewPSMT - 13 - 16 - - - - - - 3 - YES - YES - - - - 2 - 125 - 10 - 3.4028234663852886e+38 - - 75628096 - 2048 - Default IB Font - - - 6 - System - headerColor - - 3 - MQA - - - - - - 337772096 - 2048 - Text Cell - - - - - - 3 - YES - YES - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 17 - -702545920 - - - 0 - 15 - 0 - YES - 0 - - - {{1, 17}, {453, 117}} - - - - - 4 - - - - -2147483392 - {{439, 17}, {15, 117}} - - - _doScroller: - 0.87179487179487181 - - - - -2147483392 - {{-100, -100}, {426, 15}} - - 1 - - _doScroller: - 0.99069767441860468 - - - - 2304 - - YES - - - {{1, 0}, {453, 17}} - - - - - 4 - - - - {{32, 124}, {455, 135}} - - - 530 - - - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 268 - {{32, 512}, {202, 25}} - - YES - - -1804468671 - 272630784 - - - TrebuchetMS - 14 - 16 - - Trebuchet MS 14 - - YES - - 6 - System - textBackgroundColor - - - - 6 - System - textColor - - - - - - - 268 - {{32, 479}, {202, 22}} - - YES - - -1804468671 - 272630784 - - - Default IB font - - YES - - - - - - - 268 - {{32, 428}, {203, 22}} - - YES - - 343014976 - 268436544 - - - Verdana - 12 - 16 - - Verdana 12 - - YES - 1 - - - - 130560 - 0 - search - - _searchFieldSearch: - - 138690815 - 0 - - 400 - 75 - - - 130560 - 0 - clear - - YES - - YES - - YES - AXDescription - NSAccessibilityEncodedAttributesValueType - - - YES - cancel - - - - - - _searchFieldCancel: - - 138690815 - 0 - - 400 - 75 - - 255 - - - - - 268 - {{32, 396}, {202, 22}} - - YES - - 343014976 - 268436544 - - - Default IB font - - YES - 1 - - - - 130560 - 0 - search - - _searchFieldSearch: - - 138690815 - 0 - - 400 - 75 - - - 130560 - 0 - clear - - YES - - YES - - YES - AXDescription - NSAccessibilityEncodedAttributesValueType - - - YES - cancel - - - - - - _searchFieldCancel: - - 138690815 - 0 - - 400 - 75 - - 255 - - - - - 268 - {{361, 500}, {213, 18}} - - YES - - -2080244224 - 0 - Times New Roman italic 16 - - TimesNewRomanPS-ItalicMT - 16 - 16 - - - 1211912703 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - - - 268 - {{361, 468}, {113, 18}} - - YES - - -2080244224 - 0 - Default IB font - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{360, 413}, {204, 26}} - - YES - - -2076049856 - 2048 - - LucidaConsole - 13 - 16 - - - 109199615 - 129 - - - 400 - 75 - - - Lucida Console 13 - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - Item 2 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Item 3 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - 1 - YES - YES - 2 - - - - - 268 - {{360, 376}, {204, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - Default IB font - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - OtherViews - - YES - - - - Item 2 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Item 3 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - 1 - YES - YES - 2 - - - - - 268 - {{30, 345}, {182, 24}} - - YES - - -2080244224 - 0 - - ComicSansMS-Bold - 13 - 16 - - - - YES - - Comic Sans - YES - 0 - - - bold - 1 - 0 - - - 13 - 0 - - - 1 - - - - - 268 - {{30, 310}, {152, 24}} - - YES - - 67239424 - 0 - - - - YES - - Default - YES - 0 - - - IB - 1 - 0 - - - font - 0 - - - 1 - - - - - 268 - {{363, 325}, {218, 20}} - - YES - 1 - 2 - - YES - - 67239424 - 0 - Palatino or - - Palatino-Roman - 14 - 16 - - - 1 - 1211912703 - 402653184 - - NSRadioButton - - - p - 200 - 25 - - - -2080244224 - 33554432 - Cambria 14 - - - 1211912703 - 268435456 - - C - 400 - 75 - - - {107, 20} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + 1050 + 11E53 + 851 + 1138.47 + 569.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 851 + + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + 7 + 2 + {{148, 653}, {612, 685}} + 1946159104 + Font Enhancement Test + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{29, 576}, {221, 26}} + + + YES + + 68288064 + 272630784 + Georgia bold italic 18 + + Georgia-BoldItalic + 18 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 266 + {{29, 627}, {578, 17}} + + + YES + + 68288064 + 272630784 + View font: <roll over a view to see its font> + + LucidaGrande + 13 + 16 + + + + + + + + + 266 + {{29, 652}, {578, 17}} + + YES + + 68288064 + 272630784 + System font: + + + + + + + + + 268 + {{29, 551}, {79, 17}} + + + YES + + 68288064 + 272630784 + System font + + LucidaGrande + 13 + 1040 + + + + + + + + + 268 + {{29, 521}, {208, 22}} + + + YES + + 67239424 + 272630272 + System font 18 + + LucidaGrande + 18 + 16 + + + + + + + + + 268 + {{363, 574}, {168, 25}} + + + YES + + -2080244224 + 134217728 + Trebuchet MS Bold 14 + + TrebuchetMS-Bold + 14 + 16 + + + -2038152961 + 163 + + + 400 + 75 + + + + + 268 + {{363, 537}, {118, 25}} + + + YES + + -2080244224 + 134217728 + System font + + + -2038152961 + 163 + + + 400 + 75 + + + + + 268 + + YES + + + 2304 + + YES + + + 256 + {453, 67} + + + YES + + + 256 + {453, 17} + + + + + + + -2147483392 + {{439, 0}, {16, 17}} + + + YES + + 0 + 137 + 40 + 1000 + + 75628096 + 2048 + Courier New Bold 13 + + LucidaGrande + 11 + 3088 + + + 3 + MC4zMzMzMzI5ODU2AA + + + 6 + System + headerTextColor + + + + + 337772096 + 2048 + Text Cell + + CourierNewPS-BoldMT + 13 + 16 + + + + 6 + System + controlBackgroundColor + + + + + 3 + YES + YES + + + + 1 + 131 + 40 + 1000 + + 75628096 + 2048 + Courier New 13 + + + + + + 337772096 + 2048 + Text Cell + + CourierNewPSMT + 13 + 16 + + + + + + 3 + YES + YES + + + + 2 + 125 + 10 + 3.4028234663852886e+38 + + 75628096 + 2048 + System Font + + + 6 + System + headerColor + + 3 + MQA + + + + + + 337772096 + 2048 + Text Cell + + + + + + 3 + YES + YES + + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 17 + -702545920 + + + 0 + 15 + 0 + YES + 0 + 1 + + + {{1, 17}, {453, 67}} + + + + + 4 + + + + -2147483392 + {{439, 17}, {15, 117}} + + + + _doScroller: + 0.87179487179487181 + + + + -2147483392 + {{-100, -100}, {426, 15}} + + + 1 + + _doScroller: + 0.99069767441860468 + + + + 2304 + + YES + + + {{1, 0}, {453, 17}} + + + + + 4 + + + {{32, 130}, {455, 85}} + + + 133650 + + + + + QSAAAEEgAABBmAAAQZgAAA + + + + 268 + {{32, 467}, {202, 25}} + + + YES + + -1804468671 + 272630784 + + + TrebuchetMS + 14 + 16 + + Trebuchet MS 14 + + YES + + 6 + System + textBackgroundColor + + + + 6 + System + textColor + + + + + + + 268 + {{32, 434}, {202, 22}} + + + YES + + -1804468671 + 272630784 + + + System font + + YES + + + + + + + 268 + {{32, 389}, {203, 22}} + + + YES + + 343014976 + 268436544 + + + Verdana + 12 + 16 + + Verdana 12 + + YES + 1 + + + + 130560 + 0 + search + + _searchFieldSearch: + + 138690815 + 0 + + 400 + 75 + + + 130560 + 0 + clear + + YES + + YES + + YES + AXDescription + NSAccessibilityEncodedAttributesValueType + + + YES + cancel + + + + + + _searchFieldCancel: + + 138690815 + 0 + + 400 + 75 + + 255 + + + + + 268 + {{32, 357}, {202, 22}} + + + YES + + 343014976 + 268436544 + + + System font + + YES + 1 + + + + 130560 + 0 + search + + _searchFieldSearch: + + 138690815 + 0 + + 400 + 75 + + + 130560 + 0 + clear + + YES + + YES + + YES + AXDescription + NSAccessibilityEncodedAttributesValueType + + + YES + cancel + + + + + + _searchFieldCancel: + + 138690815 + 0 + + 400 + 75 + + 255 + + + + + 268 + {{361, 460}, {213, 18}} + + + YES + + -2080244224 + 0 + Times New Roman italic 16 + + TimesNewRomanPS-ItalicMT + 16 + 16 + + + 1211912703 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + + 268 + {{361, 428}, {213, 18}} + + + YES + + -2080244224 + 0 + Ubuntu 13 + + Ubuntu-Regular + 13 + 16 + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{361, 493}, {97, 18}} + + + YES + + -2080244224 + 0 + System font + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{360, 378}, {204, 26}} + + + YES + + -2076049856 + 2048 + + LucidaConsole + 13 + 16 + + + 109199615 + 129 + + + 400 + 75 + + + Lucida Console 13 + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Item 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + 1 + YES + YES + 2 + + + + + 268 + {{360, 341}, {204, 26}} + + + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + System font + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Item 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + 1 + YES + YES + 2 + + + + + 268 + {{30, 296}, {182, 24}} + + + YES + + -2080244224 + 0 + + ComicSansMS-Bold + 13 + 16 + + + + YES + + Comic Sans + YES + 0 + + + bold + 1 + 0 + + + 13 + 0 + + + 1 + + + + + 268 + {{30, 261}, {118, 24}} + + + YES + + 67239424 + 0 + + + + YES + + System + YES + 0 + + + font + 1 + 0 + + + 1 + + + + + 268 + {{363, 295}, {218, 20}} + + + YES + 1 + 2 + + YES + + 67239424 + 0 + Palatino or + + Palatino-Roman + 14 + 16 + + + 1 + 1211912703 + 402653184 + + NSRadioButton + + + p + 200 + 25 + + + -2080244224 + 33554432 + Cambria 14 + + + 1211912703 + 268435456 + + C + 400 + 75 + + + {107, 20} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 0 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -919,85 +998,86 @@ AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - 3 - MCAwAA - - - - 400 - 75 - - 1 - - - - - - - - 268 - {{363, 293}, {218, 18}} - - YES - 1 - 2 - - YES - - -2080244224 - 134217728 - Default - - - 1 - 1211912703 - 0 - - - - 200 - 25 - - - 604110336 - 67108864 - IB font - - - 1211912703 - 0 - - 400 - 75 - - - {107, 18} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - YES - - YES - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + + + + + 3 + MCAwAA + + + + 400 + 75 + + 1 + + + + + + + + 268 + {{363, 263}, {218, 18}} + + + YES + 1 + 2 + + YES + + -2080244224 + 0 + System + + + 1 + 1211912703 + 0 + + + + 200 + 25 + + + 604110336 + 0 + font + + + 1211912703 + 0 + + 400 + 75 + + + {107, 18} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 0 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + YES + + YES + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -1022,1098 +1102,1118 @@ AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - - - 400 - 75 - - - - - - - - - 12 - {{25, 15}, {257, 85}} - - - YES - - 1 - - - 256 - {{10, 33}, {237, 39}} - - Impact - - - - - 2 - - - 256 - {{10, 33}, {237, 39}} - - - 13 - - - - - - - Impact - 13 - 16 - - 0 - YES - - YES - - - - - - 12 - {{322, 15}, {266, 85}} - - - YES - - 1 - - - 256 - {{10, 33}, {246, 39}} - - - Default - - - - - 2 - - - 256 - {{10, 33}, {246, 39}} - - IB font - - - - - - - LucidaGrande-Bold - 13 - 16 - - 0 - YES - - YES - - - - - {612, 664} - - - {{0, 0}, {2560, 1418}} - {1.79769e+308, 1.79769e+308} - - - AppController - - - - - YES - - - delegate - - - - 451 - - - - theWindow - - - - 459 - - - - label1 - - - - 462 - - - - fontLabel - - - - 465 - - - - theTableView - - - - 491 - - - - dataSource - - - - 514 - - - - delegate - - - - 515 - - - - radio1 - - - - 581 - - - - radio2 - - - - 582 - - - - - YES - - 0 - - YES - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 371 - - - YES - - - - - - 372 - - - YES - - - - - - - - - - - - - - - - - - - - - - - - - 450 - - - - - 460 - - - YES - - - - - - 461 - - - - - 463 - - - YES - - - - - - 464 - - - - - 468 - - - YES - - - - - - 469 - - - - - 474 - - - YES - - - - - - 475 - - - - - 476 - - - YES - - - - - - 477 - - - - - 478 - - - YES - - - - - - - - - 479 - - - - - 480 - - - - - 481 - - - YES - - - - - - - - 482 - - - - - 483 - - - YES - - - - - - 484 - - - YES - - - - - - 485 - - - - - 486 - - - - - 492 - - - YES - - - - - - 493 - - - - - 516 - - - YES - - - - - - 517 - - - - - 518 - - - YES - - - - - - 519 - - - - - 520 - - - YES - - - - - - 521 - - - - - 522 - - - YES - - - - - - 523 - - - - - 528 - - - YES - - - - - - 529 - - - - - 530 - - - YES - - - - - - 531 - - - - - 532 - - - YES - - - - - - 533 - - - YES - - - - - - 534 - - - YES - - - - - - - - 535 - - - - - 536 - - - - - 537 - - - - - 538 - - - YES - - - - - - 539 - - - YES - - - - - - 540 - - - YES - - - - - - - - 541 - - - - - 542 - - - - - 543 - - - - - 544 - - - YES - - - - - - 545 - - - - - 546 - - - YES - - - - - - 547 - - - - - 548 - - - YES - - - - - - - - 549 - - - - - 551 - - - - - 552 - - - - - 558 - - - YES - - - - - - - - 560 - - - - - 561 - - - - - 562 - - - - - 563 - - - YES - - - - - - - 564 - - - YES - - - - - - 565 - - - YES - - - - - - 566 - - - - - 567 - - - - - 573 - - - YES - - - - - - - 574 - - - YES - - - - - - 575 - - - YES - - - - - - 576 - - - - - 577 - - - - - - - YES - - YES - -3.IBPluginDependency - 371.IBEditorWindowLastContentRect - 371.IBPluginDependency - 371.IBWindowTemplateEditedContentRect - 371.NSWindowTemplate.visibleAtLaunch - 371.editorWindowContentRectSynchronizationRect - 371.windowTemplate.maxSize - 372.IBPluginDependency - 460.IBPluginDependency - 460.IBViewBoundsToFrameTransform - 461.IBPluginDependency - 463.IBPluginDependency - 463.IBViewBoundsToFrameTransform - 464.IBPluginDependency - 468.IBPluginDependency - 468.IBViewBoundsToFrameTransform - 469.IBPluginDependency - 474.IBPluginDependency - 474.IBViewBoundsToFrameTransform - 475.IBPluginDependency - 476.IBPluginDependency - 476.IBViewBoundsToFrameTransform - 477.IBPluginDependency - 478.IBPluginDependency - 478.IBViewBoundsToFrameTransform - 479.IBPluginDependency - 480.IBPluginDependency - 481.IBPluginDependency - 482.IBPluginDependency - 483.IBPluginDependency - 484.IBPluginDependency - 485.IBPluginDependency - 486.IBPluginDependency - 516.IBPluginDependency - 516.IBViewBoundsToFrameTransform - 517.IBPluginDependency - 518.IBPluginDependency - 518.IBViewBoundsToFrameTransform - 519.IBPluginDependency - 520.IBPluginDependency - 520.IBViewBoundsToFrameTransform - 521.IBPluginDependency - 522.IBPluginDependency - 522.IBViewBoundsToFrameTransform - 523.IBPluginDependency - 528.IBPluginDependency - 528.IBViewBoundsToFrameTransform - 529.IBPluginDependency - 530.IBPluginDependency - 530.IBViewBoundsToFrameTransform - 531.IBPluginDependency - 532.IBPluginDependency - 532.IBViewBoundsToFrameTransform - 533.IBPluginDependency - 534.IBEditorWindowLastContentRect - 534.IBPluginDependency - 535.IBPluginDependency - 536.IBPluginDependency - 537.IBPluginDependency - 538.IBPluginDependency - 538.IBViewBoundsToFrameTransform - 539.IBPluginDependency - 540.IBPluginDependency - 541.IBPluginDependency - 542.IBPluginDependency - 543.IBPluginDependency - 544.IBPluginDependency - 544.IBSegmentedControlTracker.RoundRobinState - 544.IBSegmentedControlTracker.WasGrowing - 544.IBViewBoundsToFrameTransform - 545.IBPluginDependency - 546.IBPluginDependency - 546.IBViewBoundsToFrameTransform - 547.IBPluginDependency - 548.IBPluginDependency - 548.IBViewBoundsToFrameTransform - 549.IBPluginDependency - 551.IBPluginDependency - 558.IBPluginDependency - 558.IBViewBoundsToFrameTransform - 561.IBPluginDependency - 562.IBPluginDependency - 563.IBPluginDependency - 563.IBViewBoundsToFrameTransform - 564.IBPluginDependency - 565.IBPluginDependency - 566.IBPluginDependency - 567.IBPluginDependency - 573.IBPluginDependency - 574.IBPluginDependency - 575.IBPluginDependency - 576.IBPluginDependency - 577.IBPluginDependency - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - {{742, 702}, {612, 664}} - com.apple.InterfaceBuilder.CocoaPlugin - {{742, 702}, {612, 664}} - - {{33, 99}, {480, 360}} - {3.40282e+38, 3.40282e+38} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCjAAAxBvAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABBiAAAxD5AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB6AAAxBeAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDv4AAxBfAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDv4AAxA6AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCAAAAw8gAAA - - 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 - - P4AAAL+AAABCAAAAxA6AAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCAAAAxAaAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABB4AAAw/oAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABCAAAAw+IAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDvoAAxAEAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDvoAAw/IAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDvgAAw9qAAA - - com.apple.InterfaceBuilder.CocoaPlugin - {{1091, 1078}, {204, 63}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDvgAAw8gAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - P4AAAL+AAABBkAAAw8mAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABAwAAAw7gAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDv4AAw6uAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABDv4AAw5qAAA - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - P4AAAL+AAABByAAAw3IAAA - - 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 - - - - - YES - - - YES - - - - 582 - - - - YES - - AppController - NSObject - - YES - - YES - fontLabel - label1 - radio1 - radio2 - theTableView - theWindow - - - YES - id - id - id - id - id - NSWindow - - - - YES - - YES - fontLabel - label1 - radio1 - radio2 - theTableView - theWindow - - - YES - - fontLabel - id - - - label1 - id - - - radio1 - id - - - radio2 - id - - - theTableView - id - - - theWindow - NSWindow - - - - - IBUserSource - - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - ../adsfsdf.xcodeproj - 3 - - YES - - YES - NSMenuCheckmark - NSMenuMixedState - NSSwitch - - - YES - {9, 8} - {7, 2} - {15, 15} - - - + + + + + + + + 400 + 75 + + + + + + + + + 12 + {{25, 26}, {257, 85}} + + + YES + + 1 + + + 256 + {{10, 33}, {237, 39}} + + Impact + + + + + 2 + + + 256 + {{10, 33}, {237, 39}} + + + + 13 + + + + + + + Impact + 13 + 16 + + 0 + YES + + YES + + + + + + 12 + {{322, 26}, {266, 85}} + + + YES + + 1 + + + 256 + {{10, 33}, {246, 39}} + + System + + + + + 2 + + + 256 + {{10, 33}, {246, 39}} + + + font + + + + + + + 0 + YES + + YES + + + + + {612, 685} + + + + {{0, 0}, {2560, 1418}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + AppController + + + + + YES + + + delegate + + + + 451 + + + + theWindow + + + + 459 + + + + label1 + + + + 462 + + + + fontLabel + + + + 465 + + + + theTableView + + + + 491 + + + + dataSource + + + + 514 + + + + delegate + + + + 515 + + + + radio1 + + + + 581 + + + + radio2 + + + + 582 + + + + systemFontLabel + + + + 610 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 371 + + + YES + + + + + + 372 + + + YES + + + + + + + + + + + + + + + + + + + + + + + + + + + + 450 + + + + + 460 + + + YES + + + + + + 461 + + + + + 463 + + + YES + + + + + + 464 + + + + + 468 + + + YES + + + + + + 469 + + + + + 474 + + + YES + + + + + + 475 + + + + + 476 + + + YES + + + + + + 477 + + + + + 478 + + + YES + + + + + + + + + 479 + + + + + 480 + + + + + 481 + + + YES + + + + + + + + 482 + + + + + 483 + + + YES + + + + + + 484 + + + YES + + + + + + 485 + + + + + 486 + + + + + 492 + + + YES + + + + + + 493 + + + + + 516 + + + YES + + + + + + 517 + + + + + 518 + + + YES + + + + + + 519 + + + + + 520 + + + YES + + + + + + 521 + + + + + 522 + + + YES + + + + + + 523 + + + + + 528 + + + YES + + + + + + 529 + + + + + 530 + + + YES + + + + + + 531 + + + + + 532 + + + YES + + + + + + 533 + + + YES + + + + + + 534 + + + YES + + + + + + + + 535 + + + + + 536 + + + + + 537 + + + + + 538 + + + YES + + + + + + 539 + + + YES + + + + + + 540 + + + YES + + + + + + + + 541 + + + + + 542 + + + + + 543 + + + + + 544 + + + YES + + + + + + 545 + + + + + 546 + + + YES + + + + + + 547 + + + + + 548 + + + YES + + + + + + + + 549 + + + + + 551 + + + + + 552 + + + + + 558 + + + YES + + + + + + + + 560 + + + + + 561 + + + + + 562 + + + + + 563 + + + YES + + + + + + + 564 + + + YES + + + + + + 565 + + + YES + + + + + + 566 + + + + + 567 + + + + + 573 + + + YES + + + + + + + 574 + + + YES + + + + + + 575 + + + YES + + + + + + 576 + + + + + 577 + + + + + 591 + + + YES + + + + + + 592 + + + + + 597 + + + YES + + + + + + 598 + + + + + 608 + + + YES + + + + + + 609 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 371.IBEditorWindowLastContentRect + 371.IBPluginDependency + 371.IBWindowTemplateEditedContentRect + 371.NSWindowTemplate.visibleAtLaunch + 372.IBPluginDependency + 450.IBPluginDependency + 460.IBPluginDependency + 461.IBPluginDependency + 463.IBPluginDependency + 463.IBViewBoundsToFrameTransform + 464.IBPluginDependency + 468.IBPluginDependency + 469.IBPluginDependency + 474.IBPluginDependency + 475.IBPluginDependency + 476.IBPluginDependency + 477.IBPluginDependency + 478.IBPluginDependency + 479.IBPluginDependency + 480.IBPluginDependency + 481.IBPluginDependency + 482.IBPluginDependency + 483.IBPluginDependency + 484.IBPluginDependency + 485.IBPluginDependency + 486.IBPluginDependency + 492.IBPluginDependency + 493.IBPluginDependency + 516.IBPluginDependency + 517.IBPluginDependency + 518.IBPluginDependency + 519.IBPluginDependency + 520.IBPluginDependency + 521.IBPluginDependency + 522.IBPluginDependency + 523.IBPluginDependency + 528.IBPluginDependency + 529.IBPluginDependency + 530.IBPluginDependency + 531.IBPluginDependency + 532.IBPluginDependency + 533.IBPluginDependency + 534.IBPluginDependency + 535.IBPluginDependency + 536.IBPluginDependency + 537.IBPluginDependency + 538.IBPluginDependency + 539.IBPluginDependency + 540.IBPluginDependency + 541.IBPluginDependency + 542.IBPluginDependency + 543.IBPluginDependency + 544.IBPluginDependency + 545.IBPluginDependency + 546.IBPluginDependency + 547.IBNSSegmentedControlInspectorSelectedSegmentMetadataKey + 547.IBPluginDependency + 548.IBPluginDependency + 549.IBPluginDependency + 551.IBPluginDependency + 552.IBPluginDependency + 558.IBPluginDependency + 560.IBPluginDependency + 561.IBPluginDependency + 562.IBPluginDependency + 563.IBPluginDependency + 564.IBPluginDependency + 565.IBPluginDependency + 566.IBPluginDependency + 567.IBPluginDependency + 573.IBPluginDependency + 574.IBPluginDependency + 575.IBPluginDependency + 576.IBPluginDependency + 577.IBPluginDependency + 591.IBPluginDependency + 592.IBPluginDependency + 597.IBPluginDependency + 598.IBPluginDependency + 608.IBPluginDependency + 608.IBViewBoundsToFrameTransform + 609.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1119, 569}, {612, 685}} + com.apple.InterfaceBuilder.CocoaPlugin + {{1119, 569}, {612, 685}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABB6AAAxCCAAA + + 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 + 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 + + P4AAAL+AAABCCAAAxB9AAA + + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 610 + + + + YES + + AppController + NSObject + + YES + + YES + fontLabel + label1 + radio1 + radio2 + theTableView + theWindow + + + YES + id + id + id + id + id + NSWindow + + + + YES + + YES + fontLabel + label1 + radio1 + radio2 + theTableView + theWindow + + + YES + + fontLabel + id + + + label1 + id + + + radio1 + id + + + radio2 + id + + + theTableView + id + + + theWindow + NSWindow + + + + + IBProjectSource + ./Classes/AppController.h + + + + AppController + + systemFontLabel + id + + + systemFontLabel + + systemFontLabel + id + + + + IBUserSource + + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + + 3 + + YES + + YES + NSMenuCheckmark + NSMenuMixedState + NSSwitch + + + YES + {11, 11} + {10, 3} + {15, 15} + + + diff --git a/Tests/Manual/FontEnhancementTest/index-debug.html b/Tests/Manual/FontEnhancementTest/index-debug.html index 52138da4a..30f87d1d5 100644 --- a/Tests/Manual/FontEnhancementTest/index-debug.html +++ b/Tests/Manual/FontEnhancementTest/index-debug.html @@ -19,7 +19,8 @@ - + + FontEnhancementTest diff --git a/Tests/Manual/FontEnhancementTest/index.html b/Tests/Manual/FontEnhancementTest/index.html index 6ce00e85e..5fa2df0fb 100644 --- a/Tests/Manual/FontEnhancementTest/index.html +++ b/Tests/Manual/FontEnhancementTest/index.html @@ -19,7 +19,8 @@ - + + FontEnhancementTest diff --git a/Tests/Manual/FontMetricsExplorer/Resources/MainMenu.cib b/Tests/Manual/FontMetricsExplorer/Resources/MainMenu.cib index c12b2c5af..213f49551 100644 --- a/Tests/Manual/FontMetricsExplorer/Resources/MainMenu.cib +++ b/Tests/Manual/FontMetricsExplorer/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;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;28E;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;29E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;1;0E;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;1;0E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;59E;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;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;37E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;60E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;61E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;57E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;62E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;42E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;63E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;53E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;64E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;65E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;37E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;66E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;54E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;68E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;51E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;35E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;70E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;31E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;71E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;54E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;55E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;72E;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;26E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;37E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;57E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;73E;E;D;K;6;$classD;K;6;CP$UIDd;2;26E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;51E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;57E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;74E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;60E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;30E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;75E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;76E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;77E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;78E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;79E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;33E;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;32E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;81E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;81E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;82E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;83E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;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;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;85E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;86E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;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;36E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;2;59E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;97E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;98E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;99E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;100E;K;6;$afontD;K;6;CP$UIDd;3;101E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;92E;K;11;$aalignmentD;K;6;CP$UIDd;2;80E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;80E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;92E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;96E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;91E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;80E;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;38E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;102E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;37E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;103E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;104E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;105E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;106E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;107E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;108E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;109E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;110E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;111E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;112E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;113E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;80E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;114E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;80E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;115E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;113E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;80E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;114E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;80E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;116E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;113E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;80E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;114E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;80E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;117E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;118E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;119E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;120E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;121E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;122E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;123E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;124E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;3;125E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;126E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;127E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;124E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;3;128E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;129E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;130E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;107E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;131E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;8;CPSliderK;8;$classesA;S;8;CPSliderS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;132E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;133E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;134E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;80E;K;11;$aalignmentD;K;6;CP$UIDd;2;80E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;135E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;92E;K;19;CPSliderMinValueKeyD;K;6;CP$UIDd;3;136E;K;19;CPSliderMaxValueKeyD;K;6;CP$UIDd;3;137E;K;23;CPSliderAltIncrValueKeyD;K;6;CP$UIDd;2;80E;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;52E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;138E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;139E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;140E;E;D;K;6;$classD;K;6;CP$UIDd;2;52E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;138E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;139E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;141E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;142E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;54E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;143E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;144E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;54E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;145E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;3;146E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;91E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;147E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;91E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;148E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;149E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;3;150E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;91E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;151E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;91E;K;31;CPTextFieldPlaceholderStringKeyD;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;152E;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;153E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;154E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;31E;E;E;S;8;delegateS;12;ascenderTextS;12;baselineViewS;13;descenderTextS;8;fontMenuS;14;lineHeightTextS;11;metricsViewS;10;sizeSliderS;8;sizeTextS;9;theWindowS;10;sampleTextS;14;setFontFamily:S;12;setFontSize:S;32;{10000000000000, 10000000000000}S;8;CPWindowS;23;{{408, 63}, {332, 290}}d;1;7S;21;Font Metrics Explorerd;1;0S;20;{{0, 0}, {332, 290}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;37E;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;56E;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;35E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;53E;E;E;d;2;18S;6;normalS;22;{{282, 100}, {31, 17}}S;18;{{0, 0}, {31, 17}}d;2;36S;9;textfieldD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;89E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;155E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;135E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;96E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;96E;E;d;1;2d;1;4T;S;2;12d;4;3072F;S;21;{{55, 58}, {237, 24}}S;19;{{0, 0}, {237, 24}}S;12;popup-buttonS;8;borderedD;K;6;$classD;K;6;CP$UIDd;2;89E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;155E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;135E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;93E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;96E;E;S;6;Item 1S;17;_popUpItemAction:d;1;1d;7;1048576S;20;{{19, 63}, {38, 17}}S;18;{{0, 0}, {38, 17}}S;5;Font:S;21;{{19, 193}, {67, 17}}S;18;{{0, 0}, {67, 17}}S;9;Ascender:S;21;{{99, 193}, {35, 17}}S;18;{{0, 0}, {35, 17}}S;1;0S;21;{{99, 218}, {35, 17}}S;21;{{99, 243}, {35, 17}}S;21;{{19, 218}, {75, 17}}S;18;{{0, 0}, {75, 17}}S;10;Descender:S;21;{{19, 243}, {80, 17}}S;18;{{0, 0}, {80, 17}}S;12;Line Height:S;20;{{17, 17}, {72, 24}}S;18;{{0, 0}, {72, 24}}D;K;6;$classD;K;6;CP$UIDd;2;89E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;155E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;83E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;93E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;96E;E;S;4;FontS;21;{{17, 152}, {72, 24}}D;K;6;$classD;K;6;CP$UIDd;2;89E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;155E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;83E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;93E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;96E;E;S;7;MetricsS;21;{{19, 100}, {38, 17}}S;5;Size:S;21;{{57, 95}, {214, 21}}S;19;{{0, 0}, {214, 21}}S;6;sliderd;2;12d;1;8d;2;48S;24;{{149, 155}, {163, 100}}S;20;{{0, 0}, {163, 100}}S;12;BaselineViewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;55E;E;E;S;11;MetricsViewS;21;{{-3, 42}, {169, 18}}S;19;{{0, 0}, {169, 18}}d;2;42D;K;6;$classD;K;6;CP$UIDd;2;89E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;155E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;156E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;96E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;96E;E;S;3;logS;23;{{146, 260}, {167, 14}}S;19;{{0, 0}, {167, 14}}D;K;6;$classD;K;6;CP$UIDd;2;89E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;155E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;157E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;96E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;96E;E;S;25;Click grid to change textS;13;AppControllerS;10;OtherViewsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;39E;E;E;S;17;Arial, sans-serifd;2;14d;2;11E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file +280NPLIST;1.0;D;K;4;$topD;K;18;CPCibObjectDataKeyD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;16;_CPCibObjectDataK;8;$classesA;S;16;_CPCibObjectDataS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;28;_CPCibObjectDataNamesKeysKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataNamesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataClassesKeysKeyD;K;6;CP$UIDd;1;0E;K;32;_CPCibObjectDataClassesValuesKeyD;K;6;CP$UIDd;1;0E;K;30;_CPCibObjectDataConnectionsKeyD;K;6;CP$UIDd;1;4E;K;28;_CPCibObjectDataFrameworkKeyD;K;6;CP$UIDd;1;0E;K;26;_CPCibObjectDataNextOidKeyD;K;6;CP$UIDd;1;5E;K;30;_CPCibObjectDataObjectsKeysKeyD;K;6;CP$UIDd;1;6E;K;32;_CPCibObjectDataObjectsValuesKeyD;K;6;CP$UIDd;1;7E;K;26;_CPCibObjectDataOidKeysKeyD;K;6;CP$UIDd;1;8E;K;28;_CPCibObjectDataOidValuesKeyD;K;6;CP$UIDd;1;9E;K;28;_CPCibObjectDataFileOwnerKeyD;K;6;CP$UIDd;2;11E;K;33;_CPCibObjectDataVisibleWindowsKeyD;K;6;CP$UIDd;2;13E;E;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;15E;D;K;6;CP$UIDd;2;16E;D;K;6;CP$UIDd;2;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;28E;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;29E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;39E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;1;0E;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;1;0E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;59E;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;31E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;37E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;56E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;37E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;18;_CPCibCustomObjectK;8;$classesA;S;18;_CPCibCustomObjectS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;60E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;61E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;57E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;62E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;42E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;63E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;53E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;64E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;43E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;65E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;37E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;66E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;44E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;54E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;68E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;51E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;35E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;70E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;31E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;71E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;54E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;55E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;72E;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;26E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;37E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;57E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;73E;E;D;K;6;$classD;K;6;CP$UIDd;2;26E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;51E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;57E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;74E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;60E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;30E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;75E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;76E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;77E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;78E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;79E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;33E;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;32E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;81E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;81E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;82E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;83E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;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;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;85E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;86E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;94E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;98E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;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;36E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;2;59E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;99E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;100E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;101E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;102E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;92E;K;11;$aalignmentD;K;6;CP$UIDd;2;80E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;80E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;92E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;103E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;96E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;104E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;80E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;93E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;91E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;80E;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;38E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;105E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;37E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;106E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;107E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;59E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;108E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;109E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;110E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;111E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;98E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;112E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;113E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;114E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;98E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;115E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;116E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;80E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;117E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;98E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;80E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;118E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;116E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;80E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;117E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;98E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;80E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;119E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;116E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;80E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;117E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;98E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;80E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;120E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;121E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;122E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;98E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;123E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;124E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;125E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;98E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;126E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;127E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;3;128E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;129E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;98E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;130E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;127E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;3;128E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;131E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;98E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;132E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;110E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;2;90E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;92E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;133E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;98E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;92E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;8;CPSliderK;8;$classesA;S;8;CPSliderS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;134E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;135E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;136E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;80E;K;11;$aalignmentD;K;6;CP$UIDd;2;80E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;104E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;92E;K;19;CPSliderMinValueKeyD;K;6;CP$UIDd;3;137E;K;19;CPSliderMaxValueKeyD;K;6;CP$UIDd;3;138E;K;23;CPSliderAltIncrValueKeyD;K;6;CP$UIDd;2;80E;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;52E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;139E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;140E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;141E;E;D;K;6;$classD;K;6;CP$UIDd;2;52E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;139E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;140E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;142E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;143E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;54E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;145E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;54E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;146E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;3;147E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;91E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;148E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;98E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;91E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;33E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;80E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;149E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;150E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;33E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;84E;K;6;$afontD;K;6;CP$UIDd;3;151E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;91E;K;11;$aalignmentD;K;6;CP$UIDd;2;91E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;93E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;152E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;95E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;96E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;96E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;98E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;91E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;91E;K;31;CPTextFieldPlaceholderStringKeyD;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;153E;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;154E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;155E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;31E;E;E;S;8;delegateS;12;ascenderTextS;12;baselineViewS;13;descenderTextS;8;fontMenuS;14;lineHeightTextS;11;metricsViewS;10;sizeSliderS;8;sizeTextS;9;theWindowS;10;sampleTextS;14;setFontFamily:S;12;setFontSize:S;32;{10000000000000, 10000000000000}S;8;CPWindowS;23;{{408, 63}, {332, 290}}d;1;7S;21;Font Metrics Explorerd;1;0S;20;{{0, 0}, {332, 290}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;37E;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;56E;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;35E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;54E;D;K;6;CP$UIDd;2;53E;E;E;d;2;18S;6;normalS;22;{{282, 100}, {31, 17}}S;18;{{0, 0}, {31, 17}}d;2;36S;9;textfieldD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;89E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;156E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;157E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;96E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;96E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;93E;E;d;1;2d;1;4T;S;2;12d;4;3072F;D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;97E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;158E;E;S;21;{{55, 58}, {237, 24}}S;19;{{0, 0}, {237, 24}}S;12;popup-buttonS;8;borderedS;0;d;2;12S;6;Item 1S;17;_popUpItemAction:d;1;1d;7;1048576S;20;{{19, 63}, {38, 17}}S;18;{{0, 0}, {38, 17}}S;5;Font:S;21;{{19, 193}, {67, 17}}S;18;{{0, 0}, {67, 17}}S;9;Ascender:S;21;{{99, 193}, {35, 17}}S;18;{{0, 0}, {35, 17}}S;1;0S;21;{{99, 218}, {35, 17}}S;21;{{99, 243}, {35, 17}}S;21;{{19, 218}, {75, 17}}S;18;{{0, 0}, {75, 17}}S;10;Descender:S;21;{{19, 243}, {80, 17}}S;18;{{0, 0}, {80, 17}}S;12;Line Height:S;20;{{17, 17}, {72, 24}}S;18;{{0, 0}, {72, 24}}D;K;6;$classD;K;6;CP$UIDd;2;89E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;156E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;83E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;93E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;96E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;93E;E;S;4;FontS;21;{{17, 152}, {72, 24}}S;7;MetricsS;21;{{19, 100}, {38, 17}}S;5;Size:S;21;{{57, 95}, {214, 21}}S;19;{{0, 0}, {214, 21}}S;6;sliderd;1;8d;2;48S;24;{{149, 155}, {163, 100}}S;20;{{0, 0}, {163, 100}}S;12;BaselineViewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;55E;E;E;S;11;MetricsViewS;21;{{-3, 42}, {169, 18}}S;19;{{0, 0}, {169, 18}}d;2;42D;K;6;$classD;K;6;CP$UIDd;2;89E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;156E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;159E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;96E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;96E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;93E;E;S;3;logS;23;{{146, 260}, {167, 14}}S;19;{{0, 0}, {167, 14}}D;K;6;$classD;K;6;CP$UIDd;2;89E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;156E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;160E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;96E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;96E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;93E;E;S;25;Click grid to change textS;13;AppControllerS;10;OtherViewsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;39E;E;E;S;28;_CPFontSystemFontPlaceholderd;2;-1D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;107E;E;E;d;2;14d;2;11f;18;0.6862745098039216E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/FontMetricsExplorer/Resources/MainMenu.xib b/Tests/Manual/FontMetricsExplorer/Resources/MainMenu.xib index 00ffeed65..967d29094 100644 --- a/Tests/Manual/FontMetricsExplorer/Resources/MainMenu.xib +++ b/Tests/Manual/FontMetricsExplorer/Resources/MainMenu.xib @@ -1,22 +1,36 @@ - 1060 - 10F569 - 788 - 1038.29 - 461.00 + 1070 + 11E53 + 2182 + 1138.47 + 569.00 com.apple.InterfaceBuilder.CocoaPlugin - 788 + 2182 - - + + NSPopUpButton + NSMenuItem + NSMenu + NSTextFieldCell + NSSlider + NSSliderCell + NSCustomObject + NSCustomView + NSView + NSWindowTemplate + NSTextField + NSPopUpButtonCell com.apple.InterfaceBuilder.CocoaPlugin - + + PluginDependencyRecalculationVersion + + NSApplication @@ -35,7 +49,7 @@ Font Metrics Explorer NSWindow - {1.79769e+308, 1.79769e+308} + 274 @@ -45,6 +59,8 @@ 268 {{54, 206}, {243, 26}} + + YES -2076049856 @@ -98,6 +114,8 @@ 268 {{19, 210}, {38, 17}} + + YES 68288064 @@ -130,6 +148,8 @@ 268 {{19, 80}, {67, 17}} + + YES 68288064 @@ -146,6 +166,8 @@ 268 {{99, 80}, {35, 17}} + + YES 68288064 @@ -162,6 +184,8 @@ 268 {{99, 55}, {35, 17}} + + YES 68288064 @@ -178,6 +202,8 @@ 268 {{99, 30}, {35, 17}} + + YES 68288064 @@ -194,6 +220,8 @@ 268 {{19, 55}, {75, 17}} + + YES 68288064 @@ -210,6 +238,8 @@ 268 {{19, 30}, {80, 17}} + + YES 68288064 @@ -226,6 +256,8 @@ 268 {{146, 16}, {167, 14}} + + YES 68288064 @@ -246,6 +278,8 @@ 268 {{17, 250}, {72, 22}} + + YES 68288064 @@ -266,6 +300,8 @@ 268 {{17, 115}, {72, 22}} + + YES 68288064 @@ -282,6 +318,8 @@ 268 {{19, 173}, {38, 17}} + + YES 68288064 @@ -298,6 +336,8 @@ 268 {{282, 173}, {31, 17}} + + YES 68288064 @@ -314,6 +354,8 @@ 268 {{57, 174}, {214, 21}} + + YES -2080244224 @@ -339,6 +381,8 @@ 298 {{-3, 40}, {169, 18}} + + YES 68288064 @@ -357,6 +401,8 @@ {{149, 35}, {163, 100}} + + MetricsView @@ -364,14 +410,19 @@ 268 {{149, 35}, {163, 100}} + + BaselineView {332, 290} + + {{0, 0}, {1680, 1028}} - {1.79769e+308, 1.79769e+308} + {10000000000000, 10000000000000} + YES AppController @@ -459,14 +510,6 @@ 1095 - - - sampleText - - - - 1103 - metricsView @@ -483,6 +526,14 @@ 1109 + + + sampleText + + + + 1103 + @@ -773,10 +824,11 @@ + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{451, 847}, {110, 23}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -806,16 +858,14 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{329, 888}, {163, 96}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{884, 511}, {332, 290}} com.apple.InterfaceBuilder.CocoaPlugin {{884, 511}, {332, 290}} - {{33, 99}, {480, 360}} com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin @@ -828,20 +878,6 @@ AppController NSObject - - id - id - - - - setFontFamily: - id - - - setFontSize: - id - - NSTextField BaselineView @@ -851,7 +887,6 @@ MetricsView NSSlider NSTextField - NSWindow @@ -886,22 +921,18 @@ sizeText NSTextField - - theWindow - NSWindow - - IBUserSource - + IBProjectSource + ./Classes/AppController.h BaselineView NSView - IBUserSource - + IBProjectSource + ./Classes/BaselineView.h @@ -919,8 +950,8 @@ - IBUserSource - + IBProjectSource + ./Classes/MetricsView.h @@ -928,11 +959,10 @@ 0 IBCocoaFramework YES - ../registration.xcodeproj 3 - {9, 8} - {7, 2} + {11, 11} + {10, 3} diff --git a/Tools/fontinfo/fontinfo.xcodeproj/project.pbxproj b/Tools/fontinfo/fontinfo.xcodeproj/project.pbxproj index 73829f007..87275d658 100644 --- a/Tools/fontinfo/fontinfo.xcodeproj/project.pbxproj +++ b/Tools/fontinfo/fontinfo.xcodeproj/project.pbxproj @@ -86,6 +86,7 @@ buildPhases = ( E1D3CF6812AFEE3800CBB79E /* Sources */, E1D3CF6912AFEE3800CBB79E /* Frameworks */, + E180EE6415AB52D500757AC7 /* ShellScript */, ); buildRules = ( ); @@ -120,6 +121,23 @@ }; /* End PBXProject section */ +/* Begin PBXShellScriptBuildPhase section */ + E180EE6415AB52D500757AC7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = "if [[ -d \"$CAPP_BUILD\"/Debug/CommonJS/cappuccino/bin ]]; then\n\tcp \"$SYMROOT/$CONFIGURATION/$PRODUCT_NAME\" \"$CAPP_BUILD\"/Debug/CommonJS/cappuccino/bin\nfi\n\nif [[ -d \"$CAPP_BUILD\"/Release/CommonJS/cappuccino/bin ]]; then\n\tcp \"$SYMROOT/$CONFIGURATION/$PRODUCT_NAME\" \"$CAPP_BUILD\"/Release/CommonJS/cappuccino/bin\nfi\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ E1D3CF6812AFEE3800CBB79E /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -163,23 +181,12 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(NATIVE_ARCH_ACTUAL)"; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; - CONFIGURATION_TEMP_DIR = "$(CAPP_BUILD)"; - DEPLOYMENT_LOCATION = NO; - DEPLOYMENT_POSTPROCESSING = NO; - DSTROOT = "/tmp/$(PROJECT_NAME).dst"; GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; - INSTALL_PATH = ""; - OBJROOT = "$(CAPP_BUILD)"; ONLY_ACTIVE_ARCH = NO; - PREBINDING = NO; PRODUCT_NAME = fontinfo; SDKROOT = macosx10.5; - SYMROOT = "$(CAPP_BUILD)/Release/CommonJS/cappuccino/bin"; }; name = Release; }; diff --git a/Tools/imagesize/imagesize.xcodeproj/project.pbxproj b/Tools/imagesize/imagesize.xcodeproj/project.pbxproj index 8b39c972c..0b4708f23 100644 --- a/Tools/imagesize/imagesize.xcodeproj/project.pbxproj +++ b/Tools/imagesize/imagesize.xcodeproj/project.pbxproj @@ -84,6 +84,7 @@ buildPhases = ( E1D3CF6812AFEE3800CBB79E /* Sources */, E1D3CF6912AFEE3800CBB79E /* Frameworks */, + E180EE7A15AB561300757AC7 /* ShellScript */, ); buildRules = ( ); @@ -118,6 +119,23 @@ }; /* End PBXProject section */ +/* Begin PBXShellScriptBuildPhase section */ + E180EE7A15AB561300757AC7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 8; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 1; + shellPath = /bin/bash; + shellScript = "if [[ -d \"$CAPP_BUILD\"/Debug/CommonJS/cappuccino/bin ]]; then\n\tcp \"$SYMROOT/$CONFIGURATION/$PRODUCT_NAME\" \"$CAPP_BUILD\"/Debug/CommonJS/cappuccino/bin\nfi\n\nif [[ -d \"$CAPP_BUILD\"/Release/CommonJS/cappuccino/bin ]]; then\n\tcp \"$SYMROOT/$CONFIGURATION/$PRODUCT_NAME\" \"$CAPP_BUILD\"/Release/CommonJS/cappuccino/bin\nfi\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ E1D3CF6812AFEE3800CBB79E /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -161,23 +179,15 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(NATIVE_ARCH_ACTUAL)"; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)"; - CONFIGURATION_TEMP_DIR = "$(CAPP_BUILD)"; - DEPLOYMENT_LOCATION = NO; - DEPLOYMENT_POSTPROCESSING = NO; - DSTROOT = "/tmp/$(PROJECT_NAME).dst"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_PRECOMPILE_PREFIX_HEADER = NO; GCC_PREFIX_HEADER = ""; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; - INSTALL_PATH = ""; - OBJROOT = "$(CAPP_BUILD)"; ONLY_ACTIVE_ARCH = NO; PREBINDING = NO; PRODUCT_NAME = imagesize; SDKROOT = macosx10.5; - SYMROOT = "$(CAPP_BUILD)/Release/CommonJS/cappuccino/bin"; }; name = Release; }; diff --git a/Tools/nib2cib/Converter+Mac.j b/Tools/nib2cib/Converter+Mac.j index 41b1b22fc..7c48b77c4 100644 --- a/Tools/nib2cib/Converter+Mac.j +++ b/Tools/nib2cib/Converter+Mac.j @@ -118,10 +118,10 @@ { var cibFont = nil; - if ([object respondsToSelector:@selector(cibFontForNibFont)]) - cibFont = [object cibFontForNibFont]; + if ([object respondsToSelector:@selector(cibFontForNibFont:)]) + cibFont = [object cibFontForNibFont:[object font]]; else - cibFont = [NSFont cibFontForNibFont:[object font]]; + cibFont = [[object font] cibFontForNibFont]; if (!cibFont || ![cibFont isEqual:nibFont]) { @@ -143,22 +143,24 @@ } } - // Substitute legacy theme fonts for the current system font - if (!cibFont || [cibFont familyName] === CPFontDefaultSystemFontFace) + if (!cibFont || [cibFont isSystem]) { - var size = [cibFont size] || CPFontDefaultSystemFontSize, - bold = cibFont ? [cibFont isBold] : bold; + var size = [cibFont size] || CPFontDefaultSystemFontSize; + + bold = cibFont ? [cibFont isBold] : bold; if (size === CPFontDefaultSystemFontSize) - size = [CPFont systemFontSize]; + size = CPFontCurrentSystemSize; cibFont = bold ? [CPFont boldSystemFontOfSize:size] : [CPFont systemFontOfSize:size]; } } + var replacement = "System " + (bold ? "bold " : "") + ([cibFont isSystemSize] ? "(current size)" : [cibFont size]); + [object setFont:cibFont]; - CPLog.debug("%s: substituted <%s>%s for <%fpx %s>", [object className], cibFont ? [cibFont cssString] : "theme default", source, [nibFont size], [nibFont familyName]); + CPLog.debug("%s: substituted <%s>%s for <%s>", [object className], replacement || [NSFont descriptorForFont:cibFont], source, [NSFont descriptorForFont:nibFont]); } } diff --git a/Tools/nib2cib/NSFont.j b/Tools/nib2cib/NSFont.j index cb336dc74..eda3caac2 100644 --- a/Tools/nib2cib/NSFont.j +++ b/Tools/nib2cib/NSFont.j @@ -22,12 +22,12 @@ @import +IBDefaultFontFace = @"Lucida Grande"; +IBDefaultFontSize = 13.0; + var OS = require("os"), fontinfo = require("cappuccino/fontinfo").fontinfo; -var IBDefaultFontFace = @"Lucida Grande", - IBDefaultFontSize = 13.0; - @implementation CPFont (NSCoding) - (id)NS_initWithCoder:(CPCoder)aCoder @@ -45,7 +45,33 @@ var IBDefaultFontFace = @"Lucida Grande", isItalic = info.italic; } - return [self _initWithName:name size:size bold:isBold italic:isItalic]; + // NOTE: We save the nib fonts as is, and determine system status later + var font = [self _initWithName:name + size:size + bold:isBold + italic:isItalic + system:NO]; + + CPLog.debug("NSFont: %s", [NSFont descriptorForFont:font]); + + return font; +} + +- (id)cibFontForNibFont +{ + if (_name === IBDefaultFontFace) + { + if (_size === IBDefaultFontSize && !_isBold && !_isItalic) + return nil; + else + return [[CPFont alloc] _initWithName:_CPFontSystemFacePlaceholder + size:_size == IBDefaultFontSize ? CPFontCurrentSystemSize : _size + bold:_isBold + italic:_isItalic + system:YES]; + } + + return self; } @end @@ -60,23 +86,31 @@ var IBDefaultFontFace = @"Lucida Grande", CPLog.debug("NSFont: default IB font: %s %f", IBDefaultFontFace, IBDefaultFontSize); } -+ (id)cibFontForNibFont:(CPFont)aFont ++ (CPString)descriptorForFont:(CPFont)aFont { - var name = [aFont familyName]; + var styleAttributes = []; - if (name === IBDefaultFontFace) + if ([aFont isBold]) + styleAttributes.push("bold"); + + if ([aFont isItalic]) + styleAttributes.push("italic"); + + styleAttributes = styleAttributes.join(" "); + + var systemAttributes = []; + + if ([aFont isSystem]) { - var size = [aFont size], - bold = [aFont isBold], - italic = [aFont isItalic]; + systemAttributes.push("system face"); - if (size === IBDefaultFontSize && !bold && !italic) - return nil; - else - return [[CPFont alloc] _initWithName:[CPFont systemFontFace] size:(size == IBDefaultFontSize ? CPFontDefaultSystemFontSize : size) bold:bold italic:italic]; + if ([aFont size] === IBDefaultFontSize) + systemAttributes.push("system size"); } - return [aFont copy]; + systemAttributes = systemAttributes.join(", "); + + return [CPString stringWithFormat:@"%s%s %d%s", [aFont familyName], styleAttributes ? " " + styleAttributes : "", [aFont size], systemAttributes ? " (" + systemAttributes + ")" : ""]; } - (id)initWithCoder:(CPCoder)aCoder diff --git a/Tools/nib2cib/NSTableColumn.j b/Tools/nib2cib/NSTableColumn.j index f573c29f8..10ef6dcea 100644 --- a/Tools/nib2cib/NSTableColumn.j +++ b/Tools/nib2cib/NSTableColumn.j @@ -51,7 +51,7 @@ selectedFont = nil; if (font) - font = [NSFont cibFontForNibFont:font]; + font = [font cibFontForNibFont]; if (!font) font = [CPFont systemFontOfSize:[CPFont systemFontSize]]; diff --git a/Tools/nib2cib/Nib2Cib.j b/Tools/nib2cib/Nib2Cib.j index 20a9942e9..76f79db66 100644 --- a/Tools/nib2cib/Nib2Cib.j +++ b/Tools/nib2cib/Nib2Cib.j @@ -80,6 +80,7 @@ var FILE = require("file"), var options = [self parseOptionsFromArgs:commandLineArgs]; [self setLogLevel:options.quiet ? -1 : options.verbosity]; + [self checkPrerequisites]; if (options.watch) [self watchWithOptions:options]; @@ -93,6 +94,15 @@ var FILE = require("file"), } } +- (void)checkPrerequisites +{ + var fontinfo = require("cappuccino/fontinfo").fontinfo, + info = fontinfo("LucidaGrande", 13); + + if (!info) + [self failWithMessage:@"fontinfo does not appear to be installed"]; +} + - (BOOL)convertWithOptions:(JSObject)options inputFile:(CPString)inputFile { try From 37a89a7b0a166a571c912c4f74d34ac2a14ec6e8 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Mon, 9 Jul 2012 15:47:26 -0700 Subject: [PATCH 056/109] Cleanup --- Foundation/CPIndexSet.j | 8 +++++--- Tests/Foundation/CPIndexSetTest.j | 8 ++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Foundation/CPIndexSet.j b/Foundation/CPIndexSet.j index 1d3dd8060..33ecfbdf7 100644 --- a/Foundation/CPIndexSet.j +++ b/Foundation/CPIndexSet.j @@ -518,9 +518,8 @@ for (; index !== stop; index += increment) { - var range = _ranges[index]; - - var rangeIndex, + var range = _ranges[index], + rangeIndex, rangeStop, rangeIncrement; @@ -630,6 +629,7 @@ } } } + return CPNotFound; } @@ -657,6 +657,7 @@ } var indexesPassingTest = [CPMutableIndexSet indexSet]; + for (; index !== stop; index += increment) { var range = _ranges[index], @@ -689,6 +690,7 @@ } } } + return indexesPassingTest; } diff --git a/Tests/Foundation/CPIndexSetTest.j b/Tests/Foundation/CPIndexSetTest.j index fe1831a3d..8641ae5c7 100644 --- a/Tests/Foundation/CPIndexSetTest.j +++ b/Tests/Foundation/CPIndexSetTest.j @@ -550,6 +550,7 @@ function descriptionWithoutEntity(aString) { return anIndex % 2 === 0; }]; + [self assertTrue:index === CPNotFound message:"must be equal to CPNotFound, was " + index]; [set0 addIndexesInRange:CPMakeRange(1, 10)]; @@ -557,12 +558,14 @@ function descriptionWithoutEntity(aString) { return anIndex % 2 === 0; }]; + [self assertTrue:index === 2 message:"index must be equal to 2"]; index = [set0 indexPassingTest:function(anIndex) { return anIndex === 1000; }]; + [self assertTrue:index === CPNotFound message:"must be equal to CPNotFound, was " + index]; } @@ -587,6 +590,7 @@ function descriptionWithoutEntity(aString) { return anIndex % 2 === 0; }]; + [self assertTrue:[indexes isEqualToIndexSet:set1] message:"must be equal to " + [set1 description] + ", was " + [indexes description]]; } @@ -598,6 +602,7 @@ function descriptionWithoutEntity(aString) { return anIndex % 2 === 0; }]; + [self assertTrue:index === 10 message:"index must be equal to 10"]; } @@ -612,6 +617,7 @@ function descriptionWithoutEntity(aString) visitedIndexes.push(anIndex); return anIndex % 2 === 0; }]; + [set1 addIndex:2]; [set1 addIndex:4]; @@ -628,6 +634,7 @@ function descriptionWithoutEntity(aString) { return anIndex % 2 === 0; }]; + [self assertTrue:index === 6 message:"index must be equal to 6"]; } @@ -643,6 +650,7 @@ function descriptionWithoutEntity(aString) visitedIndexes.push(anIndex); return anIndex % 2 === 0; }]; + [set1 addIndex:4]; [self assertTrue:[indexes isEqualToIndexSet:set1] message:"must be equal to " + [set1 description] + ", was " + [indexes description]]; From 309463f15d556ce13cd5c554beeb134dcd0f8a45 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Mon, 9 Jul 2012 16:50:31 -0700 Subject: [PATCH 057/109] Fixed parameter name --- AppKit/CPFont.j | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AppKit/CPFont.j b/AppKit/CPFont.j index 0077df602..28e4b7527 100644 --- a/AppKit/CPFont.j +++ b/AppKit/CPFont.j @@ -384,7 +384,7 @@ following: - (id)copy { - return [[CPFont alloc] _initWithName:_name size:_size bold:_isBold italic:_isItalic isSystem:_isSystem]; + return [[CPFont alloc] _initWithName:_name size:_size bold:_isBold italic:_isItalic system:_isSystem]; } - (void)_getMetrics From 73fea44aa29ea7683baecb2d2df2f427c3e0d824 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Mon, 9 Jul 2012 21:30:09 -0700 Subject: [PATCH 058/109] CPControl now archives/unarchives its formatter This allows you to use a formatter with a table column's data view. --- AppKit/CPControl.j | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/AppKit/CPControl.j b/AppKit/CPControl.j index 8f5c7b6f8..b4140e6e5 100644 --- a/AppKit/CPControl.j +++ b/AppKit/CPControl.j @@ -867,15 +867,14 @@ var CPControlBlackColor = [CPColor blackColor]; @end -var CPControlValueKey = "CPControlValueKey", - CPControlControlStateKey = @"CPControlControlStateKey", - CPControlIsEnabledKey = "CPControlIsEnabledKey", - - CPControlTargetKey = "CPControlTargetKey", - CPControlActionKey = "CPControlActionKey", - CPControlSendActionOnKey = "CPControlSendActionOnKey", - - CPControlSendsActionOnEndEditingKey = "CPControlSendsActionOnEndEditingKey", +var CPControlValueKey = @"CPControlValueKey", + CPControlControlStateKey = @"CPControlControlStateKey", + CPControlIsEnabledKey = @"CPControlIsEnabledKey", + CPControlTargetKey = @"CPControlTargetKey", + CPControlActionKey = @"CPControlActionKey", + CPControlSendActionOnKey = @"CPControlSendActionOnKey", + CPControlFormatterKey = @"CPControlFormatterKey", + CPControlSendsActionOnEndEditingKey = @"CPControlSendsActionOnEndEditingKey", __Deprecated__CPImageViewImageKey = @"CPImageViewImageKey"; @@ -900,6 +899,8 @@ var CPControlValueKey = "CPControlValueKey", [self sendActionOn:[aCoder decodeIntForKey:CPControlSendActionOnKey]]; [self setSendsActionOnEndEditing:[aCoder decodeBoolForKey:CPControlSendsActionOnEndEditingKey]]; + + [self setFormatter:[aCoder decodeObjectForKey:CPControlFormatterKey]]; } return self; @@ -929,6 +930,9 @@ var CPControlValueKey = "CPControlValueKey", [aCoder encodeObject:_action forKey:CPControlActionKey]; [aCoder encodeInt:_sendActionOn forKey:CPControlSendActionOnKey]; + + if (_formatter !== nil) + [aCoder encodeObject:_formatter forKey:CPControlFormatterKey]; } @end From a3d4dc2f9ab7b3e71f447313acd4a2b46f5835e8 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Mon, 9 Jul 2012 22:19:26 -0700 Subject: [PATCH 059/109] Wrap _DOMElement access in #if PLATFORM(DOM), cleanup --- AppKit/CPView.j | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/AppKit/CPView.j b/AppKit/CPView.j index 7031c06ec..eede974cc 100644 --- a/AppKit/CPView.j +++ b/AppKit/CPView.j @@ -246,8 +246,8 @@ var CPCurrentToolTip, - (void)_setupToolTipHandlers { _toolTipInstalled = NO; - _toolTipFunctionIn = function(e){[self _fireToolTip];} - _toolTipFunctionOut = function(e){[self _invalidateToolTip];}; + _toolTipFunctionIn = function(e) { [self _fireToolTip]; } + _toolTipFunctionOut = function(e) { [self _invalidateToolTip]; }; } + (CPSet)keyPathsForValuesAffectingFrame @@ -353,6 +353,7 @@ var CPCurrentToolTip, if (_toolTipInstalled) return; +#if PLATFORM(DOM) if (_DOMElement.addEventListener) { _DOMElement.addEventListener("mouseover", _toolTipFunctionIn, NO); @@ -365,6 +366,8 @@ var CPCurrentToolTip, _DOMElement.attachEvent("onkeypress", _toolTipFunctionOut); _DOMElement.attachEvent("onmouseout", _toolTipFunctionOut); } +#endif + _toolTipInstalled = YES; } @@ -377,6 +380,7 @@ var CPCurrentToolTip, if (!_toolTipInstalled) return; +#if PLATFORM(DOM) if (_DOMElement.removeEventListener) { _DOMElement.removeEventListener("mouseover", _toolTipFunctionIn, NO); @@ -389,6 +393,8 @@ var CPCurrentToolTip, _DOMElement.detachEvent("onkeypress", _toolTipFunctionOut); _DOMElement.detachEvent("onmouseout", _toolTipFunctionOut); } +#endif + _toolTipInstalled = NO; } @@ -400,8 +406,10 @@ var CPCurrentToolTip, if (CPCurrentToolTipTimer) { [CPCurrentToolTipTimer invalidate]; + if (CPCurrentToolTip) [CPCurrentToolTip close]; + CPCurrentToolTip = nil; } @@ -434,6 +442,7 @@ var CPCurrentToolTip, { if (CPCurrentToolTip) [CPCurrentToolTip close]; + CPCurrentToolTip = [_CPToolTip toolTipWithString:_toolTip]; } From 5e40d6702e670b5cbcd65c74dd6c31da88040e37 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Tue, 10 Jul 2012 12:47:55 -0700 Subject: [PATCH 060/109] jake clobber should only clobber the theme, not Cappuccino --- Tools/capp/Resources/Templates/ThemeDescriptor/Jakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tools/capp/Resources/Templates/ThemeDescriptor/Jakefile b/Tools/capp/Resources/Templates/ThemeDescriptor/Jakefile index 80c7d5dbe..9ff2308c6 100644 --- a/Tools/capp/Resources/Templates/ThemeDescriptor/Jakefile +++ b/Tools/capp/Resources/Templates/ThemeDescriptor/Jakefile @@ -106,7 +106,7 @@ task ("test-release", ["release"], function() }); CLEAN.include(buildPath); -CLOBBER.include(buildDir); +CLOBBER.include(buildPath); task ("help", function() { From 68c001e0c07b009c3b632dcbab64fd95ce7674d8 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Tue, 10 Jul 2012 15:36:33 -0700 Subject: [PATCH 061/109] Don't attempt show CPScrollView, CPScroller or tooltips in the showcase, it doesn't work --- AppKit/Themes/Aristo/ThemeDescriptors.j | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AppKit/Themes/Aristo/ThemeDescriptors.j b/AppKit/Themes/Aristo/ThemeDescriptors.j index 00b7787dc..00683565b 100755 --- a/AppKit/Themes/Aristo/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo/ThemeDescriptors.j @@ -326,7 +326,7 @@ var themedButtonValues = nil, + (CPArray)themeShowcaseExcludes { - return ["alert", "cornerview", "columnHeader", "tableView", "tableHeaderRow", "tableDataView", @"ruleeditor"]; + return ["alert", "cornerview", "columnHeader", "tableView", "tableHeaderRow", "tableDataView", "ruleeditor", "scrollView", "horizontalScroller", "verticalScroller", "tooltip"]; } + (CPButton)makeButton From ec4bfa00ee815af996ebe7af88f1f73eecfc4d9d Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Tue, 10 Jul 2012 16:40:44 -0700 Subject: [PATCH 062/109] Per Cocoa, 0 size means create a static font in the current system font size. Added tests. --- AppKit/CPFont.j | 42 ++++++++++++++++++++++-------------- Tests/AppKit/CPFontTest.j | 45 +++++++++++++++++++++++++++++++++++---- 2 files changed, 67 insertions(+), 20 deletions(-) diff --git a/AppKit/CPFont.j b/AppKit/CPFont.j index 28e4b7527..16b34d42c 100644 --- a/AppKit/CPFont.j +++ b/AppKit/CPFont.j @@ -28,8 +28,10 @@ CPFontDefaultSystemFontFace = @"Arial, sans-serif"; CPFontDefaultSystemFontSize = 12; -// To create a font of a size that will always reflect the current -// system font size, use this for the size argument. +/*! + To create a font of a size that will dynamically reflect the current + system font size, use this for the size argument. +*/ CPFontCurrentSystemSize = -1; // For internal use only by this class and subclasses @@ -43,7 +45,7 @@ var _CPFontCache = {}, _CPFontStripRegExp = new RegExp("(^\\s*[\"']?|[\"']?\\s*$)", "g"); -#define _CPRealFontSize(aSize) (aSize === CPFontCurrentSystemSize ? _CPFontSystemFontSize : aSize) +#define _CPRealFontSize(aSize) (aSize <= 0 ? _CPFontSystemFontSize : aSize) #define _CPFontNormalizedNames(aName) _CPFontNormalizedNameArray(aName).join(", ") #define _CPCachedFont(aName, aSize, isBold, isItalic) _CPFontCache[_CPFontCreateCSSString(_CPFontNormalizedNames(aName), aSize, isBold, isItalic)] #define _CPUserFont(aName, aSize, isBold, isItalic) _CPCachedFont(aName, aSize, isBold, isItalic) || [[CPFont alloc] _initWithName:aName size:aSize bold:isBold italic:isItalic system:NO] @@ -202,67 +204,75 @@ following: /*! Returns a font with the specified name and size. @param aName the name of the font - @param aSize the size of the font (in px) + @param aSize the size of the font (in px). 0 or negative will create a font + in the current system font size. @return the requested font */ + (CPFont)fontWithName:(CPString)aName size:(float)aSize { - return _CPUserFont(aName, aSize, NO, NO); + return _CPUserFont(aName, aSize <= 0 ? _CPFontSystemFontSize : aSize, NO, NO); } /*! Returns a font with the specified name, size and style. @param aName the name of the font - @param aSize the size of the font (in px) + @param aSize the size of the font (in px). 0 or negative will create a font + in the current system font size. @param italic whether the font should be italicized @return the requested font */ + (CPFont)fontWithName:(CPString)aName size:(float)aSize italic:(BOOL)italic { - return _CPUserFont(aName, aSize, NO, italic); + return _CPUserFont(aName, aSize <= 0 ? _CPFontSystemFontSize : aSize, NO, italic); } /*! Returns a bold font with the specified name and size. @param aName the name of the font - @param aSize the size of the font (in px) + @param aSize the size of the font (in px). 0 or negative will create a font + in the current system font size. @return the requested bold font */ + (CPFont)boldFontWithName:(CPString)aName size:(float)aSize { - return _CPUserFont(aName, aSize, YES, NO); + return _CPUserFont(aName, aSize <= 0 ? _CPFontSystemFontSize : aSize, YES, NO); } /*! Returns a bold font with the specified name, size and style. @param aName the name of the font - @param aSize the size of the font (in px) + @param aSize the size of the font (in px). 0 or negative will create a font + in the current system font size. @param italic whether the font should be italicized @return the requested font */ + (CPFont)boldFontWithName:(CPString)aName size:(float)aSize italic:(BOOL)italic { - return _CPUserFont(aName, aSize, YES, italic); + return _CPUserFont(aName, aSize <= 0 ? _CPFontSystemFontSize : aSize, YES, italic); } /*! Returns the system font scaled to the specified size - @param aSize the size of the font (in px) + @param aSize the size of the font (in px). 0 creates a static font + in the current system font size. Negative creates a font + that dynamically tracks the current system font size. @return the requested system font */ + (CPFont)systemFontOfSize:(CPSize)aSize { - return _CPSystemFont(aSize, NO); + return _CPSystemFont(aSize === 0 ? _CPFontSystemFontSize : aSize, NO); } /*! Returns the bold system font scaled to the specified size - @param aSize the size of the font (in px) + @param aSize the size of the font (in px). 0 creates a static font + in the current system font size. Negative creates a font + that dynamically tracks the current system font size. @return the requested bold system font */ + (CPFont)boldSystemFontOfSize:(CPSize)aSize { - return _CPSystemFont(aSize, YES); + return _CPSystemFont(aSize === 0 ? _CPFontSystemFontSize : aSize, YES); } - (id)_initWithName:(CPString)aName size:(float)aSize bold:(BOOL)isBold italic:(BOOL)isItalic system:(BOOL)isSystem @@ -369,7 +379,7 @@ following: - (BOOL)isSystemSize { - return _size === CPFontCurrentSystemSize; + return _size <= 0; } - (BOOL)isEqual:(id)anObject diff --git a/Tests/AppKit/CPFontTest.j b/Tests/AppKit/CPFontTest.j index c1ce8c887..77a51ff09 100644 --- a/Tests/AppKit/CPFontTest.j +++ b/Tests/AppKit/CPFontTest.j @@ -68,22 +68,59 @@ { [inv setArgument:arg atIndex:idx + 2]; }]; - + [inv invoke]; var font = [inv returnValue]; - + [self assertTrue:([font isBold] == bold) message: [font description] + " should be bold: " + bold]; [self assertTrue:([font isItalic] == italic) message: [font description] + " should be italic: " + italic]; - + // get from cache [inv invoke]; var cachedFont = [inv returnValue]; [self assert:cachedFont equals:font]; - + [self assertTrue:([cachedFont isBold] == bold) message:" cached " + [cachedFont description] + " should be bold: " + bold]; [self assertTrue:([cachedFont isItalic] == italic) message:" cached " + [cachedFont description] + " should be italic: " + italic]; } +- (void)testSizes +{ + var font = [CPFont fontWithName:@"Arial" size:0], + systemSize = [CPFont systemFontSize]; + + [self assertTrue:([font size] === systemSize) message:" font size should be system size (" + systemSize + ")"]; + + var sysfont1 = [CPFont systemFontOfSize:12]; + [self assertTrue:([sysfont1 size] === 12) message:" font size should be 12"]; + + var sysfont2 = [CPFont systemFontOfSize:0]; + [self assertTrue:([sysfont2 size] === systemSize) message:" font size should be system size (" + systemSize + ")"]; + + var sysfont3 = [CPFont systemFontOfSize:-1]; + [self assertTrue:([sysfont3 size] === systemSize) message:" font size should be system size (" + systemSize + ")"]; + + var newSystemSize = 13; + [CPFont setSystemFontSize:newSystemSize]; + [self assertTrue:([sysfont2 size] === systemSize) message:" font size should be old system size (" + systemSize + ")"]; + [self assertTrue:([sysfont3 size] === newSystemSize) message:" font size should be new system size (" + newSystemSize + ")"]; +} + +- (void)testFaces +{ + var font = [CPFont fontWithName:@"Georgia" size:0], + systemFace = [CPFont systemFontFace]; + + [self assertTrue:([font familyName] === @"Georgia") message:" font face should be Georgia"]; + + var sysfont = [CPFont systemFontOfSize:12]; + [self assertTrue:([sysfont familyName] === systemFace) message:" font face should be system face (" + systemFace + ")"]; + + var newSystemFace = @"Georgia"; + [CPFont setSystemFontFace:newSystemFace]; + [self assertTrue:([sysfont familyName] === newSystemFace) message:" font face should be new system face (" + newSystemFace + ")"]; +} + @end var _CPFontStripRegExp = new RegExp("(^\\s*[\"']?|[\"']?\\s*$)", "g"); From 872df9fe3962d95d43b6bea27ac450af3ee684f0 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Tue, 10 Jul 2012 17:35:42 -0700 Subject: [PATCH 063/109] Fixed window positioning --- .../CPButtonTest/Resources/MainMenu.cib | 2 +- .../CPButtonTest/Resources/MainMenu.xib | 4386 ++++++++--------- 2 files changed, 2181 insertions(+), 2207 deletions(-) diff --git a/Tests/Manual/CPButtonTest/Resources/MainMenu.cib b/Tests/Manual/CPButtonTest/Resources/MainMenu.cib index b0ffde79d..eb6637c5a 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;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;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;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;49E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;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;67E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;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;74E;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;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;2;78E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;1;0E;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;2;85E;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;1;0E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;1;0E;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;2;91E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;1;0E;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;96E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;99E;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;1;0E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;1;0E;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;108E;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;51E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;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;79E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;11E;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;85E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;11E;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;91E;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;96E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;2;57E;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;109E;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;110E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;111E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;69E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;112E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;72E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;113E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;83E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;114E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;70E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;115E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;76E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;116E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;89E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;117E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;92E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;118E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;105E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;119E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;106E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;120E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;104E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;121E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;73E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;122E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;57E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;123E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;86E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;124E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;87E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;125E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;127E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;128E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;129E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;130E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;51E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;131E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;88E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;132E;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;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;133E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;134E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;81E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;134E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;75E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;135E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;92E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;136E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;95E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;137E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;96E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;137E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;97E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;137E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;98E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;137E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;100E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;138E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;101E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;138E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;102E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;138E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;103E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;138E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;105E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;136E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;109E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;139E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;140E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;141E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;142E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;143E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;53E;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;52E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;145E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;145E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;146E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;147E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;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;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;53E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;149E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;150E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;53E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;152E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;155E;K;11;$aalignmentD;K;6;CP$UIDd;3;156E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;157E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;158E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;159E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;160E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;155E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;156E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;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;56E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;53E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;3;108E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;161E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;162E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;53E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;163E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;164E;K;6;$afontD;K;6;CP$UIDd;3;165E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;156E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;166E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;58E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;167E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;57E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;168E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;169E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;170E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;171E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;57E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;168E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;169E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;170E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;172E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;57E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;168E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;170E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;173E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;57E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;168E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;170E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;174E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;57E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;168E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;170E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;175E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;57E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;168E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;170E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;176E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;57E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;168E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;170E;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;66E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;53E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;177E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;178E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;179E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;53E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;180E;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;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;67E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;181E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;182E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;67E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;164E;K;6;$afontD;K;6;CP$UIDd;3;165E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;183E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;184E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;67E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;185E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;186E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;67E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;164E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;165E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;187E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;184E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;67E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;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;67E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;190E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;169E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;192E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;169E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;169E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;67E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;193E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;194E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;67E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;190E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;169E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;195E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;157E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;169E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;169E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;52E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;67E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;196E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;197E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;198E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;67E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;2;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;67E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;199E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;200E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;67E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;164E;K;6;$afontD;K;6;CP$UIDd;3;165E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;201E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;184E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;67E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;202E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;186E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;67E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;203E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;165E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;204E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;184E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;205E;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;139E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;140E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;206E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;207E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;208E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;79E;E;D;K;6;$classD;K;6;CP$UIDd;2;52E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;209E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;209E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;210E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;2;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;79E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;211E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;212E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;79E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;164E;K;6;$afontD;K;6;CP$UIDd;3;165E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;213E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;184E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;79E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;214E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;215E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;79E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;164E;K;6;$afontD;K;6;CP$UIDd;3;165E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;216E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;217E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;184E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;79E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;218E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;219E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;79E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;152E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;155E;K;11;$aalignmentD;K;6;CP$UIDd;3;156E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;157E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;220E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;159E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;160E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;155E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;156E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;79E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;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;79E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;152E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;155E;K;11;$aalignmentD;K;6;CP$UIDd;3;169E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;157E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;223E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;159E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;160E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;155E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;169E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;139E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;140E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;224E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;207E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;225E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;85E;E;D;K;6;$classD;K;6;CP$UIDd;2;52E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;226E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;226E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;227E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;2;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;85E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;228E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;229E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;85E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;164E;K;6;$afontD;K;6;CP$UIDd;3;165E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;230E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;184E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;85E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;231E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;229E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;85E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;164E;K;6;$afontD;K;6;CP$UIDd;3;165E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;232E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;184E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;85E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;233E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;229E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;85E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;164E;K;6;$afontD;K;6;CP$UIDd;3;165E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;234E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;184E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;85E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;235E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;229E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;85E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;164E;K;6;$afontD;K;6;CP$UIDd;3;165E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;236E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;184E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;50E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;139E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;140E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;237E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;207E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;238E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;91E;E;D;K;6;$classD;K;6;CP$UIDd;2;52E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;239E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;239E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;240E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;2;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;91E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;241E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;242E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;91E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;164E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;165E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;7;$aimageD;K;6;CP$UIDd;3;244E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;245E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;184E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;93E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;91E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;246E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;247E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;248E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;91E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;144E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;144E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;169E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;250E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;251E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;144E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;169E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;252E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;155E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;253E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;254E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;155E;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;3;254E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;190E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;257E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;258E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;169E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;169E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;254E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;169E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;259E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;260E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;254E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;190E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;261E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;262E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;169E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;169E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;254E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;156E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;263E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;264E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;254E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;190E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;265E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;266E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;169E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;169E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;254E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;267E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;268E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;269E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;254E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;190E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;270E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;271E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;169E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;169E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;93E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;91E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;272E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;247E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;273E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;91E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;144E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;144E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;169E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;274E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;251E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;144E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;169E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;275E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;155E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;253E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;276E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;267E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;268E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;269E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;276E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;190E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;277E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;271E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;169E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;169E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;276E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;156E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;263E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;264E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;276E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;190E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;278E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;266E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;169E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;169E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;276E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;169E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;259E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;260E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;276E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;190E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;279E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;262E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;169E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;169E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;276E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;155E;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;3;276E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;190E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;280E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;258E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;169E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;169E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;91E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;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;91E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;152E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;155E;K;11;$aalignmentD;K;6;CP$UIDd;3;156E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;157E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;283E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;159E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;160E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;155E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;156E;K;31;CPTextFieldPlaceholderStringKeyD;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;91E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;284E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;285E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;91E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;190E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;191E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;169E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;286E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;169E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;169E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;91E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;287E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;282E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;91E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;152E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;155E;K;11;$aalignmentD;K;6;CP$UIDd;3;156E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;157E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;283E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;159E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;160E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;155E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;156E;K;31;CPTextFieldPlaceholderStringKeyD;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;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;288E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;289E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;90E;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;126E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;74E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;290E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;290E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;74E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;147E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;251E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;291E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;292E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;155E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;155E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;169E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;293E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;169E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;294E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;295E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;296E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;298E;E;S;6;radio1D;K;6;$classD;K;6;CP$UIDd;3;126E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;74E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;299E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;290E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;74E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;147E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;251E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;291E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;164E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;155E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;155E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;300E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;169E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;294E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;295E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;296E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;298E;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;CPWindowS;23;{{10, 465}, {380, 253}}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;55E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;67E;E;E;d;2;18S;6;normalS;22;{{40, 212}, {101, 17}}S;19;{{0, 0}, {101, 17}}d;2;36S;9;textfieldD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;301E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;166E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;E;d;1;2d;1;4T;S;15;Image Position:d;4;3072F;S;23;{{141, 211}, {201, 24}}S;19;{{0, 0}, {201, 24}}S;12;popup-buttonS;8;borderedD;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;301E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;166E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;157E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;E;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;76E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;69E;E;E;S;9;BezelViewS;20;{{22, 15}, {96, 24}}S;18;{{0, 0}, {96, 24}}S;6;Buttond;2;14S;22;{{141, 15}, {176, 24}}S;19;{{0, 0}, {176, 24}}S;17;Button With ImageS;20;{{29, 65}, {85, 40}}S;18;{{0, 0}, {85, 40}}S;9;check-boxS;8;selectedS;8;CheckboxS;22;{{163, 65}, {152, 40}}S;19;{{0, 0}, {152, 40}}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;127E;D;K;6;CP$UIDd;3;129E;E;E;S;23;{{198, 128}, {119, 24}}S;19;{{0, 0}, {119, 24}}S;14;Set radio 2 OnS;22;{{141, 45}, {176, 24}}S;17;disabled+borderedS;19;Disabled With ImageS;13;AppControllerS;22;{{10, 796}, {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;80E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;E;E;S;21;{{18, 18}, {120, 24}}S;19;{{0, 0}, {120, 24}}S;13;Normal ButtonS;22;{{150, 18}, {146, 24}}S;19;{{0, 0}, {146, 24}}d;5;65540S;17;Continuous ButtonS;21;{{17, 48}, {107, 17}}S;19;{{0, 0}, {107, 17}}S;16;Recorded clicks:S;22;{{126, 48}, {175, 17}}S;19;{{0, 0}, {175, 17}}S;1;0S;24;{{410, 462}, {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;86E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;E;E;S;21;{{29, 18}, {208, 24}}S;19;{{0, 0}, {208, 24}}S;26;Momentary Push In (Normal)S;21;{{29, 50}, {208, 24}}S;18;Push On / Push OffS;21;{{29, 82}, {208, 24}}S;6;ToggleS;22;{{29, 114}, {208, 24}}S;16;Momentary ChangeS;24;{{410, 644}, {480, 210}}S;18;Monkey Button TestS;20;{{0, 0}, {480, 210}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;106E;E;E;S;22;{{151, 38}, {174, 24}}S;19;{{0, 0}, {174, 24}}D;K;10;$classnameS;20;_CPCibCustomResourceK;8;$classesA;S;20;_CPCibCustomResourceS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;243E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;302E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;303E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;305E;E;S;13;Monkey ButtonS;22;{{17, 80}, {222, 114}}S;20;{{0, 0}, {222, 114}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;254E;E;E;D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;249E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;306E;E;D;K;6;$classD;K;6;CP$UIDd;3;249E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;307E;E;S;13;Highlights ByS;6;{0, 0}D;K;6;$classD;K;6;CP$UIDd;2;52E;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;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;313E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;314E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;315E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;94E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;147E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;E;S;20;{{16, 8}, {137, 18}}S;19;{{0, 0}, {137, 18}}D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;301E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;308E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;E;S;16;CPPushInCellMaskS;21;{{16, 28}, {152, 18}}S;19;{{0, 0}, {152, 18}}D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;301E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;308E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;E;S;18;CPContentsCellMaskS;21;{{16, 48}, {172, 18}}S;19;{{0, 0}, {172, 18}}D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;301E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;308E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;E;S;20;CPChangeGrayCellMaskd;1;8S;21;{{16, 68}, {218, 18}}S;19;{{0, 0}, {218, 18}}D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;301E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;308E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;E;S;26;CPChangeBackgroundCellMaskS;23;{{241, 80}, {222, 114}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;276E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;249E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;309E;E;S;14;Shows State ByD;K;6;$classD;K;6;CP$UIDd;2;52E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;99E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;313E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;314E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;317E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;99E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;147E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;301E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;308E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;E;D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;301E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;308E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;E;D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;301E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;308E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;E;D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;301E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;308E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;E;S;22;{{332, 41}, {131, 17}}S;19;{{0, 0}, {131, 17}}S;5;LabelS;22;{{151, 10}, {138, 32}}S;19;{{0, 0}, {138, 32}}S;15;Monkey CheckboxS;22;{{289, 10}, {131, 17}}S;10;OtherViewsD;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;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;E;E;S;18;{{0, 0}, {82, 40}}S;5;radioS;17;selected+borderedS;7;Radio 1d;1;3f;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;297E;K;21;CPRadioGroupRadiosKeyD;K;6;CP$UIDd;3;310E;K;28;CPRadioGroupSelectedRadioKeyD;K;6;CP$UIDd;3;127E;E;S;19;{{86, 0}, {82, 40}}S;7;Radio 2S;17;Arial, sans-serifS;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;304E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;312E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;316E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;144E;E;E;d;2;11D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;316E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;3;318E;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;311E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;319E;E;S;20;{{1, 15}, {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;95E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;E;E;f;4;0.42D;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;102E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;100E;E;E;D;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;129E;E;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;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;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;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;49E;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;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;67E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;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;74E;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;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;2;78E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;1;0E;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;2;85E;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;1;0E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;1;0E;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;2;91E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;1;0E;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;96E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;99E;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;1;0E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;1;0E;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;108E;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;51E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;55E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;2;53E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;69E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;67E;D;K;6;CP$UIDd;2;76E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;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;79E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;79E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;11E;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;85E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;11E;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;91E;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;96E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;100E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;2;57E;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;109E;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;110E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;111E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;69E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;112E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;72E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;113E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;83E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;114E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;70E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;115E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;76E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;116E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;89E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;117E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;92E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;118E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;105E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;119E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;106E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;120E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;104E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;121E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;73E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;122E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;57E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;123E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;86E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;124E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;87E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;125E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;127E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;128E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;129E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;130E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;51E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;131E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;77E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;88E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;132E;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;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;57E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;133E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;80E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;134E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;81E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;134E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;75E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;135E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;92E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;136E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;95E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;137E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;96E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;137E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;97E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;137E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;98E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;137E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;100E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;138E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;101E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;138E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;102E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;138E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;103E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;138E;E;D;K;6;$classD;K;6;CP$UIDd;2;34E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;105E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;77E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;136E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;109E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;139E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;140E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;141E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;142E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;143E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;53E;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;52E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;145E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;145E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;146E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;147E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;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;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;53E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;149E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;150E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;53E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;152E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;155E;K;11;$aalignmentD;K;6;CP$UIDd;3;156E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;157E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;158E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;159E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;160E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;162E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;155E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;156E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;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;56E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;53E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;3;108E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;163E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;164E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;53E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;165E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;166E;K;6;$afontD;K;6;CP$UIDd;3;167E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;156E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;169E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;58E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;170E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;57E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;171E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;172E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;173E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;174E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;57E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;171E;K;16;CPMenuItemTagKeyD;K;6;CP$UIDd;3;172E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;173E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;175E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;57E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;171E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;173E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;176E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;57E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;171E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;173E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;177E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;57E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;171E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;173E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;178E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;57E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;171E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;173E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;179E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;2;57E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;171E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;173E;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;66E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;53E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;180E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;181E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;182E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;53E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;28;_CPCibCustomViewClassNameKeyD;K;6;CP$UIDd;3;183E;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;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;67E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;184E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;185E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;67E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;166E;K;6;$afontD;K;6;CP$UIDd;3;167E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;186E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;187E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;67E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;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;67E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;166E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;167E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;190E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;187E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;67E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;191E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;192E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;67E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;194E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;172E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;195E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;172E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;67E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;196E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;197E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;67E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;194E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;172E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;198E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;157E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;172E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;52E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;67E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;199E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;200E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;201E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;67E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;2;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;67E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;202E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;203E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;67E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;166E;K;6;$afontD;K;6;CP$UIDd;3;167E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;204E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;187E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;67E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;205E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;189E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;67E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;206E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;167E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;207E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;187E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;208E;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;139E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;140E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;209E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;210E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;211E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;79E;E;D;K;6;$classD;K;6;CP$UIDd;2;52E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;212E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;212E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;213E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;2;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;79E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;214E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;215E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;79E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;166E;K;6;$afontD;K;6;CP$UIDd;3;167E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;216E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;187E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;79E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;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;79E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;166E;K;6;$afontD;K;6;CP$UIDd;3;167E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;219E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;220E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;187E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;79E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;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;79E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;152E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;155E;K;11;$aalignmentD;K;6;CP$UIDd;3;156E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;157E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;223E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;159E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;160E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;162E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;155E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;156E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;79E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;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;79E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;152E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;155E;K;11;$aalignmentD;K;6;CP$UIDd;3;172E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;157E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;226E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;159E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;160E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;162E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;155E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;172E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;50E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;139E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;140E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;227E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;210E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;228E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;85E;E;D;K;6;$classD;K;6;CP$UIDd;2;52E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;229E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;229E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;230E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;2;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;85E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;231E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;232E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;85E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;166E;K;6;$afontD;K;6;CP$UIDd;3;167E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;233E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;187E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;85E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;234E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;232E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;85E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;166E;K;6;$afontD;K;6;CP$UIDd;3;167E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;235E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;187E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;85E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;236E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;232E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;85E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;166E;K;6;$afontD;K;6;CP$UIDd;3;167E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;237E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;187E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;85E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;238E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;232E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;85E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;166E;K;6;$afontD;K;6;CP$UIDd;3;167E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;239E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;187E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;50E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;139E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;140E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;240E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;210E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;241E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;91E;E;D;K;6;$classD;K;6;CP$UIDd;2;52E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;242E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;242E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;243E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;2;68E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;91E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;244E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;245E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;91E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;112E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;166E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;167E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;155E;K;7;$aimageD;K;6;CP$UIDd;3;247E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;248E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;249E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;187E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;144E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;93E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;91E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;250E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;251E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;252E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;91E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;144E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;144E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;172E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;253E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;254E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;144E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;172E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;255E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;155E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;256E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;257E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;155E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;258E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;259E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;257E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;260E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;261E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;172E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;257E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;172E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;262E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;263E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;257E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;264E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;265E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;172E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;257E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;156E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;266E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;267E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;257E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;268E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;269E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;172E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;257E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;270E;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;3;257E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;273E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;274E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;172E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;93E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;91E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;275E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;251E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;276E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;91E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;144E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;144E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;172E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;277E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;254E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;144E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;172E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;278E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;155E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;256E;E;D;K;6;$classD;K;6;CP$UIDd;2;71E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;279E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;270E;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;3;279E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;280E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;274E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;172E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;279E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;156E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;266E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;267E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;279E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;281E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;269E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;172E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;279E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;172E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;262E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;263E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;279E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;282E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;265E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;172E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;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;279E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;155E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;258E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;259E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;279E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;283E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;261E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;172E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;91E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;284E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;285E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;91E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;152E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;155E;K;11;$aalignmentD;K;6;CP$UIDd;3;156E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;157E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;286E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;159E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;160E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;162E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;155E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;156E;K;31;CPTextFieldPlaceholderStringKeyD;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;91E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;287E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;288E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;91E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;193E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;194E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;172E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;289E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;172E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;54E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;91E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;290E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;285E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;91E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;151E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;152E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;155E;K;11;$aalignmentD;K;6;CP$UIDd;3;156E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;157E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;286E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;159E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;160E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;160E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;162E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;155E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;156E;K;31;CPTextFieldPlaceholderStringKeyD;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;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;291E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;292E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;51E;D;K;6;CP$UIDd;2;78E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;90E;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;126E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;74E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;293E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;293E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;74E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;147E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;254E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;294E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;295E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;155E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;155E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;172E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;296E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;172E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;297E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;298E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;300E;E;S;6;radio1D;K;6;$classD;K;6;CP$UIDd;3;126E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;74E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;301E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;293E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;74E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;147E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;254E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;294E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;166E;K;15;$aimage-scalingD;K;6;CP$UIDd;3;155E;K;16;$aimage-positionD;K;6;CP$UIDd;3;155E;K;6;$afontD;K;6;CP$UIDd;3;154E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;144E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;155E;K;11;$aalignmentD;K;6;CP$UIDd;3;144E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;144E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;156E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;302E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;160E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;172E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;172E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;157E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;155E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;144E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;297E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;298E;K;20;CPRadioRadioGroupKeyD;K;6;CP$UIDd;3;300E;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;CPWindowS;23;{{100, 67}, {380, 253}}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;55E;D;K;6;CP$UIDd;2;57E;D;K;6;CP$UIDd;2;67E;E;E;d;2;18S;6;normalS;22;{{40, 212}, {101, 17}}S;19;{{0, 0}, {101, 17}}d;2;36S;9;textfieldD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;303E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;304E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;157E;E;d;1;2d;1;4T;S;15;Image Position:d;4;3072F;D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;161E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;305E;E;S;23;{{141, 211}, {201, 24}}S;19;{{0, 0}, {201, 24}}S;12;popup-buttonS;8;borderedD;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;303E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;304E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;157E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;157E;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;76E;D;K;6;CP$UIDd;2;75E;D;K;6;CP$UIDd;2;74E;D;K;6;CP$UIDd;2;73E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;70E;D;K;6;CP$UIDd;2;69E;E;E;S;9;BezelViewS;20;{{22, 15}, {96, 24}}S;18;{{0, 0}, {96, 24}}S;6;Buttond;2;14S;22;{{141, 15}, {176, 24}}S;19;{{0, 0}, {176, 24}}S;17;Button With ImageS;20;{{29, 65}, {85, 40}}S;18;{{0, 0}, {85, 40}}S;9;check-boxS;8;selectedS;8;CheckboxS;22;{{163, 65}, {152, 40}}S;19;{{0, 0}, {152, 40}}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;127E;D;K;6;CP$UIDd;3;129E;E;E;S;23;{{198, 128}, {119, 24}}S;19;{{0, 0}, {119, 24}}S;14;Set radio 2 OnS;22;{{141, 45}, {176, 24}}S;17;disabled+borderedS;19;Disabled With ImageS;13;AppControllerS;23;{{100, 354}, {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;80E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;82E;D;K;6;CP$UIDd;2;83E;E;E;S;21;{{18, 18}, {120, 24}}S;19;{{0, 0}, {120, 24}}S;13;Normal ButtonS;22;{{150, 18}, {146, 24}}S;19;{{0, 0}, {146, 24}}d;5;65540S;17;Continuous ButtonS;21;{{17, 48}, {107, 17}}S;19;{{0, 0}, {107, 17}}S;16;Recorded clicks:S;22;{{126, 48}, {175, 17}}S;19;{{0, 0}, {175, 17}}S;1;0S;23;{{502, 67}, {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;86E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;89E;E;E;S;21;{{29, 18}, {208, 24}}S;19;{{0, 0}, {208, 24}}S;26;Momentary Push In (Normal)S;21;{{29, 50}, {208, 24}}S;18;Push On / Push OffS;21;{{29, 82}, {208, 24}}S;6;ToggleS;22;{{29, 114}, {208, 24}}S;16;Momentary ChangeS;24;{{502, 265}, {480, 210}}S;18;Monkey Button TestS;20;{{0, 0}, {480, 210}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;2;94E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;3;105E;D;K;6;CP$UIDd;3;106E;E;E;S;22;{{151, 38}, {174, 24}}S;19;{{0, 0}, {174, 24}}D;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;246E;K;4;nameD;K;6;CP$UIDd;3;306E;K;12;defaultValueD;K;6;CP$UIDd;1;0E;K;6;valuesD;K;6;CP$UIDd;3;308E;E;S;13;Monkey ButtonS;15;Alternate TitleS;22;{{17, 80}, {222, 114}}S;20;{{0, 0}, {222, 114}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;257E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;161E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;309E;E;D;K;6;$classD;K;6;CP$UIDd;3;161E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;310E;E;S;13;Highlights ByS;6;{0, 0}D;K;6;$classD;K;6;CP$UIDd;2;52E;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;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;318E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;319E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;320E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;94E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;147E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;E;S;20;{{16, 8}, {137, 18}}S;19;{{0, 0}, {137, 18}}D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;303E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;311E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;157E;E;S;16;CPPushInCellMaskS;21;{{16, 28}, {152, 18}}S;19;{{0, 0}, {152, 18}}D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;303E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;311E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;157E;E;S;18;CPContentsCellMaskS;21;{{16, 48}, {172, 18}}S;19;{{0, 0}, {172, 18}}D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;303E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;311E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;157E;E;S;20;CPChangeGrayCellMaskd;1;8S;21;{{16, 68}, {218, 18}}S;19;{{0, 0}, {218, 18}}D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;303E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;311E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;157E;E;S;26;CPChangeBackgroundCellMaskS;23;{{241, 80}, {222, 114}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;279E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;161E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;312E;E;S;14;Shows State ByD;K;6;$classD;K;6;CP$UIDd;2;52E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;99E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;144E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;318E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;319E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;322E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;99E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;147E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;303E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;311E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;303E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;311E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;303E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;311E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;3;153E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;303E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;311E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;160E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;157E;E;S;22;{{332, 41}, {131, 17}}S;19;{{0, 0}, {131, 17}}S;5;LabelS;22;{{151, 10}, {138, 32}}S;19;{{0, 0}, {138, 32}}S;15;Monkey CheckboxS;22;{{289, 10}, {131, 17}}S;10;OtherViewsD;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;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;E;E;S;18;{{0, 0}, {82, 40}}S;5;radioS;17;selected+borderedS;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;299E;K;21;CPRadioGroupRadiosKeyD;K;6;CP$UIDd;3;313E;K;28;CPRadioGroupSelectedRadioKeyD;K;6;CP$UIDd;3;127E;E;S;19;{{86, 0}, {82, 40}}S;7;Radio 2S;28;_CPFontSystemFacePlaceholderd;2;-1D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;314E;D;K;6;CP$UIDd;3;314E;D;K;6;CP$UIDd;3;314E;D;K;6;CP$UIDd;3;172E;E;E;S;5;imageD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;307E;K;10;CP.objectsD;K;11;highlightedD;K;6;CP$UIDd;3;316E;K;6;normalD;K;6;CP$UIDd;3;317E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;321E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;144E;E;E;d;2;11D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;321E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;3;323E;E;f;18;0.6862745098039216D;K;10;$classnameS;20;_CPCibCustomResourceK;8;$classesA;S;20;_CPCibCustomResourceS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;315E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;324E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;325E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;326E;E;D;K;6;$classD;K;6;CP$UIDd;3;315E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;324E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;327E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;328E;E;S;20;{{1, 15}, {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;95E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;98E;E;E;f;4;0.42D;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;102E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;3;100E;E;E;D;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;129E;E;E;S;7;CPImageS;16;CPRemoveTemplateD;K;6;$classD;K;6;CP$UIDd;3;307E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;330E;E;E;S;13;CPAddTemplateD;K;6;$classD;K;6;CP$UIDd;3;307E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;331E;E;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;329E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;332E;E;D;K;6;$classD;K;6;CP$UIDd;3;329E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;332E;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/CPButtonTest/Resources/MainMenu.xib b/Tests/Manual/CPButtonTest/Resources/MainMenu.xib index 4cfbbac37..646fa37c3 100644 --- a/Tests/Manual/CPButtonTest/Resources/MainMenu.xib +++ b/Tests/Manual/CPButtonTest/Resources/MainMenu.xib @@ -1,328 +1,313 @@ - - 1070 - 11E53 - 2182 - 1138.47 - 569.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 2182 - - - NSPopUpButton - NSMenuItem - NSMenu - NSButton - NSTextFieldCell - NSButtonCell - NSBox - NSMatrix - NSCustomObject - NSCustomView - NSView - NSWindowTemplate - NSTextField - NSPopUpButtonCell - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - NSApplication - - - FirstResponder - - - NSApplication - - - 7 - 2 - {{10, 700}, {380, 253}} - 1954021376 - CPButton Image Test - NSWindow - - - - - 274 - - - - 268 - {{40, 24}, {101, 17}} - - - - YES - - 68288064 - 272630784 - Image Position: - - LucidaGrande - 13 - 1044 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 268 - {{140, 16}, {207, 26}} - - - - YES - - -2076049856 - 2048 - - - 109199615 - 129 - - - 400 - 75 - - - No Image - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - YES - - OtherViews - - - - - Image Only - - 1048576 - 2147483647 - - - _popUpItemAction: - 1 - - - - - Left - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Right - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Below - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Above - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Overlaps - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - 1 - YES - YES - 2 - - - - - 268 - - - - 268 - {{143, 103}, {176, 25}} - - - - YES - - 604110336 - 134217728 - Disabled With Image - - - -2034482945 - 163 - - - 200 - 25 - - - - - 268 - {{194, 16}, {131, 32}} - - - - _NS:687 - YES - - 67239424 - 134217728 - Set radio 2 On - - _NS:687 - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{31, 14}, {168, 40}} - - - - YES - 1 - 2 - - - -2080244224 - 0 - Radio 1 - - - 1 - 1211912703 - 0 - - NSRadioButton - - - - 200 - 25 - - - 67239424 - 0 - Radio 2 - - - 1211912703 - 0 - - 400 - 75 - - - {82, 40} - {4, 2} - 1151868928 - NSActionCell - - 67239424 - 0 - Radio - - 1211912703 - 0 - - 549453824 - {18, 18} - - - - - - TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA + + 1060 + 11E53 + 851 + 1138.47 + 569.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 851 + + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + NSApplication + + + FirstResponder + + + NSApplication + + + 7 + 2 + {{100, 1098}, {380, 253}} + 1954021376 + CPButton Image Test + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 274 + + + + 268 + {{40, 24}, {101, 17}} + + + YES + + 68288064 + 272630784 + Image Position: + + LucidaGrande + 13 + 1040 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 268 + {{140, 16}, {207, 26}} + + YES + + -2076049856 + 2048 + + + 109199615 + 129 + + + 400 + 75 + + + No Image + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + + + + Image Only + + 1048576 + 2147483647 + + + _popUpItemAction: + 1 + + + + + Left + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Right + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Below + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Above + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Overlaps + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + 1 + YES + YES + 2 + + + + + 268 + + + + 268 + {{143, 103}, {176, 25}} + + + YES + + 604110336 + 134217728 + Disabled With Image + + + -2034482945 + 163 + + + 200 + 25 + + + + + 268 + {{194, 16}, {131, 32}} + + + _NS:687 + YES + + 67239424 + 134217728 + Set radio 2 On + + _NS:687 + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{31, 14}, {168, 40}} + + + YES + 1 + 2 + + + -2080244224 + 0 + Radio 1 + + + 1 + 1211912703 + 0 + + NSRadioButton + + + + 200 + 25 + + + 67239424 + 0 + Radio 2 + + + 1211912703 + 0 + + 400 + 75 + + + {82, 40} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 0 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ 29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 @@ -347,1887 +332,1876 @@ AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - - - - - - 3 - MCAwAA - - - - 400 - 75 - - - - - 3 - MQA - - - - - - 268 - {{163, 69}, {152, 40}} - - - - YES - - -2080244224 - 16777216 - Multistate Checkbox - - - 1211912703 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - - - 268 - {{29, 69}, {85, 40}} - - - - YES - - -2080244224 - 134217728 - Checkbox - - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{143, 133}, {176, 25}} - - - - YES - - 67239424 - 134217728 - Button With Image - - - -2034482945 - 163 - - - 200 - 25 - - - - - 268 - {{24, 133}, {96, 25}} - - - - YES - - 67239424 - 134217728 - Button - - - -2038284033 - 163 - - - 200 - 25 - - - - {{20, 59}, {340, 174}} - - - - BezelView - - - {380, 253} - - - - - {{0, 0}, {2560, 1418}} - {10000000000000, 10000000000000} - YES - - - AppController - - - 15 - 2 - {{10, 537}, {318, 85}} - 611844096 - Continuous Button Test - NSWindow - - - - - 256 - - - - 268 - {{14, 37}, {132, 32}} - - - YES - - 67239424 - 134217728 - Normal Button - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{146, 37}, {158, 32}} - - - YES - - 67763712 - 134217728 - Continuous Button - - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{17, 20}, {107, 17}} - - - YES - - 68288064 - 272630784 - Recorded clicks: - - - - - - - - - 268 - {{126, 20}, {175, 17}} - - YES - - 68288064 - 71304192 - 0 - - - - - - - - {318, 85} - - - {{0, 0}, {2560, 1418}} - {10000000000000, 10000000000000} - YES - - - 15 - 2 - {{410, 800}, {271, 156}} - 611845120 - CPButton Button Type Test - NSWindow - - - - - 256 - - - - 268 - {{25, 108}, {220, 32}} - - - _NS:9 - YES - - 67239424 - 134217728 - Momentary Push In (Normal) - - _NS:9 - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{25, 76}, {220, 32}} - - - _NS:9 - YES - - 67239424 - 134217728 - Push On / Push Off - - _NS:9 - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{25, 44}, {220, 32}} - - - _NS:9 - YES - - 67239424 - 134217728 - Toggle - - _NS:9 - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{25, 12}, {220, 32}} - - _NS:9 - YES - - 67239424 - 134217728 - Momentary Change - - _NS:9 - - -2038284033 - 129 - - - 200 - 25 - - - - {271, 156} - - _NS:20 - - {{0, 0}, {2560, 1418}} - {10000000000000, 10000000000000} - YES - - - 15 - 2 - {{410, 564}, {480, 210}} - 611845120 - Monkey Button Test - NSWindow - - - - - 256 - - - - 268 - {{147, 142}, {186, 32}} - - - - _NS:9 - YES - - 67239424 - 134217728 - Monkey Button - - _NS:9 - - -2034482945 - 129 - - NSImage - NSAddTemplate - - - NSImage - NSRemoveTemplate - - Alternate Title - - 200 - 25 - - - - - 12 - - - - 274 - - - - 268 - {{16, 72}, {137, 18}} - - - - _NS:9 - 2 - YES - - 67239424 - 131072 - CPPushInCellMask - - LucidaGrande - 11 - 3100 - - _NS:9 - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{16, 52}, {152, 18}} - - - - _NS:9 - 1 - YES - - 67239424 - 131072 - CPContentsCellMask - - _NS:9 - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{16, 32}, {172, 18}} - - - - _NS:9 - 4 - YES - - 67239424 - 131072 - CPChangeGrayCellMask - - _NS:9 - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{16, 12}, {218, 18}} - - - - _NS:9 - 8 - YES - - 67239424 - 131072 - CPChangeBackgroundCellMask - - _NS:9 - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {220, 98}} - - - - _NS:11 - - - {{17, 16}, {222, 114}} - - - - _NS:9 - {0, 0} - - 67239424 - 0 - Highlights By - - - 6 - System - textBackgroundColor - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 12 - - - - 274 - - - - 268 - {{16, 72}, {137, 18}} - - - - _NS:9 - 2 - YES - - 67239424 - 131072 - CPPushInCellMask - - _NS:9 - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{16, 52}, {152, 18}} - - - - _NS:9 - 1 - YES - - 67239424 - 131072 - CPContentsCellMask - - _NS:9 - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{16, 32}, {172, 18}} - - - - _NS:9 - 4 - YES - - 67239424 - 131072 - CPChangeGrayCellMask - - _NS:9 - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{16, 12}, {218, 18}} - - - - _NS:9 - 8 - YES - - 67239424 - 131072 - CPChangeBackgroundCellMask - - _NS:9 - - 1211912703 - 2 - - - - - 200 - 25 - - - - {{1, 1}, {220, 98}} - - - - _NS:11 - - - {{241, 16}, {222, 114}} - - - - _NS:9 - {0, 0} - - 67239424 - 0 - Shows State By - - - - 3 - MCAwLjgwMDAwMDAxMTkAA - - - - 1 - 0 - 2 - NO - - - - 268 - {{332, 152}, {131, 17}} - - - - _NS:1505 - YES - - 68288064 - 272630784 - Label - - _NS:1505 - - - - - - - - 268 - {{151, 168}, {138, 32}} - - - - _NS:9 - YES - - -2080244224 - 0 - Monkey Checkbox - - _NS:9 - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{289, 183}, {131, 17}} - - - - _NS:1505 - YES - - 68288064 - 272630784 - Label - - _NS:1505 - - - - - - - {480, 210} - - - - _NS:20 - - {{0, 0}, {2560, 1418}} - {10000000000000, 10000000000000} - YES - - - - - - - delegate - - - - 451 - - - - theWindow - - - - 1090 - - - - button - - - - 1174 - - - - imageButton - - - - 1175 - - - - checkbox - - - - 1176 - - - - multiCheckbox - - - - 1177 - - - - radio1 - - - - 1178 - - - - radio2 - - - - 1179 - - - - setImagePosition: - - - - 1180 - - - - positionMenu - - - - 1181 - - - - clickCount - - - - 1193 - - - - countClick: - - - - 1194 - - - - countClick: - - - - 1195 - - - - switchSelectedRadio: - - - - 1206 - - - - imageDisabledButton - - - - 1209 - - - - pushOnOffButton - - - - 1220 - - - - pushInButton - - - - 1221 - - - - toggleButton - - - - 1222 - - - - momentaryChangeButton - - - - 1223 - - - - setMonkeyButtonHighlightedBy: - - - - 1247 - - - - setMonkeyButtonHighlightedBy: - - - - 1248 - - - - setMonkeyButtonHighlightedBy: - - - - 1249 - - - - setMonkeyButtonHighlightedBy: - - - - 1250 - - - - setMonkeyButtonShowsStateBy: - - - - 1251 - - - - setMonkeyButtonShowsStateBy: - - - - 1252 - - - - setMonkeyButtonShowsStateBy: - - - - 1253 - - - - setMonkeyButtonShowsStateBy: - - - - 1254 - - - - monkeyButton - - - - 1255 - - - - monkeyLabel - - - - 1258 - - - - monkeyClick: - - - - 1259 - - - - monkeyClick: - - - - 1267 - - - - monkeyCheckboxLabel - - - - 1268 - - - - monkeyCheckbox - - - - 1269 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 371 - - - - - - - - 372 - - - - - - - - - - 450 - - - - - 1148 - - - - - - - - 1149 - - - - - 1150 - - - - - - - - 1151 - - - - - - - - 1152 - - - - - - - - - - - - - - 1153 - - - - - 1154 - - - - - 1155 - - - - - 1163 - - - - - 1164 - - - - - 1165 - - - - - 1166 - - - - - 1182 - - - - - - - - - - - - - - 1130 - - - - - - - - 1131 - - - - - 1132 - - - - - - - - 1133 - - - - - 1134 - - - - - - - - 1135 - - - - - 1140 - - - - - - - - 1141 - - - - - 1142 - - - - - - - - - - 1146 - - - - - 1145 - - - - - 1143 - - - - - 1183 - - - - - - - - 1184 - - - - - - - - - - - 1185 - - - - - - - - 1186 - - - - - 1187 - - - - - - - - 1188 - - - - - 1189 - - - - - - - - 1190 - - - - - 1191 - - - - - - - - 1192 - - - - - 1196 - - - - - - - - 1197 - - - - - 1207 - - - - - - - - 1208 - - - - - 1210 - - - - - - - - 1211 - - - - - - - - - - - 1212 - - - - - - - - 1213 - - - - - 1214 - - - - - - - - 1215 - - - - - 1216 - - - - - - - - 1217 - - - - - 1218 - - - - - - - - 1219 - - - - - 1224 - - - - - - Window - Monkey Button Test - - - 1225 - - - - - - - - - - - - - 1226 - - - - - - - - 1227 - - - - - 1228 - - - - - - - - - - - 1230 - - - - - - - - 1231 - - - - - 1232 - - - - - - - - 1233 - - - - - 1234 - - - - - - - - 1235 - - - - - 1236 - - - - - - - - 1237 - - - - - 1238 - - - - - - - - - - - 1239 - - - - - - - - 1240 - - - - - - - - 1241 - - - - - - - - 1242 - - - - - - - - 1243 - - - - - 1244 - - - - - 1245 - - - - - 1246 - - - - - 1256 - - - - - - - - 1257 - - - - - 1260 - - - - - - - - 1261 - - - - - 1262 - - - - - - - - 1263 - - - - - - - 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 - 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 - {{902, 462}, {380, 253}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 1269 - - - - - AppController - NSObject - - id - id - id - id - id - id - - - - countClick: - id - - - monkeyClick: - id - - - radioGroupClicked: - id - - - setMonkeyButtonHighlightedBy: - id - - - setMonkeyButtonShowsStateBy: - id - - - switchSelectedRadio: - id - - - - NSButton - CPCheckBox - NSTextField - NSButton - NSButton - NSButton - NSButton - CPCheckBox - NSTextField - NSTextField - CPCheckBox - NSPopUpButton - NSButton - NSButton - CPRadio - CPRadio - NSButton - - - - button - NSButton - - - checkbox - CPCheckBox - - - clickCount - NSTextField - - - imageButton - NSButton - - - imageDisabledButton - NSButton - - - momentaryChangeButton - NSButton - - - monkeyButton - NSButton - - - monkeyCheckbox - CPCheckBox - - - monkeyCheckboxLabel - NSTextField - - - monkeyLabel - NSTextField - - - multiCheckbox - CPCheckBox - - - positionMenu - NSPopUpButton - - - pushInButton - NSButton - - - pushOnOffButton - NSButton - - - radio1 - CPRadio - - - radio2 - CPRadio - - - toggleButton - NSButton - - - - IBProjectSource - ./Classes/AppController.h - - - - BezelView - NSView - - IBProjectSource - ./Classes/BezelView.h - - - - - 0 - IBCocoaFramework - YES - 3 - - {8, 8} - {11, 11} - {10, 3} - {8, 8} - {15, 15} - - + + + + + + 3 + MCAwAA + + + + 400 + 75 + + + + + 3 + MQA + + + + + + 268 + {{163, 69}, {152, 40}} + + + YES + + -2080244224 + 16777216 + Multistate Checkbox + + + 1211912703 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + + 268 + {{29, 69}, {85, 40}} + + + YES + + -2080244224 + 134217728 + Checkbox + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{143, 133}, {176, 25}} + + + YES + + 67239424 + 134217728 + Button With Image + + + -2034482945 + 163 + + + 200 + 25 + + + + + 268 + {{24, 133}, {96, 25}} + + + YES + + 67239424 + 134217728 + Button + + + -2038284033 + 163 + + + 200 + 25 + + + + {{20, 59}, {340, 174}} + + + BezelView + + + {380, 253} + + + + {{0, 0}, {2560, 1418}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + AppController + + + 15 + 2 + {{100, 979}, {318, 85}} + 611844096 + Continuous Button Test + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + + + 268 + {{14, 37}, {132, 32}} + + + YES + + 67239424 + 134217728 + Normal Button + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{146, 37}, {158, 32}} + + + YES + + 67763712 + 134217728 + Continuous Button + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{17, 20}, {107, 17}} + + + YES + + 68288064 + 272630784 + Recorded clicks: + + + + + + + + + 268 + {{126, 20}, {175, 17}} + + YES + + 68288064 + 71304192 + 0 + + + + + + + + {318, 85} + + + + {{0, 0}, {2560, 1418}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + 15 + 2 + {{502, 1195}, {271, 156}} + 611845120 + CPButton Button Type Test + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + + + 268 + {{25, 108}, {220, 32}} + + + _NS:9 + YES + + 67239424 + 134217728 + Momentary Push In (Normal) + + _NS:9 + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{25, 76}, {220, 32}} + + + _NS:9 + YES + + 67239424 + 134217728 + Push On / Push Off + + _NS:9 + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{25, 44}, {220, 32}} + + + _NS:9 + YES + + 67239424 + 134217728 + Toggle + + _NS:9 + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{25, 12}, {220, 32}} + + _NS:9 + YES + + 67239424 + 134217728 + Momentary Change + + _NS:9 + + -2038284033 + 129 + + + 200 + 25 + + + + {271, 156} + + + _NS:20 + + {{0, 0}, {2560, 1418}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + 15 + 2 + {{502, 943}, {480, 210}} + 611845120 + Monkey Button Test + NSWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + + + 268 + {{147, 142}, {186, 32}} + + + _NS:9 + YES + + 67239424 + 134217728 + Monkey Button + + _NS:9 + + -2034482945 + 129 + + NSImage + NSAddTemplate + + + NSImage + NSRemoveTemplate + + Alternate Title + + 200 + 25 + + + + + 12 + + + + 274 + + + + 268 + {{16, 72}, {137, 18}} + + + _NS:9 + 2 + YES + + 67239424 + 131072 + CPPushInCellMask + + LucidaGrande + 11 + 3088 + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{16, 52}, {152, 18}} + + + _NS:9 + 1 + YES + + 67239424 + 131072 + CPContentsCellMask + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{16, 32}, {172, 18}} + + + _NS:9 + 4 + YES + + 67239424 + 131072 + CPChangeGrayCellMask + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{16, 12}, {218, 18}} + + + _NS:9 + 8 + YES + + 67239424 + 131072 + CPChangeBackgroundCellMask + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{1, 1}, {220, 98}} + + + _NS:11 + + + {{17, 16}, {222, 114}} + + + _NS:9 + {0, 0} + + 67239424 + 0 + Highlights By + + + 6 + System + textBackgroundColor + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 12 + + + + 274 + + + + 268 + {{16, 72}, {137, 18}} + + + _NS:9 + 2 + YES + + 67239424 + 131072 + CPPushInCellMask + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{16, 52}, {152, 18}} + + + _NS:9 + 1 + YES + + 67239424 + 131072 + CPContentsCellMask + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{16, 32}, {172, 18}} + + + _NS:9 + 4 + YES + + 67239424 + 131072 + CPChangeGrayCellMask + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{16, 12}, {218, 18}} + + _NS:9 + 8 + YES + + 67239424 + 131072 + CPChangeBackgroundCellMask + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{1, 1}, {220, 98}} + + + _NS:11 + + + {{241, 16}, {222, 114}} + + + _NS:9 + {0, 0} + + 67239424 + 0 + Shows State By + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{332, 152}, {131, 17}} + + + _NS:1505 + YES + + 68288064 + 272630784 + Label + + _NS:1505 + + + + + + + + 268 + {{151, 168}, {138, 32}} + + + _NS:9 + YES + + -2080244224 + 0 + Monkey Checkbox + + _NS:9 + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{289, 183}, {131, 17}} + + + _NS:1505 + YES + + 68288064 + 272630784 + Label + + _NS:1505 + + + + + + + {480, 210} + + + _NS:20 + + {{0, 0}, {2560, 1418}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + YES + + + + + + + delegate + + + + 451 + + + + theWindow + + + + 1090 + + + + button + + + + 1174 + + + + imageButton + + + + 1175 + + + + checkbox + + + + 1176 + + + + multiCheckbox + + + + 1177 + + + + radio1 + + + + 1178 + + + + radio2 + + + + 1179 + + + + setImagePosition: + + + + 1180 + + + + positionMenu + + + + 1181 + + + + clickCount + + + + 1193 + + + + countClick: + + + + 1194 + + + + countClick: + + + + 1195 + + + + switchSelectedRadio: + + + + 1206 + + + + imageDisabledButton + + + + 1209 + + + + pushOnOffButton + + + + 1220 + + + + pushInButton + + + + 1221 + + + + toggleButton + + + + 1222 + + + + momentaryChangeButton + + + + 1223 + + + + setMonkeyButtonHighlightedBy: + + + + 1247 + + + + setMonkeyButtonHighlightedBy: + + + + 1248 + + + + setMonkeyButtonHighlightedBy: + + + + 1249 + + + + setMonkeyButtonHighlightedBy: + + + + 1250 + + + + setMonkeyButtonShowsStateBy: + + + + 1251 + + + + setMonkeyButtonShowsStateBy: + + + + 1252 + + + + setMonkeyButtonShowsStateBy: + + + + 1253 + + + + setMonkeyButtonShowsStateBy: + + + + 1254 + + + + monkeyButton + + + + 1255 + + + + monkeyLabel + + + + 1258 + + + + monkeyClick: + + + + 1259 + + + + monkeyClick: + + + + 1267 + + + + monkeyCheckboxLabel + + + + 1268 + + + + monkeyCheckbox + + + + 1269 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 371 + + + + + + + + 372 + + + + + + + + + + 450 + + + + + 1148 + + + + + + + + 1149 + + + + + 1150 + + + + + + + + 1151 + + + + + + + + 1152 + + + + + + + + + + + + + + 1153 + + + + + 1154 + + + + + 1155 + + + + + 1163 + + + + + 1164 + + + + + 1165 + + + + + 1166 + + + + + 1182 + + + + + + + + + + + + + + 1130 + + + + + + + + 1131 + + + + + 1132 + + + + + + + + 1133 + + + + + 1134 + + + + + + + + 1135 + + + + + 1140 + + + + + + + + 1141 + + + + + 1142 + + + + + + + + + + 1146 + + + + + 1145 + + + + + 1143 + + + + + 1183 + + + + + + + + 1184 + + + + + + + + + + + 1185 + + + + + + + + 1186 + + + + + 1187 + + + + + + + + 1188 + + + + + 1189 + + + + + + + + 1190 + + + + + 1191 + + + + + + + + 1192 + + + + + 1196 + + + + + + + + 1197 + + + + + 1207 + + + + + + + + 1208 + + + + + 1210 + + + + + + + + 1211 + + + + + + + + + + + 1212 + + + + + + + + 1213 + + + + + 1214 + + + + + + + + 1215 + + + + + 1216 + + + + + + + + 1217 + + + + + 1218 + + + + + + + + 1219 + + + + + 1224 + + + + + + Window - Monkey Button Test + + + 1225 + + + + + + + + + + + + + 1226 + + + + + + + + 1227 + + + + + 1228 + + + + + + + + + + + 1230 + + + + + + + + 1231 + + + + + 1232 + + + + + + + + 1233 + + + + + 1234 + + + + + + + + 1235 + + + + + 1236 + + + + + + + + 1237 + + + + + 1238 + + + + + + + + + + + 1239 + + + + + + + + 1240 + + + + + + + + 1241 + + + + + + + + 1242 + + + + + + + + 1243 + + + + + 1244 + + + + + 1245 + + + + + 1246 + + + + + 1256 + + + + + + + + 1257 + + + + + 1260 + + + + + + + + 1261 + + + + + 1262 + + + + + + + + 1263 + + + + + + + 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 + {{100, 979}, {318, 85}} + + + com.apple.InterfaceBuilder.CocoaPlugin + {{100, 979}, {318, 85}} + + 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 + {{502, 1195}, {271, 156}} + com.apple.InterfaceBuilder.CocoaPlugin + {{502, 1195}, {271, 156}} + + 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 + {{502, 943}, {480, 210}} + com.apple.InterfaceBuilder.CocoaPlugin + {{502, 943}, {480, 210}} + + 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 + {{100, 1098}, {380, 253}} + + + com.apple.InterfaceBuilder.CocoaPlugin + {{100, 1098}, {380, 253}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + 1269 + + + + + AppController + NSObject + + id + id + id + id + id + id + + + + countClick: + id + + + monkeyClick: + id + + + radioGroupClicked: + id + + + setMonkeyButtonHighlightedBy: + id + + + setMonkeyButtonShowsStateBy: + id + + + switchSelectedRadio: + id + + + + NSButton + CPCheckBox + NSTextField + NSButton + NSButton + NSButton + NSButton + CPCheckBox + NSTextField + NSTextField + CPCheckBox + NSPopUpButton + NSButton + NSButton + CPRadio + CPRadio + NSButton + + + + button + NSButton + + + checkbox + CPCheckBox + + + clickCount + NSTextField + + + imageButton + NSButton + + + imageDisabledButton + NSButton + + + momentaryChangeButton + NSButton + + + monkeyButton + NSButton + + + monkeyCheckbox + CPCheckBox + + + monkeyCheckboxLabel + NSTextField + + + monkeyLabel + NSTextField + + + multiCheckbox + CPCheckBox + + + positionMenu + NSPopUpButton + + + pushInButton + NSButton + + + pushOnOffButton + NSButton + + + radio1 + CPRadio + + + radio2 + CPRadio + + + toggleButton + NSButton + + + + IBProjectSource + ./Classes/AppController.h + + + + BezelView + NSView + + IBProjectSource + ./Classes/BezelView.h + + + + + 0 + IBCocoaFramework + YES + + 3 + + {8, 8} + {11, 11} + {10, 3} + {8, 8} + {15, 15} + + From 99cd246ed849450b41beefc0edc2f37e689a54db Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Tue, 10 Jul 2012 18:08:33 -0700 Subject: [PATCH 064/109] Fix clipping of text due to fractional pixels --- AppKit/CPTextField.j | 8 ++++++++ AppKit/_CPImageAndTextView.j | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/AppKit/CPTextField.j b/AppKit/CPTextField.j index f02bb28fd..13171fd54 100644 --- a/AppKit/CPTextField.j +++ b/AppKit/CPTextField.j @@ -1042,8 +1042,16 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder"); textSize = [text sizeWithFont:font inWidth:textSize.width]; } else + { textSize = [text sizeWithFont:font]; + // Account for possible fractional pixels at right edge + textSize.width += 1; + } + + // Account for possible fractional pixels at bottom edge + textSize.height += 1; + frameSize.height = textSize.height + contentInset.top + contentInset.bottom; if ([self isBezeled]) diff --git a/AppKit/_CPImageAndTextView.j b/AppKit/_CPImageAndTextView.j index adb34716f..5bb2f9b6d 100644 --- a/AppKit/_CPImageAndTextView.j +++ b/AppKit/_CPImageAndTextView.j @@ -680,9 +680,19 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0, { if (_lineBreakMode === CPLineBreakByCharWrapping || _lineBreakMode === CPLineBreakByWordWrapping) + { _textSize = [_text sizeWithFont:_font inWidth:textRectWidth]; + } else + { _textSize = [_text sizeWithFont:_font]; + + // Account for possible fractional pixels at right edge + _textSize.width += 1; + } + + // Account for possible fractional pixels at bottom edge + _textSize.height += 1; } if (_verticalAlignment === CPCenterVerticalTextAlignment) From df9611cc2ccc8ca52a6f5a4f2efd5592a6865489 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Tue, 10 Jul 2012 18:53:41 -0700 Subject: [PATCH 065/109] Cleanup --- AppKit/Themes/Aristo/ThemeDescriptors.j | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/AppKit/Themes/Aristo/ThemeDescriptors.j b/AppKit/Themes/Aristo/ThemeDescriptors.j index b3b8e98b9..5c2f577f8 100755 --- a/AppKit/Themes/Aristo/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo/ThemeDescriptors.j @@ -909,7 +909,8 @@ var themedButtonValues = nil, [@"bezel-color", bezelColor, CPThemeStateBezeled], [@"bezel-color", bezelFocusedColor, CPThemeStateBezeled | CPThemeStateEditing], [@"bezel-color", bezelDisabledColor, CPThemeStateBezeled | CPThemeStateDisabled], - [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateBezeled], + + [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateBezeled], // no border [@"bezel-inset", CGInsetMakeZero()], @@ -929,10 +930,10 @@ var themedButtonValues = nil, [@"text-color", [CPColor colorWithCalibratedWhite:51.0 / 255.0 alpha:1.0], CPThemeStateTableDataView], [@"text-color", [CPColor whiteColor], CPThemeStateTableDataView | CPThemeStateSelectedTableDataView], - [@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize], CPThemeStateTableDataView | CPThemeStateSelectedTableDataView], + [@"font", [CPFont boldSystemFontOfSize:CPFontCurrentSystemSize], CPThemeStateTableDataView | CPThemeStateSelectedTableDataView], [@"text-color", [CPColor blackColor], CPThemeStateTableDataView | CPThemeStateEditing], [@"content-inset", CGInsetMake(8.0, 8.0, 7.0, 5.0), CPThemeStateTableDataView | CPThemeStateEditing], - [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateTableDataView | CPThemeStateEditing], + [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateTableDataView | CPThemeStateEditing], [@"bezel-inset", CGInsetMake(-1.0, -1.0, -1.0, -1.0), CPThemeStateTableDataView | CPThemeStateEditing], [@"text-color", [CPColor colorWithCalibratedWhite:125.0 / 255.0 alpha:1.0], CPThemeStateTableDataView | CPThemeStateGroupRow], @@ -1225,7 +1226,6 @@ var themedButtonValues = nil, themeValues = [ [@"alignment", CPLeftTextAlignment, CPThemeStateNormal], - [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateNormal], [@"content-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateNormal], [@"image", imageNormal, CPThemeStateNormal], @@ -1236,6 +1236,7 @@ var themedButtonValues = nil, [@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled], [@"image-offset", CPRadioImageOffset], + [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateNormal], [@"text-color", [CPColor colorWithCalibratedWhite:79.0 / 255.0 alpha:1.0], CPThemeStateDisabled], [@"min-size", CGSizeMake(0.0, 17.0)], @@ -1261,7 +1262,6 @@ var themedButtonValues = nil, themeValues = [ [@"alignment", CPLeftTextAlignment, CPThemeStateNormal], - [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateNormal], [@"content-inset", CGInsetMakeZero(), CPThemeStateNormal], [@"image", imageNormal, CPThemeStateNormal], @@ -1272,7 +1272,8 @@ var themedButtonValues = nil, [@"image", imageSelectedDisabled, CPThemeStateSelected | CPThemeStateDisabled], [@"image-offset", CPCheckBoxImageOffset], - [@"text-color", [CPColor colorWithCalibratedWhite:79.0 / 255.0 alpha:1.0], CPThemeStateDisabled], + [@"font", [CPFont systemFontOfSize:CPFontCurrentSystemSize], CPThemeStateNormal], + [@"text-color", [CPColor colorWithCalibratedWhite:79.0 / 255.0 alpha:1.0], CPThemeStateDisabled], [@"min-size", CGSizeMake(0.0, 17.0)], [@"max-size", CGSizeMake(-1.0, -1.0)] From 4af061516c50776722cbdc1392b550086d9b9d13 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Tue, 10 Jul 2012 21:53:51 -0700 Subject: [PATCH 066/109] CPTableColumn -setHidden documentation was backwards. --- AppKit/CPTableColumn.j | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/AppKit/CPTableColumn.j b/AppKit/CPTableColumn.j index 8faf64074..b0349993d 100644 --- a/AppKit/CPTableColumn.j +++ b/AppKit/CPTableColumn.j @@ -498,12 +498,13 @@ CPTableColumnUserResizingMask = 1 << 1; } /*! - If NO the tablecolumn will no longer be visible in the tableview - If YES the tablecolumn will be visible in the tableview. + If YES the tablecolumn will no longer be visible in the tableview. + If NO the tablecolumn will be visible in the tableview. */ - (void)setHidden:(BOOL)shouldBeHidden { shouldBeHidden = !!shouldBeHidden + if (_isHidden === shouldBeHidden) return; From a6d6fb1a1e6be0d055598ae2b64b800d5b3a445f Mon Sep 17 00:00:00 2001 From: Vladimir Shevchenko Date: Wed, 11 Jul 2012 16:29:30 +0700 Subject: [PATCH 067/109] CPGeometry moved to Foundation --- AppKit/AppKit.j | 1 - {AppKit => Foundation}/CPGeometry.j | 0 Foundation/Foundation.j | 1 + Tests/{AppKit => Foundation}/CPGeometryTest.j | 0 4 files changed, 1 insertion(+), 1 deletion(-) rename {AppKit => Foundation}/CPGeometry.j (100%) rename Tests/{AppKit => Foundation}/CPGeometryTest.j (100%) diff --git a/AppKit/AppKit.j b/AppKit/AppKit.j index c48b219d3..783ca68eb 100644 --- a/AppKit/AppKit.j +++ b/AppKit/AppKit.j @@ -60,7 +60,6 @@ @import "CPFlashView.j" @import "CPFont.j" @import "CPFontManager.j" -@import "CPGeometry.j" @import "CPGradient.j" @import "CPGraphics.j" @import "CPImage.j" diff --git a/AppKit/CPGeometry.j b/Foundation/CPGeometry.j similarity index 100% rename from AppKit/CPGeometry.j rename to Foundation/CPGeometry.j diff --git a/Foundation/Foundation.j b/Foundation/Foundation.j index d26bfbb1f..422501616 100755 --- a/Foundation/Foundation.j +++ b/Foundation/Foundation.j @@ -36,6 +36,7 @@ @import "CPException.j" @import "CPExpression.j" @import "CPFormatter.j" +@import "CPGeometry.j" @import "CPIndexSet.j" @import "CPIndexPath.j" @import "CPInvocation.j" diff --git a/Tests/AppKit/CPGeometryTest.j b/Tests/Foundation/CPGeometryTest.j similarity index 100% rename from Tests/AppKit/CPGeometryTest.j rename to Tests/Foundation/CPGeometryTest.j From 2905cd1586b10831e24c3b2a8d5cd893223b6dc0 Mon Sep 17 00:00:00 2001 From: Vladimir Shevchenko Date: Thu, 12 Jul 2012 00:19:10 +0700 Subject: [PATCH 068/109] Linked methods from CPGeometry to CGGeometry + added unit tests --- Foundation/CPGeometry.j | 92 ++++--------------------------- Tests/Foundation/CPGeometryTest.j | 52 ++++++++++++++++- 2 files changed, 61 insertions(+), 83 deletions(-) diff --git a/Foundation/CPGeometry.j b/Foundation/CPGeometry.j index 7e7fa2079..e98ba26d8 100644 --- a/Foundation/CPGeometry.j +++ b/Foundation/CPGeometry.j @@ -33,22 +33,21 @@ CPMakePoint = CGPointMake; CPMakeSize = CGSizeMake; CPMakeRect = CGRectMake; +CPPointCreateCopy = CGPointMakeCopy; + +CPPointEqualToPoint = CGPointEqualToPoint; +CPRectEqualToRect = CGRectEqualToRect; + +CPRectIsEmpty = CGRectIsEmpty; + +CPRectContainsRect = CGRectContainsRect; +CPRectIntersection = CGRectIntersection; + /*! @addtogroup appkit @{ */ -/*! - Creates a copy of a specified point and returns the copy - @group CGPoint - @param the point to be copied - @return CGPoint the copy of the provided CGPoint - */ -function CPPointCreateCopy(aPoint) -{ - return { x: aPoint.x, y: aPoint.y }; -} - /*! Makes a CGPoint object out of two numbers provided as arguments @group CGPoint @@ -86,26 +85,6 @@ function CPRectIntegral(aRect) alert("CPRectIntegral unimplemented"); } -/*! - Returns the intersection of the two provided rectangles as a new rectangle - @group CGRect - @param lhsRect the first rectangle used for calculation - @param rhsRect the second rectangle used for calculation - @return CGRect the intersection of the two rectangles -*/ -function CPRectIntersection(lhsRect, rhsRect) -{ - var intersection = CPRectMake( - MAX(CPRectGetMinX(lhsRect), CPRectGetMinX(rhsRect)), - MAX(CPRectGetMinY(lhsRect), CPRectGetMinY(rhsRect)), - 0, 0); - - intersection.size.width = MIN(CPRectGetMaxX(lhsRect), CPRectGetMaxX(rhsRect)) - CPRectGetMinX(intersection); - intersection.size.height = MIN(CPRectGetMaxY(lhsRect), CPRectGetMaxY(rhsRect)) - CPRectGetMinY(intersection); - - return CPRectIsEmpty(intersection) ? CPRectMakeZero() : intersection; -} - /*! Creates a copy of the provided rectangle @group CGRect @@ -226,45 +205,6 @@ function CPRectContainsPoint(aRect, aPoint) aPoint.y < CPRectGetMaxY(aRect); } -/*! - Returns a \c BOOL indicating whether CGRect \c possibleOuter - contains CGRect \c possibleInner. - @group CGRect - @param possibleOuter the CGRect to test if \c possibleInner is inside of - @param possibleInner the CGRect to test if it fits inside \c possibleOuter. - @return BOOL \c YES if \c possibleInner fits inside \c possibleOuter. -*/ -function CPRectContainsRect(possibleOuter, possibleInner) -{ - return CGRectContainsRect(possibleOuter, possibleInner); -} - -/*! - Tests whether the two CGPoints are equal to each other by comparing their - \c x and \c y members. - @group @CGPoint - @param lhsPoint the first CGPoint to check - @param rhsPoint the second CGPoint to check - @return BOOL \c YES if the two points have the same x's, and the same y's. -*/ -function CPPointEqualToPoint(lhsPoint, rhsPoint) -{ - return lhsPoint.x == rhsPoint.x && lhsPoint.y == rhsPoint.y; -} - -/*! - Test whether the two CGRects have the same origin and size - @group CGRect - @param lhsRect the first CGRect to compare - @param rhsRect the second CGRect to compare - @return BOOL \c YES if the two rectangles have the same origin and size. \c NO, otherwise. -*/ -function CPRectEqualToRect(lhsRect, rhsRect) -{ - return CPPointEqualToPoint(lhsRect.origin, rhsRect.origin) && - CPSizeEqualToSize(lhsRect.size, rhsRect.size); -} - /*! @group CGRect @param aRect a CGRect @@ -357,18 +297,6 @@ function CPRectIntersectsRect(lhsRect, rhsRect) return !CPRectIsEmpty(CPRectIntersection(lhsRect, rhsRect)); } -/*! - Returns \c YES if the CGRect has no area. - The test is performed by checking if the width and height are both zero. - @group CGRect - @param aRect the CGRect to test - @return BOOL \c YES if the CGRect has no area, and \c NO, otherwise. -*/ -function CPRectIsEmpty(aRect) -{ - return aRect.size.width <= 0.0 || aRect.size.height <= 0.0; -} - /*! Returns \c YES if the CGRect has no area. The test is performed by checking if the width and height are both zero. diff --git a/Tests/Foundation/CPGeometryTest.j b/Tests/Foundation/CPGeometryTest.j index 50f91828e..7eb30c800 100644 --- a/Tests/Foundation/CPGeometryTest.j +++ b/Tests/Foundation/CPGeometryTest.j @@ -1,4 +1,4 @@ -@import +@import @implementation CPGeometryTest : OJTestCase { @@ -14,4 +14,54 @@ [self assertFalse:CPRectContainsRect(CGRectMake(0, 0, 500, 500), CGRectMake(500, 500, 1, 1))]; } +-(void)testCPPointEqualToPoint +{ + [self assertTrue:CPPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 10))]; + [self assertFalse:CPPointEqualToPoint(CGPointMake(0, 10), CGPointMake(10, 10))]; + [self assertFalse:CPPointEqualToPoint(CGPointMake(10, 10), CGPointMake(0, 10))]; + [self assertFalse:CPPointEqualToPoint(CGPointMake(10, 0), CGPointMake(10, 10))]; + [self assertFalse:CPPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 0))]; +} + +-(void)testCPRectEqualToRect +{ + [self assertTrue:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 0, 100, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(50, 0, 100, 100), CGRectMake(0, 0, 100, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(50, 0, 100, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(0, 50, 100, 100), CGRectMake(0, 0, 100, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 50, 100, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 50, 100), CGRectMake(0, 0, 100, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 0, 50, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 50), CGRectMake(0, 0, 100, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 0, 100, 50))]; +} + +-(void)textCPRectIsEmpty +{ + [self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, 0, 10))]; + [self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, 10, 0))]; + [self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, -10, 10))]; + [self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, 10, -10))]; + [self assertFalse:CPRectIsEmpty(CGRectMake(0, 0, 10, 10))]; +} + +-(void)testCPRectIntersection +{ + var lhsRect = CGRectMake(0, 0, 20, 20), + rhsRect = CGRectMake(10, 10, 20, 20), + intersectionResultRect = CGRectMake(10, 10, 10, 10); + + [self assertTrue:CPRectEqualToRect(CPRectIntersection(lhsRect, rhsRect), intersectionResultRect)]; + intersectionResultRect.origin.x = 30; + intersectionResultRect.origin.y = 30; + [self assertFalse:CPRectEqualToRect(CPRectIntersection(lhsRect, rhsRect), intersectionResultRect)]; +} + +-(void)testCPPointCreateCopy +{ + var point = CGPointMake(1, 1); + [self assertTrue:CPPointEqualToPoint(CPPointCreateCopy(point),point)]; + [self assertFalse:CPPointEqualToPoint(CPPointCreateCopy(point), CGPointMake(0,1))]; +} + @end From d6b9daf7ca637be965347fe2585b4f5a2a02c7b5 Mon Sep 17 00:00:00 2001 From: Vladimir Shevchenko Date: Thu, 12 Jul 2012 02:47:12 +0700 Subject: [PATCH 069/109] Fixed documentation & spaces --- Foundation/CPGeometry.j | 70 +++++++++++++++++++++++++++++++ Tests/Foundation/CPGeometryTest.j | 68 +++++++++++++++--------------- 2 files changed, 104 insertions(+), 34 deletions(-) diff --git a/Foundation/CPGeometry.j b/Foundation/CPGeometry.j index e98ba26d8..234190a59 100644 --- a/Foundation/CPGeometry.j +++ b/Foundation/CPGeometry.j @@ -29,18 +29,88 @@ CPMaxXEdge = 2; CPMaxYEdge = 3; // FIXME: the rest! +/*! + Makes a CGPoint object out of two numbers provided as arguments + @group CGPoint + @param x the x-coordinate of the CGPoint + @param y the y-coordinate of the CGPoint + @return CGPoint a CGPoint with an X and Y coordinate equal to the function arguments +*/ CPMakePoint = CGPointMake; + +/*! + Creates and returns a new CGSize object from the provided dimensions. + @group CGSize + @param width the width for the new CGSize + @param height the height for the new CGSize + @return CGSize the new CGSize +*/ CPMakeSize = CGSizeMake; + +/*! + Returns a CGRect made of the specified arguments + @group CGRect + @param x the x-coordinate of the rectangle's origin + @param y the y-coordinate of the rectangle's origin + @param width the width of the new rectangle + @param height the height of the new rectangle + @return CGRect the new rectangle +*/ CPMakeRect = CGRectMake; +/*! + Creates a copy of a specified point and returns the copy + @group CGPoint + @param the point to be copied + @return CGPoint the copy of the provided CGPoint +*/ CPPointCreateCopy = CGPointMakeCopy; +/*! + Tests whether the two CGPoints are equal to each other by comparing their + \c x and \c y members. + @group @CGPoint + @param lhsPoint the first CGPoint to check + @param rhsPoint the second CGPoint to check + @return BOOL \c YES if the two points have the same x's, and the same y's. +*/ CPPointEqualToPoint = CGPointEqualToPoint; + +/*! + Test whether the two CGRects have the same origin and size + @group CGRect + @param lhsRect the first CGRect to compare + @param rhsRect the second CGRect to compare + @return BOOL \c YES if the two rectangles have the same origin and size. \c NO, otherwise. +*/ CPRectEqualToRect = CGRectEqualToRect; +/*! + Returns \c YES if the CGRect has no area. + The test is performed by checking if the width and height are both zero. + @group CGRect + @param aRect the CGRect to test + @return BOOL \c YES if the CGRect has no area, and \c NO, otherwise. +*/ CPRectIsEmpty = CGRectIsEmpty; +/*! + Returns a \c BOOL indicating whether CGRect \c possibleOuter + contains CGRect \c possibleInner. + @group CGRect + @param possibleOuter the CGRect to test if \c possibleInner is inside of + @param possibleInner the CGRect to test if it fits inside \c possibleOuter. + @return BOOL \c YES if \c possibleInner fits inside \c possibleOuter. +*/ CPRectContainsRect = CGRectContainsRect; + +/*! + Returns the intersection of the two provided rectangles as a new rectangle + @group CGRect + @param lhsRect the first rectangle used for calculation + @param rhsRect the second rectangle used for calculation + @return CGRect the intersection of the two rectangles +*/ CPRectIntersection = CGRectIntersection; /*! diff --git a/Tests/Foundation/CPGeometryTest.j b/Tests/Foundation/CPGeometryTest.j index 7eb30c800..92ab7b1c1 100644 --- a/Tests/Foundation/CPGeometryTest.j +++ b/Tests/Foundation/CPGeometryTest.j @@ -14,54 +14,54 @@ [self assertFalse:CPRectContainsRect(CGRectMake(0, 0, 500, 500), CGRectMake(500, 500, 1, 1))]; } --(void)testCPPointEqualToPoint +- (void)testCPPointEqualToPoint { - [self assertTrue:CPPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 10))]; - [self assertFalse:CPPointEqualToPoint(CGPointMake(0, 10), CGPointMake(10, 10))]; - [self assertFalse:CPPointEqualToPoint(CGPointMake(10, 10), CGPointMake(0, 10))]; - [self assertFalse:CPPointEqualToPoint(CGPointMake(10, 0), CGPointMake(10, 10))]; - [self assertFalse:CPPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 0))]; + [self assertTrue:CPPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 10))]; + [self assertFalse:CPPointEqualToPoint(CGPointMake(0, 10), CGPointMake(10, 10))]; + [self assertFalse:CPPointEqualToPoint(CGPointMake(10, 10), CGPointMake(0, 10))]; + [self assertFalse:CPPointEqualToPoint(CGPointMake(10, 0), CGPointMake(10, 10))]; + [self assertFalse:CPPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 0))]; } --(void)testCPRectEqualToRect +- (void)testCPRectEqualToRect { - [self assertTrue:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 0, 100, 100))]; - [self assertFalse:CPRectEqualToRect(CGRectMake(50, 0, 100, 100), CGRectMake(0, 0, 100, 100))]; - [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(50, 0, 100, 100))]; - [self assertFalse:CPRectEqualToRect(CGRectMake(0, 50, 100, 100), CGRectMake(0, 0, 100, 100))]; - [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 50, 100, 100))]; - [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 50, 100), CGRectMake(0, 0, 100, 100))]; - [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 0, 50, 100))]; - [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 50), CGRectMake(0, 0, 100, 100))]; - [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 0, 100, 50))]; + [self assertTrue:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 0, 100, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(50, 0, 100, 100), CGRectMake(0, 0, 100, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(50, 0, 100, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(0, 50, 100, 100), CGRectMake(0, 0, 100, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 50, 100, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 50, 100), CGRectMake(0, 0, 100, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 0, 50, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 50), CGRectMake(0, 0, 100, 100))]; + [self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 0, 100, 50))]; } --(void)textCPRectIsEmpty +- (void)textCPRectIsEmpty { - [self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, 0, 10))]; - [self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, 10, 0))]; - [self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, -10, 10))]; - [self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, 10, -10))]; - [self assertFalse:CPRectIsEmpty(CGRectMake(0, 0, 10, 10))]; + [self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, 0, 10))]; + [self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, 10, 0))]; + [self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, -10, 10))]; + [self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, 10, -10))]; + [self assertFalse:CPRectIsEmpty(CGRectMake(0, 0, 10, 10))]; } --(void)testCPRectIntersection +- (void)testCPRectIntersection { - var lhsRect = CGRectMake(0, 0, 20, 20), - rhsRect = CGRectMake(10, 10, 20, 20), - intersectionResultRect = CGRectMake(10, 10, 10, 10); + var lhsRect = CGRectMake(0, 0, 20, 20), + rhsRect = CGRectMake(10, 10, 20, 20), + intersectionResultRect = CGRectMake(10, 10, 10, 10); - [self assertTrue:CPRectEqualToRect(CPRectIntersection(lhsRect, rhsRect), intersectionResultRect)]; - intersectionResultRect.origin.x = 30; - intersectionResultRect.origin.y = 30; - [self assertFalse:CPRectEqualToRect(CPRectIntersection(lhsRect, rhsRect), intersectionResultRect)]; + [self assertTrue:CPRectEqualToRect(CPRectIntersection(lhsRect, rhsRect), intersectionResultRect)]; + intersectionResultRect.origin.x = 30; + intersectionResultRect.origin.y = 30; + [self assertFalse:CPRectEqualToRect(CPRectIntersection(lhsRect, rhsRect), intersectionResultRect)]; } --(void)testCPPointCreateCopy +- (void)testCPPointCreateCopy { - var point = CGPointMake(1, 1); - [self assertTrue:CPPointEqualToPoint(CPPointCreateCopy(point),point)]; - [self assertFalse:CPPointEqualToPoint(CPPointCreateCopy(point), CGPointMake(0,1))]; + var point = CGPointMake(1, 1); + [self assertTrue:CPPointEqualToPoint(CPPointCreateCopy(point),point)]; + [self assertFalse:CPPointEqualToPoint(CPPointCreateCopy(point), CGPointMake(0,1))]; } @end From 86b83338c0698e9b08fe4cd792a109a4da78d129 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Thu, 12 Jul 2012 10:16:49 -0700 Subject: [PATCH 070/109] CPRuleEditor fixes - Fixed case where no format strings are specified in xib (which ends up being an empty string). - Fixed case where malformed strings file would not match regex. - General cleanup. --- AppKit/CPRuleEditor/CPRuleEditor.j | 5 +++- AppKit/CPRuleEditor/_CPRuleEditorLocalizer.j | 22 +++++++++------- .../Resources/MainMenu.cib | 2 +- Tools/nib2cib/NSRuleEditor.j | 26 +++++++++---------- 4 files changed, 31 insertions(+), 24 deletions(-) diff --git a/AppKit/CPRuleEditor/CPRuleEditor.j b/AppKit/CPRuleEditor/CPRuleEditor.j index b2821254c..e537a9199 100644 --- a/AppKit/CPRuleEditor/CPRuleEditor.j +++ b/AppKit/CPRuleEditor/CPRuleEditor.j @@ -402,13 +402,16 @@ var CPRuleEditorItemPBoardType = @"CPRuleEditorItemPBoardType", if (_stringsFilename !== stringsFilename) { - _stringsFilename = stringsFilename; + // Convert an empty string to nil + _stringsFilename = stringsFilename || nil; if (stringsFilename !== nil) { if (![stringsFilename hasSuffix:@".strings"]) stringsFilename = stringsFilename + @".strings"; + var path = [[CPBundle mainBundle] pathForResource:stringsFilename]; + if (path !== nil) [_standardLocalizer loadContentOfURL:[CPURL URLWithString:path]]; } diff --git a/AppKit/CPRuleEditor/_CPRuleEditorLocalizer.j b/AppKit/CPRuleEditor/_CPRuleEditorLocalizer.j index 638532901..e11febcc5 100644 --- a/AppKit/CPRuleEditor/_CPRuleEditorLocalizer.j +++ b/AppKit/CPRuleEditor/_CPRuleEditorLocalizer.j @@ -7,7 +7,7 @@ @import @import -var regex = new RegExp("\"(.+)\"\\s*=\\s*\"(.+)\"\\s*;\\s*(//.+)?"); +var LocalizerStringsRegex = new RegExp("\"(.+)\"\\s*=\\s*\"(.+)\"\\s*;\\s*(//.+)?"); @implementation _CPRuleEditorLocalizer : CPObject { @@ -24,9 +24,10 @@ var regex = new RegExp("\"(.+)\"\\s*=\\s*\"(.+)\"\\s*;\\s*(//.+)?"); - (void)reloadIfNeeded { - if (connection != nil) // Connection waiting + if (connection !== nil) // Connection waiting { connection = nil; + var data = [CPURLConnection sendSynchronousRequest:request returningResponse:NULL]; [self loadContent:[data rawString]]; } @@ -34,7 +35,7 @@ var regex = new RegExp("\"(.+)\"\\s*=\\s*\"(.+)\"\\s*;\\s*(//.+)?"); - (void)connection:(CPURLConnection)aConnection didReceiveData:(CPString)rawString { - if (connection != nil && rawString != nil) + if (connection !== nil && rawString !== nil) [self loadContent:rawString]; connection = nil; @@ -49,10 +50,12 @@ var regex = new RegExp("\"(.+)\"\\s*=\\s*\"(.+)\"\\s*;\\s*(//.+)?"); for (var i = 0 ; i < count ; i++) { var line = [lines objectAtIndex:i]; + if (line.length > 1) { - var match = regex.exec(line); - if (match.length >= 3) + var match = LocalizerStringsRegex.exec(line); + + if (match && match.length >= 3) [dict setObject:match[2] forKey:match[1]]; } } @@ -64,12 +67,13 @@ var regex = new RegExp("\"(.+)\"\\s*=\\s*\"(.+)\"\\s*;\\s*(//.+)?"); { [self reloadIfNeeded]; - if (_dictionary != nil && aString != nil) + if (_dictionary !== nil && aString !== nil) { var localized = [_dictionary objectForKey:aString]; - if (localized != nil) - return localized; + + if (localized !== nil) + return localized; } return aString; -} \ No newline at end of file +} diff --git a/Tests/Manual/CPPredicateEditorCibTest/Resources/MainMenu.cib b/Tests/Manual/CPPredicateEditorCibTest/Resources/MainMenu.cib index 8208e9a3a..2a1b70112 100644 --- a/Tests/Manual/CPPredicateEditorCibTest/Resources/MainMenu.cib +++ b/Tests/Manual/CPPredicateEditorCibTest/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;17E;D;K;6;CP$UIDd;2;18E;D;K;6;CP$UIDd;2;19E;D;K;6;CP$UIDd;2;20E;D;K;6;CP$UIDd;2;21E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;23E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;25E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;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;D;K;6;CP$UIDd;2;57E;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;104E;D;K;6;CP$UIDd;3;105E;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;3;106E;D;K;6;CP$UIDd;3;108E;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;128E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;131E;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;3;138E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;150E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;156E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;176E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;180E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;3;199E;D;K;6;CP$UIDd;3;200E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;203E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;205E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;207E;D;K;6;CP$UIDd;3;208E;D;K;6;CP$UIDd;3;209E;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;211E;D;K;6;CP$UIDd;3;212E;D;K;6;CP$UIDd;3;213E;D;K;6;CP$UIDd;3;214E;D;K;6;CP$UIDd;3;215E;D;K;6;CP$UIDd;3;216E;D;K;6;CP$UIDd;3;217E;D;K;6;CP$UIDd;3;218E;D;K;6;CP$UIDd;3;219E;D;K;6;CP$UIDd;3;220E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;3;222E;D;K;6;CP$UIDd;3;223E;D;K;6;CP$UIDd;3;224E;D;K;6;CP$UIDd;3;225E;D;K;6;CP$UIDd;3;226E;D;K;6;CP$UIDd;3;227E;D;K;6;CP$UIDd;3;228E;D;K;6;CP$UIDd;3;229E;D;K;6;CP$UIDd;3;231E;D;K;6;CP$UIDd;3;233E;D;K;6;CP$UIDd;3;235E;D;K;6;CP$UIDd;3;237E;D;K;6;CP$UIDd;3;238E;D;K;6;CP$UIDd;3;240E;D;K;6;CP$UIDd;3;242E;D;K;6;CP$UIDd;3;243E;D;K;6;CP$UIDd;3;244E;D;K;6;CP$UIDd;3;245E;D;K;6;CP$UIDd;3;246E;D;K;6;CP$UIDd;3;247E;D;K;6;CP$UIDd;3;248E;D;K;6;CP$UIDd;3;249E;D;K;6;CP$UIDd;3;250E;D;K;6;CP$UIDd;3;251E;D;K;6;CP$UIDd;3;252E;D;K;6;CP$UIDd;3;253E;D;K;6;CP$UIDd;3;254E;D;K;6;CP$UIDd;3;255E;D;K;6;CP$UIDd;3;256E;D;K;6;CP$UIDd;3;257E;D;K;6;CP$UIDd;3;258E;D;K;6;CP$UIDd;3;259E;D;K;6;CP$UIDd;3;260E;D;K;6;CP$UIDd;3;262E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;265E;D;K;6;CP$UIDd;3;267E;D;K;6;CP$UIDd;3;269E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;270E;D;K;6;CP$UIDd;3;271E;D;K;6;CP$UIDd;3;272E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;273E;D;K;6;CP$UIDd;3;274E;D;K;6;CP$UIDd;3;275E;D;K;6;CP$UIDd;3;276E;D;K;6;CP$UIDd;3;277E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;279E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;280E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;282E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;283E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;284E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;285E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;286E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;287E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;288E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;291E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;292E;D;K;6;CP$UIDd;3;293E;D;K;6;CP$UIDd;3;294E;D;K;6;CP$UIDd;3;295E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;297E;D;K;6;CP$UIDd;3;299E;D;K;6;CP$UIDd;3;300E;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;3;108E;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;3;111E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;203E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;208E;D;K;6;CP$UIDd;3;209E;D;K;6;CP$UIDd;3;209E;D;K;6;CP$UIDd;3;209E;D;K;6;CP$UIDd;3;209E;D;K;6;CP$UIDd;3;209E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;220E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;231E;D;K;6;CP$UIDd;3;233E;D;K;6;CP$UIDd;3;235E;D;K;6;CP$UIDd;3;235E;D;K;6;CP$UIDd;3;235E;D;K;6;CP$UIDd;3;240E;D;K;6;CP$UIDd;3;242E;D;K;6;CP$UIDd;3;243E;D;K;6;CP$UIDd;3;243E;D;K;6;CP$UIDd;3;242E;D;K;6;CP$UIDd;3;246E;D;K;6;CP$UIDd;3;240E;D;K;6;CP$UIDd;3;248E;D;K;6;CP$UIDd;3;249E;D;K;6;CP$UIDd;3;249E;D;K;6;CP$UIDd;3;248E;D;K;6;CP$UIDd;3;252E;D;K;6;CP$UIDd;3;252E;D;K;6;CP$UIDd;3;240E;D;K;6;CP$UIDd;3;255E;D;K;6;CP$UIDd;3;256E;D;K;6;CP$UIDd;3;256E;D;K;6;CP$UIDd;3;255E;D;K;6;CP$UIDd;3;259E;D;K;6;CP$UIDd;3;233E;D;K;6;CP$UIDd;3;262E;D;K;6;CP$UIDd;3;233E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;265E;D;K;6;CP$UIDd;3;267E;D;K;6;CP$UIDd;3;269E;D;K;6;CP$UIDd;3;265E;D;K;6;CP$UIDd;3;265E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;272E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;273E;D;K;6;CP$UIDd;3;273E;D;K;6;CP$UIDd;3;273E;D;K;6;CP$UIDd;3;276E;D;K;6;CP$UIDd;3;277E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;279E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;280E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;282E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;283E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;284E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;285E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;286E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;287E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;288E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;291E;D;K;6;CP$UIDd;3;300E;D;K;6;CP$UIDd;3;300E;D;K;6;CP$UIDd;3;300E;D;K;6;CP$UIDd;3;233E;D;K;6;CP$UIDd;3;295E;D;K;6;CP$UIDd;3;233E;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;291E;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;301E;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;302E;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;3;106E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;297E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;295E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;297E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;267E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;305E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;297E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;240E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;306E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;297E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;291E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;307E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;297E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;276E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;308E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;297E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;264E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;309E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;297E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;231E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;310E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;240E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;267E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;311E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;267E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;276E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;311E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;276E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;303E;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;28E;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;312E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;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;313E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;118E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;314E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;171E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;315E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;177E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;316E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;168E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;317E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;176E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;318E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;170E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;319E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;169E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;320E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;172E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;132E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;322E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;179E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;323E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;175E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;324E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;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;325E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;121E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;106E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;326E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;129E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;327E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;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;328E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;159E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;329E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;160E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;330E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;141E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;331E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;136E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;332E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;139E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;333E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;154E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;334E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;135E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;335E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;140E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;336E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;155E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;337E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;137E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;338E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;150E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;339E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;147E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;340E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;143E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;153E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;342E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;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;343E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;183E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;344E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;184E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;345E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;156E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;346E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;163E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;347E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;164E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;348E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;165E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;349E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;222E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;350E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;223E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;351E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;224E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;352E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;225E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;353E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;227E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;354E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;228E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;355E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;229E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;356E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;192E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;357E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;216E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;358E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;218E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;359E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;219E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;360E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;210E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;361E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;211E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;362E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;212E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;363E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;213E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;364E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;214E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;365E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;205E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;206E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;367E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;207E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;368E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;199E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;369E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;200E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;370E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;201E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;371E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;202E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;372E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;262E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;240E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;373E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;272E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;374E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;285E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;375E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;283E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;375E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;282E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;375E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;284E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;375E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;287E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;375E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;288E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;375E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;286E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;375E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;291E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;376E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;280E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;377E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;289E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;375E;E;D;K;6;$classD;K;6;CP$UIDd;2;28E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;295E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;297E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;378E;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;3;103E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;240E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;299E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;379E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;380E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;381E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;383E;E;D;K;6;$classD;K;6;CP$UIDd;3;103E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;296E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;299E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;379E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;3;380E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;3;381E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;3;384E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;301E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;385E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;386E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;387E;E;D;K;10;$classnameS;10;CPMenuItemK;8;$classesA;S;10;CPMenuItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;388E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;111E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;388E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;391E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;392E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;393E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;111E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;396E;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;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;397E;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;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;398E;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;399E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;400E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;117E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;400E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;401E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;402E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;403E;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;117E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;404E;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;117E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;405E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;406E;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;117E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;407E;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;117E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;408E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;393E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;117E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;409E;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;117E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;410E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;393E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;117E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;393E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;117E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;411E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;127E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;117E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;411E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;412E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;413E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;393E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;117E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;414E;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;117E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;405E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;415E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;416E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;131E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;416E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;417E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;418E;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;131E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;419E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;420E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;134E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;420E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;421E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;422E;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;134E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;423E;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;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;424E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;425E;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;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;426E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;393E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;427E;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;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;428E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;429E;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;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;430E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;431E;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;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;432E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;393E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;433E;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;134E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;434E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;435E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;436E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;145E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;436E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;437E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;438E;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;439E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;145E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;440E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;435E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;441E;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;145E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;442E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;443E;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;444E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;145E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;445E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;446E;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;447E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;145E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;448E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;449E;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;450E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;145E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;451E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;452E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;152E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;452E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;453E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;454E;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;152E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;455E;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;152E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;456E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;457E;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;152E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;458E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;459E;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;152E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;460E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;158E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;460E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;461E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;462E;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;158E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;463E;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;158E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;464E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;162E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;134E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;464E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;465E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;466E;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;450E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;162E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;451E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;467E;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;447E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;162E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;448E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;468E;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;439E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;162E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;440E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;435E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;469E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;167E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;469E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;470E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;471E;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;167E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;472E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;473E;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;167E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;474E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;435E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;475E;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;167E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;476E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;477E;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;167E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;478E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;479E;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;167E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;480E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;481E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;174E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;167E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;481E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;482E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;483E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;484E;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;174E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;485E;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;167E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;486E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;435E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;487E;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;167E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;488E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;393E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;167E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;489E;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;167E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;393E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;167E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;490E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;182E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;490E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;491E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;492E;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;182E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;493E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;415E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;494E;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;182E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;495E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;186E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;108E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;495E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;496E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;497E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;188E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;186E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;497E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;498E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;499E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;500E;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;188E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;493E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;501E;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;447E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;188E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;502E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;503E;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;450E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;188E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;504E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;505E;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;188E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;506E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;393E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;188E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;507E;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;439E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;188E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;508E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;509E;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;510E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;188E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;511E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;393E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;188E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;512E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;198E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;188E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;512E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;513E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;514E;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;198E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;515E;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;198E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;516E;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;198E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;517E;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;198E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;518E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;204E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;188E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;518E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;514E;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;204E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;515E;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;204E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;520E;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;204E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;521E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;209E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;188E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;521E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;522E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;514E;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;209E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;523E;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;209E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;524E;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;209E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;525E;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;209E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;526E;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;209E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;393E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;188E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;527E;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;188E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;528E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;393E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;188E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;529E;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;188E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;432E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;415E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;530E;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;188E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;430E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;415E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;531E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;389E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;221E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;186E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;531E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;532E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;533E;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;221E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;534E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;535E;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;221E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;536E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;537E;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;221E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;538E;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;221E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;539E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;393E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;221E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;540E;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;221E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;541E;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;221E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;432E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;542E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;543E;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;221E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;430E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;542E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;230E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;544E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;545E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;546E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;547E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;388E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;233E;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;232E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;549E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;549E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;550E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;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;234E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;233E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;552E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;553E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;554E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;233E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;556E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;3;558E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;1;0E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;3;237E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;3;238E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;3;559E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;3;559E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;3;559E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;3;559E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;3;393E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;3;395E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;3;393E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;3;560E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;3;447E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;K;6;CP$UIDd;3;548E;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;236E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;235E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;561E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;562E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;235E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;563E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;564E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;565E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;566E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;548E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;3;235E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;567E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;548E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;568E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;236E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;235E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;569E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;570E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;235E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;563E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;564E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;565E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;571E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;548E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;3;235E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;572E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;548E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;450E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;17;CPPredicateEditorK;8;$classesA;S;17;CPPredicateEditorS;12;CPRuleEditorS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;239E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;558E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;573E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;573E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;574E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;558E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;575E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;576E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;20;CPRuleEditorEditableD;K;6;CP$UIDd;3;393E;K;35;CPRuleEditorAllowsEmptyCompoundRowsD;K;6;CP$UIDd;3;395E;K;25;CPRuleEditorDisallowEmptyD;K;6;CP$UIDd;3;393E;K;30;CPRuleEditorAlignmentGridWidthD;K;6;CP$UIDd;3;577E;K;23;CPRuleEditorSliceHeightD;K;6;CP$UIDd;3;578E;K;23;CPRuleEditorNestingModeD;K;6;CP$UIDd;3;439E;K;27;CPRuleEditorStringsFilenameD;K;6;CP$UIDd;3;394E;K;26;CPRuleEditorRowTypeKeyPathD;K;6;CP$UIDd;3;579E;K;24;CPRuleEditorItemsKeyPathD;K;6;CP$UIDd;3;580E;K;25;CPRuleEditorValuesKeyPathD;K;6;CP$UIDd;3;581E;K;29;CPRuleEditorBoundArrayKeyPathD;K;6;CP$UIDd;3;582E;K;31;CPRuleEditorSubrowsArrayKeyPathD;K;6;CP$UIDd;3;583E;K;24;CPRuleEditorSlicesHolderD;K;6;CP$UIDd;1;0E;K;18;CPRuleEditorSlicesD;K;6;CP$UIDd;3;584E;K;27;CPRuleEditorBoundArrayOwnerD;K;6;CP$UIDd;3;586E;K;20;CPPredicateTemplatesD;K;6;CP$UIDd;3;587E;E;D;K;10;$classnameS;28;CPPredicateEditorRowTemplateK;8;$classesA;S;28;CPPredicateEditorRowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;241E;K;23;CPPredicateTemplateTypeD;K;6;CP$UIDd;3;447E;K;26;CPPredicateTemplateOptionsD;K;6;CP$UIDd;3;548E;K;27;CPPredicateTemplateModifierD;K;6;CP$UIDd;3;548E;K;36;CPPredicateTemplateLeftAttributeTypeD;K;6;CP$UIDd;3;548E;K;37;CPPredicateTemplateRightAttributeTypeD;K;6;CP$UIDd;3;548E;K;33;CPPredicateTemplateLeftIsWildcardD;K;6;CP$UIDd;3;395E;K;34;CPPredicateTemplateRightIsWildcardD;K;6;CP$UIDd;3;395E;K;24;CPPredicateTemplateViewsD;K;6;CP$UIDd;3;588E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;394E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;589E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;590E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;591E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;450E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;243E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;K;30;CPMenuItemRepresentedObjectKeyD;K;6;CP$UIDd;3;447E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;592E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;591E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;243E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;K;30;CPMenuItemRepresentedObjectKeyD;K;6;CP$UIDd;3;450E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;394E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;593E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;594E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;591E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;450E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;246E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;241E;K;23;CPPredicateTemplateTypeD;K;6;CP$UIDd;3;450E;K;26;CPPredicateTemplateOptionsD;K;6;CP$UIDd;3;548E;K;27;CPPredicateTemplateModifierD;K;6;CP$UIDd;3;548E;K;36;CPPredicateTemplateLeftAttributeTypeD;K;6;CP$UIDd;3;548E;K;37;CPPredicateTemplateRightAttributeTypeD;K;6;CP$UIDd;3;595E;K;33;CPPredicateTemplateLeftIsWildcardD;K;6;CP$UIDd;3;395E;K;34;CPPredicateTemplateRightIsWildcardD;K;6;CP$UIDd;3;393E;K;24;CPPredicateTemplateViewsD;K;6;CP$UIDd;3;596E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;394E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;597E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;598E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;591E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;450E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;249E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;K;30;CPMenuItemRepresentedObjectKeyD;K;6;CP$UIDd;3;600E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;601E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;591E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;249E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;K;30;CPMenuItemRepresentedObjectKeyD;K;6;CP$UIDd;3;602E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;394E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;603E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;604E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;591E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;450E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;252E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;K;30;CPMenuItemRepresentedObjectKeyD;K;6;CP$UIDd;3;510E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;605E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;591E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;252E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;K;30;CPMenuItemRepresentedObjectKeyD;K;6;CP$UIDd;3;606E;E;D;K;6;$classD;K;6;CP$UIDd;3;241E;K;23;CPPredicateTemplateTypeD;K;6;CP$UIDd;3;450E;K;26;CPPredicateTemplateOptionsD;K;6;CP$UIDd;3;548E;K;27;CPPredicateTemplateModifierD;K;6;CP$UIDd;3;548E;K;36;CPPredicateTemplateLeftAttributeTypeD;K;6;CP$UIDd;3;548E;K;37;CPPredicateTemplateRightAttributeTypeD;K;6;CP$UIDd;3;607E;K;33;CPPredicateTemplateLeftIsWildcardD;K;6;CP$UIDd;3;395E;K;34;CPPredicateTemplateRightIsWildcardD;K;6;CP$UIDd;3;393E;K;24;CPPredicateTemplateViewsD;K;6;CP$UIDd;3;608E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;394E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;609E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;610E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;591E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;450E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;256E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;K;30;CPMenuItemRepresentedObjectKeyD;K;6;CP$UIDd;3;611E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;601E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;591E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;256E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;K;30;CPMenuItemRepresentedObjectKeyD;K;6;CP$UIDd;3;612E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;394E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;613E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;614E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;591E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;450E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;259E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;K;30;CPMenuItemRepresentedObjectKeyD;K;6;CP$UIDd;3;447E;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;261E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;233E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;615E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;616E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;233E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;617E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;618E;K;16;$aimage-positionD;K;6;CP$UIDd;3;548E;K;6;$afontD;K;6;CP$UIDd;3;620E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;548E;K;11;$aalignmentD;K;6;CP$UIDd;3;447E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;450E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;508E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;395E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;548E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;548E;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;3;263E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;233E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;621E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;622E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;623E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;233E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;624E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;548E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;510E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;450E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;626E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;627E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;548E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;450E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;628E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;548E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;629E;E;D;K;6;$classD;K;6;CP$UIDd;3;234E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;630E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;631E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;632E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;633E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;630E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;556E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;3;634E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;1;0E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;3;271E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;3;270E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;3;559E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;3;559E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;3;559E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;3;559E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;3;393E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;3;393E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;3;393E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;3;635E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;3;447E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;K;6;CP$UIDd;3;548E;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;266E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;634E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;636E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;636E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;634E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;637E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;638E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;12;$agrid-colorD;K;6;CP$UIDd;3;639E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;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;640E;K;30;CPTableViewIntercellSpacingKeyD;K;6;CP$UIDd;3;641E;K;37;CPTableViewSelectionHighlightStyleKeyD;K;6;CP$UIDd;3;548E;K;37;CPTableViewColumnAutoresizingStyleKeyD;K;6;CP$UIDd;3;510E;K;31;CPTableViewMultipleSelectionKeyD;K;6;CP$UIDd;3;395E;K;28;CPTableViewEmptySelectionKeyD;K;6;CP$UIDd;3;393E;K;30;CPTableViewColumnReorderingKeyD;K;6;CP$UIDd;3;393E;K;28;CPTableViewColumnResizingKeyD;K;6;CP$UIDd;3;393E;K;29;CPTableViewColumnSelectionKeyD;K;6;CP$UIDd;3;393E;K;26;CPTableViewTableColumnsKeyD;K;6;CP$UIDd;3;642E;K;23;CPTableViewGridColorKeyD;K;6;CP$UIDd;3;639E;K;27;CPTableViewGridStyleMaskKeyD;K;6;CP$UIDd;3;548E;K;39;CPTableViewUsesAlternatingBackgroundKeyD;K;6;CP$UIDd;3;393E;K;34;CPTableViewAlternatingRowColorsKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewHeaderViewKeyD;K;6;CP$UIDd;1;0E;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;268E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;1;0E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;643E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;644E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;645E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;647E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;648E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;439E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;395E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;393E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;236E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;265E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;649E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;650E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;265E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;563E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;564E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;565E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;571E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;548E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;3;265E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;572E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;548E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;651E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;236E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;265E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;652E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;653E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;265E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;563E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;564E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;565E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;566E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;548E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;3;265E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;567E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;548E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;654E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;261E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;630E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;655E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;656E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;630E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;617E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;618E;K;16;$aimage-positionD;K;6;CP$UIDd;3;548E;K;6;$afontD;K;6;CP$UIDd;3;620E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;548E;K;11;$aalignmentD;K;6;CP$UIDd;3;447E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;450E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;508E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;395E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;548E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;548E;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;234E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;630E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;657E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;632E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;658E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;630E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;556E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;3;659E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;1;0E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;3;274E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;3;275E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;3;559E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;3;559E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;3;559E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;3;559E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;3;393E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;3;393E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;3;393E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;3;660E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;3;447E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;K;6;CP$UIDd;3;548E;E;D;K;6;$classD;K;6;CP$UIDd;3;236E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;273E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;652E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;653E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;273E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;563E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;564E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;565E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;566E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;548E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;3;273E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;567E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;548E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;654E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;236E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;273E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;649E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;650E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;273E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;563E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;564E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;565E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;571E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;548E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;3;273E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;572E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;3;548E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;651E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;266E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;659E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;636E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;636E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;659E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;637E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;638E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;12;$agrid-colorD;K;6;CP$UIDd;3;639E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;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;640E;K;30;CPTableViewIntercellSpacingKeyD;K;6;CP$UIDd;3;641E;K;37;CPTableViewSelectionHighlightStyleKeyD;K;6;CP$UIDd;3;548E;K;37;CPTableViewColumnAutoresizingStyleKeyD;K;6;CP$UIDd;3;510E;K;31;CPTableViewMultipleSelectionKeyD;K;6;CP$UIDd;3;395E;K;28;CPTableViewEmptySelectionKeyD;K;6;CP$UIDd;3;393E;K;30;CPTableViewColumnReorderingKeyD;K;6;CP$UIDd;3;393E;K;28;CPTableViewColumnResizingKeyD;K;6;CP$UIDd;3;393E;K;29;CPTableViewColumnSelectionKeyD;K;6;CP$UIDd;3;393E;K;26;CPTableViewTableColumnsKeyD;K;6;CP$UIDd;3;661E;K;23;CPTableViewGridColorKeyD;K;6;CP$UIDd;3;639E;K;27;CPTableViewGridStyleMaskKeyD;K;6;CP$UIDd;3;548E;K;39;CPTableViewUsesAlternatingBackgroundKeyD;K;6;CP$UIDd;3;393E;K;34;CPTableViewAlternatingRowColorsKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewHeaderViewKeyD;K;6;CP$UIDd;1;0E;K;26;CPTableViewAutosaveNameKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;268E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;1;0E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;643E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;3;644E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;645E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;662E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;663E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;439E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;3;395E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;3;393E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;278E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;630E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;664E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;665E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;630E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;666E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;6;$afontD;K;6;CP$UIDd;3;667E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;447E;K;11;$aalignmentD;K;6;CP$UIDd;3;510E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;393E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;668E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;669E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;395E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;395E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;395E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;447E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;510E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;3;261E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;630E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;670E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;656E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;630E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;617E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;618E;K;16;$aimage-positionD;K;6;CP$UIDd;3;548E;K;6;$afontD;K;6;CP$UIDd;3;620E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;548E;K;11;$aalignmentD;K;6;CP$UIDd;3;447E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;450E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;508E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;395E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;548E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;548E;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;3;281E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;630E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;671E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;672E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;673E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;630E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;674E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;16;$aimage-positionD;K;6;CP$UIDd;3;447E;K;6;$afontD;K;6;CP$UIDd;3;667E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;548E;K;11;$aalignmentD;K;6;CP$UIDd;3;548E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;548E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;675E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;395E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;447E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;548E;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;281E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;630E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;563E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;676E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;677E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;630E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;674E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;16;$aimage-positionD;K;6;CP$UIDd;3;447E;K;6;$afontD;K;6;CP$UIDd;3;667E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;548E;K;11;$aalignmentD;K;6;CP$UIDd;3;548E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;548E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;678E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;395E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;447E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;548E;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;281E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;630E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;679E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;680E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;681E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;630E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;674E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;16;$aimage-positionD;K;6;CP$UIDd;3;447E;K;6;$afontD;K;6;CP$UIDd;3;667E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;548E;K;11;$aalignmentD;K;6;CP$UIDd;3;548E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;548E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;682E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;395E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;447E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;548E;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;281E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;630E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;447E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;683E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;681E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;630E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;674E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;16;$aimage-positionD;K;6;CP$UIDd;3;447E;K;6;$afontD;K;6;CP$UIDd;3;667E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;548E;K;11;$aalignmentD;K;6;CP$UIDd;3;548E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;548E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;684E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;395E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;447E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;548E;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;281E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;630E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;685E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;686E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;687E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;630E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;674E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;16;$aimage-positionD;K;6;CP$UIDd;3;447E;K;6;$afontD;K;6;CP$UIDd;3;667E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;548E;K;11;$aalignmentD;K;6;CP$UIDd;3;548E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;548E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;688E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;395E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;447E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;548E;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;281E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;630E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;510E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;689E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;681E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;630E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;674E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;16;$aimage-positionD;K;6;CP$UIDd;3;447E;K;6;$afontD;K;6;CP$UIDd;3;667E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;548E;K;11;$aalignmentD;K;6;CP$UIDd;3;548E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;548E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;690E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;395E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;447E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;548E;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;281E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;630E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;606E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;691E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;677E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;630E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;674E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;16;$aimage-positionD;K;6;CP$UIDd;3;447E;K;6;$afontD;K;6;CP$UIDd;3;667E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;548E;K;11;$aalignmentD;K;6;CP$UIDd;3;548E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;548E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;692E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;395E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;447E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;548E;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;281E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;630E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;693E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;681E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;630E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;674E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;16;$aimage-positionD;K;6;CP$UIDd;3;447E;K;6;$afontD;K;6;CP$UIDd;3;667E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;548E;K;11;$aalignmentD;K;6;CP$UIDd;3;548E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;548E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;694E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;395E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;447E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;548E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;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;3;290E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;630E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;3;300E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;695E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;696E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;630E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;555E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;697E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;698E;K;6;$afontD;K;6;CP$UIDd;3;620E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;510E;K;11;$aalignmentD;K;6;CP$UIDd;3;548E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;548E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;395E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;447E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;548E;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;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;699E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;291E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;591E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;300E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;700E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;291E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;591E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;300E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;109E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;701E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;291E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;591E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;450E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;300E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;261E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;233E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;702E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;703E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;233E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;624E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;617E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;704E;K;16;$aimage-positionD;K;6;CP$UIDd;3;548E;K;6;$afontD;K;6;CP$UIDd;3;620E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;548E;K;11;$aalignmentD;K;6;CP$UIDd;3;447E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;450E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;510E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;705E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;395E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;548E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;548E;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;278E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;233E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;706E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;707E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;233E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;575E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;666E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;708E;K;6;$afontD;K;6;CP$UIDd;3;709E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;447E;K;11;$aalignmentD;K;6;CP$UIDd;3;510E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;394E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;669E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;393E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;393E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;393E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;637E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;447E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;510E;K;31;CPTextFieldPlaceholderStringKeyD;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;710E;E;D;K;10;$classnameS;18;CPObjectControllerK;8;$classesA;S;18;CPObjectControllerS;12;CPControllerS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;298E;K;28;CPObjectControllerContentKeyD;K;6;CP$UIDd;1;0E;K;36;CPObjectControllerObjectClassNameKeyD;K;6;CP$UIDd;3;711E;K;31;CPObjectControllerIsEditableKeyD;K;6;CP$UIDd;3;393E;K;49;CPObjectControllerAutomaticallyPreparesContentKeyD;K;6;CP$UIDd;3;393E;E;D;K;6;$classD;K;6;CP$UIDd;3;107E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;712E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;713E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;231E;E;E;S;8;delegateS;11;addTemplateS;9;leftTableS;15;predicateEditorS;20;rightExpressionsTypeS;10;rightTableS;11;templateBoxS;6;windowS;10;dataSourceS;15;arrangeInFront:S;19;performMiniaturize:S;29;orderFrontStandardAboutPanel:S;13;openDocument:S;13;performClose:S;13;saveDocument:S;14;runPageLayout:S;6;print:S;15;saveDocumentAs:S;12;newDocument:S;9;showHelp:S;22;revertDocumentToSaved:S;21;clearRecentDocuments:S;5;hide:S;10;terminate:S;22;hideOtherApplications:S;22;unhideAllApplications: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;10;alignLeft:S;12;alignCenter:S;15;alignJustified:S;11;alignRight:S;12;toggleRuler:S;10;copyRuler:S;11;pasteRuler:S;10;underline:S;21;orderFrontColorPanel:S;9;copyFont:S;10;pasteFont:S;9;unscript:S;12;superscript:S;10;subscript:S;14;raiseBaseline:S;14;lowerBaseline:S;21;useStandardLigatures:S;17;turnOffLigatures:S;16;useAllLigatures:S;19;useStandardKerning:S;15;turnOffKerning:S;15;tightenKerning:S;14;loosenKerning:S;7;addRow:S;15;addLeftKeyPath:S;16;updateOperators:S;25;selectRightAttributeType:S;17;addRightConstant:S;12;addTemplate:S;26;value: selection.predicateS;5;valueS;19;selection.predicateD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;382E;K;10;CP.objectsD;E;E;D;K;6;$classD;K;6;CP$UIDd;3;382E;K;10;CP.objectsD;K;22;CPValueTransformerNameD;K;6;CP$UIDd;3;714E;K;27;CPConditionallySetsEditableD;K;6;CP$UIDd;3;395E;K;38;CPAllowsEditingMultipleValuesSelectionD;K;6;CP$UIDd;3;395E;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;3;116E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;133E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;130E;E;E;S;6;WindowS;14;submenuAction:d;7;1048576S;14;_CPWindowsMenuD;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;114E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;113E;E;E;T;S;0;F;S;18;Bring All to FrontS;4;ZoomS;8;MinimizeS;1;mS;14;NewApplicationS;18;_CPApplicationMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;118E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;120E;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;121E;E;E;S;20;About NewApplicationS;19;Hide NewApplicationS;1;hS;8;Show AllS;19;Quit NewApplicationS;1;qS;12;Preferences…S;1;,S;8;ServicesS;15;_CPServicesMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;11;Hide Othersd;7;1572864S;4;HelpD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;132E;E;E;S;19;NewApplication HelpS;1;?S;4;EditD;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;143E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;135E;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;138E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;157E;E;E;S;6;DeleteS;10;Select AllS;1;aS;4;UndoS;1;zS;3;CutS;1;xS;5;PasteS;1;vS;4;CopyS;1;cS;4;RedoS;1;Zd;7;1179648S;4;FindD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;150E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;147E;E;E;S;13;Find Previousd;1;3S;1;GS;17;Jump to SelectionS;1;jS;22;Use Selection for Findd;1;7S;1;eS;9;Find Nextd;1;2S;1;gS;5;Find…d;1;1S;1;fS;20;Spelling and GrammarD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;156E;E;E;S;27;Check Spelling While TypingS;14;Check SpellingS;1;;S;14;Show Spelling…S;1;:S;27;Check Grammar With SpellingS;6;SpeechD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;159E;E;E;S;13;Stop SpeakingS;14;Start SpeakingS;13;SubstitutionsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;165E;E;E;S;16;Smart Copy/PasteS;12;Smart QuotesS;11;Smart LinksS;4;FileD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;180E;D;K;6;CP$UIDd;3;176E;D;K;6;CP$UIDd;3;170E;E;E;S;4;SaveS;1;sS;8;Save As…S;1;SS;6;Print…S;1;pS;5;Open…S;1;oS;3;NewS;1;nS;11;Open RecentS;22;_CPRecentDocumentsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;175E;E;E;S;10;Clear MenuS;13;Page Setup...S;1;PS;5;CloseS;1;wS;15;Revert to SavedS;4;ViewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;E;E;S;12;Show ToolbarS;1;tS;18;Customize Toolbar…S;6;FormatD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;220E;E;E;S;4;FontS;11;_CPFontMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;203E;D;K;6;CP$UIDd;3;208E;D;K;6;CP$UIDd;3;215E;D;K;6;CP$UIDd;3;216E;D;K;6;CP$UIDd;3;217E;D;K;6;CP$UIDd;3;218E;D;K;6;CP$UIDd;3;219E;E;E;S;10;Show FontsS;4;BoldS;1;bS;6;ItalicS;1;iS;9;UnderlineS;1;uS;6;BiggerS;1;+S;7;Smallerd;1;4S;1;-S;4;KernD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;199E;D;K;6;CP$UIDd;3;200E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;202E;E;E;S;11;Use DefaultS;8;Use NoneS;7;TightenS;6;LoosenS;8;LigatureD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;205E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;207E;E;E;S;7;Use AllS;8;BaselineD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;211E;D;K;6;CP$UIDd;3;212E;D;K;6;CP$UIDd;3;213E;D;K;6;CP$UIDd;3;214E;E;E;S;11;SuperscriptS;9;SubscriptS;5;RaiseS;5;LowerS;11;Show ColorsS;1;CS;10;Copy StyleS;11;Paste StyleS;4;TextD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;222E;D;K;6;CP$UIDd;3;223E;D;K;6;CP$UIDd;3;224E;D;K;6;CP$UIDd;3;225E;D;K;6;CP$UIDd;3;226E;D;K;6;CP$UIDd;3;227E;D;K;6;CP$UIDd;3;228E;D;K;6;CP$UIDd;3;229E;E;E;S;10;Align LeftS;1;{S;6;CenterS;1;|S;7;JustifyS;11;Align RightS;1;}S;10;Show RulerS;10;Copy Rulerd;7;1310720S;11;Paste RulerS;32;{10000000000000, 10000000000000}S;8;CPWindowS;23;{{335, 77}, {960, 534}}d;2;15d;1;0S;20;{{0, 0}, {960, 534}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;262E;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;235E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;295E;E;E;S;6;normalS;22;{{20, 74}, {611, 164}}S;20;{{0, 0}, {611, 164}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;558E;D;K;6;CP$UIDd;3;237E;D;K;6;CP$UIDd;3;238E;D;K;6;CP$UIDd;3;560E;E;E;d;2;36S;10;scrollviewD;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;557E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;235E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;715E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;573E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;716E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;235E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;563E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;717E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;3;240E;E;d;2;10D;K;6;$classD;K;6;CP$UIDd;3;232E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;235E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;718E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;718E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;235E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;E;S;21;{{336, 79}, {15, 84}}S;18;{{0, 0}, {15, 84}}d;1;8d;11;-2147483648S;8;scrollerS;17;disabled+verticalS;27;_verticalScrollerDidScroll:f;17;0.977011501789093S;24;{{-100, 249}, {360, 15}}S;19;{{0, 0}, {360, 15}}S;8;disabledS;29;_horizontalScrollerDidScroll:S;20;{{0, 0}, {609, 162}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;720E;E;E;d;2;38S;11;rule-editord;2;75d;2;26S;7;rowTypeS;8;criteriaS;13;displayValuesS;10;boundArrayS;7;subrowsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;D;K;10;$classnameS;33;_CPRuleEditorViewUnboundRowHolderK;8;$classesA;S;33;_CPRuleEditorViewUnboundRowHolderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;585E;K;12;CPBoundArrayD;K;6;CP$UIDd;3;721E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;242E;D;K;6;CP$UIDd;3;248E;D;K;6;CP$UIDd;3;255E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;722E;D;K;6;CP$UIDd;3;723E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;244E;D;K;6;CP$UIDd;3;245E;E;E;S;3;AnyS;17;_popUpItemAction:S;3;AllD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;247E;E;E;S;25;of the following are trued;3;700D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;724E;D;K;6;CP$UIDd;3;725E;D;K;6;CP$UIDd;3;726E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;250E;D;K;6;CP$UIDd;3;251E;E;E;S;6;stringD;K;10;$classnameS;20;_CPKeyPathExpressionK;8;$classesA;S;20;_CPKeyPathExpressionS;21;_CPFunctionExpressionS;12;CPExpressionS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;599E;K;14;CPSelectorNameD;K;6;CP$UIDd;3;727E;K;11;CPArgumentsD;K;6;CP$UIDd;3;728E;K;9;CPOperandD;K;6;CP$UIDd;3;730E;K;16;CPExpressionTypeD;K;6;CP$UIDd;3;439E;E;S;5;mixedD;K;6;$classD;K;6;CP$UIDd;3;599E;K;14;CPSelectorNameD;K;6;CP$UIDd;3;727E;K;11;CPArgumentsD;K;6;CP$UIDd;3;731E;K;9;CPOperandD;K;6;CP$UIDd;3;730E;K;16;CPExpressionTypeD;K;6;CP$UIDd;3;439E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;253E;D;K;6;CP$UIDd;3;254E;E;E;S;2;isS;7;matchesd;1;6d;3;300D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;732E;D;K;6;CP$UIDd;3;733E;D;K;6;CP$UIDd;3;734E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;257E;D;K;6;CP$UIDd;3;258E;E;E;S;6;numberD;K;6;$classD;K;6;CP$UIDd;3;599E;K;14;CPSelectorNameD;K;6;CP$UIDd;3;727E;K;11;CPArgumentsD;K;6;CP$UIDd;3;735E;K;9;CPOperandD;K;6;CP$UIDd;3;730E;K;16;CPExpressionTypeD;K;6;CP$UIDd;3;439E;E;D;K;6;$classD;K;6;CP$UIDd;3;599E;K;14;CPSelectorNameD;K;6;CP$UIDd;3;727E;K;11;CPArgumentsD;K;6;CP$UIDd;3;736E;K;9;CPOperandD;K;6;CP$UIDd;3;730E;K;16;CPExpressionTypeD;K;6;CP$UIDd;3;439E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;260E;E;E;S;15;is greater thanS;22;{{599, 241}, {30, 24}}S;18;{{0, 0}, {30, 24}}S;6;buttonS;17;selected+borderedD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;619E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;737E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;738E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;393E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;395E;E;S;23;{{701, 34}, {242, 440}}S;20;{{0, 0}, {242, 440}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;630E;E;E;d;2;33D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;625E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;739E;E;D;K;6;$classD;K;6;CP$UIDd;3;625E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;740E;E;S;3;BoxS;6;{0, 0}D;K;6;$classD;K;6;CP$UIDd;3;232E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;264E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;789E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;790E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;791E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;264E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;759E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;E;S;20;{{9, 30}, {218, 97}}S;19;{{0, 0}, {218, 97}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;634E;D;K;6;CP$UIDd;3;271E;D;K;6;CP$UIDd;3;270E;D;K;6;CP$UIDd;3;635E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;557E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;265E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;741E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;636E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;742E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;265E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;563E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;743E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;3;267E;E;D;K;6;$classD;K;6;CP$UIDd;3;232E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;265E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;718E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;718E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;265E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;E;S;19;{{0, 0}, {216, 95}}D;K;6;$classD;K;6;CP$UIDd;3;625E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;744E;E;S;9;tableviewD;K;6;$classD;K;6;CP$UIDd;3;625E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;745E;E;d;2;23S;6;{3, 2}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;269E;E;E;d;3;213d;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;646E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;718E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;718E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;746E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;747E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;548E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;394E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;748E;E;D;K;6;$classD;K;6;CP$UIDd;3;278E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;718E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;718E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;666E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;749E;K;6;$afontD;K;6;CP$UIDd;3;751E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;510E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;447E;K;11;$aalignmentD;K;6;CP$UIDd;3;548E;K;15;$acontent-insetD;K;6;CP$UIDd;3;753E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;394E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;669E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;510E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;548E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;394E;E;S;21;{{1, -37}, {223, 15}}S;19;{{0, 0}, {223, 15}}f;18;0.9953917050691244S;23;{{224, -22}, {15, 102}}S;19;{{0, 0}, {15, 102}}f;18;0.9925373134328358S;20;{{8, 126}, {25, 24}}S;18;{{0, 0}, {25, 24}}S;21;{{9, 302}, {218, 97}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;659E;D;K;6;CP$UIDd;3;274E;D;K;6;CP$UIDd;3;275E;D;K;6;CP$UIDd;3;660E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;557E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;273E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;548E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;741E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;636E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;754E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;273E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;563E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;743E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;3;276E;E;D;K;6;$classD;K;6;CP$UIDd;3;232E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;273E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;718E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;718E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;273E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;277E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;646E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;718E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;718E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;755E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;747E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;551E;K;16;$atext-alignmentD;K;6;CP$UIDd;3;548E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;394E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;748E;E;D;K;6;$classD;K;6;CP$UIDd;3;278E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;718E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;718E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;666E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;749E;K;6;$afontD;K;6;CP$UIDd;3;756E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;510E;K;20;$avertical-alignmentD;K;6;CP$UIDd;3;447E;K;11;$aalignmentD;K;6;CP$UIDd;3;548E;K;15;$acontent-insetD;K;6;CP$UIDd;3;757E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;394E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;669E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;510E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;548E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;394E;E;S;19;{{7, 5}, {142, 17}}S;19;{{0, 0}, {142, 17}}S;9;textfieldD;K;6;$classD;K;6;CP$UIDd;3;619E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;737E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;738E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;395E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;395E;E;S;10;Key Paths:d;4;3072S;20;{{7, 398}, {25, 24}}d;1;9S;22;{{144, 201}, {84, 18}}S;18;{{0, 0}, {84, 18}}S;9;check-boxS;9;Ends WithS;21;{{14, 201}, {96, 18}}S;18;{{0, 0}, {96, 18}}S;11;Begins Withd;1;5S;21;{{72, 175}, {33, 18}}S;18;{{0, 0}, {33, 18}}S;1;≠S;22;{{127, 175}, {33, 18}}S;1;>d;2;99S;22;{{144, 227}, {78, 18}}S;18;{{0, 0}, {78, 18}}S;8;ContainsS;21;{{14, 175}, {33, 18}}S;1;=S;21;{{14, 227}, {96, 18}}S;7;MatchesS;22;{{189, 175}, {33, 18}}S;1;d;2;99S;22;{{144, 227}, {78, 18}}S;18;{{0, 0}, {78, 18}}S;8;ContainsS;21;{{14, 175}, {33, 18}}S;1;=S;21;{{14, 227}, {96, 18}}S;7;MatchesS;22;{{189, 175}, {33, 18}}S;1; Date: Fri, 13 Jul 2012 01:52:06 +0700 Subject: [PATCH 071/109] Completed aliases and tests --- Foundation/CPGeometry.j | 217 +++++--------------------- Tests/Foundation/CPGeometryTest.j | 250 ++++++++++++++++++++++++++++++ 2 files changed, 285 insertions(+), 182 deletions(-) diff --git a/Foundation/CPGeometry.j b/Foundation/CPGeometry.j index 234190a59..2bb19a4c2 100644 --- a/Foundation/CPGeometry.j +++ b/Foundation/CPGeometry.j @@ -20,15 +20,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -@import "CGGeometry.j" +@import - -CPMinXEdge = 0; -CPMinYEdge = 1; -CPMaxXEdge = 2; -CPMaxYEdge = 3; - -// FIXME: the rest! /*! Makes a CGPoint object out of two numbers provided as arguments @group CGPoint @@ -113,22 +106,14 @@ CPRectContainsRect = CGRectContainsRect; */ CPRectIntersection = CGRectIntersection; -/*! - @addtogroup appkit - @{ -*/ - /*! Makes a CGPoint object out of two numbers provided as arguments @group CGPoint @param x the x-coordinate of the CGPoint @param y the y-coordinate of the CGPoint @return CGPoint a CGPoint with an X and Y coordinate equal to the function arguments - */ -function CPPointMake(x, y) -{ - return { x: x, y: y }; -} +*/ +CPPointMake = CGPointMake; /*! Makes a CGRect with an origin and size equal to \c aRect less the \c dX/dY insets specified. @@ -137,11 +122,7 @@ function CPPointMake(x, y) @group CGRect @return CGRect a rectangle like \c aRect with an inset */ -function CPRectInset(aRect, dX, dY) -{ - return CPRectMake( aRect.origin.x + dX, aRect.origin.y + dY, - aRect.size.width - 2 * dX, aRect.size.height - 2 * dY); -} +CPRectInset = CGRectInset; /*! @group CGRect @@ -149,11 +130,7 @@ function CPRectInset(aRect, dX, dY) @return void @deprecated */ -function CPRectIntegral(aRect) -{ - // FIXME!!! - alert("CPRectIntegral unimplemented"); -} +CPRectIntegral = CGRectIntegral; /*! Creates a copy of the provided rectangle @@ -161,10 +138,7 @@ function CPRectIntegral(aRect) @param aRect the CGRect that will be copied @return CGRect the rectangle copy */ -function CPRectCreateCopy(aRect) -{ - return { origin: CPPointCreateCopy(aRect.origin), size: CPSizeCreateCopy(aRect.size) }; -} +CPRectCreateCopy = CGRectCreateCopy; /*! Returns a CGRect made of the specified arguments @@ -175,10 +149,7 @@ function CPRectCreateCopy(aRect) @param height the height of the new rectangle @return CGRect the new rectangle */ -function CPRectMake(x, y, width, height) -{ - return { origin: CPPointMake(x, y), size: CPSizeMake(width, height) }; -} +CPRectMake = CGRectMake; /*! Creates a new rectangle with its origin offset by \c dX and \c dY. @@ -188,36 +159,14 @@ function CPRectMake(x, y, width, height) @param dY the amount added to the y-size of the new rectangle @return CGRect the new rectangle with modified size */ -function CPRectOffset(aRect, dX, dY) -{ - return CPRectMake(aRect.origin.x + dX, aRect.origin.y + dY, aRect.size.width, aRect.size.height); -} +CPRectOffset = CGRectOffset; /*! @group CGRect @param aRect a CGRect @return CGRect */ -function CPRectStandardize(aRect) -{ - var width = CPRectGetWidth(aRect), - height = CPRectGetHeight(aRect), - standardized = CPRectCreateCopy(aRect); - - if (width < 0.0) - { - standardized.origin.x += width; - standardized.size.width = -width; - } - - if (height < 0.0) - { - standardized.origin.y += height; - standardized.size.height = -height; - } - - return standardized; -} +CPRectStandardize = CGRectStandardize; /*! Returns the smallest rectangle that can contain the two argument \c CGRects. @@ -226,15 +175,7 @@ function CPRectStandardize(aRect) @param rhsRect the second CGRect to use for the union calculation @return CGRect the union rectangle */ -function CPRectUnion(lhsRect, rhsRect) -{ - var minX = MIN(CPRectGetMinX(lhsRect), CPRectGetMinX(rhsRect)), - minY = MIN(CPRectGetMinY(lhsRect), CPRectGetMinY(rhsRect)), - maxX = MAX(CPRectGetMaxX(lhsRect), CPRectGetMaxX(rhsRect)), - maxY = MAX(CPRectGetMaxY(lhsRect), CPRectGetMaxY(rhsRect)); - - return CPRectMake(minX, minY, maxX - minX, maxY - minY); -} +CPRectUnion = CGRectUnion; /*! Creates and returns a copy of the provided CGSize @@ -242,10 +183,7 @@ function CPRectUnion(lhsRect, rhsRect) @param aSize the CGSize to copy @return CGSize the copy of the CGSize */ -function CPSizeCreateCopy(aSize) -{ - return { width: aSize.width, height: aSize.height }; -} +CPSizeCreateCopy = CGSizeCreateCopy; /*! Creates and returns a new CGSize object from the provided dimensions. @@ -254,10 +192,7 @@ function CPSizeCreateCopy(aSize) @param height the height for the new CGSize @return CGSize the new CGSize */ -function CPSizeMake(width, height) -{ - return { width: width, height: height }; -} +CPSizeMake = CGSizeMake; /*! Returns \c YES if the CGRect, \c aRect, contains @@ -267,93 +202,63 @@ function CPSizeMake(width, height) @group CGRect @return BOOL \c YES if the rectangle contains the point, \c NO otherwise. */ -function CPRectContainsPoint(aRect, aPoint) -{ - return aPoint.x >= CPRectGetMinX(aRect) && - aPoint.y >= CPRectGetMinY(aRect) && - aPoint.x < CPRectGetMaxX(aRect) && - aPoint.y < CPRectGetMaxY(aRect); -} +CPRectContainsPoint = CGRectContainsPoint; /*! @group CGRect @param aRect a CGRect @return int */ -function CPRectGetHeight(aRect) -{ - return aRect.size.height; -} +CPRectGetHeight = CGRectGetHeight; /*! @group CGRect @param aRect a CGRect @return int */ -function CPRectGetMaxX(aRect) -{ - return aRect.origin.x + aRect.size.width; -} +CPRectGetMaxX = CGRectGetMaxX; /*! @group CGRect @param aRect a CGRect @return int */ -function CPRectGetMaxY(aRect) -{ - return aRect.origin.y + aRect.size.height; -} +CPRectGetMaxY = CGRectGetMaxY; /*! @group CGRect @param aRect a CGRect @return float */ -function CPRectGetMidX(aRect) -{ - return aRect.origin.x + (aRect.size.width) / 2.0; -} +CPRectGetMidX = CGRectGetMidX; /*! @group CGRect @param aRect a CGRect @return float */ -function CPRectGetMidY(aRect) -{ - return aRect.origin.y + (aRect.size.height) / 2.0; -} +CPRectGetMidY = CGRectGetMidY; /*! @group CGRect @param aRect a CGRect @return int */ -function CPRectGetMinX(aRect) -{ - return aRect.origin.x; -} +CPRectGetMinX = CGRectGetMinX; /*! @group CGRect @param aRect a CGRect @return int */ -function CPRectGetMinY(aRect) -{ - return aRect.origin.y; -} +CPRectGetMinY = CGRectGetMinY; /*! @group CGRect @param aRect a CGRect @return int */ -function CPRectGetWidth(aRect) -{ - return aRect.size.width; -} +CPRectGetWidth = CGRectGetWidth; /*! Returns \c YES if the two rectangles intersect @@ -362,10 +267,7 @@ function CPRectGetWidth(aRect) @param rhsRect the second CGRect @return BOOL \c YES if the two rectangles have any common spaces, and \c NO, otherwise. */ -function CPRectIntersectsRect(lhsRect, rhsRect) -{ - return !CPRectIsEmpty(CPRectIntersection(lhsRect, rhsRect)); -} +CPRectIntersectsRect = CGRectIntersectsRect; /*! Returns \c YES if the CGRect has no area. @@ -373,10 +275,7 @@ function CPRectIntersectsRect(lhsRect, rhsRect) @group CGRect @return BOOL \c YES if the CGRect has no area, and \c NO, otherwise. */ -function CPRectIsNull(aRect) -{ - return aRect.size.width <= 0.0 || aRect.size.height <= 0.0; -} +CPRectIsNull = CGRectIsNull; /*! Creates two rectangles -- slice and rem -- from inRect, by dividing inRect @@ -387,10 +286,7 @@ function CPRectIsNull(aRect) @group CGRect */ -function CPDivideRect(inRect, slice, rem, amount, edge) -{ - CGRectDivide(inRect, slice, rem, amount, edge); -} +CPDivideRect = CGRectDivide; /*! Returns \c YES if the two CGSizes are identical. @@ -399,10 +295,7 @@ function CPDivideRect(inRect, slice, rem, amount, edge) @param rhsSize the second CGSize to compare @return BOOL \c YES if the two sizes are identical. \c NO, otherwise. */ -function CPSizeEqualToSize(lhsSize, rhsSize) -{ - return lhsSize.width == rhsSize.width && lhsSize.height == rhsSize.height; -} +CPSizeEqualToSize = CGSizeEqualToSize; /*! Returns a human readable string of the provided CGPoint. @@ -410,10 +303,7 @@ function CPSizeEqualToSize(lhsSize, rhsSize) @param aPoint the point to represent @return CGPoint a string representation of the CGPoint */ -function CPStringFromPoint(aPoint) -{ - return "{" + aPoint.x + ", " + aPoint.y + "}"; -} +CPStringFromPoint = CGStringFromPoint; /*! Returns a human readable string of the provided CGSize. @@ -421,10 +311,7 @@ function CPStringFromPoint(aPoint) @param aSize the size to represent @return CGSize a string representation of the CGSize */ -function CPStringFromSize(aSize) -{ - return "{" + aSize.width + ", " + aSize.height + "}"; -} +CPStringFromSize = CGStringFromSize; /*! Returns a human readable string of the provided CGRect. @@ -432,10 +319,7 @@ function CPStringFromSize(aSize) @param aRect the rectangle to represent @return CGString the string representation of the rectangle */ -function CPStringFromRect(aRect) -{ - return "{" + CPStringFromPoint(aRect.origin) + ", " + CPStringFromSize(aRect.size) + "}"; -} +CPStringFromRect = CGStringFromRect; /*! Returns a CGPoint from a string with a comma separated pair of integers. @@ -443,12 +327,7 @@ function CPStringFromRect(aRect) @param aString a string containing two comma separated integers @return CGPoint the point object created from the string */ -function CPPointFromString(aString) -{ - var comma = aString.indexOf(','); - - return { x:parseFloat(aString.substr(1, comma - 1), 10), y:parseFloat(aString.substring(comma + 1, aString.length), 10) }; -} +CPPointFromString = CGPointFromString; /*! Returns a CGSize from a string containing a pair of comma separated integers. @@ -456,12 +335,7 @@ function CPPointFromString(aString) @param aString a string containing two comma separated integers @return CGSize the size object created from the string */ -function CPSizeFromString(aString) -{ - var comma = aString.indexOf(','); - - return { width:parseFloat(aString.substr(1, comma - 1), 10), height:parseFloat(aString.substring(comma + 1, aString.length), 10) }; -} +CPSizeFromString = CGSizeFromString; /*! Returns a CGRect created from a string. @@ -469,53 +343,32 @@ function CPSizeFromString(aString) @param aString a string in the form generated by \c CPStringFromRect @return CGRect the rectangle created from the string */ -function CPRectFromString(aString) -{ - var comma = aString.indexOf(',', aString.indexOf(',') + 1); - - return { origin:CPPointFromString(aString.substr(1, comma - 1)), size:CPSizeFromString(aString.substring(comma + 2, aString.length)) }; -} +CPRectFromString = CGRectFromString; /*! @group CGPoint @param anEvent @return CGPoint */ -function CPPointFromEvent(anEvent) -{ - return CPPointMake(anEvent.clientX, anEvent.clientY, 0); -} +CPPointFromEvent = CGPointFromEvent; /*! Returns a zero sized CGSize. @group CGSize @return CGSize a size object with zeros for \c width and \c height */ -function CPSizeMakeZero() -{ - return CPSizeMake(0, 0); -} +CPSizeMakeZero = CGSizeMakeZero; /*! Returns a rectangle at origin \c (0,0) and size of \c (0,0). @group CGRect @return CGRect a zeroed out CGRect */ -function CPRectMakeZero() -{ - return CPRectMake(0, 0, 0, 0); -} +CPRectMakeZero = CGRectMakeZero; /*! Returns a point located at \c (0, 0). @group CGPoint @return CGPoint a point located at \c (0, 0) */ -function CPPointMakeZero() -{ - return CPPointMake(0, 0, 0); -} - -/*! - @} -*/ +CPPointMakeZero = CGPointMakeZero; diff --git a/Tests/Foundation/CPGeometryTest.j b/Tests/Foundation/CPGeometryTest.j index 92ab7b1c1..d08d9dddf 100644 --- a/Tests/Foundation/CPGeometryTest.j +++ b/Tests/Foundation/CPGeometryTest.j @@ -64,4 +64,254 @@ [self assertFalse:CPPointEqualToPoint(CPPointCreateCopy(point), CGPointMake(0,1))]; } +- (void)testCPPointMake +{ + var testPoint = CPPointMake(1,2); + [self assert:1 equals:testPoint.x message:"point x coordinate failed"]; + [self assert:2 equals:testPoint.y message:"point y coordinate failed"]; +} + +- (void)testCPRectInset +{ + var testRect = CGRectMake(0, 0, 100, 100); + [self assertTrue:CGRectEqualToRect(CGRectMake(10, 10, 80, 80), CPRectInset(testRect, 10, 10))]; +} + +- (void)testCPRectIntegral +{ + var rect = CGRectMake(0.1, 0.2, 10.3, 10.4); + [self assertTrue:CGRectEqualToRect(CGRectMake(0, 0, 11, 11), CPRectIntegral(rect))]; +} + +- (void)testCPRectCreateCopy +{ + var rect = CGRectMake(0, 0, 100, 100); + [self assertTrue:CGRectEqualToRect(rect, CPRectCreateCopy(rect))]; +} + +- (void)testCPRectMake +{ + var rect = CPRectMake(10, 20, 30, 40); + [self assert:10 equals:rect.origin.x message:"Rect x coordinate failed"]; + [self assert:20 equals:rect.origin.y message:"Rect x coordinate failed"]; + [self assert:30 equals:rect.size.width message:"Rect width failed"]; + [self assert:40 equals:rect.size.height message:"Rect height failed"]; +} + +- (void)testCPRectOffset +{ + var initialRect = CGRectMake(10, 10, 100, 100), + offsetRect = CGRectMake(20, 20, 100, 100); + [self assertTrue:CGRectEqualToRect(offsetRect, CPRectOffset(initialRect, 10, 10))]; + [self assertFalse:CGRectEqualToRect(initialRect, CPRectOffset(initialRect, 10, 10))]; +} + +- (void)testCPRectStandardize +{ + var initialRect = CGRectMake(10, 10, -10, -10), + standardizedRect = CGRectMake(0, 0, 10, 10); + [self assertTrue:CGRectEqualToRect(standardizedRect,CPRectStandardize(initialRect))]; + [self assertFalse:CGRectEqualToRect(initialRect,CPRectStandardize(initialRect))]; +} + +- (void)testCPRectUnion +{ + var firstRect = CGRectMake(0, 0, 10, 10), + secondRect = CGRectMake(20, 20, 10, 10), + unitedRect = CGRectMake(0, 0, 30, 30); + [self assertTrue:CGRectEqualToRect(unitedRect, CPRectUnion(firstRect, secondRect))]; + [self assertFalse:CGRectEqualToRect(firstRect, CPRectUnion(firstRect, secondRect))]; +} + +- (void)testCPSizeCreateCopy +{ + var initialSize = CGSizeMake(100, 200); + [self assertTrue:CGSizeEqualToSize(initialSize, CPSizeCreateCopy(initialSize))]; + [self assertFalse:CGSizeEqualToSize(CGSizeMake(100, 10), CPSizeCreateCopy(initialSize))]; +} + +- (void)testCPSizeMake +{ + var size = CPSizeMake(10, 20); + [self assert:10 equals:size.width message:"Size width failed"]; + [self assert:20 equals:size.height message:"Size height failed"]; +} + +- (void)testCPRectContainsPoint +{ + var rect = CGRectMake(10, 10, 10, 10); + [self assertTrue:CPRectContainsPoint(rect, CGPointMake(15, 15))]; + [self assertFalse:CPRectContainsPoint(rect, CGPointMake(5, 5))]; + [self assertFalse:CPRectContainsPoint(rect, CGPointMake(15, 5))]; + [self assertFalse:CPRectContainsPoint(rect, CGPointMake(25, 5))]; + [self assertFalse:CPRectContainsPoint(rect, CGPointMake(5, 15))]; + [self assertFalse:CPRectContainsPoint(rect, CGPointMake(5, 25))]; + [self assertFalse:CPRectContainsPoint(rect, CGPointMake(15, 25))]; + [self assertFalse:CPRectContainsPoint(rect, CGPointMake(25, 15))]; + [self assertFalse:CPRectContainsPoint(rect, CGPointMake(25, 25))]; +} + +- (void)testCPRectGetHeight +{ + var rect = CGRectMake(10, 20, 30, 40); + [self assert:40 equals:CPRectGetHeight(rect)]; +} + +- (void)testCPRectGetMaxX +{ + var rect = CGRectMake(10, 20, 40, 80); + [self assert:50 equals:CPRectGetMaxX(rect)]; +} + +- (void)testCPRectGetMaxY +{ + var rect = CGRectMake(10, 20, 40, 80); + [self assert:100 equals:CPRectGetMaxY(rect)]; +} + +- (void)testCPRectGetMidX +{ + var rect = CGRectMake(10, 20, 40, 80); + [self assert:30 equals:CPRectGetMidX(rect)]; +} + +- (void)testCPRectGetMidY +{ + var rect = CGRectMake(10, 20, 40, 80); + [self assert:60 equals:CPRectGetMidY(rect)]; +} + +- (void)testCPRectGetMinX +{ + var rect = CGRectMake(10, 20, 40, 80); + [self assert:10 equals:CPRectGetMinX(rect)]; +} + +- (void)testCPRectGetMinY +{ + var rect = CGRectMake(10, 20, 40, 80); + [self assert:20 equals:CPRectGetMinY(rect)]; +} + +- (void)testCPRectGetWidth +{ + var rect = CGRectMake(10, 20, 40, 80); + [self assert:40 equals:CPRectGetWidth(rect)]; +} + +- (void)testCPRectIntersectsRect +{ + var firstRect = CGRectMake(10, 10, 10, 10), + secondRect = CGRectMake(15, 15, 10, 10); + [self assertTrue:CPRectIntersectsRect(firstRect, secondRect)]; + secondRect.origin = CGPointMake(25, 25); + [self assertFalse:CPRectIntersectsRect(firstRect, secondRect)]; +} + +- (void)testCPRectIsNull +{ + [self assertTrue:CPRectIsNull(CGRectMake(0, 0, 0, 10))]; + [self assertTrue:CPRectIsNull(CGRectMake(0, 0, 10, 0))]; + [self assertTrue:CPRectIsNull(CGRectMake(0, 0, -10, 10))]; + [self assertTrue:CPRectIsNull(CGRectMake(0, 0, 10, -10))]; + [self assertFalse:CPRectIsNull(CGRectMake(0, 0, 10, 10))]; +} + +- (void)testCPDivideRect +{ + var initialRect = CGRectMake(0, 0, 10, 10), + slice = CGRectMake(0, 0, 0, 0), + rem = CGRectMake(0, 0, 0, 0); + + CPDivideRect(initialRect, slice, rem, 3, CGMinXEdge); + [self assertTrue:CGRectEqualToRect(slice, CGRectMake(0, 0, 3, 10))]; + [self assertTrue:CGRectEqualToRect(rem, CGRectMake(3, 0, 7, 10))]; + + CPDivideRect(initialRect, slice, rem, 3, CGMinYEdge); + [self assertTrue:CGRectEqualToRect(slice, CGRectMake(0, 0, 10, 3))]; + [self assertTrue:CGRectEqualToRect(rem, CGRectMake(0, 3, 10, 7))]; + + CPDivideRect(initialRect, slice, rem, 3, CGMaxXEdge); + [self assertTrue:CGRectEqualToRect(slice, CGRectMake(7, 0, 3, 10))]; + [self assertTrue:CGRectEqualToRect(rem, CGRectMake(0, 0, 7, 10))]; + + CPDivideRect(initialRect, slice, rem, 3, CGMaxYEdge); + [self assertTrue:CGRectEqualToRect(slice, CGRectMake(0, 7, 10, 3))]; + [self assertTrue:CGRectEqualToRect(rem, CGRectMake(0, 0, 10, 7))]; +} + +- (void)testCPSizeEqualToSize +{ + [self assertTrue:CPSizeEqualToSize(CGSizeMake(10, 10), CGSizeMake(10, 10))]; + [self assertFalse:CPSizeEqualToSize(CGSizeMake(0, 10), CGSizeMake(10, 10))]; + [self assertFalse:CPSizeEqualToSize(CGSizeMake(10, 10), CGSizeMake(0, 10))]; + [self assertFalse:CPSizeEqualToSize(CGSizeMake(10, 0), CGSizeMake(10, 10))]; + [self assertFalse:CPSizeEqualToSize(CGSizeMake(10, 10), CGSizeMake(10, 0))]; +} + +- (void)testCPStringFromPoint +{ + var point = CGPointMake(0, 1); + [self assert:"{0, 1}" equals: CPStringFromPoint(point)]; +} + +- (void)testCPStringFromSize +{ + var size = CGSizeMake(10, 20); + [self assert:"{10, 20}" equals: CPStringFromSize(size)]; +} + +- (void)testCPStringFromRect +{ + var rect = CGRectMake(10, 20, 30, 40); + [self assert:"{{10, 20}, {30, 40}}" equals:CPStringFromRect(rect)]; +} + +- (void)testCPPointFromString +{ + var point = CGPointMake(0,1); + [self assertTrue:CGPointEqualToPoint(point , CPPointFromString("{0, 1}"))]; +} + +- (void)testCPSizeFromString +{ + var size = CGSizeMake(10, 20); + [self assertTrue:CGSizeEqualToSize(size, CPSizeFromString("{10, 20}"))]; +} + +- (void)testCPRectFromString +{ + var rect = CGRectMake(10, 20, 30, 40); + [self assertTrue:CGRectEqualToRect(rect, CPRectFromString("{{10, 20}, {30, 40}}"))]; +} + +- (void)testCPSizeMakeZero +{ + var size = CGSizeMake(10, 20); + [self assertTrue:CGSizeEqualToSize(CGSizeMake(0, 0), CPSizeMakeZero(size))]; +} + +- (void)testCPRectMakeZero +{ + var rect = CGRectMake(10, 20, 30, 40); + [self assertTrue:CGRectEqualToRect(CGRectMake(0, 0, 0, 0), CPRectMakeZero(rect))]; +} + +- (void)testCPPointMakeZero +{ + var point = CGPointMake(10, 20); + [self assertTrue:CGPointEqualToPoint(CGPointMake(0, 0), CPPointMakeZero(0, 0))]; +} + +- (void)testCPPointFromEvent +{ + var anEvent = [CPEvent mouseEventWithType:CPLeftMouseDownMask location:CGPointMake(5.0, 5.0) modifierFlags:0 + timestamp:0 windowNumber:0 context:nil eventNumber:0 clickCount:1 pressure:1]; + anEvent.clientX = 1.0; + anEvent.clientY = 2.0; + var point = CPPointFromEvent(anEvent); + [self assert:1.0 equals:point.x message:"Point x coordinate failed"]; + [self assert:2.0 equals:point.y message:"Point y coordinate failed"]; +} + @end From 028965e7088fede898fc56999a297cdbbf294c84 Mon Sep 17 00:00:00 2001 From: Vladimir Shevchenko Date: Fri, 13 Jul 2012 03:43:12 +0700 Subject: [PATCH 072/109] mistakes corrected --- Foundation/CPGeometry.j | 5 +++++ Tests/Foundation/CPGeometryTest.j | 36 +++++++++++++++++++------------ 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/Foundation/CPGeometry.j b/Foundation/CPGeometry.j index 2bb19a4c2..fc05cbe75 100644 --- a/Foundation/CPGeometry.j +++ b/Foundation/CPGeometry.j @@ -21,6 +21,11 @@ */ @import +        +CPMinXEdge = 0; +CPMinYEdge = 1; +CPMaxXEdge = 2; +CPMaxYEdge = 3; /*! Makes a CGPoint object out of two numbers provided as arguments diff --git a/Tests/Foundation/CPGeometryTest.j b/Tests/Foundation/CPGeometryTest.j index d08d9dddf..ce4c2ea12 100644 --- a/Tests/Foundation/CPGeometryTest.j +++ b/Tests/Foundation/CPGeometryTest.j @@ -59,14 +59,16 @@ - (void)testCPPointCreateCopy { - var point = CGPointMake(1, 1); - [self assertTrue:CPPointEqualToPoint(CPPointCreateCopy(point),point)]; - [self assertFalse:CPPointEqualToPoint(CPPointCreateCopy(point), CGPointMake(0,1))]; + var point = CGPointMake(1, 1), + copiedPoint = CPPointCreateCopy(point); + [self assertTrue:CPPointEqualToPoint(point, copiedPoint)]; + point.x = 10; + [self assertFalse:CPPointEqualToPoint(point, copiedPoint)]; } - (void)testCPPointMake { - var testPoint = CPPointMake(1,2); + var testPoint = CPPointMake(1, 2); [self assert:1 equals:testPoint.x message:"point x coordinate failed"]; [self assert:2 equals:testPoint.y message:"point y coordinate failed"]; } @@ -77,16 +79,19 @@ [self assertTrue:CGRectEqualToRect(CGRectMake(10, 10, 80, 80), CPRectInset(testRect, 10, 10))]; } -- (void)testCPRectIntegral -{ - var rect = CGRectMake(0.1, 0.2, 10.3, 10.4); - [self assertTrue:CGRectEqualToRect(CGRectMake(0, 0, 11, 11), CPRectIntegral(rect))]; -} +// - (void)testCPRectIntegral +// { +// var rect = CGRectMake(0.1, 0.2, 10.3, 10.4); +// [self assertTrue:CGRectEqualToRect(CGRectMake(0, 0, 11, 11), CPRectIntegral(rect))]; +// } - (void)testCPRectCreateCopy { - var rect = CGRectMake(0, 0, 100, 100); - [self assertTrue:CGRectEqualToRect(rect, CPRectCreateCopy(rect))]; + var rect = CGRectMake(0, 0, 100, 100), + copiedRect = CPRectCreateCopy(rect); + [self assertTrue:CGRectEqualToRect(rect, copiedRect)]; + rect.origin.x = 10; + [self assertFalse:CGRectEqualToRect(rect, copiedRect)]; } - (void)testCPRectMake @@ -125,9 +130,12 @@ - (void)testCPSizeCreateCopy { - var initialSize = CGSizeMake(100, 200); - [self assertTrue:CGSizeEqualToSize(initialSize, CPSizeCreateCopy(initialSize))]; - [self assertFalse:CGSizeEqualToSize(CGSizeMake(100, 10), CPSizeCreateCopy(initialSize))]; + var initialSize = CGSizeMake(100, 200), + copiedSize = CPSizeCreateCopy(initialSize); + [self assertTrue:CGSizeEqualToSize(initialSize, copiedSize)]; + // [self assertFalse:CGSizeEqualToSize(CGSizeMake(100, 10), CPSizeCreateCopy(initialSize))]; + initialSize.width = 10; + [self assertFalse:CGSizeEqualToSize(initialSize, copiedSize)]; } - (void)testCPSizeMake From ff074294eea9a7291ccaa24e81770bde00b2d551 Mon Sep 17 00:00:00 2001 From: Vladimir Shevchenko Date: Fri, 13 Jul 2012 03:47:34 +0700 Subject: [PATCH 073/109] mistakes corrected --- Tests/Foundation/CPGeometryTest.j | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Tests/Foundation/CPGeometryTest.j b/Tests/Foundation/CPGeometryTest.j index ce4c2ea12..2aa9fb909 100644 --- a/Tests/Foundation/CPGeometryTest.j +++ b/Tests/Foundation/CPGeometryTest.j @@ -79,11 +79,11 @@ [self assertTrue:CGRectEqualToRect(CGRectMake(10, 10, 80, 80), CPRectInset(testRect, 10, 10))]; } -// - (void)testCPRectIntegral -// { -// var rect = CGRectMake(0.1, 0.2, 10.3, 10.4); -// [self assertTrue:CGRectEqualToRect(CGRectMake(0, 0, 11, 11), CPRectIntegral(rect))]; -// } +- (void)testCPRectIntegral +{ + var rect = CGRectMake(0.1, 0.2, 10.3, 10.4); + [self assertTrue:CGRectEqualToRect(CGRectMake(0, 0, 11, 11), CPRectIntegral(rect))]; +} - (void)testCPRectCreateCopy { @@ -133,7 +133,6 @@ var initialSize = CGSizeMake(100, 200), copiedSize = CPSizeCreateCopy(initialSize); [self assertTrue:CGSizeEqualToSize(initialSize, copiedSize)]; - // [self assertFalse:CGSizeEqualToSize(CGSizeMake(100, 10), CPSizeCreateCopy(initialSize))]; initialSize.width = 10; [self assertFalse:CGSizeEqualToSize(initialSize, copiedSize)]; } From 5c00ea627e83703195eeb007ba417682df2c04fa Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Thu, 12 Jul 2012 15:10:04 -0700 Subject: [PATCH 074/109] Add manual test case for label baseline alignment --- .../AppController.j | 32 + .../Nib2CibBaselineAlignementTest/Info.plist | 10 + .../Nib2CibBaselineAlignementTest/Jakefile | 94 ++ .../Resources/MainMenu.cib | 1 + .../Resources/MainMenu.xib | 1112 +++++++++++++++++ .../Resources/spinner.gif | Bin 0 -> 1849 bytes .../index-debug.html | 107 ++ .../Nib2CibBaselineAlignementTest/index.html | 77 ++ .../Nib2CibBaselineAlignementTest/main.j | 18 + 9 files changed, 1451 insertions(+) create mode 100644 Tests/Manual/Nib2CibBaselineAlignementTest/AppController.j create mode 100644 Tests/Manual/Nib2CibBaselineAlignementTest/Info.plist create mode 100644 Tests/Manual/Nib2CibBaselineAlignementTest/Jakefile create mode 100644 Tests/Manual/Nib2CibBaselineAlignementTest/Resources/MainMenu.cib create mode 100644 Tests/Manual/Nib2CibBaselineAlignementTest/Resources/MainMenu.xib create mode 100644 Tests/Manual/Nib2CibBaselineAlignementTest/Resources/spinner.gif create mode 100644 Tests/Manual/Nib2CibBaselineAlignementTest/index-debug.html create mode 100644 Tests/Manual/Nib2CibBaselineAlignementTest/index.html create mode 100644 Tests/Manual/Nib2CibBaselineAlignementTest/main.j diff --git a/Tests/Manual/Nib2CibBaselineAlignementTest/AppController.j b/Tests/Manual/Nib2CibBaselineAlignementTest/AppController.j new file mode 100644 index 000000000..53149c48c --- /dev/null +++ b/Tests/Manual/Nib2CibBaselineAlignementTest/AppController.j @@ -0,0 +1,32 @@ +/* + * AppController.j + * Nib2CibBaselineAlignementTest + * + * Created by You on July 12, 2012. + * Copyright 2012, Your Company All rights reserved. + */ + +@import + + +@implementation AppController : CPObject +{ + CPWindow theWindow; //this "outlet" is connected automatically by the Cib +} + +- (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]; +} + +@end diff --git a/Tests/Manual/Nib2CibBaselineAlignementTest/Info.plist b/Tests/Manual/Nib2CibBaselineAlignementTest/Info.plist new file mode 100644 index 000000000..1a6a69f50 --- /dev/null +++ b/Tests/Manual/Nib2CibBaselineAlignementTest/Info.plist @@ -0,0 +1,10 @@ + + + + + Main cib file base name + MainMenu.cib + CPBundleName + Nib2CibBaselineAlignementTest + + diff --git a/Tests/Manual/Nib2CibBaselineAlignementTest/Jakefile b/Tests/Manual/Nib2CibBaselineAlignementTest/Jakefile new file mode 100644 index 000000000..999950835 --- /dev/null +++ b/Tests/Manual/Nib2CibBaselineAlignementTest/Jakefile @@ -0,0 +1,94 @@ +/* + * Jakefile + * Nib2CibBaselineAlignementTest + * + * Created by You on July 12, 2012. + * Copyright 2012, 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 ("Nib2CibBaselineAlignementTest", function(task) +{ + task.setBuildIntermediatesPath(FILE.join("Build", "Nib2CibBaselineAlignementTest.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("Nib2CibBaselineAlignementTest"); + task.setIdentifier("com.yourcompany.Nib2CibBaselineAlignementTest"); + task.setVersion("1.0"); + task.setAuthor("Your Company"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("Nib2CibBaselineAlignementTest"); + task.setSources((new FileList("**/*.j")).exclude(FILE.join("Build", "**"))); + task.setResources(new FileList("Resources/**")); + task.setIndexFilePath("index.html"); + task.setInfoPlistPath("Info.plist"); + task.setNib2CibFlags("-R Resources/"); + + if (configuration === "Debug") + task.setCompilerFlags("-DDEBUG -g"); + else + task.setCompilerFlags("-O"); +}); + +task ("default", ["Nib2CibBaselineAlignementTest"], 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", "Nib2CibBaselineAlignementTest", "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", "Nib2CibBaselineAlignementTest", "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", "Nib2CibBaselineAlignementTest")); + OS.system(["press", "-f", FILE.join("Build", "Release", "Nib2CibBaselineAlignementTest"), FILE.join("Build", "Deployment", "Nib2CibBaselineAlignementTest")]); + printResults("Deployment") +}); + +task ("desktop", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Desktop", "Nib2CibBaselineAlignementTest")); + require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "Nib2CibBaselineAlignementTest"), FILE.join("Build", "Desktop", "Nib2CibBaselineAlignementTest", "Nib2CibBaselineAlignementTest.app")); + printResults("Desktop") +}); + +task ("run-desktop", ["desktop"], function() +{ + OS.system([FILE.join("Build", "Desktop", "Nib2CibBaselineAlignementTest", "Nib2CibBaselineAlignementTest.app", "Contents", "MacOS", "NativeHost"), "-i"]); +}); + +function printResults(configuration) +{ + print("----------------------------"); + print(configuration+" app built at path: "+FILE.join("Build", configuration, "Nib2CibBaselineAlignementTest")); + print("----------------------------"); +} diff --git a/Tests/Manual/Nib2CibBaselineAlignementTest/Resources/MainMenu.cib b/Tests/Manual/Nib2CibBaselineAlignementTest/Resources/MainMenu.cib new file mode 100644 index 000000000..7cbaa47e8 --- /dev/null +++ b/Tests/Manual/Nib2CibBaselineAlignementTest/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;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;20E;D;K;6;CP$UIDd;2;22E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;1;0E;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;1;0E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;46E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;49E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;50E;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;22E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;27E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;29E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;31E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;33E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;42E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;44E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;24E;D;K;6;CP$UIDd;2;49E;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;2;51E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;52E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;50E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;53E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;50E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;22E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;54E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;29E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;27E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;55E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;41E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;27E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;55E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;44E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;27E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;55E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;51E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;21E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;56E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;57E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;58E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;59E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;60E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;24E;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;23E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;62E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;62E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;63E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;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;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;65E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;66E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;70E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;71E;K;11;$aalignmentD;K;6;CP$UIDd;2;72E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;73E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;75E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;77E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;71E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;72E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;78E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;79E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;6;$afontD;K;6;CP$UIDd;2;70E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;71E;K;11;$aalignmentD;K;6;CP$UIDd;2;81E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;73E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;82E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;82E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;82E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;83E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;71E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;81E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;2;84E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;85E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;86E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;87E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;71E;K;11;$aalignmentD;K;6;CP$UIDd;2;72E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;82E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;73E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;75E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;77E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;71E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;72E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;88E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;79E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;6;$afontD;K;6;CP$UIDd;2;70E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;71E;K;11;$aalignmentD;K;6;CP$UIDd;2;81E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;73E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;82E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;82E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;82E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;83E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;71E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;81E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;2;89E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;90E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;86E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;70E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;71E;K;11;$aalignmentD;K;6;CP$UIDd;2;72E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;82E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;73E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;75E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;77E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;71E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;72E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;91E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;92E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;93E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;71E;K;11;$aalignmentD;K;6;CP$UIDd;2;81E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;73E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;75E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;77E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;71E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;81E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;94E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;66E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;70E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;71E;K;11;$aalignmentD;K;6;CP$UIDd;2;72E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;73E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;75E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;77E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;71E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;72E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;95E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;92E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;70E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;71E;K;11;$aalignmentD;K;6;CP$UIDd;2;81E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;73E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;75E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;77E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;71E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;81E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;96E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;66E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;97E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;71E;K;11;$aalignmentD;K;6;CP$UIDd;2;72E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;73E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;75E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;77E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;71E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;72E;K;31;CPTextFieldPlaceholderStringKeyD;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;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;98E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;2;71E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;100E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;101E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;102E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;2;61E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;2;72E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;103E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;2;61E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;104E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;105E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;2;71E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;100E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;101E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;102E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;2;61E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;2;72E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;103E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;2;61E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;104E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;106E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;2;71E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;100E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;101E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;102E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;2;61E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;2;72E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;103E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;2;61E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;104E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;107E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;2;71E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;100E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;101E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;102E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;2;61E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;2;72E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;103E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;2;61E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;104E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;108E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;2;71E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;100E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;101E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;102E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;2;61E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;2;72E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;103E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;2;61E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;104E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;109E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;79E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;6;$afontD;K;6;CP$UIDd;3;110E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;71E;K;11;$aalignmentD;K;6;CP$UIDd;2;81E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;73E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;82E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;82E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;82E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;83E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;71E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;81E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;2;89E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;111E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;86E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;70E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;71E;K;11;$aalignmentD;K;6;CP$UIDd;2;72E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;82E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;73E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;75E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;77E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;71E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;72E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;112E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;2;71E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;100E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;101E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;102E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;2;61E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;2;72E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;103E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;2;61E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;104E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;113E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;79E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;80E;K;6;$afontD;K;6;CP$UIDd;3;114E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;71E;K;11;$aalignmentD;K;6;CP$UIDd;2;81E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;73E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;82E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;82E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;82E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;83E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;71E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;81E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;2;89E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;115E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;86E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;3;116E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;71E;K;11;$aalignmentD;K;6;CP$UIDd;2;72E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;82E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;73E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;75E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;77E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;71E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;72E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;35E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;117E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;99E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;2;61E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;2;71E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;100E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;101E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;102E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;2;61E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;2;72E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;103E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;2;61E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;104E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;118E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;119E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;3;120E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;72E;K;11;$aalignmentD;K;6;CP$UIDd;2;81E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;121E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;75E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;77E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;72E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;81E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;122E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;123E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;2;70E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;61E;K;11;$aalignmentD;K;6;CP$UIDd;2;61E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;124E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;75E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;77E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;61E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;61E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;24E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;61E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;125E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;66E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;24E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;67E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;68E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;64E;K;6;$afontD;K;6;CP$UIDd;3;126E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;71E;K;11;$aalignmentD;K;6;CP$UIDd;2;61E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;73E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;74E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;75E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;75E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;2;77E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;71E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;61E;K;31;CPTextFieldPlaceholderStringKeyD;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;127E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;22E;E;E;S;8;delegateS;9;theWindowS;11;nextKeyViewS;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{335, 141}, {316, 347}}d;1;7S;6;Windowd;1;0S;20;{{0, 0}, {316, 347}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;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;49E;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;E;E;S;6;normalS;21;{{37, 194}, {71, 20}}S;18;{{0, 0}, {71, 20}}d;2;36S;9;textfieldD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;69E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;128E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;129E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;75E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;75E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;82E;E;d;1;2d;1;1S;6;pdpdpdd;4;3072F;D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;76E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;130E;E;S;23;{{113, 217}, {163, 29}}S;19;{{0, 0}, {163, 29}}S;7;bezeledd;1;4T;D;K;6;$classD;K;6;CP$UIDd;2;76E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;131E;E;S;12;john@doe.comS;21;{{37, 225}, {71, 17}}S;18;{{0, 0}, {71, 17}}D;K;6;$classD;K;6;CP$UIDd;2;69E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;128E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;129E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;82E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;75E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;82E;E;S;23;{{113, 245}, {163, 29}}S;8;John DoeS;21;{{37, 253}, {71, 17}}S;23;{{116, 194}, {155, 20}}S;19;{{0, 0}, {155, 20}}D;K;6;$classD;K;6;CP$UIDd;2;69E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;128E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;129E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;82E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;75E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;82E;E;S;21;{{37, 169}, {71, 20}}S;23;{{116, 169}, {155, 20}}S;21;{{37, 141}, {71, 20}}D;K;6;$classD;K;6;CP$UIDd;2;69E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;128E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;129E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;82E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;75E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;82E;E;S;21;{{20, 179}, {276, 5}}S;18;{{0, 0}, {276, 5}}d;1;3D;K;6;$classD;K;6;CP$UIDd;2;76E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;132E;E;D;K;6;$classD;K;6;CP$UIDd;2;76E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;133E;E;S;3;BoxS;6;{0, 0}S;21;{{20, 151}, {276, 5}}S;21;{{20, 204}, {276, 5}}S;21;{{20, 235}, {276, 5}}S;21;{{20, 263}, {276, 5}}S;23;{{113, 273}, {163, 29}}D;K;6;$classD;K;6;CP$UIDd;2;69E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;128E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;129E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;82E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;75E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;82E;E;S;21;{{37, 281}, {71, 17}}S;21;{{20, 291}, {276, 5}}S;23;{{113, 301}, {163, 29}}D;K;6;$classD;K;6;CP$UIDd;2;69E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;128E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;129E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;82E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;75E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;82E;E;S;21;{{37, 309}, {71, 17}}D;K;6;$classD;K;6;CP$UIDd;2;69E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;128E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;129E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;82E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;75E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;82E;E;S;21;{{20, 319}, {276, 5}}S;21;{{25, 21}, {163, 22}}S;19;{{0, 0}, {163, 22}}D;K;6;$classD;K;6;CP$UIDd;2;69E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;128E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;134E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;82E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;75E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;82E;E;S;17;Alignment testingS;21;{{25, 46}, {246, 68}}S;19;{{0, 0}, {246, 68}}S;156;The following labels and text fields content should all have their baselines aligned to the blue lines (last pixel on the line) and should not be truncated.S;22;{{116, 141}, {71, 20}}D;K;6;$classD;K;6;CP$UIDd;2;69E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;128E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;129E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;82E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;75E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;2;82E;E;S;13;AppControllerS;28;_CPFontSystemFacePlaceholderd;2;-1D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;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;2;72E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;2;72E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;3;138E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;2;72E;D;K;6;CP$UIDd;3;138E;E;E;d;2;17f;18;0.6862745098039216f;12;0.3450980484f;12;0.6352941394f;4;0.52E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/Nib2CibBaselineAlignementTest/Resources/MainMenu.xib b/Tests/Manual/Nib2CibBaselineAlignementTest/Resources/MainMenu.xib new file mode 100644 index 000000000..5ad092d75 --- /dev/null +++ b/Tests/Manual/Nib2CibBaselineAlignementTest/Resources/MainMenu.xib @@ -0,0 +1,1112 @@ + + + + 1050 + 11E2620 + 2182 + 1138.47 + 569.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 2182 + + + YES + NSTextField + NSBox + NSWindowTemplate + NSView + NSTextFieldCell + NSCustomObject + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + 7 + 2 + {{335, 390}, {316, 347}} + 1946157056 + Window + NSWindow + + + + + 256 + + YES + + + 268 + {{37, 134}, {77, 20}} + + + + YES + + 68288064 + 67109888 + pdpdpd + + LucidaGrande + 13 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 268 + {{119, 104}, {155, 22}} + + + YES + + -1804468671 + 268436480 + pdpdpd + + LucidaGrande + 13 + 1044 + + john@doe.com + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + + + + + + 268 + {{37, 106}, {77, 17}} + + + + YES + + 68288064 + 71304192 + pdpdpd + + LucidaGrande-Bold + 13 + 16 + + + + + + + + + 268 + {{119, 76}, {155, 22}} + + + YES + + -1804468671 + 268436480 + pdpdpd + + John Doe + + YES + + + + + + + 268 + {{37, 78}, {77, 17}} + + + + YES + + 68288064 + 71304192 + pdpdpd + + + + + + + + + 268 + {{116, 134}, {161, 20}} + + + YES + + 68288064 + 268436480 + pdpdpd + + + + + + + + + 268 + {{37, 159}, {77, 20}} + + + YES + + 68288064 + 67109888 + pdpdpd + + + + + + + + + 268 + {{116, 159}, {161, 20}} + + + YES + + 68288064 + 268436480 + pdpdpd + + + + + + + + + 268 + {{37, 187}, {77, 20}} + + + YES + + 68288064 + 67109888 + pdpdpd + + + + + + + + + 268 + {{116, 187}, {77, 20}} + + + YES + + 68288064 + 1024 + pdpdpd + + + + + + + + + 12 + {{20, 163}, {276, 5}} + + + _NS:9 + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + 2 + MC4zNDUwOTgwNDg0IDAuNjM1Mjk0MTM5NCAxIDAuNTIAA + + + 2 + MC4zNDUwOTgwNDg0IDAuNjM1Mjk0MTM5NCAxIDAuNTIAA + + + + + 12 + {{20, 191}, {276, 5}} + + + _NS:9 + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + + + + 12 + {{20, 138}, {276, 5}} + + + _NS:9 + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + + + + 12 + {{20, 107}, {276, 5}} + + + _NS:9 + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + + + + 12 + {{20, 79}, {276, 5}} + + + _NS:9 + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + + + + 268 + {{119, 48}, {155, 22}} + + + YES + + -1804468671 + 268436480 + pdpdpd + + LucidaGrande-Bold + 13 + 2072 + + John Doe + + YES + + + + + + + 268 + {{37, 50}, {77, 17}} + + + + YES + + 68288064 + 71304192 + pdpdpd + + + + + + + + + 12 + {{20, 51}, {276, 5}} + + + _NS:9 + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + + + + 268 + {{119, 20}, {155, 22}} + + + YES + + -1804468671 + 268436480 + pdpdpd + + John Doe + + YES + + + + + + + 268 + {{37, 22}, {77, 17}} + + + + YES + + 68288064 + 71304192 + pdpdpd + + + + + + + + + 12 + {{20, 23}, {276, 5}} + + + _NS:9 + {0, 0} + + 67239424 + 0 + Box + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + 3 + 2 + 0 + NO + + + + + + 268 + {{25, 305}, {169, 22}} + + + YES + + 67239424 + 268435968 + Alignment testing + + LucidaGrande-Bold + 17 + 16 + + + + + + + + + 268 + {{25, 234}, {252, 68}} + + + YES + + 67239424 + 0 + The following labels and text fields content should all have their baselines aligned to the blue lines (last pixel on the line) and should not be truncated. + + + + + + + + {316, 347} + + + + {{0, 0}, {1440, 878}} + {10000000000000, 10000000000000} + YES + + + AppController + + + + + YES + + + delegate + + + + 451 + + + + theWindow + + + + 459 + + + + nextKeyView + + + + 548 + + + + nextKeyView + + + + 549 + + + + nextKeyView + + + + 550 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 371 + + + YES + + + + + + 372 + + + YES + + + + + + + + + + + + + + + + + + + + + + + + + + + + 450 + + + + + 513 + + + YES + + + + + + 514 + + + YES + + + + + + 515 + + + YES + + + + + + 516 + + + YES + + + + + + 517 + + + YES + + + + + + 518 + + + YES + + + + + + 519 + + + YES + + + + + + 520 + + + YES + + + + + + 521 + + + YES + + + + + + 523 + + + + + 524 + + + + + 525 + + + + + 526 + + + + + 527 + + + + + 528 + + + YES + + + + + + 529 + + + YES + + + + + + 530 + + + + + 531 + + + YES + + + + + + 532 + + + YES + + + + + + 533 + + + + + 534 + + + + + 535 + + + + + 536 + + + + + 537 + + + + + 539 + + + + + 540 + + + + + 541 + + + + + 542 + + + + + 543 + + + + + 544 + + + + + 545 + + + + + 546 + + + + + 547 + + + + + 551 + + + YES + + + + + + 552 + + + + + 557 + + + YES + + + + + + 558 + + + + + 559 + + + YES + + + + + + 560 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 371.IBPluginDependency + 371.IBWindowTemplateEditedContentRect + 371.NSWindowTemplate.visibleAtLaunch + 372.IBPluginDependency + 450.IBPluginDependency + 513.IBPluginDependency + 514.IBPluginDependency + 515.IBPluginDependency + 516.IBPluginDependency + 517.IBPluginDependency + 518.IBPluginDependency + 519.IBPluginDependency + 520.IBPluginDependency + 521.IBPluginDependency + 523.IBPluginDependency + 524.IBPluginDependency + 525.IBPluginDependency + 526.IBPluginDependency + 527.IBPluginDependency + 528.IBPluginDependency + 529.IBPluginDependency + 530.IBPluginDependency + 531.IBPluginDependency + 532.IBPluginDependency + 533.IBPluginDependency + 534.IBPluginDependency + 535.IBPluginDependency + 536.IBPluginDependency + 537.IBPluginDependency + 539.IBPluginDependency + 540.IBPluginDependency + 541.IBPluginDependency + 542.IBPluginDependency + 543.IBPluginDependency + 544.IBPluginDependency + 545.IBPluginDependency + 546.IBPluginDependency + 547.IBPluginDependency + 551.IBPluginDependency + 552.IBPluginDependency + 557.IBPluginDependency + 558.IBPluginDependency + 559.IBPluginDependency + 560.IBPluginDependency + + + YES + 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 + 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 + + + + + 560 + + + + YES + + AppController + NSObject + + IBProjectSource + ./Classes/AppController.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + diff --git a/Tests/Manual/Nib2CibBaselineAlignementTest/Resources/spinner.gif b/Tests/Manual/Nib2CibBaselineAlignementTest/Resources/spinner.gif new file mode 100644 index 0000000000000000000000000000000000000000..06dbc2bc21dddcf0e09b566d5b211aee89570f52 GIT binary patch literal 1849 zcma*odr(tX9tZHtz31lM+(&Y`A`Ou`NeG&R#DrIfV%?hng21vs6v>ooRQQFbk7E_K!V( z{?5!fpZWgIZ%*d6t%i*j24bL}AZUJm9)h6R*;%L4IWse3G#VWaN1#$zSSXcBhlYlH zJ|D}n{r&w2f+Qp)SS*&n?*G4}{}!h?td_mjU6Kad-rW*QwWYCUk7d^e+sjpZAn6kT z5rM;`{~_}-wm+L@%+E;JphLm}C3WzQAQD0wBoY|rOTQX{(@pp-WAA8Iw0HKl|15j) zhGh(SFWu#5zUCw^T!}C~eC}~?{xG-r7ugQC>taC+|L^xr&a%{#cgUOZXIM&v?)k^2 z1i5%0!U00wq)r4vlAwXBA_m5J5WNeuBm-XJQ5pG4GD%vc|K){+TJ{AkHqN@SJKczX zU}QRd9n*_bf^h94)6Ctv{CUfz_;qs#RDuQ$DR%y1&5G-a6rhf*4Y zl+UOD1*GE{GQ7vv;c-tTIMkz0ovO>9j%b5hpa@a*CBJ#W!0@ndSwF|%hMkdFtXiU) z`BEp+yhkt8ZY>tg&uyH@%^%K4jDrbA;et&vnnzZ3z22@e6<27z2Vk13kb7OtISyxv z(XoO-LNQCZe3lfzc%*pNqU<9T+p~teThOEB+~e&U0mC|zS{Q)dJZ)!^1f7L(zg*L> z*vSW%?dR~@@0(}x6-V^A`~ImD;)NaBUnP8;RH=bS2@pk`wp>>8r&jGjmGPy%1BW}v zoPo}ca$~bze@efc3kapuEVW1!%teOZT3j2Tw5=hjiAf02d}7dL0oFC%@=RXp5Ow#% z@a>+AM|YWt$n&e`>sB-32gBcuTi>R>*|8@lp`y6thc7ydyqDsuUn~YzZf|{-R@-3y zL#wx{Ii}xxL_csiW*LBn0-A$>zp4WOmkf6=ilrjlW?-l9+bCd7|i?*b5NTmy<<6NZ0T8$SN@mwdC2f z6jqK=N@bS@!=YSj%>h0}*4p+%0HbTIrE$w7UMT6+AZZ&DAo*qZAAi(OtNbIfl#Dw^ zJWeiCp~zi#&t6x}m9)O^eR4HiLV3QA<<0>HZ8%$^lrSE94Wb}=+MM^!b>n#5&-JQR zkr-CEu9C;_F*7DqDisulV6Pmg$nFL0TPn%~*m^-`Z3^BgU(sNpnx%nW(!eV9A&FvI zHL3X3lw8Wji^6=8KbQDE-e%b?svdFxxdh$8r97@7$ojeI`6AL8Ob6QC$qh&>ZWVDX1F{0vJnT%%mE;GveKWR%C} zM&4d;Jf3s9|HAA)yVUPo`Aq;0do#)uHSXi5*QF*)x@MVVHr+cN)uMZ__F|&Ta#p8d z53TOKtce!PJUuie8UWol-S(`c2nH?UGqJP{!4RR4u$LCfn)q-hj0^f=h(VYy)T6eN zhRO!ja-aDBTcgeyP(8Ua4IdiOog^*CQa?R(cP#9AgL9`j>EX-6Yf1lzX(!~``M1XC zNmM<4<6d~wWZ$Xrk0K}UteTrq@LBBk#MsjkK;pbuVhe)NI7(7Pf(l?lxC7=1Z7Pzl zMbS;nV4NI5_N{1$P)&XC)huOGQ+h^zpYUZfb*1n6>!`#*b3y52LGmi+<4sY5jyD#- zw&$d}DTguLAfnRtjrM*JfqtHqUu6rQoU=g%1E9xk%;)TDm^2<8n-0IhTsQFaek)MY}>PK4;nBk=ow4pF>vzkO& gna%Org-kgQCf=+BeMi^RbuY;YE~rTjend;_cdi8t>i_@% literal 0 HcmV?d00001 diff --git a/Tests/Manual/Nib2CibBaselineAlignementTest/index-debug.html b/Tests/Manual/Nib2CibBaselineAlignementTest/index-debug.html new file mode 100644 index 000000000..55a2cb592 --- /dev/null +++ b/Tests/Manual/Nib2CibBaselineAlignementTest/index-debug.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + Nib2CibBaselineAlignementTest + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/Nib2CibBaselineAlignementTest/index.html b/Tests/Manual/Nib2CibBaselineAlignementTest/index.html new file mode 100644 index 000000000..7c0d18ce7 --- /dev/null +++ b/Tests/Manual/Nib2CibBaselineAlignementTest/index.html @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + Nib2CibBaselineAlignementTest + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/Nib2CibBaselineAlignementTest/main.j b/Tests/Manual/Nib2CibBaselineAlignementTest/main.j new file mode 100644 index 000000000..954a69dca --- /dev/null +++ b/Tests/Manual/Nib2CibBaselineAlignementTest/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * Nib2CibBaselineAlignementTest + * + * Created by You on July 12, 2012. + * Copyright 2012, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +} From 20c7ed00344bdeb0b8f3afa34182366775e076ee Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Thu, 12 Jul 2012 15:23:17 -0700 Subject: [PATCH 075/109] fix CPTextField baseline alignement --- Tools/nib2cib/NSTextField.j | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/Tools/nib2cib/NSTextField.j b/Tools/nib2cib/NSTextField.j index 41b30c9d2..456d10efc 100644 --- a/Tools/nib2cib/NSTextField.j +++ b/Tools/nib2cib/NSTextField.j @@ -34,10 +34,8 @@ if (self) { - var cell = [aCoder decodeObjectForKey:@"NSCell"]; - - if ([cell isEditable] && [[cell font] isEqual:[CPFont boldSystemFontOfSize:12.0]]) - [self setFont:[CPFont systemFontOfSize:12.0]]; + var cell = [aCoder decodeObjectForKey:@"NSCell"], + font = [cell font]; [self sendActionOn:CPKeyUpMask | CPKeyDownMask]; @@ -64,19 +62,17 @@ // Only adjust the origin and size if this is a bezeled textfield. // This ensures that labels positioned in IB are properly positioned after nibcib. + var frame = [self frame]; + if ([self isBezeled]) { - var frame = [self frame]; - [self setFrameOrigin:CGPointMake(frame.origin.x - 6.0, frame.origin.y - 3.0)]; [self setFrameSize:CGSizeMake(frame.size.width + 8.0, frame.size.height + 7.0)]; } - else if ([[self font] isBold]) + else { - var frame = [self frame]; - + [self setFrame:CGRectInset(frame, 3.0, 0.0)]; [self setFrameOrigin:CGPointMake(frame.origin.x, frame.origin.y - 1.0)]; - [self setFrameSize:CGSizeMake(frame.size.width, frame.size.height + 2.0)]; } CPLog.debug("NSTextField: title=\"" + [self stringValue] + "\", placeholder=" + ([cell placeholderString] == null ? "" : '"' + [cell placeholderString] + '"') + ", isBordered=" + [self isBordered] + ", isBezeled=" + [self isBezeled] + ", bezelStyle=" + [self bezelStyle]); From f7d67e4b8751819f88bc619b94ec7d7c8757589f Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Thu, 12 Jul 2012 17:20:30 -0700 Subject: [PATCH 076/109] Cleanup, documented hacks --- Tools/nib2cib/NSTextField.j | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Tools/nib2cib/NSTextField.j b/Tools/nib2cib/NSTextField.j index 456d10efc..8c6d1241d 100644 --- a/Tools/nib2cib/NSTextField.j +++ b/Tools/nib2cib/NSTextField.j @@ -34,8 +34,7 @@ if (self) { - var cell = [aCoder decodeObjectForKey:@"NSCell"], - font = [cell font]; + var cell = [aCoder decodeObjectForKey:@"NSCell"]; [self sendActionOn:CPKeyUpMask | CPKeyDownMask]; @@ -71,7 +70,10 @@ } else { + // Adjust frame for difference between layout->bounds rect in IB [self setFrame:CGRectInset(frame, 3.0, 0.0)]; + + // Hack to get baselines to align [self setFrameOrigin:CGPointMake(frame.origin.x, frame.origin.y - 1.0)]; } From ae4b7cb58e75d2666fa8b50ce688cc7ae40cbfe7 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Fri, 13 Jul 2012 01:26:14 +0100 Subject: [PATCH 077/109] Sort imports. --- AppKit/AppKit.j | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AppKit/AppKit.j b/AppKit/AppKit.j index 783ca68eb..39204cc56 100644 --- a/AppKit/AppKit.j +++ b/AppKit/AppKit.j @@ -20,6 +20,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +@import "_CPToolTip.j" @import "CALayer.j" @import "CPAccordionView.j" @import "CPAlert.j" @@ -36,10 +37,10 @@ @import "CPCibBindingConnector.j" @import "CPCibConnector.j" @import "CPCibControlConnector.j" +@import "CPCibHelpConnector.j" @import "CPCibLoading.j" @import "CPCibOutletConnector.j" @import "CPCibRuntimeAttributesConnector.j" -@import "CPCibHelpConnector.j" @import "CPClipView.j" @import "CPCollectionView.j" @import "CPCollectionViewItem.j" @@ -98,13 +99,12 @@ @import "CPTokenField.j" @import "CPToolbar.j" @import "CPToolbarItem.j" -@import "_CPToolTip.j" @import "CPTreeNode.j" @import "CPUserDefaultsController.j" @import "CPView.j" @import "CPViewAnimation.j" @import "CPViewController.j" @import "CPWebView.j" -@import "CPWorkspace.j" @import "CPWindow.j" @import "CPWindowController.j" +@import "CPWorkspace.j" From b9b98a39bb14dde4c2d80e03c98ee1333116ff0f Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Fri, 13 Jul 2012 01:28:38 +0100 Subject: [PATCH 078/109] Avoid Foundation depending on AppKit. CPGeometry.j and CGGeometry.j now share their implementation in two private API classes in the lower layer Foundation. --- AppKit/AppKit.j | 1 + AppKit/CoreGraphics/CGAffineTransform.h | 2 +- AppKit/CoreGraphics/CGGeometry.j | 303 +--------------- Foundation/CPGeometry.j | 4 +- Foundation/Jakefile | 8 +- .../CGGeometry.h => Foundation/_CGGeometry.h | 8 +- Foundation/_CGGeometry.j | 326 ++++++++++++++++++ 7 files changed, 347 insertions(+), 305 deletions(-) rename AppKit/CoreGraphics/CGGeometry.h => Foundation/_CGGeometry.h (91%) create mode 100644 Foundation/_CGGeometry.j diff --git a/AppKit/AppKit.j b/AppKit/AppKit.j index 39204cc56..27f3a3001 100644 --- a/AppKit/AppKit.j +++ b/AppKit/AppKit.j @@ -22,6 +22,7 @@ @import "_CPToolTip.j" @import "CALayer.j" +@import "CGGeometry.j" @import "CPAccordionView.j" @import "CPAlert.j" @import "CPAnimation.j" diff --git a/AppKit/CoreGraphics/CGAffineTransform.h b/AppKit/CoreGraphics/CGAffineTransform.h index 1b3fc9266..4eea12e67 100644 --- a/AppKit/CoreGraphics/CGAffineTransform.h +++ b/AppKit/CoreGraphics/CGAffineTransform.h @@ -20,7 +20,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "CGGeometry.h" +#include "../../Foundation/_CGGeometry.h" #define _CGAffineTransformMake(a_, b_, c_, d_, tx_, ty_) { a:a_, b:b_, c:c_, d:d_, tx:tx_, ty:ty_ } #define _CGAffineTransformMakeIdentity() _CGAffineTransformMake(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) diff --git a/AppKit/CoreGraphics/CGGeometry.j b/AppKit/CoreGraphics/CGGeometry.j index 957662a00..bdefc9bd6 100644 --- a/AppKit/CoreGraphics/CGGeometry.j +++ b/AppKit/CoreGraphics/CGGeometry.j @@ -2,8 +2,8 @@ * CGGeometry.j * AppKit * - * Created by Francisco Tolmasky. - * Copyright 2008, 280 North, Inc. + * Created by Alexander Ljungberg. + * Copyright 2012, SlevenBits Ltd. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,301 +20,4 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#define _function(inline) function inline { return _##inline; } - -_function(CGPointMake(x, y)) -_function(CGPointMakeZero()) -_function(CGPointMakeCopy(aPoint)) -_function(CGPointCreateCopy(aPoint)) - -_function(CGPointEqualToPoint(lhsPoint, rhsPoint)) -_function(CGStringFromPoint(aPoint)) - -_function(CGSizeMake(width, height)) -_function(CGSizeMakeZero()) -_function(CGSizeMakeCopy(aSize)) -_function(CGSizeCreateCopy(aSize)) - -_function(CGSizeEqualToSize(lhsSize, rhsSize)) -_function(CGStringFromSize(aSize)) - -_function(CGRectMake(x, y, width, height)) -_function(CGRectMakeZero()) -_function(CGRectMakeCopy(aRect)) -_function(CGRectCreateCopy(aRect)) - -_function(CGRectEqualToRect(lhsRect, rhsRect)) -_function(CGStringFromRect(aRect)) - -_function(CGRectOffset(aRect, dX, dY)) -_function(CGRectInset(aRect, dX, dY)) - -_function(CGRectGetHeight(aRect)) -_function(CGRectGetMaxX(aRect)) -_function(CGRectGetMaxY(aRect)) -_function(CGRectGetMidX(aRect)) -_function(CGRectGetMidY(aRect)) -_function(CGRectGetMinX(aRect)) -_function(CGRectGetMinY(aRect)) -_function(CGRectGetWidth(aRect)) - -_function(CGRectIsEmpty(aRect)) -_function(CGRectIsNull(aRect)) - -_function(CGRectContainsPoint(aRect, aPoint)) - -_function(CGInsetMake(top, right, bottom, left)) -_function(CGInsetMakeZero()) -_function(CGInsetMakeCopy(anInset)) -_function(CGInsetIsEmpty(anInset)) -_function(CGInsetEqualToInset(lhsInset, rhsInset)) - -CGMinXEdge = 0; -CGMinYEdge = 1; -CGMaxXEdge = 2; -CGMaxYEdge = 3; - -CGRectNull = _CGRectMake(Infinity, Infinity, 0.0, 0.0); - -/*! - @addtogroup appkit - @{ -*/ - -/*! - Creates two rectangles -- slice and rem -- from inRect, by dividing inRect - with a line that's parallel to the side of inRect specified by edge. - The size of slice is determined by amount, which specifies the distance from edge. - - slice and rem must not be NULL, must not be the same object, and must not be the - same object as inRect. - - @group CGRect -*/ -function CGRectDivide(inRect, slice, rem, amount, edge) -{ - slice.origin = _CGPointMakeCopy(inRect.origin); - slice.size = _CGSizeMakeCopy(inRect.size); - rem.origin = _CGPointMakeCopy(inRect.origin); - rem.size = _CGSizeMakeCopy(inRect.size); - - switch (edge) - { - case CGMinXEdge: - slice.size.width = amount; - rem.origin.x += amount; - rem.size.width -= amount; - break; - - case CGMaxXEdge: - slice.origin.x = _CGRectGetMaxX(slice) - amount; - slice.size.width = amount; - rem.size.width -= amount; - break; - - case CGMinYEdge: - slice.size.height = amount; - rem.origin.y += amount; - rem.size.height -= amount; - break; - - case CGMaxYEdge: - slice.origin.y = _CGRectGetMaxY(slice) - amount; - slice.size.height = amount; - rem.size.height -= amount; - } -} - -/*! - Returns a \c BOOL indicating whether CGRect \c lhsRect - contains CGRect \c rhsRect. - @group CGRect - @param lhsRect the CGRect to test if \c rhsRect is inside of - @param rhsRect the CGRect to test if it fits inside \c lhsRect. - @return BOOL \c YES if \c rhsRect fits inside \c lhsRect. -*/ -function CGRectContainsRect(lhsRect, rhsRect) -{ - var union = CGRectUnion(lhsRect, rhsRect); - - return _CGRectEqualToRect(union, lhsRect); -} - -/*! - Returns \c YES if the two rectangles intersect - @group CGRect - @param lhsRect the first CGRect - @param rhsRect the second CGRect - @return BOOL \c YES if the two rectangles have any common spaces, and \c NO, otherwise. -*/ -function CGRectIntersectsRect(lhsRect, rhsRect) -{ - var intersection = CGRectIntersection(lhsRect, rhsRect); - - return !_CGRectIsEmpty(intersection); -} - -/*! - Makes the origin and size of a CGRect all integers. Specifically, by making - the southwest corner the origin (rounded down), and the northeast corner a CGSize (rounded up). - @param aRect the rectangle to operate on - @return CGRect the modified rectangle (same as the input) - @group CGRect -*/ -function CGRectIntegral(aRect) -{ - aRect = CGRectStandardize(aRect); - - // Store these out separately, if not the GetMaxes will return incorrect values. - var x = FLOOR(_CGRectGetMinX(aRect)), - y = FLOOR(_CGRectGetMinY(aRect)); - - aRect.size.width = CEIL(_CGRectGetMaxX(aRect)) - x; - aRect.size.height = CEIL(_CGRectGetMaxY(aRect)) - y; - - aRect.origin.x = x; - aRect.origin.y = y; - - return aRect; -} - -/*! - Returns the intersection of the two provided rectangles as a new rectangle. - @param lhsRect the first rectangle used for calculation - @param rhsRect the second rectangle used for calculation - @return CGRect the intersection of the two rectangles - @group CGRect -*/ -function CGRectIntersection(lhsRect, rhsRect) -{ - var intersection = _CGRectMake( - MAX(_CGRectGetMinX(lhsRect), _CGRectGetMinX(rhsRect)), - MAX(_CGRectGetMinY(lhsRect), _CGRectGetMinY(rhsRect)), - 0, 0); - - intersection.size.width = MIN(_CGRectGetMaxX(lhsRect), _CGRectGetMaxX(rhsRect)) - _CGRectGetMinX(intersection); - intersection.size.height = MIN(_CGRectGetMaxY(lhsRect), _CGRectGetMaxY(rhsRect)) - _CGRectGetMinY(intersection); - - return _CGRectIsEmpty(intersection) ? _CGRectMakeZero() : intersection; -} - -/* - -*/ -function CGRectStandardize(aRect) -{ - var width = _CGRectGetWidth(aRect), - height = _CGRectGetHeight(aRect), - standardized = _CGRectMakeCopy(aRect); - - if (width < 0.0) - { - standardized.origin.x += width; - standardized.size.width = -width; - } - - if (height < 0.0) - { - standardized.origin.y += height; - standardized.size.height = -height; - } - - return standardized; -} - -function CGRectUnion(lhsRect, rhsRect) -{ - var lhsRectIsNull = !lhsRect || lhsRect === CGRectNull, - rhsRectIsNull = !rhsRect || rhsRect === CGRectNull; - - if (lhsRectIsNull) - return rhsRectIsNull ? CGRectNull : rhsRect; - - if (rhsRectIsNull) - return lhsRectIsNull ? CGRectNull : lhsRect; - - var minX = MIN(_CGRectGetMinX(lhsRect), _CGRectGetMinX(rhsRect)), - minY = MIN(_CGRectGetMinY(lhsRect), _CGRectGetMinY(rhsRect)), - maxX = MAX(_CGRectGetMaxX(lhsRect), _CGRectGetMaxX(rhsRect)), - maxY = MAX(_CGRectGetMaxY(lhsRect), _CGRectGetMaxY(rhsRect)); - - return _CGRectMake(minX, minY, maxX - minX, maxY - minY); -} - -/*! - Returns the specified rectangle inset by the given CGInset as a new rectangle. - @param aRect the rect to inset - @param anInset a CGInset to inset by - @return CGRect aRect inset by anInset -*/ -_function(CGRectInsetByInset(aRect, anInset)); - -function CGPointFromString(aString) -{ - var comma = aString.indexOf(','); - - return { x:parseFloat(aString.substr(1, comma - 1)), y:parseFloat(aString.substring(comma + 1, aString.length)) }; -} - -function CGSizeFromString(aString) -{ - var comma = aString.indexOf(','); - - return { width:parseFloat(aString.substr(1, comma - 1)), height:parseFloat(aString.substring(comma + 1, aString.length)) }; -} - -function CGRectFromString(aString) -{ - var comma = aString.indexOf(',', aString.indexOf(',') + 1); - - return { origin:CGPointFromString(aString.substr(1, comma - 1)), size:CGSizeFromString(aString.substring(comma + 2, aString.length)) }; -} - -function CGPointFromEvent(anEvent) -{ - return _CGPointMake(anEvent.clientX, anEvent.clientY); -} - -/*! - Combines two insets by adding their individual elements and returns the result. - - @group CGInset -*/ -function CGInsetUnion(lhsInset, rhsInset) -{ - return _CGInsetMake(lhsInset.top + rhsInset.top, - lhsInset.right + rhsInset.right, - lhsInset.bottom + rhsInset.bottom, - lhsInset.left + rhsInset.left); -} - -/*! - Subtract one inset from another by subtracting their individual elements and returns the result. - - @group CGInset -*/ -function CGInsetDifference(lhsInset, rhsInset) -{ - return _CGInsetMake(lhsInset.top - rhsInset.top, - lhsInset.right - rhsInset.right, - lhsInset.bottom - rhsInset.bottom, - lhsInset.left - rhsInset.left); -} - -function CGInsetFromString(aString) -{ - var numbers = aString.substr(1, aString.length - 2).split(','); - - return _CGInsetMake(parseFloat(numbers[0]), parseFloat(numbers[1]), parseFloat(numbers[2]), parseFloat(numbers[3])); -} - -CGInsetFromCPString = CGInsetFromString; - -function CPStringFromCGInset(anInset) -{ - return '{' + anInset.top + ", " + anInset.left + ", " + anInset.bottom + ", " + anInset.right + '}'; -} - -/*! - @} -*/ +@import diff --git a/Foundation/CPGeometry.j b/Foundation/CPGeometry.j index fc05cbe75..ba3c249f4 100644 --- a/Foundation/CPGeometry.j +++ b/Foundation/CPGeometry.j @@ -1,6 +1,6 @@ /* * CPGeometry.j - * AppKit + * Foundation * * Created by Francisco Tolmasky. * Copyright 2008, 280 North, Inc. @@ -20,7 +20,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -@import +@import "_CGGeometry.j"         CPMinXEdge = 0; CPMinYEdge = 1; diff --git a/Foundation/Jakefile b/Foundation/Jakefile index 90a5bdba9..20d218c9e 100644 --- a/Foundation/Jakefile +++ b/Foundation/Jakefile @@ -42,7 +42,13 @@ foundationTask = framework ("Foundation", function(foundationTask) foundationTask.setInfoPlistPath("Info.plist"); foundationTask.setEnvironments(require("objective-j/jake/environment").ObjJ); - var INCLUDES = "--include \"../AppKit/Platform/Platform.h\" --include \"Ref.h\""; + // Grab all the .h's and just include them in each file. + var INCLUDES = new FileList("**/*.h").map(function(aFilename) + { + return "--include \"" + aFilename + "\""; + }).join(" "); + + INCLUDES = "--include \"../AppKit/Platform/Platform.h\" " + INCLUDES; if ($CONFIGURATION === "Release") foundationTask.setCompilerFlags("-O " + INCLUDES); diff --git a/AppKit/CoreGraphics/CGGeometry.h b/Foundation/_CGGeometry.h similarity index 91% rename from AppKit/CoreGraphics/CGGeometry.h rename to Foundation/_CGGeometry.h index f66a82d32..5ea60e41c 100644 --- a/AppKit/CoreGraphics/CGGeometry.h +++ b/Foundation/_CGGeometry.h @@ -1,6 +1,6 @@ /* * CGGeometry.h - * AppKit + * Foundation * * Created by Francisco Tolmasky. * Copyright 2008, 280 North, Inc. @@ -20,6 +20,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +/* + +CGGeometry is not a part of Foundation. The reason _CGGeometry.h exists, and is in Foundation, is that CPGeometry and CGGeometry both use the same code so the shared basis needs to be in the lowest layer. If for some reason Cappuccino was ever reimplemented such that CPRect !== CGRect etc, this class could be removed and CPGeometry.j and CGGeometry.j updated with relevant functions without breaking any client code. + +*/ + #define _CGPointMake(x_, y_) { x:x_, y:y_ } #define _CGPointMakeCopy(aPoint) _CGPointMake(aPoint.x, aPoint.y) #define _CGPointMakeZero() _CGPointMake(0.0, 0.0) diff --git a/Foundation/_CGGeometry.j b/Foundation/_CGGeometry.j new file mode 100644 index 000000000..bbb116d9b --- /dev/null +++ b/Foundation/_CGGeometry.j @@ -0,0 +1,326 @@ +/* + * _CGGeometry.j + * Foundation + * + * Created by Francisco Tolmasky. + * Copyright 2008, 280 North, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + +CGGeometry is not a part of Foundation. The reason _CGGeometry.j exists, and is in Foundation, is that CPGeometry and CGGeometry both use the same code so the shared basis needs to be in the lowest layer. If for some reason Cappuccino was ever reimplemented such that CPRect !== CGRect etc, this class could be removed and CPGeometry.j and CGGeometry.j updated with relevant functions without breaking any client code. + +*/ + +#define _function(inline) function inline { return _##inline; } + +_function(CGPointMake(x, y)) +_function(CGPointMakeZero()) +_function(CGPointMakeCopy(aPoint)) +_function(CGPointCreateCopy(aPoint)) + +_function(CGPointEqualToPoint(lhsPoint, rhsPoint)) +_function(CGStringFromPoint(aPoint)) + +_function(CGSizeMake(width, height)) +_function(CGSizeMakeZero()) +_function(CGSizeMakeCopy(aSize)) +_function(CGSizeCreateCopy(aSize)) + +_function(CGSizeEqualToSize(lhsSize, rhsSize)) +_function(CGStringFromSize(aSize)) + +_function(CGRectMake(x, y, width, height)) +_function(CGRectMakeZero()) +_function(CGRectMakeCopy(aRect)) +_function(CGRectCreateCopy(aRect)) + +_function(CGRectEqualToRect(lhsRect, rhsRect)) +_function(CGStringFromRect(aRect)) + +_function(CGRectOffset(aRect, dX, dY)) +_function(CGRectInset(aRect, dX, dY)) + +_function(CGRectGetHeight(aRect)) +_function(CGRectGetMaxX(aRect)) +_function(CGRectGetMaxY(aRect)) +_function(CGRectGetMidX(aRect)) +_function(CGRectGetMidY(aRect)) +_function(CGRectGetMinX(aRect)) +_function(CGRectGetMinY(aRect)) +_function(CGRectGetWidth(aRect)) + +_function(CGRectIsEmpty(aRect)) +_function(CGRectIsNull(aRect)) + +_function(CGRectContainsPoint(aRect, aPoint)) + +_function(CGInsetMake(top, right, bottom, left)) +_function(CGInsetMakeZero()) +_function(CGInsetMakeCopy(anInset)) +_function(CGInsetIsEmpty(anInset)) +_function(CGInsetEqualToInset(lhsInset, rhsInset)) + +CGMinXEdge = 0; +CGMinYEdge = 1; +CGMaxXEdge = 2; +CGMaxYEdge = 3; + +CGRectNull = _CGRectMake(Infinity, Infinity, 0.0, 0.0); + +/*! + @addtogroup appkit + @{ +*/ + +/*! + Creates two rectangles -- slice and rem -- from inRect, by dividing inRect + with a line that's parallel to the side of inRect specified by edge. + The size of slice is determined by amount, which specifies the distance from edge. + + slice and rem must not be NULL, must not be the same object, and must not be the + same object as inRect. + + @group CGRect +*/ +function CGRectDivide(inRect, slice, rem, amount, edge) +{ + slice.origin = _CGPointMakeCopy(inRect.origin); + slice.size = _CGSizeMakeCopy(inRect.size); + rem.origin = _CGPointMakeCopy(inRect.origin); + rem.size = _CGSizeMakeCopy(inRect.size); + + switch (edge) + { + case CGMinXEdge: + slice.size.width = amount; + rem.origin.x += amount; + rem.size.width -= amount; + break; + + case CGMaxXEdge: + slice.origin.x = _CGRectGetMaxX(slice) - amount; + slice.size.width = amount; + rem.size.width -= amount; + break; + + case CGMinYEdge: + slice.size.height = amount; + rem.origin.y += amount; + rem.size.height -= amount; + break; + + case CGMaxYEdge: + slice.origin.y = _CGRectGetMaxY(slice) - amount; + slice.size.height = amount; + rem.size.height -= amount; + } +} + +/*! + Returns a \c BOOL indicating whether CGRect \c lhsRect + contains CGRect \c rhsRect. + @group CGRect + @param lhsRect the CGRect to test if \c rhsRect is inside of + @param rhsRect the CGRect to test if it fits inside \c lhsRect. + @return BOOL \c YES if \c rhsRect fits inside \c lhsRect. +*/ +function CGRectContainsRect(lhsRect, rhsRect) +{ + var union = CGRectUnion(lhsRect, rhsRect); + + return _CGRectEqualToRect(union, lhsRect); +} + +/*! + Returns \c YES if the two rectangles intersect + @group CGRect + @param lhsRect the first CGRect + @param rhsRect the second CGRect + @return BOOL \c YES if the two rectangles have any common spaces, and \c NO, otherwise. +*/ +function CGRectIntersectsRect(lhsRect, rhsRect) +{ + var intersection = CGRectIntersection(lhsRect, rhsRect); + + return !_CGRectIsEmpty(intersection); +} + +/*! + Makes the origin and size of a CGRect all integers. Specifically, by making + the southwest corner the origin (rounded down), and the northeast corner a CGSize (rounded up). + @param aRect the rectangle to operate on + @return CGRect the modified rectangle (same as the input) + @group CGRect +*/ +function CGRectIntegral(aRect) +{ + aRect = CGRectStandardize(aRect); + + // Store these out separately, if not the GetMaxes will return incorrect values. + var x = FLOOR(_CGRectGetMinX(aRect)), + y = FLOOR(_CGRectGetMinY(aRect)); + + aRect.size.width = CEIL(_CGRectGetMaxX(aRect)) - x; + aRect.size.height = CEIL(_CGRectGetMaxY(aRect)) - y; + + aRect.origin.x = x; + aRect.origin.y = y; + + return aRect; +} + +/*! + Returns the intersection of the two provided rectangles as a new rectangle. + @param lhsRect the first rectangle used for calculation + @param rhsRect the second rectangle used for calculation + @return CGRect the intersection of the two rectangles + @group CGRect +*/ +function CGRectIntersection(lhsRect, rhsRect) +{ + var intersection = _CGRectMake( + MAX(_CGRectGetMinX(lhsRect), _CGRectGetMinX(rhsRect)), + MAX(_CGRectGetMinY(lhsRect), _CGRectGetMinY(rhsRect)), + 0, 0); + + intersection.size.width = MIN(_CGRectGetMaxX(lhsRect), _CGRectGetMaxX(rhsRect)) - _CGRectGetMinX(intersection); + intersection.size.height = MIN(_CGRectGetMaxY(lhsRect), _CGRectGetMaxY(rhsRect)) - _CGRectGetMinY(intersection); + + return _CGRectIsEmpty(intersection) ? _CGRectMakeZero() : intersection; +} + +/* + +*/ +function CGRectStandardize(aRect) +{ + var width = _CGRectGetWidth(aRect), + height = _CGRectGetHeight(aRect), + standardized = _CGRectMakeCopy(aRect); + + if (width < 0.0) + { + standardized.origin.x += width; + standardized.size.width = -width; + } + + if (height < 0.0) + { + standardized.origin.y += height; + standardized.size.height = -height; + } + + return standardized; +} + +function CGRectUnion(lhsRect, rhsRect) +{ + var lhsRectIsNull = !lhsRect || lhsRect === CGRectNull, + rhsRectIsNull = !rhsRect || rhsRect === CGRectNull; + + if (lhsRectIsNull) + return rhsRectIsNull ? CGRectNull : rhsRect; + + if (rhsRectIsNull) + return lhsRectIsNull ? CGRectNull : lhsRect; + + var minX = MIN(_CGRectGetMinX(lhsRect), _CGRectGetMinX(rhsRect)), + minY = MIN(_CGRectGetMinY(lhsRect), _CGRectGetMinY(rhsRect)), + maxX = MAX(_CGRectGetMaxX(lhsRect), _CGRectGetMaxX(rhsRect)), + maxY = MAX(_CGRectGetMaxY(lhsRect), _CGRectGetMaxY(rhsRect)); + + return _CGRectMake(minX, minY, maxX - minX, maxY - minY); +} + +/*! + Returns the specified rectangle inset by the given CGInset as a new rectangle. + @param aRect the rect to inset + @param anInset a CGInset to inset by + @return CGRect aRect inset by anInset +*/ +_function(CGRectInsetByInset(aRect, anInset)); + +function CGPointFromString(aString) +{ + var comma = aString.indexOf(','); + + return { x:parseFloat(aString.substr(1, comma - 1)), y:parseFloat(aString.substring(comma + 1, aString.length)) }; +} + +function CGSizeFromString(aString) +{ + var comma = aString.indexOf(','); + + return { width:parseFloat(aString.substr(1, comma - 1)), height:parseFloat(aString.substring(comma + 1, aString.length)) }; +} + +function CGRectFromString(aString) +{ + var comma = aString.indexOf(',', aString.indexOf(',') + 1); + + return { origin:CGPointFromString(aString.substr(1, comma - 1)), size:CGSizeFromString(aString.substring(comma + 2, aString.length)) }; +} + +function CGPointFromEvent(anEvent) +{ + return _CGPointMake(anEvent.clientX, anEvent.clientY); +} + +/*! + Combines two insets by adding their individual elements and returns the result. + + @group CGInset +*/ +function CGInsetUnion(lhsInset, rhsInset) +{ + return _CGInsetMake(lhsInset.top + rhsInset.top, + lhsInset.right + rhsInset.right, + lhsInset.bottom + rhsInset.bottom, + lhsInset.left + rhsInset.left); +} + +/*! + Subtract one inset from another by subtracting their individual elements and returns the result. + + @group CGInset +*/ +function CGInsetDifference(lhsInset, rhsInset) +{ + return _CGInsetMake(lhsInset.top - rhsInset.top, + lhsInset.right - rhsInset.right, + lhsInset.bottom - rhsInset.bottom, + lhsInset.left - rhsInset.left); +} + +function CGInsetFromString(aString) +{ + var numbers = aString.substr(1, aString.length - 2).split(','); + + return _CGInsetMake(parseFloat(numbers[0]), parseFloat(numbers[1]), parseFloat(numbers[2]), parseFloat(numbers[3])); +} + +CGInsetFromCPString = CGInsetFromString; + +function CPStringFromCGInset(anInset) +{ + return '{' + anInset.top + ", " + anInset.left + ", " + anInset.bottom + ", " + anInset.right + '}'; +} + +/*! + @} +*/ From a4ae36929b182fdbf0375ed4c81bd388729eb279 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Fri, 13 Jul 2012 01:29:01 +0100 Subject: [PATCH 079/109] Fix CPGeometry.j import. CPGeometry.j is now in Foundation. --- AppKit/CPImage.j | 3 +-- AppKit/CPPopUpButton.j | 3 ++- AppKit/CPView.j | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/AppKit/CPImage.j b/AppKit/CPImage.j index d87c0b5d4..f19991f7a 100644 --- a/AppKit/CPImage.j +++ b/AppKit/CPImage.j @@ -21,13 +21,12 @@ */ @import +@import @import @import @import @import -@import "CPGeometry.j" - CPImageLoadStatusInitialized = 0; CPImageLoadStatusLoading = 1; diff --git a/AppKit/CPPopUpButton.j b/AppKit/CPPopUpButton.j index cbc011db0..43d5ac3dc 100644 --- a/AppKit/CPPopUpButton.j +++ b/AppKit/CPPopUpButton.j @@ -20,8 +20,9 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +@import + @import "CPButton.j" -@import "CPGeometry.j" @import "CPMenu.j" @import "CPMenuItem.j" diff --git a/AppKit/CPView.j b/AppKit/CPView.j index eede974cc..8d4db509f 100644 --- a/AppKit/CPView.j +++ b/AppKit/CPView.j @@ -21,14 +21,14 @@ */ @import +@import @import @import @import "CGAffineTransform.j" -@import "CGGeometry.j" + @import "CPColor.j" -@import "CPGeometry.j" @import "CPGraphicsContext.j" @import "CPResponder.j" @import "CPTheme.j" From c3740c548da28984c0f6cb505b31766eb778e40b Mon Sep 17 00:00:00 2001 From: Malte Tancred Date: Fri, 13 Jul 2012 08:11:24 +0200 Subject: [PATCH 080/109] Corrected the corrected format specifier for the flags variable. --- Tools/XcodeCapp/FSEventCallback.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tools/XcodeCapp/FSEventCallback.m b/Tools/XcodeCapp/FSEventCallback.m index fcf4baef5..e050e8d8b 100644 --- a/Tools/XcodeCapp/FSEventCallback.m +++ b/Tools/XcodeCapp/FSEventCallback.m @@ -79,7 +79,7 @@ void fsevents_callback(ConstFSEventStreamRef streamRef, flags & kFSEventStreamEventFlagItemXattrMod || flags & kFSEventStreamEventFlagItemChangeOwner)) { - DLog(@"event type: %d for path %@", flags, path); + DLog(@"event type: %u for path %@", flags, path); [xcc handleFileModification:path notify:YES]; } From b038b6baf69229d4dc805c19c884c88c6c36ad0e Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Fri, 13 Jul 2012 12:41:26 +0100 Subject: [PATCH 081/109] Fixed: browser propagation control when not in browser. This would lead to a `[CPPlatformWindow _willPropagateCurrentDOMEvent] unrecognized selector sent to instance` error if an event was sent in a non DOM environment. --- AppKit/CPApplication.j | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/AppKit/CPApplication.j b/AppKit/CPApplication.j index b10113d28..b57c26a98 100644 --- a/AppKit/CPApplication.j +++ b/AppKit/CPApplication.j @@ -576,27 +576,33 @@ CPRunContinuesResponse = -1002; { _currentEvent = anEvent; +#if PLATFORM(DOM) var willPropagate = [[[anEvent window] platformWindow] _willPropagateCurrentDOMEvent]; // temporarily pretend we won't propagate the event. we'll restore the saved value later // we do this outside the if so that changes user code might make in _handleKeyEquiv. are preserved [[[anEvent window] platformWindow] _propagateCurrentDOMEvent:NO]; +#endif // Check if this is a candidate for key equivalent... if ([anEvent _couldBeKeyEquivalent] && [self _handleKeyEquivalent:anEvent]) { +#if PLATFORM(DOM) var characters = [anEvent characters], modifierFlags = [anEvent modifierFlags]; // Unconditionally propagate on these keys to solve browser copy paste bugs if ((characters == "c" || characters == "x" || characters == "v") && (modifierFlags & CPPlatformActionKeyMask)) [[[anEvent window] platformWindow] _propagateCurrentDOMEvent:YES]; +#endif return; } +#if PLATFORM(DOM) // if we make it this far, then restore the original willPropagate value [[[anEvent window] platformWindow] _propagateCurrentDOMEvent:willPropagate]; +#endif if (_eventListeners.length) { From 2ca3f657f906b01bfcf39eef947316331a9864e2 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Fri, 13 Jul 2012 13:24:43 +0100 Subject: [PATCH 082/109] Refs #1530. Fix CPTableViewTest to work regardless of #1530 decision. --- Tests/AppKit/CPTableViewTest.j | 29 ++++++++++++++++++++--------- Tests/AppKit/CPWindowTest.j | 4 ++-- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/Tests/AppKit/CPTableViewTest.j b/Tests/AppKit/CPTableViewTest.j index c648d3bec..e07a63664 100644 --- a/Tests/AppKit/CPTableViewTest.j +++ b/Tests/AppKit/CPTableViewTest.j @@ -1,5 +1,7 @@ @import +[CPApplication sharedApplication]; + @implementation CPTableViewTest : OJTestCase { CPTableView tableView; @@ -22,15 +24,24 @@ { doubleActionReceived = NO; + var theWindow = [[CPWindow alloc] initWithContentRect:CGRectMake(0.0, 0.0, 1024.0, 768.0) + styleMask:CPWindowNotSizable]; + [[theWindow contentView] addSubview:tableView]; + [tableView setTarget:self]; [tableView setDoubleAction:@selector(doubleAction:)]; // CPEvent with 2 clickCount - var dblClk = [CPEvent mouseEventWithType:CPLeftMouseUp location:CGPointMake(50, 50) modifierFlags:0 - timestamp:0 windowNumber:0 context:nil eventNumber:0 clickCount:2 pressure:0]; + var dblClkDown = [CPEvent mouseEventWithType:CPLeftMouseDown location:CGPointMake(50, 50) modifierFlags:0 + timestamp:0 windowNumber:[theWindow windowNumber] context:nil eventNumber:0 clickCount:2 pressure:0], + dblClkUp = [CPEvent mouseEventWithType:CPLeftMouseUp location:CGPointMake(50, 50) modifierFlags:0 + timestamp:0 windowNumber:[theWindow windowNumber] context:nil eventNumber:0 clickCount:2 pressure:0]; - [[CPApplication sharedApplication] sendEvent:dblClk]; - [tableView trackMouse:dblClk]; + [[CPApplication sharedApplication] sendEvent:dblClkDown]; + [tableView trackMouse:dblClkDown]; + + [[CPApplication sharedApplication] sendEvent:dblClkUp]; + [tableView trackMouse:dblClkUp]; [self assertTrue:doubleActionReceived]; } @@ -224,12 +235,12 @@ contentBindingTable = [[CPTableView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)], tableColumn = [[CPTableColumn alloc] initWithIdentifier:@"A"], delegate = [ContentBindingTableDelegate new]; - + [contentBindingTable addTableColumn:tableColumn]; - [delegate setTester:self]; + [delegate setTester:self]; [contentBindingTable setDelegate:delegate]; - [delegate setTableEntries:[[@"A1", @"B1"], [@"A2", @"B2"], [@"A3", @"B3"]]]; + [delegate setTableEntries:[[@"A1", @"B1"], [@"A2", @"B2"], [@"A3", @"B3"]]]; [contentBindingTable bind:@"content" toObject:delegate withKeyPath:@"tableEntries" options:nil]; // The following should also work: @@ -238,9 +249,9 @@ [[theWindow contentView] addSubview:contentBindingTable]; [theWindow makeFirstResponder:contentBindingTable]; - + [[CPRunLoop currentRunLoop] limitDateForMode:CPDefaultRunLoopMode]; - + // Set the model again with different values [delegate setTableEntries:[[@"C1", @"D1"], [@"C2", @"D2"], [@"C3", @"D3"]]]; [contentBindingTable reloadData]; diff --git a/Tests/AppKit/CPWindowTest.j b/Tests/AppKit/CPWindowTest.j index 0ef64e874..ec415d032 100644 --- a/Tests/AppKit/CPWindowTest.j +++ b/Tests/AppKit/CPWindowTest.j @@ -1,7 +1,7 @@ @import -[CPApplication sharedApplication] +[CPApplication sharedApplication]; @implementation CPWindowTest : OJTestCase { @@ -109,4 +109,4 @@ message:@"nextTextField should be the previous valid key view of contentView"]; } -@end \ No newline at end of file +@end From 7c01f14bfe95fb69e7f4f092bc8366021defbce6 Mon Sep 17 00:00:00 2001 From: cacaodev Date: Thu, 12 Jul 2012 15:19:43 +0200 Subject: [PATCH 083/109] Fix for #1593 --- AppKit/CPTableView.j | 2 +- .../TableTest/EditingControls/AppController.j | 83 ++ .../TableTest/EditingControls/Info.plist | 10 + .../Manual/TableTest/EditingControls/Jakefile | 94 +++ .../EditingControls/Resources/MainMenu.cib | 4 + .../EditingControls/Resources/MainMenu.xib | 759 ++++++++++++++++++ .../EditingControls/Resources/spinner.gif | Bin 0 -> 1849 bytes .../EditingControls/index-debug.html | 107 +++ .../TableTest/EditingControls/index.html | 77 ++ Tests/Manual/TableTest/EditingControls/main.j | 18 + 10 files changed, 1153 insertions(+), 1 deletion(-) create mode 100644 Tests/Manual/TableTest/EditingControls/AppController.j create mode 100644 Tests/Manual/TableTest/EditingControls/Info.plist create mode 100644 Tests/Manual/TableTest/EditingControls/Jakefile create mode 100644 Tests/Manual/TableTest/EditingControls/Resources/MainMenu.cib create mode 100644 Tests/Manual/TableTest/EditingControls/Resources/MainMenu.xib create mode 100644 Tests/Manual/TableTest/EditingControls/Resources/spinner.gif create mode 100644 Tests/Manual/TableTest/EditingControls/index-debug.html create mode 100644 Tests/Manual/TableTest/EditingControls/index.html create mode 100644 Tests/Manual/TableTest/EditingControls/main.j diff --git a/AppKit/CPTableView.j b/AppKit/CPTableView.j index a8231053e..f403f3905 100644 --- a/AppKit/CPTableView.j +++ b/AppKit/CPTableView.j @@ -3395,7 +3395,7 @@ Your delegate can implement this method to avoid subclassing the tableview to ad If the dataview resigning triggers the action (as CPTextField does), we come right back here and start an infinite loop. So we have to check this flag first. */ - if (_editingCellIndex === nil) + if ([sender isKindOfClass:[CPTextField class]] && _editingCellIndex === nil) return; _editingCellIndex = nil; diff --git a/Tests/Manual/TableTest/EditingControls/AppController.j b/Tests/Manual/TableTest/EditingControls/AppController.j new file mode 100644 index 000000000..451d4ba94 --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/AppController.j @@ -0,0 +1,83 @@ +/* + * AppController.j + * issue1593 + * + * Created by You on July 9, 2012. + * Copyright 2012, Your Company All rights reserved. + */ + +@import + +@implementation AppController : CPObject +{ + @outlet CPWindow theWindow; //this "outlet" is connected automatically by the Cib + @outlet CPTableView tableView; + @outlet CPArrayController arrayController; + + CPArray content @accessors; +} + +- (void)awakeFromCib +{ + var keys = [[tableView tableColumns] valueForKey:@"identifier"]; + [self setContent:[ + [CPDictionary dictionaryWithObjects:[YES, NO, @"NO"] forKeys:keys], + [CPDictionary dictionaryWithObjects:[NO, YES, @"YES"] forKeys:keys] + ]]; + + [self _selectSegment:0]; + [theWindow setFullPlatformWindow:YES]; +} + +- (IBAction)selectSegment:(id)sender +{ + [self _selectSegment:[sender selectedSegment]]; +} + +- (void)_selectSegment:(CPInteger)anIndex +{ + var EnumerateColumns; + + if (anIndex == 0) + { + EnumerateColumns = function(column, idx) + { + [column bind:CPValueBinding toObject:arrayController withKeyPath:(@"arrangedObjects." + [column identifier]) options:nil]; + }; + + [tableView setDataSource:nil]; + } + else + { + EnumerateColumns = function(column, idx) + { + [column unbind:CPValueBinding]; + }; + + [tableView setDataSource:self]; + } + + [[tableView tableColumns] enumerateObjectsUsingBlock:EnumerateColumns]; +} + +- (IBAction)logContent:(id)sender +{ + CPLogConsole([content description]); +} + +- (int)numberOfRowsInTableView:(id)aTableView +{ + return [content count]; +} + +- (id)tableView:(id)aTableView objectValueForTableColumn:(CPTableColumn)aTableColumn row:(int)aRow +{ + return [[content objectAtIndex:aRow] objectForKey:[aTableColumn identifier]]; +} + +- (void)tableView:(CPTableView)aTableView setObjectValue:(id)aValue forTableColumn:(CPTableColumn)aTableColumn row:(int)aRow +{ + [[content objectAtIndex:aRow] setObject:aValue forKey:[aTableColumn identifier]]; +} + +@end diff --git a/Tests/Manual/TableTest/EditingControls/Info.plist b/Tests/Manual/TableTest/EditingControls/Info.plist new file mode 100644 index 000000000..96cf4eeb7 --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/Info.plist @@ -0,0 +1,10 @@ + + + + + Main cib file base name + MainMenu.cib + CPBundleName + issue1593 + + diff --git a/Tests/Manual/TableTest/EditingControls/Jakefile b/Tests/Manual/TableTest/EditingControls/Jakefile new file mode 100644 index 000000000..70632f181 --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/Jakefile @@ -0,0 +1,94 @@ +/* + * Jakefile + * issue1593 + * + * Created by You on July 9, 2012. + * Copyright 2012, 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 ("issue1593", function(task) +{ + task.setBuildIntermediatesPath(FILE.join("Build", "issue1593.build", configuration)); + task.setBuildPath(FILE.join("Build", configuration)); + + task.setProductName("issue1593"); + task.setIdentifier("com.yourcompany.issue1593"); + task.setVersion("1.0"); + task.setAuthor("Your Company"); + task.setEmail("feedback @nospam@ yourcompany.com"); + task.setSummary("issue1593"); + task.setSources((new FileList("**/*.j")).exclude(FILE.join("Build", "**"))); + task.setResources(new FileList("Resources/**")); + task.setIndexFilePath("index.html"); + task.setInfoPlistPath("Info.plist"); + task.setNib2CibFlags("-R Resources/"); + + if (configuration === "Debug") + task.setCompilerFlags("-DDEBUG -g"); + else + task.setCompilerFlags("-O"); +}); + +task ("default", ["issue1593"], 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", "issue1593", "index.html")]); +}); + +task ("run-release", ["release"], function() +{ + OS.system(["open", FILE.join("Build", "Release", "issue1593", "index.html")]); +}); + +task ("deploy", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Deployment", "issue1593")); + OS.system(["press", "-f", FILE.join("Build", "Release", "issue1593"), FILE.join("Build", "Deployment", "issue1593")]); + printResults("Deployment") +}); + +task ("desktop", ["release"], function() +{ + FILE.mkdirs(FILE.join("Build", "Desktop", "issue1593")); + require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "issue1593"), FILE.join("Build", "Desktop", "issue1593", "issue1593.app")); + printResults("Desktop") +}); + +task ("run-desktop", ["desktop"], function() +{ + OS.system([FILE.join("Build", "Desktop", "issue1593", "issue1593.app", "Contents", "MacOS", "NativeHost"), "-i"]); +}); + +function printResults(configuration) +{ + print("----------------------------"); + print(configuration+" app built at path: "+FILE.join("Build", configuration, "issue1593")); + print("----------------------------"); +} diff --git a/Tests/Manual/TableTest/EditingControls/Resources/MainMenu.cib b/Tests/Manual/TableTest/EditingControls/Resources/MainMenu.cib new file mode 100644 index 000000000..06996f31d --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/Resources/MainMenu.cib @@ -0,0 +1,4 @@ +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;23E;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;24E;D;K;6;CP$UIDd;2;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;40E;D;K;6;CP$UIDd;2;41E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;47E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;2;48E;D;K;6;CP$UIDd;2;50E;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;26E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;35E;D;K;6;CP$UIDd;2;32E;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;28E;D;K;6;CP$UIDd;2;47E;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;2;51E;E;D;K;10;$classnameS;5;CPSetK;8;$classesA;S;5;CPSetS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;12E;K;15;CPSetObjectsKeyD;K;6;CP$UIDd;2;52E;E;D;K;10;$classnameS;20;CPCibOutletConnectorK;8;$classesA;S;20;CPCibOutletConnectorS;14;CPCibConnectorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;11E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;53E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;48E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;50E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;54E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;48E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;32E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;55E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;48E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;26E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;56E;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;2;45E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;57E;E;D;K;6;$classD;K;6;CP$UIDd;2;19E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;47E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;58E;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;22E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;50E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;48E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;2;59E;K;31;CPCibBindingConnectorBindingKeyD;K;6;CP$UIDd;2;60E;K;31;CPCibBindingConnectorKeyPathKeyD;K;6;CP$UIDd;2;61E;K;31;CPCibBindingConnectorOptionsKeyD;K;6;CP$UIDd;2;63E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;2;51E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;25E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;2;64E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;2;65E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;2;66E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;2;67E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;2;68E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;2;28E;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;27E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;70E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;70E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;71E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;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;2;29E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;73E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;74E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;2;75E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;77E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;23;CPScrollViewContentViewD;K;6;CP$UIDd;2;79E;K;29;CPScrollViewHeaderClipViewKeyD;K;6;CP$UIDd;2;80E;K;21;CPScrollViewVScrollerD;K;6;CP$UIDd;2;41E;K;21;CPScrollViewHScrollerD;K;6;CP$UIDd;2;38E;K;23;CPScrollViewVLineScrollD;K;6;CP$UIDd;2;81E;K;23;CPScrollViewVPageScrollD;K;6;CP$UIDd;2;81E;K;23;CPScrollViewHLineScrollD;K;6;CP$UIDd;2;81E;K;23;CPScrollViewHPageScrollD;K;6;CP$UIDd;2;81E;K;24;CPScrollViewHasVScrollerD;K;6;CP$UIDd;2;82E;K;24;CPScrollViewHasHScrollerD;K;6;CP$UIDd;2;82E;K;29;CPScrollViewAutohidesScrollerD;K;6;CP$UIDd;2;82E;K;25;CPScrollViewCornerViewKeyD;K;6;CP$UIDd;1;0E;K;31;CPScrollViewBottomCornerViewKeyD;K;6;CP$UIDd;2;83E;K;25;CPScrollViewBorderTypeKeyD;K;6;CP$UIDd;2;84E;K;28;CPScrollViewScrollerStyleKeyD;K;6;CP$UIDd;1;0E;K;32;CPScrollViewScrollerKnobStyleKeyD;K;6;CP$UIDd;2;69E;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;2;31E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;79E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;2;85E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;85E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;79E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;2;87E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;2;88E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;12;$agrid-colorD;K;6;CP$UIDd;2;89E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;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;2;91E;K;30;CPTableViewIntercellSpacingKeyD;K;6;CP$UIDd;2;92E;K;37;CPTableViewSelectionHighlightStyleKeyD;K;6;CP$UIDd;2;69E;K;37;CPTableViewColumnAutoresizingStyleKeyD;K;6;CP$UIDd;2;90E;K;31;CPTableViewMultipleSelectionKeyD;K;6;CP$UIDd;2;93E;K;28;CPTableViewEmptySelectionKeyD;K;6;CP$UIDd;2;82E;K;30;CPTableViewColumnReorderingKeyD;K;6;CP$UIDd;2;82E;K;28;CPTableViewColumnResizingKeyD;K;6;CP$UIDd;2;82E;K;29;CPTableViewColumnSelectionKeyD;K;6;CP$UIDd;2;82E;K;26;CPTableViewTableColumnsKeyD;K;6;CP$UIDd;2;94E;K;23;CPTableViewGridColorKeyD;K;6;CP$UIDd;2;89E;K;27;CPTableViewGridStyleMaskKeyD;K;6;CP$UIDd;2;69E;K;39;CPTableViewUsesAlternatingBackgroundKeyD;K;6;CP$UIDd;2;93E;K;34;CPTableViewAlternatingRowColorsKeyD;K;6;CP$UIDd;1;0E;K;24;CPTableViewCornerViewKeyD;K;6;CP$UIDd;2;96E;K;24;CPTableViewHeaderViewKeyD;K;6;CP$UIDd;2;40E;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;2;33E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;2;97E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;2;98E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;2;99E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;100E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;102E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;104E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;105E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;2;93E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;2;82E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;33E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;3;106E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;107E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;2;81E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;108E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;109E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;110E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;105E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;2;93E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;2;82E;K;28;CPSortDescriptorPrototypeKeyD;K;6;CP$UIDd;1;0E;E;D;K;6;$classD;K;6;CP$UIDd;2;33E;K;26;CPTableColumnIdentifierKeyD;K;6;CP$UIDd;3;111E;K;21;CPTableColumnWidthKeyD;K;6;CP$UIDd;3;112E;K;24;CPTableColumnMinWidthKeyD;K;6;CP$UIDd;2;81E;K;24;CPTableColumnMaxWidthKeyD;K;6;CP$UIDd;3;108E;K;26;CPTableColumnHeaderViewKeyD;K;6;CP$UIDd;3;113E;K;24;CPTableColumnDataViewKeyD;K;6;CP$UIDd;3;114E;K;28;CPTableColumnResizingMaskKeyD;K;6;CP$UIDd;3;105E;K;24;CPTableColumnIsHiddenKeyD;K;6;CP$UIDd;2;93E;K;26;CPTableColumnIsEditableKeyD;K;6;CP$UIDd;2;82E;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;2;37E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;115E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;116E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;117E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;119E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;69E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;30E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;120E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;2;69E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;121E;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;2;39E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;80E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;122E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;122E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;80E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;123E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;29;CPTableHeaderViewTableViewKeyD;K;6;CP$UIDd;2;32E;K;33;CPTableHeaderViewDrawsColumnLinesD;K;6;CP$UIDd;2;82E;E;D;K;6;$classD;K;6;CP$UIDd;2;37E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;124E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;125E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;117E;K;17;CPViewIsHiddenKeyD;K;6;CP$UIDd;3;118E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;119E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;126E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;69E;K;18;CPControlTargetKeyD;K;6;CP$UIDd;2;30E;K;18;CPControlActionKeyD;K;6;CP$UIDd;3;127E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;K;21;CPScrollerControlSizeD;K;6;CP$UIDd;2;69E;K;24;CPScrollerKnobProportionD;K;6;CP$UIDd;3;128E;K;18;CPScrollerStyleKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;11;CPTextFieldK;8;$classesA;S;11;CPTextFieldS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;42E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;129E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;130E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;6;$afontD;K;6;CP$UIDd;3;133E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;84E;K;11;$aalignmentD;K;6;CP$UIDd;2;90E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;2;82E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;134E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;135E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;2;93E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;2;93E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;2;93E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;136E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;84E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;90E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;1;0E;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;44E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;137E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;138E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;111E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;139E;K;6;$afontD;K;6;CP$UIDd;3;140E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;69E;K;11;$aalignmentD;K;6;CP$UIDd;2;84E;K;17;CPControlValueKeyD;K;6;CP$UIDd;2;69E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;141E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;142E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;93E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;143E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;2;69E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;82E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;84E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;69E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;1;0E;E;D;K;10;$classnameS;18;CPSegmentedControlK;8;$classesA;S;18;CPSegmentedControlS;9;CPControlS;6;CPViewS;11;CPResponderS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;46E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;28E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;144E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;145E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;28E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;2;76E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;146E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;6;$afontD;K;6;CP$UIDd;3;140E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;69E;K;11;$aalignmentD;K;6;CP$UIDd;2;84E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;K;29;CPSegmentedControlSegmentsKeyD;K;6;CP$UIDd;3;147E;K;29;CPSegmentedControlSelectedKeyD;K;6;CP$UIDd;2;69E;K;33;CPSegmentedControlSegmentStyleKeyD;K;6;CP$UIDd;3;148E;K;33;CPSegmentedControlTrackingModeKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;149E;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;2;49E;K;28;CPObjectControllerContentKeyD;K;6;CP$UIDd;1;0E;K;36;CPObjectControllerObjectClassNameKeyD;K;6;CP$UIDd;3;150E;K;31;CPObjectControllerIsEditableKeyD;K;6;CP$UIDd;2;82E;K;49;CPObjectControllerAutomaticallyPreparesContentKeyD;K;6;CP$UIDd;2;93E;K;37;CPArrayControllerAvoidsEmptySelectionD;K;6;CP$UIDd;2;82E;K;49;CPArrayControllerClearsFilterPredicateOnInsertionD;K;6;CP$UIDd;2;82E;K;41;CPArrayControllerFilterRestrictsInsertionD;K;6;CP$UIDd;2;82E;K;35;CPArrayControllerPreservesSelectionD;K;6;CP$UIDd;2;82E;K;39;CPArrayControllerSelectsInsertedObjectsD;K;6;CP$UIDd;2;82E;K;47;CPArrayControllerAlwaysUsesMultipleValuesMarkerD;K;6;CP$UIDd;2;93E;K;47;CPArrayControllerAutomaticallyRearrangesObjectsD;K;6;CP$UIDd;2;93E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;26E;E;E;S;8;delegateS;15;arrayControllerS;9;tableViewS;9;theWindowS;11;logContent:S;14;selectSegment:S;21;contentArray: contentS;12;contentArrayS;7;contentD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;62E;K;10;CP.objectsD;E;E;S;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{547, 308}, {728, 366}}d;1;7S;6;Windowd;1;0S;20;{{0, 0}, {728, 366}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;30E;D;K;6;CP$UIDd;2;43E;D;K;6;CP$UIDd;2;45E;D;K;6;CP$UIDd;2;47E;E;E;S;6;normalS;22;{{20, 81}, {239, 246}}S;20;{{0, 0}, {239, 246}}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;41E;D;K;6;CP$UIDd;2;38E;D;K;6;CP$UIDd;2;80E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;83E;E;E;d;2;36S;10;scrollviewD;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;2;78E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;151E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;2;85E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;152E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;117E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;153E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;32E;E;D;K;6;$classD;K;6;CP$UIDd;2;78E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;154E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;155E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;156E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;117E;K;21;CPViewBackgroundColorD;K;6;CP$UIDd;3;153E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;24;CPScrollViewDocumentViewD;K;6;CP$UIDd;2;40E;E;d;2;10T;D;K;6;$classD;K;6;CP$UIDd;2;27E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;E;d;1;2S;20;{{0, 0}, {237, 228}}D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;86E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;158E;E;S;9;tableviewD;K;6;$classD;K;6;CP$UIDd;2;86E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;159E;E;d;1;4d;2;23S;6;{3, 2}F;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;36E;D;K;6;CP$UIDd;2;34E;D;K;6;CP$UIDd;2;35E;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;2;95E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;2;30E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;2;69E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;160E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;161E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;2;30E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;117E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;162E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;E;S;8;checkboxd;2;85d;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;101E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;163E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;164E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;16;$atext-alignmentD;K;6;CP$UIDd;2;90E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;165E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;133E;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;3;103E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;166E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;15;$aimage-scalingD;K;6;CP$UIDd;2;84E;K;16;$aimage-positionD;K;6;CP$UIDd;2;84E;K;20;$avertical-alignmentD;K;6;CP$UIDd;2;84E;K;11;$aalignmentD;K;6;CP$UIDd;2;90E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;167E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;142E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;93E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;148E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;148E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;82E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;84E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;69E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;169E;E;d;1;3S;4;textd;2;80f;22;3.4028234663852886e+38D;K;6;$classD;K;6;CP$UIDd;3;101E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;170E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;164E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;16;$atext-alignmentD;K;6;CP$UIDd;2;69E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;171E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;133E;E;D;K;6;$classD;K;6;CP$UIDd;2;42E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;131E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;172E;K;6;$afontD;K;6;CP$UIDd;3;174E;K;17;$aline-break-modeD;K;6;CP$UIDd;2;90E;K;20;$avertical-alignmentD;K;6;CP$UIDd;2;84E;K;11;$aalignmentD;K;6;CP$UIDd;2;69E;K;15;$acontent-insetD;K;6;CP$UIDd;3;176E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;142E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;135E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;1;0E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;1;0E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;1;0E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;2;90E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;2;69E;K;31;CPTextFieldPlaceholderStringKeyD;K;6;CP$UIDd;3;142E;E;S;6;buttond;2;60D;K;6;$classD;K;6;CP$UIDd;3;101E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;177E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;164E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;K;16;$atext-alignmentD;K;6;CP$UIDd;2;84E;K;38;_CPTableColumnHeaderViewStringValueKeyD;K;6;CP$UIDd;3;178E;K;32;_CPTableColumnHeaderViewImageKeyD;K;6;CP$UIDd;1;0E;K;31;_CPTableColumnHeaderViewFontKeyD;K;6;CP$UIDd;3;133E;E;D;K;6;$classD;K;6;CP$UIDd;2;44E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;179E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;180E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;111E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;139E;K;15;$aimage-scalingD;K;6;CP$UIDd;2;84E;K;16;$aimage-positionD;K;6;CP$UIDd;2;69E;K;20;$avertical-alignmentD;K;6;CP$UIDd;2;84E;K;11;$aalignmentD;K;6;CP$UIDd;2;84E;K;7;$aimageD;K;6;CP$UIDd;3;181E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;2;90E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;182E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;183E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;2;93E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;143E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;184E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;2;82E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;2;69E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;2;69E;K;24;CPButtonPeriodicDelayKeyD;K;6;CP$UIDd;3;168E;K;27;CPButtonPeriodicIntervalKeyD;K;6;CP$UIDd;3;169E;E;S;19;{{1, 1}, {280, 15}}S;19;{{0, 0}, {280, 15}}d;1;8d;11;-2147483648S;8;scrollerS;29;_horizontalScrollerDidScroll:f;18;0.9916317991631799S;19;{{0, 0}, {237, 23}}S;14;tableHeaderRowS;23;{{224, 127}, {15, 102}}S;19;{{0, 0}, {15, 102}}S;17;disabled+verticalS;27;_verticalScrollerDidScroll:f;18;0.9342105263157895S;23;{{294, 129}, {371, 99}}S;19;{{0, 0}, {371, 99}}S;9;textfieldD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;132E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;185E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;184E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;93E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;93E;E;S;164;Steps: In the table, Edit a CPTextField or click a CPButton . + Log Model and see the result in the console. + +Expected: The model should reflect UI changes.d;4;3072D;K;6;$classD;K;6;CP$UIDd;2;86E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;186E;E;S;22;{{295, 79}, {166, 24}}S;19;{{0, 0}, {166, 24}}S;8;borderedD;K;6;$classD;K;6;CP$UIDd;3;132E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;185E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;184E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;82E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;93E;E;S;9;Log ModelS;0;d;2;14S;22;{{272, 19}, {177, 24}}S;19;{{0, 0}, {177, 24}}S;17;segmented-controlD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;189E;E;E;d;1;1S;13;AppControllerS;19;CPMutableDictionaryS;20;{{1, 1}, {237, 228}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;32E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;86E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;190E;E;S;21;{{1, 229}, {237, 17}}S;19;{{0, 0}, {237, 17}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;40E;E;E;S;16;{{0, 0}, {0, 0}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;148E;E;E;S;22;{{224, 223}, {16, 23}}S;18;{{0, 0}, {16, 23}}S;10;cornerviewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;193E;E;E;S;12;columnHeaderS;9;Check BoxS;9;check-boxS;5;Checkf;3;0.5f;4;0.05D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;194E;E;E;S;10;Text FieldS;11;placeholderD;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;173E;K;4;nameD;K;6;CP$UIDd;3;195E;K;12;defaultValueD;K;6;CP$UIDd;3;133E;K;6;valuesD;K;6;CP$UIDd;3;196E;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;175E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;197E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;198E;E;E;S;6;ButtonS;19;{{4, 6}, {-12, 24}}S;19;{{0, 0}, {-12, 24}}D;K;6;$classD;K;6;CP$UIDd;3;173E;K;4;nameD;K;6;CP$UIDd;3;199E;K;12;defaultValueD;K;6;CP$UIDd;1;0E;K;5;stateD;K;6;CP$UIDd;3;200E;K;5;valueD;K;6;CP$UIDd;3;201E;E;S;2;OnS;3;Offd;2;12S;17;Arial, sans-serifD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;148E;E;E;D;K;10;$classnameS;14;_CPSegmentItemK;8;$classesA;S;14;_CPSegmentItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;187E;K;21;CPSegmentItemImageKeyD;K;6;CP$UIDd;1;0E;K;21;CPSegmentItemLabelKeyD;K;6;CP$UIDd;3;203E;K;20;CPSegmentItemMenuKeyD;K;6;CP$UIDd;1;0E;K;24;CPSegmentItemSelectedKeyD;K;6;CP$UIDd;2;82E;K;23;CPSegmentItemEnabledKeyD;K;6;CP$UIDd;2;82E;K;19;CPSegmentItemTagKeyD;K;6;CP$UIDd;2;69E;K;21;CPSegmentItemWidthKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;3;187E;K;21;CPSegmentItemImageKeyD;K;6;CP$UIDd;1;0E;K;21;CPSegmentItemLabelKeyD;K;6;CP$UIDd;3;204E;K;20;CPSegmentItemMenuKeyD;K;6;CP$UIDd;1;0E;K;24;CPSegmentItemSelectedKeyD;K;6;CP$UIDd;2;93E;K;23;CPSegmentItemEnabledKeyD;K;6;CP$UIDd;2;82E;K;19;CPSegmentItemTagKeyD;K;6;CP$UIDd;3;148E;K;21;CPSegmentItemWidthKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;148E;E;E;f;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;192E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;102E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;102E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;205E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;109E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;109E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;205E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;E;S;4;fontD;K;6;$classD;K;6;CP$UIDd;2;62E;K;10;CP.objectsD;K;21;selectedTableDataViewD;K;6;CP$UIDd;3;140E;K;6;normalD;K;6;CP$UIDd;3;133E;E;E;S;39;{"top":0,"right":5,"bottom":0,"left":5}D;K;6;$classD;K;6;CP$UIDd;3;192E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;113E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;157E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;157E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;113E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;205E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;2;72E;E;S;5;imageS;11;highlightedD;K;6;$classD;K;6;CP$UIDd;3;132E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;206E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;207E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;93E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;2;93E;E;f;18;0.6862745098039216S;8;BindingsS;11;Data Sourced;2;18S;13;Lucida Granded;2;13E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/TableTest/EditingControls/Resources/MainMenu.xib b/Tests/Manual/TableTest/EditingControls/Resources/MainMenu.xib new file mode 100644 index 000000000..362d8f7e2 --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/Resources/MainMenu.xib @@ -0,0 +1,759 @@ + + + + 1070 + 11E53 + 2809 + 1138.47 + 569.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 2809 + + + NSArrayController + NSButton + NSButtonCell + NSCustomObject + NSScrollView + NSScroller + NSSegmentedCell + NSSegmentedControl + NSTableColumn + NSTableHeaderView + NSTableView + NSTextField + NSTextFieldCell + NSView + NSWindowTemplate + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + NSApplication + + + FirstResponder + + + NSApplication + + + 7 + 2 + {{547, 354}, {728, 366}} + 1954021376 + Window + NSWindow + + + + + 256 + + + + 268 + + + + 2304 + + + + 256 + {237, 228} + + + + _NS:13 + YES + + + 256 + {237, 17} + + + + _NS:16 + + + + + -2147483392 + {{224, 0}, {16, 17}} + + + + _NS:19 + + + + button + 60 + 10 + 3.4028234663852886e+38 + + 75628096 + 2048 + Button + + LucidaGrande + 11 + 3100 + + + 6 + System + headerColor + + 3 + MQA + + + + 6 + System + headerTextColor + + 3 + MAA + + + + + 67108864 + 134217728 + On + + LucidaGrande + 13 + 1044 + + _NS:9 + + -1229570048 + 1 + + Off + + 200 + 25 + + 3 + YES + YES + + + + checkbox + 85 + 40 + 1000 + + 75497536 + 2048 + Check Box + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 67108864 + 268435456 + Check + + _NS:9 + + 1211912448 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + 3 + YES + YES + + + + text + 80 + 10 + 3.4028234663852886e+38 + + 75628096 + 2048 + Text Field + + + + + + 337772096 + 2048 + Text Cell + + + + 6 + System + controlBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + + + 3 + YES + YES + + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 17 + -700448768 + + + 4 + 15 + 0 + YES + 0 + 1 + + + {{1, 17}, {237, 228}} + + + + _NS:11 + + + 4 + + + + -2147483392 + {{224, 17}, {15, 102}} + + + + _NS:58 + + _doScroller: + 0.93421052631578949 + + + + -2147483392 + {{1, 230}, {280, 15}} + + + + _NS:60 + YES + 1 + + _doScroller: + 0.99163179916317989 + + + + 2304 + + + + {{1, 0}, {237, 17}} + + + + _NS:15 + + + 4 + + + + {{20, 39}, {239, 246}} + + + + _NS:9 + 133810 + + + + + + QSAAAEEgAABBmAAAQZgAAA + + + + 268 + {{294, 138}, {371, 99}} + + + + _NS:1549 + YES + + 68157504 + 272630784 + U3RlcHM6IEluIHRoZSB0YWJsZSwgRWRpdCBhIENQVGV4dEZpZWxkIG9yIGNsaWNrIGEgQ1BCdXR0b24g +LgogICAgICAgICAgTG9nIE1vZGVsIGFuZCBzZWUgdGhlIHJlc3VsdCBpbiB0aGUgY29uc29sZS4KCkV4 +cGVjdGVkOiBUaGUgbW9kZWwgc2hvdWxkIHJlZmxlY3QgVUkgY2hhbmdlcy4 + + _NS:1549 + + + 6 + System + controlColor + + + + + + + + 268 + {{291, 257}, {178, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + Log Model + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + + + + 268 + {{276, 323}, {177, 24}} + + + + _NS:9 + YES + + 67108864 + 0 + + _NS:9 + + + + Bindings + YES + 0 + + + Data Source + 1 + 0 + + + 1 + + + + {728, 366} + + + + + {{0, 0}, {1680, 1028}} + {10000000000000, 10000000000000} + YES + + + AppController + + + YES + + YES + YES + YES + YES + YES + + + + + + + delegate + + + + 451 + + + + theWindow + + + + 459 + + + + logContent: + + + + 478 + + + + arrayController + + + + 493 + + + + tableView + + + + 494 + + + + selectSegment: + + + + 495 + + + + contentArray: content + + + + + + contentArray: content + contentArray + content + 2 + + + 473 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 371 + + + + + + + + 372 + + + + + + + + + + + 450 + + + + + 460 + + + + + + + + + + + 461 + + + + + + + + + + 462 + + + + + 463 + + + + + 464 + + + + + 465 + + + + + + + + 469 + + + + + + + + 470 + + + + + 471 + + + + + 472 + + + + + 476 + + + + + + + + 477 + + + + + 479 + + + + + + + + 480 + + + + + 491 + + + + + + + + 492 + + + + + 505 + + + + + + + + 507 + + + + + + + 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 + + + + + + 507 + + + + + AppController + NSObject + + id + id + + + + logContent: + id + + + selectSegment: + id + + + + NSArrayController + NSTableView + NSWindow + + + + arrayController + NSArrayController + + + tableView + NSTableView + + + theWindow + NSWindow + + + + IBProjectSource + ./Classes/AppController.h + + + + + 0 + IBCocoaFramework + YES + 3 + + NSSwitch + {15, 15} + + + diff --git a/Tests/Manual/TableTest/EditingControls/Resources/spinner.gif b/Tests/Manual/TableTest/EditingControls/Resources/spinner.gif new file mode 100644 index 0000000000000000000000000000000000000000..06dbc2bc21dddcf0e09b566d5b211aee89570f52 GIT binary patch literal 1849 zcma*odr(tX9tZHtz31lM+(&Y`A`Ou`NeG&R#DrIfV%?hng21vs6v>ooRQQFbk7E_K!V( z{?5!fpZWgIZ%*d6t%i*j24bL}AZUJm9)h6R*;%L4IWse3G#VWaN1#$zSSXcBhlYlH zJ|D}n{r&w2f+Qp)SS*&n?*G4}{}!h?td_mjU6Kad-rW*QwWYCUk7d^e+sjpZAn6kT z5rM;`{~_}-wm+L@%+E;JphLm}C3WzQAQD0wBoY|rOTQX{(@pp-WAA8Iw0HKl|15j) zhGh(SFWu#5zUCw^T!}C~eC}~?{xG-r7ugQC>taC+|L^xr&a%{#cgUOZXIM&v?)k^2 z1i5%0!U00wq)r4vlAwXBA_m5J5WNeuBm-XJQ5pG4GD%vc|K){+TJ{AkHqN@SJKczX zU}QRd9n*_bf^h94)6Ctv{CUfz_;qs#RDuQ$DR%y1&5G-a6rhf*4Y zl+UOD1*GE{GQ7vv;c-tTIMkz0ovO>9j%b5hpa@a*CBJ#W!0@ndSwF|%hMkdFtXiU) z`BEp+yhkt8ZY>tg&uyH@%^%K4jDrbA;et&vnnzZ3z22@e6<27z2Vk13kb7OtISyxv z(XoO-LNQCZe3lfzc%*pNqU<9T+p~teThOEB+~e&U0mC|zS{Q)dJZ)!^1f7L(zg*L> z*vSW%?dR~@@0(}x6-V^A`~ImD;)NaBUnP8;RH=bS2@pk`wp>>8r&jGjmGPy%1BW}v zoPo}ca$~bze@efc3kapuEVW1!%teOZT3j2Tw5=hjiAf02d}7dL0oFC%@=RXp5Ow#% z@a>+AM|YWt$n&e`>sB-32gBcuTi>R>*|8@lp`y6thc7ydyqDsuUn~YzZf|{-R@-3y zL#wx{Ii}xxL_csiW*LBn0-A$>zp4WOmkf6=ilrjlW?-l9+bCd7|i?*b5NTmy<<6NZ0T8$SN@mwdC2f z6jqK=N@bS@!=YSj%>h0}*4p+%0HbTIrE$w7UMT6+AZZ&DAo*qZAAi(OtNbIfl#Dw^ zJWeiCp~zi#&t6x}m9)O^eR4HiLV3QA<<0>HZ8%$^lrSE94Wb}=+MM^!b>n#5&-JQR zkr-CEu9C;_F*7DqDisulV6Pmg$nFL0TPn%~*m^-`Z3^BgU(sNpnx%nW(!eV9A&FvI zHL3X3lw8Wji^6=8KbQDE-e%b?svdFxxdh$8r97@7$ojeI`6AL8Ob6QC$qh&>ZWVDX1F{0vJnT%%mE;GveKWR%C} zM&4d;Jf3s9|HAA)yVUPo`Aq;0do#)uHSXi5*QF*)x@MVVHr+cN)uMZ__F|&Ta#p8d z53TOKtce!PJUuie8UWol-S(`c2nH?UGqJP{!4RR4u$LCfn)q-hj0^f=h(VYy)T6eN zhRO!ja-aDBTcgeyP(8Ua4IdiOog^*CQa?R(cP#9AgL9`j>EX-6Yf1lzX(!~``M1XC zNmM<4<6d~wWZ$Xrk0K}UteTrq@LBBk#MsjkK;pbuVhe)NI7(7Pf(l?lxC7=1Z7Pzl zMbS;nV4NI5_N{1$P)&XC)huOGQ+h^zpYUZfb*1n6>!`#*b3y52LGmi+<4sY5jyD#- zw&$d}DTguLAfnRtjrM*JfqtHqUu6rQoU=g%1E9xk%;)TDm^2<8n-0IhTsQFaek)MY}>PK4;nBk=ow4pF>vzkO& gna%Org-kgQCf=+BeMi^RbuY;YE~rTjend;_cdi8t>i_@% literal 0 HcmV?d00001 diff --git a/Tests/Manual/TableTest/EditingControls/index-debug.html b/Tests/Manual/TableTest/EditingControls/index-debug.html new file mode 100644 index 000000000..2d6241861 --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/index-debug.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + issue1593 + + + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/TableTest/EditingControls/index.html b/Tests/Manual/TableTest/EditingControls/index.html new file mode 100644 index 000000000..6f2d2308d --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/index.html @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + issue1593 + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/TableTest/EditingControls/main.j b/Tests/Manual/TableTest/EditingControls/main.j new file mode 100644 index 000000000..ba6e0a66e --- /dev/null +++ b/Tests/Manual/TableTest/EditingControls/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * issue1593 + * + * Created by You on July 9, 2012. + * Copyright 2012, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +} From 2cf9fdf0d009276013b9e9842eb310e5f6231be1 Mon Sep 17 00:00:00 2001 From: cacaodev Date: Thu, 12 Jul 2012 16:29:01 +0200 Subject: [PATCH 084/109] Check for sendsActionOnEndEditing --- AppKit/CPTableView.j | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AppKit/CPTableView.j b/AppKit/CPTableView.j index f403f3905..c4ae1ac97 100644 --- a/AppKit/CPTableView.j +++ b/AppKit/CPTableView.j @@ -3395,7 +3395,7 @@ Your delegate can implement this method to avoid subclassing the tableview to ad If the dataview resigning triggers the action (as CPTextField does), we come right back here and start an infinite loop. So we have to check this flag first. */ - if ([sender isKindOfClass:[CPTextField class]] && _editingCellIndex === nil) + if ([sender respondsToSelector:@selector(sendsActionOnEndEditing)] && [sender sendsActionOnEndEditing] && _editingCellIndex === nil) return; _editingCellIndex = nil; From dd686a0fca0b41825b3abb1023dfc9953694b60b Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Fri, 13 Jul 2012 18:23:08 -0700 Subject: [PATCH 085/109] Fixed spelling error in test app --- .../AppController.j | 0 .../Info.plist | 2 +- .../Jakefile | 30 +++++++++--------- .../Resources/MainMenu.cib | 2 +- .../Resources/MainMenu.xib | 0 .../Resources/spinner.gif | Bin .../index-debug.html | 2 +- .../index.html | 2 +- .../main.j | 0 9 files changed, 19 insertions(+), 19 deletions(-) rename Tests/Manual/{Nib2CibAligment => Nib2CibAlignment}/AppController.j (100%) rename Tests/Manual/{Nib2CibAligment => Nib2CibAlignment}/Info.plist (88%) rename Tests/Manual/{Nib2CibAligment => Nib2CibAlignment}/Jakefile (62%) rename Tests/Manual/{Nib2CibAligment => Nib2CibAlignment}/Resources/MainMenu.cib (55%) rename Tests/Manual/{Nib2CibAligment => Nib2CibAlignment}/Resources/MainMenu.xib (100%) rename Tests/Manual/{Nib2CibAligment => Nib2CibAlignment}/Resources/spinner.gif (100%) rename Tests/Manual/{Nib2CibAligment => Nib2CibAlignment}/index-debug.html (99%) rename Tests/Manual/{Nib2CibAligment => Nib2CibAlignment}/index.html (98%) rename Tests/Manual/{Nib2CibAligment => Nib2CibAlignment}/main.j (100%) diff --git a/Tests/Manual/Nib2CibAligment/AppController.j b/Tests/Manual/Nib2CibAlignment/AppController.j similarity index 100% rename from Tests/Manual/Nib2CibAligment/AppController.j rename to Tests/Manual/Nib2CibAlignment/AppController.j diff --git a/Tests/Manual/Nib2CibAligment/Info.plist b/Tests/Manual/Nib2CibAlignment/Info.plist similarity index 88% rename from Tests/Manual/Nib2CibAligment/Info.plist rename to Tests/Manual/Nib2CibAlignment/Info.plist index 7dd824f3a..e41fd81c5 100644 --- a/Tests/Manual/Nib2CibAligment/Info.plist +++ b/Tests/Manual/Nib2CibAlignment/Info.plist @@ -5,6 +5,6 @@ Main cib file base name MainMenu.cib CPBundleName - test2 + nib2cibAlignment diff --git a/Tests/Manual/Nib2CibAligment/Jakefile b/Tests/Manual/Nib2CibAlignment/Jakefile similarity index 62% rename from Tests/Manual/Nib2CibAligment/Jakefile rename to Tests/Manual/Nib2CibAlignment/Jakefile index 532880c47..783724dc9 100644 --- a/Tests/Manual/Nib2CibAligment/Jakefile +++ b/Tests/Manual/Nib2CibAlignment/Jakefile @@ -1,6 +1,6 @@ /* * Jakefile - * test2 + * nib2cibAlignment * * Created by You on May 17, 2011. * Copyright 2011, Your Company All rights reserved. @@ -15,17 +15,17 @@ var ENV = require("system").env, configuration = ENV["CONFIG"] || ENV["CONFIGURATION"] || ENV["c"] || "Debug", OS = require("os"); -app ("test2", function(task) +app ("nib2cibAlignment", function(task) { - task.setBuildIntermediatesPath(FILE.join("Build", "test2.build", configuration)); + task.setBuildIntermediatesPath(FILE.join("Build", "nib2cibAlignment.build", configuration)); task.setBuildPath(FILE.join("Build", configuration)); - task.setProductName("test2"); - task.setIdentifier("com.yourcompany.test2"); + task.setProductName("nib2cibAlignment"); + task.setIdentifier("com.yourcompany.nib2cibAlignment"); task.setVersion("1.0"); task.setAuthor("Your Company"); task.setEmail("feedback @nospam@ yourcompany.com"); - task.setSummary("test2"); + task.setSummary("nib2cibAlignment"); task.setSources((new FileList("**/*.j")).exclude(FILE.join("Build", "**"))); task.setResources(new FileList("Resources/**")); task.setIndexFilePath("index.html"); @@ -38,7 +38,7 @@ app ("test2", function(task) task.setCompilerFlags("-O"); }); -task ("default", ["test2"], function() +task ("default", ["nib2cibAlignment"], function() { printResults(configuration); }); @@ -59,36 +59,36 @@ task ("release", function() task ("run", ["debug"], function() { - OS.system(["open", FILE.join("Build", "Debug", "test2", "index.html")]); + OS.system(["open", FILE.join("Build", "Debug", "nib2cibAlignment", "index.html")]); }); task ("run-release", ["release"], function() { - OS.system(["open", FILE.join("Build", "Release", "test2", "index.html")]); + OS.system(["open", FILE.join("Build", "Release", "nib2cibAlignment", "index.html")]); }); task ("deploy", ["release"], function() { - FILE.mkdirs(FILE.join("Build", "Deployment", "test2")); - OS.system(["press", "-f", FILE.join("Build", "Release", "test2"), FILE.join("Build", "Deployment", "test2")]); + FILE.mkdirs(FILE.join("Build", "Deployment", "nib2cibAlignment")); + OS.system(["press", "-f", FILE.join("Build", "Release", "nib2cibAlignment"), FILE.join("Build", "Deployment", "nib2cibAlignment")]); printResults("Deployment") }); task ("desktop", ["release"], function() { - FILE.mkdirs(FILE.join("Build", "Desktop", "test2")); - require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "test2"), FILE.join("Build", "Desktop", "test2", "test2.app")); + FILE.mkdirs(FILE.join("Build", "Desktop", "nib2cibAlignment")); + require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "nib2cibAlignment"), FILE.join("Build", "Desktop", "nib2cibAlignment", "nib2cibAlignment.app")); printResults("Desktop") }); task ("run-desktop", ["desktop"], function() { - OS.system([FILE.join("Build", "Desktop", "test2", "test2.app", "Contents", "MacOS", "NativeHost"), "-i"]); + OS.system([FILE.join("Build", "Desktop", "nib2cibAlignment", "nib2cibAlignment.app", "Contents", "MacOS", "NativeHost"), "-i"]); }); function printResults(configuration) { print("----------------------------"); - print(configuration+" app built at path: "+FILE.join("Build", configuration, "test2")); + print(configuration+" app built at path: "+FILE.join("Build", configuration, "nib2cibAlignment")); print("----------------------------"); } diff --git a/Tests/Manual/Nib2CibAligment/Resources/MainMenu.cib b/Tests/Manual/Nib2CibAlignment/Resources/MainMenu.cib similarity index 55% rename from Tests/Manual/Nib2CibAligment/Resources/MainMenu.cib rename to Tests/Manual/Nib2CibAlignment/Resources/MainMenu.cib index b6ce9a57a..08de4e205 100644 --- a/Tests/Manual/Nib2CibAligment/Resources/MainMenu.cib +++ b/Tests/Manual/Nib2CibAlignment/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;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;D;K;6;CP$UIDd;2;57E;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;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;79E;D;K;6;CP$UIDd;2;81E;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;128E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;131E;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;3;138E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;150E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;156E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;176E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;180E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;3;199E;D;K;6;CP$UIDd;3;200E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;208E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;211E;D;K;6;CP$UIDd;3;212E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;213E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;214E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;215E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;216E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;217E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;218E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;219E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;220E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;222E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;223E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;224E;D;K;6;CP$UIDd;3;225E;D;K;6;CP$UIDd;3;226E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;227E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;228E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;229E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;230E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;231E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;232E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;233E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;234E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;235E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;236E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;237E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;238E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;239E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;240E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;241E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;242E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;243E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;244E;D;K;6;CP$UIDd;3;245E;D;K;6;CP$UIDd;3;246E;D;K;6;CP$UIDd;3;247E;D;K;6;CP$UIDd;3;248E;D;K;6;CP$UIDd;3;249E;D;K;6;CP$UIDd;3;250E;D;K;6;CP$UIDd;3;251E;D;K;6;CP$UIDd;3;252E;D;K;6;CP$UIDd;3;253E;D;K;6;CP$UIDd;3;254E;D;K;6;CP$UIDd;3;255E;D;K;6;CP$UIDd;3;256E;D;K;6;CP$UIDd;3;257E;D;K;6;CP$UIDd;3;258E;D;K;6;CP$UIDd;3;259E;D;K;6;CP$UIDd;3;260E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;261E;D;K;6;CP$UIDd;3;263E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;265E;D;K;6;CP$UIDd;3;266E;D;K;6;CP$UIDd;3;268E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;269E;D;K;6;CP$UIDd;3;270E;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;81E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;2;81E;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;3;107E;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;3;107E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;107E;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;3;118E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;134E;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;2;81E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;176E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;208E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;212E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;213E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;214E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;215E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;216E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;217E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;218E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;219E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;220E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;222E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;223E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;226E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;227E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;228E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;229E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;230E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;231E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;232E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;233E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;234E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;235E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;236E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;237E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;238E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;239E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;240E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;241E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;242E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;243E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;260E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;263E;D;K;6;CP$UIDd;3;270E;D;K;6;CP$UIDd;3;270E;D;K;6;CP$UIDd;3;270E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;268E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;263E;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;271E;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;272E;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;269E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;273E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;269E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;204E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;274E;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;17E;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;275E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;276E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;91E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;277E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;144E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;278E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;150E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;279E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;141E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;280E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;149E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;281E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;143E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;282E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;142E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;283E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;145E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;284E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;285E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;152E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;286E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;148E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;287E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;92E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;288E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;94E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;79E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;289E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;290E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;291E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;132E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;292E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;133E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;293E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;294E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;295E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;296E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;298E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;299E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;128E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;300E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;301E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;123E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;302E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;126E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;305E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;306E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;156E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;307E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;157E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;308E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;129E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;309E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;136E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;310E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;137E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;311E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;138E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;312E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;195E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;313E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;196E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;314E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;197E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;315E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;198E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;316E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;200E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;317E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;201E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;318E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;202E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;319E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;165E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;320E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;189E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;191E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;322E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;192E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;323E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;183E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;324E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;184E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;185E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;326E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;186E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;327E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;187E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;328E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;178E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;329E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;179E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;330E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;180E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;331E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;172E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;332E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;173E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;333E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;174E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;334E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;175E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;335E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;271E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;336E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;337E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;338E;E;D;K;10;$classnameS;10;CPMenuItemK;8;$classesA;S;10;CPMenuItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;339E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;84E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;339E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;342E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;343E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;84E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;347E;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;84E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;348E;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;84E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;349E;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;84E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;350E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;351E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;90E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;351E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;352E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;353E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;354E;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;90E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;355E;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;90E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;356E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;357E;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;90E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;358E;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;90E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;359E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;90E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;360E;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;90E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;361E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;90E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;90E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;362E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;100E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;90E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;362E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;363E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;364E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;90E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;365E;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;90E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;356E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;367E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;104E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;367E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;368E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;369E;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;104E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;370E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;371E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;107E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;371E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;372E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;373E;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;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;374E;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;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;375E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;376E;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;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;377E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;378E;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;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;379E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;380E;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;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;381E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;382E;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;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;383E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;384E;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;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;385E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;386E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;387E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;118E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;387E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;388E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;389E;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;390E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;118E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;391E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;386E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;392E;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;393E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;118E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;396E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;397E;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;398E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;118E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;399E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;400E;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;401E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;118E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;402E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;403E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;125E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;403E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;404E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;405E;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;125E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;406E;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;125E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;407E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;408E;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;125E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;409E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;410E;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;125E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;411E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;131E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;411E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;412E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;413E;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;131E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;414E;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;131E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;415E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;135E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;415E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;416E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;417E;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;401E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;135E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;402E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;418E;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;398E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;135E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;399E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;419E;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;390E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;135E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;391E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;386E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;420E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;140E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;420E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;421E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;422E;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;140E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;423E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;424E;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;140E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;425E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;386E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;426E;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;140E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;427E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;428E;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;140E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;429E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;430E;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;140E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;431E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;432E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;147E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;140E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;432E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;433E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;434E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;435E;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;147E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;436E;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;140E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;437E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;386E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;438E;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;140E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;439E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;140E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;440E;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;140E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;140E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;441E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;155E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;441E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;442E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;443E;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;155E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;444E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;445E;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;155E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;446E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;159E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;446E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;447E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;448E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;161E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;159E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;448E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;449E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;450E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;451E;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;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;444E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;452E;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;398E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;453E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;454E;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;401E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;455E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;456E;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;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;457E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;458E;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;390E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;459E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;460E;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;461E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;462E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;463E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;171E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;463E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;464E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;465E;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;171E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;466E;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;171E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;467E;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;171E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;468E;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;171E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;469E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;177E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;469E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;470E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;465E;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;177E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;466E;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;177E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;471E;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;177E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;472E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;182E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;472E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;473E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;465E;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;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;474E;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;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;475E;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;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;476E;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;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;477E;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;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;478E;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;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;479E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;480E;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;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;383E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;481E;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;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;381E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;482E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;194E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;159E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;482E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;483E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;484E;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;194E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;485E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;486E;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;194E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;487E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;488E;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;194E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;489E;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;194E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;490E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;194E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;491E;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;194E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;492E;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;194E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;383E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;493E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;494E;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;194E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;381E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;493E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;203E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;495E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;496E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;497E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;395E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;339E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;206E;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;205E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;499E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;500E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;501E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;503E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;510E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;511E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;512E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;513E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;515E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;519E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;512E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;513E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;520E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;521E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;522E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;523E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;524E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;525E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;526E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;527E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;528E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;529E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;524E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;530E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;531E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;532E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;533E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;534E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;532E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;535E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;536E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;537E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;532E;K;6;$afontD;K;6;CP$UIDd;3;524E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;538E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;398E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;539E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;540E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;532E;K;6;$afontD;K;6;CP$UIDd;3;541E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;538E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;398E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;542E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;540E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;541E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;525E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;543E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;540E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;544E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;528E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;545E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;540E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;546E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;522E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;547E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;540E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;546E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;510E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;548E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;512E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;549E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;550E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;551E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;512E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;549E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;552E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;553E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;540E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;541E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;530E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;554E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;540E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;532E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;546E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;533E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;555E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;540E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;532E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;556E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;536E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;557E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;558E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;532E;K;6;$afontD;K;6;CP$UIDd;3;546E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;538E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;398E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;559E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;558E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;546E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;525E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;560E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;558E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;561E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;528E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;562E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;558E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;563E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;522E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;564E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;558E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;563E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;510E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;565E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;558E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;546E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;530E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;566E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;558E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;532E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;563E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;533E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;567E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;558E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;532E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;568E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;536E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;569E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;570E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;532E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;538E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;398E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;571E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;570E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;525E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;572E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;570E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;573E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;528E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;574E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;570E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;541E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;510E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;575E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;570E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;530E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;576E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;570E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;532E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;541E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;533E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;577E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;570E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;532E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;578E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;536E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;579E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;581E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;582E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;583E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;581E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;584E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;585E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;581E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;586E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;587E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;581E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;588E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;589E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;581E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;590E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;591E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;581E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;592E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;593E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;581E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;594E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;595E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;581E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;596E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;597E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;598E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;599E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;600E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;598E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;601E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;602E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;598E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;603E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;604E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;598E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;605E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;606E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;598E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;607E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;608E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;598E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;609E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;610E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;598E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;611E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;612E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;598E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;613E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;E;D;K;6;$classD;K;6;CP$UIDd;3;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;614E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;570E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;541E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;522E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;615E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;580E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;581E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;616E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;516E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;517E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;518E;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;3;262E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;3;270E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;617E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;540E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;618E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;532E;K;6;$afontD;K;6;CP$UIDd;3;563E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;461E;K;11;$aalignmentD;K;6;CP$UIDd;3;498E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;1;0E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;1;0E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;398E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;619E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;263E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;620E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;401E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;270E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;621E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;263E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;620E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;270E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;622E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;263E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;620E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;270E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;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;267E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;623E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;624E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;625E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;626E;K;6;$afontD;K;6;CP$UIDd;3;627E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;398E;K;11;$aalignmentD;K;6;CP$UIDd;3;461E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;344E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;345E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;628E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;344E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;344E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;344E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;629E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;398E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;461E;K;31;CPTextFieldPlaceholderStringKeyD;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;630E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;631E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;632E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;204E;E;E;S;8;delegateS;9;theWindowS;15;arrangeInFront:S;19;performMiniaturize:S;29;orderFrontStandardAboutPanel:S;13;openDocument:S;13;performClose:S;13;saveDocument:S;14;runPageLayout:S;6;print:S;15;saveDocumentAs:S;12;newDocument:S;9;showHelp:S;22;revertDocumentToSaved:S;21;clearRecentDocuments:S;5;hide:S;10;terminate:S;22;hideOtherApplications:S;22;unhideAllApplications: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;10;alignLeft:S;12;alignCenter:S;15;alignJustified:S;11;alignRight:S;12;toggleRuler:S;10;copyRuler:S;11;pasteRuler:S;10;underline:S;21;orderFrontColorPanel:S;9;copyFont:S;10;pasteFont:S;9;unscript:S;12;superscript:S;10;subscript:S;14;raiseBaseline:S;14;lowerBaseline:S;21;useStandardLigatures:S;17;turnOffLigatures:S;16;useAllLigatures:S;19;useStandardKerning:S;15;turnOffKerning:S;15;tightenKerning:S;14;loosenKerning:S;9;AMainMenuS;11;_CPMainMenuD;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;3;139E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;3;103E;E;E;S;6;WindowS;14;submenuAction:d;7;1048576S;14;_CPWindowsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;E;E;T;S;0;F;S;18;Bring All to FrontS;4;ZoomS;8;MinimizeS;1;mS;14;NewApplicationS;18;_CPApplicationMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;2;94E;E;E;S;20;About NewApplicationS;19;Hide NewApplicationS;1;hS;8;Show AllS;19;Quit NewApplicationS;1;qS;12;Preferences…S;1;,S;8;ServicesS;15;_CPServicesMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;11;Hide Othersd;7;1572864S;4;HelpD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;105E;E;E;S;19;NewApplication HelpS;1;?S;4;EditD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;130E;E;E;S;6;DeleteS;10;Select AllS;1;aS;4;UndoS;1;zS;3;CutS;1;xS;5;PasteS;1;vS;4;CopyS;1;cS;4;RedoS;1;Zd;7;1179648S;4;FindD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;120E;E;E;S;13;Find Previousd;1;3S;1;GS;17;Jump to SelectionS;1;jS;22;Use Selection for Findd;1;7S;1;eS;9;Find Nextd;1;2S;1;gS;5;Find…d;1;1S;1;fS;20;Spelling and GrammarD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;129E;E;E;S;27;Check Spelling While TypingS;14;Check SpellingS;1;;S;14;Show Spelling…S;1;:S;27;Check Grammar With SpellingS;6;SpeechD;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;132E;E;E;S;13;Stop SpeakingS;14;Start SpeakingS;13;SubstitutionsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;138E;E;E;S;16;Smart Copy/PasteS;12;Smart QuotesS;11;Smart LinksS;4;FileD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;150E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;143E;E;E;S;4;SaveS;1;sS;8;Save As…S;1;SS;6;Print…S;1;pS;5;Open…S;1;oS;3;NewS;1;nS;11;Open RecentS;22;_CPRecentDocumentsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;148E;E;E;S;10;Clear MenuS;13;Page Setup...S;1;PS;5;CloseS;1;wS;15;Revert to SavedS;4;ViewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;156E;D;K;6;CP$UIDd;3;157E;E;E;S;12;Show ToolbarS;1;tS;18;Customize Toolbar…S;6;FormatD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;193E;E;E;S;4;FontS;11;_CPFontMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;176E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;192E;E;E;S;10;Show FontsS;4;BoldS;1;bS;6;ItalicS;1;iS;9;UnderlineS;1;uS;6;BiggerS;1;+S;7;Smallerd;1;4S;1;-S;4;KernD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;E;E;S;11;Use DefaultS;8;Use NoneS;7;TightenS;6;LoosenS;8;LigatureD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;180E;E;E;S;7;Use AllS;8;BaselineD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;187E;E;E;S;11;SuperscriptS;9;SubscriptS;5;RaiseS;5;LowerS;11;Show ColorsS;1;CS;10;Copy StyleS;11;Paste StyleS;4;TextD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;3;199E;D;K;6;CP$UIDd;3;200E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;202E;E;E;S;10;Align LeftS;1;{S;6;CenterS;1;|S;7;JustifyS;11;Align RightS;1;}S;10;Show RulerS;10;Copy Rulerd;7;1310720S;11;Paste RulerS;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{335, -79}, {870, 717}}d;1;0S;21;{{7, 11}, {870, 717}}S;20;{{0, 0}, {870, 717}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;218E;D;K;6;CP$UIDd;3;213E;D;K;6;CP$UIDd;3;214E;D;K;6;CP$UIDd;3;212E;D;K;6;CP$UIDd;3;208E;D;K;6;CP$UIDd;3;215E;D;K;6;CP$UIDd;3;216E;D;K;6;CP$UIDd;3;217E;D;K;6;CP$UIDd;3;237E;D;K;6;CP$UIDd;3;238E;D;K;6;CP$UIDd;3;239E;D;K;6;CP$UIDd;3;260E;D;K;6;CP$UIDd;3;240E;D;K;6;CP$UIDd;3;241E;D;K;6;CP$UIDd;3;242E;D;K;6;CP$UIDd;3;243E;D;K;6;CP$UIDd;3;219E;D;K;6;CP$UIDd;3;220E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;3;222E;D;K;6;CP$UIDd;3;223E;D;K;6;CP$UIDd;3;226E;D;K;6;CP$UIDd;3;227E;D;K;6;CP$UIDd;3;228E;D;K;6;CP$UIDd;3;229E;D;K;6;CP$UIDd;3;230E;D;K;6;CP$UIDd;3;231E;D;K;6;CP$UIDd;3;232E;D;K;6;CP$UIDd;3;233E;D;K;6;CP$UIDd;3;234E;D;K;6;CP$UIDd;3;235E;D;K;6;CP$UIDd;3;236E;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;211E;D;K;6;CP$UIDd;3;224E;D;K;6;CP$UIDd;3;225E;D;K;6;CP$UIDd;3;244E;D;K;6;CP$UIDd;3;245E;D;K;6;CP$UIDd;3;246E;D;K;6;CP$UIDd;3;247E;D;K;6;CP$UIDd;3;248E;D;K;6;CP$UIDd;3;249E;D;K;6;CP$UIDd;3;250E;D;K;6;CP$UIDd;3;251E;D;K;6;CP$UIDd;3;261E;D;K;6;CP$UIDd;3;252E;D;K;6;CP$UIDd;3;253E;D;K;6;CP$UIDd;3;254E;D;K;6;CP$UIDd;3;255E;D;K;6;CP$UIDd;3;256E;D;K;6;CP$UIDd;3;257E;D;K;6;CP$UIDd;3;258E;D;K;6;CP$UIDd;3;259E;D;K;6;CP$UIDd;3;263E;D;K;6;CP$UIDd;3;268E;E;E;S;6;normalS;21;{{18, 18}, {230, 24}}S;19;{{0, 0}, {230, 24}}d;2;36S;6;buttonS;17;selected+borderedD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;633E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;570E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;344E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;E;S;26;CPTexturedSquareBezelStyleS;19;{{18, 0}, {5, 717}}S;18;{{0, 0}, {5, 717}}d;2;20D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;634E;E;D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;635E;E;S;3;BoxS;6;{0, 0}S;20;{{247, 0}, {5, 717}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;636E;E;S;21;{{18, 58}, {230, 24}}S;27;CPTexturedRoundedBezelStyleS;21;{{18, 99}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;633E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;570E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;344E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;E;S;23;CPSmallSquareBezelStyleS;22;{{18, 139}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;633E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;570E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;E;S;21;CPRoundRectBezelStyleS;22;{{18, 177}, {230, 24}}S;20;CPRecessedBezelStyleS;22;{{18, 215}, {230, 24}}S;8;borderedS;28;CPShadowlessSquareBezelStyleS;22;{{18, 255}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;633E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;598E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;E;S;25;CPRegularSquareBezelStyleS;22;{{18, 296}, {230, 24}}S;19;CPRoundedBezelStyleS;23;{{618, 296}, {230, 24}}d;2;33D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;633E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;570E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;344E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;E;S;22;{{618, 99}, {230, 24}}S;23;{{618, 139}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;633E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;570E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;E;S;22;{{618, 58}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;633E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;570E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;344E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;E;S;22;{{618, 18}, {230, 24}}S;20;{{618, 0}, {5, 717}}d;2;17D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;637E;E;S;20;{{847, 0}, {5, 717}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;638E;E;S;23;{{618, 177}, {230, 24}}S;23;{{618, 215}, {230, 24}}S;23;{{618, 255}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;633E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;598E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;E;S;23;{{618, 667}, {230, 24}}d;1;9S;23;{{618, 470}, {230, 24}}S;23;{{618, 510}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;633E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;570E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;E;S;23;{{618, 429}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;633E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;570E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;344E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;E;S;23;{{618, 389}, {230, 24}}S;23;{{618, 548}, {230, 24}}S;23;{{618, 586}, {230, 24}}S;23;{{618, 626}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;633E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;598E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;E;S;22;{{18, 667}, {230, 24}}d;2;12S;22;{{18, 470}, {230, 24}}S;22;{{18, 510}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;633E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;570E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;E;S;22;{{18, 389}, {230, 24}}S;22;{{18, 548}, {230, 24}}S;22;{{18, 586}, {230, 24}}S;22;{{18, 626}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;633E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;598E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;E;S;19;{{0, 18}, {870, 5}}S;18;{{0, 0}, {870, 5}}d;2;34D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;639E;E;S;19;{{0, 58}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;640E;E;S;19;{{0, 99}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;641E;E;S;20;{{0, 139}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;642E;E;S;20;{{0, 177}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;643E;E;S;20;{{0, 215}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;644E;E;S;20;{{0, 255}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;645E;E;S;20;{{0, 296}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;646E;E;S;20;{{0, 389}, {870, 5}}d;2;10D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;647E;E;S;20;{{0, 429}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;648E;E;S;20;{{0, 470}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;649E;E;S;20;{{0, 510}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;650E;E;S;20;{{0, 548}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;651E;E;S;20;{{0, 586}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;652E;E;S;20;{{0, 626}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;653E;E;S;20;{{0, 667}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;654E;E;S;22;{{18, 429}, {230, 24}}S;21;{{12, 331}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;655E;E;S;23;{{618, 331}, {230, 24}}S;12;popup-buttonS;6;Item 1S;17;_popUpItemAction:S;6;Item 2S;6;Item 3S;22;{{14, 329}, {238, 29}}S;19;{{0, 0}, {238, 29}}S;9;textfieldS;19;bezeled+placeholderD;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;633E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;570E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;E;d;4;3072D;K;6;$classD;K;6;CP$UIDd;3;514E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;656E;E;S;13;AppControllerS;10;OtherViewsD;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;265E;D;K;6;CP$UIDd;3;266E;E;E;S;17;Arial, sans-serifD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;657E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;401E;D;K;6;CP$UIDd;3;401E;D;K;6;CP$UIDd;3;401E;D;K;6;CP$UIDd;3;401E;E;E;f;4;0.42E;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;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;D;K;6;CP$UIDd;2;57E;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;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;79E;D;K;6;CP$UIDd;2;81E;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;128E;D;K;6;CP$UIDd;3;129E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;131E;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;3;138E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;143E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;148E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;150E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;156E;D;K;6;CP$UIDd;3;157E;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;D;K;6;CP$UIDd;3;176E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;180E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;187E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;192E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;3;199E;D;K;6;CP$UIDd;3;200E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;202E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;208E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;211E;D;K;6;CP$UIDd;3;212E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;213E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;214E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;215E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;216E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;217E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;218E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;219E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;220E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;222E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;223E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;224E;D;K;6;CP$UIDd;3;225E;D;K;6;CP$UIDd;3;226E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;227E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;228E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;229E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;230E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;231E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;232E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;233E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;234E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;235E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;236E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;237E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;238E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;239E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;240E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;241E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;242E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;243E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;244E;D;K;6;CP$UIDd;3;245E;D;K;6;CP$UIDd;3;246E;D;K;6;CP$UIDd;3;247E;D;K;6;CP$UIDd;3;248E;D;K;6;CP$UIDd;3;249E;D;K;6;CP$UIDd;3;250E;D;K;6;CP$UIDd;3;251E;D;K;6;CP$UIDd;3;252E;D;K;6;CP$UIDd;3;253E;D;K;6;CP$UIDd;3;254E;D;K;6;CP$UIDd;3;255E;D;K;6;CP$UIDd;3;256E;D;K;6;CP$UIDd;3;257E;D;K;6;CP$UIDd;3;258E;D;K;6;CP$UIDd;3;259E;D;K;6;CP$UIDd;3;260E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;261E;D;K;6;CP$UIDd;3;263E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;264E;D;K;6;CP$UIDd;3;265E;D;K;6;CP$UIDd;3;266E;D;K;6;CP$UIDd;3;268E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;3;269E;D;K;6;CP$UIDd;3;270E;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;81E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;84E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;2;89E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;90E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;3;103E;D;K;6;CP$UIDd;3;104E;D;K;6;CP$UIDd;2;81E;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;3;107E;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;3;107E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;107E;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;3;118E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;125E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;130E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;131E;D;K;6;CP$UIDd;3;107E;D;K;6;CP$UIDd;3;134E;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;2;81E;D;K;6;CP$UIDd;3;139E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;147E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;3;140E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;3;155E;D;K;6;CP$UIDd;2;81E;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;171E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;176E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;177E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;182E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;161E;D;K;6;CP$UIDd;3;159E;D;K;6;CP$UIDd;3;193E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;3;194E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;204E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;208E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;212E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;213E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;214E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;215E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;216E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;217E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;218E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;219E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;220E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;222E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;223E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;226E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;227E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;228E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;229E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;230E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;231E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;232E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;233E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;234E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;235E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;236E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;237E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;238E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;239E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;240E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;241E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;242E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;243E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;260E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;263E;D;K;6;CP$UIDd;3;270E;D;K;6;CP$UIDd;3;270E;D;K;6;CP$UIDd;3;270E;D;K;6;CP$UIDd;3;206E;D;K;6;CP$UIDd;3;268E;D;K;6;CP$UIDd;2;11E;D;K;6;CP$UIDd;3;263E;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;271E;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;272E;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;269E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;273E;E;D;K;6;$classD;K;6;CP$UIDd;2;14E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;269E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;3;204E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;274E;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;17E;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;275E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;276E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;91E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;11E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;277E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;144E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;278E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;150E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;279E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;141E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;280E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;149E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;281E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;143E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;282E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;142E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;283E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;145E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;284E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;285E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;152E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;286E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;148E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;287E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;92E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;288E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;2;94E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;2;79E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;289E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;290E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;291E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;132E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;292E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;133E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;293E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;294E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;295E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;296E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;297E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;298E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;299E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;128E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;300E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;301E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;123E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;302E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;126E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;305E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;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;306E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;156E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;307E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;157E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;308E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;129E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;309E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;136E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;310E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;137E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;311E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;138E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;312E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;195E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;313E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;196E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;314E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;197E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;315E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;198E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;316E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;200E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;317E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;201E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;318E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;202E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;319E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;165E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;320E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;189E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;191E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;322E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;192E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;323E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;183E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;324E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;184E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;185E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;326E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;186E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;327E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;187E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;328E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;178E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;329E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;179E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;330E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;180E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;331E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;172E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;332E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;173E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;333E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;174E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;334E;E;D;K;6;$classD;K;6;CP$UIDd;2;17E;K;24;_CPCibConnectorSourceKeyD;K;6;CP$UIDd;3;175E;K;29;_CPCibConnectorDestinationKeyD;K;6;CP$UIDd;1;0E;K;23;_CPCibConnectorLabelKeyD;K;6;CP$UIDd;3;335E;E;D;K;6;$classD;K;6;CP$UIDd;2;10E;K;27;_CPCibCustomObjectClassNameD;K;6;CP$UIDd;3;271E;E;D;K;10;$classnameS;6;CPMenuK;8;$classesA;S;6;CPMenuS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;336E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;337E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;338E;E;D;K;10;$classnameS;10;CPMenuItemK;8;$classesA;S;10;CPMenuItemS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;339E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;84E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;339E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;342E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;343E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;84E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;347E;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;84E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;348E;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;84E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;349E;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;84E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;350E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;351E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;2;90E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;351E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;352E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;353E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;354E;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;90E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;355E;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;90E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;356E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;357E;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;90E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;358E;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;90E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;359E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;90E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;360E;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;90E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;361E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;90E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;90E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;362E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;100E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;90E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;362E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;363E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;364E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;90E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;365E;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;90E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;356E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;367E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;104E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;367E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;368E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;369E;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;104E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;370E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;371E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;107E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;371E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;372E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;373E;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;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;374E;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;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;375E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;376E;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;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;377E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;378E;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;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;379E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;380E;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;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;381E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;382E;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;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;383E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;384E;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;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;385E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;386E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;387E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;118E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;387E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;388E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;389E;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;390E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;118E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;391E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;386E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;392E;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;393E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;394E;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;395E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;118E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;396E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;397E;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;398E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;118E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;399E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;400E;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;401E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;118E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;402E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;403E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;125E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;403E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;404E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;405E;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;125E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;406E;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;125E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;407E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;408E;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;125E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;409E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;410E;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;125E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;411E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;131E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;411E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;412E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;413E;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;131E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;414E;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;131E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;415E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;135E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;107E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;415E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;416E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;417E;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;401E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;135E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;402E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;418E;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;398E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;135E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;399E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;419E;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;390E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;135E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;391E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;386E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;420E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;140E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;420E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;421E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;422E;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;140E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;423E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;424E;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;140E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;425E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;386E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;426E;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;140E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;427E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;428E;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;140E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;429E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;430E;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;140E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;431E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;432E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;147E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;140E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;432E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;433E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;434E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;435E;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;147E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;436E;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;140E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;437E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;386E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;438E;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;140E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;439E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;140E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;440E;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;140E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;140E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;441E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;155E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;441E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;442E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;443E;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;155E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;444E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;445E;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;155E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;446E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;159E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;2;81E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;446E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;447E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;448E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;161E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;159E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;448E;K;13;CPMenuNameKeyD;K;6;CP$UIDd;3;449E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;450E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;451E;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;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;444E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;452E;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;398E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;453E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;454E;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;401E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;455E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;456E;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;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;457E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;458E;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;390E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;459E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;460E;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;461E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;462E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;463E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;171E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;463E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;464E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;465E;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;171E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;466E;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;171E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;467E;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;171E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;468E;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;171E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;469E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;177E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;469E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;470E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;465E;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;177E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;466E;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;177E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;471E;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;177E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;472E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;182E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;472E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;473E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;465E;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;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;474E;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;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;475E;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;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;476E;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;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;477E;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;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;478E;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;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;479E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;480E;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;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;383E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;481E;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;161E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;381E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;482E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;1;0E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;340E;K;20;CPMenuItemSubmenuKeyD;K;6;CP$UIDd;3;194E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;159E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;482E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;483E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;484E;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;194E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;485E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;486E;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;194E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;487E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;488E;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;194E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;489E;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;194E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;490E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;24;CPMenuItemIsSeparatorKeyD;K;6;CP$UIDd;3;344E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;345E;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;346E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;194E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;491E;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;194E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;492E;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;194E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;383E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;493E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;494E;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;194E;K;26;CPMenuItemKeyEquivalentKeyD;K;6;CP$UIDd;3;381E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;493E;E;D;K;10;$classnameS;20;_CPCibWindowTemplateK;8;$classesA;S;20;_CPCibWindowTemplateS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;203E;K;30;_CPCibWindowTemplateMaxSizeKeyD;K;6;CP$UIDd;3;495E;K;32;_CPCibWindowTemplateViewClassKeyD;K;6;CP$UIDd;1;0E;K;34;_CPCibWindowTemplateWindowClassKeyD;K;6;CP$UIDd;3;496E;K;33;_CPCibWindowTemplateWindowRectKeyD;K;6;CP$UIDd;3;497E;K;30;_CPCibWindowTempatStyleMaskKeyD;K;6;CP$UIDd;3;395E;K;34;_CPCibWindowTemplateWindowTitleKeyD;K;6;CP$UIDd;3;339E;K;33;_CPCibWindowTemplateWindowViewKeyD;K;6;CP$UIDd;3;206E;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;205E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;499E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;500E;K;17;CPViewSubviewsKeyD;K;6;CP$UIDd;3;501E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;503E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;510E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;512E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;513E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;514E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;516E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;520E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;513E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;514E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;521E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;522E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;523E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;524E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;525E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;526E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;527E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;528E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;529E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;530E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;531E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;532E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;533E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;534E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;535E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;536E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;534E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;537E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;538E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;539E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;534E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;540E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;398E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;541E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;542E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;534E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;540E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;398E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;543E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;542E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;525E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;544E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;542E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;545E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;528E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;546E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;542E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;523E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;547E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;542E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;510E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;548E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;513E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;549E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;550E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;551E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;513E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;549E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;552E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;553E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;542E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;554E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;531E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;532E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;555E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;542E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;534E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;535E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;556E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;542E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;534E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;557E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;538E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;558E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;559E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;534E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;540E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;398E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;560E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;559E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;525E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;561E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;559E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;562E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;528E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;563E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;559E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;523E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;564E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;559E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;510E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;565E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;559E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;566E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;531E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;532E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;567E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;559E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;534E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;535E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;568E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;559E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;534E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;569E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;538E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;570E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;532E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;534E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;540E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;398E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;571E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;532E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;525E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;572E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;532E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;573E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;528E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;574E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;532E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;401E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;510E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;401E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;575E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;532E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;576E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;531E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;532E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;577E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;532E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;534E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;535E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;578E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;532E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;534E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;579E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;538E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;580E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;582E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;583E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;584E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;582E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;585E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;586E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;582E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;587E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;588E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;582E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;589E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;590E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;582E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;591E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;592E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;582E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;593E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;594E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;582E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;595E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;596E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;582E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;597E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;598E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;599E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;600E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;601E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;599E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;602E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;603E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;599E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;604E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;605E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;599E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;606E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;607E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;599E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;608E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;609E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;599E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;610E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;611E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;599E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;612E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;613E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;599E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;614E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;E;D;K;6;$classD;K;6;CP$UIDd;3;207E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;615E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;532E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;506E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;507E;K;16;$aimage-positionD;K;6;CP$UIDd;3;498E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;498E;K;11;$aalignmentD;K;6;CP$UIDd;3;398E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;401E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;3;523E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;511E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;498E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;209E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;616E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;581E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;582E;K;25;CPViewAutoresizesSubviewsD;K;6;CP$UIDd;3;498E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;1;0E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;502E;K;12;CPBoxTypeKeyD;K;6;CP$UIDd;3;398E;K;18;CPBoxBorderTypeKeyD;K;6;CP$UIDd;3;390E;K;19;CPBoxBorderColorKeyD;K;6;CP$UIDd;3;617E;K;17;CPBoxFillColorKeyD;K;6;CP$UIDd;3;517E;K;20;CPBoxCornerRadiusKeyD;K;6;CP$UIDd;3;498E;K;19;CPBoxBorderWidthKeyD;K;6;CP$UIDd;3;401E;K;10;CPBoxTitleD;K;6;CP$UIDd;3;518E;K;18;CPBoxTitlePositionD;K;6;CP$UIDd;3;498E;K;14;CPBoxTitleViewD;K;6;CP$UIDd;1;0E;K;21;CPBoxContentMarginKeyD;K;6;CP$UIDd;3;519E;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;3;262E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;3;270E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;618E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;504E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;542E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;619E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;534E;K;6;$afontD;K;6;CP$UIDd;3;509E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;461E;K;11;$aalignmentD;K;6;CP$UIDd;3;498E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;498E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;461E;K;16;CPButtonTitleKeyD;K;6;CP$UIDd;1;0E;K;25;CPButtonAlternateTitleKeyD;K;6;CP$UIDd;3;345E;K;27;CPButtonAllowsMixedStateKeyD;K;6;CP$UIDd;3;346E;K;23;CPButtonHighlightsByKeyD;K;6;CP$UIDd;3;532E;K;23;CPButtonShowsStateByKeyD;K;6;CP$UIDd;3;498E;K;32;CPButtonImageDimsWhenDisabledKeyD;K;6;CP$UIDd;3;344E;K;24;CPButtonImagePositionKeyD;K;6;CP$UIDd;3;398E;K;28;CPButtonKeyEquivalentMaskKeyD;K;6;CP$UIDd;3;498E;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;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;620E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;263E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;621E;K;18;CPMenuItemStateKeyD;K;6;CP$UIDd;3;401E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;270E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;622E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;263E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;621E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;270E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;2;82E;K;18;CPMenuItemTitleKeyD;K;6;CP$UIDd;3;623E;K;19;CPMenuItemTargetKeyD;K;6;CP$UIDd;3;263E;K;19;CPMenuItemActionKeyD;K;6;CP$UIDd;3;621E;K;17;CPMenuItemMenuKeyD;K;6;CP$UIDd;3;270E;K;38;CPMenuItemKeyEquivalentModifierMaskKeyD;K;6;CP$UIDd;3;341E;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;267E;K;27;CPResponderNextResponderKeyD;K;6;CP$UIDd;3;206E;K;18;CPResponderMenuKeyD;K;6;CP$UIDd;1;0E;K;12;CPViewTagKeyD;K;6;CP$UIDd;3;498E;K;14;CPViewFrameKeyD;K;6;CP$UIDd;3;624E;K;15;CPViewBoundsKeyD;K;6;CP$UIDd;3;625E;K;18;CPViewSuperviewKeyD;K;6;CP$UIDd;3;206E;K;22;CPViewAutoresizingMaskD;K;6;CP$UIDd;3;505E;K;19;CPViewThemeClassKeyD;K;6;CP$UIDd;3;626E;K;19;CPViewThemeStateKeyD;K;6;CP$UIDd;3;627E;K;6;$afontD;K;6;CP$UIDd;3;628E;K;17;$aline-break-modeD;K;6;CP$UIDd;3;398E;K;11;$aalignmentD;K;6;CP$UIDd;3;461E;K;35;CPControlSendsActionOnEndEditingKeyD;K;6;CP$UIDd;3;344E;K;17;CPControlValueKeyD;K;6;CP$UIDd;3;345E;K;24;CPControlSendActionOnKeyD;K;6;CP$UIDd;3;629E;K;24;CPTextFieldIsEditableKeyD;K;6;CP$UIDd;3;344E;K;26;CPTextFieldIsSelectableKeyD;K;6;CP$UIDd;3;344E;K;29;CPTextFieldDrawsBackgroundKeyD;K;6;CP$UIDd;3;344E;K;29;CPTextFieldBackgroundColorKeyD;K;6;CP$UIDd;3;630E;K;27;CPTextFieldLineBreakModeKeyD;K;6;CP$UIDd;3;398E;K;23;CPTextFieldAlignmentKeyD;K;6;CP$UIDd;3;461E;K;31;CPTextFieldPlaceholderStringKeyD;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;631E;E;D;K;6;$classD;K;6;CP$UIDd;2;80E;K;14;CPMenuTitleKeyD;K;6;CP$UIDd;3;632E;K;14;CPMenuItemsKeyD;K;6;CP$UIDd;3;633E;E;S;13;CPApplicationD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;204E;E;E;S;8;delegateS;9;theWindowS;15;arrangeInFront:S;19;performMiniaturize:S;29;orderFrontStandardAboutPanel:S;13;openDocument:S;13;performClose:S;13;saveDocument:S;14;runPageLayout:S;6;print:S;15;saveDocumentAs:S;12;newDocument:S;9;showHelp:S;22;revertDocumentToSaved:S;21;clearRecentDocuments:S;5;hide:S;10;terminate:S;22;hideOtherApplications:S;22;unhideAllApplications: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;10;alignLeft:S;12;alignCenter:S;15;alignJustified:S;11;alignRight:S;12;toggleRuler:S;10;copyRuler:S;11;pasteRuler:S;10;underline:S;21;orderFrontColorPanel:S;9;copyFont:S;10;pasteFont:S;9;unscript:S;12;superscript:S;10;subscript:S;14;raiseBaseline:S;14;lowerBaseline:S;21;useStandardLigatures:S;17;turnOffLigatures:S;16;useAllLigatures:S;19;useStandardKerning:S;15;turnOffKerning:S;15;tightenKerning:S;14;loosenKerning:S;9;AMainMenuS;11;_CPMainMenuD;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;3;139E;D;K;6;CP$UIDd;3;106E;D;K;6;CP$UIDd;3;158E;D;K;6;CP$UIDd;3;154E;D;K;6;CP$UIDd;2;83E;D;K;6;CP$UIDd;3;103E;E;E;S;6;WindowS;14;submenuAction:d;7;1048576S;14;_CPWindowsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;88E;D;K;6;CP$UIDd;2;87E;D;K;6;CP$UIDd;2;85E;D;K;6;CP$UIDd;2;86E;E;E;T;S;0;F;S;18;Bring All to FrontS;4;ZoomS;8;MinimizeS;1;mS;14;NewApplicationS;18;_CPApplicationMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;91E;D;K;6;CP$UIDd;2;98E;D;K;6;CP$UIDd;2;96E;D;K;6;CP$UIDd;2;97E;D;K;6;CP$UIDd;2;99E;D;K;6;CP$UIDd;2;95E;D;K;6;CP$UIDd;2;92E;D;K;6;CP$UIDd;3;102E;D;K;6;CP$UIDd;2;93E;D;K;6;CP$UIDd;3;101E;D;K;6;CP$UIDd;2;94E;E;E;S;20;About NewApplicationS;19;Hide NewApplicationS;1;hS;8;Show AllS;19;Quit NewApplicationS;1;qS;12;Preferences…S;1;,S;8;ServicesS;15;_CPServicesMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;E;E;S;11;Hide Othersd;7;1572864S;4;HelpD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;105E;E;E;S;19;NewApplication HelpS;1;?S;4;EditD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;110E;D;K;6;CP$UIDd;3;116E;D;K;6;CP$UIDd;3;115E;D;K;6;CP$UIDd;3;112E;D;K;6;CP$UIDd;3;114E;D;K;6;CP$UIDd;3;113E;D;K;6;CP$UIDd;3;108E;D;K;6;CP$UIDd;3;109E;D;K;6;CP$UIDd;3;111E;D;K;6;CP$UIDd;3;117E;D;K;6;CP$UIDd;3;124E;D;K;6;CP$UIDd;3;134E;D;K;6;CP$UIDd;3;130E;E;E;S;6;DeleteS;10;Select AllS;1;aS;4;UndoS;1;zS;3;CutS;1;xS;5;PasteS;1;vS;4;CopyS;1;cS;4;RedoS;1;Zd;7;1179648S;4;FindD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;123E;D;K;6;CP$UIDd;3;122E;D;K;6;CP$UIDd;3;119E;D;K;6;CP$UIDd;3;121E;D;K;6;CP$UIDd;3;120E;E;E;S;13;Find Previousd;1;3S;1;GS;17;Jump to SelectionS;1;jS;22;Use Selection for Findd;1;7S;1;eS;9;Find Nextd;1;2S;1;gS;5;Find…d;1;1S;1;fS;20;Spelling and GrammarD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;128E;D;K;6;CP$UIDd;3;127E;D;K;6;CP$UIDd;3;126E;D;K;6;CP$UIDd;3;129E;E;E;S;27;Check Spelling While TypingS;14;Check SpellingS;1;;S;14;Show Spelling…S;1;:S;27;Check Grammar With SpellingS;6;SpeechD;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;132E;E;E;S;13;Stop SpeakingS;14;Start SpeakingS;13;SubstitutionsD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;136E;D;K;6;CP$UIDd;3;137E;D;K;6;CP$UIDd;3;138E;E;E;S;16;Smart Copy/PasteS;12;Smart QuotesS;11;Smart LinksS;4;FileD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;145E;D;K;6;CP$UIDd;3;144E;D;K;6;CP$UIDd;3;146E;D;K;6;CP$UIDd;3;151E;D;K;6;CP$UIDd;3;150E;D;K;6;CP$UIDd;3;141E;D;K;6;CP$UIDd;3;142E;D;K;6;CP$UIDd;3;152E;D;K;6;CP$UIDd;3;153E;D;K;6;CP$UIDd;3;149E;D;K;6;CP$UIDd;3;143E;E;E;S;4;SaveS;1;sS;8;Save As…S;1;SS;6;Print…S;1;pS;5;Open…S;1;oS;3;NewS;1;nS;11;Open RecentS;22;_CPRecentDocumentsMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;148E;E;E;S;10;Clear MenuS;13;Page Setup...S;1;PS;5;CloseS;1;wS;15;Revert to SavedS;4;ViewD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;156E;D;K;6;CP$UIDd;3;157E;E;E;S;12;Show ToolbarS;1;tS;18;Customize Toolbar…S;6;FormatD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;160E;D;K;6;CP$UIDd;3;193E;E;E;S;4;FontS;11;_CPFontMenuD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;162E;D;K;6;CP$UIDd;3;163E;D;K;6;CP$UIDd;3;164E;D;K;6;CP$UIDd;3;165E;D;K;6;CP$UIDd;3;166E;D;K;6;CP$UIDd;3;167E;D;K;6;CP$UIDd;3;168E;D;K;6;CP$UIDd;3;169E;D;K;6;CP$UIDd;3;170E;D;K;6;CP$UIDd;3;176E;D;K;6;CP$UIDd;3;181E;D;K;6;CP$UIDd;3;188E;D;K;6;CP$UIDd;3;189E;D;K;6;CP$UIDd;3;190E;D;K;6;CP$UIDd;3;191E;D;K;6;CP$UIDd;3;192E;E;E;S;10;Show FontsS;4;BoldS;1;bS;6;ItalicS;1;iS;9;UnderlineS;1;uS;6;BiggerS;1;+S;7;Smallerd;1;4S;1;-S;4;KernD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;172E;D;K;6;CP$UIDd;3;173E;D;K;6;CP$UIDd;3;174E;D;K;6;CP$UIDd;3;175E;E;E;S;11;Use DefaultS;8;Use NoneS;7;TightenS;6;LoosenS;8;LigatureD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;178E;D;K;6;CP$UIDd;3;179E;D;K;6;CP$UIDd;3;180E;E;E;S;7;Use AllS;8;BaselineD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;183E;D;K;6;CP$UIDd;3;184E;D;K;6;CP$UIDd;3;185E;D;K;6;CP$UIDd;3;186E;D;K;6;CP$UIDd;3;187E;E;E;S;11;SuperscriptS;9;SubscriptS;5;RaiseS;5;LowerS;11;Show ColorsS;1;CS;10;Copy StyleS;11;Paste StyleS;4;TextD;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;195E;D;K;6;CP$UIDd;3;196E;D;K;6;CP$UIDd;3;197E;D;K;6;CP$UIDd;3;198E;D;K;6;CP$UIDd;3;199E;D;K;6;CP$UIDd;3;200E;D;K;6;CP$UIDd;3;201E;D;K;6;CP$UIDd;3;202E;E;E;S;10;Align LeftS;1;{S;6;CenterS;1;|S;7;JustifyS;11;Align RightS;1;}S;10;Show RulerS;10;Copy Rulerd;7;1310720S;11;Paste RulerS;32;{10000000000000, 10000000000000}S;8;CPWindowS;24;{{335, -79}, {870, 717}}d;1;0S;21;{{7, 11}, {870, 717}}S;20;{{0, 0}, {870, 717}}D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;218E;D;K;6;CP$UIDd;3;213E;D;K;6;CP$UIDd;3;214E;D;K;6;CP$UIDd;3;212E;D;K;6;CP$UIDd;3;208E;D;K;6;CP$UIDd;3;215E;D;K;6;CP$UIDd;3;216E;D;K;6;CP$UIDd;3;217E;D;K;6;CP$UIDd;3;237E;D;K;6;CP$UIDd;3;238E;D;K;6;CP$UIDd;3;239E;D;K;6;CP$UIDd;3;260E;D;K;6;CP$UIDd;3;240E;D;K;6;CP$UIDd;3;241E;D;K;6;CP$UIDd;3;242E;D;K;6;CP$UIDd;3;243E;D;K;6;CP$UIDd;3;219E;D;K;6;CP$UIDd;3;220E;D;K;6;CP$UIDd;3;221E;D;K;6;CP$UIDd;3;222E;D;K;6;CP$UIDd;3;223E;D;K;6;CP$UIDd;3;226E;D;K;6;CP$UIDd;3;227E;D;K;6;CP$UIDd;3;228E;D;K;6;CP$UIDd;3;229E;D;K;6;CP$UIDd;3;230E;D;K;6;CP$UIDd;3;231E;D;K;6;CP$UIDd;3;232E;D;K;6;CP$UIDd;3;233E;D;K;6;CP$UIDd;3;234E;D;K;6;CP$UIDd;3;235E;D;K;6;CP$UIDd;3;236E;D;K;6;CP$UIDd;3;210E;D;K;6;CP$UIDd;3;211E;D;K;6;CP$UIDd;3;224E;D;K;6;CP$UIDd;3;225E;D;K;6;CP$UIDd;3;244E;D;K;6;CP$UIDd;3;245E;D;K;6;CP$UIDd;3;246E;D;K;6;CP$UIDd;3;247E;D;K;6;CP$UIDd;3;248E;D;K;6;CP$UIDd;3;249E;D;K;6;CP$UIDd;3;250E;D;K;6;CP$UIDd;3;251E;D;K;6;CP$UIDd;3;261E;D;K;6;CP$UIDd;3;252E;D;K;6;CP$UIDd;3;253E;D;K;6;CP$UIDd;3;254E;D;K;6;CP$UIDd;3;255E;D;K;6;CP$UIDd;3;256E;D;K;6;CP$UIDd;3;257E;D;K;6;CP$UIDd;3;258E;D;K;6;CP$UIDd;3;259E;D;K;6;CP$UIDd;3;263E;D;K;6;CP$UIDd;3;268E;E;E;S;6;normalS;21;{{18, 18}, {230, 24}}S;19;{{0, 0}, {230, 24}}d;2;36S;6;buttonS;17;selected+borderedD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;634E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;635E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;344E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;344E;E;S;26;CPTexturedSquareBezelStyled;2;14S;19;{{18, 0}, {5, 717}}S;18;{{0, 0}, {5, 717}}d;2;20D;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;636E;E;D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;637E;E;S;3;BoxS;6;{0, 0}S;20;{{247, 0}, {5, 717}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;638E;E;S;21;{{18, 58}, {230, 24}}S;27;CPTexturedRoundedBezelStyleS;21;{{18, 99}, {230, 24}}S;23;CPSmallSquareBezelStyleS;22;{{18, 139}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;634E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;532E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;344E;E;S;21;CPRoundRectBezelStyleS;22;{{18, 177}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;634E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;532E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;344E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;344E;E;S;20;CPRecessedBezelStyled;2;12S;22;{{18, 215}, {230, 24}}S;8;borderedS;28;CPShadowlessSquareBezelStyleS;22;{{18, 255}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;634E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;599E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;344E;E;S;25;CPRegularSquareBezelStyleS;22;{{18, 296}, {230, 24}}S;19;CPRoundedBezelStyleS;23;{{618, 296}, {230, 24}}d;2;33S;22;{{618, 99}, {230, 24}}S;23;{{618, 139}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;634E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;532E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;344E;E;S;22;{{618, 58}, {230, 24}}S;22;{{618, 18}, {230, 24}}S;20;{{618, 0}, {5, 717}}d;2;17D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;639E;E;S;20;{{847, 0}, {5, 717}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;640E;E;S;23;{{618, 177}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;634E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;532E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;344E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;344E;E;S;23;{{618, 215}, {230, 24}}S;23;{{618, 255}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;634E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;599E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;344E;E;S;23;{{618, 667}, {230, 24}}d;1;9S;23;{{618, 470}, {230, 24}}S;23;{{618, 510}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;634E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;532E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;344E;E;S;23;{{618, 429}, {230, 24}}S;23;{{618, 389}, {230, 24}}S;23;{{618, 548}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;634E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;532E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;344E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;344E;E;S;23;{{618, 586}, {230, 24}}S;23;{{618, 626}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;634E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;599E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;344E;E;S;22;{{18, 667}, {230, 24}}S;22;{{18, 470}, {230, 24}}S;22;{{18, 510}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;634E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;532E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;344E;E;S;22;{{18, 389}, {230, 24}}S;22;{{18, 548}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;634E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;532E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;344E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;344E;E;S;22;{{18, 586}, {230, 24}}S;22;{{18, 626}, {230, 24}}D;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;634E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;599E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;344E;E;S;19;{{0, 18}, {870, 5}}S;18;{{0, 0}, {870, 5}}d;2;34D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;641E;E;S;19;{{0, 58}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;642E;E;S;19;{{0, 99}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;643E;E;S;20;{{0, 139}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;644E;E;S;20;{{0, 177}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;645E;E;S;20;{{0, 215}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;646E;E;S;20;{{0, 255}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;647E;E;S;20;{{0, 296}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;648E;E;S;20;{{0, 389}, {870, 5}}d;2;10D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;649E;E;S;20;{{0, 429}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;650E;E;S;20;{{0, 470}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;651E;E;S;20;{{0, 510}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;652E;E;S;20;{{0, 548}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;653E;E;S;20;{{0, 586}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;654E;E;S;20;{{0, 626}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;655E;E;S;20;{{0, 667}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;656E;E;S;22;{{18, 429}, {230, 24}}S;21;{{12, 331}, {870, 5}}D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;657E;E;S;23;{{618, 331}, {230, 24}}S;12;popup-buttonS;6;Item 1S;17;_popUpItemAction:S;6;Item 2S;6;Item 3S;22;{{14, 329}, {238, 29}}S;19;{{0, 0}, {238, 29}}S;9;textfieldS;19;bezeled+placeholderD;K;6;$classD;K;6;CP$UIDd;3;508E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;634E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;635E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsItalicKeyD;K;6;CP$UIDd;3;346E;K;17;CPFontIsSystemKeyD;K;6;CP$UIDd;3;344E;E;d;4;3072D;K;6;$classD;K;6;CP$UIDd;3;515E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;658E;E;S;13;AppControllerS;10;OtherViewsD;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;265E;D;K;6;CP$UIDd;3;266E;E;E;S;28;_CPFontSystemFacePlaceholderd;2;-1D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;498E;D;K;6;CP$UIDd;3;659E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;3E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;401E;D;K;6;CP$UIDd;3;401E;D;K;6;CP$UIDd;3;401E;D;K;6;CP$UIDd;3;401E;E;E;f;4;0.42E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/Tests/Manual/Nib2CibAligment/Resources/MainMenu.xib b/Tests/Manual/Nib2CibAlignment/Resources/MainMenu.xib similarity index 100% rename from Tests/Manual/Nib2CibAligment/Resources/MainMenu.xib rename to Tests/Manual/Nib2CibAlignment/Resources/MainMenu.xib diff --git a/Tests/Manual/Nib2CibAligment/Resources/spinner.gif b/Tests/Manual/Nib2CibAlignment/Resources/spinner.gif similarity index 100% rename from Tests/Manual/Nib2CibAligment/Resources/spinner.gif rename to Tests/Manual/Nib2CibAlignment/Resources/spinner.gif diff --git a/Tests/Manual/Nib2CibAligment/index-debug.html b/Tests/Manual/Nib2CibAlignment/index-debug.html similarity index 99% rename from Tests/Manual/Nib2CibAligment/index-debug.html rename to Tests/Manual/Nib2CibAlignment/index-debug.html index 0f3b05380..98d814738 100644 --- a/Tests/Manual/Nib2CibAligment/index-debug.html +++ b/Tests/Manual/Nib2CibAlignment/index-debug.html @@ -20,7 +20,7 @@ - test2 + nib2cib alignment + + + + + + + + + + + + +
+
+ + + +
+
+ + + diff --git a/Tests/Manual/ArrayControllerRemovingFirstTest/index.html b/Tests/Manual/ArrayControllerRemovingFirstTest/index.html new file mode 100644 index 000000000..707d86be9 --- /dev/null +++ b/Tests/Manual/ArrayControllerRemovingFirstTest/index.html @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + ArrayControllerRemovingFirstTest + + + + + + + + + + + + +
+
+ + + +
+
+ + + + diff --git a/Tests/Manual/ArrayControllerRemovingFirstTest/main.j b/Tests/Manual/ArrayControllerRemovingFirstTest/main.j new file mode 100644 index 000000000..60b8fb56d --- /dev/null +++ b/Tests/Manual/ArrayControllerRemovingFirstTest/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * ArrayControllerRemovingFirstTest + * + * Created by You on July 17, 2012. + * Copyright 2012, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +} From 5724dfe21df60383f4569dddefad49b0dba67fc4 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Tue, 17 Jul 2012 20:48:52 +0100 Subject: [PATCH 099/109] `CPDictionary enumerateKeysAndObjectsUsingBlock:`. --- Foundation/CPDictionary.j | 26 +++++++++++++++++++++ Tests/Foundation/CPDictionaryTest.j | 36 +++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/Foundation/CPDictionary.j b/Foundation/CPDictionary.j index a20bb59a9..1f3257cf5 100755 --- a/Foundation/CPDictionary.j +++ b/Foundation/CPDictionary.j @@ -654,6 +654,32 @@ var value = [self objectForKey:aKey]; return ((value !== nil) && (value !== undefined)); } + +- (void)enumerateKeysAndObjectsUsingBlock:(Function /*(id aKey, id anObject, @ref BOOL stop)*/)aFunction +{ + var shouldStop = NO, + shouldStopRef = AT_REF(shouldStop); + + for (var index = 0; index < _count; index++) + { + var key = _keys[index], + value = valueForKey(key); + + aFunction(key, value, shouldStopRef); + + if (shouldStop) + return; + } +} + +- (void)enumerateKeysAndObjectsWithOptions:(CPEnumerationOptions)opts usingBlock:(Function /*(id aKey, id anObject, @ref BOOL stop)*/)aFunction +{ + // Ignore the options because neither option has an effect. + // CPEnumerationReverse has no effect on enumerating a CPDictionary because dictionary enumeration is not ordered. + // CPEnumerationConcurrent is not possible in a single threaded environment. + [self enumerateKeysAndObjectsUsingBlock:aFunction]; +} + @end @implementation CPDictionary (CPCoding) diff --git a/Tests/Foundation/CPDictionaryTest.j b/Tests/Foundation/CPDictionaryTest.j index e5c8e9012..96a6651ec 100644 --- a/Tests/Foundation/CPDictionaryTest.j +++ b/Tests/Foundation/CPDictionaryTest.j @@ -348,6 +348,42 @@ [self assert:expected equals:result]; } +- (void)testEnumerateKeysAndObjectsUsingBlock_ +{ + var input0 = [CPDictionary dictionary], + input1 = [CPDictionary dictionaryWithJSObject:{a: 1, b: 3, c: "b"}], + output = [CPMutableDictionary dictionary], + outputFunction = function(aKey, anObject) + { + [output setValue:anObject forKey:aKey]; + }; + + [input0 enumerateKeysAndObjectsUsingBlock:outputFunction]; + [self assert:0 equals:[output count] message:@"output when enumerating empty dictionary"]; + + [input1 enumerateKeysAndObjectsUsingBlock:outputFunction]; + [self assert:3 equals:[output count] message:@"output when enumerating input1"]; + [self assert:input1 equals:output message:@"output should equal input"]; + + // Stop enumerating after two keys. + output = [CPMutableDictionary dictionary]; + stoppingFunction = function(aKey, anObject, stop) + { + [output setValue:anObject forKey:aKey]; + if ([output count] > 1) + stop(YES); // AT_DEREF(stop, YES) - FIXME Replace with proper @ref @deref when in ObjJ. + } + + [input1 enumerateKeysAndObjectsUsingBlock:stoppingFunction]; + [self assert:2 equals:[output count] message:@"output when enumerating input1 and stopping after 2"]; + + // CPEnumerationReverse shouldn't have any particular effect. Just check that it doesn't crash. + output = [CPMutableDictionary dictionary]; + [input1 enumerateKeysAndObjectsWithOptions:CPEnumerationReverse usingBlock:outputFunction]; + [self assert:3 equals:[output count] message:@"output when enumerating input1"]; + [self assert:input1 equals:output message:@"output should equal input"]; +} + - (void)testJSObjectDescription { var dict = [[CPDictionary alloc] initWithObjects:[CGRectMake(1, 2, 3, 4), CGPointMake(5, 6)] forKeys:[@"key1", @"key2"]], From 9b77f1b7acf1e229a78aedaf34c4799cc0ee5a61 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Tue, 17 Jul 2012 22:57:36 +0100 Subject: [PATCH 100/109] Notify when a `CPTableView` column moves. Both through `CPNotificationCenter` and to the delegate. --- AppKit/CPTableView.j | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/AppKit/CPTableView.j b/AppKit/CPTableView.j index c4ae1ac97..61045d64e 100644 --- a/AppKit/CPTableView.j +++ b/AppKit/CPTableView.j @@ -978,6 +978,13 @@ NOT YET IMPLEMENTED columnIndexes = [CPIndexSet indexSetWithIndexesInRange:CPMakeRange(fromIndex, toIndex)]; [self reloadDataForRowIndexes:rowIndexes columnIndexes:columnIndexes]; + + // Notify even if programmatically moving a column as in Cocoa. + // TODO Only notify when a column drag operation ends, not each time a column reaches a new slot? + [[CPNotificationCenter defaultCenter] postNotificationName:CPTableViewColumnDidMoveNotification + object:self + userInfo:[CPDictionary dictionaryWithObjects:[fromIndex, toIndex] + forKeys:[@"CPOldColumn", @"CPNewColumn"]]]; } /*! From f0163e13c9e34f783d68099e2df2f2e55b86c895 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Tue, 17 Jul 2012 15:10:58 -0700 Subject: [PATCH 101/109] Added CGInsetMakeInvertedCopy --- Foundation/_CGGeometry.h | 1 + Foundation/_CGGeometry.j | 1 + 2 files changed, 2 insertions(+) diff --git a/Foundation/_CGGeometry.h b/Foundation/_CGGeometry.h index 5ea60e41c..48f91807d 100644 --- a/Foundation/_CGGeometry.h +++ b/Foundation/_CGGeometry.h @@ -80,6 +80,7 @@ CGGeometry is not a part of Foundation. The reason _CGGeometry.h exists, and is #define _CGInsetMake(_top, _right, _bottom, _left) { top:(_top), right:(_right), bottom:(_bottom), left:(_left) } #define _CGInsetMakeCopy(anInset) _CGInsetMake(anInset.top, anInset.right, anInset.bottom, anInset.left) +#define _CGInsetMakeInvertedCopy(anInset) _CGInsetMake(-anInset.top, -anInset.right, -anInset.bottom, -anInset.left) #define _CGInsetMakeZero() _CGInsetMake(0, 0, 0, 0) #define _CGInsetIsEmpty(anInset) ((anInset).top === 0 && (anInset).right === 0 && (anInset).bottom === 0 && (anInset).left === 0) #define _CGInsetEqualToInset(lhsInset, rhsInset) ((lhsInset).top === (rhsInset).top && (lhsInset).right === (rhsInset).right && (lhsInset).bottom === (rhsInset).bottom && (lhsInset).left === (rhsInset).left) diff --git a/Foundation/_CGGeometry.j b/Foundation/_CGGeometry.j index bbb116d9b..be7bc79b3 100644 --- a/Foundation/_CGGeometry.j +++ b/Foundation/_CGGeometry.j @@ -72,6 +72,7 @@ _function(CGRectContainsPoint(aRect, aPoint)) _function(CGInsetMake(top, right, bottom, left)) _function(CGInsetMakeZero()) _function(CGInsetMakeCopy(anInset)) +_function(CGInsetMakeInvertedCopy(anInset)) _function(CGInsetIsEmpty(anInset)) _function(CGInsetEqualToInset(lhsInset, rhsInset)) From 8444f808f64016f0ab751f1d53ac221a90f88040 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Wed, 18 Jul 2012 09:53:09 -0700 Subject: [PATCH 102/109] By default controls will track the system font size Use current system font size elsewhere --- AppKit/CPControl.j | 2 +- AppKit/Themes/BlendKit/BKThemeDescriptor.j | 2 +- AppKit/Themes/Default/AppController.j | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/AppKit/CPControl.j b/AppKit/CPControl.j index b4140e6e5..25cb70f99 100644 --- a/AppKit/CPControl.j +++ b/AppKit/CPControl.j @@ -112,7 +112,7 @@ var CPControlBlackColor = [CPColor blackColor]; CPTopVerticalTextAlignment, CPLineBreakByClipping, [CPColor blackColor], - [CPFont systemFontOfSize:12.0], + [CPFont systemFontOfSize:CPFontCurrentSystemSize], [CPNull null], _CGSizeMakeZero(), CPImageLeft, diff --git a/AppKit/Themes/BlendKit/BKThemeDescriptor.j b/AppKit/Themes/BlendKit/BKThemeDescriptor.j index 93133d489..0fbe4477c 100644 --- a/AppKit/Themes/BlendKit/BKThemeDescriptor.j +++ b/AppKit/Themes/BlendKit/BKThemeDescriptor.j @@ -181,7 +181,7 @@ var ItemSizes = { }, if ([object isKindOfClass:[CPView class]]) { var size = [object frame].size, - labelWidth = [[template valueForKey:@"label"] sizeWithFont:[CPFont boldSystemFontOfSize:12.0]].width + 20.0; + labelWidth = [[template valueForKey:@"label"] sizeWithFont:[CPFont boldSystemFontOfSize:0]].width + 20.0; if (size.width > itemSize.width) itemSize.width = size.width; diff --git a/AppKit/Themes/Default/AppController.j b/AppKit/Themes/Default/AppController.j index 8ccddb630..66ea14d1a 100644 --- a/AppKit/Themes/Default/AppController.j +++ b/AppKit/Themes/Default/AppController.j @@ -142,7 +142,7 @@ [_label setAlignment:CPCenterTextAlignment]; [_label setAutoresizingMask:CPViewMinYMargin | CPViewWidthSizable]; - [_label setFont:[CPFont boldSystemFontOfSize:12.0]]; + [_label setFont:[CPFont boldSystemFontOfSize:0]]; [self addSubview:_label]; } From b0a56f1690a89bb352f0a26216251c6a53be14c3 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Wed, 18 Jul 2012 19:21:20 +0100 Subject: [PATCH 103/109] Fixed: removing selected `CPPopUpButton` item. When the selected item of a `CPPopUpButton` is removed the first item should become selected. This matches Cocoa's behaviour. --- AppKit/CPPopUpButton.j | 16 ++++++++++++---- Tests/AppKit/CPPopUpButtonTest.j | 32 +++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/AppKit/CPPopUpButton.j b/AppKit/CPPopUpButton.j index 43d5ac3dc..84ab5adcc 100644 --- a/AppKit/CPPopUpButton.j +++ b/AppKit/CPPopUpButton.j @@ -588,10 +588,18 @@ CPPopUpButtonStatePullsDown = CPThemeState("pulls-down"); if ([indexes containsIndex:0] && [self pullsDown]) [self _firstItemDidChange]; - // See whether the index has changed, despite the actual item not changing. - while ((index = [indexes indexGreaterThanIndex:index]) !== CPNotFound && - index <= indexOfSelectedItem) - --indexOfSelectedItem; + if (![self pullsDown] && [indexes containsIndex:indexOfSelectedItem]) + { + // If the selected item is removed the first item becomes selected. + indexOfSelectedItem = 0; + } + else + { + // See whether the index has changed, despite the actual item not changing. + while ((index = [indexes indexGreaterThanIndex:index]) !== CPNotFound && + index <= indexOfSelectedItem) + --indexOfSelectedItem; + } [self selectItemAtIndex:indexOfSelectedItem]; } diff --git a/Tests/AppKit/CPPopUpButtonTest.j b/Tests/AppKit/CPPopUpButtonTest.j index e2c9ebc62..9711c0f0e 100644 --- a/Tests/AppKit/CPPopUpButtonTest.j +++ b/Tests/AppKit/CPPopUpButtonTest.j @@ -49,8 +49,11 @@ [[popUpButton menu] removeItemAtIndex:5]; - [self assert:4 equals:[popUpButton indexOfSelectedItem]]; + // Removing the selected item resets the selection to item 0. + [self assert:0 equals:[popUpButton indexOfSelectedItem]]; + // Removing an item underneath the selected item moves the selection. + [popUpButton selectItemAtIndex:4]; [[popUpButton menu] removeItemAtIndex:0]; [self assert:3 equals:[popUpButton indexOfSelectedItem]]; @@ -202,4 +205,31 @@ [self assert:2 equals:[[self button] indexOfItemWithTitle:@"three"]]; } +- (void)testRemoveItemAtIndex_ +{ + button = [[CPPopUpButton alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 28.0) pullsDown:NO]; + + [self assert:CPNotFound equals:[button indexOfSelectedItem] message:"no item selected in empty pop up"]; + + [button addItemWithTitle:@"one"]; + [button addItemWithTitle:@"two"]; + [button addItemWithTitle:@"three"]; + [button addItemWithTitle:@"four"]; + + // Note this behaviour is different for pullsDown:YES. + [self assert:0 equals:[button indexOfSelectedItem] message:"first item selected after items added"]; + + [button selectItemAtIndex:3]; + + [self assert:3 equals:[button indexOfSelectedItem] message:"last item selected"]; + + [button removeItemAtIndex:3]; + [self assert:0 equals:[button indexOfSelectedItem] message:"first item selected after selected item deleted"]; + + [button selectItemAtIndex:2]; + [button removeItemAtIndex:1]; + [self assert:1 equals:[button indexOfSelectedItem] message:"selection index reduced when a prior item is removed"]; +} + + @end From 20eb62b3d2fbb375a82e8362cee4bb4dd3280638 Mon Sep 17 00:00:00 2001 From: Aparajita Fishman Date: Wed, 18 Jul 2012 14:48:23 -0700 Subject: [PATCH 104/109] Use the proper modern DOCTYPE --- AppKit/Platform/DOM/CPPlatformString.j | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/AppKit/Platform/DOM/CPPlatformString.j b/AppKit/Platform/DOM/CPPlatformString.j index 5d06a9ee7..da3cc3a17 100644 --- a/AppKit/Platform/DOM/CPPlatformString.j +++ b/AppKit/Platform/DOM/CPPlatformString.j @@ -70,8 +70,7 @@ var DOMFixedWidthSpanElement = nil, bodyElement.appendChild(DOMIFrameElement); DOMIFrameDocument = (DOMIFrameElement.contentDocument || DOMIFrameElement.contentWindow.document); - DOMIFrameDocument.write(''+ - ''); + DOMIFrameDocument.write(''); DOMIFrameDocument.close(); // IE needs this wide
to prevent unwanted text wrapping: From 8aee458022eb1a400b1467fade0801f44158cb7f Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Thu, 19 Jul 2012 01:05:09 +0100 Subject: [PATCH 105/109] nib2cib support for button and radio button tags. --- Tools/nib2cib/NSButton.j | 2 ++ Tools/nib2cib/NSCell.j | 3 +++ Tools/nib2cib/NSMatrix.j | 1 + 3 files changed, 6 insertions(+) diff --git a/Tools/nib2cib/NSButton.j b/Tools/nib2cib/NSButton.j index f5597344c..59437de96 100644 --- a/Tools/nib2cib/NSButton.j +++ b/Tools/nib2cib/NSButton.j @@ -269,6 +269,8 @@ var NSButtonIsBorderedMask = 0x00800000, _highlightsBy = [cell highlightsBy]; _showsStateBy = [cell showsStateBy]; + [self setTag:[cell tag]]; + return self; } diff --git a/Tools/nib2cib/NSCell.j b/Tools/nib2cib/NSCell.j index ae8b2709f..23ba1264f 100644 --- a/Tools/nib2cib/NSCell.j +++ b/Tools/nib2cib/NSCell.j @@ -49,6 +49,7 @@ CPFont _font @accessors(readonly, getter=font); int _lineBreakMode @accessors(readonly, getter=lineBreakMode); CPFormatter _formatter @accessors(readonly, getter=formatter); + int _tag @accessors(readonly, getter=tag); } - (id)initWithCoder:(CPCoder)aCoder @@ -81,6 +82,8 @@ _font = [aCoder decodeObjectForKey:@"NSSupport"]; _formatter = [aCoder decodeObjectForKey:@"NSFormatter"]; + + _tag = [aCoder decodeIntForKey:@"NSTag"]; } return self; diff --git a/Tools/nib2cib/NSMatrix.j b/Tools/nib2cib/NSMatrix.j index a71e3ef98..4f061a52e 100644 --- a/Tools/nib2cib/NSMatrix.j +++ b/Tools/nib2cib/NSMatrix.j @@ -115,6 +115,7 @@ var NSMatrixRadioModeMask = 0x40000000, [self setAllowsMixedState:[aCell allowsMixedState]]; [self setObjectValue:[aCell objectValue]]; [self setEnabled:[aCell isEnabled]]; + [self setTag:[aCell tag]]; } return self; From 835bd593303e682d6275b716f9273f83ef9cfe68 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Thu, 19 Jul 2012 16:34:15 +0100 Subject: [PATCH 106/109] Fixed: popovers in modal windows couldn't be interacted with. This prevented e.g. date picker popovers in sheet dialogs. --- AppKit/CPApplication.j | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/AppKit/CPApplication.j b/AppKit/CPApplication.j index b57c26a98..f92a27412 100644 --- a/AppKit/CPApplication.j +++ b/AppKit/CPApplication.j @@ -1186,7 +1186,11 @@ _CPRunModalLoop = function(anEvent) var theWindow = [anEvent window], modalSession = CPApp._currentSession; - if (theWindow == modalSession._window || [theWindow worksWhenModal]) + // The special case for popovers here is not clear. In Cocoa the popover window does not respond YES to worksWhenModal, + // yet it works when there is a modal window. Maybe it starts its own modal session, but interaction with the original + // modal window seems to continue working as well. Regardless of correctness, this solution beats popovers not working + // at all from sheets. + if (theWindow == modalSession._window || [theWindow worksWhenModal] || ([theWindow isKindOfClass:_CPAttachedWindow] && [[theWindow targetView] window] === modalSession._window)) [theWindow sendEvent:anEvent]; }; From 7e562fa3aa6d378ba0c4cb03f8ae5d2c687a8f7f Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Sat, 21 Jul 2012 13:08:54 +0100 Subject: [PATCH 107/109] Fixes #1624. Fix grouping for `CPNumberFormatter`. --- Foundation/CPNumberFormatter.j | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Foundation/CPNumberFormatter.j b/Foundation/CPNumberFormatter.j index 3bb9489a9..0dc2e950d 100644 --- a/Foundation/CPNumberFormatter.j +++ b/Foundation/CPNumberFormatter.j @@ -96,11 +96,13 @@ CPNumberFormatterRoundHalfUp = CPRoundPlain; // TODO This is just a temporary solution. Should be generalised. // Add in thousands separators. if (perMillSymbol) - while (commaPosition < [preFraction length]) + { + for (var commaPosition = 3, prefLength = [preFraction length]; commaPosition < prefLength; commaPosition += 4) { - preFraction = [preFraction stringByReplacingCharactersInRange:CPMakeRange(commaPosition, 0) withString:perMillSymbol]; - commaPosition += 4; + preFraction = [preFraction stringByReplacingCharactersInRange:CPMakeRange(prefLength - commaPosition, 0) withString:perMillSymbol]; + prefLength += 1; } + } if (fraction) return preFraction + "." + fraction; From a78c1bf03a2f2111317544531d5ed61175c36ed8 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Sat, 21 Jul 2012 13:12:59 +0100 Subject: [PATCH 108/109] Refs #1624. Fix grouping separator support. `perMillSymbol` was incorrectly used as the grouping separator. --- Foundation/CPNumberFormatter.j | 20 +++++--------------- Tests/Foundation/CPNumberFormatterTest.j | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/Foundation/CPNumberFormatter.j b/Foundation/CPNumberFormatter.j index 0dc2e950d..0197d02ef 100644 --- a/Foundation/CPNumberFormatter.j +++ b/Foundation/CPNumberFormatter.j @@ -57,6 +57,7 @@ CPNumberFormatterRoundHalfUp = CPRoundPlain; { CPNumberFormatterStyle _numberStyle @accessors(property=numberStyle); CPString _perMillSymbol @accessors(property=perMillSymbol); + CPString _groupingSeparator @accessors(property=groupingSeparator); CPNumberFormatterRoundingMode _roundingMode @accessors(property=roundingMode); CPUInteger _maximumFractionalDigits @accessors(property=maximalFractionalDigits); @@ -69,6 +70,7 @@ CPNumberFormatterRoundHalfUp = CPRoundPlain; { _roundingMode = CPNumberFormatterRoundHalfUp; _maximumFractionalDigits = 3; + _groupingSeparator = @","; } return self; @@ -90,16 +92,15 @@ CPNumberFormatterRoundHalfUp = CPRoundPlain; preFraction = parts[0], fraction = parts.length > 1 ? parts[1] : "", preFractionLength = [preFraction length], - commaPosition = 3, - perMillSymbol = [self _effectivePerMillSymbol]; + commaPosition = 3; // TODO This is just a temporary solution. Should be generalised. // Add in thousands separators. - if (perMillSymbol) + if (_groupingSeparator) { for (var commaPosition = 3, prefLength = [preFraction length]; commaPosition < prefLength; commaPosition += 4) { - preFraction = [preFraction stringByReplacingCharactersInRange:CPMakeRange(prefLength - commaPosition, 0) withString:perMillSymbol]; + preFraction = [preFraction stringByReplacingCharactersInRange:CPMakeRange(prefLength - commaPosition, 0) withString:_groupingSeparator]; prefLength += 1; } } @@ -141,17 +142,6 @@ CPNumberFormatterRoundHalfUp = CPRoundPlain; return YES; } -/*! - @ignore - Return the perMillSymbol if set, otherwise the locale default. -*/ -- (CPString)_effectivePerMillSymbol -{ - if (_perMillSymbol === nil || _perMillSymbol === undefined) - return ","; // (FIXME US Locale specific.) - return _perMillSymbol; -} - - (void)setRoundingMode:(CPNumberFormatterRoundingMode)aRoundingMode { _roundingMode = aRoundingMode; diff --git a/Tests/Foundation/CPNumberFormatterTest.j b/Tests/Foundation/CPNumberFormatterTest.j index 05ded5fc9..67f4addcb 100644 --- a/Tests/Foundation/CPNumberFormatterTest.j +++ b/Tests/Foundation/CPNumberFormatterTest.j @@ -16,6 +16,29 @@ [self assert:@"122,344.456" equals:formattedNumberString]; } +- (void)testSetGroupingSeparator_ +{ + var numberFormatter = [CPNumberFormatter new]; + [numberFormatter setNumberStyle:CPNumberFormatterDecimalStyle]; + + [self assert:@"1" equals:[numberFormatter stringFromNumber:[CPNumber numberWithInt:1]]]; + [self assert:@"12" equals:[numberFormatter stringFromNumber:[CPNumber numberWithInt:12]]]; + [self assert:@"123" equals:[numberFormatter stringFromNumber:[CPNumber numberWithInt:123]]]; + [self assert:@"1,234" equals:[numberFormatter stringFromNumber:[CPNumber numberWithInt:1234]]]; + [self assert:@"12,345" equals:[numberFormatter stringFromNumber:[CPNumber numberWithInt:12345]]]; + [self assert:@"123,456" equals:[numberFormatter stringFromNumber:[CPNumber numberWithInt:123456]]]; + [self assert:@"1,234,567" equals:[numberFormatter stringFromNumber:[CPNumber numberWithInt:1234567]]]; + + [numberFormatter setGroupingSeparator:@" "]; + [self assert:@"1" equals:[numberFormatter stringFromNumber:[CPNumber numberWithInt:1]]]; + [self assert:@"12" equals:[numberFormatter stringFromNumber:[CPNumber numberWithInt:12]]]; + [self assert:@"123" equals:[numberFormatter stringFromNumber:[CPNumber numberWithInt:123]]]; + [self assert:@"1 234" equals:[numberFormatter stringFromNumber:[CPNumber numberWithInt:1234]]]; + [self assert:@"12 345" equals:[numberFormatter stringFromNumber:[CPNumber numberWithInt:12345]]]; + [self assert:@"123 456" equals:[numberFormatter stringFromNumber:[CPNumber numberWithInt:123456]]]; + [self assert:@"1 234 567" equals:[numberFormatter stringFromNumber:[CPNumber numberWithInt:1234567]]]; +} + - (void)testRoundingMode { var numberFormatter = [[CPNumberFormatter alloc] init], From 8d1a5ac6b90b01c98ccd1f6dc8115aac5daba91c Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Sat, 21 Jul 2012 13:24:13 +0100 Subject: [PATCH 109/109] Format code. --- AppKit/CPRuleEditor/CPRuleEditor.j | 56 ++++++++++++++---------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/AppKit/CPRuleEditor/CPRuleEditor.j b/AppKit/CPRuleEditor/CPRuleEditor.j index e537a9199..9f30eb120 100644 --- a/AppKit/CPRuleEditor/CPRuleEditor.j +++ b/AppKit/CPRuleEditor/CPRuleEditor.j @@ -507,7 +507,7 @@ var CPRuleEditorItemPBoardType = @"CPRuleEditorItemPBoardType", - (int)parentRowForRow:(int)rowIndex { if (rowIndex < 0 || rowIndex >= [self numberOfRows]) - [CPException raise:CPRangeException reason:_cmd+@" row " + rowIndex + " is out of range"]; + [CPException raise:CPRangeException reason:_cmd + @" row " + rowIndex + " is out of range"]; var targetObject = [[self _rowCacheForIndex:rowIndex] rowObject]; @@ -548,7 +548,7 @@ TODO: implement - (CPRuleEditorRowType)rowTypeForRow:(int)rowIndex { if (rowIndex < 0 || rowIndex > [self numberOfRows]) - [CPException raise:CPRangeException reason:_cmd+@"row " + rowIndex + " is out of range"]; + [CPException raise:CPRangeException reason:_cmd + @"row " + rowIndex + " is out of range"]; var rowcache = [self _rowCacheForIndex:rowIndex]; if (rowcache) @@ -588,7 +588,7 @@ TODO: implement if (indexInSubrows !== CPNotFound) { [indexes addIndex:i]; - objectsCount --; + objectsCount--; if ([self rowTypeForRow:i] === CPRuleEditorRowTypeCompound) i += [[self subrowIndexesForRow:i] count]; @@ -848,7 +848,7 @@ TODO: implement } catch(error) { - CPLogConsole(@"Compound predicate error: [%@]\npredicateType:%i",[error description],compoundType); + CPLogConsole(@"Compound predicate error: [%@]\npredicateType:%i", [error description], compoundType); compoundPredicate = nil; } finally @@ -893,23 +893,21 @@ TODO: implement try { if (selector !== nil) - predicate = [CPComparisonPredicate - predicateWithLeftExpression:lhs - rightExpression:rhs - customSelector:selector + predicate = [CPComparisonPredicate predicateWithLeftExpression:lhs + rightExpression:rhs + customSelector:selector ]; else - predicate = [CPComparisonPredicate - predicateWithLeftExpression:lhs - rightExpression:rhs - modifier:(modifier || CPDirectPredicateModifier) - type:operator - options:(options || CPCaseInsensitivePredicateOption) + predicate = [CPComparisonPredicate predicateWithLeftExpression:lhs + rightExpression:rhs + modifier:(modifier || CPDirectPredicateModifier) + type:operator + options:(options || CPCaseInsensitivePredicateOption) ]; } catch(error) { - CPLogConsole(@"Row predicate error: ["+[error description]+"] for row "+aRow); + CPLogConsole(@"Row predicate error: [" + [error description] + "] for row " + aRow); predicate = nil; } finally @@ -1135,7 +1133,7 @@ TODO: implement - (_CPRuleEditorViewSliceDropSeparator)_createSliceDropSeparator { - var view = [[_CPRuleEditorViewSliceDropSeparator alloc] initWithFrame:CGRectMake(0,-10, [self frame].size.width, 2)]; + var view = [[_CPRuleEditorViewSliceDropSeparator alloc] initWithFrame:CGRectMake(0, -10, [self frame].size.width, 2)]; [view setAutoresizingMask:CPViewWidthSizable]; return view; } @@ -1316,7 +1314,7 @@ TODO: implement return [_boundArrayOwner mutableArrayValueForKey:_boundArrayKeyPath]; } -- (BOOL)_nextUnusedItems:({CPArray})items andValues:({CPArray})values forRow:(int)rowIndex forRowType:(unsigned int)type +- (BOOL)_nextUnusedItems:(CPArray)items andValues:(CPArray)values forRow:(int)rowIndex forRowType:(unsigned int)type { var parentItem = [items lastObject], // if empty items array, this is NULL aka the root item; childrenCount = [self _queryNumberOfChildrenOfItem:parentItem withRowType:type], @@ -1398,7 +1396,7 @@ TODO: implement { var item = [items objectAtIndex:i], value = [values objectAtIndex:i], - itemAndValue = [CPDictionary dictionaryWithObjects:[item,value] forKeys:["item","value"]]; + itemAndValue = [CPDictionary dictionaryWithObjects:[item, value] forKeys:["item", "value"]]; [itemsAndValues addObject:itemAndValue]; } @@ -2109,9 +2107,9 @@ TODO: implement mainRowIndex = [slice rowIndex], draggingRows = [CPIndexSet indexSetWithIndex:mainRowIndex], selected_indices = [self _selectedSliceIndices], - pasteboard = [CPPasteboard pasteboardWithName: CPDragPboard]; + pasteboard = [CPPasteboard pasteboardWithName:CPDragPboard]; - [pasteboard declareTypes:[CPArray arrayWithObjects: CPRuleEditorItemPBoardType, nil] owner: self]; + [pasteboard declareTypes:[CPArray arrayWithObjects:CPRuleEditorItemPBoardType, nil] owner: self]; if ([selected_indices containsIndex:mainRowIndex]) [draggingRows addIndexes:selected_indices]; @@ -2314,7 +2312,7 @@ TODO: implement { var rowObject = [[self _rowCacheForIndex:current_index] rowObject], subrows = [self _subrowObjectsOfObject:rowObject], - subIndexes = [self _globalIndexesForSubrowIndexes:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(0,[subrows count])] ofParentObject:rowObject]; + subIndexes = [self _globalIndexesForSubrowIndexes:[CPIndexSet indexSetWithIndexesInRange:CPMakeRange(0, [subrows count])] ofParentObject:rowObject]; numberOfChildrenOfPreviousBrother = [subIndexes count]; } @@ -2416,17 +2414,17 @@ var CPRuleEditorAlignmentGridWidthKey = @"CPRuleEditorAlignmentGridWidth", if (self !== nil) { [self setFormattingStringsFilename:[coder decodeObjectForKey:CPRuleEditorStringsFilenameKey]]; - _alignmentGridWidth = [coder decodeFloatForKey:CPRuleEditorAlignmentGridWidthKey]; - _sliceHeight = [coder decodeDoubleForKey:CPRuleEditorSliceHeightKey]; + _alignmentGridWidth = [coder decodeFloatForKey:CPRuleEditorAlignmentGridWidthKey]; + _sliceHeight = [coder decodeDoubleForKey:CPRuleEditorSliceHeightKey]; _editable = [coder decodeBoolForKey:CPRuleEditorEditableKey]; _allowsEmptyCompoundRows = [coder decodeBoolForKey:CPRuleEditorAllowsEmptyCompoundRowsKey]; _disallowEmpty = [coder decodeBoolForKey:CPRuleEditorDisallowEmptyKey]; - _nestingMode = [coder decodeIntForKey:CPRuleEditorNestingModeKey]; - _typeKeyPath = [coder decodeObjectForKey:CPRuleEditorRowTypeKeyPathKey]; - _itemsKeyPath = [coder decodeObjectForKey:CPRuleEditorItemsKeyPathKey]; - _valuesKeyPath = [coder decodeObjectForKey:CPRuleEditorValuesKeyPathKey]; - _subrowsArrayKeyPath = [coder decodeObjectForKey:CPRuleEditorSubrowsArrayKeyPathKey]; - _boundArrayKeyPath = [coder decodeObjectForKey:CPRuleEditorBoundArrayKeyPathKey]; + _nestingMode = [coder decodeIntForKey:CPRuleEditorNestingModeKey]; + _typeKeyPath = [coder decodeObjectForKey:CPRuleEditorRowTypeKeyPathKey]; + _itemsKeyPath = [coder decodeObjectForKey:CPRuleEditorItemsKeyPathKey]; + _valuesKeyPath = [coder decodeObjectForKey:CPRuleEditorValuesKeyPathKey]; + _subrowsArrayKeyPath = [coder decodeObjectForKey:CPRuleEditorSubrowsArrayKeyPathKey]; + _boundArrayKeyPath = [coder decodeObjectForKey:CPRuleEditorBoundArrayKeyPathKey]; _slicesHolder = [[self subviews] objectAtIndex:0]; _boundArrayOwner = [coder decodeObjectForKey:CPRuleEditorBoundArrayOwnerKey];