diff --git a/AppKit/Cib/CPCib.j b/AppKit/Cib/CPCib.j index 62ea03c1b..fd36feac9 100644 --- a/AppKit/Cib/CPCib.j +++ b/AppKit/Cib/CPCib.j @@ -63,6 +63,14 @@ var CPCibObjectDataKey = @"CPCibObjectDataKey"; var owner = [anExternalNameTable objectForKey:CPCibOwner], topLevelObjects = [anExternalNameTable objectForKey:CPCibTopLevelObjects]; + + var menu; + if ((menu = [objectData mainMenu]) != nil) + { + [CPApp setMainMenu:menu]; + [CPMenu setMenuBarVisible:YES]; + } + /* // [objectData establishConnectionsWithOwner:owner topLevelObjects:topLevelObjects]; // [objectData cibInstantiateWithOwner:owner topLevelObjects:topLevelObjects]; diff --git a/AppKit/Cib/_CPCibObjectData.j b/AppKit/Cib/_CPCibObjectData.j index b992d18b5..ec0608d85 100644 --- a/AppKit/Cib/_CPCibObjectData.j +++ b/AppKit/Cib/_CPCibObjectData.j @@ -80,6 +80,15 @@ return topLevelObjects; } +- (CPMenu)mainMenu +{ + var index = [_namesValues indexOfObjectIdenticalTo:"MainMenu"]; + if (index === CPNotFound) + return nil; + + return _namesKeys[index]; +} + @end var _CPCibObjectDataNamesKeysKey = @"_CPCibObjectDataNamesKeysKey", diff --git a/AppKit/Cib/_CPCibWindowTemplate.j b/AppKit/Cib/_CPCibWindowTemplate.j index 31d9ce3a1..b99b1d94f 100644 --- a/AppKit/Cib/_CPCibWindowTemplate.j +++ b/AppKit/Cib/_CPCibWindowTemplate.j @@ -78,7 +78,6 @@ var _CPCibWindowTemplateMinSizeKey = @"_CPCibWindowTemplateMinSizeKey", [NSException raise:NSInvalidArgumentException format:@"Unable to locate NSWindow class %@, using NSWindow",_windowClass]; class=[NSWindow class];*/ - _windowStyleMask = (CPHUDBackgroundWindowMask | CPClosableWindowMask | CPResizableWindowMask); var theWindow = [[windowClass alloc] initWithContentRect:_windowRect styleMask:_windowStyleMask]; if (_minSize) diff --git a/Tools/NibApp/AppController.j b/Tools/NibApp/AppController.j index 23f49feef..940178a58 100644 --- a/Tools/NibApp/AppController.j +++ b/Tools/NibApp/AppController.j @@ -6,7 +6,6 @@ import @implementation AppController : CPObject { CPWindow _window; - CPWindow _secondWindow; CPView _view; } @@ -23,7 +22,8 @@ import [contentView addSubview:_view]; [theWindow orderFront:self]; - [_secondWindow orderFront:self]; + // HACK: shift the window down to accomodate for menubar + [theWindow setFrameOrigin:CGPointMake([theWindow frame].origin.x, [theWindow frame].origin.y + 29)]; } @end \ No newline at end of file diff --git a/Tools/NibApp/AutoresizeTest.xib b/Tools/NibApp/AutoresizeTest.xib new file mode 100644 index 000000000..ea80e75e6 --- /dev/null +++ b/Tools/NibApp/AutoresizeTest.xib @@ -0,0 +1,731 @@ + + + + 1050 + 9F33 + 672 + 949.34 + 352.00 + + YES + + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + NSObject + + + FirstResponder + + + NSApplication + + + + 268 + + YES + + + 301 + {{20, 18}, {92, 19}} + + YES + + -2080244224 + 134217728 + Open! + + LucidaGrande + 1.200000e+01 + 16 + + + -2038152961 + 164 + + + 400 + 75 + + + + {480, 272} + + NSView + + + 15 + 2 + {{0, 0}, {374, 374}} + 603979776 + Window + NSWindow + + {668, 668} + {374, 374} + + + 256 + + YES + + + 296 + + YES + + YES + NSColor pasteboard type + + + {{20, 172}, {30, 30}} + + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 264 + + YES + + YES + NSColor pasteboard type + + + {{58, 172}, {30, 30}} + + 1 + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 312 + + YES + + YES + NSColor pasteboard type + + + {{96, 172}, {30, 30}} + + 2 + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 280 + + YES + + YES + NSColor pasteboard type + + + {{134, 172}, {30, 30}} + + 3 + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 288 + + YES + + YES + NSColor pasteboard type + + + {{210, 172}, {30, 30}} + + 4 + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 256 + + YES + + YES + NSColor pasteboard type + + + {{248, 172}, {30, 30}} + + 5 + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 304 + + YES + + YES + NSColor pasteboard type + + + {{286, 172}, {30, 30}} + + 6 + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 272 + + YES + + YES + NSColor pasteboard type + + + {{324, 172}, {30, 30}} + + 7 + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 261 + + YES + + YES + NSColor pasteboard type + + + {{172, 324}, {30, 30}} + + 8 + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 260 + + YES + + YES + NSColor pasteboard type + + + {{172, 286}, {30, 30}} + + 9 + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 263 + + YES + + YES + NSColor pasteboard type + + + {{172, 248}, {30, 30}} + + 10 + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 262 + + YES + + YES + NSColor pasteboard type + + + {{172, 210}, {30, 30}} + + 11 + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 257 + + YES + + YES + NSColor pasteboard type + + + {{172, 134}, {30, 30}} + + 12 + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 256 + + YES + + YES + NSColor pasteboard type + + + {{172, 96}, {30, 30}} + + 13 + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 259 + + YES + + YES + NSColor pasteboard type + + + {{172, 58}, {30, 30}} + + 14 + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + + 258 + + YES + + YES + NSColor pasteboard type + + + {{172, 20}, {30, 30}} + + 15 + YES + YES + + 1 + MC4wNTgxMzA0OTkgMC4wNTU1NDE4OTkgMQA + + + + {374, 374} + + + {{0, 0}, {1920, 1178}} + {374, 396} + {668, 690} + + + + + YES + + + view + + + + 20 + + + + window + + + + 21 + + + + orderFront: + + + + 150 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + 12 + + + YES + + + + + + 13 + + + YES + + + + + + + + + + + + + + + + + + + + + 148 + + + YES + + + + + + 149 + + + + + 503 + + + + + 504 + + + + + 505 + + + + + 506 + + + + + 507 + + + + + 508 + + + + + 509 + + + + + 510 + + + + + 513 + + + + + 514 + + + + + 515 + + + + + 516 + + + + + 517 + + + + + 518 + + + + + 519 + + + + + 520 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 12.IBEditorWindowLastContentRect + 12.IBPluginDependency + 12.IBWindowTemplateEditedContentRect + 12.NSWindowTemplate.visibleAtLaunch + 12.editorWindowContentRectSynchronizationRect + 12.windowTemplate.hasMaxSize + 12.windowTemplate.hasMinSize + 12.windowTemplate.maxSize + 12.windowTemplate.minSize + 13.IBPluginDependency + 148.IBPluginDependency + 149.IBPluginDependency + 503.IBPluginDependency + 504.IBPluginDependency + 505.IBPluginDependency + 506.IBPluginDependency + 507.IBPluginDependency + 508.IBPluginDependency + 509.IBPluginDependency + 510.IBPluginDependency + 513.IBPluginDependency + 514.IBPluginDependency + 515.IBPluginDependency + 516.IBPluginDependency + 517.IBPluginDependency + 518.IBPluginDependency + 519.IBPluginDependency + 520.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{395, 799}, {480, 272}} + com.apple.InterfaceBuilder.CocoaPlugin + {628, 654} + {{319, 416}, {480, 272}} + {{233, 273}, {374, 374}} + com.apple.InterfaceBuilder.CocoaPlugin + {{233, 273}, {374, 374}} + + {{196, 240}, {480, 270}} + + + {668, 668} + {374, 374} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + 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 + + YES + + + YES + + + + 522 + + + + YES + + NSObject + + YES + + YES + view + window + + + YES + id + id + + + + IBUserSource + + + + + + 0 + + 3 + + diff --git a/Tools/NibApp/HelloWorld.xib b/Tools/NibApp/HelloWorld.xib index 46a466b0a..f3e1dd117 100644 --- a/Tools/NibApp/HelloWorld.xib +++ b/Tools/NibApp/HelloWorld.xib @@ -1,25 +1,26 @@ - + 1050 - 9F33 - 672 - 949.34 + 9F2114 + 629 + 949.41 352.00 YES + - + YES - com.apple.WebKitIBPlugin - com.apple.InterfaceBuilder.CocoaPlugin + com.apple.WebKitIBPlugin + com.apple.InterfaceBuilder.CocoaPlugin YES - NSObject + NSObject FirstResponder @@ -37,13 +38,14 @@ 268 {{20, 230}, {96, 22}} + YES -1804468671 272630784 - + - LucidaGrande + LucidaGrande 1.300000e+01 1044 @@ -51,7 +53,7 @@ YES 6 - System + System textBackgroundColor 3 @@ -60,7 +62,7 @@ 6 - System + textColor 3 @@ -74,11 +76,12 @@ 268 {{20, 198}, {96, 22}} + YES -1804468671 272630784 - + YES @@ -91,6 +94,7 @@ 268 {{20, 230}, {96, 22}} + YES -1804468671 @@ -114,7 +118,7 @@ Apple PICT pasteboard type Apple URL pasteboard type Apple Web Archive pasteboard type - NSColor pasteboard type + NSColor pasteboard type NSFilenamesPboardType NSStringPboardType NeXT RTFD pasteboard type @@ -128,11 +132,12 @@ {{158, 20}, {302, 204}} + - - + + - + YES @@ -143,7 +148,7 @@ YES - + @@ -157,6 +162,7 @@ 268 {{158, 230}, {114, 22}} + YES -1804468671 @@ -174,21 +180,22 @@ 268 {{280, 230}, {31, 19}} + YES -2080244224 134217728 PC0 - LucidaGrande + 1.200000e+01 16 -2038152961 164 - - + + 400 75 @@ -198,6 +205,7 @@ 268 {{319, 230}, {31, 19}} + YES -2080244224 @@ -207,8 +215,8 @@ -2038152961 164 - - + + 400 75 @@ -218,6 +226,7 @@ 268 {{358, 230}, {40, 19}} + YES -2080244224 @@ -227,8 +236,8 @@ -2038152961 164 - - + + 400 75 @@ -238,17 +247,22 @@ 268 {{406, 230}, {54, 19}} + YES -2080244224 134217728 Reload - + + + 1.200000e+01 + 4883 + - -2038152961 + -2035007233 164 - + 400 75 @@ -258,11 +272,12 @@ 268 {{20, 159}, {96, 21}} + YES -2079981824 0 - + Helvetica 1.200000e+01 @@ -284,11 +299,12 @@ 268 {{20, 136}, {96, 21}} + YES -2080244224 0 - + 1.000000e+02 @@ -306,11 +322,12 @@ 268 {{20, 94}, {96, 22}} + YES -1804468671 272630784 - + YES @@ -323,11 +340,12 @@ 268 {{18, 67}, {96, 21}} + YES -2079981824 0 - + 1.000000e+02 @@ -345,11 +363,12 @@ 268 {{18, 47}, {96, 21}} + YES -2079981824 0 - + 8.000000e+01 @@ -369,11 +388,12 @@ YES YES - NSColor pasteboard type + {{130, 20}, {44, 23}} + YES YES YES @@ -389,11 +409,12 @@ YES YES - NSColor pasteboard type + {{130, 51}, {44, 23}} + YES 1 @@ -405,6 +426,7 @@ 268 {{20, 18}, {92, 19}} + YES -2080244224 @@ -414,8 +436,8 @@ -2038152961 164 - - + + 400 75 @@ -423,17 +445,19 @@ {480, 272} + NSView 15 2 - {{196, 240}, {480, 270}} + {{196, 317}, {299, 193}} 603979776 - Window - NSWindow + Window + NSWindow - {3.40282e+38, 3.40282e+38} + {10000, 10000} + {299, 193} 256 @@ -441,67 +465,1083 @@ YES - 268 - {{145, 113}, {154, 19}} + 293 + {{121, 18}, {67, 19}} + YES -2080244224 134217728 - yikes! + Close! -2038152961 164 - - + + 400 75 - + 268 - {{0, 251}, {154, 19}} + {{17, 149}, {138, 26}} + YES - + + -2076049856 + 2048 + + + 109199615 + 1 + + + 400 + 75 + + + Item 1 + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Item 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 1 + YES + YES + 2 + + + + {299, 193} + + + + {{0, 0}, {1280, 778}} + {299, 215} + + + 15 + 2 + {{196, 187}, {276, 323}} + 603979776 + + + + {3.40282e+38, 3.40282e+38} + + + 256 + + YES + + + 268 + {{14, 275}, {96, 32}} + + + YES + + 67239424 + 134217728 + Button + + + -2034876161 + 129 + + + + 200 + 25 + + + + + 268 + {{20, 216}, {106, 23}} + + + YES + + -2080244224 + 134217728 + Gradient Button + + + -2033434369 + 162 + + + 400 + 75 + + + + + 268 + {{20, 244}, {154, 19}} + + + YES + -2080244224 134217728 Round Rect Button - + -2038152961 164 - - + + + 400 + 75 + + + + + 268 + {{20, 163}, {154, 17}} + + + YES + + -2080244224 + 134348800 + Recessed Button + + LucidaGrande-Bold + 1.200000e+01 + 16 + + + -1232846593 + 173 + + + 400 + 75 + + + + + 268 + {{19, 187}, {111, 23}} + + + YES + + -2080244224 + 134217728 + Textured Button + + + -2033434369 + 160 + + + 400 + 75 + + + + + 268 + {{20, 133}, {118, 25}} + + + YES + + -2080244224 + 134217728 + Round Textured + + + -2038152961 + 163 + + + 400 + 75 + + + + + 268 + {{20, 100}, {145, 26}} + + + YES + + 67239424 + 134217728 + asdfasdf + + + -2033434369 + 134 + + + 400 + 75 + + + + + 268 + {{18, 56}, {149, 38}} + + + YES + + 67239424 + 134217728 + asdfasdfasdfasdf + + + 1.000000e+01 + 16 + + + -2033434369 + 130 + + + 400 + 75 + + + + + 268 + {{170, 301}, {106, 23}} + + + YES + + -2080244224 + 134217728 + Gradient Button + + + -2033434369 + 162 + + + 400 + 75 + + + + + 268 + {{170, -1}, {106, 23}} + + + YES + + -2080244224 + 134217728 + Gradient Button + + + -2033434369 + 162 + + + 400 + 75 + + + + + 268 + {{0, -1}, {106, 23}} + + + YES + + -2080244224 + 134217728 + Gradient Button + + + -2033434369 + 162 + + 400 75 - {480, 270} + {276, 323} + - {{0, 0}, {1680, 1028}} + {{0, 0}, {1280, 778}} {3.40282e+38, 3.40282e+38} - - 15 - 2 - {{196, 240}, {480, 270}} - 603979776 - Window - NSWindow - - {3.40282e+38, 3.40282e+38} - - - 256 - {480, 270} + + AMainMenu + + YES + + + NewApplication + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + About NewApplication + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + UHJlZmVyZW5jZXPigKY + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide NewApplication + h + 1048576 + 2147483647 + + + + + + Hide Others + + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit NewApplication + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + New + n + 1048576 + 2147483647 + + + + + + T3BlbuKApg + o + 1048576 + 2147483647 + + + + + + Open Recent + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + Save + s + 1048576 + 2147483647 + + + + + + U2F2ZSBBc+KApg + S + 1179648 + 2147483647 + + + + + + Revert to Saved + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Page Setup... + P + 1179648 + 2147483647 + + + + + + + UHJpbnTigKY + p + 1048576 + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + + + 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: + + + + YES + + + RmluZOKApg + 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: + + + + YES + + + U2hvdyBTcGVsbGluZ+KApg + : + 1048576 + 2147483647 + + + + + + Check Spelling + ; + 1048576 + 2147483647 + + + + + + Check Spelling While Typing + + 1048576 + 2147483647 + + + + + + Check Grammar With Spelling + + 1048576 + 2147483647 + + + + + + + + + Substitutions + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + Smart Copy/Paste + + 2147483647 + + + 1 + + + + Smart Quotes + + 2147483647 + + + 2 + + + + Smart Links + + 2147483647 + + + 3 + + + + + + + Speech + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + Start Speaking + + 1048576 + 2147483647 + + + + + + Stop Speaking + + 1048576 + 2147483647 + + + + + + + + + + + + Format + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + Show Fonts + t + 1048576 + 2147483647 + + + + + + Show Colors + C + 1179648 + 2147483647 + + + + + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + Show Toolbar + + 1572864 + 2147483647 + + + + + + Q3VzdG9taXplIFRvb2xiYXLigKY + + 1048576 + 2147483647 + + + + + + + + + + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + NewApplication Help + ? + 1048576 + 2147483647 + + + + + + - {{0, 0}, {1680, 1028}} - {3.40282e+38, 3.40282e+38} + _NSMainMenu @@ -509,7 +1549,7 @@ YES - view + view @@ -517,7 +1557,7 @@ - window + window @@ -573,7 +1613,7 @@ - takeFloatValueFrom: + takeFloatValueFrom: @@ -581,7 +1621,7 @@ - takeFloatValueFrom: + @@ -589,7 +1629,7 @@ - takeFloatValueFrom: + @@ -629,12 +1669,20 @@ - takeFloatValueFrom: + 151 + + + orderFront: + + + + 488 + @@ -705,7 +1753,7 @@ YES - + @@ -722,6 +1770,20 @@ 15 + + YES + + + + + + + + + + + + @@ -738,20 +1800,6 @@ - - 25 - - - YES - - - - - - 26 - - - 98 @@ -963,6 +2011,775 @@ + + 152 + + + YES + + + + + + 153 + + + YES + + + + + + 154 + + + YES + + + + + + + + 155 + + + + + 156 + + + + + 157 + + + + + 407 + + + YES + + + + + + + + + + MainMenu + + + 408 + + + YES + + + + + + 409 + + + YES + + + + + + 410 + + + YES + + + + + + 411 + + + YES + + + + + + 412 + + + YES + + + + 1 + + + 413 + + + YES + + + + + + 414 + + + YES + + + + + + 415 + + + YES + + + + + + + + + 416 + + + + + 417 + + + + + 418 + + + + + 419 + + + + + 420 + + + YES + + + + + + + + + + + + + + + + 421 + + + + + 422 + + + + + 423 + + + YES + + + + + + 424 + + + + + 425 + + + + + 426 + + + 121 + + + 427 + + + + + 428 + + + 1111 + + + 429 + + + + + 430 + + + + + 431 + + + + + 432 + + + + + 433 + + + YES + + + + 2 + + + 434 + + + + + 435 + + + YES + + + + + + + + + + + + + + + + + + 436 + + + YES + + + + + + 437 + + + YES + + + + + + 438 + + + YES + + + + + + 439 + + + YES + + + + + + 440 + + + + + 441 + + + + + 442 + + + + + 443 + + + + + 444 + + + + + 445 + + + + + 446 + + + + + 447 + + + + + 448 + + + + + 449 + + + YES + + + + + + + + + + 450 + + + + + 451 + + + + + 452 + + + + + 453 + + + + + 454 + + + + + 455 + + + YES + + + + + + + + + 456 + + + + + 457 + + + + + 458 + + + + + 459 + + + + + 460 + + + YES + + + + + + + 461 + + + + + 462 + + + + + 463 + + + YES + + + + + + + + 464 + + + + + 465 + + + + + 466 + + + + + 467 + + + YES + + + + + + + + + + + + + + + + 468 + + + + + + 469 + + + 10 + + + 470 + + + 7 + + + 471 + + + + + + 472 + + + 5 + + + 473 + + + YES + + + + + + 474 + + + 9 + + + 475 + + + + + 476 + + + 6 + + + 477 + + + 8 + + + 478 + + + 3 + + + 479 + + + YES + + + + + + 480 + + + + + 481 + + + YES + + + + + + + 482 + + + + + 483 + + + + + 484 + + + YES + + + + + + + 485 + + + + + 486 + + + + + 505 + + + YES + + + + + + 506 + + + + + 507 + + + YES + + + + + + 508 + + + + + 509 + + + YES + + + + + + 510 + + + + + 511 + + + YES + + + + + + 512 + + + + + 513 + + + YES + + + + + + 514 + + + + + 515 + + + YES + + + + + + 516 + + + + + 517 + + + YES + + + + + + 518 + + + + + 519 + + + YES + + + + + + 520 + + + + + 531 + + + YES + + + + + + 532 + + + + + 533 + + + YES + + + + + + 534 + + + + + 535 + + + YES + + + + + + 536 + + + @@ -997,6 +2814,10 @@ 12.IBWindowTemplateEditedContentRect 12.NSWindowTemplate.visibleAtLaunch 12.editorWindowContentRectSynchronizationRect + 12.windowTemplate.hasMaxSize + 12.windowTemplate.hasMinSize + 12.windowTemplate.maxSize + 12.windowTemplate.minSize 120.IBPluginDependency 122.IBPluginDependency 123.IBPluginDependency @@ -1010,70 +2831,468 @@ 132.IBPluginDependency 133.IBPluginDependency 14.IBPluginDependency + 14.IBWindowTemplateEditedContentRect 14.NSWindowTemplate.visibleAtLaunch + 14.editorWindowContentRectSynchronizationRect + 14.windowTemplate.hasMaxSize + 14.windowTemplate.maxSize 148.IBPluginDependency 149.IBPluginDependency 15.IBPluginDependency + 152.IBPluginDependency + 153.IBPluginDependency + 154.IBPluginDependency + 155.IBPluginDependency + 156.IBPluginDependency + 157.IBPluginDependency 16.IBPluginDependency 17.IBPluginDependency - 25.IBPluginDependency - 26.IBPluginDependency + 407.IBPluginDependency + 407.ImportedFromIB2 + 407.WindowOrigin + 407.editorWindowContentRectSynchronizationRect + 408.IBPluginDependency + 409.IBPluginDependency + 410.IBPluginDependency + 410.ImportedFromIB2 + 411.IBPluginDependency + 411.ImportedFromIB2 + 412.IBPluginDependency + 412.ImportedFromIB2 + 413.IBPluginDependency + 413.ImportedFromIB2 + 414.IBPluginDependency + 414.ImportedFromIB2 + 415.IBPluginDependency + 415.ImportedFromIB2 + 415.editorWindowContentRectSynchronizationRect + 416.IBPluginDependency + 416.ImportedFromIB2 + 417.IBPluginDependency + 417.ImportedFromIB2 + 418.IBPluginDependency + 418.ImportedFromIB2 + 419.IBPluginDependency + 419.ImportedFromIB2 + 420.IBPluginDependency + 420.ImportedFromIB2 + 420.editorWindowContentRectSynchronizationRect + 421.IBPluginDependency + 421.ImportedFromIB2 + 422.IBPluginDependency + 422.ImportedFromIB2 + 423.IBPluginDependency + 423.ImportedFromIB2 + 424.IBPluginDependency + 424.ImportedFromIB2 + 425.IBPluginDependency + 425.ImportedFromIB2 + 426.IBPluginDependency + 426.ImportedFromIB2 + 427.IBPluginDependency + 427.ImportedFromIB2 + 428.IBPluginDependency + 428.ImportedFromIB2 + 429.IBPluginDependency + 429.ImportedFromIB2 + 430.IBPluginDependency + 430.ImportedFromIB2 + 431.IBPluginDependency + 431.ImportedFromIB2 + 432.IBPluginDependency + 432.ImportedFromIB2 + 432.editorWindowContentRectSynchronizationRect + 433.IBPluginDependency + 433.ImportedFromIB2 + 433.editorWindowContentRectSynchronizationRect + 434.IBPluginDependency + 434.ImportedFromIB2 + 435.IBPluginDependency + 435.ImportedFromIB2 + 435.editorWindowContentRectSynchronizationRect + 436.IBPluginDependency + 436.ImportedFromIB2 + 437.IBPluginDependency + 437.ImportedFromIB2 + 438.IBPluginDependency + 438.ImportedFromIB2 + 439.IBPluginDependency + 439.ImportedFromIB2 + 440.IBPluginDependency + 440.ImportedFromIB2 + 441.IBPluginDependency + 441.ImportedFromIB2 + 442.IBPluginDependency + 442.ImportedFromIB2 + 443.IBPluginDependency + 443.ImportedFromIB2 + 444.IBPluginDependency + 444.ImportedFromIB2 + 445.IBPluginDependency + 445.ImportedFromIB2 + 446.IBPluginDependency + 446.ImportedFromIB2 + 447.IBPluginDependency + 447.ImportedFromIB2 + 448.IBPluginDependency + 448.ImportedFromIB2 + 449.IBPluginDependency + 449.ImportedFromIB2 + 449.editorWindowContentRectSynchronizationRect + 450.IBPluginDependency + 450.ImportedFromIB2 + 451.IBPluginDependency + 451.ImportedFromIB2 + 452.IBPluginDependency + 452.ImportedFromIB2 + 453.IBPluginDependency + 453.ImportedFromIB2 + 454.IBPluginDependency + 454.ImportedFromIB2 + 455.IBPluginDependency + 455.ImportedFromIB2 + 455.editorWindowContentRectSynchronizationRect + 456.IBPluginDependency + 456.ImportedFromIB2 + 457.IBPluginDependency + 457.ImportedFromIB2 + 458.IBPluginDependency + 458.ImportedFromIB2 + 459.IBPluginDependency + 459.ImportedFromIB2 + 460.IBPluginDependency + 460.ImportedFromIB2 + 460.editorWindowContentRectSynchronizationRect + 461.IBPluginDependency + 461.ImportedFromIB2 + 462.IBPluginDependency + 462.ImportedFromIB2 + 463.IBPluginDependency + 463.ImportedFromIB2 + 463.editorWindowContentRectSynchronizationRect + 464.IBPluginDependency + 464.ImportedFromIB2 + 465.IBPluginDependency + 465.ImportedFromIB2 + 466.IBPluginDependency + 466.ImportedFromIB2 + 467.IBPluginDependency + 467.ImportedFromIB2 + 467.editorWindowContentRectSynchronizationRect + 468.IBPluginDependency + 468.ImportedFromIB2 + 469.IBPluginDependency + 469.ImportedFromIB2 + 470.IBPluginDependency + 470.ImportedFromIB2 + 471.IBPluginDependency + 471.ImportedFromIB2 + 472.IBPluginDependency + 472.ImportedFromIB2 + 473.IBPluginDependency + 473.ImportedFromIB2 + 474.IBPluginDependency + 474.ImportedFromIB2 + 475.IBPluginDependency + 475.ImportedFromIB2 + 476.IBPluginDependency + 476.ImportedFromIB2 + 477.IBPluginDependency + 477.ImportedFromIB2 + 478.IBPluginDependency + 478.ImportedFromIB2 + 479.IBPluginDependency + 479.ImportedFromIB2 + 479.editorWindowContentRectSynchronizationRect + 480.IBPluginDependency + 480.ImportedFromIB2 + 481.IBPluginDependency + 481.editorWindowContentRectSynchronizationRect + 482.IBPluginDependency + 483.IBPluginDependency + 484.IBPluginDependency + 484.editorWindowContentRectSynchronizationRect + 485.IBPluginDependency + 486.IBPluginDependency + 505.IBPluginDependency + 506.IBPluginDependency + 507.IBPluginDependency + 508.IBPluginDependency + 509.IBPluginDependency + 510.IBPluginDependency + 511.IBPluginDependency + 512.IBPluginDependency + 513.IBPluginDependency + 514.IBPluginDependency + 515.IBPluginDependency + 516.IBPluginDependency + 517.IBPluginDependency + 518.IBPluginDependency + 519.IBPluginDependency + 520.IBPluginDependency + 531.IBPluginDependency + 532.IBPluginDependency + 533.IBPluginDependency + 534.IBPluginDependency + 535.IBPluginDependency + 536.IBPluginDependency 98.IBPluginDependency 99.IBPluginDependency YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin + + + {{199, 469}, {480, 272}} - com.apple.InterfaceBuilder.CocoaPlugin + {628, 654} - {{319, 416}, {480, 272}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.WebKitIBPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{56, 843}, {480, 270}} - com.apple.InterfaceBuilder.CocoaPlugin + {{257, 484}, {480, 272}} + + + + + + + + + + + + + + + + {{56, 843}, {480, 270}} + + {{115, 207}, {299, 193}} - {{196, 240}, {480, 270}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin + + - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin + {299, 193} + + + + + + + + + + + + + + + {{118, 105}, {276, 323}} + + {{118, 105}, {276, 323}} + + {3.40282e+38, 3.40282e+38} + + + + + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + {74, 862} + {{11, 736}, {478, 20}} + + + + + + + + + + + + + + + {{357, 663}, {197, 73}} + + + + + + + + + + + {{23, 553}, {245, 183}} + + + + + + + + + + + + + + + + + + + + + + + + + {{436, 809}, {64, 6}} + + + {{428, 713}, {216, 23}} + + + + + {{197, 493}, {243, 243}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{440, 714}, {241, 103}} + + + + + + + + + + + + + {{440, 714}, {275, 83}} + + + + + + + + + + + {{608, 612}, {167, 43}} + + + + + + + {{440, 714}, {177, 63}} + + + + + + + + + {{155, 533}, {199, 203}} + + + + + + + + + + + + + + + + + + + + + + + + + {{522, 812}, {146, 23}} + + + + {{475, 832}, {234, 43}} + + + + {{409, 832}, {176, 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 + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + @@ -1096,29 +3315,39 @@ - 151 + 536 YES - NSObject + + + + YES + + YES + + + YES + + YES YES - view - window + + YES - id - id + id + IBUserSource - + @@ -1126,5 +3355,522 @@ 0 3 + + YnBsaXN0MDDUAAEAAgADAAQABQAGAAkAClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIA +AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxEDDgALAAwAMQA1ADYAOwA8 +AEIAWgBbAFwAXQBeAAsAawB5AIUAhgCgAKEAqQCqAK0ArgCyALgAwADBAM0AzgDWANcA4ADhAOYA7gDv +APkA+gD9AP4BBgEHAQ8BEAEYARkBIQEiASoBKwEzATQBPAE9AUUBRgFKAVIBUwDNAVoBYgFjAM0BagFy +AXMAzQF6AX4ACwF/AYEAXQGCAYUBkgGTAZQBlQALAZwBoQGqAasBsgGzAbsBvAHSAeYB6wHsAfEB8gHz +AfYB+gH7AfwB/gH/AgUCDgH7Ag8CGAH7AhkCGwIfAZQACwGBAiICIwInAjsCQwJLAlMACwJUAlsCXAJw +AoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPAAsCkAKWAqECogKjAqQByAKlAqkCrAKvArACtAK5 +AsECwgLJAsoCywLQAtgC2QLgAuEC4gLnAu8C8AL9AwcDCAMJAw4DEAMVAxYDGQMcAx8DJwMoAzwDPwNA +A0MDRgNHA0wDUwNYA1kC4QNaA18DZwNoA28DcANxA3YDdwN6A38DhwOIA5EDkgOXA58DoAOoA6kArQOt +A64DswO7A7wDxAPFA80DzgPWA9cD3APkA+UD7QPuA+8D9AP5BAEEAgQJBBEEEgQZBB4EIwQsBDAEMQQ1 +BDgERQRJBEoETARNBFIEUwRYBGwDuwR0BHwACwC2BH0EgASBBRcFHwUjBSQFJQUvBTQFNQU2BToFPwVH +BUgFSQVQBVEFXAVhBWgFbAVtBXYFfQWBBYIFgwWKBY4FjwWWBZcFngWiBaMFpAWlBbMFugW7BbwFxQU1 +BcYFywXPBdYF1wXYBeEF6AXpBeoF8QXyBfMF+wX8Bf0GBAYFBg4GFwYYBhkGIAYhBiIGKQYqBisGMwY0 +BjUGPAY9Bj4GRQZMBk0GVAZVBlYGXwU1BmAGZQZoBmkGbQZuBnMGegZ7BoIGgwaMBTUGjQaTBpoGmwac +BqwGswa0BrUGvgbFBsYGxwbOBs8G0AbXBtgG2QbgBuEG6gbzBTUG9Ab8BwMHBAcFBwwHDQcOBxUHFgcX +ByAFNQchByUHLAczBzQHNQc8Bz0HPgdFB0YHTQdOBTUHVwdgBTUHYQdlB2kHcAdxB3IHeQd6B3sHggeD +BTUHjAeVB54FNQefB60HtAe1B74HxQfGB88H1gfXB9gH2QU1B+IH4wftBTUH9gf/BTUIAAgFCAwIDQgO +CA8IEggTCBUIqwlCCdkJ2gnbCdwJ3QneCd8J4AnhCeIJ4wnkCeUJ5gnnCegJ6QnqCesJ7AntCe4J7wnw +CfEJ8gnzCfQJ9Qn2CfcJ+An5CfoJ+wn8Cf0J/gn/CgAKAQoCCgMKBAoFCgYKBwoICgkKCgoLCgwKDQoO +Cg8KEAoRChIKEwoUChUKFgoXChgKGQoaChsKHAodCh4KHwogCiEKIgojCiQKJQomCicKKAopCioKKwos +Ci0KLgovCjAKMQoyCjMKNAo1CjYKNwo4CjkKOgo7CjwKPQo+Cj8KQApBCkIKQwpECkUKRgpHCkgKSQpK +CksKTApNCk4KTwpQClEKUgpTClQKVQpWClcKWApZCloKWwpcCl0KXgpfCmAKYQpiCmMKZAplCmYKZwpo +CmkKagprCmwKbQpwCnMLGwvDC8QLxQvGC8cLyAvJC8oLywvMC80LzgvPC9AL0QvSC9ML1AvVC9YL1wBY +C9gL2QvaC9sL3AvdC94L3wvgC+EL4gvjC+QL5QvmC+cL6AvpC+oL6wvsC+0L7gvvC/AL8QvyC/ML9Av1 +C/YL9wv4C/kL+gv7C/wL/Qv+C/8MAAFADAEMAgwDDAQMBQwGDAcMCAEuDAkMCgwLDAwMDQwODA8MEAwR +DBIMEwwUDBUMFgwXDBgMGQwaDBsMHAwdDB4MHwwgDCEMIgwjDCQMJQwmDCcMKAwpDCoMKwwsDC0MLgCX +DC8MMAwxDDIMMww0DDUMNgw3DDgMOQw6DDsMPAw9DD4MPwxADEEMQgxDDEQMRQxGDEcMSADlDEkMSgxL +DEwMTQxODE8MUAxRDFIMUwxUDFUMVgxXDFgMWQxaDFsMXAxdDF4MXwxgDGEMZAxnDGpVJG51bGzfEBIA +DQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoA +KwAsAC0ALgAvADBWTlNSb290ViRjbGFzc11OU09iamVjdHNLZXlzXxAPTlNDbGFzc2VzVmFsdWVzXxAZ +TlNBY2Nlc3NpYmlsaXR5T2lkc1ZhbHVlc11OU0Nvbm5lY3Rpb25zW05TTmFtZXNLZXlzW05TRnJhbWV3 +b3JrXU5TQ2xhc3Nlc0tleXNaTlNPaWRzS2V5c11OU05hbWVzVmFsdWVzXxAZTlNBY2Nlc3NpYmlsaXR5 +Q29ubmVjdG9yc11OU0ZvbnRNYW5hZ2VyXxAQTlNWaXNpYmxlV2luZG93c18QD05TT2JqZWN0c1ZhbHVl +c18QF05TQWNjZXNzaWJpbGl0eU9pZHNLZXlzWU5TTmV4dE9pZFxOU09pZHNWYWx1ZXOAAoEDDYEBCIEC +ZIEDDIB1gQHNgAWBAmOBAmWBAc6BAwqAAIAGgQHMgQMLEQIagQJm0gAOADIAMwA0W05TQ2xhc3NOYW1l +gASAA1hOU09iamVjdNIANwA4ADkAOlgkY2xhc3Nlc1okY2xhc3NuYW1logA6ADVeTlNDdXN0b21PYmpl +Y3RfEBBJQkNvY29hRnJhbWV3b3Jr0gAOAD0APgA/Wk5TLm9iamVjdHOAdKIAQABBgAeATNwAQwAOAEQA +RQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYACtcTlNXaW5kb3dWaWV3XxAWTlNX +aW5kb3dDb250ZW50TWF4U2l6ZVxOU1NjcmVlblJlY3RdTlNXaW5kb3dUaXRsZVlOU1dURmxhZ3NdTlNX +aW5kb3dDbGFzc1xOU1dpbmRvd1JlY3RZTlNNYXhTaXplXxAPTlNXaW5kb3dCYWNraW5nXxARTlNXaW5k +b3dTdHlsZU1hc2tbTlNWaWV3Q2xhc3OADIBLgAuASYAJEiQAAACACoAIgEoQAhAPgABfEBh7ezE5Niwg +MTg3fSwgezI3NiwgMzIzfX1WV2luZG93WE5TV2luZG93XxAaezMuNDAyODJlKzM4LCAzLjQwMjgyZSsz +OH3XAF8ADgBgAGEAYgBcAGMAZABlAGYAZwBoAGQAal8QD05TTmV4dFJlc3BvbmRlclpOU1N1YnZpZXdz +WE5TdkZsYWdzW05TRnJhbWVTaXplW05TU3VwZXJ2aWV3gA2ASIAOEQEAgEaADYBH0gAOAD0AbABtgEWr +AG4AbwBwAHEAcgBzAHQAdQB2AHcAeIAPgBmAHYAigCiALIAwgDSAOYA9gEHYAF8ADgB6AHsAYQB8AFwA +YwBOAH4AfwCAAIEAggBkAE5XTlNGcmFtZVZOU0NlbGxZTlNFbmFibGVkgAyAGIAQgBERAQwJgA2ADF8Q +FXt7MTQsIDI3NX0sIHs5NiwgMzJ9fd0AhwAOAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcA +mACVAJoAmABuAJ0AngCfW05TQ2VsbEZsYWdzXxATTlNBbHRlcm5hdGVDb250ZW50c18QEk5TUGVyaW9k +aWNJbnRlcnZhbF5OU0J1dHRvbkZsYWdzMl8QEE5TQWx0ZXJuYXRlSW1hZ2VfEA9OU0tleUVxdWl2YWxl +bnRaTlNDb250ZW50c1lOU1N1cHBvcnRdTlNDb250cm9sVmlld18QD05TUGVyaW9kaWNEZWxheVxOU0Nl +bGxGbGFnczJdTlNCdXR0b25GbGFncxIEAf4AgBeAFhAZEIGAE4AWgBKAE4APEMgSCAAAABP/////hrZA +/1ZCdXR0b27UAA4AogCjAKQApQCmAKcAqFZOU1NpemVWTlNOYW1lWE5TZkZsYWdzgBUjQCoAAAAAAACA +FBEEFFxMdWNpZGFHcmFuZGXSADcAOACrAKyiAKwANVZOU0ZvbnRQ0gA3ADgArwCwpACwALEAewA1XE5T +QnV0dG9uQ2VsbFxOU0FjdGlvbkNlbGzSADcAOACzALSlALQAtQC2ALcANVhOU0J1dHRvbllOU0NvbnRy +b2xWTlNWaWV3W05TUmVzcG9uZGVy2ABfAA4AegB7AGEAfABcAGMATgB+ALsAvACBAIIAZABOgAyAGIAa +gBsJgA2ADF8QFnt7MjAsIDIxNn0sIHsxMDYsIDIzfX3cAIcADgCIAIkAigCMAI0AjgCPAJAAkQCSAMIA +lACVAMUAxgCVAMgAmABvAMsAngDME/////+EAf4AgBeAFhBLEKKAFoAcgBOAGREBkBP/////hsxA/18Q +D0dyYWRpZW50IEJ1dHRvbtgAXwAOAHoAewBhAHwAXABjAE4AfgDRANIAgQCCAGQAToAMgBiAHoAfCYAN +gAxfEBZ7ezIwLCAyNDR9LCB7MTU0LCAxOX193ACHAA4AiACJAIoAjACNAI4AjwCQAJEAkgDCAJQAlQDF +ANoAlQDcAN0AcADLAJ4A34AXgBYQpIAWgCCAIYAdE/////+GhED/XxARUm91bmQgUmVjdCBCdXR0b27U +AA4AogCjAKQApQDjAKcA5YAVI0AoAAAAAAAAgBQQENgAXwAOAHoAewBhAHwAXABjAE4AfgDpAOoAgQCC +AGQAToAMgBiAI4AkCYANgAxfEBZ7ezIwLCAxNjN9LCB7MTU0LCAxN3193ACHAA4AiACJAIoAjACNAI4A +jwCQAJEAkgDCAJQAlQDFAPIAlQD0APUAcQDLAPcA+IAXgBYQrYAWgCWAJoAiEggCAAAT/////7aEQP9f +EA9SZWNlc3NlZCBCdXR0b27UAA4AogCjAKQApQDjAPwA5YAVgCdfEBFMdWNpZGFHcmFuZGUtQm9sZNgA +XwAOAHoAewBhAHwAXABjAE4AfgEBAQIAgQCCAGQAToAMgBiAKYAqCYANgAxfEBZ7ezE5LCAxODd9LCB7 +MTExLCAyM3193ACHAA4AiACJAIoAjACNAI4AjwCQAJEAkgDCAJQAlQDFAQoAlQEMAJgAcgDLAJ4AzIAX +gBYQoIAWgCuAE4AoXxAPVGV4dHVyZWQgQnV0dG9u2ABfAA4AegB7AGEAfABcAGMATgB+ARMBFACBAIIA +ZABOgAyAGIAtgC4JgA2ADF8QFnt7MjAsIDEzM30sIHsxMTgsIDI1fX3cAIcADgCIAIkAigCMAI0AjgCP +AJAAkQCSAMIAlACVAMUBHACVAR4AmABzAMsAngDfgBeAFhCjgBaAL4ATgCxeUm91bmQgVGV4dHVyZWTY +AF8ADgB6AHsAYQB8AFwAYwBOAH4BJQEmAIEAggBkAE6ADIAYgDGAMgmADYAMXxAWe3syMCwgMTAwfSwg +ezE0NSwgMjZ9fdwAhwAOAIgAiQCKAIwAjQCOAI8AkACRAJIAkwCUAJUAxQEuAJUBMACYAHQAywCeAMyA +F4AWEIaAFoAzgBOAMFhhc2RmYXNkZtgAXwAOAHoAewBhAHwAXABjAE4AfgE3ATgAgQCCAGQAToAMgBiA +NYA2CYANgAxfEBV7ezE4LCA1Nn0sIHsxNDksIDM4fX3cAIcADgCIAIkAigCMAI0AjgCPAJAAkQCSAJMA +lACVAMUBQACVAUIBQwB1AMsAngDMgBeAFhCCgBaAN4A4gDRfEBBhc2RmYXNkZmFzZGZhc2Rm1AAOAKIA +owCkAKUBSACnAOWAFSNAJAAAAAAAAIAU2ABfAA4AegB7AGEAfABcAGMATgB+AU0BTgCBAIIAZABOgAyA +GIA6gDsJgA2ADF8QF3t7MTcwLCAzMDF9LCB7MTA2LCAyM3193ACHAA4AiACJAIoAjACNAI4AjwCQAJEA +kgDCAJQAlQDFAMYAlQFXAJgAdgDLAJ4AzIAXgBaAFoA8gBOAOdgAXwAOAHoAewBhAHwAXABjAE4AfgFd +AV4AgQCCAGQAToAMgBiAPoA/CYANgAxfEBZ7ezE3MCwgLTF9LCB7MTA2LCAyM3193ACHAA4AiACJAIoA +jACNAI4AjwCQAJEAkgDCAJQAlQDFAMYAlQFnAJgAdwDLAJ4AzIAXgBaAFoBAgBOAPdgAXwAOAHoAewBh +AHwAXABjAE4AfgFtAW4AgQCCAGQAToAMgBiAQoBDCYANgAxfEBR7ezAsIC0xfSwgezEwNiwgMjN9fdwA +hwAOAIgAiQCKAIwAjQCOAI8AkACRAJIAwgCUAJUAxQDGAJUBdwCYAHgAywCeAMyAF4AWgBaARIATgEHS +ADcAOAF7AXyjAXwBfQA1Xk5TTXV0YWJsZUFycmF5V05TQXJyYXlaezI3NiwgMzIzfdIANwA4AYAAtqMA +tgC3ADVfEBV7ezAsIDB9LCB7MTI4MCwgNzc4fX3SADcAOAGDAYSiAYQANV8QEE5TV2luZG93VGVtcGxh +dGXdAEMADgBEAEUARgBHAEgBhgBJAEsATAGHAE0BiABPAYoBiwBSAFMAVAGOAY8AVwBYAZAAK18QFk5T +V2luZG93Q29udGVudE1pblNpemVZTlNNaW5TaXplgFCAS4BOgHKACYAKgE+ATYBzgABfEBh7ezE5Niwg +MzE3fSwgezI5OSwgMTkzfX1eezEwMDAwLCAxMDAwMH1aezI5OSwgMTkzfdcAXwAOAGAAYQBiAFwAYwGW +AGUBmABnAZkBlgGbgFGASIBSgHCAUYBx0gAOAD0AbAGegEWiAZ8BoIBTgFfYAF8ADgB6AHsAYQB8AFwA +YwGIAH4BpAGlAaYAggGWAYiAUIAYgFSAVREBJQmAUYBQXxAVe3sxMjEsIDE4fSwgezY3LCAxOX193ACH +AA4AiACJAIoAjACNAI4AjwCQAJEAkgDCAJQAlQDFANoAlQGvAN0BnwDLAJ4A34AXgBaAFoBWgCGAU1ZD +bG9zZSHYAF8ADgB6AHsAYQB8AFwAYwGIAbUBtgG3AIEAggGWAYiAUIBvgFiAWQmAUYBQXxAWe3sxNywg +MTQ5fSwgezEzOCwgMjZ9fd8QEgCHAb0BvgCIAIkADgCKAIwAjgG/AI8BwAHBAcIAkACRAcMAkgHEAIIA +VwCVAMUBxwHIAJUAmAHLAaAByACCAIIAywHPAdAB0V8QGk5TTWVudUl0ZW1SZXNwZWN0QWxpZ25tZW50 +XxAPTlNBcnJvd1Bvc2l0aW9uWk5TTWVudUl0ZW1fEA9OU1ByZWZlcnJlZEVkZ2VfEBJOU1VzZXNJdGVt +RnJvbU1lbnVdTlNBbHRlcnNTdGF0ZVZOU01lbnUT/////4RB/kAJgBaAbhABgBaAE4BagFcJCREIAIBb +EgaCQP/bAdMADgHUAdUB1gHXAdgB2QHDAdoB2wG3Ad0B3gHfAJUB4QHiAeMB0AHlAchYTlNUYXJnZXRX +TlNUaXRsZV8QEU5TS2V5RXF1aXZNb2RNYXNrWk5TS2V5RXF1aXZdTlNNbmVtb25pY0xvY1lOU09uSW1h +Z2VcTlNNaXhlZEltYWdlWE5TQWN0aW9uV05TU3RhdGWAWYBkgFwSABAAAIAWEn////+AXYBhgFuAY9MA +DgHUAecB6AHpAepbTlNNZW51SXRlbXOAbYBlgGZWSXRlbSAx0wAOADIB7QHuAe8B8F5OU1Jlc291cmNl +TmFtZYBggF6AX1dOU0ltYWdlXxAPTlNNZW51Q2hlY2ttYXJr0gA3ADgB9AH1ogH1ADVfEBBOU0N1c3Rv +bVJlc291cmNl0wAOADIB7QHuAe8B+YBggF6AYl8QEE5TTWVudU1peGVkU3RhdGVfEBFfcG9wVXBJdGVt +QWN0aW9uOtIANwA4Af0Bv6IBvwA1Wk90aGVyVmlld3PSAA4APQBsAgGARaMBywIDAgSAWoBngGraAdMA +DgHUAdUB1gHXAdgB2QHDAdoBtwHdAggB3wCVAeEB4gHjAdACDYBZgGSAaIAWgF2AYYBbgGlWSXRlbSAy +2gHTAA4B1AHVAdYB1wHYAdkBwwHaAbcB3QISAd8AlQHhAeIB4wHQAheAWYBkgGuAFoBdgGGAW4BsVkl0 +ZW0gM9IANwA4AhoBw6IBwwA10gA3ADgCHAIdpgIdAh4AsACxAHsANV8QEU5TUG9wVXBCdXR0b25DZWxs +Xk5TTWVudUl0ZW1DZWxs0gA3ADgCIAIhpgIhALQAtQC2ALcANV1OU1BvcFVwQnV0dG9uWnsyOTksIDIx +NX3SADcAOAIkAiWjAiUCJgA1XE5TTXV0YWJsZVNldFVOU1NldNIADgA9AGwCKYBFrxARAioCKwIsAi0C +LgIvAjACMQIyAjMCNAI1AjYCNwI4AjkCOoB2gJuAoYCngL2Aw4DJgMyA0YDZgOKA6IDpgPCA8YD8gP7U +AA4CPAI9Aj4CPwJAAkECQl1OU0Rlc3RpbmF0aW9uWE5TU291cmNlV05TTGFiZWyAmoB9gHeAmdgAXwAO +AHoAewBhAHwAXABjAkQAfgJGAkcAgQCCAkkCRIB4gBiAeYB7CYB6gHjYAF8ADgBgAGEAYgBcADIAYwJJ +Ak0CTgCBAk8CSQJRAlKAeoEBBoD/gQEDgHqBAQWBAQRfEBZ7ezM1OCwgMjMwfSwgezQwLCAxOX193ACH +AA4AiACJAIoAjACNAI4AjwCQAJEAkgDCAJQAlQDFANoAlQJYAN0CQQDLAJ4A34AXgBaAFoB8gCGAd1RT +dG9w3QBfAA4AegJdAl4CXwBhAmACYQBcAmIAYwJjAkQCZQJmAIICaAJpAGcAlQCCAkkAlQJEAm9aQWxs +b3dzVW5kb1tQcmVmZXJlbmNlc1tOU0RyYWdUeXBlc1lHcm91cE5hbWVfEBJVc2VCYWNrRm9yd2FyZExp +c3RZRnJhbWVOYW1lXU5TTmV4dEtleVZpZXeAeICYgI0JgI+AfoAWCYB6gBaAeICO0gAOAD0APgJygHSu +AnMCdAJ1AnYCdwJ4AnkCegJ7AnwCfQJ+An8CgIB/gICAgYCCgIOAhICFgIaAh4CIgImAioCLgIxfEBlO +ZVhUIFJURkQgcGFzdGVib2FyZCB0eXBlWnB1YmxpYy51cmxfEBJOU1N0cmluZ1Bib2FyZFR5cGVacHVi +bGljLnBuZ18QHk5lWFQgVElGRiB2NC4wIHBhc3RlYm9hcmQgdHlwZV8QGUFwcGxlIFVSTCBwYXN0ZWJv +YXJkIHR5cGVfECFBcHBsZSBXZWIgQXJjaGl2ZSBwYXN0ZWJvYXJkIHR5cGVfEBtXZWJVUkxzV2l0aFRp +dGxlc1Bib2FyZFR5cGVfEA9wdWJsaWMudXJsLW5hbWVfEBpBcHBsZSBIVE1MIHBhc3RlYm9hcmQgdHlw +ZV8QFU5TRmlsZW5hbWVzUGJvYXJkVHlwZV8QF05TQ29sb3IgcGFzdGVib2FyZCB0eXBlXxAaQXBwbGUg +UElDVCBwYXN0ZWJvYXJkIHR5cGVfECpOZVhUIFJpY2ggVGV4dCBGb3JtYXQgdjEuMCBwYXN0ZWJvYXJk +IHR5cGVfEBd7ezE1OCwgMjB9LCB7MzAyLCAyMDR9fdMADgKRApICkwCVApVaSWRlbnRpZmllclZWYWx1 +ZXOAl4AWgJDTAA4ClwA9ApgCmQKdV05TLmtleXOAlqMCmgKbApyAkYCSgJOjAp4CnwKegJSAlYCUXxAa +V2ViS2l0RGVmYXVsdEZpeGVkRm9udFNpemVfEBVXZWJLaXRNaW5pbXVtRm9udFNpemVfEBVXZWJLaXRE +ZWZhdWx0Rm9udFNpemUQDNIANwA4AqYCp6MCpwKoADVfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGlj +dGlvbmFyedIANwA4AqoCq6ICqwA1XldlYlByZWZlcmVuY2Vz0gA3ADgCrQKupAKuALYAtwA1V1dlYlZp +ZXdcc3RvcExvYWRpbmc60gA3ADgCsQKyowKyArMANV8QFU5TTmliQ29udHJvbENvbm5lY3Rvcl5OU05p +YkNvbm5lY3RvctQADgI8Aj0CPgI/AkACtwK4gJqAfYCcgKDYAF8ADgB6AHsAYQB8AFwAYwJEAH4CvAK9 +AIEAggJJAkSAeIAYgJ2AngmAeoB4XxAWe3szMTksIDIzMH0sIHszMSwgMTl9fdwAhwAOAIgAiQCKAIwA +jQCOAI8AkACRAJIAwgCUAJUAxQDaAJUCxgDdArcAywCeAN+AF4AWgBaAn4AhgJxSLT5aZ29Gb3J3YXJk +OtQADgI8Aj0CPgI/AEECzgLPgJqATICigKbYAF8ADgB6AHsAYQB8AFwAYwJEAH4C0wLUAIEAggJJAkSA +eIAYgKOApAmAeoB4XxAUe3syMCwgMTh9LCB7OTIsIDE5fX3cAIcADgCIAIkAigCMAI0AjgCPAJAAkQCS +AMIAlACVAMUA2gCVAt0A3QLOAMsAngDfgBeAFoAWgKWAIYCiVU9wZW4hW29yZGVyRnJvbnQ61AAOAjwC +PQI+Aj8C5ALlAuaAmoC1gKiAvNgAXwAOAHoAewBhAHwAXABjAkQC6QLqAusAgQCCAkkCRIB4gLSAqYCq +CYB6gHhfEBR7ezIwLCA5NH0sIHs5NiwgMjJ9fdkAhwAOAvEAjQCOAI8AkQLyAvMC9AL1AvYAlQCYAuUC ++gCCAvxfEBFOU0JhY2tncm91bmRDb2xvcl8QEU5TRHJhd3NCYWNrZ3JvdW5kW05TVGV4dENvbG9yE/// +//+Ucf5BgLOAq4AWgBOAqBIQQAQACYCw1QAOAv4C/wMAAwEDAgMDAwQDBQMGV05TQ29sb3JcTlNDb2xv +clNwYWNlW05TQ29sb3JOYW1lXU5TQ2F0YWxvZ05hbWWAr4CuEAaArYCsVlN5c3RlbV8QE3RleHRCYWNr +Z3JvdW5kQ29sb3LTAA4C/wMKAwIDDAMNV05TV2hpdGWArxADQjEA0gA3ADgDDwL+ogL+ADXVAA4C/gL/ +AwADAQMCAxIDBAMTAwaAr4CygLGArFl0ZXh0Q29sb3LTAA4C/wMKAwIDDAMYgK9CMADSADcAOAMaAxuk +AxsAsQB7ADVfEA9OU1RleHRGaWVsZENlbGzSADcAOAMdAx6lAx4AtQC2ALcANVtOU1RleHRGaWVsZNgA +XwAOAHoAewBhAHwAXABjAkQDIQMiAyMAgQCCAkkCRIB4gLuAtoC3CYB6gHhfEBR7ezE4LCA2N30sIHs5 +NiwgMjF9fd4DKQCHAA4DKgMrAI0AjgCPAywDLQCRAy4DLwMwAzEDMgMzAzQByACVAzYC5AM4AzkDNAM6 +AzkDOldOU1ZhbHVlXxATTlNOdW1iZXJPZlRpY2tNYXJrc18QEk5TVGlja01hcmtQb3NpdGlvblpOU01h +eFZhbHVlWk5TTWluVmFsdWVaTlNWZXJ0aWNhbF1OU0FsdEluY1ZhbHVlXxAaTlNBbGxvd3NUaWNrTWFy +a1ZhbHVlc09ubHkjQEkAAAAAAAAT/////4QF/wCAuhAAgBaAuIC1I0BZAAAAAAAAIwAAAAAAAAAACAjU +AA4AogCjAKQApQDjAz4A5YAVgLlZSGVsdmV0aWNh0gA3ADgDQQNCpANCALEAewA1XE5TU2xpZGVyQ2Vs +bNIANwA4A0QDRaUDRQC1ALYAtwA1WE5TU2xpZGVyXxATdGFrZUZsb2F0VmFsdWVGcm9tOtQADgI8Aj0C +PgI/AEADSgNLgJqAB4C+gMLYAA4B1AHVAdYB1wHYAdkBwwHdA04B3wNPAeEB4gHjA1KAZIDAgMGAXYBh +gL/UAA4B1ACjAecB6ABSA1YDV4BtgAmBAVmBAVRYTWluaW1pemVRbdQADgI8Aj0CPgI/AkADXQNegJqA +fYDEgMjYAF8ADgB6AHsAYQB8AFwAYwJEAH4DYgNjAIEAggJJAkSAeIAYgMWAxgmAeoB4XxAWe3syODAs +IDIzMH0sIHszMSwgMTl9fdwAhwAOAIgAiQCKAIwAjQCOAI8AkACRAJIAwgCUAJUAxQDaAJUDbADdA10A +ywCeAN+AF4AWgBaAx4AhgMRSPC1XZ29CYWNrOtQADgI8Aj0CPgNyAEEAHwN1gMuATIACgMpWd2luZG93 +0gA3ADgDeAN5owN5ArMANV8QFE5TTmliT3V0bGV0Q29ubmVjdG9y1AAOAjwCPQI+Aj8C5QN9A36AmoCo +gM2A0NgAXwAOAHoAewBhAHwAXABjAkQDIQOCA4MAgQCCAkkCRIB4gLuAzoDPCYB6gHhfEBR7ezE4LCA0 +N30sIHs5NiwgMjF9fd4DKQCHAA4DKgMrAI0AjgCPAywDLQCRAy4DLwMwAzEDMgMzAzQByACVAzYDfQON +A44DNAM6AzkDOoC6gBaAuIDNI0BUAAAAAAAAI0A0AAAAAAAACAhfEBF0YWtlSW50VmFsdWVGcm9tOtQA +DgI8Aj0CPgI/AkADlQOWgJqAfYDSgNjYAF8ADgB6AHsAYQB8AFwAYwJEAH4DmgObAIEAggJJAkSAeIAY +gNOA1AmAeoB4XxAWe3s0MDYsIDIzMH0sIHs1NCwgMTl9fdwAhwAOAIgAiQCKAIwAjQCOAI8AkACRAJIA +wgCUA6IAxQDaAJUDpAOlA5UAywCeA6eAF4DXgBaA1YDWgNIT/////4a0QP9WUmVsb2Fk1AAOAKIAowCk +AKUA4wCnA6yAFYAUERMTV3JlbG9hZDrUAA4CPAI9Aj4CPwOwA7EDsoCagN6A2oDh2ABfAA4AegB7AGEA +fABcAGMCRALpA7YDtwCBAIICSQJEgHiAtIDbgNwJgHqAeF8QFXt7MjAsIDIzMH0sIHs5NiwgMjJ9fdkA +hwAOAvEAjQCOAI8AkQLyAvMC9AL1AvYDvwCYA7EC+gCCAvyAs4CrgN2AE4DaCYCwWGFjdGlvbnMh2ABf +AA4AegB7AGEAfABcAGMCRALpA8gDyQCBAIICSQJEgHiAtIDfgOAJgHqAeF8QFXt7MjAsIDE5OH0sIHs5 +NiwgMjJ9fdkAhwAOAvEAjQCOAI8AkQLyAvMC9AL1AvYAlQCYA7AC+gCCAvyAs4CrgBaAE4DeCYCwXxAU +dGFrZVN0cmluZ1ZhbHVlRnJvbTrUAA4CPAI9Aj4CPwJAA9oD24CagH2A44Dn2ABfAA4AegB7AGEAfABc +AGMCRALpA98D4ACBAIICSQJEgHiAtIDkgOUJgHqAeF8QF3t7MTU4LCAyMzB9LCB7MTE0LCAyMn192QCH +AA4C8QCNAI4AjwCRAvIC8wL0AvUC9gPoAJgD2gL6AIIC/ICzgKuA5oATgOMJgLBfEBNodHRwOi8vMjgw +bm9ydGguY29tXxASdGFrZVN0cmluZ1VSTEZyb2061AAOAjwCPQI+Aj8C5QLkAuaAmoCogLWAvNQADgI8 +Aj0CPgI/A/YD9wLmgJqA7YDqgLzYAF8ADgB6AHsAYQB8AFwAYwJEAyED/AP9AIEAggJJAkSAeIC7gOuA +7AmAeoB4XxAVe3syMCwgMTU5fSwgezk2LCAyMX193gMpAIcADgMqAysAjQCOAI8DLAMtAJEDLgMvAzAD +MQMyAzMDNAHIAJUDNgP3AzgDOQM0AzoDOQM6gLqAFoC4gOoICNgAXwAOAHoAewBhAHwAXABjAkQDIQQM +BA0AgQCCAkkCRIB4gLuA7oDvCYB6gHhfEBV7ezIwLCAxMzZ9LCB7OTYsIDIxfX3eAykAhwAOAyoDKwCN +AI4AjwMsAy0AkQMuAy8DMAMxAMIDMwM0AcgAlQM2A/YDOAM5AzQDOgM5AzqAuoAWgLiA7QgI1AAOAjwC +PQI+Aj8D9wP2AuaAmoDqgO2AvNQADgI8Aj0CPgI/BCAEIQQigJqA94DygPvZAF8ADgB6Av4CXwBhAHwA +XABjAkQEJQQmBCcEKACBAIICSQJEgHiA9oD0gPWA8wmAeoB40gAOAD0APgQugHShAn6Ail8QFXt7MTMw +LCA1MX0sIHs0NCwgMjN9fdMADgL/BDIDAgHIBDRVTlNSR0KAr08QGjAuMDU4MTMwNDk5IDAuMDU1NTQx +ODk5IDEA0gA3ADgENgQ3pQQ3ALUAtgC3ADVbTlNDb2xvcldlbGzbAF8ADgB6BDkC/gJfAGEAfABcBDoA +YwJEBCUEPQCCBD8EQACBAIICSQCCAkRfEBFOU0lzTm90Q29udGludW91c1xOU0lzQm9yZGVyZWSAeID2 +gPkJgPqA+AmAegmAeNIADgA9AD4ER4B0oQJ+gIpfEBV7ezEzMCwgMjB9LCB7NDQsIDIzfX3TAA4C/wQy +AwIByAQ0gK9edGFrZUNvbG9yRnJvbTrUAA4CPAI9Aj4CPwBBAZ8EUYCagEyAU4D9WW9yZGVyT3V0OtQA +DgI8Aj0CPgNyAkQAHwRXgMuAeIACgQEH0gAOAD0AbARagEWvEBEEWwOwA7ECQAPaA10CtwJBA5UD9wP2 +AuUC5AN9BCAEIQLOgQEAgN6A2oB9gOOAxICcgHeA0oDqgO2AqIC1gM2A94DygKLYAF8ADgB6AHsAYQB8 +AFwAYwJEAukEbwRwAIEAggJJAkSAeIC0gQEBgQECCYB6gHjZAIcADgLxAI0AjgCPAJEC8gLzAvQC9QL2 +AJUAmARbAvoAggL8gLOAq4AWgBOBAQAJgLBaezQ4MCwgMjcyfdIANwA4BH4Ef6QEfwC2ALcANVxOU0N1 +c3RvbVZpZXdUdmlld9IADgA9BIIEg4EBy68QkwNjBIUEhgB2AHECvQSKAbcDsQOVA/YEjwSQA0oDXQPa +BJQATgGgBJcEmAODAuUEmwC8ANIAcwFuBKAEoQSiBKMEpANSBKYEpwSoA7AEqgFOAs4AdwSuBK8EsASx +BLIEswCABLUEtgS3BLgEuQQgBA0EvALkBL4EvwTABMEEwgTDBMQEcATGBMcAcgTJBMoEywTMBM0EzgTP +AkABywBvAOoD9wTVBNYBiAB4ArcE2gTbBNwE3QGlAHQBOABABOIE4wTkBOUE5gTnAusE6QTqA7cDfQTt +BO4DyQEmBPEE8gFeBPQDmwT2BPcE+AQhA/0AbgPgAQIE/gT/AgMCRwGfAgQB0AEUBQYCRAUIAtQFCgMj +BQwFDQUOBQ8AdQRbBRIAcAUUAkEAQYDGgQEJgQENgDmAIoCegQEYgFmA2oDSgO2BARqBAR2AvoDEgOOB +AR6ADIBXgQEigQElgM+AqIEBJ4AbgB+ALIBDgQEfgQFLgQEwgQFOgQFRgL+BATmBAVqBAS2A3oEBYIA7 +gKKAPYEBZ4EBKIEBnYEBpYEBooEBFoARgQGZgQEKgQFzgQGogQFVgPeA74EBqoC1gQFygQGsgQETgQFF +gQGUgQGtgQG0gQECgQGJgQF+gCiBAZGBAXaBAbuBARuBAbGBAQ6BAVeAfYBagBmAJIDqgQEzgQGMgFCA +QYCcgQERgQFEgQGPgQF5gFWAMIA2gAeBAV2BAW+BAUiBAaCBAZeBAbeAqoEBPIEBxYDcgM2BAWWBAb+A +4IAygQGzgQFrgD+BAUKA1IEBGYEBP4EBY4DygOyAD4DlgCqBATiBAbaAZ4B7gFOAaoBbgC6BATWAeIEB +wYCkgQGGgLeBAZuBAYOBAX+BAXyANIEBAIEByYAdgQEjgHeATNkADgHUAdUB1gHXAdgB2QHDBRgB3QUa +Ad8FGwHhAeIB4wS2AFdVTlNUYWeAZIEBC4EBDIBdgGGBAQrTAA4B1AHnAegFIQUigG2BAYCBAYJZRmlu +ZCBOZXh0UWfaAA4FJgHUAdUB1gHXAdgB2QHDAdoB3QTaBSkB3wCVAeEB4gHjBM4FLllOU1N1Ym1lbnWA +ZIEBEYEBD4AWgF2AYYEBDoEBENQADgHUAKMB5wHoBTEFMgUzgG2BAb2BAciBAb5UVmlld15zdWJtZW51 +QWN0aW9uOtMADgHUAecB6AUpBTmAbYEBD4EBEtIADgA9AGwFPIBFogTABLOBAROBARbYAA4B1AHVAdYB +1wHYAdkBwwHdBUEFQgVDAeEB4gHjBNqAZIEBFBIAGAAAgQEVgF2AYYEBEVxTaG93IFRvb2xiYXJRdNgA +DgHUAdUB1gHXAdgB2QHDAd0FSwHfAJUB4QHiAeME2oBkgQEXgBaAXYBhgQERbxASAEMAdQBzAHQAbwBt +AGkAegBlACAAVABvAG8AbABiAGEAciAm2gAOAdQB1QVSAdYFUwHXAdgB2QHDAd0AlQHfAIIAlQCCAeEB +4gHjBPZdTlNJc1NlcGFyYXRvclxOU0lzRGlzYWJsZWSAZIAWCYAWCYBdgGGBARnUAA4B1ACjAecB6AVe +BV8FYIBtgQGugQG6gQGw2AAOAdQB1gHXAdgB2QHDBRgB3QVjAJUB4QHiAeMEzAHIgGSBARyAFoBdgGGB +ARvTAA4B1AHnAegFagVrgG2BAWiBAWpfEBBTbWFydCBDb3B5L1Bhc3Rl2gAOAdQB1QVSAdYFUwHXAdgB +2QHDAd0AlQHfAIIAlQCCAeEB4gHjA1KAZIAWCYAWCYBdgGGAv9gADgHUAdUB1gHXAdgB2QHDAd0FeAHf +BXkB4QHiAeMEoIBkgQEggQEhgF2AYYEBH9MADgHUAecB6AV/BYCAbYEBK4EBLGUATwBwAGUAbiAmUW/Y +AA4B1AHVAdYB1wHYAdkBwwHdBYUB3wVDAeEB4gHjBRSAZIEBJIEBFYBdgGGBASPTAA4B1AHnAegFjAWN +gG2BAcKBAcRaU2hvdyBGb250c9gADgHUAdYB1wHYAdkBwwUYAd0FkQCVAeEB4gHjBMwDDIBkgQEmgBaA +XYBhgQEbW1NtYXJ0IExpbmtz2AAOAdQB1QHWAdcB2AHZAcMB3QWZAd8FmgHhAeIB4wSvgGSBASmBASqA +XYBhgQEo0wAOAdQB5wHoBaAFoYBtgQFtgQFuVFVuZG9RelRGaWxl0gAOAD0AbAWngEWrBKgElASiBP4E +pgTpBPcE9ATbBMEE5IEBLYEBHoEBMIEBOIEBOYEBPIEBP4EBQoEBRIEBRYEBSNgADgHUAdUB1gHXAdgB +2QHDAd0FtQHfBbYB4QHiAeMEoIBkgQEugQEvgF2AYYEBH1NOZXdRbtoADgUmAdQB1QHWAdcB2AHZAcMB +2gHdBNUFvwHfAJUB4QHiAeMEoAXEgGSBATOBATGAFoBdgGGBAR+BATJbT3BlbiBSZWNlbnTUAA4B1ACj +AecB6AW/BckFyoBtgQExgQE3gQE00gAOAD0AbAXNgEWhBQaBATXYAA4B1AHVAdYB1wHYAdkBwwHdBdEB +3wCVAeEB4gHjBNWAZIEBNoAWgF2AYYEBM1pDbGVhciBNZW51XxAWX05TUmVjZW50RG9jdW1lbnRzTWVu +ddoADgHUAdUFUgHWBVMB1wHYAdkBwwHdAJUB3wCCAJUAggHhAeIB4wSggGSAFgmAFgmAXYBhgQEf2AAO +AdQB1QHWAdcB2AHZAcMB3QXjAd8F5AHhAeIB4wSggGSBATqBATuAXYBhgQEfVUNsb3NlUXfYAA4B1AHV +AdYB1wHYAdkBwwHdBewB3wXtAeEB4gHjBKCAZIEBPYEBPoBdgGGBAR9UU2F2ZVFz2AAOAdQB1QHWAdcB +2AHZAcMB3QX1BfYF9wHhAeIB4wSggGSBAUASABIAAIEBQYBdgGGBAR9oAFMAYQB2AGUAIABBAHMgJlFT +1wAOAdQB1gHXAdgB2QHDAd0F/wCVAeEB4gHjBKCAZIEBQ4AWgF2AYYEBH18QD1JldmVydCB0byBTYXZl +ZNoADgHUAdUFUgHWBVMB1wHYAdkBwwHdAJUB3wCCAJUAggHhAeIB4wSggGSAFgmAFgmAXYBhgQEf2QAO +Bg8B1AHVAdYB1wHYAdkBwwHdAJUGEgX2BhMB4QHiAeMEoFlOU1Rvb2xUaXCAZIAWgQFGgQFHgF2AYYEB +H11QYWdlIFNldHVwLi4uUVDYAA4B1AHVAdYB1wHYAdkBwwHdBhsB3wYcAeEB4gHjBKCAZIEBSYEBSoBd +gGGBAR9mAFAAcgBpAG4AdCAmUXDYAA4B1AHVAdYB1wHYAdkBwwHdBiQB3wYlAeEB4gHjBK+AZIEBTIEB +TYBdgGGBAShaU2VsZWN0IEFsbFFh2QAOAdQB1QHWAdcB2AHZAcMFGAHdBi0B3wYuAeEB4gHjBLYGMoBk +gQFPgQFQgF2AYYEBChAHXxAWVXNlIFNlbGVjdGlvbiBmb3IgRmluZFFl2AAOAdQB1QHWAdcB2AHZAcMB +3QY3Ad8GOAHhAeIB4wT2gGSBAVKBAVOAXYBhgQEZXxATSGlkZSBOZXdBcHBsaWNhdGlvblFo0gAOAD0A +bAZAgEWkA0oEuQSQBM+AvoEBVYEBHYEBV9gADgHUAdUB1gHXAdgB2QHDAd0GRwHfAJUB4QHiAeMDUoBk +gQFWgBaAXYBhgL9UWm9vbdgADgHUAdUB1gHXAdgB2QHDAd0GTwHfAJUB4QHiAeMDUoBkgQFYgBaAXYBh +gL9fEBJCcmluZyBBbGwgdG8gRnJvbnReX05TV2luZG93c01lbnXaAA4FJgHUAdUB1gHXAdgB2QHDAdoB +3QTiBlkB3wCVAeEB4gHjBPYGXoBkgQFdgQFbgBaAXYBhgQEZgQFcWFNlcnZpY2Vz1AAOAdQAowHnAegG +WQZjBmSAbYEBW4EBX4EBXtIADgA9AGwGZ4BFoF8QD19OU1NlcnZpY2VzTWVuddMADgHUAecB6AZrBmyA +bYEBYYEBYlZTcGVlY2jSAA4APQBsBnCARaIE+ATtgQFjgQFl2AAOAdQB1QHWAdcB2AHZAcMB3QZ1Ad8A +lQHhAeIB4wSqgGSBAWSAFoBdgGGBAWBeU3RhcnQgU3BlYWtpbmfYAA4B1AHVAdYB1wHYAdkBwwHdBn0B +3wCVAeEB4gHjBKqAZIEBZoAWgF2AYYEBYF1TdG9wIFNwZWFraW5n2gAOBSYB1AHVAdYB1wHYAdkBwwHa +Ad0EzAVqAd8AlQHhAeIB4wSvBouAZIEBG4EBaIAWgF2AYYEBKIEBaV1TdWJzdGl0dXRpb25z0gAOAD0A +bAaPgEWjBI8E8gSYgQEagQFrgQEl2AAOAdQB1gHXAdgB2QHDBRgB3QaVAJUB4QHiAeMEzABXgGSBAWyA +FoBdgGGBARtcU21hcnQgUXVvdGVzVEVkaXTSAA4APQBsBp6ARa0EmwTjBL4EtwTKBN0FDwShBMcFDgTW +BK4FDIEBJ4EBb4EBcoEBc4EBdoEBeYEBfIEBS4EBfoEBf4EBjIEBZ4EBm9gADgHUAdUB1gHXAdgB2QHD +Ad0GrgX2Bq8B4QHiAeMEr4BkgQFwgQFxgF2AYYEBKFRSZWRvUVraAA4B1AHVBVIB1gVTAdcB2AHZAcMB +3QCVAd8AggCVAIIB4QHiAeMEr4BkgBYJgBYJgF2AYYEBKNgADgHUAdUB1gHXAdgB2QHDAd0GwAHfBsEB +4QHiAeMEr4BkgQF0gQF1gF2AYYEBKFNDdXRReNgADgHUAdUB1gHXAdgB2QHDAd0GyQHfBsoB4QHiAeME +r4BkgQF3gQF4gF2AYYEBKFRDb3B5UWPYAA4B1AHVAdYB1wHYAdkBwwHdBtIB3wbTAeEB4gHjBK+AZIEB +eoEBe4BdgGGBAShVUGFzdGVRdtgADgHUAdUB1gHXAdgB2QHDAd0G2wHfAJUB4QHiAeMEr4BkgQF9gBaA +XYBhgQEoVkRlbGV0ZdoADgHUAdUFUgHWBVMB1wHYAdkBwwHdAJUB3wCCAJUAggHhAeIB4wSvgGSAFgmA +FgmAXYBhgQEo2gAOBSYB1AHVAdYB1wHYAdkBwwHaAd0EtgUhAd8AlQHhAeIB4wSvBvKAZIEBCoEBgIAW +gF2AYYEBKIEBgVRGaW5k0gAOAD0AbAb2gEWlBQ0EhQUKBKMExoEBg4EBCYEBhoEBToEBidkADgHUAdUB +1gHXAdgB2QHDBRgB3Qb+Ad8G/wHhAeIB4wS2AciAZIEBhIEBhYBdgGGBAQplAEYAaQBuAGQgJlFm2QAO +AdQB1QHWAdcB2AHZAcMFGAHdBwcF9gcIAeEB4gHjBLYDDIBkgQGHgQGIgF2AYYEBCl1GaW5kIFByZXZp +b3VzUUfYAA4B1AHVAdYB1wHYAdkBwwHdBxAB3wcRAeEB4gHjBLaAZIEBioEBi4BdgGGBAQpfEBFKdW1w +IHRvIFNlbGVjdGlvblFq2gAOBSYB1AHVAdYB1wHYAdkBwwHaAd0E3AcaAd8AlQHhAeIB4wSvBx+AZIEB +j4EBjYAWgF2AYYEBKIEBjl8QFFNwZWxsaW5nIGFuZCBHcmFtbWFy0wAOAdQB5wHoBxoHJIBtgQGNgQGQ +0gAOAD0AbAcngEWkBMkEwgTmBLWBAZGBAZSBAZeBAZnYAA4B1AHVAdYB1wHYAdkBwwHdBy4B3wcvAeEB +4gHjBNyAZIEBkoEBk4BdgGGBAY9uAFMAaABvAHcAIABTAHAAZQBsAGwAaQBuAGcgJlE62AAOAdQB1QHW +AdcB2AHZAcMB3Qc3Ad8HOAHhAeIB4wTcgGSBAZWBAZaAXYBhgQGPXkNoZWNrIFNwZWxsaW5nUTvYAA4B +1AHVAdYB1wHYAdkBwwHdB0AB3wCVAeEB4gHjBNyAZIEBmIAWgF2AYYEBj18QG0NoZWNrIFNwZWxsaW5n +IFdoaWxlIFR5cGluZ9gADgHUAdUB1gHXAdgB2QHDAd0HSAHfAJUB4QHiAeME3IBkgQGagBaAXYBhgQGP +XxAbQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5n2gAOBSYB1AHVAdYB1wHYAdkBwwHaAd0EqgZrAd8A +lQHhAeIB4wSvB1aAZIEBYIEBYYAWgF2AYYEBKIEBnNoADgUmAdQB1QHWAdcB2AHZAcMB2gHdBOUHWgHf +AJUB4QHiAeMEzgdfgGSBAaCBAZ6AFoBdgGGBAQ6BAZ9USGVscNMADgHUAecB6AdaB2SAbYEBnoEBodIA +DgA9AGwHZ4BFoQSygQGi2AAOAdQB1QHWAdcB2AHZAcMB3QdrAd8HbAHhAeIB4wTlgGSBAaOBAaSAXYBh +gQGgXxATTmV3QXBwbGljYXRpb24gSGVscFE/2AAOAdQB1QHWAdcB2AHZAcMB3Qd0Ad8HdQHhAeIB4wT2 +gGSBAaaBAaeAXYBhgQEZbABQAHIAZQBmAGUAcgBlAG4AYwBlAHMgJlEs2AAOAdQB1QHWAdcB2AHZAcMB +3Qd9BUIGOAHhAeIB4wT2gGSBAamBAVOAXYBhgQEZW0hpZGUgT3RoZXJz2gAOBSYB1AHVAdYB1wHYAdkB +wwHaAd0EoAV/Ad8AlQHhAeIB4wTOB4uAZIEBH4EBK4AWgF2AYYEBDoEBq9oADgHUAdUFUgHWBVMB1wHY +AdkBwwHdAJUB3wCCAJUAggHhAeIB4wT2gGSAFgmAFgmAXYBhgQEZ2gAOBSYB1AHVAdYB1wHYAdkBwwHa +Ad0E9gVeAd8AlQHhAeIB4wTOB52AZIEBGYEBroAWgF2AYYEBDoEBr15OZXdBcHBsaWNhdGlvbtIADgA9 +AGwHoYBFqwTNBPEEsQSKBKcEvwSkBLgExAT/BOeBAbGBAbOBAaWBARiBAVqBAayBAVGBAaiBAbSBAbaB +AbfXAA4B1AHWAdcB2AHZAcMB3QevAJUB4QHiAeME9oBkgQGygBaAXYBhgQEZXxAUQWJvdXQgTmV3QXBw +bGljYXRpb27aAA4B1AHVBVIB1gVTAdcB2AHZAcMB3QCVAd8AggCVAIIB4QHiAeME9oBkgBYJgBYJgF2A +YYEBGdgADgHUAdUB1gHXAdgB2QHDAd0HwAHfAJUB4QHiAeME9oBkgQG1gBaAXYBhgQEZWFNob3cgQWxs +2gAOAdQB1QVSAdYFUwHXAdgB2QHDAd0AlQHfAIIAlQCCAeEB4gHjBPaAZIAWCYAWCYBdgGGBARnYAA4B +1AHVAdYB1wHYAdkBwwHdB9EB3wfSAeEB4gHjBPaAZIEBuIEBuYBdgGGBARlfEBNRdWl0IE5ld0FwcGxp +Y2F0aW9uUXFcX05TQXBwbGVNZW512gAOBSYB1AHVAdYB1wHYAdkBwwHaAd0DUgBSAd8AlQHhAeIB4wTO +B+GAZIC/gAmAFoBdgGGBAQ6BAbxZQU1haW5NZW510gAOAD0AbAflgEWnBMMEvATuBQgEhgTLBLCBAa2B +AaqBAb+BAcGBAQ2BAbuBAZ3aAA4FJgHUAdUB1gHXAdgB2QHDAdoB3QSvBaAB3wCVAeEB4gHjBM4H9YBk +gQEogQFtgBaAXYBhgQEOgQHA2gAOBSYB1AHVAdYB1wHYAdkBwwHaAd0FFAWMAd8AlQHhAeIB4wTOB/6A +ZIEBI4EBwoAWgF2AYYEBDoEBw1ZGb3JtYXTSAA4APQBsCAKARaIElwTqgQEigQHF2AAOAdQB1QHWAdcB +2AHZAcMB3QgHBfYICAHhAeIB4wUUgGSBAcaBAceAXYBhgQEjW1Nob3cgQ29sb3JzUUNbX05TTWFpbk1l +bnXSAA4AMgAzCBGABIEByl1OU0FwcGxpY2F0aW9u0gA3ADgIFAF9ogF9ADXSAA4APQSCCBeBAcuvEJMD +XQS2BM4ATgBOArcE9gGgAkQCRAJEBMwDUgNSAkQCRASgAEABiAUUBMwDfQJEBK8AbwBwAE4AeAS8BK8E +oAS2BPYEywSgBPYEoAJEBQwAdgJEAE4ErwTuBM4E9gTlBNoAbgTcBQ4ErwT2A1ICRAP2BM4CRASvBPYE +2gSgBNwEzgT2BFsEtgSvAE4E3ASvBM4ErgT2AB8DUgJEAdAATgBxAkQEogSvAEEATgJEBIYEoATWBK8B +nwBOAHUAHwSnBK8EoASwBNwE9gLlBKAFFAOxAkQEqgTOA7AAdAT2BMwAdwSgA5UEwwSgBKoCRAP3AE4D +2gByBKAE9gHQAkEBiAHQAbcAcwTVAB8EzgLOBLYC5ASvBLYErwSvAE4CRAAfAE4FCAJEAB+AxIEBCoEB +DoAMgAyAnIEBGYBXgHiAeIB4gQEbgL+Av4B4gHiBAR+AB4BQgQEjgQEbgM2AeIEBKIAZgB2ADIBBgQGq +gQEogQEfgQEKgQEZgQG7gQEfgQEZgQEfgHiBAZuAOYB4gAyBASiBAb+BAQ6BARmBAaCBARGAD4EBj4EB +f4EBKIEBGYC/gHiA7YEBDoB4gQEogQEZgQERgQEfgQGPgQEOgQEZgQEAgQEKgQEogAyBAY+BASiBAQ6B +AWeBARmAAoC/gHiAW4AMgCKAeIEBMIEBKIBMgAyAeIEBDYEBH4EBjIEBKIBTgAyANIACgQFagQEogQEf +gQGdgQGPgQEZgKiBAR+BASOA2oB4gQFggQEOgN6AMIEBGYEBG4A9gQEfgNKBAa2BAR+BAWCAeIDqgAyA +44AogQEfgQEZgFuAd4BQgFuAWYAsgQEzgAKBAQ6AooEBCoC1gQEogQEKgQEogQEogAyAeIACgAyBAcGA +eIAC0gAOAD0EggitgQHLrxCUA2MEhQSGAHYAcQK9BIoBtwOxA5UD9gSPBJADSgNdA9oElABOAaAElwSY +A4MC5QSkALwBbgBzANIEoASbBKIEoQSjA1IEpgSnBKgDsASqAU4CzgB3BLAErwSxBK4EsgSzAIAEuQS3 +BLgEtgS1BCAEvAQNAuQEvwS+BMAEwQTDBMQEwgRwBMYExwByBMoEywTJBM0EzATOBM8CQABvAOoE1QP3 +AcsE1gGIAHgCtwTaBNsE3QTiAaUAdAE4AEAE3AAfBOME5ATlBOYE5wLrBOkE6gN9A7cE7QTuA8kBJgTx +BPIBXgT2A5sE9AT3BPgEIQP9AG4D4AECBP4E/wIDAkcBnwIEARQB0AUGAkQFCALUBQoDIwUMBQ0FDgUP +AHUEWwUSAHAFFAJBAEGAxoEBCYEBDYA5gCKAnoEBGIBZgNqA0oDtgQEagQEdgL6AxIDjgQEegAyAV4EB +IoEBJYDPgKiBAVGAG4BDgCyAH4EBH4EBJ4EBMIEBS4EBToC/gQE5gQFagQEtgN6BAWCAO4CigD2BAZ2B +ASiBAaWBAWeBAaKBARaAEYEBVYEBc4EBqIEBCoEBmYD3gQGqgO+AtYEBrIEBcoEBE4EBRYEBrYEBtIEB +lIEBAoEBiYEBfoAogQF2gQG7gQGRgQGxgQEbgQEOgQFXgH2AGYAkgQEzgOqAWoEBjIBQgEGAnIEBEYEB +RIEBeYEBXYBVgDCANoAHgQGPgAKBAW+BAUiBAaCBAZeBAbeAqoEBPIEBxYDNgNyBAWWBAb+A4IAygQGz +gQFrgD+BARmA1IEBQoEBP4EBY4DygOyAD4DlgCqBATiBAbaAZ4B7gFOAaoAugFuBATWAeIEBwYCkgQGG +gLeBAZuBAYOBAX+BAXyANIEBAIEByYAdgQEjgHeATNIADgA9BIIJRIEBy68QlAlFCUYJRwlICUkJSglL +CUwJTQlOCU8JUAlRCVIJUwlUCVUJVglXCVgJWQlaCVsJXAldCV4JXwlgCWEJYgljCWQJZQlmCWcJaAlp +CWoJawlsCW0JbglvCXAJcQlyCXMJdAl1CXYJdwl4CXkJegl7CXwJfQl+CX8JgAmBCYIJgwmECYUJhgmH +CYgJiQmKCYsJjAmNCY4JjwmQCZEJkgmTCZQJlQmWCZcJmAmZCZoJmwmcCZ0JngmfCaAJoQmiCaMJpAml +CaYJpwmoCakJqgmrCawJrQmuCa8JsAmxCbIJswm0CbUJtgm3CbgJuQm6CbsJvAm9Cb4JvwnACcEJwgnD +CcQJxQnGCccJyAnJCcoJywnMCc0JzgnPCdAJ0QnSCdMJ1AnVCdYJ1wnYgQHPgQHQgQHRgQHSgQHTgQHU +gQHVgQHWgQHXgQHYgQHZgQHagQHbgQHcgQHdgQHegQHfgQHggQHhgQHigQHjgQHkgQHlgQHmgQHngQHo +gQHpgQHqgQHrgQHsgQHtgQHugQHvgQHwgQHxgQHygQHzgQH0gQH1gQH2gQH3gQH4gQH5gQH6gQH7gQH8 +gQH9gQH+gQH/gQIAgQIBgQICgQIDgQIEgQIFgQIGgQIHgQIIgQIJgQIKgQILgQIMgQINgQIOgQIPgQIQ +gQIRgQISgQITgQIUgQIVgQIWgQIXgQIYgQIZgQIagQIbgQIcgQIdgQIegQIfgQIggQIhgQIigQIjgQIk +gQIlgQImgQIngQIogQIpgQIqgQIrgQIsgQItgQIugQIvgQIwgQIxgQIygQIzgQI0gQI1gQI2gQI3gQI4 +gQI5gQI6gQI7gQI8gQI9gQI+gQI/gQJAgQJBgQJCgQJDgQJEgQJFgQJGgQJHgQJIgQJJgQJKgQJLgQJM +gQJNgQJOgQJPgQJQgQJRgQJSgQJTgQJUgQJVgQJWgQJXgQJYgQJZgQJagQJbgQJcgQJdgQJegQJfgQJg +gQJhgQJiXxAQQnV0dG9uIENlbGwgKDwtKV8QFU1lbnUgSXRlbSAoRmluZCBOZXh0KV8QEE1lbnUgSXRl +bSAoVmlldylfEBhTcXVhcmUgKEdyYWRpZW50IEJ1dHRvbilfECFSZWNlc3NlZCBCdXR0b24gKFJlY2Vz +c2VkIEJ1dHRvbilfEBBCdXR0b24gQ2VsbCAoLT4pWVNlcGFyYXRvcl8QG1BvcCBVcCBCdXR0b24gQ2Vs +bCAoSXRlbSAxKV8QFVRleHQgRmllbGQgKGFjdGlvbnMhKV8QGlJvdW5kIFJlY3QgQnV0dG9uIChSZWxv +YWQpXxARSG9yaXpvbnRhbCBTbGlkZXJfEBxNZW51IEl0ZW0gKFNtYXJ0IENvcHkvUGFzdGUpW1NlcGFy +YXRvci00XxAUTWVudSBJdGVtIChNaW5pbWl6ZSlfEBZSb3VuZCBSZWN0IEJ1dHRvbiAoPC0pXxAgVGV4 +dCBGaWVsZCAoaHR0cDovLzI4MG5vcnRoLmNvbSlvEBEATQBlAG4AdQAgAEkAdABlAG0AIAAoAE8AcABl +AG4gJgApXkNvbnRlbnQgVmlldy0xXxAVUG9wdXAgQnV0dG9uIChJdGVtIDEpXxAWTWVudSBJdGVtIChT +aG93IEZvbnRzKV8QF01lbnUgSXRlbSAoU21hcnQgTGlua3MpXVNsaWRlciBDZWxsLTNaVGV4dCBGaWVs +ZF8QH01lbnUgSXRlbSAoSGlkZSBOZXdBcHBsaWNhdGlvbilfEB9CdXR0b24gQ2VsbCAoR3JhZGllbnQg +QnV0dG9uKS0yXxAfQnV0dG9uIENlbGwgKEdyYWRpZW50IEJ1dHRvbiktM18QJlJvdW5kIFRleHR1cmVk +IEJ1dHRvbiAoUm91bmQgVGV4dHVyZWQpXxAfQnV0dG9uIENlbGwgKFJvdW5kIFJlY3QgQnV0dG9uKVtN +ZW51IChGaWxlKV8QEE1lbnUgSXRlbSAoVW5kbylfEBdNZW51IEl0ZW0gKE9wZW4gUmVjZW50KV8QFk1l +bnUgSXRlbSAoU2VsZWN0IEFsbClfECJNZW51IEl0ZW0gKFVzZSBTZWxlY3Rpb24gZm9yIEZpbmQpXU1l +bnUgKFdpbmRvdylTMS0xXxAUTWVudSBJdGVtIChTZXJ2aWNlcylROVxUZXh0IEZpZWxkLTFdTWVudSAo +U3BlZWNoKV8QHUJ1dHRvbiBDZWxsIChHcmFkaWVudCBCdXR0b24pXxAZUm91bmQgUmVjdCBCdXR0b24g +KE9wZW4hKV8QGlNxdWFyZSAoR3JhZGllbnQgQnV0dG9uKS0xUTFbTWVudSAoRWRpdClTMTIxXxAZTWVu +dSBJdGVtIChTdWJzdGl0dXRpb25zKV8QH01lbnUgSXRlbSAoTmV3QXBwbGljYXRpb24gSGVscClvEB4A +TQBlAG4AdQAgAEkAdABlAG0AIAAoAEMAdQBzAHQAbwBtAGkAegBlACAAVABvAG8AbABiAGEAciAmAClf +EBRCdXR0b24gQ2VsbCAoQnV0dG9uKV8QEE1lbnUgSXRlbSAoWm9vbSlfEA9NZW51IEl0ZW0gKEN1dClf +EBdNZW51IEl0ZW0gKEhpZGUgT3RoZXJzKVtNZW51IChGaW5kKV8QJ01lbnUgSXRlbSAoQ2hlY2sgR3Jh +bW1hciBXaXRoIFNwZWxsaW5nKVpDb2xvciBXZWxsXxAQTWVudSBJdGVtIChGaWxlKVtTbGlkZXIgQ2Vs +bF8QE0hvcml6b250YWwgU2xpZGVyLTFbU2VwYXJhdG9yLTFbU2VwYXJhdG9yLTVfEBhNZW51IEl0ZW0g +KFNob3cgVG9vbGJhcilRNV8QGk1lbnUgSXRlbSAoTmV3QXBwbGljYXRpb24pXxAUTWVudSBJdGVtIChT +aG93IEFsbClfEBpNZW51IEl0ZW0gKENoZWNrIFNwZWxsaW5nKV8QEVRleHQgRmllbGQgQ2VsbC0yXxAd +TWVudSBJdGVtIChKdW1wIHRvIFNlbGVjdGlvbilbU2VwYXJhdG9yLTZfEChTcXVhcmUgVGV4dHVyZWQg +QnV0dG9uIChUZXh0dXJlZCBCdXR0b24pXxAQTWVudSBJdGVtIChDb3B5KV8QEk1lbnUgSXRlbSAoV2lu +ZG93KW8QGgBNAGUAbgB1ACAASQB0AGUAbQAgACgAUwBoAG8AdwAgAFMAcABlAGwAbABpAG4AZyAmAClf +ECBNZW51IEl0ZW0gKEFib3V0IE5ld0FwcGxpY2F0aW9uKV8QFE1lbnUgKFN1YnN0aXR1dGlvbnMpWE1h +aW5NZW51XxAeTWVudSBJdGVtIChCcmluZyBBbGwgdG8gRnJvbnQpWFdlYiBWaWV3XxAaU3F1YXJlIChH +cmFkaWVudCBCdXR0b24pLTJfEB1CdXR0b24gQ2VsbCAoUmVjZXNzZWQgQnV0dG9uKV8QEk1lbnUgKE9w +ZW4gUmVjZW50KV8QE0hvcml6b250YWwgU2xpZGVyLTJfEBJNZW51IEl0ZW0gKEl0ZW0gMSlfECBNZW51 +IEl0ZW0gKFNwZWxsaW5nIGFuZCBHcmFtbWFyKVxDb250ZW50IFZpZXdfEBpTcXVhcmUgKEdyYWRpZW50 +IEJ1dHRvbiktM18QFlJvdW5kIFJlY3QgQnV0dG9uICgtPilbTWVudSAoVmlldylTMi0xXxARTWVudSBJ +dGVtIChQYXN0ZSlfEA9NZW51IChTZXJ2aWNlcylfEBRCdXR0b24gQ2VsbCAoQ2xvc2UhKV8QGFNxdWFy +ZSBCdXR0b24gKGFzZGZhc2RmKV8QHkJ1dHRvbiBDZWxsIChhc2RmYXNkZmFzZGZhc2RmKVlGcmFuY2lz +Y29fEBtNZW51IChTcGVsbGluZyBhbmQgR3JhbW1hcilcRmlsZSdzIE93bmVyXxAQTWVudSBJdGVtIChS +ZWRvKVE2UTJfECdNZW51IEl0ZW0gKENoZWNrIFNwZWxsaW5nIFdoaWxlIFR5cGluZylUMTExMV8QD1Rl +eHQgRmllbGQgQ2VsbFEzXxAXTWVudSBJdGVtIChTaG93IENvbG9ycylfEBNIb3Jpem9udGFsIFNsaWRl +ci0zXxAaVGV4dCBGaWVsZCBDZWxsIChhY3Rpb25zISlfEBlNZW51IEl0ZW0gKFN0b3AgU3BlYWtpbmcp +XxAQTWVudSBJdGVtIChFZGl0KV8QEVRleHQgRmllbGQgQ2VsbC0xXxAWQnV0dG9uIENlbGwgKGFzZGZh +c2RmKVtTZXBhcmF0b3ItMl8QGE1lbnUgSXRlbSAoU21hcnQgUXVvdGVzKV8QH0J1dHRvbiBDZWxsIChH +cmFkaWVudCBCdXR0b24pLTFfEBVNZW51IChOZXdBcHBsaWNhdGlvbilfEBRCdXR0b24gQ2VsbCAoUmVs +b2FkKVIxMFE4XxAaTWVudSBJdGVtIChTdGFydCBTcGVha2luZylcQ29sb3IgV2VsbC0xXVNsaWRlciBD +ZWxsLTJfEBRQdXNoIEJ1dHRvbiAoQnV0dG9uKV8QJVRleHQgRmllbGQgQ2VsbCAoaHR0cDovLzI4MG5v +cnRoLmNvbSlfEB1CdXR0b24gQ2VsbCAoVGV4dHVyZWQgQnV0dG9uKVE3W1NlcGFyYXRvci0zXxASTWVu +dSBJdGVtIChJdGVtIDIpXxASQnV0dG9uIENlbGwgKFN0b3ApXxAaUm91bmQgUmVjdCBCdXR0b24gKENs +b3NlISlfEBJNZW51IEl0ZW0gKEl0ZW0gMylfEBxCdXR0b24gQ2VsbCAoUm91bmQgVGV4dHVyZWQpXxAR +TWVudSAoT3RoZXJWaWV3cylfEBZNZW51IEl0ZW0gKENsZWFyIE1lbnUpW0N1c3RvbSBWaWV3XxASTWVu +dSBJdGVtIChGb3JtYXQpXxATQnV0dG9uIENlbGwgKE9wZW4hKV8QGU1lbnUgSXRlbSAoRmluZCBQcmV2 +aW91cyldU2xpZGVyIENlbGwtMV8QEk1lbnUgSXRlbSAoU3BlZWNoKW8QEQBNAGUAbgB1ACAASQB0AGUA +bQAgACgARgBpAG4AZCAmAClfEBBNZW51IEl0ZW0gKEZpbmQpXxASTWVudSBJdGVtIChEZWxldGUpXxAf +QmV2ZWwgQnV0dG9uIChhc2RmYXNkZmFzZGZhc2RmKVxUZXh0IEZpZWxkLTJbQXBwbGljYXRpb25fECVS +b3VuZCBSZWN0IEJ1dHRvbiAoUm91bmQgUmVjdCBCdXR0b24pXU1lbnUgKEZvcm1hdClfEBhSb3VuZCBS +ZWN0IEJ1dHRvbiAoU3RvcClfEA9XaW5kb3cgKFdpbmRvdynSAA4APQSCCm+BAcug0gAOAD0EggpygQHL +oNIADgA9BIIKdYEBy68QpQItA2MEhQI6BIYAdgBxAr0EigG3A7EDlQI4A/YEjwSQA0oDXQPaBJQCKwBO +AjQBoASXBJgDgwLlBJsAvADSAHMBbgSgBKEEogSjBKQDUgSmBKcEqAOwBKoBTgLOAHcErgSvBLAEsQSy +BLMAgAS1BLYEtwS4BLkCLwQgBA0EvALkBL4EvwTABMEEwgTDBMQEcAI1AjcExgTHAHIEyQTKBMsEzATN +BM4EzwJAAcsAbwDqA/cE1QTWAYgAeAK3BNoE2wTcBN0BpQB0ATgAQATiAB8E4wTkAjICMwTlBOYE5wLr +BOkE6gO3A30E7QTuA8kBJgTxBPIBXgT0A5sE9gIqBPcE+AQhA/0AbgPgAQIE/gT/AgMCRwGfAiwCBAHQ +ARQFBgJEAjEFCALUAjkFCgMjAjAFDAUNBQ4FDwB1BFsCLgUSAHAFFAI2AkEAQYCngMaBAQmA/oEBDYA5 +gCKAnoEBGIBZgNqA0oDxgO2BARqBAR2AvoDEgOOBAR6Am4AMgOKAV4EBIoEBJYDPgKiBASeAG4AfgCyA +Q4EBH4EBS4EBMIEBToEBUYC/gQE5gQFagQEtgN6BAWCAO4CigD2BAWeBASiBAZ2BAaWBAaKBARaAEYEB +mYEBCoEBc4EBqIEBVYDDgPeA74EBqoC1gQFygQGsgQETgQFFgQGUgQGtgQG0gQECgOiA8IEBiYEBfoAo +gQGRgQF2gQG7gQEbgQGxgQEOgQFXgH2AWoAZgCSA6oEBM4EBjIBQgEGAnIEBEYEBRIEBj4EBeYBVgDCA +NoAHgQFdgAKBAW+BAUiA0YDZgQGggQGXgQG3gKqBATyBAcWA3IDNgQFlgQG/gOCAMoEBs4EBa4A/gQFC +gNSBARmAdoEBP4EBY4DygOyAD4DlgCqBATiBAbaAZ4B7gFOAoYBqgFuALoEBNYB4gMyBAcGApID8gQGG +gLeAyYEBm4EBg4EBf4EBfIA0gQEAgL2BAcmAHYEBI4DpgHeATNIADgA9BIILHYEBy68QpQseCx8LIAsh +CyILIwskCyULJgsnCygLKQsqCysLLAstCy4LLwswCzELMgszCzQLNQs2CzcLOAs5CzoLOws8Cz0LPgs/ +C0ALQQtCC0MLRAtFC0YLRwtIC0kLSgtLC0wLTQtOC08LUAtRC1ILUwtUC1ULVgtXC1gLWQtaC1sLXAtd +C14LXwtgC2ELYgtjC2QLZQtmC2cLaAtpC2oLawtsC20LbgtvC3ALcQtyC3MLdAt1C3YLdwt4C3kLegt7 +C3wLfQt+C38LgAuBC4ILgwuEC4ULhguHC4gLiQuKC4sLjAuNC44LjwuQC5ELkguTC5QLlQuWC5cLmAuZ +C5oLmwucC50LngufC6ALoQuiC6MLpAulC6YLpwuoC6kLqgurC6wLrQKfC68LsAuxC7ILswu0C7ULtgu3 +C7gLuQu6C7sLvAu9C74LvwvAC8ECnoECZ4ECaIECaYECaoECa4ECbIECbYECboECb4ECcIECcYECcoEC +c4ECdIECdYECdoECd4ECeIECeYECeoECe4ECfIECfYECfoECf4ECgIECgYECgoECg4EChIEChYEChoEC +h4ECiIECiYECioECi4ECjIECjYECjoECj4ECkIECkYECkoECk4EClIEClYECloECl4ECmIECmYECmoEC +m4ECnIECnYECnoECn4ECoIECoYECooECo4ECpIECpYECpoECp4ECqIECqYECqoECq4ECrIECrYECroEC +r4ECsIECsYECsoECs4ECtIECtYECtoECt4ECuIECuYECuoECu4ECvIECvYECvoECv4ECwIECwYECwoEC +w4ECxIECxYECxoECx4ECyIECyYECyoECy4ECzIECzYECzoECz4EC0IEC0YEC0oEC04EC1IEC1YEC1oEC +14EC2IEC2YEC2oEC24EC3IEC3YEC3oEC34EC4IEC4YEC4oEC44EC5IEC5YEC5oEC54EC6IEC6YEC6oEC +64EC7IEC7YEC7oEC74EC8IEC8YEC8oEC84EC9IEC9YEC9oCVgQL3gQL4gQL5gQL6gQL7gQL8gQL9gQL+ +gQL/gQMAgQMBgQMCgQMDgQMEgQMFgQMGgQMHgQMIgQMJgJQQlxBvEQHDEBQRAZkRAhMRAf8QcxEBqRCZ +EGYQdxB5EHwRAdIRAaMRAaAQbhBsEQHbEHQQcRCYEQHmEQHQEIUQgBEBvhEB/BEB/hECAxECGBEB0xEB +vxEB2REBxBEBrhEBnxEB1xEBpxEB2hBkEQHMEQIUEJQRAhURAbQRAbMRAZwRAaoRAbIRAeIRAfoRAcgR +AcERAbwRAaURAaEQcBBpEH0RAZoRAbkRAasRAeMRAdgRAcoRAZ0RAa0QYxB+EQHFEQG9EQIBEQHJEQG6 +EQGeEQHPEQGvEQGXEQGiEGsQmxEB+xECABB6EQHfEQG2EA0RAhcQchEB4REB1BEBxxEBuxAREQIFEQII +EA4RAbARAhkRAbgRAdwQiBBoEQGxEQHLEQGsEQHeEQHlEGcQhBEBzhEBmxBlEQIGEQGoEQHREQIWEQHV +EHgRAaQQiREB3REBzRBqEHsRAfkQbRECAhEB1hEBphCcEHYQlhCdEJoRAgQRAeAQhxEBmBCVEBgRAcYQ +gxAVEQG1EQHCEQG3EQHAEQIHEGIRAegT//////////0RAf0RAeQQfxB10gAOAD0AbAxjgEWg0gAOAD0E +ggxmgQHLoNIADgA9BIIMaYEBy6DSADcAOAxrDGyiDGwANV5OU0lCT2JqZWN0RGF0YQAIABkAIgAnADEA +OgA/AEQAUgBUAGYGhgaMBtcG3gblBvMHBQchBy8HOwdHB1UHYAduB4oHmAerB70H1wfhB+4H8AfzB/YH ++Qf8B/4IAQgDCAYICQgMCA8IEQgTCBYIGQgcCB8IKAg0CDYIOAhBCEoIUwheCGMIcgiFCI4ImQibCKAI +ogikCNUI4gj7CQgJFgkgCS4JOwlFCVcJawl3CXkJewl9CX8JgQmGCYgJigmMCY4JkAmSCa0JtAm9CdoJ +9woJChQKHQopCjUKNwo5CjsKPgpACkIKRApNCk8KZgpoCmoKbApuCnAKcgp0CnYKeAp6CnwKnQqlCqwK +tgq4CroKvAq+CsEKwgrECsYK3gsTCx8LNQtKC1kLbAt+C4kLkwuhC7MLwAvOC9ML1QvXC9kL2wvdC98L +4QvjC+UL5wvsC/UL/AwNDBQMGwwkDCYMLwwxDDQMQQxKDE8MVgxXDGAMaQx2DIMMjAyXDKAMqgyxDL0M +3gzgDOIM5AzmDOcM6QzrDQQNNQ0+DUANQg1EDUYNSA1KDUwNTg1RDVoNbA2NDY8NkQ2TDZUNlg2YDZoN +sw3kDeYN6A3qDewN7g3wDfIN+w4PDiAOIg4rDi0OLw5QDlIOVA5WDlgOWQ5bDl0Odg6nDqkOqw6tDq8O +sQ6zDrUOug7DDtUO5g7oDuoO/g8fDyEPIw8lDycPKA8qDywPRQ92D3gPeg98D34PgA+CD4QPlg+3D7kP +uw+9D78PwA/CD8QP3RAOEBAQEhAUEBYQGBAaEBwQKxBMEE4QUBBSEFQQVRBXEFkQchCjEKUQpxCpEKsQ +rRCvELEQuhDbEN0Q3xDhEOMQ5BDmEOgRABExETMRNRE3ETkROxE9ET8RUhFjEWURbhFwEZERkxGVEZcR +mRGaEZwRnhG4EekR6xHtEe8R8RHzEfUSFhIYEhoSHBIeEh8SIRIjEjwSbRJvEnEScxJ1EncSeRKaEpwS +nhKgEqISoxKlEqcSvhLvEvES8xL1EvcS+RL7EwQTCxMaEyITLRM2Ez0TVRNeE2MTdhOrE8QTzhPQE9IT +1BPWE9gT2hPcE94T4BPiE/0UDBQXFDQUNhQ4FDoUPBQ+FEAUSRRLFFAUUhRUFHUUdxR5FHsUfRSAFIEU +gxSFFJ0UzhTQFNIU1BTWFNgU2hThFQIVBBUGFQgVChULFQ0VDxUoFXMVkBWiFa0VvxXUFeIV6RXyFfMV +9RX3FfkV+xX9Ff8WARYCFgMWBhYIFg0WOhZDFksWXxZqFngWghaPFpgWoBaiFqQWpharFq0Wsha0FrYW +uBa6FscW0xbVFtcW2RbgFu0W/Bb+FwAXAhcKFxwXJRcqFz0XShdMF04XUBdjF3cXgBeFF5AXmRebF6IX +pBemF6gX0RfTF9UX1xfZF9sX3RffF+EX6BgRGBMYFRgXGBkYGxgdGB8YIRgoGDEYNhg/GEwYYBhvGHgY +hRiTGJ4YpxiuGLsYwRjKGMwY8RjzGPUY9xj5GPsY/Rj/GQEZAxkFGQcZCRkLGQ0ZDxkRGRMZJBkyGTsZ +QxlFGUcZSRlLGWwZbhlwGXIZdBl1GXcZeRmaGZwZnxmhGaQZphmpGawZxRn2GfgZ+hn8Gf4aABoCGgca +PBpHGlMaXxppGn4aiBqWGpgamhqcGp0anxqhGqMapBqmGqgaqhqsGrUatxrUGtYa2BraGtwa3hrgGuIa +5BrmGuga6hrsGu4a8BsMGxcbLBs3G1gbdBuYG7YbyBvlG/0cFxw0HGEcexyIHJMcmhycHJ4coBytHLUc +txy+HMAcwhzEHMsczRzPHNEc7h0GHR4dIB0pHTAdRh1THVwdYR1wHXkdgh2KHZcdoB2nHb8dzh3fHeEd +4x3lHeceCB4KHgweDh4QHhEeEx4VHi4eXx5hHmMeZR5nHmkeax5uHnkeih6MHo4ekB6SHrMetR63Hrke +ux68Hr4ewB7XHwgfCh8MHw4fEB8SHxQfGh8mHzcfOR87Hz0fPx9gH2IfZB9mH2gfaR9rH20fhB+pH70f +0R/dH+Yf6B/qH+wf7h/wH/Uf9h/4IA0gFSAiIC4gPCA+IEAgQiBEIEYgTSBjIHAgeCB6IHwgfyCIII0g +oiCkIKYgqCCqILQgwSDDIMYgzyDYIOog8yD+IQohKyEtIS8hMSEzITQhNiE4IU8hiCGQIaYhuyHGIdEh +3CHqIgciECIZIhsiHSIfIiEiIyIsIjUiNiI3IkgiSiJMIlYiXyJoInUifiKJIpIiqCK5IrsivSK/IsEi +4iLkIuYi6CLqIuwi7iL/IwEjAyMGIwkjEiMUIyUjJyMpIysjLSNOI1AjUiNUI1YjVyNZI1sjdCOlI6cj +qSOrI60jryOxI7QjvCPNI88j0SPTI9Uj3CPlI+wkAyQUJBYkGCQaJBwkPSQ/JEEkQyRFJEYkSCRKJGEk +miScJJ4koCSiJKsktCS1JLYkyiTbJN0k3yThJOMlBCUGJQglCiUMJQ0lDyURJSolWyVdJV8lYSVjJWUl +ZyVwJXcliCWKJYwljyWXJaglqiWsJa4lsCXRJdMl1SXXJdkl2iXcJd4l9iYbJh0mHyYhJiMmJSYmJigm +MSZSJlQmViZYJlomWyZdJl8mdyacJp4moCaiJqQmpianJqkmwCbRJtMm1SbXJtkm+ib8Jv4nACcCJwMn +BScHJyEnRidIJ0onTCdOJ1AnUSdTJ2knfiePJ5EnkyeVJ5cnqCeqJ6wnriewJ9En0yfVJ9cn2SfaJ9wn +3if2KC8oMSgzKDUoNyg4KDkoWihcKF4oYChiKGMoZShnKH8ouCi6KLwovijAKMEowijTKNUo1yjZKNso +7CjuKPAo8ij0KRkpGykdKR8pISkjKSQpJikoKTEpMyk2KTgpUCldKWMpZSmCKYsplimiKc8p4ynwKfIp +9Cn2Kfcp+Sn7Kfwp/in/KgEqCioMKg8qESopKjYqOCpHKlgqWipcKl4qYCpqKnsqfSp/KoEqhCqNKo8q +tCq3Krkquyq9Kr8qwSrDKsUqxyrJKssqzSrPKtEq0yrVKtcq+Cr6Kvwq/ysCKwMrBSsHKywrLiswKzIr +NCs3KzgrOitFK04rVytkK2krcit1LJ4soCyjLKYsqCyqLKwsryyxLLMstSy3LLosvSy/LMEswyzGLMgs +yizNLNAs0izULNcs2SzbLN0s3yziLOUs6CzrLO4s8CzzLPYs+Sz7LP4tAC0CLQQtBy0KLQ0tEC0TLRYt +GC0bLR4tIS0kLSctKS0rLS4tMC0zLTYtOS08LT8tQi1FLUgtSy1OLVAtUy1WLVktXC1fLWItZS1nLWkt +ay1tLW8tci11LXcteS17LX4tgS2ELYctiS2LLY0tjy2SLZUtmC2bLZ4toS2jLaYtqS2rLa0tsC2zLbUt +ty26Lb0tvy3CLcQtxy3KLc0tzy3RLdMt1S3XLdot3S3fLeEt4y3lLect6S3sLe4t8S3zLfYt+C37Lf4u +AS4ELgYuCS4MLg4uES4TLhUuOi5ALkIuRS5ILkouTC5PLlwuXi5hLmQubi5wLpkuoy6lLqguqy6tLq8u +sS60LrcuyC7KLs0u0C7TLtgu5y70LvYu+S78LwUvBy8MLw8vEi8zLzUvOC89L0AvQi9EL0cvVC9WL3cv +eS98L34vgC+CL4UvrC/VL+Mv8C/yL/Qv9S/3L/gv+i/8L/8wEDASMBUwGDAbMDwwPjBBMEMwRTBHMEow +VzBZMFwwXzByMJswnTCfMKAwojCjMKUwpzCpMMowzDDPMNIw1DDWMNkw5jDoMOsw7jD5MPsxHDEeMSEx +JDEmMSgxKzE4MToxPTFAMUsxbDFuMXExczF1MXcxejGGMacxqTGsMa8xsTGzMbYxwzHFMcgxyzHQMdIx +1zHgMeIx+TH8Mf8yAjIFMggyCzIOMhEyFDIXMhoyOzI9MkAyQzJFMkcySjJOMlAyeTJ7Mn4ygTKDMoUy +hzKKMo0ymTKqMqwyrzKyMrUyvjLAMsMyxjLnMuky7DLuMvAy8jL1MwAzGTNCM0QzRjNHM0kzSjNMM04z +UTNyM3QzdzN6M3wzfjOBM4cziTOqM6wzrzOyM7QztjO5M74zwDPhM+Mz5jPrM+4z8DPyM/U0BjQINCU0 +JzQqNCw0LjQwNDM0RTRuNHA0cjRzNHU0djR4NHo0fTSiNKw0rjSwNLM0tjS4NLo0vTTLNM007jTwNPM0 +9jT4NPo0/TUKNQw1LTUvNTI1NTU3NTk1PDVHNUk1bjVwNXM1djV4NXo1fTV/NZg1mjW7Nb01wDXDNcU1 +xzXKNeA14jXrNe019jX4Nfs1/jYBNiI2JDYnNik2KzYtNi82NDZVNlc2WjZcNl42YDZiNnc2hjavNrE2 +tDa3Nrk2uza9NsA2wzbMNt023zbiNuU26DbxNvM29DcGNxM3FTcYNxs3IjcrNy03Mjc1Nzg3WTdbN143 +YDdiN2Q3Zzd2N5c3mTecN543oDeiN6U3szfcN9434TfkN+Y36DfqN+038Df+OAc4CTgQOBM4FjgZODo4 +PDg/OEE4QzhFOEg4VThaOGM4ZTiAOIM4hjiJOIw4jziSOJU4mDibOJ44oTikOKc4yDjKOM040DjSONQ4 +1zjcON45BzkJOQs5DDkOOQ85ETkTORY5Nzk5OTw5PzlBOUM5RjlKOUw5bTlvOXI5dTl3OXk5fDmBOYM5 +pDmmOak5rDmuObA5szm5Obs53DneOeE54znlOec56jnxOho6HDoeOh86IToiOiQ6JjopOlI6VDpXOlo6 +XDpeOmA6YzpmOms6dDp2OoE6hDqHOoo6jTqQOrU6tzq6Or06vzrBOsQ6zzrROvY6+Dr7Ov47ADsCOwU7 +EzsVOzY7ODs7Oz47QDtCO0U7WTtbO4Q7hjuJO4w7jjuQO5I7lTuYO687vDu+O8E7xDvNO8872DvbO947 +4TvkPAU8BzwKPA08DzwRPBQ8MTwzPFQ8VjxZPFw8XjxgPGM8cjx0PJU8lzyaPJw8njygPKM8wTziPOQ8 +5zzpPOs87TzwPQ49Nz05PTw9Pz1BPUM9RT1IPUs9dD12PXk9fD1+PYA9gj2FPYg9jT2aPZw9nz2iPas9 +rT2wPbM91D3WPdk93D3ePeA94z35Pfs+HD4ePiE+JD4mPig+Kz5EPkY+Zz5pPmw+bz5xPnM+dj6CPqs+ +rT6wPrM+tT63Prk+vD6/Pug+6j7sPu0+7z7wPvI+9D73PyA/Ij8lPyg/Kj8sPy4/MT80P0M/TD9OP2U/ +aD9rP24/cT90P3c/ej99P4A/gz+GP6M/pT+oP6o/rD+uP7E/yD/xP/M/9T/2P/g/+T/7P/1AAEAhQCNA +JkAoQCpALEAvQDhAYUBjQGVAZkBoQGlAa0BtQHBAkUCTQJZAmUCbQJ1AoEC2QLhAxUDuQPBA8kD0QPZA ++ED6QP1BAEEKQRNBFUEkQSdBKkEtQTBBM0E2QTlBYkFkQWdBakFsQW5BcEFzQXZBn0GhQaRBp0GpQatB +rUGwQbNBukHDQcVBykHNQdBB8UHzQfZB+UH7Qf1CAEIMQg5CGkIjQiVCKEI2Qj9CREJNQlBDeUN7Q35D +gUODQ4VDh0OKQ4xDjkOQQ5JDlUOXQ5lDm0OdQ6BDokOkQ6dDqkOsQ65DsUOzQ7VDt0O5Q7xDv0PCQ8VD +yEPLQ85D0UPUQ9ZD2UPbQ91D30PiQ+VD6EPrQ+5D8UPzQ/ZD+UP8Q/9EAUQDRAVECEQKRA1EEEQTRBZE +GUQcRB9EIkQlRChEKkQtRDBEM0Q2RDlEO0Q9RD9EQURDREVER0RKRE1ET0RRRFNEVkRZRFxEX0RhRGNE +ZURnRGpEbURwRHNEdkR5RHtEfkSBRINEhUSIRItEjUSPRJJElUSXRJpEnESfRKJEpUSnRKlEq0StRK9E +skS1RLdEuUS7RL1Ev0TBRMRExkTJRMtEzkTQRNNE1kTZRNxE3kTgROJE5ETnROlE60T0RPdGIkYkRidG +KkYsRi5GMEYzRjVGN0Y5RjtGPkZBRkNGRUZHRkpGTEZORlFGVEZWRlhGW0ZdRl9GYUZjRmZGaUZsRm9G +ckZ0RndGekZ9Rn9GgkaERoZGiEaLRo5GkUaURpdGmkacRp9GokalRqhGq0atRrBGska0RrdGuka9RsBG +w0bGRslGzEbPRtJG1EbXRtpG3UbgRuNG5kbpRutG7UbvRvJG9Eb2RvlG+0b9Rv9HAkcFRwhHC0cNRw9H +EUcTRxZHGEcbRx5HIUckRydHKUcsRy9HMUczRzZHOUc7Rz1HQEdDR0VHSEdKR01HUEdTR1VHV0dZR1tH +XUdgR2NHZUdnR2lHa0dtR29Hckd0R3dHeUd8R35HgUeER4dHikeMR49HkkeUR5dHmUebR6RHp0jSSNVI +2EjbSN5I4UjkSOdI6kjtSPBI80j2SPlI/Ej/SQJJBUkISQtJDkkRSRRJF0kaSR1JIEkjSSZJKUksSS9J +Mkk1SThJO0k+SUFJRElHSUpJTUlQSVNJVklZSVxJX0liSWVJaElrSW5JcUl0SXdJekl9SYBJg0mGSYlJ +jEmPSZJJlUmYSZtJnkmhSaRJp0mqSa1JsEmzSbZJuUm8Sb9JwknFSchJy0nOSdFJ1EnXSdpJ3UngSeNJ +5knpSexJ70nySfVJ+En7Sf5KAUoESgdKCkoNShBKE0oWShlKHEofSiJKJUooSitKLkoxSjRKN0o6Sj1K +QEpDSkZKSUpMSk9KUkpVSlhKW0peSmFKZEpnSmpKbUpwSnNKdkp5SnxKf0qCSoVKiEqLSo5KoUq5SsxK +50sLSx5LKEtGS15Le0uPS65LukvRS+pMDUwyTEFMWUxyTIxMmkylTMdM6U0LTTRNVk1iTXVNj02oTc1N +203fTfZN+E4FThNOM05PTmxObk56Tn5Omk68TvtPEk8lTzdPUU9dT4dPkk+lT7FPx0/TT99P+k/8UBlQ +MFBNUGFQgVCNULhQy1DgURdROlFRUVpRe1GEUaFRwVHWUexSAVIkUjFSTlJnUnNSd1KLUp1StFLPUvBS ++lMYUyVTOFM6UzxTZlNrU31Tf1OZU69TzFPoU/tUD1QoVDRUT1RxVIlUoFSjVKVUwlTPVN1U9FUcVTxV +PlVKVV9VdFWRVaZVxVXZVfJV/lYTVilWRVZTVmhWjVagVrVW11bkVvBXGFcmV0FXU1dcV19XYFdpV2xX +bVd2V3lYxljIWMpYzVjPWNJY1FjWWNhY21jdWN9Y4VjjWOVY6FjrWO1Y71jxWPRY9lj4WPpY/Fj/WQJZ +BFkGWQlZC1kNWQ9ZEVkUWRdZGlkdWSBZIlklWShZK1ktWTBZMlk0WTZZOVk8WT9ZQllFWUhZSllNWVBZ +U1lWWVlZW1ldWV9ZYllkWWdZalltWXBZc1l2WXlZfFl+WYBZg1mGWYhZi1mOWZFZlFmXWZpZnVmfWaFZ +o1mlWadZqlmtWa9ZsVmzWbZZuVm8Wb9ZwVnDWcVZx1nKWcxZz1nSWdRZ1lnZWdxZ31nhWeRZ51npWetZ +7lnxWfNZ9Vn4WftZ/VoAWgJaBVoHWgpaDVoPWhFaE1oVWhdaGlodWh9aIVojWiVaJ1opWitaLlowWjJa +NVo3WjlaPFo+WkBaQ1pGWklaTFpOWlFaU1pWWlhaW1pdWl9aYVpqWm1bulu9W8Bbw1vGW8lbzFvPW9Jb +1VvYW9tb3lvhW+Rb51vqW+1b8FvzW/Zb+Vv8W/9cAlwFXAhcC1wOXBFcFFwXXBpcHVwgXCNcJlwpXCxc +L1wyXDVcOFw7XD5cQVxEXEdcSlxNXFBcU1xWXFlcXFxfXGJcZVxoXGtcblxxXHRcd1x6XH1cgFyDXIZc +iVyMXI9cklyVXJhcm1yeXKFcpFynXKpcrVywXLNctly5XLxcv1zCXMVcyFzLXM5c0VzUXNdc2lzdXOBc +41zmXOlc7FzvXPJc9Vz4XPtc/l0BXQRdB10KXQ1dEF0TXRZdGV0cXR9dIl0lXShdK10uXTFdNF03XTpd +PV1AXUNdRl1JXUxdT11SXVVdWF1bXV5dYV1kXWddal1sXW9dcl11XXhde11+XYFdhF2HXYpdjV2QXZNd +ll2ZXZxdn12iXaVdp12pXatdrl2wXbNdtl25Xbtdvl3AXcJdxF3GXchdy13OXdFd013VXdhd2l3cXd5d +4V3kXeZd6F3rXe5d8V30Xfdd+l39XgBeA14GXgleDF4PXhJeFF4XXhpeHF4fXiJeJV4oXiteLl4xXjRe +N146Xj1eQF5DXkVeR15JXkxeT15SXlVeWF5bXl5eYV5jXmVeaF5rXm5ecV50Xndeel59XoBeg16FXode +il6NXo9ekl6VXpdeml6cXp9eol6lXqheql6tXrBesl61Xrheu16+XsBewl7FXshey17OXtFe017VXthe +217dXuBe417mXule7F7uXvFe8172Xvle+179XwBfAl8FXwhfC18NXw9fEV8TXxVfGF8bXx1fIF8iXyRf +J18pXytfLl8xXzRfN186XzxfP19IX0tfTl9QX1JfW19dX15fZ19qX2tfdF93X3hfgV+GAAAAAAAAAgIA +AAAAAAAMbQAAAAAAAAAAAAAAAAAAX5U + diff --git a/Tools/nib2cib/NSAppKit.j b/Tools/nib2cib/NSAppKit.j index b5e5628d2..9a3f9a068 100644 --- a/Tools/nib2cib/NSAppKit.j +++ b/Tools/nib2cib/NSAppKit.j @@ -29,7 +29,10 @@ @import "NSCustomView.j" @import "NSFont.j" @import "NSIBObjectData.j" +@import "NSMenu.j" +@import "NSMenuItem.j" @import "NSNibConnector.j" +@import "NSPopUpButton.j" @import "NSResponder.j" @import "NSSlider.j" @import "NSSplitView.j" @@ -39,6 +42,7 @@ @import "NSWindowTemplate.j" @import "WebView.j" + function CP_NSMapClassName(aClassName) { if (aClassName == @"NSView") @@ -47,5 +51,7 @@ function CP_NSMapClassName(aClassName) if (aClassName == @"NSWindow") return @"CPWindow"; + CPLog.warn("No class name mapping for \""+aClassName+"\""); + return aClassName; } diff --git a/Tools/nib2cib/NSCell.j b/Tools/nib2cib/NSCell.j index 9256a14e2..583fa028a 100644 --- a/Tools/nib2cib/NSCell.j +++ b/Tools/nib2cib/NSCell.j @@ -91,3 +91,10 @@ } @end + + +@implementation NSActionCell : NSCell +{ +} + +@end \ No newline at end of file diff --git a/Tools/nib2cib/NSMenu.j b/Tools/nib2cib/NSMenu.j new file mode 100644 index 000000000..0442bdfc3 --- /dev/null +++ b/Tools/nib2cib/NSMenu.j @@ -0,0 +1,59 @@ +/* + * NSMenu.j + * nib2cib + * + * Created by Thomas Robinson. + * 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 + */ + +@import + +@import "NSMenuItem.j" + + +@implementation CPMenu (NSCoding) + +- (id)NS_initWithCoder:(CPCoder)aCoder +{ + self = [super init]; + + if (self) + { + _title = [aCoder decodeObjectForKey:"NSTitle"]; + _items = [aCoder decodeObjectForKey:"NSMenuItems"]; + } + + return self; +} + +@end + +@implementation NSMenu : CPMenu +{ +} + +- (id)initWithCoder:(CPCoder)aCoder +{ + return [self NS_initWithCoder:aCoder]; +} + +- (Class)classForKeyedArchiver +{ + return [CPMenu class]; +} + +@end diff --git a/Tools/nib2cib/NSMenuItem.j b/Tools/nib2cib/NSMenuItem.j new file mode 100644 index 000000000..a857af865 --- /dev/null +++ b/Tools/nib2cib/NSMenuItem.j @@ -0,0 +1,97 @@ +/* + * NSMenuItem.j + * nib2cib + * + * Created by Thomas Robinson. + * 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 + */ + +@import + +@import "NSMenu.j" + + +@implementation CPMenuItem (NSCoding) + +- (id)NS_initWithCoder:(CPCoder)aCoder +{ + self = [super init]; + + if (self) + { + _title = [aCoder decodeObjectForKey:"NSTitle"]; + +// _font = [aCoder decodeObjectForKey:"NSTitle"]; + + _target = [aCoder decodeObjectForKey:"NSTarget"]; + _action = [aCoder decodeObjectForKey:"NSAction"]; + + _isEnabled = ![aCoder decodeBoolForKey:"NSIsDisabled"]; + _isHidden = [aCoder decodeBoolForKey:"NSIsHidden"]; + +// _tag = [aCoder decodeIntForKey:"NSTag"]; +// _state = [aCoder decodeIntForKey:"NSState"]; + +// _image = [aCoder decodeObjectForKey:"NSImage"]; +// _alternateImage = [aCoder decodeObjectForKey:""]; +// _onStateImage = [aCoder decodeObjectForKey:"NSOnImage"]; +// _offStateImage = [aCoder decodeObjectForKey:"NSOffImage"]; +// _mixedStateImage = [aCoder decodeObjectForKey:"NSMixedImage"]; + + _submenu = [aCoder decodeObjectForKey:"NSSubmenu"]; + _menu = [aCoder decodeObjectForKey:"NSMenu"]; + +// _keyEquivalent = [aCoder decodeObjectForKey:"NSKeyEquiv"]; +// _keyEquivalentModifierMask = [aCoder decodeObjectForKey:"NSKeyEquivModMask"]; + +// _mnemonicLocation = [aCoder decodeObjectForKey:"NSMnemonicLoc"]; + +// _isAlternate = [aCoder decodeBoolForKey:"NSIsAlternate"]; +// _indentationLevel = [aCoder decodeBoolForKey:"NSIndent"]; + +// _toolTip; + +// _representedObject = [aCoder decodeObjectForKey:CPMenuItemRepresentedObjectKey]; + } + + return self; +} + +@end + +@implementation NSMenuItem : CPMenuItem +{ +} + +- (id)initWithCoder:(CPCoder)aCoder +{ + return [self NS_initWithCoder:aCoder]; +} + +- (Class)classForKeyedArchiver +{ + return [CPMenuItem class]; +} + +@end + + +@implementation NSMenuItemCell : NSButtonCell +{ +} + +@end \ No newline at end of file diff --git a/Tools/nib2cib/NSPopUpButton.j b/Tools/nib2cib/NSPopUpButton.j new file mode 100644 index 000000000..5ec4fee8e --- /dev/null +++ b/Tools/nib2cib/NSPopUpButton.j @@ -0,0 +1,90 @@ +/* + * NSPopUpButton.j + * nib2cib + * + * Created by Thomas Robinson. + * 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 + */ + +@import + +@import "NSMenu.j" + +@implementation CPPopUpButton (CPCoding) + +- (id)NS_initWithCoder:(CPCoder)aCoder +{ + if (self = [super NS_initWithCoder:aCoder]) + { + var cell = [aCoder decodeObjectForKey:@"NSCell"]; + + _menu = [cell menu]; + + // make sure it's not null/undefined + //FIXME push this check to CPPopUpButton? + _selectedIndex = [cell selectedIndex] || 0; + + _pullsDown = [cell pullsDown]; + _preferredEdge = [cell preferredEdge]; + } + + return self; +} + +@end + +@implementation NSPopUpButton : CPPopUpButton +{ +} + +- (id)initWithCoder:(CPCoder)aCoder +{ + return [self NS_initWithCoder:aCoder]; +} + +- (Class)classForKeyedArchiver +{ + return [CPPopUpButton class]; +} + +@end + + +@implementation NSPopUpButtonCell : NSMenuItemCell +{ + BOOL pullsDown @accessors(readonly); + int selectedIndex @accessors(readonly); + int preferredEdge @accessors(readonly); + CPMenu menu @accessors(readonly); +} + +- (id)initWithCoder:(CPCoder)aCoder +{ + self = [super initWithCoder:aCoder]; + + if (self) + { + pullsDown = [aCoder decodeBoolForKey:@"NSPullDown"]; + selectedIndex = [aCoder decodeIntForKey:@"NSSelectedIndex"]; + preferredEdge = [aCoder decodeIntForKey:@"NSPreferredEdge"]; + menu = [aCoder decodeObjectForKey:@"NSMenu"]; + } + + return self; +} + +@end \ No newline at end of file