##// END OF EJS Templates
moved frontend from ipython1-dev. Got engineservice.ThreadedEngineService running, but does nto correctly propagate errors during execute()
Barry Wark -
Show More
1 NO CONTENT: new file 100644
NO CONTENT: new file 100644
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
1 NO CONTENT: new file 100644
NO CONTENT: new file 100644
@@ -0,0 +1,369 b''
1 # encoding: utf-8
2 # -*- test-case-name: ipython1.frontend.cocoa.tests.test_cocoa_frontend -*-
3
4 """PyObjC classes to provide a Cocoa frontend to the ipython1.kernel.engineservice.EngineService.
5
6 The Cocoa frontend is divided into two classes:
7 - IPythonCocoaController
8 - IPythonCLITextViewDelegate
9
10 To add an IPython interpreter to a cocoa app, instantiate both of these classes in an XIB...[FINISH]
11 """
12
13 __docformat__ = "restructuredtext en"
14
15 #-------------------------------------------------------------------------------
16 # Copyright (C) 2008 Barry Wark <barrywark@gmail.com>
17 #
18 # Distributed under the terms of the BSD License. The full license is in
19 # the file COPYING, distributed as part of this software.
20 #-------------------------------------------------------------------------------
21
22 #-------------------------------------------------------------------------------
23 # Imports
24 #-------------------------------------------------------------------------------
25
26 import objc
27 import uuid
28
29 from Foundation import NSObject, NSMutableArray, NSMutableDictionary,\
30 NSLog, NSNotificationCenter, NSMakeRange,\
31 NSLocalizedString, NSIntersectionRange
32 from AppKit import NSApplicationWillTerminateNotification, NSBeep,\
33 NSTextView, NSRulerView, NSVerticalRuler
34
35 from pprint import saferepr
36
37 from IPython.kernel.engineservice import EngineService, ThreadedEngineService
38 from IPython.frontend.frontendbase import FrontEndBase
39
40 from twisted.internet.threads import blockingCallFromThread
41
42 #-------------------------------------------------------------------------------
43 # Classes to implement the Cocoa frontend
44 #-------------------------------------------------------------------------------
45
46 # TODO:
47 # 1. use MultiEngineClient and out-of-process engine rather than ThreadedEngineService?
48 # 2. integrate Xgrid launching of engines
49
50
51
52
53 class IPythonCocoaController(NSObject, FrontEndBase):
54 userNS = objc.ivar() #mirror of engine.user_ns (key=>str(value))
55 waitingForEngine = objc.ivar().bool()
56 textView = objc.IBOutlet()
57
58 def init(self):
59 self = super(IPythonCocoaController, self).init()
60 FrontEndBase.__init__(self, engine=ThreadedEngineService())
61 if(self != None):
62 self._common_init()
63
64 return self
65
66 def _common_init(self):
67 """_common_init"""
68
69 self.userNS = NSMutableDictionary.dictionary()
70 self.waitingForEngine = False
71
72 self.lines = {}
73 self.tabSpaces = 4
74 self.tabUsesSpaces = True
75 self.currentBlockID = self.nextBlockID()
76 self.blockRanges = {} # blockID=>NSRange
77
78
79 def awakeFromNib(self):
80 """awakeFromNib"""
81
82 self._common_init()
83
84 # Start the IPython engine
85 self.engine.startService()
86 NSLog('IPython engine started')
87
88 # Register for app termination
89 NSNotificationCenter.defaultCenter().addObserver_selector_name_object_(self,
90 'appWillTerminate:',
91 NSApplicationWillTerminateNotification,
92 None)
93
94 self.textView.setDelegate_(self)
95 self.textView.enclosingScrollView().setHasVerticalRuler_(True)
96 self.verticalRulerView = NSRulerView.alloc().initWithScrollView_orientation_(
97 self.textView.enclosingScrollView(),
98 NSVerticalRuler)
99 self.verticalRulerView.setClientView_(self.textView)
100 self.startCLIForTextView()
101
102
103 def appWillTerminate_(self, notification):
104 """appWillTerminate"""
105
106 self.engine.stopService()
107
108
109 def complete(self, token):
110 """Complete token in engine's user_ns
111
112 Parameters
113 ----------
114 token : string
115
116 Result
117 ------
118 Deferred result of ipython1.kernel.engineservice.IEngineInteractive.complete
119 """
120
121 return self.engine.complete(token)
122
123
124 def execute(self, block, blockID=None):
125 self.waitingForEngine = True
126 self.willChangeValueForKey_('commandHistory')
127 d = super(IPythonCocoaController, self).execute(block, blockID)
128 d.addBoth(self._engineDone)
129 d.addCallback(self._updateUserNS)
130
131 return d
132
133
134 def _engineDone(self, x):
135 self.waitingForEngine = False
136 self.didChangeValueForKey_('commandHistory')
137 return x
138
139 def _updateUserNS(self, result):
140 """Update self.userNS from self.engine's namespace"""
141 d = self.engine.keys()
142 d.addCallback(self._getEngineNamepsaceValuesForKeys)
143
144 return result
145
146
147 def _getEngineNamepsaceValuesForKeys(self, keys):
148 d = self.engine.pull(keys)
149 d.addCallback(self._storeEngineNamespaceValues, keys=keys)
150
151
152 def _storeEngineNamespaceValues(self, values, keys=[]):
153 assert(len(values) == len(keys))
154 self.willChangeValueForKey_('userNS')
155 for (k,v) in zip(keys,values):
156 self.userNS[k] = saferepr(v)
157 self.didChangeValueForKey_('userNS')
158
159
160 def startCLIForTextView(self):
161 """Print banner"""
162
163 banner = """IPython1 0.X -- An enhanced Interactive Python."""
164
165 self.insert_text(banner + '\n\n')
166
167 # NSTextView/IPythonTextView delegate methods
168 def textView_doCommandBySelector_(self, textView, selector):
169 assert(textView == self.textView)
170 NSLog("textView_doCommandBySelector_: "+selector)
171
172
173 if(selector == 'insertNewline:'):
174 indent = self.currentIndentString()
175 if(indent):
176 line = indent + self.currentLine()
177 else:
178 line = self.currentLine()
179
180 if(self.is_complete(self.currentBlock())):
181 self.execute(self.currentBlock(),
182 blockID=self.currentBlockID)
183 self.currentBlockID = self.nextBlockID()
184 return True
185
186 return False
187
188 elif(selector == 'moveUp:'):
189 self.replaceCurrentBlockWithString(textView, self.get_history_item_previous(self.currentBlock()))
190 return True
191
192 elif(selector == 'moveDown:'):
193 self.replaceCurrentBlockWithString(textView, self.get_history_item_next(self.currentBlock()))
194 return True
195
196 elif(selector == 'moveToBeginningOfParagraph:'):
197 textView.setSelectedRange_(NSMakeRange(self.currentBlockRange().location, 0))
198 return True
199 elif(selector == 'moveToEndOfParagraph:'):
200 textView.setSelectedRange_(NSMakeRange(self.currentBlockRange().location + \
201 self.currentBlockRange().length, 0))
202 return True
203 elif(selector == 'deleteToEndOfParagraph:'):
204 if(textView.selectedRange().location <= self.currentBlockRange().location):
205 # Intersect the selected range with the current line range
206 if(self.currentBlockRange().length < 0):
207 self.blockRanges[self.currentBlockID].length = 0
208
209 r = NSIntersectionRange(textView.rangesForUserTextChange()[0],
210 self.currentBlockRange())
211
212 if(r.length > 0): #no intersection
213 textView.setSelectedRange_(r)
214
215 return False # don't actually handle the delete
216
217 elif(selector == 'insertTab:'):
218 if(len(self.currentLine().strip()) == 0): #only white space
219 return False
220 else:
221 self.textView.complete_(self)
222 return True
223
224 elif(selector == 'deleteBackward:'):
225 #if we're at the beginning of the current block, ignore
226 if(textView.selectedRange().location == self.currentBlockRange().location):
227 return True
228 else:
229 self.currentBlockRange().length-=1
230 return False
231 return False
232
233
234 def textView_shouldChangeTextInRanges_replacementStrings_(self, textView, ranges, replacementStrings):
235 """
236 Delegate method for NSTextView.
237
238 Refuse change text in ranges not at end, but make those changes at end.
239 """
240
241 #print 'textView_shouldChangeTextInRanges_replacementStrings_:',ranges,replacementStrings
242 assert(len(ranges) == len(replacementStrings))
243 allow = True
244 for r,s in zip(ranges, replacementStrings):
245 r = r.rangeValue()
246 if(textView.textStorage().length() > 0 and
247 r.location < self.currentBlockRange().location):
248 self.insert_text(s)
249 allow = False
250
251
252 self.blockRanges.setdefault(self.currentBlockID, self.currentBlockRange()).length += len(s)
253
254 return allow
255
256 def textView_completions_forPartialWordRange_indexOfSelectedItem_(self, textView, words, charRange, index):
257 try:
258 token = textView.textStorage().string().substringWithRange_(charRange)
259 completions = blockingCallFromThread(self.complete, token)
260 except:
261 completions = objc.nil
262 NSBeep()
263
264 return (completions,0)
265
266
267 def nextBlockID(self):
268
269 return uuid.uuid4()
270
271 def currentBlockRange(self):
272 return self.blockRanges.get(self.currentBlockID, NSMakeRange(self.textView.textStorage().length(), 0))
273
274 def currentBlock(self):
275 """The current block's text"""
276
277 return self.textForRange(self.currentBlockRange())
278
279 def textForRange(self, textRange):
280 """textForRange"""
281
282 return self.textView.textStorage().string().substringWithRange_(textRange)
283
284 def currentLine(self):
285 block = self.textForRange(self.currentBlockRange())
286 block = block.split('\n')
287 return block[-1]
288
289 def update_cell_prompt(self, result):
290 blockID = result['blockID']
291 self.insert_text(self.inputPrompt(result=result),
292 textRange=NSMakeRange(self.blockRanges[blockID].location,0),
293 scrollToVisible=False
294 )
295
296 return result
297
298
299 def render_result(self, result):
300 blockID = result['blockID']
301 inputRange = self.blockRanges[blockID]
302 del self.blockRanges[blockID]
303
304 #print inputRange,self.currentBlockRange()
305 self.insert_text('\n' +
306 self.outputPrompt(result) +
307 result.get('display',{}).get('pprint','') +
308 '\n\n',
309 textRange=NSMakeRange(inputRange.location+inputRange.length, 0))
310 return result
311
312
313 def render_error(self, failure):
314 self.insert_text(str(failure))
315 return failure
316
317
318 def insert_text(self, string=None, textRange=None, scrollToVisible=True):
319 """Insert text into textView at textRange, updating blockRanges as necessary"""
320
321 if(textRange == None):
322 textRange = NSMakeRange(self.textView.textStorage().length(), 0) #range for end of text
323
324 for r in self.blockRanges.itervalues():
325 intersection = NSIntersectionRange(r,textRange)
326 if(intersection.length == 0): #ranges don't intersect
327 if r.location >= textRange.location:
328 r.location += len(string)
329 else: #ranges intersect
330 if(r.location <= textRange.location):
331 assert(intersection.length == textRange.length)
332 r.length += textRange.length
333 else:
334 r.location += intersection.length
335
336 self.textView.replaceCharactersInRange_withString_(textRange, string) #textStorage().string()
337 self.textView.setSelectedRange_(NSMakeRange(textRange.location+len(string), 0))
338 if(scrollToVisible):
339 self.textView.scrollRangeToVisible_(textRange)
340
341
342
343 def replaceCurrentBlockWithString(self, textView, string):
344 textView.replaceCharactersInRange_withString_(self.currentBlockRange(),
345 string)
346 r = NSMakeRange(textView.textStorage().length(), 0)
347 textView.scrollRangeToVisible_(r)
348 textView.setSelectedRange_(r)
349
350
351 def currentIndentString(self):
352 """returns string for indent or None if no indent"""
353
354 if(len(self.currentBlock()) > 0):
355 lines = self.currentBlock().split('\n')
356 currentIndent = len(lines[-1]) - len(lines[-1])
357 if(currentIndent == 0):
358 currentIndent = self.tabSpaces
359
360 if(self.tabUsesSpaces):
361 result = ' ' * currentIndent
362 else:
363 result = '\t' * (currentIndent/self.tabSpaces)
364 else:
365 result = None
366
367 return result
368
369
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
This diff has been collapsed as it changes many lines, (3423 lines changed) Show them Hide them
@@ -0,0 +1,3423 b''
1 <?xml version="1.0" encoding="UTF-8"?>
2 <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.01">
3 <data>
4 <int key="IBDocument.SystemTarget">1050</int>
5 <string key="IBDocument.SystemVersion">9D34</string>
6 <string key="IBDocument.InterfaceBuilderVersion">629</string>
7 <string key="IBDocument.AppKitVersion">949.33</string>
8 <string key="IBDocument.HIToolboxVersion">352.00</string>
9 <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
10 <bool key="EncodedWithXMLCoder">YES</bool>
11 <integer value="416"/>
12 <integer value="29"/>
13 </object>
14 <object class="NSArray" key="IBDocument.PluginDependencies">
15 <bool key="EncodedWithXMLCoder">YES</bool>
16 <string id="885801228">com.apple.InterfaceBuilderKit</string>
17 <string id="113577022">com.apple.InterfaceBuilder.CocoaPlugin</string>
18 </object>
19 <object class="NSMutableArray" key="IBDocument.RootObjects" id="1048">
20 <bool key="EncodedWithXMLCoder">YES</bool>
21 <object class="NSCustomObject" id="1021">
22 <string key="NSClassName" id="190635311">NSApplication</string>
23 </object>
24 <object class="NSCustomObject" id="1014">
25 <string key="NSClassName">FirstResponder</string>
26 </object>
27 <object class="NSCustomObject" id="1050">
28 <reference key="NSClassName" ref="190635311"/>
29 </object>
30 <object class="NSMenu" id="649796088">
31 <string key="NSTitle">AMainMenu</string>
32 <object class="NSMutableArray" key="NSMenuItems">
33 <bool key="EncodedWithXMLCoder">YES</bool>
34 <object class="NSMenuItem" id="694149608">
35 <reference key="NSMenu" ref="649796088"/>
36 <string key="NSTitle" id="837240250">IPython1Sandbox</string>
37 <string key="NSKeyEquiv" id="255189770"/>
38 <int key="NSKeyEquivModMask">1048576</int>
39 <int key="NSMnemonicLoc">2147483647</int>
40 <object class="NSCustomResource" key="NSOnImage" id="985281305">
41 <string key="NSClassName" id="60114142">NSImage</string>
42 <string key="NSResourceName">NSMenuCheckmark</string>
43 </object>
44 <object class="NSCustomResource" key="NSMixedImage" id="351279908">
45 <reference key="NSClassName" ref="60114142"/>
46 <string key="NSResourceName">NSMenuMixedState</string>
47 </object>
48 <string key="NSAction">submenuAction:</string>
49 <object class="NSMenu" key="NSSubmenu" id="110575045">
50 <reference key="NSTitle" ref="837240250"/>
51 <object class="NSMutableArray" key="NSMenuItems">
52 <bool key="EncodedWithXMLCoder">YES</bool>
53 <object class="NSMenuItem" id="238522557">
54 <reference key="NSMenu" ref="110575045"/>
55 <string key="NSTitle">About IPython1Sandbox</string>
56 <reference key="NSKeyEquiv" ref="255189770"/>
57 <int key="NSMnemonicLoc">2147483647</int>
58 <reference key="NSOnImage" ref="985281305"/>
59 <reference key="NSMixedImage" ref="351279908"/>
60 </object>
61 <object class="NSMenuItem" id="304266470">
62 <reference key="NSMenu" ref="110575045"/>
63 <bool key="NSIsDisabled">YES</bool>
64 <bool key="NSIsSeparator">YES</bool>
65 <reference key="NSTitle" ref="255189770"/>
66 <reference key="NSKeyEquiv" ref="255189770"/>
67 <int key="NSKeyEquivModMask">1048576</int>
68 <int key="NSMnemonicLoc">2147483647</int>
69 <reference key="NSOnImage" ref="985281305"/>
70 <reference key="NSMixedImage" ref="351279908"/>
71 </object>
72 <object class="NSMenuItem" id="609285721">
73 <reference key="NSMenu" ref="110575045"/>
74 <string type="base64-UTF8" key="NSTitle">UHJlZmVyZW5jZXPigKY</string>
75 <string key="NSKeyEquiv">,</string>
76 <int key="NSKeyEquivModMask">1048576</int>
77 <int key="NSMnemonicLoc">2147483647</int>
78 <reference key="NSOnImage" ref="985281305"/>
79 <reference key="NSMixedImage" ref="351279908"/>
80 </object>
81 <object class="NSMenuItem" id="481834944">
82 <reference key="NSMenu" ref="110575045"/>
83 <bool key="NSIsDisabled">YES</bool>
84 <bool key="NSIsSeparator">YES</bool>
85 <reference key="NSTitle" ref="255189770"/>
86 <reference key="NSKeyEquiv" ref="255189770"/>
87 <int key="NSKeyEquivModMask">1048576</int>
88 <int key="NSMnemonicLoc">2147483647</int>
89 <reference key="NSOnImage" ref="985281305"/>
90 <reference key="NSMixedImage" ref="351279908"/>
91 </object>
92 <object class="NSMenuItem" id="1046388886">
93 <reference key="NSMenu" ref="110575045"/>
94 <string key="NSTitle" id="642338826">Services</string>
95 <reference key="NSKeyEquiv" ref="255189770"/>
96 <int key="NSKeyEquivModMask">1048576</int>
97 <int key="NSMnemonicLoc">2147483647</int>
98 <reference key="NSOnImage" ref="985281305"/>
99 <reference key="NSMixedImage" ref="351279908"/>
100 <string key="NSAction">submenuAction:</string>
101 <object class="NSMenu" key="NSSubmenu" id="752062318">
102 <reference key="NSTitle" ref="642338826"/>
103 <object class="NSMutableArray" key="NSMenuItems">
104 <bool key="EncodedWithXMLCoder">YES</bool>
105 </object>
106 <string key="NSName">_NSServicesMenu</string>
107 </object>
108 </object>
109 <object class="NSMenuItem" id="646227648">
110 <reference key="NSMenu" ref="110575045"/>
111 <bool key="NSIsDisabled">YES</bool>
112 <bool key="NSIsSeparator">YES</bool>
113 <reference key="NSTitle" ref="255189770"/>
114 <reference key="NSKeyEquiv" ref="255189770"/>
115 <int key="NSKeyEquivModMask">1048576</int>
116 <int key="NSMnemonicLoc">2147483647</int>
117 <reference key="NSOnImage" ref="985281305"/>
118 <reference key="NSMixedImage" ref="351279908"/>
119 </object>
120 <object class="NSMenuItem" id="755159360">
121 <reference key="NSMenu" ref="110575045"/>
122 <string key="NSTitle">Hide IPython1Sandbox</string>
123 <string key="NSKeyEquiv" id="940330891">h</string>
124 <int key="NSKeyEquivModMask">1048576</int>
125 <int key="NSMnemonicLoc">2147483647</int>
126 <reference key="NSOnImage" ref="985281305"/>
127 <reference key="NSMixedImage" ref="351279908"/>
128 </object>
129 <object class="NSMenuItem" id="342932134">
130 <reference key="NSMenu" ref="110575045"/>
131 <string key="NSTitle">Hide Others</string>
132 <reference key="NSKeyEquiv" ref="940330891"/>
133 <int key="NSKeyEquivModMask">1572864</int>
134 <int key="NSMnemonicLoc">2147483647</int>
135 <reference key="NSOnImage" ref="985281305"/>
136 <reference key="NSMixedImage" ref="351279908"/>
137 </object>
138 <object class="NSMenuItem" id="908899353">
139 <reference key="NSMenu" ref="110575045"/>
140 <string key="NSTitle">Show All</string>
141 <reference key="NSKeyEquiv" ref="255189770"/>
142 <int key="NSKeyEquivModMask">1048576</int>
143 <int key="NSMnemonicLoc">2147483647</int>
144 <reference key="NSOnImage" ref="985281305"/>
145 <reference key="NSMixedImage" ref="351279908"/>
146 </object>
147 <object class="NSMenuItem" id="1056857174">
148 <reference key="NSMenu" ref="110575045"/>
149 <bool key="NSIsDisabled">YES</bool>
150 <bool key="NSIsSeparator">YES</bool>
151 <reference key="NSTitle" ref="255189770"/>
152 <reference key="NSKeyEquiv" ref="255189770"/>
153 <int key="NSKeyEquivModMask">1048576</int>
154 <int key="NSMnemonicLoc">2147483647</int>
155 <reference key="NSOnImage" ref="985281305"/>
156 <reference key="NSMixedImage" ref="351279908"/>
157 </object>
158 <object class="NSMenuItem" id="632727374">
159 <reference key="NSMenu" ref="110575045"/>
160 <string key="NSTitle">Quit IPython1Sandbox</string>
161 <string key="NSKeyEquiv">q</string>
162 <int key="NSKeyEquivModMask">1048576</int>
163 <int key="NSMnemonicLoc">2147483647</int>
164 <reference key="NSOnImage" ref="985281305"/>
165 <reference key="NSMixedImage" ref="351279908"/>
166 </object>
167 </object>
168 <string key="NSName">_NSAppleMenu</string>
169 </object>
170 </object>
171 <object class="NSMenuItem" id="379814623">
172 <reference key="NSMenu" ref="649796088"/>
173 <string key="NSTitle" id="881404960">File</string>
174 <reference key="NSKeyEquiv" ref="255189770"/>
175 <int key="NSKeyEquivModMask">1048576</int>
176 <int key="NSMnemonicLoc">2147483647</int>
177 <reference key="NSOnImage" ref="985281305"/>
178 <reference key="NSMixedImage" ref="351279908"/>
179 <string key="NSAction">submenuAction:</string>
180 <object class="NSMenu" key="NSSubmenu" id="720053764">
181 <reference key="NSTitle" ref="881404960"/>
182 <object class="NSMutableArray" key="NSMenuItems">
183 <bool key="EncodedWithXMLCoder">YES</bool>
184 <object class="NSMenuItem" id="705341025">
185 <reference key="NSMenu" ref="720053764"/>
186 <string key="NSTitle">New</string>
187 <string key="NSKeyEquiv">n</string>
188 <int key="NSKeyEquivModMask">1048576</int>
189 <int key="NSMnemonicLoc">2147483647</int>
190 <reference key="NSOnImage" ref="985281305"/>
191 <reference key="NSMixedImage" ref="351279908"/>
192 </object>
193 <object class="NSMenuItem" id="722745758">
194 <reference key="NSMenu" ref="720053764"/>
195 <string type="base64-UTF8" key="NSTitle">T3BlbuKApg</string>
196 <string key="NSKeyEquiv">o</string>
197 <int key="NSKeyEquivModMask">1048576</int>
198 <int key="NSMnemonicLoc">2147483647</int>
199 <reference key="NSOnImage" ref="985281305"/>
200 <reference key="NSMixedImage" ref="351279908"/>
201 </object>
202 <object class="NSMenuItem" id="1025936716">
203 <reference key="NSMenu" ref="720053764"/>
204 <string key="NSTitle" id="975517829">Open Recent</string>
205 <reference key="NSKeyEquiv" ref="255189770"/>
206 <int key="NSKeyEquivModMask">1048576</int>
207 <int key="NSMnemonicLoc">2147483647</int>
208 <reference key="NSOnImage" ref="985281305"/>
209 <reference key="NSMixedImage" ref="351279908"/>
210 <string key="NSAction">submenuAction:</string>
211 <object class="NSMenu" key="NSSubmenu" id="1065607017">
212 <reference key="NSTitle" ref="975517829"/>
213 <object class="NSMutableArray" key="NSMenuItems">
214 <bool key="EncodedWithXMLCoder">YES</bool>
215 <object class="NSMenuItem" id="759406840">
216 <reference key="NSMenu" ref="1065607017"/>
217 <string key="NSTitle">Clear Menu</string>
218 <reference key="NSKeyEquiv" ref="255189770"/>
219 <int key="NSKeyEquivModMask">1048576</int>
220 <int key="NSMnemonicLoc">2147483647</int>
221 <reference key="NSOnImage" ref="985281305"/>
222 <reference key="NSMixedImage" ref="351279908"/>
223 </object>
224 </object>
225 <string key="NSName">_NSRecentDocumentsMenu</string>
226 </object>
227 </object>
228 <object class="NSMenuItem" id="425164168">
229 <reference key="NSMenu" ref="720053764"/>
230 <bool key="NSIsDisabled">YES</bool>
231 <bool key="NSIsSeparator">YES</bool>
232 <reference key="NSTitle" ref="255189770"/>
233 <reference key="NSKeyEquiv" ref="255189770"/>
234 <int key="NSKeyEquivModMask">1048576</int>
235 <int key="NSMnemonicLoc">2147483647</int>
236 <reference key="NSOnImage" ref="985281305"/>
237 <reference key="NSMixedImage" ref="351279908"/>
238 </object>
239 <object class="NSMenuItem" id="776162233">
240 <reference key="NSMenu" ref="720053764"/>
241 <string key="NSTitle">Close</string>
242 <string key="NSKeyEquiv">w</string>
243 <int key="NSKeyEquivModMask">1048576</int>
244 <int key="NSMnemonicLoc">2147483647</int>
245 <reference key="NSOnImage" ref="985281305"/>
246 <reference key="NSMixedImage" ref="351279908"/>
247 </object>
248 <object class="NSMenuItem" id="1023925487">
249 <reference key="NSMenu" ref="720053764"/>
250 <string key="NSTitle">Save</string>
251 <string key="NSKeyEquiv">s</string>
252 <int key="NSKeyEquivModMask">1048576</int>
253 <int key="NSMnemonicLoc">2147483647</int>
254 <reference key="NSOnImage" ref="985281305"/>
255 <reference key="NSMixedImage" ref="351279908"/>
256 </object>
257 <object class="NSMenuItem" id="117038363">
258 <reference key="NSMenu" ref="720053764"/>
259 <string type="base64-UTF8" key="NSTitle">U2F2ZSBBc+KApg</string>
260 <string key="NSKeyEquiv">S</string>
261 <int key="NSKeyEquivModMask">1179648</int>
262 <int key="NSMnemonicLoc">2147483647</int>
263 <reference key="NSOnImage" ref="985281305"/>
264 <reference key="NSMixedImage" ref="351279908"/>
265 </object>
266 <object class="NSMenuItem" id="579971712">
267 <reference key="NSMenu" ref="720053764"/>
268 <string key="NSTitle">Revert to Saved</string>
269 <reference key="NSKeyEquiv" ref="255189770"/>
270 <int key="NSMnemonicLoc">2147483647</int>
271 <reference key="NSOnImage" ref="985281305"/>
272 <reference key="NSMixedImage" ref="351279908"/>
273 </object>
274 <object class="NSMenuItem" id="1010469920">
275 <reference key="NSMenu" ref="720053764"/>
276 <bool key="NSIsDisabled">YES</bool>
277 <bool key="NSIsSeparator">YES</bool>
278 <reference key="NSTitle" ref="255189770"/>
279 <reference key="NSKeyEquiv" ref="255189770"/>
280 <int key="NSKeyEquivModMask">1048576</int>
281 <int key="NSMnemonicLoc">2147483647</int>
282 <reference key="NSOnImage" ref="985281305"/>
283 <reference key="NSMixedImage" ref="351279908"/>
284 </object>
285 <object class="NSMenuItem" id="294629803">
286 <reference key="NSMenu" ref="720053764"/>
287 <string key="NSTitle">Page Setup...</string>
288 <string key="NSKeyEquiv">P</string>
289 <int key="NSKeyEquivModMask">1179648</int>
290 <int key="NSMnemonicLoc">2147483647</int>
291 <reference key="NSOnImage" ref="985281305"/>
292 <reference key="NSMixedImage" ref="351279908"/>
293 <reference key="NSToolTip" ref="255189770"/>
294 </object>
295 <object class="NSMenuItem" id="49223823">
296 <reference key="NSMenu" ref="720053764"/>
297 <string type="base64-UTF8" key="NSTitle">UHJpbnTigKY</string>
298 <string key="NSKeyEquiv">p</string>
299 <int key="NSKeyEquivModMask">1048576</int>
300 <int key="NSMnemonicLoc">2147483647</int>
301 <reference key="NSOnImage" ref="985281305"/>
302 <reference key="NSMixedImage" ref="351279908"/>
303 </object>
304 </object>
305 </object>
306 </object>
307 <object class="NSMenuItem" id="952259628">
308 <reference key="NSMenu" ref="649796088"/>
309 <string key="NSTitle" id="1037326483">Edit</string>
310 <reference key="NSKeyEquiv" ref="255189770"/>
311 <int key="NSKeyEquivModMask">1048576</int>
312 <int key="NSMnemonicLoc">2147483647</int>
313 <reference key="NSOnImage" ref="985281305"/>
314 <reference key="NSMixedImage" ref="351279908"/>
315 <string key="NSAction">submenuAction:</string>
316 <object class="NSMenu" key="NSSubmenu" id="789758025">
317 <reference key="NSTitle" ref="1037326483"/>
318 <object class="NSMutableArray" key="NSMenuItems">
319 <bool key="EncodedWithXMLCoder">YES</bool>
320 <object class="NSMenuItem" id="1058277027">
321 <reference key="NSMenu" ref="789758025"/>
322 <string key="NSTitle">Undo</string>
323 <string key="NSKeyEquiv">z</string>
324 <int key="NSKeyEquivModMask">1048576</int>
325 <int key="NSMnemonicLoc">2147483647</int>
326 <reference key="NSOnImage" ref="985281305"/>
327 <reference key="NSMixedImage" ref="351279908"/>
328 </object>
329 <object class="NSMenuItem" id="790794224">
330 <reference key="NSMenu" ref="789758025"/>
331 <string key="NSTitle">Redo</string>
332 <string key="NSKeyEquiv">Z</string>
333 <int key="NSKeyEquivModMask">1179648</int>
334 <int key="NSMnemonicLoc">2147483647</int>
335 <reference key="NSOnImage" ref="985281305"/>
336 <reference key="NSMixedImage" ref="351279908"/>
337 </object>
338 <object class="NSMenuItem" id="1040322652">
339 <reference key="NSMenu" ref="789758025"/>
340 <bool key="NSIsDisabled">YES</bool>
341 <bool key="NSIsSeparator">YES</bool>
342 <reference key="NSTitle" ref="255189770"/>
343 <reference key="NSKeyEquiv" ref="255189770"/>
344 <int key="NSKeyEquivModMask">1048576</int>
345 <int key="NSMnemonicLoc">2147483647</int>
346 <reference key="NSOnImage" ref="985281305"/>
347 <reference key="NSMixedImage" ref="351279908"/>
348 </object>
349 <object class="NSMenuItem" id="296257095">
350 <reference key="NSMenu" ref="789758025"/>
351 <string key="NSTitle">Cut</string>
352 <string key="NSKeyEquiv">x</string>
353 <int key="NSKeyEquivModMask">1048576</int>
354 <int key="NSMnemonicLoc">2147483647</int>
355 <reference key="NSOnImage" ref="985281305"/>
356 <reference key="NSMixedImage" ref="351279908"/>
357 </object>
358 <object class="NSMenuItem" id="860595796">
359 <reference key="NSMenu" ref="789758025"/>
360 <string key="NSTitle">Copy</string>
361 <string key="NSKeyEquiv">c</string>
362 <int key="NSKeyEquivModMask">1048576</int>
363 <int key="NSMnemonicLoc">2147483647</int>
364 <reference key="NSOnImage" ref="985281305"/>
365 <reference key="NSMixedImage" ref="351279908"/>
366 </object>
367 <object class="NSMenuItem" id="29853731">
368 <reference key="NSMenu" ref="789758025"/>
369 <string key="NSTitle">Paste</string>
370 <string key="NSKeyEquiv">v</string>
371 <int key="NSKeyEquivModMask">1048576</int>
372 <int key="NSMnemonicLoc">2147483647</int>
373 <reference key="NSOnImage" ref="985281305"/>
374 <reference key="NSMixedImage" ref="351279908"/>
375 </object>
376 <object class="NSMenuItem" id="437104165">
377 <reference key="NSMenu" ref="789758025"/>
378 <string key="NSTitle">Delete</string>
379 <reference key="NSKeyEquiv" ref="255189770"/>
380 <int key="NSKeyEquivModMask">1048576</int>
381 <int key="NSMnemonicLoc">2147483647</int>
382 <reference key="NSOnImage" ref="985281305"/>
383 <reference key="NSMixedImage" ref="351279908"/>
384 </object>
385 <object class="NSMenuItem" id="583158037">
386 <reference key="NSMenu" ref="789758025"/>
387 <string key="NSTitle">Select All</string>
388 <string key="NSKeyEquiv">a</string>
389 <int key="NSKeyEquivModMask">1048576</int>
390 <int key="NSMnemonicLoc">2147483647</int>
391 <reference key="NSOnImage" ref="985281305"/>
392 <reference key="NSMixedImage" ref="351279908"/>
393 </object>
394 <object class="NSMenuItem" id="212016141">
395 <reference key="NSMenu" ref="789758025"/>
396 <bool key="NSIsDisabled">YES</bool>
397 <bool key="NSIsSeparator">YES</bool>
398 <reference key="NSTitle" ref="255189770"/>
399 <reference key="NSKeyEquiv" ref="255189770"/>
400 <int key="NSKeyEquivModMask">1048576</int>
401 <int key="NSMnemonicLoc">2147483647</int>
402 <reference key="NSOnImage" ref="985281305"/>
403 <reference key="NSMixedImage" ref="351279908"/>
404 </object>
405 <object class="NSMenuItem" id="892235320">
406 <reference key="NSMenu" ref="789758025"/>
407 <string key="NSTitle" id="688083180">Find</string>
408 <reference key="NSKeyEquiv" ref="255189770"/>
409 <int key="NSKeyEquivModMask">1048576</int>
410 <int key="NSMnemonicLoc">2147483647</int>
411 <reference key="NSOnImage" ref="985281305"/>
412 <reference key="NSMixedImage" ref="351279908"/>
413 <string key="NSAction">submenuAction:</string>
414 <object class="NSMenu" key="NSSubmenu" id="963351320">
415 <reference key="NSTitle" ref="688083180"/>
416 <object class="NSMutableArray" key="NSMenuItems">
417 <bool key="EncodedWithXMLCoder">YES</bool>
418 <object class="NSMenuItem" id="447796847">
419 <reference key="NSMenu" ref="963351320"/>
420 <string type="base64-UTF8" key="NSTitle">RmluZOKApg</string>
421 <string key="NSKeyEquiv" id="469505129">f</string>
422 <int key="NSKeyEquivModMask">1048576</int>
423 <int key="NSMnemonicLoc">2147483647</int>
424 <reference key="NSOnImage" ref="985281305"/>
425 <reference key="NSMixedImage" ref="351279908"/>
426 <int key="NSTag">1</int>
427 </object>
428 <object class="NSMenuItem" id="326711663">
429 <reference key="NSMenu" ref="963351320"/>
430 <string key="NSTitle">Find Next</string>
431 <string key="NSKeyEquiv" id="762398675">g</string>
432 <int key="NSKeyEquivModMask">1048576</int>
433 <int key="NSMnemonicLoc">2147483647</int>
434 <reference key="NSOnImage" ref="985281305"/>
435 <reference key="NSMixedImage" ref="351279908"/>
436 <int key="NSTag">2</int>
437 </object>
438 <object class="NSMenuItem" id="270902937">
439 <reference key="NSMenu" ref="963351320"/>
440 <string key="NSTitle">Find Previous</string>
441 <string key="NSKeyEquiv" id="819654342">G</string>
442 <int key="NSKeyEquivModMask">1179648</int>
443 <int key="NSMnemonicLoc">2147483647</int>
444 <reference key="NSOnImage" ref="985281305"/>
445 <reference key="NSMixedImage" ref="351279908"/>
446 <int key="NSTag">3</int>
447 </object>
448 <object class="NSMenuItem" id="159080638">
449 <reference key="NSMenu" ref="963351320"/>
450 <string key="NSTitle">Use Selection for Find</string>
451 <string key="NSKeyEquiv">e</string>
452 <int key="NSKeyEquivModMask">1048576</int>
453 <int key="NSMnemonicLoc">2147483647</int>
454 <reference key="NSOnImage" ref="985281305"/>
455 <reference key="NSMixedImage" ref="351279908"/>
456 <int key="NSTag">7</int>
457 </object>
458 <object class="NSMenuItem" id="88285865">
459 <reference key="NSMenu" ref="963351320"/>
460 <string key="NSTitle">Jump to Selection</string>
461 <string key="NSKeyEquiv">j</string>
462 <int key="NSKeyEquivModMask">1048576</int>
463 <int key="NSMnemonicLoc">2147483647</int>
464 <reference key="NSOnImage" ref="985281305"/>
465 <reference key="NSMixedImage" ref="351279908"/>
466 </object>
467 </object>
468 </object>
469 </object>
470 <object class="NSMenuItem" id="972420730">
471 <reference key="NSMenu" ref="789758025"/>
472 <string key="NSTitle" id="739167250">Spelling and Grammar</string>
473 <reference key="NSKeyEquiv" ref="255189770"/>
474 <int key="NSKeyEquivModMask">1048576</int>
475 <int key="NSMnemonicLoc">2147483647</int>
476 <reference key="NSOnImage" ref="985281305"/>
477 <reference key="NSMixedImage" ref="351279908"/>
478 <string key="NSAction">submenuAction:</string>
479 <object class="NSMenu" key="NSSubmenu" id="769623530">
480 <reference key="NSTitle" ref="739167250"/>
481 <object class="NSMutableArray" key="NSMenuItems">
482 <bool key="EncodedWithXMLCoder">YES</bool>
483 <object class="NSMenuItem" id="679648819">
484 <reference key="NSMenu" ref="769623530"/>
485 <string type="base64-UTF8" key="NSTitle">U2hvdyBTcGVsbGluZ+KApg</string>
486 <string key="NSKeyEquiv">:</string>
487 <int key="NSKeyEquivModMask">1048576</int>
488 <int key="NSMnemonicLoc">2147483647</int>
489 <reference key="NSOnImage" ref="985281305"/>
490 <reference key="NSMixedImage" ref="351279908"/>
491 </object>
492 <object class="NSMenuItem" id="96193923">
493 <reference key="NSMenu" ref="769623530"/>
494 <string key="NSTitle">Check Spelling</string>
495 <string key="NSKeyEquiv">;</string>
496 <int key="NSKeyEquivModMask">1048576</int>
497 <int key="NSMnemonicLoc">2147483647</int>
498 <reference key="NSOnImage" ref="985281305"/>
499 <reference key="NSMixedImage" ref="351279908"/>
500 </object>
501 <object class="NSMenuItem" id="948374510">
502 <reference key="NSMenu" ref="769623530"/>
503 <string key="NSTitle">Check Spelling While Typing</string>
504 <reference key="NSKeyEquiv" ref="255189770"/>
505 <int key="NSKeyEquivModMask">1048576</int>
506 <int key="NSMnemonicLoc">2147483647</int>
507 <reference key="NSOnImage" ref="985281305"/>
508 <reference key="NSMixedImage" ref="351279908"/>
509 </object>
510 <object class="NSMenuItem" id="967646866">
511 <reference key="NSMenu" ref="769623530"/>
512 <string key="NSTitle">Check Grammar With Spelling</string>
513 <reference key="NSKeyEquiv" ref="255189770"/>
514 <int key="NSKeyEquivModMask">1048576</int>
515 <int key="NSMnemonicLoc">2147483647</int>
516 <reference key="NSOnImage" ref="985281305"/>
517 <reference key="NSMixedImage" ref="351279908"/>
518 </object>
519 </object>
520 </object>
521 </object>
522 <object class="NSMenuItem" id="507821607">
523 <reference key="NSMenu" ref="789758025"/>
524 <string key="NSTitle" id="904739598">Substitutions</string>
525 <reference key="NSKeyEquiv" ref="255189770"/>
526 <int key="NSKeyEquivModMask">1048576</int>
527 <int key="NSMnemonicLoc">2147483647</int>
528 <reference key="NSOnImage" ref="985281305"/>
529 <reference key="NSMixedImage" ref="351279908"/>
530 <string key="NSAction">submenuAction:</string>
531 <object class="NSMenu" key="NSSubmenu" id="698887838">
532 <reference key="NSTitle" ref="904739598"/>
533 <object class="NSMutableArray" key="NSMenuItems">
534 <bool key="EncodedWithXMLCoder">YES</bool>
535 <object class="NSMenuItem" id="605118523">
536 <reference key="NSMenu" ref="698887838"/>
537 <string key="NSTitle">Smart Copy/Paste</string>
538 <reference key="NSKeyEquiv" ref="469505129"/>
539 <int key="NSKeyEquivModMask">1048576</int>
540 <int key="NSMnemonicLoc">2147483647</int>
541 <reference key="NSOnImage" ref="985281305"/>
542 <reference key="NSMixedImage" ref="351279908"/>
543 <int key="NSTag">1</int>
544 </object>
545 <object class="NSMenuItem" id="197661976">
546 <reference key="NSMenu" ref="698887838"/>
547 <string key="NSTitle">Smart Quotes</string>
548 <reference key="NSKeyEquiv" ref="762398675"/>
549 <int key="NSKeyEquivModMask">1048576</int>
550 <int key="NSMnemonicLoc">2147483647</int>
551 <reference key="NSOnImage" ref="985281305"/>
552 <reference key="NSMixedImage" ref="351279908"/>
553 <int key="NSTag">2</int>
554 </object>
555 <object class="NSMenuItem" id="708854459">
556 <reference key="NSMenu" ref="698887838"/>
557 <string key="NSTitle">Smart Links</string>
558 <reference key="NSKeyEquiv" ref="819654342"/>
559 <int key="NSKeyEquivModMask">1179648</int>
560 <int key="NSMnemonicLoc">2147483647</int>
561 <reference key="NSOnImage" ref="985281305"/>
562 <reference key="NSMixedImage" ref="351279908"/>
563 <int key="NSTag">3</int>
564 </object>
565 </object>
566 </object>
567 </object>
568 <object class="NSMenuItem" id="676164635">
569 <reference key="NSMenu" ref="789758025"/>
570 <string key="NSTitle" id="812002426">Speech</string>
571 <reference key="NSKeyEquiv" ref="255189770"/>
572 <int key="NSKeyEquivModMask">1048576</int>
573 <int key="NSMnemonicLoc">2147483647</int>
574 <reference key="NSOnImage" ref="985281305"/>
575 <reference key="NSMixedImage" ref="351279908"/>
576 <string key="NSAction">submenuAction:</string>
577 <object class="NSMenu" key="NSSubmenu" id="785027613">
578 <reference key="NSTitle" ref="812002426"/>
579 <object class="NSMutableArray" key="NSMenuItems">
580 <bool key="EncodedWithXMLCoder">YES</bool>
581 <object class="NSMenuItem" id="731782645">
582 <reference key="NSMenu" ref="785027613"/>
583 <string key="NSTitle">Start Speaking</string>
584 <reference key="NSKeyEquiv" ref="255189770"/>
585 <int key="NSKeyEquivModMask">1048576</int>
586 <int key="NSMnemonicLoc">2147483647</int>
587 <reference key="NSOnImage" ref="985281305"/>
588 <reference key="NSMixedImage" ref="351279908"/>
589 </object>
590 <object class="NSMenuItem" id="680220178">
591 <reference key="NSMenu" ref="785027613"/>
592 <string key="NSTitle">Stop Speaking</string>
593 <reference key="NSKeyEquiv" ref="255189770"/>
594 <int key="NSKeyEquivModMask">1048576</int>
595 <int key="NSMnemonicLoc">2147483647</int>
596 <reference key="NSOnImage" ref="985281305"/>
597 <reference key="NSMixedImage" ref="351279908"/>
598 </object>
599 </object>
600 </object>
601 </object>
602 </object>
603 </object>
604 </object>
605 <object class="NSMenuItem" id="626404410">
606 <reference key="NSMenu" ref="649796088"/>
607 <string key="NSTitle" id="241242548">Format</string>
608 <reference key="NSKeyEquiv" ref="255189770"/>
609 <int key="NSKeyEquivModMask">1048576</int>
610 <int key="NSMnemonicLoc">2147483647</int>
611 <reference key="NSOnImage" ref="985281305"/>
612 <reference key="NSMixedImage" ref="351279908"/>
613 <string key="NSAction">submenuAction:</string>
614 <object class="NSMenu" key="NSSubmenu" id="502084290">
615 <reference key="NSTitle" ref="241242548"/>
616 <object class="NSMutableArray" key="NSMenuItems">
617 <bool key="EncodedWithXMLCoder">YES</bool>
618 <object class="NSMenuItem" id="519768076">
619 <reference key="NSMenu" ref="502084290"/>
620 <string key="NSTitle">Show Fonts</string>
621 <string key="NSKeyEquiv" id="806579634">t</string>
622 <int key="NSKeyEquivModMask">1048576</int>
623 <int key="NSMnemonicLoc">2147483647</int>
624 <reference key="NSOnImage" ref="985281305"/>
625 <reference key="NSMixedImage" ref="351279908"/>
626 </object>
627 <object class="NSMenuItem" id="1028416764">
628 <reference key="NSMenu" ref="502084290"/>
629 <string key="NSTitle">Show Colors</string>
630 <string key="NSKeyEquiv">C</string>
631 <int key="NSKeyEquivModMask">1179648</int>
632 <int key="NSMnemonicLoc">2147483647</int>
633 <reference key="NSOnImage" ref="985281305"/>
634 <reference key="NSMixedImage" ref="351279908"/>
635 </object>
636 </object>
637 </object>
638 </object>
639 <object class="NSMenuItem" id="586577488">
640 <reference key="NSMenu" ref="649796088"/>
641 <string key="NSTitle" id="809723865">View</string>
642 <reference key="NSKeyEquiv" ref="255189770"/>
643 <int key="NSKeyEquivModMask">1048576</int>
644 <int key="NSMnemonicLoc">2147483647</int>
645 <reference key="NSOnImage" ref="985281305"/>
646 <reference key="NSMixedImage" ref="351279908"/>
647 <string key="NSAction">submenuAction:</string>
648 <object class="NSMenu" key="NSSubmenu" id="466310130">
649 <reference key="NSTitle" ref="809723865"/>
650 <object class="NSMutableArray" key="NSMenuItems">
651 <bool key="EncodedWithXMLCoder">YES</bool>
652 <object class="NSMenuItem" id="102151532">
653 <reference key="NSMenu" ref="466310130"/>
654 <string key="NSTitle">Show Toolbar</string>
655 <reference key="NSKeyEquiv" ref="806579634"/>
656 <int key="NSKeyEquivModMask">1572864</int>
657 <int key="NSMnemonicLoc">2147483647</int>
658 <reference key="NSOnImage" ref="985281305"/>
659 <reference key="NSMixedImage" ref="351279908"/>
660 </object>
661 <object class="NSMenuItem" id="237841660">
662 <reference key="NSMenu" ref="466310130"/>
663 <string type="base64-UTF8" key="NSTitle">Q3VzdG9taXplIFRvb2xiYXLigKY</string>
664 <reference key="NSKeyEquiv" ref="255189770"/>
665 <int key="NSKeyEquivModMask">1048576</int>
666 <int key="NSMnemonicLoc">2147483647</int>
667 <reference key="NSOnImage" ref="985281305"/>
668 <reference key="NSMixedImage" ref="351279908"/>
669 </object>
670 </object>
671 </object>
672 </object>
673 <object class="NSMenuItem" id="713487014">
674 <reference key="NSMenu" ref="649796088"/>
675 <string key="NSTitle" id="64165424">Window</string>
676 <reference key="NSKeyEquiv" ref="255189770"/>
677 <int key="NSKeyEquivModMask">1048576</int>
678 <int key="NSMnemonicLoc">2147483647</int>
679 <reference key="NSOnImage" ref="985281305"/>
680 <reference key="NSMixedImage" ref="351279908"/>
681 <string key="NSAction">submenuAction:</string>
682 <object class="NSMenu" key="NSSubmenu" id="835318025">
683 <reference key="NSTitle" ref="64165424"/>
684 <object class="NSMutableArray" key="NSMenuItems">
685 <bool key="EncodedWithXMLCoder">YES</bool>
686 <object class="NSMenuItem" id="1011231497">
687 <reference key="NSMenu" ref="835318025"/>
688 <string key="NSTitle">Minimize</string>
689 <string key="NSKeyEquiv">m</string>
690 <int key="NSKeyEquivModMask">1048576</int>
691 <int key="NSMnemonicLoc">2147483647</int>
692 <reference key="NSOnImage" ref="985281305"/>
693 <reference key="NSMixedImage" ref="351279908"/>
694 </object>
695 <object class="NSMenuItem" id="575023229">
696 <reference key="NSMenu" ref="835318025"/>
697 <string key="NSTitle">Zoom</string>
698 <reference key="NSKeyEquiv" ref="255189770"/>
699 <int key="NSKeyEquivModMask">1048576</int>
700 <int key="NSMnemonicLoc">2147483647</int>
701 <reference key="NSOnImage" ref="985281305"/>
702 <reference key="NSMixedImage" ref="351279908"/>
703 </object>
704 <object class="NSMenuItem" id="299356726">
705 <reference key="NSMenu" ref="835318025"/>
706 <bool key="NSIsDisabled">YES</bool>
707 <bool key="NSIsSeparator">YES</bool>
708 <reference key="NSTitle" ref="255189770"/>
709 <reference key="NSKeyEquiv" ref="255189770"/>
710 <int key="NSKeyEquivModMask">1048576</int>
711 <int key="NSMnemonicLoc">2147483647</int>
712 <reference key="NSOnImage" ref="985281305"/>
713 <reference key="NSMixedImage" ref="351279908"/>
714 </object>
715 <object class="NSMenuItem" id="625202149">
716 <reference key="NSMenu" ref="835318025"/>
717 <string key="NSTitle">Bring All to Front</string>
718 <reference key="NSKeyEquiv" ref="255189770"/>
719 <int key="NSKeyEquivModMask">1048576</int>
720 <int key="NSMnemonicLoc">2147483647</int>
721 <reference key="NSOnImage" ref="985281305"/>
722 <reference key="NSMixedImage" ref="351279908"/>
723 </object>
724 </object>
725 <string key="NSName">_NSWindowsMenu</string>
726 </object>
727 </object>
728 <object class="NSMenuItem" id="391199113">
729 <reference key="NSMenu" ref="649796088"/>
730 <string key="NSTitle" id="461919786">Help</string>
731 <reference key="NSKeyEquiv" ref="255189770"/>
732 <int key="NSKeyEquivModMask">1048576</int>
733 <int key="NSMnemonicLoc">2147483647</int>
734 <reference key="NSOnImage" ref="985281305"/>
735 <reference key="NSMixedImage" ref="351279908"/>
736 <string key="NSAction">submenuAction:</string>
737 <object class="NSMenu" key="NSSubmenu" id="374024848">
738 <reference key="NSTitle" ref="461919786"/>
739 <object class="NSMutableArray" key="NSMenuItems">
740 <bool key="EncodedWithXMLCoder">YES</bool>
741 <object class="NSMenuItem" id="238773614">
742 <reference key="NSMenu" ref="374024848"/>
743 <string key="NSTitle">IPython1Sandbox Help</string>
744 <string key="NSKeyEquiv">?</string>
745 <int key="NSKeyEquivModMask">1048576</int>
746 <int key="NSMnemonicLoc">2147483647</int>
747 <reference key="NSOnImage" ref="985281305"/>
748 <reference key="NSMixedImage" ref="351279908"/>
749 </object>
750 </object>
751 </object>
752 </object>
753 </object>
754 <string key="NSName">_NSMainMenu</string>
755 </object>
756 <object class="NSWindowTemplate" id="972006081">
757 <int key="NSWindowStyleMask">15</int>
758 <int key="NSWindowBacking">2</int>
759 <string key="NSWindowRect">{{335, 413}, {725, 337}}</string>
760 <int key="NSWTFlags">1946157056</int>
761 <string key="NSWindowTitle">IPython1 (Cocoa)</string>
762 <string key="NSWindowClass">NSWindow</string>
763 <nil key="NSViewClass"/>
764 <object class="NSView" key="NSWindowView" id="439893737">
765 <reference key="NSNextResponder"/>
766 <int key="NSvFlags">256</int>
767 <object class="NSMutableArray" key="NSSubviews">
768 <bool key="EncodedWithXMLCoder">YES</bool>
769 <object class="NSSplitView" id="741760375">
770 <reference key="NSNextResponder" ref="439893737"/>
771 <int key="NSvFlags">274</int>
772 <object class="NSMutableArray" key="NSSubviews">
773 <bool key="EncodedWithXMLCoder">YES</bool>
774 <object class="NSBox" id="554641139">
775 <reference key="NSNextResponder" ref="741760375"/>
776 <int key="NSvFlags">22</int>
777 <object class="NSMutableArray" key="NSSubviews">
778 <bool key="EncodedWithXMLCoder">YES</bool>
779 <object class="NSView" id="597872307">
780 <reference key="NSNextResponder" ref="554641139"/>
781 <int key="NSvFlags">256</int>
782 <object class="NSMutableArray" key="NSSubviews">
783 <bool key="EncodedWithXMLCoder">YES</bool>
784 <object class="NSScrollView" id="188193463">
785 <reference key="NSNextResponder" ref="597872307"/>
786 <int key="NSvFlags">274</int>
787 <object class="NSMutableArray" key="NSSubviews">
788 <bool key="EncodedWithXMLCoder">YES</bool>
789 <object class="NSClipView" id="638544389">
790 <reference key="NSNextResponder" ref="188193463"/>
791 <int key="NSvFlags">2304</int>
792 <object class="NSMutableArray" key="NSSubviews">
793 <bool key="EncodedWithXMLCoder">YES</bool>
794 <object class="NSTextView" id="163417131">
795 <reference key="NSNextResponder" ref="638544389"/>
796 <int key="NSvFlags">2322</int>
797 <object class="NSMutableSet" key="NSDragTypes">
798 <bool key="EncodedWithXMLCoder">YES</bool>
799 <object class="NSMutableArray" key="set.sortedObjects">
800 <bool key="EncodedWithXMLCoder">YES</bool>
801 <string>Apple HTML pasteboard type</string>
802 <string>Apple PDF pasteboard type</string>
803 <string>Apple PICT pasteboard type</string>
804 <string>Apple PNG pasteboard type</string>
805 <string>Apple URL pasteboard type</string>
806 <string>CorePasteboardFlavorType 0x6D6F6F76</string>
807 <string>CorePasteboardFlavorType 0x75726C20</string>
808 <string>NSColor pasteboard type</string>
809 <string>NSFilenamesPboardType</string>
810 <string>NSStringPboardType</string>
811 <string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
812 <string>NeXT RTFD pasteboard type</string>
813 <string>NeXT Rich Text Format v1.0 pasteboard type</string>
814 <string>NeXT TIFF v4.0 pasteboard type</string>
815 <string>NeXT font pasteboard type</string>
816 <string>NeXT ruler pasteboard type</string>
817 <string>WebURLsWithTitlesPboardType</string>
818 </object>
819 </object>
820 <string key="NSFrame">{{0, 38}, {433, 14}}</string>
821 <reference key="NSSuperview" ref="638544389"/>
822 <reference key="NSWindow"/>
823 <object class="NSTextContainer" key="NSTextContainer" id="662117317">
824 <object class="NSLayoutManager" key="NSLayoutManager">
825 <object class="NSTextStorage" key="NSTextStorage">
826 <object class="NSMutableString" key="NSString">
827 <characters key="NS.bytes"/>
828 </object>
829 <nil key="NSDelegate"/>
830 </object>
831 <object class="NSMutableArray" key="NSTextContainers">
832 <bool key="EncodedWithXMLCoder">YES</bool>
833 <reference ref="662117317"/>
834 </object>
835 <int key="NSLMFlags">6</int>
836 <nil key="NSDelegate"/>
837 </object>
838 <reference key="NSTextView" ref="163417131"/>
839 <double key="NSWidth">4.330000e+02</double>
840 <int key="NSTCFlags">1</int>
841 </object>
842 <object class="NSTextViewSharedData" key="NSSharedData">
843 <int key="NSFlags">346991</int>
844 <object class="NSColor" key="NSBackgroundColor">
845 <int key="NSColorSpace">2</int>
846 <bytes key="NSRGB">MSAwLjk1Mjk0MTI0IDAuODUwOTgwNDYAA</bytes>
847 </object>
848 <object class="NSColor" key="NSInsertionColor" id="555789289">
849 <int key="NSColorSpace">3</int>
850 <bytes key="NSWhite">MAA</bytes>
851 </object>
852 <object class="NSDictionary" key="NSSelectedAttributes">
853 <bool key="EncodedWithXMLCoder">YES</bool>
854 <object class="NSMutableArray" key="dict.sortedKeys">
855 <bool key="EncodedWithXMLCoder">YES</bool>
856 <string>NSBackgroundColor</string>
857 <string id="19777717">NSColor</string>
858 </object>
859 <object class="NSMutableArray" key="dict.values">
860 <bool key="EncodedWithXMLCoder">YES</bool>
861 <object class="NSColor">
862 <int key="NSColorSpace">6</int>
863 <string key="NSCatalogName" id="945274157">System</string>
864 <string key="NSColorName">selectedTextBackgroundColor</string>
865 <object class="NSColor" key="NSColor" id="377165725">
866 <int key="NSColorSpace">3</int>
867 <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes>
868 </object>
869 </object>
870 <object class="NSColor">
871 <int key="NSColorSpace">6</int>
872 <reference key="NSCatalogName" ref="945274157"/>
873 <string key="NSColorName">selectedTextColor</string>
874 <reference key="NSColor" ref="555789289"/>
875 </object>
876 </object>
877 </object>
878 <nil key="NSMarkedAttributes"/>
879 <object class="NSDictionary" key="NSLinkAttributes">
880 <bool key="EncodedWithXMLCoder">YES</bool>
881 <object class="NSMutableArray" key="dict.sortedKeys">
882 <bool key="EncodedWithXMLCoder">YES</bool>
883 <reference ref="19777717"/>
884 <string>NSUnderline</string>
885 </object>
886 <object class="NSMutableArray" key="dict.values">
887 <bool key="EncodedWithXMLCoder">YES</bool>
888 <object class="NSColor">
889 <int key="NSColorSpace">1</int>
890 <bytes key="NSRGB">MCAwIDEAA</bytes>
891 </object>
892 <integer value="1" id="9"/>
893 </object>
894 </object>
895 <nil key="NSDefaultParagraphStyle"/>
896 </object>
897 <int key="NSTVFlags">6</int>
898 <string key="NSMaxSize">{480, 1e+07}</string>
899 <string key="NSMinize">{84, 0}</string>
900 <nil key="NSDelegate"/>
901 </object>
902 </object>
903 <string key="NSFrame">{{1, 1}, {433, 231}}</string>
904 <string key="NSBounds">{{0, 38}, {433, 231}}</string>
905 <reference key="NSSuperview" ref="188193463"/>
906 <reference key="NSWindow"/>
907 <reference key="NSNextKeyView" ref="163417131"/>
908 <reference key="NSDocView" ref="163417131"/>
909 <object class="NSColor" key="NSBGColor" id="521347521">
910 <int key="NSColorSpace">3</int>
911 <bytes key="NSWhite">MQA</bytes>
912 </object>
913 <object class="NSCursor" key="NSCursor">
914 <string key="NSHotSpot">{4, -5}</string>
915 <int key="NSCursorType">1</int>
916 </object>
917 <int key="NScvFlags">4</int>
918 </object>
919 <object class="NSScroller" id="418410897">
920 <reference key="NSNextResponder" ref="188193463"/>
921 <int key="NSvFlags">-2147483392</int>
922 <string key="NSFrame">{{427, 1}, {15, 263}}</string>
923 <reference key="NSSuperview" ref="188193463"/>
924 <reference key="NSWindow"/>
925 <reference key="NSTarget" ref="188193463"/>
926 <string key="NSAction" id="688920982">_doScroller:</string>
927 <double key="NSPercent">3.389175e-01</double>
928 </object>
929 <object class="NSScroller" id="936733673">
930 <reference key="NSNextResponder" ref="188193463"/>
931 <int key="NSvFlags">256</int>
932 <string key="NSFrame">{{-100, -100}, {87, 18}}</string>
933 <reference key="NSSuperview" ref="188193463"/>
934 <reference key="NSWindow"/>
935 <int key="NSsFlags">1</int>
936 <reference key="NSTarget" ref="188193463"/>
937 <reference key="NSAction" ref="688920982"/>
938 <double key="NSCurValue">1.000000e+00</double>
939 <double key="NSPercent">9.456522e-01</double>
940 </object>
941 </object>
942 <string key="NSFrame">{{18, 14}, {435, 233}}</string>
943 <reference key="NSSuperview" ref="597872307"/>
944 <reference key="NSWindow"/>
945 <reference key="NSNextKeyView" ref="638544389"/>
946 <int key="NSsFlags">530</int>
947 <reference key="NSVScroller" ref="418410897"/>
948 <reference key="NSHScroller" ref="936733673"/>
949 <reference key="NSContentView" ref="638544389"/>
950 </object>
951 </object>
952 <string key="NSFrame">{{1, 1}, {471, 257}}</string>
953 <reference key="NSSuperview" ref="554641139"/>
954 <reference key="NSWindow"/>
955 </object>
956 </object>
957 <string key="NSFrameSize">{473, 273}</string>
958 <reference key="NSSuperview" ref="741760375"/>
959 <reference key="NSWindow"/>
960 <string key="NSOffsets" id="1055927954">{0, 0}</string>
961 <object class="NSTextFieldCell" key="NSTitleCell">
962 <int key="NSCellFlags">67239424</int>
963 <int key="NSCellFlags2">0</int>
964 <string key="NSContents">Console</string>
965 <object class="NSFont" key="NSSupport" id="26">
966 <string key="NSName" id="257617473">LucidaGrande</string>
967 <double key="NSSize">1.100000e+01</double>
968 <int key="NSfFlags">3100</int>
969 </object>
970 <object class="NSColor" key="NSBackgroundColor" id="131515055">
971 <int key="NSColorSpace">6</int>
972 <reference key="NSCatalogName" ref="945274157"/>
973 <string key="NSColorName">textBackgroundColor</string>
974 <reference key="NSColor" ref="521347521"/>
975 </object>
976 <object class="NSColor" key="NSTextColor">
977 <int key="NSColorSpace">3</int>
978 <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
979 </object>
980 </object>
981 <reference key="NSContentView" ref="597872307"/>
982 <int key="NSBorderType">1</int>
983 <int key="NSBoxType">0</int>
984 <int key="NSTitlePosition">2</int>
985 <bool key="NSTransparent">NO</bool>
986 </object>
987 <object class="NSBox" id="764100755">
988 <reference key="NSNextResponder" ref="741760375"/>
989 <int key="NSvFlags">51</int>
990 <object class="NSMutableArray" key="NSSubviews">
991 <bool key="EncodedWithXMLCoder">YES</bool>
992 <object class="NSView" id="581281551">
993 <reference key="NSNextResponder" ref="764100755"/>
994 <int key="NSvFlags">256</int>
995 <object class="NSMutableArray" key="NSSubviews">
996 <bool key="EncodedWithXMLCoder">YES</bool>
997 <object class="NSScrollView" id="516244966">
998 <reference key="NSNextResponder" ref="581281551"/>
999 <int key="NSvFlags">274</int>
1000 <object class="NSMutableArray" key="NSSubviews">
1001 <bool key="EncodedWithXMLCoder">YES</bool>
1002 <object class="NSClipView" id="119083427">
1003 <reference key="NSNextResponder" ref="516244966"/>
1004 <int key="NSvFlags">2304</int>
1005 <object class="NSMutableArray" key="NSSubviews">
1006 <bool key="EncodedWithXMLCoder">YES</bool>
1007 <object class="NSTableView" id="23853726">
1008 <reference key="NSNextResponder" ref="119083427"/>
1009 <int key="NSvFlags">256</int>
1010 <string key="NSFrameSize">{156, 200}</string>
1011 <reference key="NSSuperview" ref="119083427"/>
1012 <reference key="NSWindow"/>
1013 <bool key="NSEnabled">YES</bool>
1014 <object class="NSTableHeaderView" key="NSHeaderView" id="1048357090">
1015 <reference key="NSNextResponder" ref="746968320"/>
1016 <int key="NSvFlags">256</int>
1017 <string key="NSFrameSize">{156, 17}</string>
1018 <reference key="NSSuperview" ref="746968320"/>
1019 <reference key="NSWindow"/>
1020 <reference key="NSTableView" ref="23853726"/>
1021 </object>
1022 <object class="_NSCornerView" key="NSCornerView" id="212282722">
1023 <reference key="NSNextResponder" ref="516244966"/>
1024 <int key="NSvFlags">256</int>
1025 <string key="NSFrame">{{157, 0}, {16, 17}}</string>
1026 <reference key="NSSuperview" ref="516244966"/>
1027 <reference key="NSWindow"/>
1028 </object>
1029 <object class="NSMutableArray" key="NSTableColumns">
1030 <bool key="EncodedWithXMLCoder">YES</bool>
1031 <object class="NSTableColumn" id="920426212">
1032 <double key="NSWidth">7.100000e+01</double>
1033 <double key="NSMinWidth">4.000000e+01</double>
1034 <double key="NSMaxWidth">1.000000e+03</double>
1035 <object class="NSTableHeaderCell" key="NSHeaderCell">
1036 <int key="NSCellFlags">75628032</int>
1037 <int key="NSCellFlags2">0</int>
1038 <string key="NSContents">Variable</string>
1039 <reference key="NSSupport" ref="26"/>
1040 <object class="NSColor" key="NSBackgroundColor" id="890615311">
1041 <int key="NSColorSpace">3</int>
1042 <bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
1043 </object>
1044 <object class="NSColor" key="NSTextColor" id="866628999">
1045 <int key="NSColorSpace">6</int>
1046 <reference key="NSCatalogName" ref="945274157"/>
1047 <string key="NSColorName">headerTextColor</string>
1048 <reference key="NSColor" ref="555789289"/>
1049 </object>
1050 </object>
1051 <object class="NSTextFieldCell" key="NSDataCell" id="525071236">
1052 <int key="NSCellFlags">337772096</int>
1053 <int key="NSCellFlags2">2048</int>
1054 <string key="NSContents" id="590184478">Text Cell</string>
1055 <object class="NSFont" key="NSSupport" id="8196371">
1056 <reference key="NSName" ref="257617473"/>
1057 <double key="NSSize">1.300000e+01</double>
1058 <int key="NSfFlags">1044</int>
1059 </object>
1060 <reference key="NSControlView" ref="23853726"/>
1061 <object class="NSColor" key="NSBackgroundColor" id="224028609">
1062 <int key="NSColorSpace">6</int>
1063 <reference key="NSCatalogName" ref="945274157"/>
1064 <string key="NSColorName">controlBackgroundColor</string>
1065 <reference key="NSColor" ref="377165725"/>
1066 </object>
1067 <object class="NSColor" key="NSTextColor" id="205104690">
1068 <int key="NSColorSpace">6</int>
1069 <reference key="NSCatalogName" ref="945274157"/>
1070 <string key="NSColorName">controlTextColor</string>
1071 <reference key="NSColor" ref="555789289"/>
1072 </object>
1073 </object>
1074 <int key="NSResizingMask">3</int>
1075 <bool key="NSIsResizeable">YES</bool>
1076 <bool key="NSIsEditable">YES</bool>
1077 <reference key="NSTableView" ref="23853726"/>
1078 </object>
1079 <object class="NSTableColumn" id="857054683">
1080 <double key="NSWidth">7.900000e+01</double>
1081 <double key="NSMinWidth">4.000000e+01</double>
1082 <double key="NSMaxWidth">1.000000e+03</double>
1083 <object class="NSTableHeaderCell" key="NSHeaderCell">
1084 <int key="NSCellFlags">75628032</int>
1085 <int key="NSCellFlags2">0</int>
1086 <string key="NSContents">Value</string>
1087 <reference key="NSSupport" ref="26"/>
1088 <reference key="NSBackgroundColor" ref="890615311"/>
1089 <reference key="NSTextColor" ref="866628999"/>
1090 </object>
1091 <object class="NSTextFieldCell" key="NSDataCell" id="377147224">
1092 <int key="NSCellFlags">337772096</int>
1093 <int key="NSCellFlags2">2048</int>
1094 <reference key="NSContents" ref="590184478"/>
1095 <reference key="NSSupport" ref="8196371"/>
1096 <reference key="NSControlView" ref="23853726"/>
1097 <reference key="NSBackgroundColor" ref="224028609"/>
1098 <reference key="NSTextColor" ref="205104690"/>
1099 </object>
1100 <int key="NSResizingMask">3</int>
1101 <bool key="NSIsResizeable">YES</bool>
1102 <bool key="NSIsEditable">YES</bool>
1103 <reference key="NSTableView" ref="23853726"/>
1104 </object>
1105 </object>
1106 <double key="NSIntercellSpacingWidth">3.000000e+00</double>
1107 <double key="NSIntercellSpacingHeight">2.000000e+00</double>
1108 <reference key="NSBackgroundColor" ref="521347521"/>
1109 <object class="NSColor" key="NSGridColor">
1110 <int key="NSColorSpace">6</int>
1111 <reference key="NSCatalogName" ref="945274157"/>
1112 <string key="NSColorName">gridColor</string>
1113 <object class="NSColor" key="NSColor">
1114 <int key="NSColorSpace">3</int>
1115 <bytes key="NSWhite">MC41AA</bytes>
1116 </object>
1117 </object>
1118 <double key="NSRowHeight">1.700000e+01</double>
1119 <int key="NSTvFlags">-692060160</int>
1120 <int key="NSGridStyleMask">1</int>
1121 <int key="NSColumnAutoresizingStyle">4</int>
1122 <int key="NSDraggingSourceMaskForLocal">15</int>
1123 <int key="NSDraggingSourceMaskForNonLocal">0</int>
1124 <bool key="NSAllowsTypeSelect">YES</bool>
1125 </object>
1126 </object>
1127 <string key="NSFrame">{{1, 17}, {156, 200}}</string>
1128 <reference key="NSSuperview" ref="516244966"/>
1129 <reference key="NSWindow"/>
1130 <reference key="NSNextKeyView" ref="23853726"/>
1131 <reference key="NSDocView" ref="23853726"/>
1132 <reference key="NSBGColor" ref="224028609"/>
1133 <int key="NScvFlags">4</int>
1134 </object>
1135 <object class="NSScroller" id="512953560">
1136 <reference key="NSNextResponder" ref="516244966"/>
1137 <int key="NSvFlags">256</int>
1138 <string key="NSFrame">{{157, 17}, {15, 200}}</string>
1139 <reference key="NSSuperview" ref="516244966"/>
1140 <reference key="NSWindow"/>
1141 <reference key="NSTarget" ref="516244966"/>
1142 <reference key="NSAction" ref="688920982"/>
1143 <double key="NSPercent">9.961240e-01</double>
1144 </object>
1145 <object class="NSScroller" id="47103270">
1146 <reference key="NSNextResponder" ref="516244966"/>
1147 <int key="NSvFlags">256</int>
1148 <string key="NSFrame">{{1, 217}, {156, 15}}</string>
1149 <reference key="NSSuperview" ref="516244966"/>
1150 <reference key="NSWindow"/>
1151 <int key="NSsFlags">1</int>
1152 <reference key="NSTarget" ref="516244966"/>
1153 <reference key="NSAction" ref="688920982"/>
1154 <double key="NSPercent">7.179487e-01</double>
1155 </object>
1156 <object class="NSClipView" id="746968320">
1157 <reference key="NSNextResponder" ref="516244966"/>
1158 <int key="NSvFlags">2304</int>
1159 <object class="NSMutableArray" key="NSSubviews">
1160 <bool key="EncodedWithXMLCoder">YES</bool>
1161 <reference ref="1048357090"/>
1162 </object>
1163 <string key="NSFrame">{{1, 0}, {156, 17}}</string>
1164 <reference key="NSSuperview" ref="516244966"/>
1165 <reference key="NSWindow"/>
1166 <reference key="NSNextKeyView" ref="1048357090"/>
1167 <reference key="NSDocView" ref="1048357090"/>
1168 <reference key="NSBGColor" ref="224028609"/>
1169 <int key="NScvFlags">4</int>
1170 </object>
1171 <reference ref="212282722"/>
1172 </object>
1173 <string key="NSFrame">{{18, 14}, {173, 233}}</string>
1174 <reference key="NSSuperview" ref="581281551"/>
1175 <reference key="NSWindow"/>
1176 <reference key="NSNextKeyView" ref="119083427"/>
1177 <int key="NSsFlags">50</int>
1178 <reference key="NSVScroller" ref="512953560"/>
1179 <reference key="NSHScroller" ref="47103270"/>
1180 <reference key="NSContentView" ref="119083427"/>
1181 <reference key="NSHeaderClipView" ref="746968320"/>
1182 <reference key="NSCornerView" ref="212282722"/>
1183 <bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
1184 </object>
1185 </object>
1186 <string key="NSFrame">{{1, 1}, {209, 257}}</string>
1187 <reference key="NSSuperview" ref="764100755"/>
1188 <reference key="NSWindow"/>
1189 </object>
1190 </object>
1191 <string key="NSFrame">{{474, 0}, {211, 273}}</string>
1192 <reference key="NSSuperview" ref="741760375"/>
1193 <reference key="NSWindow"/>
1194 <reference key="NSOffsets" ref="1055927954"/>
1195 <object class="NSTextFieldCell" key="NSTitleCell">
1196 <int key="NSCellFlags">67239424</int>
1197 <int key="NSCellFlags2">0</int>
1198 <string key="NSContents">Workspace</string>
1199 <reference key="NSSupport" ref="26"/>
1200 <reference key="NSBackgroundColor" ref="131515055"/>
1201 <object class="NSColor" key="NSTextColor">
1202 <int key="NSColorSpace">3</int>
1203 <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
1204 </object>
1205 </object>
1206 <reference key="NSContentView" ref="581281551"/>
1207 <int key="NSBorderType">1</int>
1208 <int key="NSBoxType">0</int>
1209 <int key="NSTitlePosition">2</int>
1210 <bool key="NSTransparent">NO</bool>
1211 </object>
1212 </object>
1213 <string key="NSFrame">{{20, 44}, {685, 273}}</string>
1214 <reference key="NSSuperview" ref="439893737"/>
1215 <reference key="NSWindow"/>
1216 <bool key="NSIsVertical">YES</bool>
1217 <int key="NSDividerStyle">2</int>
1218 <string key="NSAutosaveName">ipython1_console_workspace_split</string>
1219 </object>
1220 <object class="NSProgressIndicator" id="74807016">
1221 <reference key="NSNextResponder" ref="439893737"/>
1222 <int key="NSvFlags">1313</int>
1223 <object class="NSPSMatrix" key="NSDrawMatrix"/>
1224 <string key="NSFrame">{{689, 20}, {16, 16}}</string>
1225 <reference key="NSSuperview" ref="439893737"/>
1226 <reference key="NSWindow"/>
1227 <int key="NSpiFlags">28938</int>
1228 <double key="NSMinValue">1.600000e+01</double>
1229 <double key="NSMaxValue">1.000000e+02</double>
1230 </object>
1231 </object>
1232 <string key="NSFrameSize">{725, 337}</string>
1233 <reference key="NSSuperview"/>
1234 <reference key="NSWindow"/>
1235 </object>
1236 <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
1237 <string key="NSFrameAutosaveName">ipython1_sandbox</string>
1238 </object>
1239 <object class="NSCustomObject" id="610635028">
1240 <string key="NSClassName" id="982950837">IPython1SandboxAppDelegate</string>
1241 </object>
1242 <object class="NSDictionaryController" id="808393665">
1243 <object class="NSMutableArray" key="NSDeclaredKeys">
1244 <bool key="EncodedWithXMLCoder">YES</bool>
1245 <string>keys</string>
1246 <string id="181461860">key</string>
1247 <string id="276523235">value</string>
1248 </object>
1249 <bool key="NSEditable">YES</bool>
1250 <bool key="NSAvoidsEmptySelection">YES</bool>
1251 <bool key="NSPreservesSelection">YES</bool>
1252 <bool key="NSSelectsInsertedObjects">YES</bool>
1253 <bool key="NSFilterRestrictsInsertion">YES</bool>
1254 <object class="NSArray" key="NSSortDescriptors">
1255 <bool key="EncodedWithXMLCoder">YES</bool>
1256 <object class="NSSortDescriptor">
1257 <reference key="NSKey" ref="181461860"/>
1258 <bool key="NSAscending">YES</bool>
1259 <string key="NSSelector">compare:</string>
1260 </object>
1261 </object>
1262 <bool key="NSClearsFilterPredicateOnInsertion">YES</bool>
1263 <reference key="NSInitialKey" ref="181461860"/>
1264 <reference key="NSInitialValue" ref="276523235"/>
1265 </object>
1266 <object class="NSCustomObject" id="631572152">
1267 <string key="NSClassName" id="695797635">IPythonCocoaController</string>
1268 </object>
1269 </object>
1270 <object class="IBObjectContainer" key="IBDocument.Objects">
1271 <object class="NSMutableArray" key="connectionRecords">
1272 <bool key="EncodedWithXMLCoder">YES</bool>
1273 <object class="IBConnectionRecord">
1274 <object class="IBActionConnection" key="connection">
1275 <string key="label">performMiniaturize:</string>
1276 <reference key="source" ref="1014"/>
1277 <reference key="destination" ref="1011231497"/>
1278 </object>
1279 <int key="connectionID">37</int>
1280 </object>
1281 <object class="IBConnectionRecord">
1282 <object class="IBActionConnection" key="connection">
1283 <string key="label">arrangeInFront:</string>
1284 <reference key="source" ref="1014"/>
1285 <reference key="destination" ref="625202149"/>
1286 </object>
1287 <int key="connectionID">39</int>
1288 </object>
1289 <object class="IBConnectionRecord">
1290 <object class="IBActionConnection" key="connection">
1291 <string key="label">print:</string>
1292 <reference key="source" ref="1014"/>
1293 <reference key="destination" ref="49223823"/>
1294 </object>
1295 <int key="connectionID">86</int>
1296 </object>
1297 <object class="IBConnectionRecord">
1298 <object class="IBActionConnection" key="connection">
1299 <string key="label">runPageLayout:</string>
1300 <reference key="source" ref="1014"/>
1301 <reference key="destination" ref="294629803"/>
1302 </object>
1303 <int key="connectionID">87</int>
1304 </object>
1305 <object class="IBConnectionRecord">
1306 <object class="IBActionConnection" key="connection">
1307 <string key="label">clearRecentDocuments:</string>
1308 <reference key="source" ref="1014"/>
1309 <reference key="destination" ref="759406840"/>
1310 </object>
1311 <int key="connectionID">127</int>
1312 </object>
1313 <object class="IBConnectionRecord">
1314 <object class="IBActionConnection" key="connection">
1315 <string key="label">orderFrontStandardAboutPanel:</string>
1316 <reference key="source" ref="1021"/>
1317 <reference key="destination" ref="238522557"/>
1318 </object>
1319 <int key="connectionID">142</int>
1320 </object>
1321 <object class="IBConnectionRecord">
1322 <object class="IBActionConnection" key="connection">
1323 <string key="label">performClose:</string>
1324 <reference key="source" ref="1014"/>
1325 <reference key="destination" ref="776162233"/>
1326 </object>
1327 <int key="connectionID">193</int>
1328 </object>
1329 <object class="IBConnectionRecord">
1330 <object class="IBActionConnection" key="connection">
1331 <string key="label">toggleContinuousSpellChecking:</string>
1332 <reference key="source" ref="1014"/>
1333 <reference key="destination" ref="948374510"/>
1334 </object>
1335 <int key="connectionID">222</int>
1336 </object>
1337 <object class="IBConnectionRecord">
1338 <object class="IBActionConnection" key="connection">
1339 <string key="label">undo:</string>
1340 <reference key="source" ref="1014"/>
1341 <reference key="destination" ref="1058277027"/>
1342 </object>
1343 <int key="connectionID">223</int>
1344 </object>
1345 <object class="IBConnectionRecord">
1346 <object class="IBActionConnection" key="connection">
1347 <string key="label">copy:</string>
1348 <reference key="source" ref="1014"/>
1349 <reference key="destination" ref="860595796"/>
1350 </object>
1351 <int key="connectionID">224</int>
1352 </object>
1353 <object class="IBConnectionRecord">
1354 <object class="IBActionConnection" key="connection">
1355 <string key="label">checkSpelling:</string>
1356 <reference key="source" ref="1014"/>
1357 <reference key="destination" ref="96193923"/>
1358 </object>
1359 <int key="connectionID">225</int>
1360 </object>
1361 <object class="IBConnectionRecord">
1362 <object class="IBActionConnection" key="connection">
1363 <string key="label">paste:</string>
1364 <reference key="source" ref="1014"/>
1365 <reference key="destination" ref="29853731"/>
1366 </object>
1367 <int key="connectionID">226</int>
1368 </object>
1369 <object class="IBConnectionRecord">
1370 <object class="IBActionConnection" key="connection">
1371 <string key="label">stopSpeaking:</string>
1372 <reference key="source" ref="1014"/>
1373 <reference key="destination" ref="680220178"/>
1374 </object>
1375 <int key="connectionID">227</int>
1376 </object>
1377 <object class="IBConnectionRecord">
1378 <object class="IBActionConnection" key="connection">
1379 <string key="label">cut:</string>
1380 <reference key="source" ref="1014"/>
1381 <reference key="destination" ref="296257095"/>
1382 </object>
1383 <int key="connectionID">228</int>
1384 </object>
1385 <object class="IBConnectionRecord">
1386 <object class="IBActionConnection" key="connection">
1387 <string key="label">showGuessPanel:</string>
1388 <reference key="source" ref="1014"/>
1389 <reference key="destination" ref="679648819"/>
1390 </object>
1391 <int key="connectionID">230</int>
1392 </object>
1393 <object class="IBConnectionRecord">
1394 <object class="IBActionConnection" key="connection">
1395 <string key="label">redo:</string>
1396 <reference key="source" ref="1014"/>
1397 <reference key="destination" ref="790794224"/>
1398 </object>
1399 <int key="connectionID">231</int>
1400 </object>
1401 <object class="IBConnectionRecord">
1402 <object class="IBActionConnection" key="connection">
1403 <string key="label">selectAll:</string>
1404 <reference key="source" ref="1014"/>
1405 <reference key="destination" ref="583158037"/>
1406 </object>
1407 <int key="connectionID">232</int>
1408 </object>
1409 <object class="IBConnectionRecord">
1410 <object class="IBActionConnection" key="connection">
1411 <string key="label">startSpeaking:</string>
1412 <reference key="source" ref="1014"/>
1413 <reference key="destination" ref="731782645"/>
1414 </object>
1415 <int key="connectionID">233</int>
1416 </object>
1417 <object class="IBConnectionRecord">
1418 <object class="IBActionConnection" key="connection">
1419 <string key="label">delete:</string>
1420 <reference key="source" ref="1014"/>
1421 <reference key="destination" ref="437104165"/>
1422 </object>
1423 <int key="connectionID">235</int>
1424 </object>
1425 <object class="IBConnectionRecord">
1426 <object class="IBActionConnection" key="connection">
1427 <string key="label">performZoom:</string>
1428 <reference key="source" ref="1014"/>
1429 <reference key="destination" ref="575023229"/>
1430 </object>
1431 <int key="connectionID">240</int>
1432 </object>
1433 <object class="IBConnectionRecord">
1434 <object class="IBActionConnection" key="connection">
1435 <string key="label">performFindPanelAction:</string>
1436 <reference key="source" ref="1014"/>
1437 <reference key="destination" ref="447796847"/>
1438 </object>
1439 <int key="connectionID">241</int>
1440 </object>
1441 <object class="IBConnectionRecord">
1442 <object class="IBActionConnection" key="connection">
1443 <string key="label">centerSelectionInVisibleArea:</string>
1444 <reference key="source" ref="1014"/>
1445 <reference key="destination" ref="88285865"/>
1446 </object>
1447 <int key="connectionID">245</int>
1448 </object>
1449 <object class="IBConnectionRecord">
1450 <object class="IBActionConnection" key="connection">
1451 <string key="label">toggleGrammarChecking:</string>
1452 <reference key="source" ref="1014"/>
1453 <reference key="destination" ref="967646866"/>
1454 </object>
1455 <int key="connectionID">347</int>
1456 </object>
1457 <object class="IBConnectionRecord">
1458 <object class="IBActionConnection" key="connection">
1459 <string key="label">toggleSmartInsertDelete:</string>
1460 <reference key="source" ref="1014"/>
1461 <reference key="destination" ref="605118523"/>
1462 </object>
1463 <int key="connectionID">355</int>
1464 </object>
1465 <object class="IBConnectionRecord">
1466 <object class="IBActionConnection" key="connection">
1467 <string key="label">toggleAutomaticQuoteSubstitution:</string>
1468 <reference key="source" ref="1014"/>
1469 <reference key="destination" ref="197661976"/>
1470 </object>
1471 <int key="connectionID">356</int>
1472 </object>
1473 <object class="IBConnectionRecord">
1474 <object class="IBActionConnection" key="connection">
1475 <string key="label">toggleAutomaticLinkDetection:</string>
1476 <reference key="source" ref="1014"/>
1477 <reference key="destination" ref="708854459"/>
1478 </object>
1479 <int key="connectionID">357</int>
1480 </object>
1481 <object class="IBConnectionRecord">
1482 <object class="IBActionConnection" key="connection">
1483 <string key="label">showHelp:</string>
1484 <reference key="source" ref="1014"/>
1485 <reference key="destination" ref="238773614"/>
1486 </object>
1487 <int key="connectionID">360</int>
1488 </object>
1489 <object class="IBConnectionRecord">
1490 <object class="IBActionConnection" key="connection">
1491 <string key="label">orderFrontColorPanel:</string>
1492 <reference key="source" ref="1014"/>
1493 <reference key="destination" ref="1028416764"/>
1494 </object>
1495 <int key="connectionID">361</int>
1496 </object>
1497 <object class="IBConnectionRecord">
1498 <object class="IBActionConnection" key="connection">
1499 <string key="label">saveDocument:</string>
1500 <reference key="source" ref="1014"/>
1501 <reference key="destination" ref="1023925487"/>
1502 </object>
1503 <int key="connectionID">362</int>
1504 </object>
1505 <object class="IBConnectionRecord">
1506 <object class="IBActionConnection" key="connection">
1507 <string key="label">saveDocumentAs:</string>
1508 <reference key="source" ref="1014"/>
1509 <reference key="destination" ref="117038363"/>
1510 </object>
1511 <int key="connectionID">363</int>
1512 </object>
1513 <object class="IBConnectionRecord">
1514 <object class="IBActionConnection" key="connection">
1515 <string key="label">revertDocumentToSaved:</string>
1516 <reference key="source" ref="1014"/>
1517 <reference key="destination" ref="579971712"/>
1518 </object>
1519 <int key="connectionID">364</int>
1520 </object>
1521 <object class="IBConnectionRecord">
1522 <object class="IBActionConnection" key="connection">
1523 <string key="label">runToolbarCustomizationPalette:</string>
1524 <reference key="source" ref="1014"/>
1525 <reference key="destination" ref="237841660"/>
1526 </object>
1527 <int key="connectionID">365</int>
1528 </object>
1529 <object class="IBConnectionRecord">
1530 <object class="IBActionConnection" key="connection">
1531 <string key="label">toggleToolbarShown:</string>
1532 <reference key="source" ref="1014"/>
1533 <reference key="destination" ref="102151532"/>
1534 </object>
1535 <int key="connectionID">366</int>
1536 </object>
1537 <object class="IBConnectionRecord">
1538 <object class="IBActionConnection" key="connection">
1539 <string key="label">hide:</string>
1540 <reference key="source" ref="1014"/>
1541 <reference key="destination" ref="755159360"/>
1542 </object>
1543 <int key="connectionID">367</int>
1544 </object>
1545 <object class="IBConnectionRecord">
1546 <object class="IBActionConnection" key="connection">
1547 <string key="label">hideOtherApplications:</string>
1548 <reference key="source" ref="1014"/>
1549 <reference key="destination" ref="342932134"/>
1550 </object>
1551 <int key="connectionID">368</int>
1552 </object>
1553 <object class="IBConnectionRecord">
1554 <object class="IBActionConnection" key="connection">
1555 <string key="label">terminate:</string>
1556 <reference key="source" ref="1014"/>
1557 <reference key="destination" ref="632727374"/>
1558 </object>
1559 <int key="connectionID">369</int>
1560 </object>
1561 <object class="IBConnectionRecord">
1562 <object class="IBActionConnection" key="connection">
1563 <string key="label">unhideAllApplications:</string>
1564 <reference key="source" ref="1014"/>
1565 <reference key="destination" ref="908899353"/>
1566 </object>
1567 <int key="connectionID">370</int>
1568 </object>
1569 <object class="IBConnectionRecord">
1570 <object class="IBOutletConnection" key="connection">
1571 <string key="label" id="606168085">delegate</string>
1572 <reference key="source" ref="1050"/>
1573 <reference key="destination" ref="610635028"/>
1574 </object>
1575 <int key="connectionID">374</int>
1576 </object>
1577 <object class="IBConnectionRecord">
1578 <object class="IBBindingConnection" key="connection">
1579 <string key="label" id="187454546">contentDictionary: userNS</string>
1580 <reference key="source" ref="808393665"/>
1581 <reference key="destination" ref="631572152"/>
1582 <object class="NSNibBindingConnector" key="connector">
1583 <reference key="NSSource" ref="808393665"/>
1584 <reference key="NSDestination" ref="631572152"/>
1585 <reference key="NSLabel" ref="187454546"/>
1586 <string key="NSBinding">contentDictionary</string>
1587 <string key="NSKeyPath">userNS</string>
1588 <int key="NSNibBindingConnectorVersion">2</int>
1589 </object>
1590 </object>
1591 <int key="connectionID">424</int>
1592 </object>
1593 <object class="IBConnectionRecord">
1594 <object class="IBBindingConnection" key="connection">
1595 <string key="label" id="688370141">value: arrangedObjects.value</string>
1596 <reference key="source" ref="857054683"/>
1597 <reference key="destination" ref="808393665"/>
1598 <object class="NSNibBindingConnector" key="connector">
1599 <reference key="NSSource" ref="857054683"/>
1600 <reference key="NSDestination" ref="808393665"/>
1601 <reference key="NSLabel" ref="688370141"/>
1602 <reference key="NSBinding" ref="276523235"/>
1603 <string key="NSKeyPath">arrangedObjects.value</string>
1604 <int key="NSNibBindingConnectorVersion">2</int>
1605 </object>
1606 </object>
1607 <int key="connectionID">427</int>
1608 </object>
1609 <object class="IBConnectionRecord">
1610 <object class="IBBindingConnection" key="connection">
1611 <string key="label" id="764859820">value: arrangedObjects.key</string>
1612 <reference key="source" ref="920426212"/>
1613 <reference key="destination" ref="808393665"/>
1614 <object class="NSNibBindingConnector" key="connector">
1615 <reference key="NSSource" ref="920426212"/>
1616 <reference key="NSDestination" ref="808393665"/>
1617 <reference key="NSLabel" ref="764859820"/>
1618 <reference key="NSBinding" ref="276523235"/>
1619 <string key="NSKeyPath">arrangedObjects.key</string>
1620 <int key="NSNibBindingConnectorVersion">2</int>
1621 </object>
1622 </object>
1623 <int key="connectionID">428</int>
1624 </object>
1625 <object class="IBConnectionRecord">
1626 <object class="IBOutletConnection" key="connection">
1627 <reference key="label" ref="606168085"/>
1628 <reference key="source" ref="972006081"/>
1629 <reference key="destination" ref="631572152"/>
1630 </object>
1631 <int key="connectionID">429</int>
1632 </object>
1633 <object class="IBConnectionRecord">
1634 <object class="IBBindingConnection" key="connection">
1635 <string key="label" id="97087091">animate: waitingForEngine</string>
1636 <reference key="source" ref="74807016"/>
1637 <reference key="destination" ref="631572152"/>
1638 <object class="NSNibBindingConnector" key="connector">
1639 <reference key="NSSource" ref="74807016"/>
1640 <reference key="NSDestination" ref="631572152"/>
1641 <reference key="NSLabel" ref="97087091"/>
1642 <string key="NSBinding">animate</string>
1643 <string key="NSKeyPath">waitingForEngine</string>
1644 <int key="NSNibBindingConnectorVersion">2</int>
1645 </object>
1646 </object>
1647 <int key="connectionID">437</int>
1648 </object>
1649 <object class="IBConnectionRecord">
1650 <object class="IBBindingConnection" key="connection">
1651 <string key="label" id="289275654">filterPredicate: workspaceFilterPredicate</string>
1652 <reference key="source" ref="808393665"/>
1653 <reference key="destination" ref="610635028"/>
1654 <object class="NSNibBindingConnector" key="connector">
1655 <reference key="NSSource" ref="808393665"/>
1656 <reference key="NSDestination" ref="610635028"/>
1657 <reference key="NSLabel" ref="289275654"/>
1658 <string key="NSBinding">filterPredicate</string>
1659 <string key="NSKeyPath">workspaceFilterPredicate</string>
1660 <int key="NSNibBindingConnectorVersion">2</int>
1661 </object>
1662 </object>
1663 <int key="connectionID">440</int>
1664 </object>
1665 <object class="IBConnectionRecord">
1666 <object class="IBOutletConnection" key="connection">
1667 <string key="label">ipythonController</string>
1668 <reference key="source" ref="610635028"/>
1669 <reference key="destination" ref="631572152"/>
1670 </object>
1671 <int key="connectionID">441</int>
1672 </object>
1673 <object class="IBConnectionRecord">
1674 <object class="IBOutletConnection" key="connection">
1675 <string key="label" id="684042788">textView</string>
1676 <reference key="source" ref="631572152"/>
1677 <reference key="destination" ref="163417131"/>
1678 </object>
1679 <int key="connectionID">444</int>
1680 </object>
1681 <object class="IBConnectionRecord">
1682 <object class="IBOutletConnection" key="connection">
1683 <string key="label">initialFirstResponder</string>
1684 <reference key="source" ref="972006081"/>
1685 <reference key="destination" ref="163417131"/>
1686 </object>
1687 <int key="connectionID">445</int>
1688 </object>
1689 </object>
1690 <object class="IBMutableOrderedSet" key="objectRecords">
1691 <object class="NSArray" key="orderedObjects">
1692 <bool key="EncodedWithXMLCoder">YES</bool>
1693 <object class="IBObjectRecord">
1694 <int key="objectID">0</int>
1695 <object class="NSArray" key="object" id="1049">
1696 <bool key="EncodedWithXMLCoder">YES</bool>
1697 </object>
1698 <reference key="children" ref="1048"/>
1699 <nil key="parent"/>
1700 </object>
1701 <object class="IBObjectRecord">
1702 <int key="objectID">-2</int>
1703 <reference key="object" ref="1021"/>
1704 <reference key="parent" ref="1049"/>
1705 <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
1706 </object>
1707 <object class="IBObjectRecord">
1708 <int key="objectID">-1</int>
1709 <reference key="object" ref="1014"/>
1710 <reference key="parent" ref="1049"/>
1711 <string key="objectName">First Responder</string>
1712 </object>
1713 <object class="IBObjectRecord">
1714 <int key="objectID">-3</int>
1715 <reference key="object" ref="1050"/>
1716 <reference key="parent" ref="1049"/>
1717 <string key="objectName">Application</string>
1718 </object>
1719 <object class="IBObjectRecord">
1720 <int key="objectID">29</int>
1721 <reference key="object" ref="649796088"/>
1722 <object class="NSMutableArray" key="children">
1723 <bool key="EncodedWithXMLCoder">YES</bool>
1724 <reference ref="713487014"/>
1725 <reference ref="694149608"/>
1726 <reference ref="391199113"/>
1727 <reference ref="952259628"/>
1728 <reference ref="379814623"/>
1729 <reference ref="586577488"/>
1730 <reference ref="626404410"/>
1731 </object>
1732 <reference key="parent" ref="1049"/>
1733 <string key="objectName">MainMenu</string>
1734 </object>
1735 <object class="IBObjectRecord">
1736 <int key="objectID">19</int>
1737 <reference key="object" ref="713487014"/>
1738 <object class="NSMutableArray" key="children">
1739 <bool key="EncodedWithXMLCoder">YES</bool>
1740 <reference ref="835318025"/>
1741 </object>
1742 <reference key="parent" ref="649796088"/>
1743 </object>
1744 <object class="IBObjectRecord">
1745 <int key="objectID">56</int>
1746 <reference key="object" ref="694149608"/>
1747 <object class="NSMutableArray" key="children">
1748 <bool key="EncodedWithXMLCoder">YES</bool>
1749 <reference ref="110575045"/>
1750 </object>
1751 <reference key="parent" ref="649796088"/>
1752 </object>
1753 <object class="IBObjectRecord">
1754 <int key="objectID">103</int>
1755 <reference key="object" ref="391199113"/>
1756 <object class="NSMutableArray" key="children">
1757 <bool key="EncodedWithXMLCoder">YES</bool>
1758 <reference ref="374024848"/>
1759 </object>
1760 <reference key="parent" ref="649796088"/>
1761 <string key="objectName" id="508169456">1</string>
1762 </object>
1763 <object class="IBObjectRecord">
1764 <int key="objectID">217</int>
1765 <reference key="object" ref="952259628"/>
1766 <object class="NSMutableArray" key="children">
1767 <bool key="EncodedWithXMLCoder">YES</bool>
1768 <reference ref="789758025"/>
1769 </object>
1770 <reference key="parent" ref="649796088"/>
1771 </object>
1772 <object class="IBObjectRecord">
1773 <int key="objectID">83</int>
1774 <reference key="object" ref="379814623"/>
1775 <object class="NSMutableArray" key="children">
1776 <bool key="EncodedWithXMLCoder">YES</bool>
1777 <reference ref="720053764"/>
1778 </object>
1779 <reference key="parent" ref="649796088"/>
1780 </object>
1781 <object class="IBObjectRecord">
1782 <int key="objectID">81</int>
1783 <reference key="object" ref="720053764"/>
1784 <object class="NSMutableArray" key="children">
1785 <bool key="EncodedWithXMLCoder">YES</bool>
1786 <reference ref="1023925487"/>
1787 <reference ref="117038363"/>
1788 <reference ref="49223823"/>
1789 <reference ref="722745758"/>
1790 <reference ref="705341025"/>
1791 <reference ref="1025936716"/>
1792 <reference ref="294629803"/>
1793 <reference ref="776162233"/>
1794 <reference ref="425164168"/>
1795 <reference ref="579971712"/>
1796 <reference ref="1010469920"/>
1797 </object>
1798 <reference key="parent" ref="379814623"/>
1799 </object>
1800 <object class="IBObjectRecord">
1801 <int key="objectID">75</int>
1802 <reference key="object" ref="1023925487"/>
1803 <reference key="parent" ref="720053764"/>
1804 <string key="objectName">3</string>
1805 </object>
1806 <object class="IBObjectRecord">
1807 <int key="objectID">80</int>
1808 <reference key="object" ref="117038363"/>
1809 <reference key="parent" ref="720053764"/>
1810 <string key="objectName">8</string>
1811 </object>
1812 <object class="IBObjectRecord">
1813 <int key="objectID">78</int>
1814 <reference key="object" ref="49223823"/>
1815 <reference key="parent" ref="720053764"/>
1816 <string key="objectName">6</string>
1817 </object>
1818 <object class="IBObjectRecord">
1819 <int key="objectID">72</int>
1820 <reference key="object" ref="722745758"/>
1821 <reference key="parent" ref="720053764"/>
1822 </object>
1823 <object class="IBObjectRecord">
1824 <int key="objectID">82</int>
1825 <reference key="object" ref="705341025"/>
1826 <reference key="parent" ref="720053764"/>
1827 <string key="objectName">9</string>
1828 </object>
1829 <object class="IBObjectRecord">
1830 <int key="objectID">124</int>
1831 <reference key="object" ref="1025936716"/>
1832 <object class="NSMutableArray" key="children">
1833 <bool key="EncodedWithXMLCoder">YES</bool>
1834 <reference ref="1065607017"/>
1835 </object>
1836 <reference key="parent" ref="720053764"/>
1837 </object>
1838 <object class="IBObjectRecord">
1839 <int key="objectID">77</int>
1840 <reference key="object" ref="294629803"/>
1841 <reference key="parent" ref="720053764"/>
1842 <string key="objectName">5</string>
1843 </object>
1844 <object class="IBObjectRecord">
1845 <int key="objectID">73</int>
1846 <reference key="object" ref="776162233"/>
1847 <reference key="parent" ref="720053764"/>
1848 <reference key="objectName" ref="508169456"/>
1849 </object>
1850 <object class="IBObjectRecord">
1851 <int key="objectID">79</int>
1852 <reference key="object" ref="425164168"/>
1853 <reference key="parent" ref="720053764"/>
1854 <string key="objectName">7</string>
1855 </object>
1856 <object class="IBObjectRecord">
1857 <int key="objectID">112</int>
1858 <reference key="object" ref="579971712"/>
1859 <reference key="parent" ref="720053764"/>
1860 <string key="objectName">10</string>
1861 </object>
1862 <object class="IBObjectRecord">
1863 <int key="objectID">74</int>
1864 <reference key="object" ref="1010469920"/>
1865 <reference key="parent" ref="720053764"/>
1866 <string key="objectName" id="464456376">2</string>
1867 </object>
1868 <object class="IBObjectRecord">
1869 <int key="objectID">125</int>
1870 <reference key="object" ref="1065607017"/>
1871 <object class="NSMutableArray" key="children">
1872 <bool key="EncodedWithXMLCoder">YES</bool>
1873 <reference ref="759406840"/>
1874 </object>
1875 <reference key="parent" ref="1025936716"/>
1876 </object>
1877 <object class="IBObjectRecord">
1878 <int key="objectID">126</int>
1879 <reference key="object" ref="759406840"/>
1880 <reference key="parent" ref="1065607017"/>
1881 </object>
1882 <object class="IBObjectRecord">
1883 <int key="objectID">205</int>
1884 <reference key="object" ref="789758025"/>
1885 <object class="NSMutableArray" key="children">
1886 <bool key="EncodedWithXMLCoder">YES</bool>
1887 <reference ref="437104165"/>
1888 <reference ref="583158037"/>
1889 <reference ref="1058277027"/>
1890 <reference ref="212016141"/>
1891 <reference ref="296257095"/>
1892 <reference ref="29853731"/>
1893 <reference ref="860595796"/>
1894 <reference ref="1040322652"/>
1895 <reference ref="790794224"/>
1896 <reference ref="892235320"/>
1897 <reference ref="972420730"/>
1898 <reference ref="676164635"/>
1899 <reference ref="507821607"/>
1900 </object>
1901 <reference key="parent" ref="952259628"/>
1902 </object>
1903 <object class="IBObjectRecord">
1904 <int key="objectID">202</int>
1905 <reference key="object" ref="437104165"/>
1906 <reference key="parent" ref="789758025"/>
1907 </object>
1908 <object class="IBObjectRecord">
1909 <int key="objectID">198</int>
1910 <reference key="object" ref="583158037"/>
1911 <reference key="parent" ref="789758025"/>
1912 </object>
1913 <object class="IBObjectRecord">
1914 <int key="objectID">207</int>
1915 <reference key="object" ref="1058277027"/>
1916 <reference key="parent" ref="789758025"/>
1917 </object>
1918 <object class="IBObjectRecord">
1919 <int key="objectID">214</int>
1920 <reference key="object" ref="212016141"/>
1921 <reference key="parent" ref="789758025"/>
1922 </object>
1923 <object class="IBObjectRecord">
1924 <int key="objectID">199</int>
1925 <reference key="object" ref="296257095"/>
1926 <reference key="parent" ref="789758025"/>
1927 </object>
1928 <object class="IBObjectRecord">
1929 <int key="objectID">203</int>
1930 <reference key="object" ref="29853731"/>
1931 <reference key="parent" ref="789758025"/>
1932 </object>
1933 <object class="IBObjectRecord">
1934 <int key="objectID">197</int>
1935 <reference key="object" ref="860595796"/>
1936 <reference key="parent" ref="789758025"/>
1937 </object>
1938 <object class="IBObjectRecord">
1939 <int key="objectID">206</int>
1940 <reference key="object" ref="1040322652"/>
1941 <reference key="parent" ref="789758025"/>
1942 </object>
1943 <object class="IBObjectRecord">
1944 <int key="objectID">215</int>
1945 <reference key="object" ref="790794224"/>
1946 <reference key="parent" ref="789758025"/>
1947 </object>
1948 <object class="IBObjectRecord">
1949 <int key="objectID">218</int>
1950 <reference key="object" ref="892235320"/>
1951 <object class="NSMutableArray" key="children">
1952 <bool key="EncodedWithXMLCoder">YES</bool>
1953 <reference ref="963351320"/>
1954 </object>
1955 <reference key="parent" ref="789758025"/>
1956 </object>
1957 <object class="IBObjectRecord">
1958 <int key="objectID">216</int>
1959 <reference key="object" ref="972420730"/>
1960 <object class="NSMutableArray" key="children">
1961 <bool key="EncodedWithXMLCoder">YES</bool>
1962 <reference ref="769623530"/>
1963 </object>
1964 <reference key="parent" ref="789758025"/>
1965 </object>
1966 <object class="IBObjectRecord">
1967 <int key="objectID">200</int>
1968 <reference key="object" ref="769623530"/>
1969 <object class="NSMutableArray" key="children">
1970 <bool key="EncodedWithXMLCoder">YES</bool>
1971 <reference ref="948374510"/>
1972 <reference ref="96193923"/>
1973 <reference ref="679648819"/>
1974 <reference ref="967646866"/>
1975 </object>
1976 <reference key="parent" ref="972420730"/>
1977 </object>
1978 <object class="IBObjectRecord">
1979 <int key="objectID">219</int>
1980 <reference key="object" ref="948374510"/>
1981 <reference key="parent" ref="769623530"/>
1982 </object>
1983 <object class="IBObjectRecord">
1984 <int key="objectID">201</int>
1985 <reference key="object" ref="96193923"/>
1986 <reference key="parent" ref="769623530"/>
1987 </object>
1988 <object class="IBObjectRecord">
1989 <int key="objectID">204</int>
1990 <reference key="object" ref="679648819"/>
1991 <reference key="parent" ref="769623530"/>
1992 </object>
1993 <object class="IBObjectRecord">
1994 <int key="objectID">220</int>
1995 <reference key="object" ref="963351320"/>
1996 <object class="NSMutableArray" key="children">
1997 <bool key="EncodedWithXMLCoder">YES</bool>
1998 <reference ref="270902937"/>
1999 <reference ref="88285865"/>
2000 <reference ref="159080638"/>
2001 <reference ref="326711663"/>
2002 <reference ref="447796847"/>
2003 </object>
2004 <reference key="parent" ref="892235320"/>
2005 </object>
2006 <object class="IBObjectRecord">
2007 <int key="objectID">213</int>
2008 <reference key="object" ref="270902937"/>
2009 <reference key="parent" ref="963351320"/>
2010 </object>
2011 <object class="IBObjectRecord">
2012 <int key="objectID">210</int>
2013 <reference key="object" ref="88285865"/>
2014 <reference key="parent" ref="963351320"/>
2015 </object>
2016 <object class="IBObjectRecord">
2017 <int key="objectID">221</int>
2018 <reference key="object" ref="159080638"/>
2019 <reference key="parent" ref="963351320"/>
2020 </object>
2021 <object class="IBObjectRecord">
2022 <int key="objectID">208</int>
2023 <reference key="object" ref="326711663"/>
2024 <reference key="parent" ref="963351320"/>
2025 </object>
2026 <object class="IBObjectRecord">
2027 <int key="objectID">209</int>
2028 <reference key="object" ref="447796847"/>
2029 <reference key="parent" ref="963351320"/>
2030 </object>
2031 <object class="IBObjectRecord">
2032 <int key="objectID">106</int>
2033 <reference key="object" ref="374024848"/>
2034 <object class="NSMutableArray" key="children">
2035 <bool key="EncodedWithXMLCoder">YES</bool>
2036 <reference ref="238773614"/>
2037 </object>
2038 <reference key="parent" ref="391199113"/>
2039 <reference key="objectName" ref="464456376"/>
2040 </object>
2041 <object class="IBObjectRecord">
2042 <int key="objectID">111</int>
2043 <reference key="object" ref="238773614"/>
2044 <reference key="parent" ref="374024848"/>
2045 </object>
2046 <object class="IBObjectRecord">
2047 <int key="objectID">57</int>
2048 <reference key="object" ref="110575045"/>
2049 <object class="NSMutableArray" key="children">
2050 <bool key="EncodedWithXMLCoder">YES</bool>
2051 <reference ref="238522557"/>
2052 <reference ref="755159360"/>
2053 <reference ref="908899353"/>
2054 <reference ref="632727374"/>
2055 <reference ref="646227648"/>
2056 <reference ref="609285721"/>
2057 <reference ref="481834944"/>
2058 <reference ref="304266470"/>
2059 <reference ref="1046388886"/>
2060 <reference ref="1056857174"/>
2061 <reference ref="342932134"/>
2062 </object>
2063 <reference key="parent" ref="694149608"/>
2064 </object>
2065 <object class="IBObjectRecord">
2066 <int key="objectID">58</int>
2067 <reference key="object" ref="238522557"/>
2068 <reference key="parent" ref="110575045"/>
2069 </object>
2070 <object class="IBObjectRecord">
2071 <int key="objectID">134</int>
2072 <reference key="object" ref="755159360"/>
2073 <reference key="parent" ref="110575045"/>
2074 </object>
2075 <object class="IBObjectRecord">
2076 <int key="objectID">150</int>
2077 <reference key="object" ref="908899353"/>
2078 <reference key="parent" ref="110575045"/>
2079 </object>
2080 <object class="IBObjectRecord">
2081 <int key="objectID">136</int>
2082 <reference key="object" ref="632727374"/>
2083 <reference key="parent" ref="110575045"/>
2084 <string key="objectName">1111</string>
2085 </object>
2086 <object class="IBObjectRecord">
2087 <int key="objectID">144</int>
2088 <reference key="object" ref="646227648"/>
2089 <reference key="parent" ref="110575045"/>
2090 </object>
2091 <object class="IBObjectRecord">
2092 <int key="objectID">129</int>
2093 <reference key="object" ref="609285721"/>
2094 <reference key="parent" ref="110575045"/>
2095 <string key="objectName">121</string>
2096 </object>
2097 <object class="IBObjectRecord">
2098 <int key="objectID">143</int>
2099 <reference key="object" ref="481834944"/>
2100 <reference key="parent" ref="110575045"/>
2101 </object>
2102 <object class="IBObjectRecord">
2103 <int key="objectID">236</int>
2104 <reference key="object" ref="304266470"/>
2105 <reference key="parent" ref="110575045"/>
2106 </object>
2107 <object class="IBObjectRecord">
2108 <int key="objectID">131</int>
2109 <reference key="object" ref="1046388886"/>
2110 <object class="NSMutableArray" key="children">
2111 <bool key="EncodedWithXMLCoder">YES</bool>
2112 <reference ref="752062318"/>
2113 </object>
2114 <reference key="parent" ref="110575045"/>
2115 </object>
2116 <object class="IBObjectRecord">
2117 <int key="objectID">149</int>
2118 <reference key="object" ref="1056857174"/>
2119 <reference key="parent" ref="110575045"/>
2120 </object>
2121 <object class="IBObjectRecord">
2122 <int key="objectID">145</int>
2123 <reference key="object" ref="342932134"/>
2124 <reference key="parent" ref="110575045"/>
2125 </object>
2126 <object class="IBObjectRecord">
2127 <int key="objectID">130</int>
2128 <reference key="object" ref="752062318"/>
2129 <reference key="parent" ref="1046388886"/>
2130 </object>
2131 <object class="IBObjectRecord">
2132 <int key="objectID">24</int>
2133 <reference key="object" ref="835318025"/>
2134 <object class="NSMutableArray" key="children">
2135 <bool key="EncodedWithXMLCoder">YES</bool>
2136 <reference ref="299356726"/>
2137 <reference ref="625202149"/>
2138 <reference ref="575023229"/>
2139 <reference ref="1011231497"/>
2140 </object>
2141 <reference key="parent" ref="713487014"/>
2142 </object>
2143 <object class="IBObjectRecord">
2144 <int key="objectID">92</int>
2145 <reference key="object" ref="299356726"/>
2146 <reference key="parent" ref="835318025"/>
2147 </object>
2148 <object class="IBObjectRecord">
2149 <int key="objectID">5</int>
2150 <reference key="object" ref="625202149"/>
2151 <reference key="parent" ref="835318025"/>
2152 </object>
2153 <object class="IBObjectRecord">
2154 <int key="objectID">239</int>
2155 <reference key="object" ref="575023229"/>
2156 <reference key="parent" ref="835318025"/>
2157 </object>
2158 <object class="IBObjectRecord">
2159 <int key="objectID">23</int>
2160 <reference key="object" ref="1011231497"/>
2161 <reference key="parent" ref="835318025"/>
2162 </object>
2163 <object class="IBObjectRecord">
2164 <int key="objectID">295</int>
2165 <reference key="object" ref="586577488"/>
2166 <object class="NSMutableArray" key="children">
2167 <bool key="EncodedWithXMLCoder">YES</bool>
2168 <reference ref="466310130"/>
2169 </object>
2170 <reference key="parent" ref="649796088"/>
2171 </object>
2172 <object class="IBObjectRecord">
2173 <int key="objectID">296</int>
2174 <reference key="object" ref="466310130"/>
2175 <object class="NSMutableArray" key="children">
2176 <bool key="EncodedWithXMLCoder">YES</bool>
2177 <reference ref="102151532"/>
2178 <reference ref="237841660"/>
2179 </object>
2180 <reference key="parent" ref="586577488"/>
2181 </object>
2182 <object class="IBObjectRecord">
2183 <int key="objectID">297</int>
2184 <reference key="object" ref="102151532"/>
2185 <reference key="parent" ref="466310130"/>
2186 </object>
2187 <object class="IBObjectRecord">
2188 <int key="objectID">298</int>
2189 <reference key="object" ref="237841660"/>
2190 <reference key="parent" ref="466310130"/>
2191 </object>
2192 <object class="IBObjectRecord">
2193 <int key="objectID">299</int>
2194 <reference key="object" ref="626404410"/>
2195 <object class="NSMutableArray" key="children">
2196 <bool key="EncodedWithXMLCoder">YES</bool>
2197 <reference ref="502084290"/>
2198 </object>
2199 <reference key="parent" ref="649796088"/>
2200 </object>
2201 <object class="IBObjectRecord">
2202 <int key="objectID">300</int>
2203 <reference key="object" ref="502084290"/>
2204 <object class="NSMutableArray" key="children">
2205 <bool key="EncodedWithXMLCoder">YES</bool>
2206 <reference ref="519768076"/>
2207 <reference ref="1028416764"/>
2208 </object>
2209 <reference key="parent" ref="626404410"/>
2210 </object>
2211 <object class="IBObjectRecord">
2212 <int key="objectID">344</int>
2213 <reference key="object" ref="519768076"/>
2214 <reference key="parent" ref="502084290"/>
2215 </object>
2216 <object class="IBObjectRecord">
2217 <int key="objectID">345</int>
2218 <reference key="object" ref="1028416764"/>
2219 <reference key="parent" ref="502084290"/>
2220 </object>
2221 <object class="IBObjectRecord">
2222 <int key="objectID">211</int>
2223 <reference key="object" ref="676164635"/>
2224 <object class="NSMutableArray" key="children">
2225 <bool key="EncodedWithXMLCoder">YES</bool>
2226 <reference ref="785027613"/>
2227 </object>
2228 <reference key="parent" ref="789758025"/>
2229 </object>
2230 <object class="IBObjectRecord">
2231 <int key="objectID">212</int>
2232 <reference key="object" ref="785027613"/>
2233 <object class="NSMutableArray" key="children">
2234 <bool key="EncodedWithXMLCoder">YES</bool>
2235 <reference ref="680220178"/>
2236 <reference ref="731782645"/>
2237 </object>
2238 <reference key="parent" ref="676164635"/>
2239 </object>
2240 <object class="IBObjectRecord">
2241 <int key="objectID">195</int>
2242 <reference key="object" ref="680220178"/>
2243 <reference key="parent" ref="785027613"/>
2244 </object>
2245 <object class="IBObjectRecord">
2246 <int key="objectID">196</int>
2247 <reference key="object" ref="731782645"/>
2248 <reference key="parent" ref="785027613"/>
2249 </object>
2250 <object class="IBObjectRecord">
2251 <int key="objectID">346</int>
2252 <reference key="object" ref="967646866"/>
2253 <reference key="parent" ref="769623530"/>
2254 </object>
2255 <object class="IBObjectRecord">
2256 <int key="objectID">348</int>
2257 <reference key="object" ref="507821607"/>
2258 <object class="NSMutableArray" key="children">
2259 <bool key="EncodedWithXMLCoder">YES</bool>
2260 <reference ref="698887838"/>
2261 </object>
2262 <reference key="parent" ref="789758025"/>
2263 </object>
2264 <object class="IBObjectRecord">
2265 <int key="objectID">349</int>
2266 <reference key="object" ref="698887838"/>
2267 <object class="NSMutableArray" key="children">
2268 <bool key="EncodedWithXMLCoder">YES</bool>
2269 <reference ref="605118523"/>
2270 <reference ref="197661976"/>
2271 <reference ref="708854459"/>
2272 </object>
2273 <reference key="parent" ref="507821607"/>
2274 </object>
2275 <object class="IBObjectRecord">
2276 <int key="objectID">350</int>
2277 <reference key="object" ref="605118523"/>
2278 <reference key="parent" ref="698887838"/>
2279 </object>
2280 <object class="IBObjectRecord">
2281 <int key="objectID">351</int>
2282 <reference key="object" ref="197661976"/>
2283 <reference key="parent" ref="698887838"/>
2284 </object>
2285 <object class="IBObjectRecord">
2286 <int key="objectID">354</int>
2287 <reference key="object" ref="708854459"/>
2288 <reference key="parent" ref="698887838"/>
2289 </object>
2290 <object class="IBObjectRecord">
2291 <int key="objectID">371</int>
2292 <reference key="object" ref="972006081"/>
2293 <object class="NSMutableArray" key="children">
2294 <bool key="EncodedWithXMLCoder">YES</bool>
2295 <reference ref="439893737"/>
2296 </object>
2297 <reference key="parent" ref="1049"/>
2298 </object>
2299 <object class="IBObjectRecord">
2300 <int key="objectID">372</int>
2301 <reference key="object" ref="439893737"/>
2302 <object class="NSMutableArray" key="children">
2303 <bool key="EncodedWithXMLCoder">YES</bool>
2304 <reference ref="741760375"/>
2305 <reference ref="74807016"/>
2306 </object>
2307 <reference key="parent" ref="972006081"/>
2308 </object>
2309 <object class="IBObjectRecord">
2310 <int key="objectID">373</int>
2311 <reference key="object" ref="610635028"/>
2312 <reference key="parent" ref="1049"/>
2313 <reference key="objectName" ref="982950837"/>
2314 </object>
2315 <object class="IBObjectRecord">
2316 <int key="objectID">385</int>
2317 <reference key="object" ref="808393665"/>
2318 <reference key="parent" ref="1049"/>
2319 <string key="objectName">User Namespace Controller</string>
2320 </object>
2321 <object class="IBObjectRecord">
2322 <int key="objectID">421</int>
2323 <reference key="object" ref="741760375"/>
2324 <object class="NSMutableArray" key="children">
2325 <bool key="EncodedWithXMLCoder">YES</bool>
2326 <reference ref="554641139"/>
2327 <reference ref="764100755"/>
2328 </object>
2329 <reference key="parent" ref="439893737"/>
2330 </object>
2331 <object class="IBObjectRecord">
2332 <int key="objectID">420</int>
2333 <reference key="object" ref="554641139"/>
2334 <object class="NSMutableArray" key="children">
2335 <bool key="EncodedWithXMLCoder">YES</bool>
2336 <reference ref="188193463"/>
2337 </object>
2338 <reference key="parent" ref="741760375"/>
2339 </object>
2340 <object class="IBObjectRecord">
2341 <int key="objectID">416</int>
2342 <reference key="object" ref="188193463"/>
2343 <object class="NSMutableArray" key="children">
2344 <bool key="EncodedWithXMLCoder">YES</bool>
2345 <reference ref="418410897"/>
2346 <reference ref="936733673"/>
2347 <reference ref="163417131"/>
2348 </object>
2349 <reference key="parent" ref="554641139"/>
2350 </object>
2351 <object class="IBObjectRecord">
2352 <int key="objectID">417</int>
2353 <reference key="object" ref="418410897"/>
2354 <reference key="parent" ref="188193463"/>
2355 </object>
2356 <object class="IBObjectRecord">
2357 <int key="objectID">418</int>
2358 <reference key="object" ref="936733673"/>
2359 <reference key="parent" ref="188193463"/>
2360 </object>
2361 <object class="IBObjectRecord">
2362 <int key="objectID">419</int>
2363 <reference key="object" ref="163417131"/>
2364 <reference key="parent" ref="188193463"/>
2365 </object>
2366 <object class="IBObjectRecord">
2367 <int key="objectID">406</int>
2368 <reference key="object" ref="764100755"/>
2369 <object class="NSMutableArray" key="children">
2370 <bool key="EncodedWithXMLCoder">YES</bool>
2371 <reference ref="516244966"/>
2372 </object>
2373 <reference key="parent" ref="741760375"/>
2374 </object>
2375 <object class="IBObjectRecord">
2376 <int key="objectID">407</int>
2377 <reference key="object" ref="516244966"/>
2378 <object class="NSMutableArray" key="children">
2379 <bool key="EncodedWithXMLCoder">YES</bool>
2380 <reference ref="23853726"/>
2381 <reference ref="47103270"/>
2382 <reference ref="512953560"/>
2383 <reference ref="1048357090"/>
2384 </object>
2385 <reference key="parent" ref="764100755"/>
2386 </object>
2387 <object class="IBObjectRecord">
2388 <int key="objectID">411</int>
2389 <reference key="object" ref="23853726"/>
2390 <object class="NSMutableArray" key="children">
2391 <bool key="EncodedWithXMLCoder">YES</bool>
2392 <reference ref="857054683"/>
2393 <reference ref="920426212"/>
2394 </object>
2395 <reference key="parent" ref="516244966"/>
2396 </object>
2397 <object class="IBObjectRecord">
2398 <int key="objectID">410</int>
2399 <reference key="object" ref="47103270"/>
2400 <reference key="parent" ref="516244966"/>
2401 </object>
2402 <object class="IBObjectRecord">
2403 <int key="objectID">409</int>
2404 <reference key="object" ref="512953560"/>
2405 <reference key="parent" ref="516244966"/>
2406 </object>
2407 <object class="IBObjectRecord">
2408 <int key="objectID">408</int>
2409 <reference key="object" ref="1048357090"/>
2410 <reference key="parent" ref="516244966"/>
2411 </object>
2412 <object class="IBObjectRecord">
2413 <int key="objectID">413</int>
2414 <reference key="object" ref="857054683"/>
2415 <object class="NSMutableArray" key="children">
2416 <bool key="EncodedWithXMLCoder">YES</bool>
2417 <reference ref="377147224"/>
2418 </object>
2419 <reference key="parent" ref="23853726"/>
2420 </object>
2421 <object class="IBObjectRecord">
2422 <int key="objectID">412</int>
2423 <reference key="object" ref="920426212"/>
2424 <object class="NSMutableArray" key="children">
2425 <bool key="EncodedWithXMLCoder">YES</bool>
2426 <reference ref="525071236"/>
2427 </object>
2428 <reference key="parent" ref="23853726"/>
2429 </object>
2430 <object class="IBObjectRecord">
2431 <int key="objectID">415</int>
2432 <reference key="object" ref="525071236"/>
2433 <reference key="parent" ref="920426212"/>
2434 </object>
2435 <object class="IBObjectRecord">
2436 <int key="objectID">414</int>
2437 <reference key="object" ref="377147224"/>
2438 <reference key="parent" ref="857054683"/>
2439 </object>
2440 <object class="IBObjectRecord">
2441 <int key="objectID">422</int>
2442 <reference key="object" ref="631572152"/>
2443 <reference key="parent" ref="1049"/>
2444 </object>
2445 <object class="IBObjectRecord">
2446 <int key="objectID">436</int>
2447 <reference key="object" ref="74807016"/>
2448 <reference key="parent" ref="439893737"/>
2449 </object>
2450 </object>
2451 </object>
2452 <object class="NSMutableDictionary" key="flattenedProperties">
2453 <bool key="EncodedWithXMLCoder">YES</bool>
2454 <object class="NSMutableArray" key="dict.sortedKeys">
2455 <bool key="EncodedWithXMLCoder">YES</bool>
2456 <string>-1.IBPluginDependency</string>
2457 <string>-2.IBPluginDependency</string>
2458 <string>-3.IBPluginDependency</string>
2459 <string>103.IBPluginDependency</string>
2460 <string>103.ImportedFromIB2</string>
2461 <string>106.IBPluginDependency</string>
2462 <string>106.ImportedFromIB2</string>
2463 <string>106.editorWindowContentRectSynchronizationRect</string>
2464 <string>111.IBPluginDependency</string>
2465 <string>111.ImportedFromIB2</string>
2466 <string>112.IBPluginDependency</string>
2467 <string>112.ImportedFromIB2</string>
2468 <string>124.IBPluginDependency</string>
2469 <string>124.ImportedFromIB2</string>
2470 <string>125.IBPluginDependency</string>
2471 <string>125.ImportedFromIB2</string>
2472 <string>125.editorWindowContentRectSynchronizationRect</string>
2473 <string>126.IBPluginDependency</string>
2474 <string>126.ImportedFromIB2</string>
2475 <string>129.IBPluginDependency</string>
2476 <string>129.ImportedFromIB2</string>
2477 <string>130.IBPluginDependency</string>
2478 <string>130.ImportedFromIB2</string>
2479 <string>130.editorWindowContentRectSynchronizationRect</string>
2480 <string>131.IBPluginDependency</string>
2481 <string>131.ImportedFromIB2</string>
2482 <string>134.IBPluginDependency</string>
2483 <string>134.ImportedFromIB2</string>
2484 <string>136.IBPluginDependency</string>
2485 <string>136.ImportedFromIB2</string>
2486 <string>143.IBPluginDependency</string>
2487 <string>143.ImportedFromIB2</string>
2488 <string>144.IBPluginDependency</string>
2489 <string>144.ImportedFromIB2</string>
2490 <string>145.IBPluginDependency</string>
2491 <string>145.ImportedFromIB2</string>
2492 <string>149.IBPluginDependency</string>
2493 <string>149.ImportedFromIB2</string>
2494 <string>150.IBPluginDependency</string>
2495 <string>150.ImportedFromIB2</string>
2496 <string>19.IBPluginDependency</string>
2497 <string>19.ImportedFromIB2</string>
2498 <string>195.IBPluginDependency</string>
2499 <string>195.ImportedFromIB2</string>
2500 <string>196.IBPluginDependency</string>
2501 <string>196.ImportedFromIB2</string>
2502 <string>197.IBPluginDependency</string>
2503 <string>197.ImportedFromIB2</string>
2504 <string>198.IBPluginDependency</string>
2505 <string>198.ImportedFromIB2</string>
2506 <string>199.IBPluginDependency</string>
2507 <string>199.ImportedFromIB2</string>
2508 <string>200.IBPluginDependency</string>
2509 <string>200.ImportedFromIB2</string>
2510 <string>200.editorWindowContentRectSynchronizationRect</string>
2511 <string>201.IBPluginDependency</string>
2512 <string>201.ImportedFromIB2</string>
2513 <string>202.IBPluginDependency</string>
2514 <string>202.ImportedFromIB2</string>
2515 <string>203.IBPluginDependency</string>
2516 <string>203.ImportedFromIB2</string>
2517 <string>204.IBPluginDependency</string>
2518 <string>204.ImportedFromIB2</string>
2519 <string>205.IBPluginDependency</string>
2520 <string>205.ImportedFromIB2</string>
2521 <string>205.editorWindowContentRectSynchronizationRect</string>
2522 <string>206.IBPluginDependency</string>
2523 <string>206.ImportedFromIB2</string>
2524 <string>207.IBPluginDependency</string>
2525 <string>207.ImportedFromIB2</string>
2526 <string>208.IBPluginDependency</string>
2527 <string>208.ImportedFromIB2</string>
2528 <string>209.IBPluginDependency</string>
2529 <string>209.ImportedFromIB2</string>
2530 <string>210.IBPluginDependency</string>
2531 <string>210.ImportedFromIB2</string>
2532 <string>211.IBPluginDependency</string>
2533 <string>211.ImportedFromIB2</string>
2534 <string>212.IBPluginDependency</string>
2535 <string>212.ImportedFromIB2</string>
2536 <string>212.editorWindowContentRectSynchronizationRect</string>
2537 <string>213.IBPluginDependency</string>
2538 <string>213.ImportedFromIB2</string>
2539 <string>214.IBPluginDependency</string>
2540 <string>214.ImportedFromIB2</string>
2541 <string>215.IBPluginDependency</string>
2542 <string>215.ImportedFromIB2</string>
2543 <string>216.IBPluginDependency</string>
2544 <string>216.ImportedFromIB2</string>
2545 <string>217.IBPluginDependency</string>
2546 <string>217.ImportedFromIB2</string>
2547 <string>218.IBPluginDependency</string>
2548 <string>218.ImportedFromIB2</string>
2549 <string>219.IBPluginDependency</string>
2550 <string>219.ImportedFromIB2</string>
2551 <string>220.IBPluginDependency</string>
2552 <string>220.ImportedFromIB2</string>
2553 <string>220.editorWindowContentRectSynchronizationRect</string>
2554 <string>221.IBPluginDependency</string>
2555 <string>221.ImportedFromIB2</string>
2556 <string>23.IBPluginDependency</string>
2557 <string>23.ImportedFromIB2</string>
2558 <string>236.IBPluginDependency</string>
2559 <string>236.ImportedFromIB2</string>
2560 <string>239.IBPluginDependency</string>
2561 <string>239.ImportedFromIB2</string>
2562 <string>24.IBPluginDependency</string>
2563 <string>24.ImportedFromIB2</string>
2564 <string>24.editorWindowContentRectSynchronizationRect</string>
2565 <string>29.IBPluginDependency</string>
2566 <string>29.ImportedFromIB2</string>
2567 <string>29.WindowOrigin</string>
2568 <string>29.editorWindowContentRectSynchronizationRect</string>
2569 <string>295.IBPluginDependency</string>
2570 <string>296.IBPluginDependency</string>
2571 <string>296.editorWindowContentRectSynchronizationRect</string>
2572 <string>297.IBPluginDependency</string>
2573 <string>298.IBPluginDependency</string>
2574 <string>299.IBPluginDependency</string>
2575 <string>300.IBPluginDependency</string>
2576 <string>300.editorWindowContentRectSynchronizationRect</string>
2577 <string>344.IBPluginDependency</string>
2578 <string>345.IBPluginDependency</string>
2579 <string>346.IBPluginDependency</string>
2580 <string>346.ImportedFromIB2</string>
2581 <string>348.IBPluginDependency</string>
2582 <string>348.ImportedFromIB2</string>
2583 <string>349.IBPluginDependency</string>
2584 <string>349.ImportedFromIB2</string>
2585 <string>349.editorWindowContentRectSynchronizationRect</string>
2586 <string>350.IBPluginDependency</string>
2587 <string>350.ImportedFromIB2</string>
2588 <string>351.IBPluginDependency</string>
2589 <string>351.ImportedFromIB2</string>
2590 <string>354.IBPluginDependency</string>
2591 <string>354.ImportedFromIB2</string>
2592 <string>371.IBPluginDependency</string>
2593 <string>371.IBViewEditorWindowController.showingLayoutRectangles</string>
2594 <string>371.IBWindowTemplateEditedContentRect</string>
2595 <string>371.NSWindowTemplate.visibleAtLaunch</string>
2596 <string>371.editorWindowContentRectSynchronizationRect</string>
2597 <string>372.IBPluginDependency</string>
2598 <string>373.IBPluginDependency</string>
2599 <string>385.IBPluginDependency</string>
2600 <string>407.IBPluginDependency</string>
2601 <string>409.IBPluginDependency</string>
2602 <string>410.IBPluginDependency</string>
2603 <string>411.IBPluginDependency</string>
2604 <string>412.IBPluginDependency</string>
2605 <string>413.IBPluginDependency</string>
2606 <string>414.IBPluginDependency</string>
2607 <string>415.IBPluginDependency</string>
2608 <string>416.IBPluginDependency</string>
2609 <string>417.IBPluginDependency</string>
2610 <string>418.IBPluginDependency</string>
2611 <string>419.IBAttributePlaceholdersKey</string>
2612 <string>419.IBPluginDependency</string>
2613 <string>422.IBPluginDependency</string>
2614 <string>436.IBPluginDependency</string>
2615 <string>5.IBPluginDependency</string>
2616 <string>5.ImportedFromIB2</string>
2617 <string>56.IBPluginDependency</string>
2618 <string>56.ImportedFromIB2</string>
2619 <string>57.IBPluginDependency</string>
2620 <string>57.ImportedFromIB2</string>
2621 <string>57.editorWindowContentRectSynchronizationRect</string>
2622 <string>58.IBPluginDependency</string>
2623 <string>58.ImportedFromIB2</string>
2624 <string>72.IBPluginDependency</string>
2625 <string>72.ImportedFromIB2</string>
2626 <string>73.IBPluginDependency</string>
2627 <string>73.ImportedFromIB2</string>
2628 <string>74.IBPluginDependency</string>
2629 <string>74.ImportedFromIB2</string>
2630 <string>75.IBPluginDependency</string>
2631 <string>75.ImportedFromIB2</string>
2632 <string>77.IBPluginDependency</string>
2633 <string>77.ImportedFromIB2</string>
2634 <string>78.IBPluginDependency</string>
2635 <string>78.ImportedFromIB2</string>
2636 <string>79.IBPluginDependency</string>
2637 <string>79.ImportedFromIB2</string>
2638 <string>80.IBPluginDependency</string>
2639 <string>80.ImportedFromIB2</string>
2640 <string>81.IBPluginDependency</string>
2641 <string>81.ImportedFromIB2</string>
2642 <string>81.editorWindowContentRectSynchronizationRect</string>
2643 <string>82.IBPluginDependency</string>
2644 <string>82.ImportedFromIB2</string>
2645 <string>83.IBPluginDependency</string>
2646 <string>83.ImportedFromIB2</string>
2647 <string>92.IBPluginDependency</string>
2648 <string>92.ImportedFromIB2</string>
2649 </object>
2650 <object class="NSMutableArray" key="dict.values">
2651 <bool key="EncodedWithXMLCoder">YES</bool>
2652 <reference ref="113577022"/>
2653 <reference ref="885801228"/>
2654 <reference ref="885801228"/>
2655 <reference ref="113577022"/>
2656 <reference ref="9"/>
2657 <reference ref="113577022"/>
2658 <reference ref="9"/>
2659 <string>{{596, 852}, {216, 23}}</string>
2660 <reference ref="113577022"/>
2661 <reference ref="9"/>
2662 <reference ref="113577022"/>
2663 <reference ref="9"/>
2664 <reference ref="113577022"/>
2665 <reference ref="9"/>
2666 <reference ref="113577022"/>
2667 <reference ref="9"/>
2668 <string>{{522, 812}, {146, 23}}</string>
2669 <reference ref="113577022"/>
2670 <reference ref="9"/>
2671 <reference ref="113577022"/>
2672 <reference ref="9"/>
2673 <reference ref="113577022"/>
2674 <reference ref="9"/>
2675 <string>{{436, 809}, {64, 6}}</string>
2676 <reference ref="113577022"/>
2677 <reference ref="9"/>
2678 <reference ref="113577022"/>
2679 <reference ref="9"/>
2680 <reference ref="113577022"/>
2681 <reference ref="9"/>
2682 <reference ref="113577022"/>
2683 <reference ref="9"/>
2684 <reference ref="113577022"/>
2685 <reference ref="9"/>
2686 <reference ref="113577022"/>
2687 <reference ref="9"/>
2688 <reference ref="113577022"/>
2689 <reference ref="9"/>
2690 <reference ref="113577022"/>
2691 <reference ref="9"/>
2692 <reference ref="113577022"/>
2693 <reference ref="9"/>
2694 <reference ref="113577022"/>
2695 <reference ref="9"/>
2696 <reference ref="113577022"/>
2697 <reference ref="9"/>
2698 <reference ref="113577022"/>
2699 <reference ref="9"/>
2700 <reference ref="113577022"/>
2701 <reference ref="9"/>
2702 <reference ref="113577022"/>
2703 <reference ref="9"/>
2704 <reference ref="113577022"/>
2705 <reference ref="9"/>
2706 <string>{{608, 612}, {275, 83}}</string>
2707 <reference ref="113577022"/>
2708 <reference ref="9"/>
2709 <reference ref="113577022"/>
2710 <reference ref="9"/>
2711 <reference ref="113577022"/>
2712 <reference ref="9"/>
2713 <reference ref="113577022"/>
2714 <reference ref="9"/>
2715 <reference ref="113577022"/>
2716 <reference ref="9"/>
2717 <string>{{365, 632}, {243, 243}}</string>
2718 <reference ref="113577022"/>
2719 <reference ref="9"/>
2720 <reference ref="113577022"/>
2721 <reference ref="9"/>
2722 <reference ref="113577022"/>
2723 <reference ref="9"/>
2724 <reference ref="113577022"/>
2725 <reference ref="9"/>
2726 <reference ref="113577022"/>
2727 <reference ref="9"/>
2728 <reference ref="113577022"/>
2729 <reference ref="9"/>
2730 <reference ref="113577022"/>
2731 <reference ref="9"/>
2732 <string>{{608, 612}, {167, 43}}</string>
2733 <reference ref="113577022"/>
2734 <reference ref="9"/>
2735 <reference ref="113577022"/>
2736 <reference ref="9"/>
2737 <reference ref="113577022"/>
2738 <reference ref="9"/>
2739 <reference ref="113577022"/>
2740 <reference ref="9"/>
2741 <reference ref="113577022"/>
2742 <reference ref="9"/>
2743 <reference ref="113577022"/>
2744 <reference ref="9"/>
2745 <reference ref="113577022"/>
2746 <reference ref="9"/>
2747 <reference ref="113577022"/>
2748 <reference ref="9"/>
2749 <string>{{608, 612}, {241, 103}}</string>
2750 <reference ref="113577022"/>
2751 <reference ref="9"/>
2752 <reference ref="113577022"/>
2753 <reference ref="9"/>
2754 <reference ref="113577022"/>
2755 <reference ref="9"/>
2756 <reference ref="113577022"/>
2757 <reference ref="9"/>
2758 <reference ref="113577022"/>
2759 <reference ref="9"/>
2760 <string>{{525, 802}, {197, 73}}</string>
2761 <reference ref="113577022"/>
2762 <reference ref="9"/>
2763 <string>{74, 862}</string>
2764 <string>{{11, 736}, {489, 20}}</string>
2765 <reference ref="113577022"/>
2766 <reference ref="113577022"/>
2767 <string>{{475, 832}, {234, 43}}</string>
2768 <reference ref="113577022"/>
2769 <reference ref="113577022"/>
2770 <reference ref="113577022"/>
2771 <reference ref="113577022"/>
2772 <string>{{409, 832}, {176, 43}}</string>
2773 <reference ref="113577022"/>
2774 <reference ref="113577022"/>
2775 <reference ref="113577022"/>
2776 <reference ref="9"/>
2777 <reference ref="113577022"/>
2778 <reference ref="9"/>
2779 <reference ref="113577022"/>
2780 <reference ref="9"/>
2781 <string>{{608, 612}, {215, 63}}</string>
2782 <reference ref="113577022"/>
2783 <reference ref="9"/>
2784 <reference ref="113577022"/>
2785 <reference ref="9"/>
2786 <reference ref="113577022"/>
2787 <reference ref="9"/>
2788 <reference ref="113577022"/>
2789 <integer value="0"/>
2790 <string>{{108, 368}, {725, 337}}</string>
2791 <reference ref="9"/>
2792 <string>{{108, 368}, {725, 337}}</string>
2793 <reference ref="113577022"/>
2794 <reference ref="113577022"/>
2795 <reference ref="113577022"/>
2796 <reference ref="113577022"/>
2797 <reference ref="113577022"/>
2798 <reference ref="113577022"/>
2799 <reference ref="113577022"/>
2800 <reference ref="113577022"/>
2801 <reference ref="113577022"/>
2802 <reference ref="113577022"/>
2803 <reference ref="113577022"/>
2804 <reference ref="113577022"/>
2805 <reference ref="113577022"/>
2806 <reference ref="113577022"/>
2807 <object class="NSMutableDictionary">
2808 <bool key="EncodedWithXMLCoder">YES</bool>
2809 <object class="NSArray" key="dict.sortedKeys">
2810 <bool key="EncodedWithXMLCoder">YES</bool>
2811 </object>
2812 <object class="NSMutableArray" key="dict.values">
2813 <bool key="EncodedWithXMLCoder">YES</bool>
2814 </object>
2815 </object>
2816 <reference ref="113577022"/>
2817 <reference ref="113577022"/>
2818 <reference ref="113577022"/>
2819 <reference ref="113577022"/>
2820 <reference ref="9"/>
2821 <reference ref="113577022"/>
2822 <reference ref="9"/>
2823 <reference ref="113577022"/>
2824 <reference ref="9"/>
2825 <string>{{23, 794}, {245, 183}}</string>
2826 <reference ref="113577022"/>
2827 <reference ref="9"/>
2828 <reference ref="113577022"/>
2829 <reference ref="9"/>
2830 <reference ref="113577022"/>
2831 <reference ref="9"/>
2832 <reference ref="113577022"/>
2833 <reference ref="9"/>
2834 <reference ref="113577022"/>
2835 <reference ref="9"/>
2836 <reference ref="113577022"/>
2837 <reference ref="9"/>
2838 <reference ref="113577022"/>
2839 <reference ref="9"/>
2840 <reference ref="113577022"/>
2841 <reference ref="9"/>
2842 <reference ref="113577022"/>
2843 <reference ref="9"/>
2844 <reference ref="113577022"/>
2845 <reference ref="9"/>
2846 <string>{{323, 672}, {199, 203}}</string>
2847 <reference ref="113577022"/>
2848 <reference ref="9"/>
2849 <reference ref="113577022"/>
2850 <reference ref="9"/>
2851 <reference ref="113577022"/>
2852 <reference ref="9"/>
2853 </object>
2854 </object>
2855 <object class="NSMutableDictionary" key="unlocalizedProperties">
2856 <bool key="EncodedWithXMLCoder">YES</bool>
2857 <object class="NSArray" key="dict.sortedKeys">
2858 <bool key="EncodedWithXMLCoder">YES</bool>
2859 </object>
2860 <object class="NSMutableArray" key="dict.values">
2861 <bool key="EncodedWithXMLCoder">YES</bool>
2862 </object>
2863 </object>
2864 <nil key="activeLocalization"/>
2865 <object class="NSMutableDictionary" key="localizations">
2866 <bool key="EncodedWithXMLCoder">YES</bool>
2867 <object class="NSArray" key="dict.sortedKeys">
2868 <bool key="EncodedWithXMLCoder">YES</bool>
2869 </object>
2870 <object class="NSMutableArray" key="dict.values">
2871 <bool key="EncodedWithXMLCoder">YES</bool>
2872 </object>
2873 </object>
2874 <nil key="sourceID"/>
2875 <int key="maxID">445</int>
2876 </object>
2877 <object class="IBClassDescriber" key="IBDocument.Classes">
2878 <object class="NSMutableArray" key="referencedPartialClassDescriptions">
2879 <bool key="EncodedWithXMLCoder">YES</bool>
2880 <object class="IBPartialClassDescription">
2881 <string key="className">IPython1SandboxAppDelegate</string>
2882 <string key="superclassName">NSObject</string>
2883 <object class="NSMutableDictionary" key="actions">
2884 <bool key="EncodedWithXMLCoder">YES</bool>
2885 <object class="NSArray" key="dict.sortedKeys">
2886 <bool key="EncodedWithXMLCoder">YES</bool>
2887 </object>
2888 <object class="NSMutableArray" key="dict.values">
2889 <bool key="EncodedWithXMLCoder">YES</bool>
2890 </object>
2891 </object>
2892 <object class="NSMutableDictionary" key="outlets">
2893 <string key="NS.key.0">ipythonController</string>
2894 <string key="NS.object.0">id</string>
2895 </object>
2896 <object class="IBClassDescriptionSource" key="sourceIdentifier">
2897 <string key="majorKey">IBProjectSource</string>
2898 <string key="minorKey">IPython1SandboxAppDelegate.py</string>
2899 </object>
2900 </object>
2901 <object class="IBPartialClassDescription">
2902 <reference key="className" ref="695797635"/>
2903 <nil key="superclassName"/>
2904 <object class="NSMutableDictionary" key="actions">
2905 <bool key="EncodedWithXMLCoder">YES</bool>
2906 <object class="NSArray" key="dict.sortedKeys">
2907 <bool key="EncodedWithXMLCoder">YES</bool>
2908 </object>
2909 <object class="NSMutableArray" key="dict.values">
2910 <bool key="EncodedWithXMLCoder">YES</bool>
2911 </object>
2912 </object>
2913 <object class="NSMutableDictionary" key="outlets">
2914 <reference key="NS.key.0" ref="684042788"/>
2915 <string key="NS.object.0">NSTextView</string>
2916 </object>
2917 <object class="IBClassDescriptionSource" key="sourceIdentifier">
2918 <string key="majorKey">IBUserSource</string>
2919 <reference key="minorKey" ref="255189770"/>
2920 </object>
2921 </object>
2922 </object>
2923 </object>
2924 <int key="IBDocument.localizationMode">0</int>
2925 <string key="IBDocument.LastKnownRelativeProjectPath">../../IPython1Sandbox.xcodeproj</string>
2926 <int key="IBDocument.defaultPropertyAccessControl">3</int>
2927 <object class="NSMutableData" key="IBDocument.RunnableNib">
2928 <bytes key="NS.bytes">YnBsaXN0MDDUAAEAAgADAAQABQAGAAkAClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIA
2929 AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxEC/gALAAwAMQA1ADYAPAA9
2930 AEIAWABZAFoAWwALAGgAbQB7AIAAlQCZAKAApAC0ALoAzQDRAOYA+gD7APwA/QD+AP8BAAEBAQIBAwEE
2931 AQUBBgEHAQgBCQEKAQsBDwEQARkBIQEmASoBLQExATUBOQE7AT0BTQFSAVUBWgFBAVQBYwFqAWsBbAFv
2932 AXQBdQF4AYAAkAGBAYQBhwGIAYkBjgGPAZABkwGYAZkBmwGeAasBrAGtAbEBvAG9Ab4BwQHCAcQBxQHG
2933 AdIB0wHbAdwB3wHkAeUB6AHtAfAB/AIAAgcCCwIdAiUCLwIzAlECUgJaAmQCZQJoAm4CbwJyAncCiAKP
2934 ApACkwKYApkCnAKmAqcCrAKxArICtwK4ArsCwwLJAsoC0QLWAtcC2gLcAt0C5gLnAvAC8QL1AvYC9wL4
2935 AvkC/wMAAwIDAwMEAwcDFgMYAxsDHAMfAAsDIAMhAyIDJQNXA10DbgNzA3QDdQN6A3sDfAN/A4MDhAOH
2936 A4gDjAOQA5cDmwOcA50DngOiA6kDqgOrA6wDsAO3A7sDvAO9A74DwgPJA80DzgPPA9AD1APcA90D3gPf
2937 A+MD6wPwA/ED8gPzA/cD/gQCBAMEBAQFBAkEEAQRBBIEEwQXBB4EHwQgBCQEKwQvASkEMAQxBDcEOgQ7
2938 BDwEPwRDBEoESwRMBFAEVwRcBF0EXgRfBGMEagRrBGwEcAR3BHgEeQR9BIQEhQSGBIcEjASTBJQElQSZ
2939 BKAEpASlBKYEpwSrBLIEswS0BLUEuQTABMEEwgTGBM0EzgTPBNME2gTbBNwE3QThBOgE6QTqBOsE7wT2
2940 BPcE+AT5BP0FBAUFBQYFBwUMBQ8FEAURBRUFHAUdBR4FIgUpBSoFKwUsBTAFNwU7BTwFPQU+BUMFRgVK
2941 BVEFUgVTBVcFXgViBWMFZAVlBWkFcAV1BXYFdwV7BYIFgwWEBYgFjwWQBZEFkgWXBZgFnQWeBaIFqwWs
2942 Ba0FrgWyBbkFugW7BbwFwAXHBcgFyQXNBdQF1QXWBeAF9gX8Bf0F/gX/BgMGCwYMBg8GEQYXBhgGGQYc
2943 BiMGJAYlBiYGLQYuBi8GNgY3BjgGOQZABkEGQgZDBq0Gtwa4BrkGvgbABskGuAbKBs4GzwbYBrgG2Qbf
2944 BuQG5QbvBvgGuAb5BwcHEgcZBxoHGwckBy0GuAcuBzMHNgc3B0AHSQdKB1MGuAdUB2IHaQdqB2sHcgdz
2945 B3QHfQeGB48GuAeQB6AHqQeyB7sGuAe8B8QHywfMB9MH1AfcB90H3gfnBrgH6AfvB/gGuAf5B/4IBQgG
2946 CA8GuAgQCBUIHga4CB8IJggvCDAIOQa4CDoIPgg/CKkJFAl/CYAJgQmCCYMJhAmFCYYJhwmICYkJigmL
2947 CYwJjQmOCY8JkAmRCZIJkwmUCZUJlgmXCZgJmQmaCZsJnAmdCZ4JnwmgCaEJogmjCaQJpQmmCacJqAmp
2948 CaoJqwmsCa0JrgmvCbAJsQmyCbMJtAm1CbYJtwm4CbkJugm7CbwJvQm+Cb8JwAnBCcIJwwnECcUJxgnH
2949 CcgJyQnKCcsJzAnNCc4JzwnQCdEJ0gnTCdQJ1QnWCdcJ2AnZCdoJ2wncCd0J3gnfCeAJ4QniCeMJ5Anl
2950 CeYJ6QnsCoYLIAshCyILIwskCyULJgsnCygLKQsqCysLLAstCy4LLwswCzELMgszCzQLNQs2CzcLOAs5
2951 CzoLOws8Cz0LPgs/C0ALQQtCC0MLRAtFC0YLRwtIC0kLSgtLC0wLTQtOC08LUAtRC1ILUwtUC1ULVgtX
2952 C1gLWQtaC1sLXAtdC14LXwtgC2ELYgtjC2QLZQtmC2cLaAtpC2oLawtsC20LbgtvC3ALcQtyC3MLdAt1
2953 C3YLdwt4C3kLegt7C3wLfQt+C38LgAuBC4ILgwuEC4ULhguHC4gLiQuKC4sLjAuNC44LjwuQC5ELkguT
2954 C5QLlQuWC5cLmAuZC5oLmwucC50LngufC6ALoQuiC6MLpAulC6YLpwuoC6kLqgurC6wLrQuuC68LsAux
2955 C7ILswu0C7ULtgu3C7oLvQvAVSRudWxs3xASAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwA
2956 HQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwVk5TUm9vdFYkY2xhc3NdTlNPYmpl
2957 Y3RzS2V5c18QD05TQ2xhc3Nlc1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0eU9pZHNWYWx1ZXNdTlNDb25u
2958 ZWN0aW9uc1tOU05hbWVzS2V5c1tOU0ZyYW1ld29ya11OU0NsYXNzZXNLZXlzWk5TT2lkc0tleXNdTlNO
2959 YW1lc1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0eUNvbm5lY3RvcnNdTlNGb250TWFuYWdlcl8QEE5TVmlz
2960 aWJsZVdpbmRvd3NfEA9OU09iamVjdHNWYWx1ZXNfEBdOU0FjY2Vzc2liaWxpdHlPaWRzS2V5c1lOU05l
2961 eHRPaWRcTlNPaWRzVmFsdWVzgAKBAv2BAZuBAmCBAvyArYEB9oAFgQJfgQJhgQH3gQL6gACABoEB9YEC
2962 +xEBv4ECYtIADgAyADMANFtOU0NsYXNzTmFtZYAEgANdTlNBcHBsaWNhdGlvbtIANwA4ADkAOlgkY2xh
2963 c3Nlc1okY2xhc3NuYW1logA6ADteTlNDdXN0b21PYmplY3RYTlNPYmplY3RfEBBJQkNvY29hRnJhbWV3
2964 b3Jr0gAOAD4APwBAWk5TLm9iamVjdHOAK6EAQYAH2wBDAA4ARABFAEYARwBIAEkASgBLAEwATQBOAE8A
2965 UABRAFIAUwBUAFUAVgArXE5TV2luZG93Vmlld1xOU1NjcmVlblJlY3RfEBNOU0ZyYW1lQXV0b3NhdmVO
2966 YW1lXU5TV2luZG93VGl0bGVZTlNXVEZsYWdzXU5TV2luZG93Q2xhc3NcTlNXaW5kb3dSZWN0XxAPTlNX
2967 aW5kb3dCYWNraW5nXxARTlNXaW5kb3dTdHlsZU1hc2tbTlNWaWV3Q2xhc3OAC4CsgKqAq4AJEnQAAACA
2968 CoAIEAIQD4AAXxAYe3szMzUsIDQxM30sIHs3MjUsIDMzN319XxAQSVB5dGhvbjEgKENvY29hKVhOU1dp
2969 bmRvd9cAXAAOAF0AXgBfAFoAYABhAGIAYwBkAGUAYQBnXxAPTlNOZXh0UmVzcG9uZGVyWk5TU3Vidmll
2970 d3NYTlN2RmxhZ3NbTlNGcmFtZVNpemVbTlNTdXBlcnZpZXeADIBdgA0RAQCAqIAMgKnSAA4APgBpAGqA
2971 NKIAawBsgA6Ao9oAXAAOAG4AXQBeAG8AcABaAGAAcQBNAHMAdAB1AHYAdwBVAGEATQB6V05TRnJhbWVe
2972 TlNBdXRvc2F2ZU5hbWVeTlNEaXZpZGVyU3R5bGVcTlNJc1ZlcnRpY2FsgAuAooCggA8RARKAoYAMgAsJ
2973 0gAOAD4AaQB9gDSiAH4Af4AQgGreAFwAgQAOAIIAgwBdAF4AXwCEAFoAhQCGAGAAhwBrAIkAigCLAIwA
2974 jQCOAI8AkABhAJIAVQBrAJRZTlNCb3hUeXBlW05TVGl0bGVDZWxsXU5TVHJhbnNwYXJlbnRcTlNCb3Jk
2975 ZXJUeXBlWU5TT2Zmc2V0c18QD05TVGl0bGVQb3NpdGlvbl1OU0NvbnRlbnRWaWV3gA4QAIBpgGAIgBEQ
2976 FoBeEAGADIBfgA6AEtIADgA+AGkAl4A0oQCUgBLXAFwADgBuAF0AXgBaAGAAfgBiAJwAnQBkAGEAfoAQ
2977 gF2AXIATgAyAENIADgA+AGkAooA0oQCjgBTcAFwApQAOAG4ApgBdAF4AWgBgAKcAqACHAJQAqgCrAKwA
2978 rQCuAHYAYQCUALEAsgCyW05TSFNjcm9sbGVyWE5Tc0ZsYWdzW05TVlNjcm9sbGVyXU5TTmV4dEtleVZp
2979 ZXeAEoBYgFuAWhECEoAVgAyAEoBUgBaAFtIADgA+AGkAtoA0owCyALEAqoAWgFSAWN0AXAAOAG4AuwC8
2980 AL0AXQBeAL4AWgC/AGAAqACjAMEAwgDDAMQAxQDGAMcAyABhAMoAowDIWE5TQm91bmRzWE5TQ3Vyc29y
2981 WU5TY3ZGbGFnc1lOU0RvY1ZpZXdZTlNCR0NvbG9ygBSAU4BNgE6AUBAEgBcRCQCAGIAMgE+AFIAY0gAO
2982 AD4AaQDPgDShAMiAGN0AXAAOAG4A0gDTANQA1QBeANYAWgDXAGAA2ACyANoA2wDcAN0A3gDfAOAA4QBh
2983 AOMAsgArXxAPTlNUZXh0Q29udGFpbmVyWU5TVFZGbGFnc1xOU1NoYXJlZERhdGFbTlNEcmFnVHlwZXNZ
2984 TlNNYXhTaXplWE5TTWluaXplWk5TRGVsZWdhdGWAFoBMgCyALRAGgDeAGREJEoBKgAyAS4AWgADSAA4A
2985 PgA/AOiAK68QEQDpAOoA6wDsAO0A7gDvAPAA8QDyAPMA9AD1APYA9wD4APmAGoAbgByAHYAegB+AIIAh
2986 gCKAI4AkgCWAJoAngCiAKYAqXxAZTmVYVCBSVEZEIHBhc3RlYm9hcmQgdHlwZV8QEk5TU3RyaW5nUGJv
2987 YXJkVHlwZV8QGk5lWFQgcnVsZXIgcGFzdGVib2FyZCB0eXBlXxAeTmVYVCBUSUZGIHY0LjAgcGFzdGVi
2988 b2FyZCB0eXBlXxAZQXBwbGUgVVJMIHBhc3RlYm9hcmQgdHlwZV8QI0NvcmVQYXN0ZWJvYXJkRmxhdm9y
2989 VHlwZSAweDZENkY2Rjc2XxAjQ29yZVBhc3RlYm9hcmRGbGF2b3JUeXBlIDB4NzU3MjZDMjBfEBtXZWJV
2990 UkxzV2l0aFRpdGxlc1Bib2FyZFR5cGVfEBlBcHBsZSBQREYgcGFzdGVib2FyZCB0eXBlXxAZQXBwbGUg
2991 UE5HIHBhc3RlYm9hcmQgdHlwZV8QGkFwcGxlIEhUTUwgcGFzdGVib2FyZCB0eXBlXxAVTlNGaWxlbmFt
2992 ZXNQYm9hcmRUeXBlXxAXTlNDb2xvciBwYXN0ZWJvYXJkIHR5cGVfEDFOZVhUIEVuY2Fwc3VsYXRlZCBQ
2993 b3N0U2NyaXB0IHYxLjIgcGFzdGVib2FyZCB0eXBlXxAaQXBwbGUgUElDVCBwYXN0ZWJvYXJkIHR5cGVf
2994 EBlOZVhUIGZvbnQgcGFzdGVib2FyZCB0eXBlXxAqTmVYVCBSaWNoIFRleHQgRm9ybWF0IHYxLjAgcGFz
2995 dGVib2FyZCB0eXBl0gA3ADgBDAENowENAQ4AO1xOU011dGFibGVTZXRVTlNTZXRfEBR7ezAsIDM4fSwg
2996 ezQzMywgMTR9fdUBEQAOARIBEwEUAJABFQDIARcBGFlOU1RDRmxhZ3NaTlNUZXh0Vmlld1dOU1dpZHRo
2997 XxAPTlNMYXlvdXRNYW5hZ2VygDaAGCNAexAAAAAAAIAu1QAOARoBGwEcANgBHQEeAR8A3QArXxAQTlNU
2998 ZXh0Q29udGFpbmVyc11OU1RleHRTdG9yYWdlWU5TTE1GbGFnc4A1gDOAL4AA0wAOASIA2AEjASQAK1hO
2999 U1N0cmluZ4AygDCAANIADgEnASgBKVlOUy5zdHJpbmeAMVDSADcAOAErASyjASwBIgA7XxAPTlNNdXRh
3000 YmxlU3RyaW5n0gA3ADgBLgEbpAEbAS8BMAA7XxAZTlNNdXRhYmxlQXR0cmlidXRlZFN0cmluZ18QEk5T
3001 QXR0cmlidXRlZFN0cmluZ9IADgA+AGkBM4A0oQDcgC3SADcAOAE2ATejATcBOAA7Xk5TTXV0YWJsZUFy
3002 cmF5V05TQXJyYXnSADcAOAE6ARSiARQAO9IANwA4ATwA0qIA0gA72AAOAT4BPwFAAUEBQgFDAUQBRQFG
3003 ACsBSAFJAUoAKwFMV05TRmxhZ3NfEBdOU0RlZmF1bHRQYXJhZ3JhcGhTdHlsZV8QEE5TSW5zZXJ0aW9u
3004 Q29sb3JfEBFOU0JhY2tncm91bmRDb2xvcl8QFE5TU2VsZWN0ZWRBdHRyaWJ1dGVzXxASTlNNYXJrZWRB
3005 dHRyaWJ1dGVzXxAQTlNMaW5rQXR0cmlidXRlc4BJEgAFS2+AAIA6gDiAO4AAgEXTAA4BTgFPAVAAVQFR
3006 XE5TQ29sb3JTcGFjZVVOU1JHQoA5TxAYMSAwLjk1Mjk0MTI0IDAuODUwOTgwNDYA0gA3ADgBUwFUogFU
3007 ADtXTlNDb2xvctMADgFOAVYBUAFYAVlXTlNXaGl0ZYA5EANCMADTAA4BWwA+AVwBXQFgV05TLmtleXOA
3008 RKIBXgFfgDyAPaIBYQFigD6AQtUADgFUAU4BZAFlAVABZwDdAWgBaVtOU0NvbG9yTmFtZV1OU0NhdGFs
3009 b2dOYW1lgDmAQYBAgD9WU3lzdGVtXxAbc2VsZWN0ZWRUZXh0QmFja2dyb3VuZENvbG9y0wAOAU4BVgFQ
3010 AVgBboA5SzAuNjY2NjY2NjkA1QAOAVQBTgFkAWUBUAFIAN0BcgFpgDmAOoBDgD9fEBFzZWxlY3RlZFRl
3011 eHRDb2xvctIANwA4AXYBd6IBdwA7XE5TRGljdGlvbmFyedMADgFbAD4BXAF6AX2ARKIBewFfgEaAPaIB
3012 fgF/gEeASFtOU1VuZGVybGluZdMADgFOAU8BUACQAYOAOUYwIDAgMQDSADcAOAGFAYaiAYYAO18QFE5T
3013 VGV4dFZpZXdTaGFyZWREYXRhXHs0ODAsIDFlKzA3fVd7ODQsIDB90gA3ADgBigESpQESAYsBjAGNADtW
3014 TlNUZXh0Vk5TVmlld1tOU1Jlc3BvbmRlcl8QFHt7MSwgMX0sIHs0MzMsIDIzMX19XxAVe3swLCAzOH0s
3015 IHs0MzMsIDIzMX190wAOAU4BVgFQAVgBkoA5QjEA0wAOAZQBlQGWAZcAkFlOU0hvdFNwb3RcTlNDdXJz
3016 b3JUeXBlgFKAUVd7NCwgLTV90gA3ADgBmgC8ogC8ADvSADcAOAGcAZ2kAZ0BjAGNADtaTlNDbGlwVmll
3017 d9kAXAGfAA4AbgBeAFoBoABgAaEAowCjAaQBpQGmAGEBqACjAapYTlNUYXJnZXRYTlNBY3Rpb25ZTlNQ
3018 ZXJjZW50gBSAFIBXgFUT/////4AAAQCADIBWgBQjP9Ww0wAAAABfEBV7ezQyNywgMX0sIHsxNSwgMjYz
3019 fX1cX2RvU2Nyb2xsZXI60gA3ADgBrgGvpQGvAbABjAGNADtaTlNTY3JvbGxlcllOU0NvbnRyb2zbAFwB
3020 nwAOAG4ApgBeAFoBoABgAbIBoQCjAKMBpAG2AJAAZABhAagAowG6AbtaTlNDdXJWYWx1ZYAUgBSAV4BZ
3021 gAyAVoAUIz/wAAAAAAAAIz/uQshgAAAAXxAYe3stMTAwLCAtMTAwfSwgezg3LCAxOH19XxAWe3sxOCwg
3022 MTR9LCB7NDM1LCAyMzN9fdIANwA4Ab8BwKQBwAGMAY0AO1xOU1Njcm9sbFZpZXdfEBR7ezEsIDF9LCB7
3023 NDcxLCAyNTd9fdIANwA4AcMBjKMBjAGNADtaezQ3MywgMjczfVZ7MCwgMH3XAccADgFBAcgByQHKAcsB
3024 zAHNAc4BzwHQAIkB0VtOU0NlbGxGbGFnc1pOU0NvbnRlbnRzWU5TU3VwcG9ydFxOU0NlbGxGbGFnczJb
3025 TlNUZXh0Q29sb3ISBAH+AIBogGWAYYBigGdXQ29uc29sZdQADgHUAdUB1gHXAdgB2QHaVk5TU2l6ZVZO
3026 U05hbWVYTlNmRmxhZ3OAZCNAJgAAAAAAAIBjEQwcXEx1Y2lkYUdyYW5kZdIANwA4Ad0B3qIB3gA7Vk5T
3027 Rm9udNUADgFUAU4BZAFlAVAAygDdAeIBaYA5gE+AZoA/XxATdGV4dEJhY2tncm91bmRDb2xvctMADgFO
3028 AVYBUAFYAeeAOU0wIDAuODAwMDAwMDEA0gA3ADgB6QHqpAHqAesB7AA7XxAPTlNUZXh0RmllbGRDZWxs
3029 XE5TQWN0aW9uQ2VsbFZOU0NlbGzSADcAOAHuAe+kAe8BjAGNADtVTlNCb3jeAFwAgQAOAIIAbgCDAF0A
3030 XgCEAFoAhQCGAGAAhwBrAIkAigHzAfQAjAH2AfcAkABhAJIAVQBrAfuADoBpgJ2AnAiAaxAzgAyAX4AO
3031 gGzSAA4APgBpAf6ANKEB+4Bs1wBcAA4AbgBdAF4AWgBgAH8AYgIDAgQAZABhAH+AaoBdgJuAbYAMgGrS
3032 AA4APgBpAgmANKECCoBu3xAPAFwApQAOAG4ApgIMAg0AXQIOAF4AWgBgAKcAqACHAfsCEACrAhICEwIU
3033 AhUCFgIXAHYAYQH7AhoCGwIbXE5TQ29ybmVyVmlld18QEE5TSGVhZGVyQ2xpcFZpZXdcTlNTY3JvbGxB
3034 bXRzgGyAloBbgJoQMoB4gHWAb08QEEEgAABBIAAAQZgAAEGYAACADIBsgJSAcIBw0gAOAD4AaQIfgDSl
3035 AhsCGgIQAhUCFIBwgJSAloB1gHjbAFwADgBuAL0AXQBeAL4AWgC/AGAAqAIKAMECKADFAikAxwIqAGEC
3036 LAIKAiqAboBTgJOAcYBygAyAhoBugHLSAA4APgBpAjGANKECKoBy3xAVAFwCNAAOAjUCNgFBAjcCDAI4
3037 AjkCOgBeAF8COwBaAjwCPQBgAj4CPwJAAhsAiQJCAkMCRADKAHoCFAJIAMUCSQBkAkoAegBhAk0AkAIb
3038 Ak8AVgJQXxAfTlNEcmFnZ2luZ1NvdXJjZU1hc2tGb3JOb25Mb2NhbFlOU1R2RmxhZ3NcTlNIZWFkZXJW
3039 aWV3XxASTlNBbGxvd3NUeXBlU2VsZWN0XxAXTlNJbnRlcmNlbGxTcGFjaW5nV2lkdGhfEBlOU0NvbHVt
3040 bkF1dG9yZXNpemluZ1N0eWxlXxAYTlNJbnRlcmNlbGxTcGFjaW5nSGVpZ2h0WU5TRW5hYmxlZFtOU0dy
3041 aWRDb2xvcl8QD05TR3JpZFN0eWxlTWFza15OU1RhYmxlQ29sdW1uc18QHE5TRHJhZ2dpbmdTb3VyY2VN
3042 YXNrRm9yTG9jYWxbTlNSb3dIZWlnaHSAcICSE//////WwAAAgHSATwmAeCNACAAAAAAAACNAAAAAAAAA
3043 AIBzCYAMgI+AcIB7I0AxAAAAAAAAWnsxNTYsIDIwMH3XAFwADgBeAF8AWgBgAlMCFQJVAGQCVgBhAhUC
3044 KltOU1RhYmxlVmlld4B1gHeAdoAMgHWActsAXAAOAG4AvQBdAF4AvgBaAL8AYACoAgoAwQJdAMUCXgDH
3045 AkQAYQIsAgoCRIBugFOAmYCYgHSADICGgG6AdFl7MTU2LCAxN33SADcAOAJmAmekAmcBjAGNADtfEBFO
3046 U1RhYmxlSGVhZGVyVmlld9YAXAAOAG4AXgBaAGACCgJqAmsAZABhAgqAboB6gHmADIBuXxAUe3sxNTcs
3047 IDB9LCB7MTYsIDE3fX3SADcAOAJwAnGkAnEBjAGNADtdX05TQ29ybmVyVmlld9IADgA+AGkCdIA0ogJ1
3048 AnaAfICL2gJ4AA4CeQETAnoCewJ8An0CfgJTAHoCgAKBAoICgwFYAoQChQB6AipeTlNJc1Jlc2l6ZWFi
3049 bGVcTlNIZWFkZXJDZWxsWk5TRGF0YUNlbGxeTlNSZXNpemluZ01hc2taTlNNaW5XaWR0aFpOU01heFdp
3050 ZHRoXE5TSXNFZGl0YWJsZQmAioB9I0BRwAAAAAAAgIMjQEQAAAAAAAAjQI9AAAAAAAAJgHLXAccADgFB
3051 AcgByQHKAcsCiQKKAosCjAHQAIkCjhIEgf4AgIKAf4B+gGKAgFhWYXJpYWJsZdMADgFOAVYBUAFYApKA
3052 OUswLjMzMzMzMjk5ANUADgFUAU4BZAFlAVABSADdApYBaYA5gDqAgYA/XxAPaGVhZGVyVGV4dENvbG9y
3053 0gA3ADgCmgKbpQKbAeoB6wHsADtfEBFOU1RhYmxlSGVhZGVyQ2VsbNgBxwAOAUEByAHJAp0BygHLAp4B
3054 zQIsAqECogIqAqQCpV1OU0NvbnRyb2xWaWV3EhQh/kCAaICGgISAhYByEQgAgIhZVGV4dCBDZWxs1AAO
3055 AdQB1QHWAdcCqQHZAquAZCNAKgAAAAAAAIBjEQQU1QAOAVQBTgFkAWUBUAFnAN0CrwFpgDmAQYCHgD9f
3056 EBZjb250cm9sQmFja2dyb3VuZENvbG9y1QAOAVQBTgFkAWUBUAFIAN0CtQFpgDmAOoCJgD9fEBBjb250
3057 cm9sVGV4dENvbG9y0gA3ADgCuQK6ogK6ADtdTlNUYWJsZUNvbHVtbtoCeAAOAnkBEwJ6AnsCfAJ9An4C
3058 UwB6AoACvgK/AsABWAKEAoUAegIqCYCKgIwjQFPAAAAAAACAjgmActcBxwAOAUEByAHJAcoBywKJAooC
3059 iwLGAdAAiQKOgIKAf4CNgGKAgFVWYWx1ZdgBxwAOAUEByAHJAp0BygHLAp4BzQIsAqECogIqAqQCpYBo
3060 gIaAhICFgHKAiNUADgFUAU4BZAFlAVAC0wDdAtQBaYA5gJGAkIA/WWdyaWRDb2xvctMADgFOAVYBUAFY
3061 AtmAOUQwLjUA0gA3ADgC2wJTpQJTAbABjAGNADtfEBV7ezEsIDE3fSwgezE1NiwgMjAwfX3ZAFwBnwAO
3062 AG4AXgBaAaAAYAGhAgoCCgGkAuEAZABhAagCCgLlgG6AboBXgJWADIBWgG4jP+/gP4AAAABfEBZ7ezE1
3063 NywgMTd9LCB7MTUsIDIwMH192gBcAZ8ADgBuAKYAXgBaAaAAYAGhAgoCCgGkAusAkABkAGEBqAIKAu+A
3064 boBugFeAl4AMgFaAbiM/5vlvoAAAAF8QFXt7MSwgMjE3fSwgezE1NiwgMTV9fdIADgA+AGkC84A0oQJE
3065 gHRfEBN7ezEsIDB9LCB7MTU2LCAxN319XxAWe3sxOCwgMTR9LCB7MTczLCAyMzN9fV8QFHt7MSwgMX0s
3066 IHsyMDksIDI1N319XxAWe3s0NzQsIDB9LCB7MjExLCAyNzN9fdcBxwAOAUEByAHJAcoBywHMAc0BzgL8
3067 AdAAiQL+gGiAZYCegGKAn1lXb3Jrc3BhY2XTAA4BTgFWAVABWAHngDlfEBZ7ezIwLCA0NH0sIHs2ODUs
3068 IDI3M319XxAgaXB5dGhvbjFfY29uc29sZV93b3Jrc3BhY2Vfc3BsaXTSADcAOAMFAwakAwYBjAGNADtb
3069 TlNTcGxpdFZpZXfaAFwADgBuAwgDCQBeAFoDCgBgAwsATQMNAw4DDwMQAxEAYQMTAE0DFVpOU01heFZh
3070 bHVlWk5TTWluVmFsdWVZTlNwaUZsYWdzXE5TRHJhd01hdHJpeIALgKeApiNAWQAAAAAAACNAMAAAAAAA
3071 ABEFIYAMEXEKgAuApNEADgMXgKXSADcAOAMZAxqiAxoAO1pOU1BTTWF0cml4XxAVe3s2ODksIDIwfSwg
3072 ezE2LCAxNn190gA3ADgDHQMepAMeAYwBjQA7XxATTlNQcm9ncmVzc0luZGljYXRvclp7NzI1LCAzMzd9
3073 XxAVe3swLCAwfSwgezEyODAsIDc3OH19XxAQaXB5dGhvbjFfc2FuZGJveNIANwA4AyMDJKIDJAA7XxAQ
3074 TlNXaW5kb3dUZW1wbGF0ZdIADgA+AGkDJ4A0rxAvAygDKQMqAysDLAMtAy4DLwMwAzEDMgMzAzQDNQM2
3075 AzcDOAM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRANFA0YDRwNIA0kDSgNLA0wDTQNOA08DUANRA1IDUwNU
3076 A1UDVoCugLyAwoDHgM2A04DYgN6A5IDpgO2A84D4gPyBAQKBAQaBAQqBAQ+BAROBARmBAR6BASKBASaB
3077 ASuBATCBATWBATqBAT6BAUKBAUeBAU2BAU+BAVOBAVmBAV6BAWKBAWeBAWmBAWuBAXCBAXWBAXmBAX2B
3078 AYyBAZCBAZOBAZfTAA4DWANZA1oDWwNcWE5TU291cmNlV05TTGFiZWyAu4CvgLrZAA4DXgNfA2ADYQNi
3079 A2MDZANlA2YDZwNoA2kDagNrA2wDbQBVV05TVGl0bGVfEBFOU0tleUVxdWl2TW9kTWFza1pOU0tleUVx
3080 dWl2XU5TTW5lbW9uaWNMb2NZTlNPbkltYWdlXE5TTWl4ZWRJbWFnZVZOU01lbnVVTlNUYWeAuYCxEgAQ
3081 AACAshJ/////gLOAt4Cw0wAOA14DbwNwA3EDcltOU01lbnVJdGVtc4EBoIEBp4EBqVxTbWFydCBRdW90
3082 ZXNRZ9MADgAyA3YDdwN4A3leTlNSZXNvdXJjZU5hbWWAtoC0gLVXTlNJbWFnZV8QD05TTWVudUNoZWNr
3083 bWFya9IANwA4A30DfqIDfgA7XxAQTlNDdXN0b21SZXNvdXJjZdMADgAyA3YDdwN4A4KAtoC0gLhfEBBO
3084 U01lbnVNaXhlZFN0YXRl0gA3ADgDhQOGogOGADtaTlNNZW51SXRlbV8QIXRvZ2dsZUF1dG9tYXRpY1F1
3085 b3RlU3Vic3RpdHV0aW9uOtIANwA4A4kDiqMDigOLADtfEBVOU05pYkNvbnRyb2xDb25uZWN0b3JeTlNO
3086 aWJDb25uZWN0b3LTAA4DWANZA1oDjgOPgLuAvYDB2AAOA14DXwNgA2EDYgNjA2QDZgOSA2gDkwNqA2sD
3087 bAOWgLmAv4DAgLOAt4C+0wAOA14DbwNwA5kDmoEBoIEB0oEB1F8QEUp1bXAgdG8gU2VsZWN0aW9uUWpf
3088 EB1jZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhOtMADgNYA1kDWgOgA6GAu4DDgMbZAA4DXgNfA2AD
3089 YQNiA2MDZANlA2YDpANoA6UDagNrA2wDbQCQgLmAxIDFgLOAt4CwXxAQU21hcnQgQ29weS9QYXN0ZVFm
3090 XxAYdG9nZ2xlU21hcnRJbnNlcnREZWxldGU60wAOA1gDWQNaA64Dr4C7gMiAzNgADgNeA18DYANhA2ID
3091 YwNkA2YDsgNoA7MDagNrA2wDtoC5gMqAy4CzgLeAydMADgNeA28DcAO5A7qBAaCBAcCBAcJUU2F2ZVFz
3092 XXNhdmVEb2N1bWVudDrTAA4DWANZA1oDwAPBgLuAzoDS2AAOA14DXwNgA2EDYgNjA2QDZgPEA2gDxQNq
3093 A2sDbAPIgLmA0IDRgLOAt4DP0wAOA14DbwNwA8sDzIEBoIEBzIEBzlRVbmRvUXpVdW5kbzrTAA4DWANZ
3094 A1oD0gPTgLuA1IDX2AAOA14DXwNgA2EDYgNjA2QDZgPWA9cD2ANqA2sDbAPIgLmA1RIAEgAAgNaAs4C3
3095 gM9UUmVkb1FaVXJlZG860wAOA1gDWQNaA+ED4oC7gNmA3dgADgNeA18DYANhA2IDYwNkA2YD5QPmA+cD
3096 agNrA2wD6oC5gNsSABgAAIDcgLOAt4Da1AAOA14B1QNvA3AD7QPuA++BAaCBAa6BAb6BAbBbSGlkZSBP
3097 dGhlcnNRaF8QFmhpZGVPdGhlckFwcGxpY2F0aW9uczrTAA4DWANZA1oD9QP2gLuA34Dj2AAOA14DXwNg
3098 A2EDYgNjA2QDZgP5A9cD+gNqA2sDbAP9gLmA4YDigLOAt4Dg0wAOA14DbwNwBAAEAYEBoIEB4YEB41tT
3099 aG93IENvbG9yc1FDXxAVb3JkZXJGcm9udENvbG9yUGFuZWw60wAOA1gDWQNaBAcECIC7gOWA6NgADgNe
3100 A18DYANhA2IDYwNkA2YECwNoBAwDagNrA2wDyIC5gOaA54CzgLeAz1VQYXN0ZVF2VnBhc3RlOtMADgNY
3101 A1kDWgQVBBaAu4DqgOzZAA4DXgNfA2ADYQNiA2MDZANlA2YEGQNoA6UDagNrA2wDlgCQgLmA64DFgLOA
3102 t4C+ZQBGAGkAbgBkICZfEBdwZXJmb3JtRmluZFBhbmVsQWN0aW9uOtMADgNYA1kDWgQiBCOAu4DugPLY
3103 AA4DXgNfA2ADYQNiA2MDZANmBCYDaAQnA2oDawNsBCqAuYDwgPGAs4C3gO/TAA4DXgNvA3AELQQugQGg
3104 gQGdgQGfXVN0b3AgU3BlYWtpbmddc3RvcFNwZWFraW5nOtQADgQyA1gDWQQzBDQAQQQ2XU5TRGVzdGlu
3105 YXRpb26A94D0gAeA9tIADgAyADMEOYAEgPVfEBZJUHl0aG9uQ29jb2FDb250cm9sbGVyWGRlbGVnYXRl
3106 0gA3ADgEPQQ+owQ+A4sAO18QFE5TTmliT3V0bGV0Q29ubmVjdG9y0wAOA1gDWQNaBEEEQoC7gPmA+9gA
3107 DgNeA18DYANhA2IDYwNkA2YERQNoBCcDagNrA2wDyIC5gPqA8YCzgLeAz1ZEZWxldGVXZGVsZXRlOtMA
3108 DgNYA1kDWgROBE+Au4D9gQEB2AAOA14DXwNgA2EDYgNjA2QDZgRSA2gEUwNqA2sDbARWgLmA/4EBAICz
3109 gLeA/tQADgNeAdUDbwNwBFkEWgRbgQGggQHrgQHvgQHtWE1pbmltaXplUW1fEBNwZXJmb3JtTWluaWF0
3110 dXJpemU60wAOA1gDWQNaBGEEYoC7gQEDgQEF2AAOA14DXwNgA2EDYgNjA2QDZgRlA2gEJwNqA2sDbARW
3111 gLmBAQSA8YCzgLeA/l8QEkJyaW5nIEFsbCB0byBGcm9udF8QD2FycmFuZ2VJbkZyb250OtMADgNYA1kD
3112 WgRuBG+Au4EBB4EBCdgADgNeA18DYANhA2IDYwNkA2YEcgNoBCcDagNrA2wD6oC5gQEIgPGAs4C3gNpY
3113 U2hvdyBBbGxfEBZ1bmhpZGVBbGxBcHBsaWNhdGlvbnM60wAOA1gDWQNaBHsEfIC7gQELgQEO2AAOA14D
3114 XwNgA2EDYgNjA2QDZgR/A2gEgANqA2sDbAO2gLmBAQyBAQ2As4C3gMlVQ2xvc2VRd11wZXJmb3JtQ2xv
3115 c2U61AAOBDIDWANZA1oAHwSKBIuAu4ACgQEQgQES1wAOA14DYANhA2IDYwNkA2YEjgQnA2oDawNsA+qA
3116 uYEBEYDxgLOAt4DaXxAVQWJvdXQgSVB5dGhvbjFTYW5kYm94XxAdb3JkZXJGcm9udFN0YW5kYXJkQWJv
3117 dXRQYW5lbDrTAA4DWANZA1oElwSYgLuBARSBARjYAA4DXgNfA2ADYQNiA2MDZANmBJsDaAScA2oDawNs
3118 BJ+AuYEBFoEBF4CzgLeBARXTAA4DXgNvA3AEogSjgQGggQHdgQHfXkNoZWNrIFNwZWxsaW5nUTteY2hl
3119 Y2tTcGVsbGluZzrTAA4DWANZA1oEqQSqgLuBARqBAR3YAA4DXgNfA2ADYQNiA2MDZANmBK0DaASuA2oD
3120 awNsA8iAuYEBG4EBHICzgLeAz1pTZWxlY3QgQWxsUWFac2VsZWN0QWxsOtMADgNYA1kDWgS3BLiAu4EB
3121 H4EBIdgADgNeA18DYANhA2IDYwNkA2YEuwNoA+cDagNrA2wD6oC5gQEggNyAs4C3gNpfEBRIaWRlIElQ
3122 eXRob24xU2FuZGJveFVoaWRlOtMADgNYA1kDWgTEBMWAu4EBI4EBJdgADgNeA18DYANhA2IDYwNkA2YE
3123 yANoBCcDagNrA2wEn4C5gQEkgPGAs4C3gQEVXxAbQ2hlY2sgU3BlbGxpbmcgV2hpbGUgVHlwaW5nXxAe
3124 dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmc60wAOA1gDWQNaBNEE0oC7gQEngQEq2AAOA14DXwNg
3125 A2EDYgNjA2QDZgTVA2gE1gNqA2sDbAO2gLmBASiBASmAs4C3gMlmAFAAcgBpAG4AdCAmUXBWcHJpbnQ6
3126 0wAOA1gDWQNaBN8E4IC7gQEsgQEv2AAOA14DXwNgA2EDYgNjA2QDZgTjA9cE5ANqA2sDbAO2gLmBAS2B
3127 AS6As4C3gMloAFMAYQB2AGUAIABBAHMgJlFTXxAPc2F2ZURvY3VtZW50QXM60wAOA1gDWQNaBO0E7oC7
3128 gQExgQE02AAOA14DXwNgA2EDYgNjA2QDZgTxA2gE8gNqA2sDbAPqgLmBATKBATOAs4C3gNpfEBRRdWl0
3129 IElQeXRob24xU2FuZGJveFFxWnRlcm1pbmF0ZTrTAA4DWANZA1oE+wT8gLuBATaBATnZAA4DXgNfA2AD
3130 YQNiA2MDZANlA2YE/wPXBQADagNrA2wDbQFYgLmBATeBATiAs4C3gLBbU21hcnQgTGlua3NRR18QHXRv
3131 Z2dsZUF1dG9tYXRpY0xpbmtEZXRlY3Rpb2461AAOBDIDWANZBDMENAUKBQuA94D0gQE7gQE90gAOADIA
3132 MwUOgASBATxfEBpJUHl0aG9uMVNhbmRib3hBcHBEZWxlZ2F0ZV8QEWlweXRob25Db250cm9sbGVy0wAO
3133 A1gDWQNaBRMFFIC7gQE/gQFB2AAOA14DXwNgA2EDYgNjA2QDZgUXA2gEJwNqA2sDbARWgLmBAUCA8YCz
3134 gLeA/lRab29tXHBlcmZvcm1ab29tOtMADgNYA1kDWgUgBSGAu4EBQ4EBRtgADgNeA18DYANhA2IDYwNk
3135 A2YFJANoBSUDagNrA2wDyIC5gQFEgQFFgLOAt4DPVENvcHlRY1Vjb3B5OtMADgNYA1kDWgUuBS+Au4EB
3136 SIEBTNgADgNeA18DYANhA2IDYwNkA2YFMgPmBTMDagNrA2wFNoC5gQFKgQFLgLOAt4EBSdMADgNeA28D
3137 cAU5BTqBAaCBAeeBAelcU2hvdyBUb29sYmFyUXRfEBN0b2dnbGVUb29sYmFyU2hvd2461AAOBDIDWANZ
3138 BDMFCgVBBDaA94EBO4EBToD20gAOADIAMwA0gASAA9MADgNYA1kDWgVIBUmAu4EBUIEBUtgADgNeA18D
3139 YANhA2IDYwNkA2YFTANoBCcDagNrA2wEKoC5gQFRgPGAs4C3gO9eU3RhcnQgU3BlYWtpbmdec3RhcnRT
3140 cGVha2luZzrTAA4DWANZA1oFVQVWgLuBAVSBAVjYAA4DXgNfA2ADYQNiA2MDZANmBVkDaAVaA2oDawNs
3141 BV2AuYEBVoEBV4CzgLeBAVXTAA4DXgNvA3AFYAVhgQGggQHxgQHzXxAUSVB5dGhvbjFTYW5kYm94IEhl
3142 bHBRP1lzaG93SGVscDrTAA4DWANZA1oFZwVogLuBAVqBAV3YAA4DXgNfA2ADYQNiA2MDZANmBWsDaAQn
3143 A2oDawNsBW+AuYEBXIDxgLOAt4EBW9QADgNeAdUDbwNwBXIFcwV0gQGggQGigQGlgQGkWkNsZWFyIE1l
3144 bnVfEBVjbGVhclJlY2VudERvY3VtZW50czrTAA4DWANZA1oFeQV6gLuBAV+BAWHYAA4DXgNfA2ADYQNi
3145 A2MDZANmBX0DaAQnA2oDawNsBTaAuYEBYIDxgLOAt4EBSW8QEgBDAHUAcwB0AG8AbQBpAHoAZQAgAFQA
3146 bwBvAGwAYgBhAHIgJl8QH3J1blRvb2xiYXJDdXN0b21pemF0aW9uUGFsZXR0ZTrTAA4DWANZA1oFhgWH
3147 gLuBAWOBAWbYAA4DXgNfA2ADYQNiA2MDZANmBYoDaAWLA2oDawNsA8iAuYEBZIEBZYCzgLeAz1NDdXRR
3148 eFRjdXQ61AAOBDIDWANZBDMAyAQ0BZaA94AYgPSBAWhYdGV4dFZpZXfUAA4EMgNYA1kEMwDIAEEFnID3
3149 gBiAB4EBal8QFWluaXRpYWxGaXJzdFJlc3BvbmRlctMADgNYA1kDWgWgBaGAu4EBbIEBb9kADgWjA14D
3150 XwNgA2EDYgNjA2QDZgQnBaYD1wWnA2oDawNsA7ZZTlNUb29sVGlwgLmA8YEBbYEBboCzgLeAyV1QYWdl
3151 IFNldHVwLi4uUVBecnVuUGFnZUxheW91dDrTAA4DWANZA1oFsAWxgLuBAXGBAXTYAA4DXgNfA2ADYQNi
3152 A2MDZANmBbQDaAW1A2oDawNsBJ+AuYEBcoEBc4CzgLeBARVuAFMAaABvAHcAIABTAHAAZQBsAGwAaQBu
3153 AGcgJlE6XxAPc2hvd0d1ZXNzUGFuZWw60wAOA1gDWQNaBb4Fv4C7gQF2gQF41wAOA14DYANhA2IDYwNk
3154 A2YFwgQnA2oDawNsA7aAuYEBd4DxgLOAt4DJXxAPUmV2ZXJ0IHRvIFNhdmVkXxAWcmV2ZXJ0RG9jdW1l
3155 bnRUb1NhdmVkOtMADgNYA1kDWgXLBcyAu4EBeoEBfNgADgNeA18DYANhA2IDYwNkA2YFzwNoBCcDagNr
3156 A2wEn4C5gQF7gPGAs4C3gQEVXxAbQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5nXxAWdG9nZ2xlR3Jh
3157 bW1hckNoZWNraW5nOtcADgQyBdcF2ANYA1kF2QXaBdsF3AXdAnUF3wBVWU5TS2V5UGF0aFlOU0JpbmRp
3158 bmdfEBxOU05pYkJpbmRpbmdDb25uZWN0b3JWZXJzaW9ugQGLgQF+gQGKgQGCgHyBAYnbBeEADgXiBeMF
3159 5AXlBeYF5wXoBekF6gB6BewAegXuAHoF8AXdAHoAegB6BfVfEBpOU0ZpbHRlclJlc3RyaWN0c0luc2Vy
3160 dGlvbl8QFE5TUHJlc2VydmVzU2VsZWN0aW9uXE5TSW5pdGlhbEtleVpOU0VkaXRhYmxlXk5TRGVjbGFy
3161 ZWRLZXlzXk5TSW5pdGlhbFZhbHVlXxAiTlNDbGVhcnNGaWx0ZXJQcmVkaWNhdGVPbkluc2VydGlvbl8Q
3162 GE5TU2VsZWN0c0luc2VydGVkT2JqZWN0c18QFk5TQXZvaWRzRW1wdHlTZWxlY3Rpb25fEBFOU1NvcnRE
3163 ZXNjcmlwdG9ycwmBAYgJgQGBCYEBf4EBggkJCYEBg9IADgA+AGkF+IA0owX5Be4F3YEBgIEBgYEBglRr
3164 ZXlzU2tleVV2YWx1ZdIADgA+BgAGAYEBh6EGAoEBhNQADgYEBgUGBgYHBe4GCQB6VU5TS2V5Wk5TU2Vs
3165 ZWN0b3JbTlNBc2NlbmRpbmeBAYaBAYGBAYUJWGNvbXBhcmU60gA3ADgGDQYOogYOADtfEBBOU1NvcnRE
3166 ZXNjcmlwdG9y0gA3ADgGEAE4ogE4ADvSADcAOAYSBhOlBhMGFAYVBhYAO18QFk5TRGljdGlvbmFyeUNv
3167 bnRyb2xsZXJfEBFOU0FycmF5Q29udHJvbGxlcl8QEk5TT2JqZWN0Q29udHJvbGxlclxOU0NvbnRyb2xs
3168 ZXJfEBp2YWx1ZTogYXJyYW5nZWRPYmplY3RzLmtleV8QE2FycmFuZ2VkT2JqZWN0cy5rZXnSADcAOAYa
3169 BhujBhsDiwA7XxAVTlNOaWJCaW5kaW5nQ29ubmVjdG9y1wAOBDIF1wXYA1gDWQXZBdoENAYfBiAF2wYi
3170 AFWBAYuA9IEBj4EBjoEBfoEBjV8QGWNvbnRlbnREaWN0aW9uYXJ5OiB1c2VyTlNfEBFjb250ZW50RGlj
3171 dGlvbmFyeVZ1c2VyTlPXAA4EMgXXBdgDWANZBdkF2gXbBikF3QJ2BiwAVYEBi4EBfoEBkoEBgoCLgQGR
3172 XxAcdmFsdWU6IGFycmFuZ2VkT2JqZWN0cy52YWx1ZV8QFWFycmFuZ2VkT2JqZWN0cy52YWx1ZdcADgQy
3173 BdcF2ANYA1kF2QXaBQoGMgYzBdsGNQBVgQGLgQE7gQGWgQGVgQF+gQGUXxApZmlsdGVyUHJlZGljYXRl
3174 OiB3b3Jrc3BhY2VGaWx0ZXJQcmVkaWNhdGVfEA9maWx0ZXJQcmVkaWNhdGVfEBh3b3Jrc3BhY2VGaWx0
3175 ZXJQcmVkaWNhdGXXAA4EMgXXBdgDWANZBdkF2gQ0BjwGPQBsBj8AVYEBi4D0gQGagQGZgKOBAZhfEBlh
3176 bmltYXRlOiB3YWl0aW5nRm9yRW5naW5lV2FuaW1hdGVfEBB3YWl0aW5nRm9yRW5naW5l0gAOAD4GAAZF
3177 gQGHrxBnA1sGRwTfAkQCdQZLBIoEQQUgBW8GUATRBbAFywZUBFYFLgZXBYYGWQIKA20GXATtBl4GXwS3
3178 BmEGYgBNBdsAawVVBHsFoAZpBmoAyAUKBGEGbgSpBnAAbAZyBBUD9QIaA8gAfwPqAnYEIgZ7BJcGfQOO
3179 Bn8GgAV5AioGgwSfAhAETgPSBogEBwCqBb4D4QaNBo4D/QLAA64AfgaTBG4FEwTEAKMFXQT7BpoGmwOg
3180 BTYDlgafBWcEKgPABDQFQQKDAEEAsQaoBqkFSAO2BqyAr4EBnIEBLIB0gHyBAaGBARCA+YEBQ4EBW4EB
3181 poEBJ4EBcYEBeoEBqoD+gQFIgQHDgQFjgQHwgG6AsIEB2YEBMYEBv4EBz4EBH4EB5oEB5IALgQF+gA6B
3182 AVSBAQuBAWyBAbaBAbWAGIEBO4EBA4EB6oEBGoEBxoCjgQG9gOqA34CUgM+AaoDagIuA7oEBrYEBFIEB
3183 y4C9gQHQgQHugQFfgHKBAbGBARWAloD9gNSBAdGA5YBYgQF2gNmBAdeBAbyA4ICOgMiAEIEB1YEBB4EB
3184 P4EBI4AUgQFVgQE2gQHcgQGygMOBAUmAvoEB4IEBWoDvgM6A9IEBToCDgAeAVIEBuYEByoEBUIDJgQHJ
3185 2gAOBq4DXgNfA2ADYQNiA2MDZAGgA2YEKgQtA2gEJwNqA2sDbAPIBrZZTlNTdWJtZW51gLmA74EBnYDx
3186 gLOAt4DPgQGeVlNwZWVjaF5zdWJtZW51QWN0aW9uOtIADgA+AGkGu4A0ogVIBCKBAVCA7tIANwA4Br8D
3187 ZKIDZAA72gAOBq4DXgNfA2ADYQNiA2MDZAGgA2YFbwVyA2gEJwNqA2sDbAO2BsiAuYEBW4EBooDxgLOA
3188 t4DJgQGjW09wZW4gUmVjZW500gAOAD4AaQbMgDShBWeBAVpfEBZfTlNSZWNlbnREb2N1bWVudHNNZW51
3189 2gAOBq4DXgNfA2ADYQNiA2MDZAGgA2YDbQNxA2gEJwNqA2sDbAPIBteAuYCwgQGngPGAs4C3gM+BAahd
3190 U3Vic3RpdHV0aW9uc9IADgA+AGkG24A0owOgA1sE+4DDgK+BATbUAA4DXgHVA28DcAbhBuIG44EBoIEB
3191 q4EB9IEBrFlBTWFpbk1lbnXSAA4APgBpBueANKcGewZeBn0GnwZhBm4GWYEBrYEBv4EBy4EB4IEB5oEB
3192 6oEB8NoADgauA14DXwNgA2EDYgNjA2QBoANmA+oD7QNoBCcDagNrA2wGVAb3gLmA2oEBroDxgLOAt4EB
3193 qoEBr18QD0lQeXRob24xU2FuZGJveNIADgA+AGkG+4A0qwSKBoMGmwZqBmkGjgS3A+EEbgZyBO2BARCB
3194 AbGBAbKBAbWBAbaBAbyBAR+A2YEBB4EBvYEBMdoADgNeA18HCANgBwkDYQNiA2MDZANmBCcDaAB6BCcA
3195 egNqA2sDbAPqXU5TSXNTZXBhcmF0b3JcTlNJc0Rpc2FibGVkgLmA8QmA8QmAs4C3gNrYAA4DXgNfA2AD
3196 YQNiA2MDZANmBxQDaAcVA2oDawNsA+qAuYEBs4EBtICzgLeA2mwAUAByAGUAZgBlAHIAZQBuAGMAZQBz
3197 ICZRLNoADgNeA18HCANgBwkDYQNiA2MDZANmBCcDaAB6BCcAegNqA2sDbAPqgLmA8QmA8QmAs4C3gNra
3198 AA4GrgNeA18DYANhA2IDYwNkAaADZgaoBycDaAQnA2oDawNsA+oHLIC5gQG5gQG3gPGAs4C3gNqBAbhY
3199 U2VydmljZXPUAA4DXgHVA28DcAcnBzEHMoEBoIEBt4EBu4EButIADgA+AGkHNYA0oF8QD19OU1NlcnZp
3200 Y2VzTWVuddoADgNeA18HCANgBwkDYQNiA2MDZANmBCcDaAB6BCcAegNqA2sDbAPqgLmA8QmA8QmAs4C3
3201 gNraAA4DXgNfBwgDYAcJA2EDYgNjA2QDZgQnA2gAegQnAHoDagNrA2wD6oC5gPEJgPEJgLOAt4DaXF9O
3202 U0FwcGxlTWVuddoADgauA14DXwNgA2EDYgNjA2QBoANmA7YDuQNoBCcDagNrA2wGVAdSgLmAyYEBwIDx
3203 gLOAt4EBqoEBwVRGaWxl0gAOAD4AaQdWgDSrBlcGcAZLBqwEewOuBN8FvgapBaAE0YEBw4EBxoEBoYEB
3204 yYEBC4DIgQEsgQF2gQHKgQFsgQEn2AAOA14DXwNgA2EDYgNjA2QDZgdkA2gHZQNqA2sDbAO2gLmBAcSB
3205 AcWAs4C3gMlTTmV3UW7YAA4DXgNfA2ADYQNiA2MDZANmB20DaAduA2oDawNsA7aAuYEBx4EByICzgLeA
3206 yWUATwBwAGUAbiAmUW/aAA4DXgNfBwgDYAcJA2EDYgNjA2QDZgQnA2gAegQnAHoDagNrA2wDtoC5gPEJ
3207 gPEJgLOAt4DJ2gAOA14DXwcIA2AHCQNhA2IDYwNkA2YEJwNoAHoEJwB6A2oDawNsA7aAuYDxCYDxCYCz
3208 gLeAydoADgauA14DXwNgA2EDYgNjA2QBoANmA8gDywNoBCcDagNrA2wGVAeOgLmAz4EBzIDxgLOAt4EB
3209 qoEBzVRFZGl00gAOAD4AaQeSgDStA8AD0gZfBYYFIAQHBEEEqQZ/BogGmgZQBkeAzoDUgQHPgQFjgQFD
3210 gOWA+YEBGoEB0IEB0YEB3IEBpoEBnNoADgNeA18HCANgBwkDYQNiA2MDZANmBCcDaAB6BCcAegNqA2sD
3211 bAPIgLmA8QmA8QmAs4C3gM/aAA4DXgNfBwgDYAcJA2EDYgNjA2QDZgQnA2gAegQnAHoDagNrA2wDyIC5
3212 gPEJgPEJgLOAt4DP2gAOBq4DXgNfA2ADYQNiA2MDZAGgA2YDlgOZA2gEJwNqA2sDbAPIB7qAuYC+gQHS
3213 gPGAs4C3gM+BAdNURmluZNIADgA+AGkHvoA0pQQVBpMGjQZcA46A6oEB1YEB14EB2YC92QAOA14DXwNg
3214 A2EDYgNjA2QDZQNmB8YDaANpA2oDawNsA5YAVYC5gQHWgLKAs4C3gL5ZRmluZCBOZXh02QAOA14DXwNg
3215 A2EDYgNjA2QDZQNmB84D1wUAA2oDawNsA5YBWIC5gQHYgQE4gLOAt4C+XUZpbmQgUHJldmlvdXPZAA4D
3216 XgNfA2ADYQNiA2MDZANlA2YH1gNoB9cDagNrA2wDlgfbgLmBAdqBAduAs4C3gL4QB18QFlVzZSBTZWxl
3217 Y3Rpb24gZm9yIEZpbmRRZdoADgauA14DXwNgA2EDYgNjA2QBoANmBJ8EogNoBCcDagNrA2wDyAfmgLmB
3218 ARWBAd2A8YCzgLeAz4EB3l8QFFNwZWxsaW5nIGFuZCBHcmFtbWFy0gAOAD4AaQfqgDSkBbAElwTEBcuB
3219 AXGBARSBASOBAXraAA4GrgNeA18DYANhA2IDYwNkAaADZgP9BAADaAQnA2oDawNsBlQH94C5gOCBAeGA
3220 8YCzgLeBAaqBAeJWRm9ybWF00gAOAD4AaQf7gDSiBmID9YEB5IDf2AAOA14DXwNgA2EDYgNjA2QDZggA
3221 A2gFMwNqA2sDbAP9gLmBAeWBAUuAs4C3gOBaU2hvdyBGb250c9oADgauA14DXwNgA2EDYgNjA2QBoANm
3222 BTYFOQNoBCcDagNrA2wGVAgOgLmBAUmBAeeA8YCzgLeBAaqBAehUVmlld9IADgA+AGkIEoA0ogUuBXmB
3223 AUiBAV/aAA4GrgNeA18DYANhA2IDYwNkAaADZgRWBFkDaAQnA2oDawNsBlQIHYC5gP6BAeuA8YCzgLeB
3224 AaqBAexWV2luZG930gAOAD4AaQghgDSkBE4FEwaABGGA/YEBP4EB7oEBA9oADgNeA18HCANgBwkDYQNi
3225 A2MDZANmBCcDaAB6BCcAegNqA2sDbARWgLmA8QmA8QmAs4C3gP5eX05TV2luZG93c01lbnXaAA4GrgNe
3226 A18DYANhA2IDYwNkAaADZgVdBWADaAQnA2oDawNsBlQIOIC5gQFVgQHxgPGAs4C3gQGqgQHyVEhlbHDS
3227 AA4APgBpCDyANKEFVYEBVFtfTlNNYWluTWVuddIADgA+BgAIQYEBh68QZwNtA8gDtgIKAioDtgPqA8gD
3228 yAZLA8gDtgSfBJ8AHwZuBTYDtgPIBlQAfwZQA5YD6gZUA8gD6gZUA/0AQQAfAE0FXQO2A7YD6gPqAKMA
3229 HwRWBlQDyAO2AE0D6gOWA/0CCgZ9AGsGewIqBCoGVASfBlQDlgPIBFYFNgIKA+oGmgIKBFYDyAPIA8gA
3230 owO2A+oDlgPqBp8CdgO2AGsDlgPqBFYEnwB+BlkDbQPIA+oDbQZhBogGVAVvBkcDyAAfAB8CdQAfAKMG
3231 aQO2BCoGXgO2gLCAz4DJgG6AcoDJgNqAz4DPgQGhgM+AyYEBFYEBFYACgQHqgQFJgMmAz4EBqoBqgQGm
3232 gL6A2oEBqoDPgNqBAaqA4IAHgAKAC4EBVYDJgMmA2oDagBSAAoD+gQGqgM+AyYALgNqAvoDggG6BAcuA
3233 DoEBrYBygO+BAaqBARWBAaqAvoDPgP6BAUmAboDagQHcgG6A/oDPgM+Az4AUgMmA2oC+gNqBAeCAi4DJ
3234 gA6AvoDagP6BARWAEIEB8ICwgM+A2oCwgQHmgQHRgQGqgQFbgQGcgM+AAoACgHyAAoAUgQG2gMmA74EB
3235 v4DJ0gAOAD4GAAirgQGHrxBoA1sGRwTfAkQCdQZLBIoEQQUgBW8E0QZQBbAFywUuBlQEVgZXBYYGWQIK
3236 A20GXATtBl4GXwS3BmEGYgBNBdsAawVVBHsFoAZpBmoAyAUKBGEGbgZwBKkAbAZyBBUD9QIaA8gD6gB/
3237 BCICdgZ7BJcGfQOOBn8GgAV5AioGgwSfAhAETgPSBogEBwCqBb4D4QaNBo4D/QLAA64AfgaTBG4FEwTE
3238 AKMFXQT7AB8GmgabBTYDoAafA5YFZwQqBDQDwAVBAoMAQQCxBqkGqAVIA7YGrICvgQGcgQEsgHSAfIEB
3239 oYEBEID5gQFDgQFbgQEngQGmgQFxgQF6gQFIgQGqgP6BAcOBAWOBAfCAboCwgQHZgQExgQG/gQHPgQEf
3240 gQHmgQHkgAuBAX6ADoEBVIEBC4EBbIEBtoEBtYAYgQE7gQEDgQHqgQHGgQEagKOBAb2A6oDfgJSAz4Da
3241 gGqA7oCLgQGtgQEUgQHLgL2BAdCBAe6BAV+AcoEBsYEBFYCWgP2A1IEB0YDlgFiBAXaA2YEB14EBvIDg
3242 gI6AyIAQgQHVgQEHgQE/gQEjgBSBAVWBATaAAoEB3IEBsoEBSYDDgQHggL6BAVqA74D0gM6BAU6Ag4AH
3243 gFSBAcqBAbmBAVCAyYEBydIADgA+BgAJFoEBh68QaAkXCRgJGQkaCRsJHAkdCR4JHwkgCSEJIgkjCSQJ
3244 JQkmCScJKAkpCSoJKwksCS0JLgkvCTAJMQkyCTMJNAk1CTYJNwk4CTkJOgk7CTwFDgk+CT8JQAlBCUIJ
3245 QwlECUUJRglHCUgJSQlKCUsJTAlNCU4JTwlQCVEJUglTCVQJVQlWCVcJWAlZCVoJWwlcCV0JXglfCWAJ
3246 YQliCWMJZAllCWYJZwloCWkJaglrCWwJbQluCW8JcAlxCXIJcwl0CXUJdgl3CXgJeQl6CXsJfAl9CX6B
3247 AfiBAfmBAfqBAfuBAfyBAf2BAf6BAf+BAgCBAgGBAgKBAgOBAgSBAgWBAgaBAgeBAgiBAgmBAgqBAguB
3248 AgyBAg2BAg6BAg+BAhCBAhGBAhKBAhOBAhSBAhWBAhaBAheBAhiBAhmBAhqBAhuBAhyBAh2BATyBAh6B
3249 Ah+BAiCBAiGBAiKBAiOBAiSBAiWBAiaBAieBAiiBAimBAiqBAiuBAiyBAi2BAi6BAi+BAjCBAjGBAjKB
3250 AjOBAjSBAjWBAjaBAjeBAjiBAjmBAjqBAjuBAjyBAj2BAj6BAj+BAkCBAkGBAkKBAkOBAkSBAkWBAkaB
3251 AkeBAkiBAkmBAkqBAkuBAkyBAk2BAk6BAk+BAlCBAlGBAlKBAlOBAlSBAlWBAlaBAleBAliBAlmBAlqB
3252 AluBAlyBAl2BAl5fEBhNZW51IEl0ZW0gKFNtYXJ0IFF1b3RlcylfEBJNZW51IEl0ZW0gKFNwZWVjaClR
3253 OF8QEVRhYmxlIEhlYWRlciBWaWV3XxAXVGFibGUgQ29sdW1uIChWYXJpYWJsZSlfEBdNZW51IEl0ZW0g
3254 KE9wZW4gUmVjZW50KV8QIU1lbnUgSXRlbSAoQWJvdXQgSVB5dGhvbjFTYW5kYm94KV8QEk1lbnUgSXRl
3255 bSAoRGVsZXRlKV8QEE1lbnUgSXRlbSAoQ29weSlfEBJNZW51IChPcGVuIFJlY2VudClRNl8QGU1lbnUg
3256 SXRlbSAoU3Vic3RpdHV0aW9ucylvEBoATQBlAG4AdQAgAEkAdABlAG0AIAAoAFMAaABvAHcAIABTAHAA
3257 ZQBsAGwAaQBuAGcgJgApXxAnTWVudSBJdGVtIChDaGVjayBHcmFtbWFyIFdpdGggU3BlbGxpbmcpXxAY
3258 TWVudSBJdGVtIChTaG93IFRvb2xiYXIpWE1haW5NZW51XU1lbnUgKFdpbmRvdylROV8QD01lbnUgSXRl
3259 bSAoQ3V0KVExW1Njcm9sbCBWaWV3XxAUTWVudSAoU3Vic3RpdHV0aW9ucylfECJNZW51IEl0ZW0gKFVz
3260 ZSBTZWxlY3Rpb24gZm9yIEZpbmQpVDExMTFfEBBNZW51IEl0ZW0gKEZpbGUpW1NlcGFyYXRvci01XxAg
3261 TWVudSBJdGVtIChIaWRlIElQeXRob24xU2FuZGJveClfEBBNZW51IEl0ZW0gKFZpZXcpXxAWTWVudSBJ
3262 dGVtIChTaG93IEZvbnRzKVxDb250ZW50IFZpZXdfEBlVc2VyIE5hbWVzcGFjZSBDb250cm9sbGVyWlNw
3263 bGl0IFZpZXdfECBNZW51IEl0ZW0gKElQeXRob24xU2FuZGJveCBIZWxwKVMxLTFRNV8QFE1lbnUgSXRl
3264 bSAoU2VydmljZXMpW1NlcGFyYXRvci0xWVRleHQgVmlld18QHk1lbnUgSXRlbSAoQnJpbmcgQWxsIHRv
3265 IEZyb250KV8QEk1lbnUgSXRlbSAoV2luZG93KW8QEQBNAGUAbgB1ACAASQB0AGUAbQAgACgATwBwAGUA
3266 biAmAClfEBZNZW51IEl0ZW0gKFNlbGVjdCBBbGwpXEFzeW5jIEFycm93c1tTZXBhcmF0b3ItMm8QEQBN
3267 AGUAbgB1ACAASQB0AGUAbQAgACgARgBpAG4AZCAmAClfEBdNZW51IEl0ZW0gKFNob3cgQ29sb3JzKV8Q
3268 EVZlcnRpY2FsIFNjcm9sbGVyW01lbnUgKEVkaXQpXxAWTWVudSAoSVB5dGhvbjFTYW5kYm94KV8QD0Jv
3269 eCAoV29ya3NwYWNlKV8QGU1lbnUgSXRlbSAoU3RvcCBTcGVha2luZylfEBRUYWJsZSBDb2x1bW4gKFZh
3270 bHVlKV8QG01lbnUgSXRlbSAoSVB5dGhvbjFTYW5kYm94KV8QGk1lbnUgSXRlbSAoQ2hlY2sgU3BlbGxp
3271 bmcpXxAQTWVudSBJdGVtIChFZGl0KV8QHU1lbnUgSXRlbSAoSnVtcCB0byBTZWxlY3Rpb24pW1NlcGFy
3272 YXRvci02WVNlcGFyYXRvcm8QHgBNAGUAbgB1ACAASQB0AGUAbQAgACgAQwB1AHMAdABvAG0AaQB6AGUA
3273 IABUAG8AbwBsAGIAYQByICYAKV8QHFRhYmxlIFZpZXcgKFZhcmlhYmxlLCBWYWx1ZSlbU2VwYXJhdG9y
3274 LTNfEBtNZW51IChTcGVsbGluZyBhbmQgR3JhbW1hcilfEBNIb3Jpem9udGFsIFNjcm9sbGVyXxAUTWVu
3275 dSBJdGVtIChNaW5pbWl6ZSlfEBBNZW51IEl0ZW0gKFJlZG8pXxAQTWVudSBJdGVtIChGaW5kKV8QEU1l
3276 bnUgSXRlbSAoUGFzdGUpXxAVSG9yaXpvbnRhbCBTY3JvbGxlci0xUjEwXxAXTWVudSBJdGVtIChIaWRl
3277 IE90aGVycylfEBlNZW51IEl0ZW0gKEZpbmQgUHJldmlvdXMpW1NlcGFyYXRvci00XU1lbnUgKEZvcm1h
3278 dClfEB1UZXh0IEZpZWxkIENlbGwgKFRleHQgQ2VsbCktMVEzXUJveCAoQ29uc29sZSlfEBVNZW51IEl0
3279 ZW0gKEZpbmQgTmV4dClfEBRNZW51IEl0ZW0gKFNob3cgQWxsKV8QEE1lbnUgSXRlbSAoWm9vbSlfECdN
3280 ZW51IEl0ZW0gKENoZWNrIFNwZWxsaW5nIFdoaWxlIFR5cGluZyldU2Nyb2xsIFZpZXctMVEyXxAXTWVu
3281 dSBJdGVtIChTbWFydCBMaW5rcylcRmlsZSdzIE93bmVyXxAgTWVudSBJdGVtIChTcGVsbGluZyBhbmQg
3282 R3JhbW1hcilTMTIxW01lbnUgKFZpZXcpXxAcTWVudSBJdGVtIChTbWFydCBDb3B5L1Bhc3RlKV8QEk1l
3283 bnUgSXRlbSAoRm9ybWF0KVtNZW51IChGaW5kKV8QFk1lbnUgSXRlbSAoQ2xlYXIgTWVudSldTWVudSAo
3284 U3BlZWNoKV8QF1B5dGhvbiBDb2NvYSBDb250cm9sbGVyXxAQTWVudSBJdGVtIChVbmRvKVtBcHBsaWNh
3285 dGlvbl8QG1RleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKV8QGVdpbmRvdyAoSVB5dGhvbjEgKENvY29h
3286 KSlfEBNWZXJ0aWNhbCBTY3JvbGxlci0xUzItMV8QD01lbnUgKFNlcnZpY2VzKV8QGk1lbnUgSXRlbSAo
3287 U3RhcnQgU3BlYWtpbmcpW01lbnUgKEZpbGUpUTfSAA4APgYACeiBAYeg0gAOAD4GAAnrgQGHoNIADgA+
3288 BgAJ7oEBh68QlwNUA1sGRwNBA0kE3wJEAnUGSwSKBEEFIAVvA0IGUATRA0QDMgNOBbADMQNRA0sFywM+
3289 AzoGVARWBS4GVwNNBYYGWQMwAgoDbQZcBO0GXgZfAzkDOAS3AywDTAZhBmIDLwBNBdsDQAM0AGsFVQR7
3290 BaAGaQZqAMgDKwUKBGEGbgSpBnAAbANHBnIEFQP1AhoDyAB/A+oCdgQiAz8GewSXBn0DjgZ/A0oDVgaA
3291 A1UFeQIqA0MGgwSfAhADKgROA9IGiAQHAKoDOwNIBb4D4QaNAzYDPAaOA0UD/QMoAsADrgMzAH4GkwRu
3292 BRMExACjA1IDKQVdBPsAHwaaBpsDoAU2A5YGnwMuBWcDUAQqA8AENANGBUEDNQKDA08AQQCxBqgGqQM3
3293 Az0DUwMtBUgDtgasgQGQgK+BAZyBATWBAVmBASyAdIB8gQGhgQEQgPmBAUOBAVuBATqBAaaBASeBAUKA
3294 7YEBa4EBcYDpgQF5gQFigQF6gQEmgQETgQGqgP6BAUiBAcOBAWmBAWOBAfCA5IBugLCBAdmBATGBAb+B
3295 Ac+BAQ+BAQqBAR+AzYEBZ4EB5oEB5IDegAuBAX6BATCA+IAOgQFUgQELgQFsgQG2gQG1gBiAx4EBO4EB
3296 A4EB6oEBGoEBxoCjgQFPgQG9gOqA34CUgM+AaoDagIuA7oEBK4EBrYEBFIEBy4C9gQHQgQFegQGXgQHu
3297 gQGTgQFfgHKBAT6BAbGBARWAloDCgP2A1IEB0YDlgFiBARmBAVOBAXaA2YEB14EBAoEBHoEBvIEBR4Dg
3298 gK6AjoDIgPOAEIEB1YEBB4EBP4EBI4AUgQF9gLyBAVWBATaAAoEB3IEBsoDDgQFJgL6BAeCA2IEBWoEB
3299 dYDvgM6A9IEBTYEBToD8gIOBAXCAB4BUgQG5gQHKgQEGgQEigQGMgNOBAVCAyYEBydIADgA+BgAKiIEB
3300 h68QlwqJCooKiwqMCo0KjgqPCpAKkQqSCpMKlAqVCpYKlwqYCpkKmgqbCpwKnQqeCp8KoAqhCqIKowqk
3301 CqUKpgqnCqgKqQqqCqsKrAqtCq4KrwqwCrEKsgqzCrQKtQq2CrcKuAq5CroKuwq8Cr0Kvgq/CsAKwQrC
3302 CsMKxArFCsYKxwrICskKygrLCswKzQrOCs8K0ArRCtIK0wrUCtUK1grXCtgK2QraCtsK3ArdCt4K3wrg
3303 CuEK4grjCuQK5QrmCucK6ArpCuoK6wrsCu0K7grvCvAK8QryCvMK9Ar1CvYK9wr4CvkK+gr7CvwK/Qr+
3304 Cv8LAAsBCwILAwsECwULBgsHCwgLCQsKCwsLDAsNCw4LDwsQCxELEgsTCxQLFQsWCxcLGAsZCxoLGwsc
3305 Cx0LHgsfgQJjgQJkgQJlgQJmgQJngQJogQJpgQJqgQJrgQJsgQJtgQJugQJvgQJwgQJxgQJygQJzgQJ0
3306 gQJ1gQJ2gQJ3gQJ4gQJ5gQJ6gQJ7gQJ8gQJ9gQJ+gQJ/gQKAgQKBgQKCgQKDgQKEgQKFgQKGgQKHgQKI
3307 gQKJgQKKgQKLgQKMgQKNgQKOgQKPgQKQgQKRgQKSgQKTgQKUgQKVgQKWgQKXgQKYgQKZgQKagQKbgQKc
3308 gQKdgQKegQKfgQKggQKhgQKigQKjgQKkgQKlgQKmgQKngQKogQKpgQKqgQKrgQKsgQKtgQKugQKvgQKw
3309 gQKxgQKygQKzgQK0gQK1gQK2gQK3gQK4gQK5gQK6gQK7gQK8gQK9gQK+gQK/gQLAgQLBgQLCgQLDgQLE
3310 gQLFgQLGgQLHgQLIgQLJgQLKgQLLgQLMgQLNgQLOgQLPgQLQgQLRgQLSgQLTgQLUgQLVgQLWgQLXgQLY
3311 gQLZgQLagQLbgQLcgQLdgQLegQLfgQLggQLhgQLigQLjgQLkgQLlgQLmgQLngQLogQLpgQLqgQLrgQLs
3312 gQLtgQLugQLvgQLwgQLxgQLygQLzgQL0gQL1gQL2gQL3gQL4gQL5EQGrEQFfENMRAWUQfxBQEQGYEQGc
3313 EHwQOhDKEMUQfREBuREBXBBOEOAQ4xBXEMwQ8REBWxDkEQFaEFYQ4RAdEBgRASkQUhEBvRDHEGcQ4hEB
3314 lxEBXRDdEIgQUxDOEI4QwRCGEN8RAbwRAScRAVgRAWkRAXQRAYERAXEQ6xEBpRBvEEkQTRCDEI8RAaMR
3315 AWoRAXUQBRATEMYQSBEBtBDpEJUQ0REBWREBmRDNEQGWEDkRAZ0QwxEBaxA4EMkQ2RDSENYRAW0RAbUQ
3316 XBEBuBEBKhEBmxDwEOwQyBEBmhEBYxAXENcQ2hDLEQGiEOgRAWgQcBCRENUQJxEBbxCQEQFuEQEsEQFk
3317 EQGeEEsRAa0RAaQQ0BCWEO8Q2xEBoBEBrBD1EGoRAWIRAb4Q2BCBEQFeEQEoENwRASsRAXAQfhEBbBDU
3318 EM8RAaYRAXYT//////////0QJREBnxDmEQFzEQGhEIIQShEBchDeEQGoEOcQxBBREE/SAA4APgBpC7mA
3319 NKDSAA4APgYAC7yBAYeg0gAOAD4GAAu/gQGHoNIANwA4C8ELwqILwgA7Xk5TSUJPYmplY3REYXRhAAgA
3320 GQAiACcAMQA6AD8ARABSAFQAZgZmBmwGtwa+BsUG0wblBwEHDwcbBycHNQdAB04Hagd4B4sHnQe3B8EH
3321 zgfQB9MH1gfZB9wH3gfhB+MH5gfpB+wH7wfxB/MH9gf5B/wH/wgICBQIFggYCCYILwg4CEMISAhXCGAI
3322 cwh8CIcIiQiMCI4IuwjICNUI6wj5CQMJEQkeCTAJRAlQCVIJVAlWCVgJWglfCWEJYwllCWcJaQmECZcJ
3323 oAm9Cc8J2gnjCe8J+wn9Cf8KAQoECgYKCAoKChMKFQoaChwKHgpHCk8KXgptCnoKfAp+CoAKggqFCocK
3324 iQqLCowKlQqXCpwKngqgCtkK4wrvCv0LCgsUCyYLNAs2CzgLOgs8Cz0LPwtBC0MLRQtHC0kLSwtNC1YL
3325 WAtbC10Legt8C34LgAuCC4QLhguPC5ELlAuWC8cL0wvcC+gL9gv4C/oL/Av+DAEMAwwFDAcMCQwLDA0M
3326 FgwYDB8MIQwjDCUMWgxjDGwMdgyADIoMjAyODJAMkgyUDJYMmAybDJ0MnwyhDKMMpQyuDLAMswy1DOoM
3327 /A0GDRMNHw0pDTINPQ0/DUENQw1FDUcNSQ1LDU4NUA1SDVQNVg1YDWENYw2IDYoNjA2ODZANkg2UDZYN
3328 mA2aDZwNng2gDaINpA2mDagNqg3GDdsN+A4ZDjUOWw6BDp8Ouw7XDvQPDA8mD1oPdw+TD8APyQ/QD90P
3329 4w/6EA8QGRAkECwQPhBAEEIQSxBNEGIQdRCDEI0QjxCREJMQlRCiEKsQrRCvELEQuhDEEMYQxxDQENcQ
3330 6RDyEPsRFxEsETURNxE6ETwRRRFMEVsRYxFsEXERehF/EaARqBHCEdUR6RIAEhUSKBIqEi8SMRIzEjUS
3331 NxI5EjsSSBJVElsSXRJ4EoEShhKOEpsSoxKlEqcSqhK3Er8SwRLGEsgSyhLPEtES0xLoEvQTAhMEEwYT
3332 CBMKExETLxM8Ez4TShNfE2ETYxNlE2cTexOEE4kTlhOjE6UTqhOsE64TsxO1E7cTwxPQE9IT2RPiE+cT
3333 /hQLFBMUHBQnFC4UNRRBFFgUcBR9FH8UghSPFJkUphSoFKoUshS7FMAUyRTSFN0VAhULFRQVHhUgFSIV
3334 JBUmFS8VMRUzFTUVPhVWFWMVbBV3FYIVjBW5FcQVxhXIFcoVzBXOFdAV0hXbFeQV/xYYFiEWKhY3Fk4W
3335 VxZeFmkWcBaNFpkWpBauFrsWxxbMFs4W0BbSFtQW1hbeFu8W9hb9FwYXCBcRFxMXFhcjFywXMRc4F00X
3336 TxdRF1MXVRdrF3gXeheIF5EXmhesF7kXwBfJF9IX2BgRGBMYFRgXGBkYGhgcGB4YIBgiGCQYJhgvGDEY
3337 NBg2GFMYVRhXGFkYWxhdGF8YaBhqGG0YbxiuGLsYzhjbGN0Y3xjhGOMY5RjnGOkY6xj+GQAZAhkEGQYZ
3338 CBkRGRMZHhkgGSIZJBkmGSgZVRlXGVkZWxldGV8ZYRljGWUZZxlwGXIZdRl3Gc4Z8Bn6GgcaHBo2GlIa
3339 bRp3GoMalRqkGsMazxrRGtMa3BreGuAa4RrjGuwa9Rr3Gvga+hr8Gv4bABsJGxQbMRs9Gz8bQRtDG0Ub
3340 RxtJG3YbeBt6G3wbfhuAG4IbhBuGG4gbkhubG6QbuBvRG9Mb1RvXG9kb2xvyG/scBBwSHBscHRwiHCQc
3341 JhxPHF4caxx2HIUckBybHKgcqRyrHK0cthy4HMEcyhzLHM0c6hzvHPEc8xz1HPcc+R0CHQ8dER0dHTId
3342 NB02HTgdOh1MHVUdYB10HZUdox2oHaodrB2uHbAdsh21HbcdwR3SHdQd3R3fHeId9x35Hfsd/R3/Hhge
3343 LR4vHjEeMx41HkgeUR5WHmQejR6OHpAekh6bHp0enh6gHr0evx7BHsMexR7HHs0e7h7wHvIe9B72Hvge
3344 +h8PHxEfEx8VHxcfIR8uHzAfNR8+H0kfYR+GH4gfih+MH44fkB+SH5QfnR+2H98f4R/jH+Uf5x/pH+sf
3345 7R/2IA4gFyAZIBwgHiA0IE0gZCB9IJognCCeIKAgoiCkIK4guyC9INYg+SECIQshFyFAIUshViFgIW0h
3346 byFxIXMhfCGFIYghiiGNIY8hkSGWIZghoSGmIbEhySHSIdsh8SH8IhQiJyIwIjUiSCJRIlMitCK2Irgi
3347 uiK8Ir4iwCLCIsQixiLIIsoizCLOItAi0yLWItki3CLfIuIi5SLoIusi7iLxIvQi9yL6Iv0jACMDIwYj
3348 CSMMIw8jEiMVIxgjGyMeIyEjJCMnIyojLSMwIzMjQCNJI1EjUyNVI1cjfCOEI5gjoyOxI7sjyCPPI9Uj
3349 1yPZI94j4CPlI+cj6SPrI/gkBCQHJAokDSQaJBwkKSQ4JDokPCQ+JEYkWCRhJGYkeSSGJIgkiiSMJJ8k
3350 qCStJLgk3CTlJOwlBCUTJSAlIiUkJSYlRyVJJUslTSVPJVElUyVgJWMlZiVpJX0lfyWfJawlriWwJbIl
3351 1yXZJdsl3SXfJeEl4yX2JfgmEyYgJiImJCYmJkcmSSZLJk0mTyZRJlMmYCZjJmYmaSZuJnAmfiaLJo0m
3352 jyaRJrImtCa2Jrgmuia8Jr4myybOJtEm1CbZJtsm4SbuJvAm8ib0JxUnFycZJx4nICciJyQnJicrJy0n
3353 MydAJ0InRCdGJ2cnaSdrJ3Ancid0J3YneCeJJ4wnjyeSJ5UnoSejJ7wnySfLJ80nzyfwJ/In9Cf2J/gn
3354 +if8KAkoDCgPKBIoHiggKDgoRShHKEkoSyhsKG4ocChyKHQodih4KH4ogCiHKJQoliiYKJoovyjBKMMo
3355 xSjHKMkoyyjWKPAo/Sj/KQEpAykkKSYpKCkqKSwpLikwKT0pQClDKUYpVCliKXMpgSmDKYUphymJKZIp
3356 lCmWKa8puCnBKcgp3ynsKe4p8CnyKhMqFSoXKhkqGyodKh8qJiouKjsqPSo/KkIqYyplKmcqaipsKm4q
3357 cCqBKoQqhyqKKo0qliqYKq4quyq9KsAqwyrkKuYq6SrrKu0q7yrxKwYrGCslKycrKistK04rUCtTK1Ur
3358 VytZK1srZCt9K4orjCuPK5Irsyu1K7gruyu9K78rwSvHK8kr1yvoK+or7CvvK/IsDywRLBQsFiwYLBos
3359 HCw0LFQsYSxjLGYsaSyKLIwsjyySLJQsliyZLKYsqSysLK8svizALM8s3CzeLOEs5C0FLQctCi0NLQ8t
3360 ES0TLR4tIC0rLTgtOi09LUAtYS1jLWYtaC1qLWwtbi2FLYstmC2aLZ0toC3BLcMtxi3ILcotzC3PLe0u
3361 Di4bLh0uIC4jLkQuRi5JLkwuTi5QLlIuXy5hLmgudS53LnoufS6eLqAuoy6mLqguqi6sLr0uvy7RLt4u
3362 4C7jLuYvBy8JLwwvDy8RLxMvFS8sLy4vOS9GL0gvSy9OL3MvdS94L3svfS9/L4EvjS+PL68vwC/CL8Qv
3363 xy/KL9Mv1S/YL/UwCTAWMBgwGzAeMD8wQTBEMEYwSDBKMEwwUTBeMGswbTBwMHMwlDCWMJkwnDCeMKAw
3364 ojCnMKkwrzC8ML4wwTDEMOUw5zDqMO0w7zDxMPQxATEEMQcxCjEXMRkxLzFAMUIxRTFIMUoxUzFVMVcx
3365 ZDFmMWkxbDGNMY8xkjGUMZYxmDGaMakxuDHFMccxyjHNMe4x8DHzMfYx+DH6Mf0yCjINMhAyEzIqMiwy
3366 NjJDMkUySDJLMmwybjJxMnMydTJ3MnoyizKOMpEylDKXMqIyujLHMskyzDLPMvAy8jL1Mvcy+TL7Mv4z
3367 JTNHM1QzVjNZM1wzfTN/M4IzhTOHM4kzizOPM5EzljOnM6kzqzOtM7AzuTPKM8wzzjPQM9Mz6zP4M/oz
3368 /TQANCU0LzQxNDM0NjQ5NDs0PTQ/NE00TzReNGs0bTRwNHM0lDSWNJk0nDSeNKA0ozTANMI01DThNOM0
3369 5jTpNQY1CDULNQ01DzURNRM1JTU+NUs1TTVQNVM1dDV2NXk1ezV9NX81gjWgNbk11jXgNeo2CTYMNg82
3370 EjYVNhc2GjZHNmQ2ezaINpM2ojaxNtY28TcKNx43HzciNyM3JjcnNyo3LTcuNy83MDczNzw3PjdFN0g3
3371 SzdON1M3VzddN2Y3aTdsN283gDeGN5E3nTegN6M3pjenN7A3uTe+N9E32jffN+g38zgMOCA4NThCOF84
3372 dTh+OIU4nTi6OL04vzjCOMU4yDjLOOc4+zkCOR85IjklOSg5KzktOTA5TzlnOYQ5hzmKOY05kDmTOZY5
3373 wjnUOe86DDoPOhE6FDoXOhk6HDo4OkA6UzpcOl87MDsyOzU7ODs6Ozw7PztCO0Q7RztKO007UDtTO1Y7
3374 WTtbO147YTtkO2c7aTtrO247cTt0O3c7ejt9O4A7gjuFO4c7ijuNO5A7kzuWO5g7mzueO6E7pDunO6k7
3375 rDuuO7A7sju0O7Y7uDu6O7w7vzvCO8U7xzvKO8070DvSO9U72DvaO9w73jvhO+M75TvoO+o77TvwO/I7
3376 9Dv2O/g7+zv+PAE8BDwGPAk8DDwPPBI8FDwXPBk8HDwfPCE8IzwlPCg8KjwsPC48MTw0PDc8OTw8PGU8
3377 bzxxPHM8djx4PHo8fDx+PIE8iDyXPKA8ojynPKo8rDy1PLo84zzlPOg86zztPO888TzzPPY9Aj0LPQ09
3378 ED0TPSw9VT1XPVk9XD1ePWA9Yj1kPWc9dT1+PYA9hz2JPYs9jj2fPaI9pT2oPas9tT2+PcA9zz3SPdU9
3379 2D3bPd494T3kPg0+Dz4RPhQ+Fj4YPho+HT4gPjI+Oz49PlQ+Vz5aPl0+YD5jPmY+aT5rPm4+cT50Pp0+
3380 qz64Pro+vD69Pr8+wD7CPsQ+xj7nPuk+7D7vPvE+8z71Pw4/ED85Pzs/PT8+P0A/QT9DP0U/Rz9wP3I/
3381 dT94P3o/fD9+P4A/gz+MP50/oD+jP6Y/qT+yP7Q/tT/HP/A/8j/0P/U/9z/4P/o//D/+QCdAKUArQCxA
3382 LkAvQDFAM0A1QEJAa0BtQG9AckB0QHZAeEB7QH5Ag0CMQI5ApUCoQKtArkCxQLRAtkC5QLxAv0DCQMVA
3383 5kDoQOtA7kDwQPJA9ED4QPpBG0EdQSBBI0ElQSdBKUE0QTZBX0FhQWNBZEFmQWdBaUFrQW1BlkGYQZpB
3384 m0GdQZ5BoEGiQaRBzUHPQdFB1EHWQdhB2kHdQeBB5UHuQfBCC0INQg9CEkIVQhhCGkIcQh9CIkIlQihC
3385 K0IuQldCWUJbQlxCXkJfQmFCY0JlQo5CkEKSQpNClUKWQphCmkKcQsVCx0LJQsxCzkLQQtJC1ELXQtxC
3386 5ULnQvJC9EL3QvpC/UL/QyRDJkMpQytDLUMvQzFDO0NgQ2JDZUNoQ2pDbENuQ3xDoUOjQ6ZDqUOrQ61D
3387 r0OxQ8pDzEP1Q/dD+kP9Q/9EAUQDRAVECEQfRChEKkQzRDZEOUQ8RD9EaERqRGxEb0RxRHNEdUR4RHtE
3388 gkSLRI1EkkSVRJdEuES6RL1EwETCRMRExkTRRPpE/ET/RQJFBEUGRQhFC0UORRNFHEUeRSNFJkUpRVJF
3389 VEVWRVlFW0VdRV9FYkVlRWxFdUV3RYBFgkWFRYhFi0W0RbZFuEW5RbtFvEW+RcBFwkXRRfpF/EX/RgJG
3390 BEYGRghGC0YORhNGHEYeRiFGJEYwRjlGPEcNRw9HEUcTRxVHF0cZRxtHHUcfRyJHJEcmRylHLEcuRzFH
3391 NEc2RzhHO0c9R0BHQkdER0dHSUdLR05HUEdSR1RHVkdZR1tHXUdfR2FHY0dlR2dHakdsR25HcEdyR3RH
3392 dkd4R3tHfUeAR4JHhEeHR4pHjUePR5FHk0eWR5hHmkedR59HoUejR6VHp0epR6tHrUevR7FHtEe2R7hH
3393 uke8R75HwEfDR8VHyEfKR8xHzkfQR9NH1kfZR9xH30fhR+NH5UfnR+lH60fuR/BH8kf1R/dIAEgDSNZI
3394 2EjbSN5I4EjiSOVI6EjqSO1I8EjzSPZI+Uj8SP9JAkkESQdJCkkNSQ9JEUkUSRdJGkkdSSBJI0kmSShJ
3395 K0ktSTBJM0k2STlJPEk+SUFJRElHSUpJTUlPSVJJVElWSVhJWklcSV5JYEliSWVJaElrSW1JcElzSXZJ
3396 eEl7SX5JgEmCSYRJh0mJSYtJjkmQSZNJlkmYSZpJnEmeSaFJpEmnSapJrEmvSbJJtEm3SbpJvUm/ScJJ
3397 xEnHSclJy0nNSdBJ0knUSdZJ2UncSd9J4UnkSe1J8ErDSsZKyUrMSs9K0krVSthK20reSuFK5ErnSupK
3398 7UrwSvNK9kr5SvxK/0sCSwVLCEsLSw5LEUsUSxdLGksdSyBLI0smSylLLEsvSzJLNUs4SztLPktBS0RL
3399 R0tKS01LUEtTS1ZLWUtcS19LYktlS2hLa0tuS3FLdEt3S3pLfUuAS4NLhkuJS4xLj0uSS5VLmEubS55L
3400 oUukS6dLqkutS7BLs0u2S7lLvEu/S8JLxUvIS8tLzkvRS9RL10vaS91L4EvjS+ZL6UvsS+9L8kv1S/hL
3401 +0wWTCtMLUxBTFtMdUyZTK5MwUzWTNhM9E0rTVVNcE15TYdNiU2bTZ1NqU3ATeVN6k39TglOLE4/TlhO
3402 ZU6BToxOr06zTrVOzE7YTuJPA08YTz1PVk9jT29PlE+uT8JPzk/nT/lQFVAsUEpQZ1B6UJpQplCwUO9R
3403 DlEaUThRTlFlUXhRi1GfUbdRulHUUfBR/FIKUipSLFI6UlJSaVJ8UqZStFK2UtBS3VMAUwRTEFMvU0RT
3404 UFNpU3dTkVOkU7BTzlPqVABUBFQWVDNUP1RBVEpUTVROVFdUWlRbVGRUZ1WYVZtVnVWgVaNVplWpVatV
3405 rVWwVbNVtVW4VbtVvlXBVcRVx1XJVcxVz1XRVdRV11XaVd1V4FXjVeVV6FXrVe5V8VX0VfZV+FX6Vf1W
3406 AFYDVgZWCVYMVg9WEVYUVhdWGlYcVh5WIVYkViZWKFYrVi5WMVY0VjdWOVY7Vj5WQVZEVkdWSlZMVk9W
3407 UlZUVlZWWFZaVlxWXlZgVmJWZVZoVmtWblZwVnNWdlZ5VnxWf1aCVoRWh1aKVo1Wj1aRVpNWlVaYVppW
3408 nFafVqJWpVanVqpWrVawVrNWtla4VrpWvFa+VsBWwlbFVshWy1bOVtBW01bVVthW21bdVuBW41blVuhW
3409 6lbtVu9W8lb1VvdW+Vb7Vv5XAVcDVwVXCFcKVwxXD1cSVxVXGFcbVx1XIFciVyVXLlcxWGJYZVhoWGtY
3410 blhxWHRYd1h6WH1YgFiDWIZYiViMWI9YkliVWJhYm1ieWKFYpFinWKpYrViwWLNYtli5WLxYv1jCWMVY
3411 yFjLWM5Y0VjUWNdY2ljdWOBY41jmWOlY7FjvWPJY9Vj4WPtY/lkBWQRZB1kKWQ1ZEFkTWRZZGVkcWR9Z
3412 IlklWShZK1kuWTFZNFk3WTpZPVlAWUNZRllJWUxZT1lSWVVZWFlbWV5ZYVlkWWdZalltWXBZc1l2WXlZ
3413 fFl/WYJZhVmIWYtZjlmRWZRZl1maWZ1ZoFmjWaZZqVmsWa9Zslm1WbhZu1m+WcFZxFnHWcpZzVnQWdNZ
3414 1lnZWdxZ31niWeVZ6FnrWe5Z8Vn0WfdZ+ln9WgBaA1oGWglaDFoPWhJaFVoYWhtaHlohWiRaJ1oqWi1a
3415 L1oyWjRaNlo5WjxaPlpAWkJaRFpGWklaTFpOWlBaUlpUWlZaWFpbWl1aYFpiWmRaZlpoWmtabVpwWnJa
3416 dFp2WnlafFp+WoBaglqEWoZaiFqKWoxaj1qSWpVamFqbWp5aoVqjWqZaqFqqWqxarlqwWrNatlq5Wrta
3417 vVq/WsFaxFrGWshaylrNWtBa0lrVWtda2lrcWt9a4VrjWuVa51rpWuxa71rxWvRa91r6Wvxa/lsAWwNb
3418 BlsIWwpbDFsOWxFbE1sWWxhbGlscWx5bIVsjWyZbKVssWy9bMVs0WzdbOVs7Wz1bP1tCW0VbR1tJW0xb
3419 T1tRW1NbVltZW1tbXlthW2NbZltoW2pbbVtwW3lbe1t+W4Bbg1uGW4hbiluNW49bkluUW5ZbmFuaW6Nb
3420 pVumW69bsluzW7xbv1vAW8lbzgAAAAAAAAICAAAAAAAAC8MAAAAAAAAAAAAAAAAAAFvdA</bytes>
3421 </object>
3422 </data>
3423 </archive>
@@ -0,0 +1,293 b''
1 // !$*UTF8*$!
2 {
3 archiveVersion = 1;
4 classes = {
5 };
6 objectVersion = 44;
7 objects = {
8
9 /* Begin PBXBuildFile section */
10 77631A270C06C501005415CB /* Python.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 77631A260C06C501005415CB /* Python.framework */; };
11 77631A3F0C0748CF005415CB /* main.py in Resources */ = {isa = PBXBuildFile; fileRef = 77631A3E0C0748CF005415CB /* main.py */; };
12 7790198F0C07548A00326F66 /* IPython1SandboxAppDelegate.py in Resources */ = {isa = PBXBuildFile; fileRef = 7790198E0C07548A00326F66 /* IPython1SandboxAppDelegate.py */; };
13 77C8C1F90C07829500965286 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 77C8C1F70C07829500965286 /* MainMenu.xib */; };
14 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
15 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
16 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
17 /* End PBXBuildFile section */
18
19 /* Begin PBXFileReference section */
20 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
21 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
22 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
23 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
24 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
25 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
26 32CA4F630368D1EE00C91783 /* IPython1Sandbox_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IPython1Sandbox_Prefix.pch; sourceTree = "<group>"; };
27 4CA32F870D8879B100311764 /* IPythonCocoaController Tests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "IPythonCocoaController Tests-Info.plist"; sourceTree = "<group>"; };
28 77631A260C06C501005415CB /* Python.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Python.framework; path = /System/Library/Frameworks/Python.framework; sourceTree = "<absolute>"; };
29 77631A3E0C0748CF005415CB /* main.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = main.py; sourceTree = "<group>"; };
30 7790198E0C07548A00326F66 /* IPython1SandboxAppDelegate.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = IPython1SandboxAppDelegate.py; sourceTree = "<group>"; };
31 77C8C1F80C07829500965286 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = "<group>"; };
32 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
33 8D1107320486CEB800E47090 /* IPython1Sandbox.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = IPython1Sandbox.app; sourceTree = BUILT_PRODUCTS_DIR; };
34 /* End PBXFileReference section */
35
36 /* Begin PBXFrameworksBuildPhase section */
37 8D11072E0486CEB800E47090 /* Frameworks */ = {
38 isa = PBXFrameworksBuildPhase;
39 buildActionMask = 2147483647;
40 files = (
41 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
42 77631A270C06C501005415CB /* Python.framework in Frameworks */,
43 );
44 runOnlyForDeploymentPostprocessing = 0;
45 };
46 /* End PBXFrameworksBuildPhase section */
47
48 /* Begin PBXGroup section */
49 080E96DDFE201D6D7F000001 /* Classes */ = {
50 isa = PBXGroup;
51 children = (
52 7790198E0C07548A00326F66 /* IPython1SandboxAppDelegate.py */,
53 );
54 name = Classes;
55 sourceTree = "<group>";
56 };
57 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
58 isa = PBXGroup;
59 children = (
60 77631A260C06C501005415CB /* Python.framework */,
61 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
62 );
63 name = "Linked Frameworks";
64 sourceTree = "<group>";
65 };
66 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
67 isa = PBXGroup;
68 children = (
69 29B97324FDCFA39411CA2CEA /* AppKit.framework */,
70 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */,
71 29B97325FDCFA39411CA2CEA /* Foundation.framework */,
72 );
73 name = "Other Frameworks";
74 sourceTree = "<group>";
75 };
76 19C28FACFE9D520D11CA2CBB /* Products */ = {
77 isa = PBXGroup;
78 children = (
79 8D1107320486CEB800E47090 /* IPython1Sandbox.app */,
80 );
81 name = Products;
82 sourceTree = "<group>";
83 };
84 29B97314FDCFA39411CA2CEA /* IPython1Sandbox */ = {
85 isa = PBXGroup;
86 children = (
87 080E96DDFE201D6D7F000001 /* Classes */,
88 29B97315FDCFA39411CA2CEA /* Other Sources */,
89 29B97317FDCFA39411CA2CEA /* Resources */,
90 29B97323FDCFA39411CA2CEA /* Frameworks */,
91 19C28FACFE9D520D11CA2CBB /* Products */,
92 4CA32F870D8879B100311764 /* IPythonCocoaController Tests-Info.plist */,
93 );
94 name = IPython1Sandbox;
95 sourceTree = "<group>";
96 };
97 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
98 isa = PBXGroup;
99 children = (
100 32CA4F630368D1EE00C91783 /* IPython1Sandbox_Prefix.pch */,
101 29B97316FDCFA39411CA2CEA /* main.m */,
102 77631A3E0C0748CF005415CB /* main.py */,
103 );
104 name = "Other Sources";
105 sourceTree = "<group>";
106 };
107 29B97317FDCFA39411CA2CEA /* Resources */ = {
108 isa = PBXGroup;
109 children = (
110 77C8C1F70C07829500965286 /* MainMenu.xib */,
111 8D1107310486CEB800E47090 /* Info.plist */,
112 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
113 );
114 name = Resources;
115 sourceTree = "<group>";
116 };
117 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
118 isa = PBXGroup;
119 children = (
120 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
121 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
122 );
123 name = Frameworks;
124 sourceTree = "<group>";
125 };
126 /* End PBXGroup section */
127
128 /* Begin PBXNativeTarget section */
129 8D1107260486CEB800E47090 /* IPython1Sandbox */ = {
130 isa = PBXNativeTarget;
131 buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "IPython1Sandbox" */;
132 buildPhases = (
133 8D1107290486CEB800E47090 /* Resources */,
134 8D11072C0486CEB800E47090 /* Sources */,
135 8D11072E0486CEB800E47090 /* Frameworks */,
136 );
137 buildRules = (
138 );
139 dependencies = (
140 );
141 name = IPython1Sandbox;
142 productInstallPath = "$(HOME)/Applications";
143 productName = IPython1Sandbox;
144 productReference = 8D1107320486CEB800E47090 /* IPython1Sandbox.app */;
145 productType = "com.apple.product-type.application";
146 };
147 /* End PBXNativeTarget section */
148
149 /* Begin PBXProject section */
150 29B97313FDCFA39411CA2CEA /* Project object */ = {
151 isa = PBXProject;
152 buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "IPython1Sandbox" */;
153 compatibilityVersion = "Xcode 3.0";
154 hasScannedForEncodings = 1;
155 mainGroup = 29B97314FDCFA39411CA2CEA /* IPython1Sandbox */;
156 projectDirPath = "";
157 projectRoot = "";
158 targets = (
159 8D1107260486CEB800E47090 /* IPython1Sandbox */,
160 );
161 };
162 /* End PBXProject section */
163
164 /* Begin PBXResourcesBuildPhase section */
165 8D1107290486CEB800E47090 /* Resources */ = {
166 isa = PBXResourcesBuildPhase;
167 buildActionMask = 2147483647;
168 files = (
169 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
170 77631A3F0C0748CF005415CB /* main.py in Resources */,
171 7790198F0C07548A00326F66 /* IPython1SandboxAppDelegate.py in Resources */,
172 77C8C1F90C07829500965286 /* MainMenu.xib in Resources */,
173 );
174 runOnlyForDeploymentPostprocessing = 0;
175 };
176 /* End PBXResourcesBuildPhase section */
177
178 /* Begin PBXSourcesBuildPhase section */
179 8D11072C0486CEB800E47090 /* Sources */ = {
180 isa = PBXSourcesBuildPhase;
181 buildActionMask = 2147483647;
182 files = (
183 8D11072D0486CEB800E47090 /* main.m in Sources */,
184 );
185 runOnlyForDeploymentPostprocessing = 0;
186 };
187 /* End PBXSourcesBuildPhase section */
188
189 /* Begin PBXVariantGroup section */
190 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
191 isa = PBXVariantGroup;
192 children = (
193 089C165DFE840E0CC02AAC07 /* English */,
194 );
195 name = InfoPlist.strings;
196 sourceTree = "<group>";
197 };
198 77C8C1F70C07829500965286 /* MainMenu.xib */ = {
199 isa = PBXVariantGroup;
200 children = (
201 77C8C1F80C07829500965286 /* English */,
202 );
203 name = MainMenu.xib;
204 sourceTree = "<group>";
205 };
206 /* End PBXVariantGroup section */
207
208 /* Begin XCBuildConfiguration section */
209 C01FCF4B08A954540054247B /* Debug */ = {
210 isa = XCBuildConfiguration;
211 buildSettings = {
212 COPY_PHASE_STRIP = NO;
213 CURRENT_PROJECT_VERSION = 1;
214 GCC_DYNAMIC_NO_PIC = NO;
215 GCC_ENABLE_FIX_AND_CONTINUE = YES;
216 GCC_MODEL_TUNING = G5;
217 GCC_OPTIMIZATION_LEVEL = 0;
218 GCC_PRECOMPILE_PREFIX_HEADER = YES;
219 GCC_PREFIX_HEADER = IPython1Sandbox_Prefix.pch;
220 INFOPLIST_FILE = Info.plist;
221 INSTALL_PATH = "$(HOME)/Applications";
222 PRODUCT_NAME = IPython1Sandbox;
223 VERSIONING_SYSTEM = "apple-generic";
224 WRAPPER_EXTENSION = app;
225 ZERO_LINK = YES;
226 };
227 name = Debug;
228 };
229 C01FCF4C08A954540054247B /* Release */ = {
230 isa = XCBuildConfiguration;
231 buildSettings = {
232 CURRENT_PROJECT_VERSION = 1;
233 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
234 GCC_MODEL_TUNING = G5;
235 GCC_PRECOMPILE_PREFIX_HEADER = YES;
236 GCC_PREFIX_HEADER = IPython1Sandbox_Prefix.pch;
237 INFOPLIST_FILE = Info.plist;
238 INSTALL_PATH = "$(HOME)/Applications";
239 PRODUCT_NAME = IPython1Sandbox;
240 VERSIONING_SYSTEM = "apple-generic";
241 WRAPPER_EXTENSION = app;
242 };
243 name = Release;
244 };
245 C01FCF4F08A954540054247B /* Debug */ = {
246 isa = XCBuildConfiguration;
247 buildSettings = {
248 GCC_WARN_ABOUT_RETURN_TYPE = YES;
249 GCC_WARN_UNUSED_VARIABLE = YES;
250 PREBINDING = NO;
251 SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
252 };
253 name = Debug;
254 };
255 C01FCF5008A954540054247B /* Release */ = {
256 isa = XCBuildConfiguration;
257 buildSettings = {
258 ARCHS = (
259 ppc,
260 i386,
261 );
262 GCC_WARN_ABOUT_RETURN_TYPE = YES;
263 GCC_WARN_UNUSED_VARIABLE = YES;
264 PREBINDING = NO;
265 SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
266 };
267 name = Release;
268 };
269 /* End XCBuildConfiguration section */
270
271 /* Begin XCConfigurationList section */
272 C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "IPython1Sandbox" */ = {
273 isa = XCConfigurationList;
274 buildConfigurations = (
275 C01FCF4B08A954540054247B /* Debug */,
276 C01FCF4C08A954540054247B /* Release */,
277 );
278 defaultConfigurationIsVisible = 0;
279 defaultConfigurationName = Release;
280 };
281 C01FCF4E08A954540054247B /* Build configuration list for PBXProject "IPython1Sandbox" */ = {
282 isa = XCConfigurationList;
283 buildConfigurations = (
284 C01FCF4F08A954540054247B /* Debug */,
285 C01FCF5008A954540054247B /* Release */,
286 );
287 defaultConfigurationIsVisible = 0;
288 defaultConfigurationName = Release;
289 };
290 /* End XCConfigurationList section */
291 };
292 rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
293 }
@@ -0,0 +1,39 b''
1 #
2 # IPython1SandboxAppDelegate.py
3 # IPython1Sandbox
4 #
5 # Created by Barry Wark on 3/4/08.
6 # Copyright __MyCompanyName__ 2008. All rights reserved.
7 #
8
9 from Foundation import NSObject, NSPredicate
10 import objc
11 import threading
12
13 from PyObjCTools import AppHelper
14
15 from twisted.internet import reactor
16
17 class IPython1SandboxAppDelegate(NSObject):
18 ipythonController = objc.IBOutlet()
19
20 def applicationShouldTerminate_(self, sender):
21 if reactor.running:
22 reactor.addSystemEventTrigger(
23 'after', 'shutdown', AppHelper.stopEventLoop)
24 reactor.stop()
25 return False
26 return True
27
28
29 def applicationDidFinishLaunching_(self, sender):
30 reactor.interleave(AppHelper.callAfter)
31 assert(reactor.running)
32
33
34 def workspaceFilterPredicate(self):
35 return NSPredicate.predicateWithFormat_("NOT (self.value BEGINSWITH '<')")
36
37
38
39
@@ -0,0 +1,7 b''
1 //
2 // Prefix header for all source files of the 'IPython1Sandbox' target in the 'IPython1Sandbox' project
3 //
4
5 #ifdef __OBJC__
6 #import <Cocoa/Cocoa.h>
7 #endif
@@ -0,0 +1,20 b''
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3 <plist version="1.0">
4 <dict>
5 <key>CFBundleDevelopmentRegion</key>
6 <string>English</string>
7 <key>CFBundleExecutable</key>
8 <string>${EXECUTABLE_NAME}</string>
9 <key>CFBundleIdentifier</key>
10 <string>com.yourcompany.IPythonCocoaController Tests</string>
11 <key>CFBundleInfoDictionaryVersion</key>
12 <string>6.0</string>
13 <key>CFBundlePackageType</key>
14 <string>BNDL</string>
15 <key>CFBundleSignature</key>
16 <string>????</string>
17 <key>CFBundleVersion</key>
18 <string>1.0</string>
19 </dict>
20 </plist>
@@ -0,0 +1,30 b''
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3 <plist version="1.0">
4 <dict>
5 <key>CFBundleDevelopmentRegion</key>
6 <string>English</string>
7 <key>CFBundleExecutable</key>
8 <string>${EXECUTABLE_NAME}</string>
9 <key>CFBundleIconFile</key>
10 <string></string>
11 <key>CFBundleIdentifier</key>
12 <string>com.yourcompany.IPython1Sandbox</string>
13 <key>CFBundleInfoDictionaryVersion</key>
14 <string>6.0</string>
15 <key>CFBundleName</key>
16 <string>${PRODUCT_NAME}</string>
17 <key>CFBundlePackageType</key>
18 <string>APPL</string>
19 <key>CFBundleShortVersionString</key>
20 <string>0.1</string>
21 <key>CFBundleSignature</key>
22 <string>????</string>
23 <key>CFBundleVersion</key>
24 <string>1.0</string>
25 <key>NSMainNibFile</key>
26 <string>MainMenu</string>
27 <key>NSPrincipalClass</key>
28 <string>NSApplication</string>
29 </dict>
30 </plist>
@@ -0,0 +1,49 b''
1 //
2 // main.m
3 // IPython1Sandbox
4 //
5 // Created by Barry Wark on 3/4/08.
6 // Copyright __MyCompanyName__ 2008. All rights reserved.
7 //
8
9 #import <Python/Python.h>
10 #import <Cocoa/Cocoa.h>
11
12 int main(int argc, char *argv[])
13 {
14 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
15
16 NSBundle *mainBundle = [NSBundle mainBundle];
17 NSString *resourcePath = [mainBundle resourcePath];
18 NSArray *pythonPathArray = [NSArray arrayWithObjects: resourcePath, [resourcePath stringByAppendingPathComponent:@"PyObjC"], nil];
19
20 setenv("PYTHONPATH", [[pythonPathArray componentsJoinedByString:@":"] UTF8String], 1);
21
22 NSArray *possibleMainExtensions = [NSArray arrayWithObjects: @"py", @"pyc", @"pyo", nil];
23 NSString *mainFilePath = nil;
24
25 for (NSString *possibleMainExtension in possibleMainExtensions) {
26 mainFilePath = [mainBundle pathForResource: @"main" ofType: possibleMainExtension];
27 if ( mainFilePath != nil ) break;
28 }
29
30 if ( !mainFilePath ) {
31 [NSException raise: NSInternalInconsistencyException format: @"%s:%d main() Failed to find the Main.{py,pyc,pyo} file in the application wrapper's Resources directory.", __FILE__, __LINE__];
32 }
33
34 Py_SetProgramName("/usr/bin/python");
35 Py_Initialize();
36 PySys_SetArgv(argc, (char **)argv);
37
38 const char *mainFilePathPtr = [mainFilePath UTF8String];
39 FILE *mainFile = fopen(mainFilePathPtr, "r");
40 int result = PyRun_SimpleFile(mainFile, (char *)[[mainFilePath lastPathComponent] UTF8String]);
41
42 if ( result != 0 )
43 [NSException raise: NSInternalInconsistencyException
44 format: @"%s:%d main() PyRun_SimpleFile failed with file '%@'. See console for errors.", __FILE__, __LINE__, mainFilePath];
45
46 [pool drain];
47
48 return result;
49 }
@@ -0,0 +1,24 b''
1 #
2 # main.py
3 # IPython1Sandbox
4 #
5 # Created by Barry Wark on 3/4/08.
6 # Copyright __MyCompanyName__ 2008. All rights reserved.
7 #
8
9 #import modules required by application
10 import objc
11 import Foundation
12 import AppKit
13
14 from PyObjCTools import AppHelper
15
16 from twisted.internet import _threadedselect
17 reactor = _threadedselect.install()
18
19 # import modules containing classes required to start application and load MainMenu.nib
20 import IPython1SandboxAppDelegate
21 import IPython.frontend.cocoa.cocoa_frontend
22
23 # pass control to AppKit
24 AppHelper.runEventLoop()
1 NO CONTENT: new file 100644
NO CONTENT: new file 100644
@@ -0,0 +1,27 b''
1 2008-03-14 00:06:49-0700 [-] Log opened.
2 2008-03-14 00:06:49-0700 [-] --> ipython1.frontend.cocoa.tests.test_cocoa_frontend.TestIPythonCocoaControler.testControllerCompletesToken <--
3 2008-03-14 00:06:49-0700 [-] Unhandled error in Deferred:
4 2008-03-14 00:06:49-0700 [-] Unhandled Error
5 Traceback (most recent call last):
6 File "/Library/Python/2.5/site-packages/Twisted-2.5.0_rUnknown-py2.5-macosx-10.3-i386.egg/twisted/internet/utils.py", line 144, in runWithWarningsSuppressed
7 result = f(*a, **kw)
8 File "/Users/barry/Desktop/ipython1-cocoa/ipython1/frontend/cocoa/tests/test_cocoa_frontend.py", line 94, in testControllerCompletesToken
9 self.controller.executeRequest([code]).addCallback(testCompletes)
10 File "/Library/Python/2.5/site-packages/Twisted-2.5.0_rUnknown-py2.5-macosx-10.3-i386.egg/twisted/internet/defer.py", line 196, in addCallback
11 callbackKeywords=kw)
12 File "/Library/Python/2.5/site-packages/Twisted-2.5.0_rUnknown-py2.5-macosx-10.3-i386.egg/twisted/internet/defer.py", line 187, in addCallbacks
13 self._runCallbacks()
14 --- <exception caught here> ---
15 File "/Library/Python/2.5/site-packages/Twisted-2.5.0_rUnknown-py2.5-macosx-10.3-i386.egg/twisted/internet/defer.py", line 325, in _runCallbacks
16 self.result = callback(self.result, *args, **kw)
17 File "/Users/barry/Desktop/ipython1-cocoa/ipython1/frontend/cocoa/tests/test_cocoa_frontend.py", line 89, in testCompletes
18 self.assert_("longNameVariable" in result)
19 File "/Library/Python/2.5/site-packages/Twisted-2.5.0_rUnknown-py2.5-macosx-10.3-i386.egg/twisted/trial/unittest.py", line 136, in failUnless
20 raise self.failureException(msg)
21 twisted.trial.unittest.FailTest: None
22
23 2008-03-14 00:06:49-0700 [-] --> ipython1.frontend.cocoa.tests.test_cocoa_frontend.TestIPythonCocoaControler.testControllerExecutesCode <--
24 2008-03-14 00:06:49-0700 [-] --> ipython1.frontend.cocoa.tests.test_cocoa_frontend.TestIPythonCocoaControler.testControllerInstantiatesIEngineInteractive <--
25 2008-03-14 00:06:49-0700 [-] --> ipython1.frontend.cocoa.tests.test_cocoa_frontend.TestIPythonCocoaControler.testControllerMirrorsUserNSWithValuesAsStrings <--
26 2008-03-14 00:06:49-0700 [-] --> ipython1.frontend.cocoa.tests.test_cocoa_frontend.TestIPythonCocoaControler.testControllerRaisesCompilerErrorForIllegalCode <--
27 2008-03-14 00:06:49-0700 [-] --> ipython1.frontend.cocoa.tests.test_cocoa_frontend.TestIPythonCocoaControler.testControllerReturnsNoneForIncompleteCode <--
@@ -0,0 +1,97 b''
1 # encoding: utf-8
2 """This file contains unittests for the ipython1.frontend.cocoa.cocoa_frontend module.
3
4 Things that should be tested:
5
6 - IPythonCocoaController instantiates an IEngineInteractive
7 - IPythonCocoaController executes code on the engine
8 - IPythonCocoaController returns continuation for incomplete code
9 - IPythonCocoaController returns failure for exceptions raised in executed code
10 - IPythonCocoaController mirrors engine's user_ns
11 """
12 __docformat__ = "restructuredtext en"
13
14 #-------------------------------------------------------------------------------
15 # Copyright (C) 2005 Fernando Perez <fperez@colorado.edu>
16 # Brian E Granger <ellisonbg@gmail.com>
17 # Benjamin Ragan-Kelley <benjaminrk@gmail.com>
18 #
19 # Distributed under the terms of the BSD License. The full license is in
20 # the file COPYING, distributed as part of this software.
21 #-------------------------------------------------------------------------------
22
23 #-------------------------------------------------------------------------------
24 # Imports
25 #-------------------------------------------------------------------------------
26 from ipython1.core.interpreter import Interpreter
27 from ipython1.testutils.parametric import Parametric, parametric
28 from ipython1.core.interpreter import COMPILER_ERROR, INCOMPLETE_INPUT,\
29 COMPLETE_INPUT
30 import ipython1.kernel.engineservice as es
31 from ipython1.testutils.util import DeferredTestCase
32 from twisted.internet.defer import succeed
33 from ipython1.frontend.cocoa.cocoa_frontend import IPythonCocoaController,\
34 IPythonCLITextViewDelegate,\
35 CompilerError
36
37
38 class TestIPythonCocoaControler(DeferredTestCase):
39 """Tests for IPythonCocoaController"""
40
41 def setUp(self):
42 self.controller = IPythonCocoaController.alloc().init()
43 self.controller.awakeFromNib()
44 self.engine = es.EngineService()
45 self.engine.startService()
46
47
48 def tearDown(self):
49 self.controller = None
50 self.engine.stopService()
51
52 def testControllerExecutesCode(self):
53 code ="""5+5"""
54 expected = Interpreter().execute(code)
55 del expected['number']
56 def removeNumberAndID(result):
57 del result['number']
58 del result['id']
59 return result
60 self.assertDeferredEquals(self.controller.executeRequest([code]).addCallback(removeNumberAndID), expected)
61
62 def testControllerReturnsNoneForIncompleteCode(self):
63 code = """def test(a):"""
64 expected = None
65 self.assertDeferredEquals(self.controller.executeRequest([code]), expected)
66
67
68 def testControllerRaisesCompilerErrorForIllegalCode(self):
69 """testControllerRaisesCompilerErrorForIllegalCode"""
70
71 code = """def test() pass"""
72 self.assertDeferredRaises(self.controller.executeRequest([code]), CompilerError)
73
74 def testControllerMirrorsUserNSWithValuesAsStrings(self):
75 code = """userns1=1;userns2=2"""
76 def testControllerUserNS(result):
77 self.assertEquals(self.controller.userNS['userns1'], str(1))
78 self.assertEquals(self.controller.userNS['userns2'], str(2))
79
80 self.controller.executeRequest([code]).addCallback(testControllerUserNS)
81
82
83 def testControllerInstantiatesIEngine(self):
84 self.assert_(es.IEngine.providedBy(self.controller.engine))
85
86 def testControllerCompletesToken(self):
87 code = """longNameVariable=10"""
88 def testCompletes(result):
89 self.assert_("longNameVariable" in result)
90
91 def testCompleteToken(result):
92 self.controller.complete("longNa").addCallback(testCompletes)
93
94 self.controller.executeRequest([code]).addCallback(testCompletes)
95
96
97 Parametric(TestIPythonCocoaControler) No newline at end of file
@@ -0,0 +1,254 b''
1 # encoding: utf-8
2 """
3 FrontEndBase: Base classes for frontends.
4
5 Todo:
6 - synchronous and asynchronous interfaces
7 - adapter to add async to FrontEndBase
8 """
9 __docformat__ = "restructuredtext en"
10
11 #-------------------------------------------------------------------------------
12 # Copyright (C) 2008 Barry Wark <barrywark at gmail _dot_ com>
13 #
14 # Distributed under the terms of the BSD License. The full license is in
15 # the file COPYING, distributed as part of this software.
16 #-------------------------------------------------------------------------------
17
18 #-------------------------------------------------------------------------------
19 # Imports
20 #-------------------------------------------------------------------------------
21 import string
22 import uuid
23
24
25 from IPython.kernel.core.history import FrontEndHistory
26 from IPython.kernel.core.util import Bunch
27
28 from IPython.kernel.engineservice import IEngineCore
29
30 import zope.interface as zi
31
32 import _ast
33
34 ##############################################################################
35 # TEMPORARY!!! fake configuration, while we decide whether to use tconfig or
36 # not
37
38 rc = Bunch()
39 rc.prompt_in1 = r'In [$number]: '
40 rc.prompt_in2 = r'...'
41 rc.prompt_out = r'Out [$number]: '
42
43 ##############################################################################
44
45 class IFrontEnd(zi.Interface):
46 """Interface for frontends. All methods return t.i.d.Deferred"""
47
48 zi.Attribute("input_prompt_template", "string.Template instance substituteable with execute result.")
49 zi.Attribute("output_prompt_template", "string.Template instance substituteable with execute result.")
50 zi.Attribute("continuation_prompt_template", "string.Template instance substituteable with execute result.")
51
52 def __init__(engine=None, history=None):
53 """
54 Parameters:
55 interpreter : IPython.kernel.engineservice.IEngineCore
56 """
57 pass
58
59 def update_cell_prompt(self, result):
60 """Subclass may override to update the input prompt for a block.
61 Since this method will be called as a twisted.internet.defer.Deferred's callback,
62 implementations should return result when finished."""
63
64 return result
65
66 def render_result(self, result):
67 """Render the result of an execute call. Implementors may choose the method of rendering.
68 For example, a notebook-style frontend might render a Chaco plot inline.
69
70 Parameters:
71 result : dict (result of IEngineBase.execute )
72
73 Result:
74 Output of frontend rendering
75 """
76
77 return result
78
79 def render_error(self, failure):
80 """Subclasses must override to render the failure. Since this method will be called as a
81 twisted.internet.defer.Deferred's callback, implementations should return result
82 when finished."""
83
84 return failure
85
86 # TODO: finish interface
87
88 class FrontEndBase(object):
89 """
90 FrontEndBase manages the state tasks for a CLI frontend:
91 - Input and output history management
92 - Input/continuation and output prompt generation
93
94 Some issues (due to possibly unavailable engine):
95 - How do we get the current cell number for the engine?
96 - How do we handle completions?
97 """
98
99 zi.implements(IFrontEnd)
100
101 history_cursor = 0
102
103 current_indent_level = 0
104
105
106 input_prompt_template = string.Template(rc.prompt_in1)
107 output_prompt_template = string.Template(rc.prompt_out)
108 continuation_prompt_template = string.Template(rc.prompt_in2)
109
110 def __init__(self, engine=None, history=None):
111 assert(engine==None or IEngineCore.providedBy(engine))
112 self.engine = IEngineCore(engine)
113 if history is None:
114 self.history = FrontEndHistory(input_cache=[''])
115 else:
116 self.history = history
117
118
119 def inputPrompt(self, result={}):
120 """Returns the current input prompt
121
122 It would be great to use ipython1.core.prompts.Prompt1 here
123 """
124
125 result.setdefault('number','')
126
127 return self.input_prompt_template.safe_substitute(result)
128
129
130 def continuationPrompt(self):
131 """Returns the current continuation prompt"""
132
133 return self.continuation_prompt_template.safe_substitute()
134
135 def outputPrompt(self, result):
136 """Returns the output prompt for result"""
137
138 return self.output_prompt_template.safe_substitute(result)
139
140
141 def is_complete(self, block):
142 """Determine if block is complete.
143
144 Parameters
145 block : string
146
147 Result
148 True if block can be sent to the engine without compile errors.
149 False otherwise.
150 """
151
152 try:
153 self.compile_ast(block)
154 return True
155 except:
156 return False
157
158
159 def compile_ast(self, block):
160 """Compile block to an AST
161
162 Parameters:
163 block : str
164
165 Result:
166 AST
167
168 Throws:
169 Exception if block cannot be compiled
170 """
171
172 return compile(block, "<string>", "exec", _ast.PyCF_ONLY_AST)
173
174
175 def execute(self, block, blockID=None):
176 """Execute the block and return result.
177
178 Parameters:
179 block : {str, AST}
180 blockID : any
181 Caller may provide an ID to identify this block. result['blockID'] := blockID
182
183 Result:
184 Deferred result of self.interpreter.execute
185 """
186 # if(not isinstance(block, _ast.AST)):
187 # block = self.compile_ast(block)
188
189 if(blockID == None):
190 blockID = uuid.uuid4() #random UUID
191
192 d = self.engine.execute(block)
193 d.addCallback(self._add_block_id, blockID)
194 d.addCallback(self.update_cell_prompt)
195 d.addCallbacks(self.render_result, errback=self.render_error)
196
197 return d
198
199 def _add_block_id(self, result, blockID):
200 """add_block_id"""
201
202 result['blockID'] = blockID
203
204 return result
205
206
207 def get_history_item_previous(self, current_block):
208 """ Returns previous history string and decrement history cursor.
209 """
210 command = self.history.get_history_item(self.history_cursor - 1)
211 if command is not None:
212 self.history.input_cache[self.history_cursor] = current_block
213 self.history_cursor -= 1
214 return command
215
216
217 def get_history_item_next(self, current_block):
218 """ Returns next history string and increment history cursor.
219 """
220 command = self.history.get_history_item(self.history_cursor + 1)
221 if command is not None:
222 self.history.input_cache[self.history_cursor] = current_block
223 self.history_cursor += 1
224 return command
225
226 ###
227 # Subclasses probably want to override these methods...
228 ###
229
230 def update_cell_prompt(self, result):
231 """Subclass may override to update the input prompt for a block.
232 Since this method will be called as a twisted.internet.defer.Deferred's callback,
233 implementations should return result when finished."""
234
235 return result
236
237
238 def render_result(self, result):
239 """Subclasses must override to render result. Since this method will be called as a
240 twisted.internet.defer.Deferred's callback, implementations should return result
241 when finished."""
242
243 return result
244
245
246 def render_error(self, failure):
247 """Subclasses must override to render the failure. Since this method will be called as a
248 twisted.internet.defer.Deferred's callback, implementations should return result
249 when finished."""
250
251 return failure
252
253
254
1 NO CONTENT: new file 100644
NO CONTENT: new file 100644
@@ -0,0 +1,114 b''
1 # encoding: utf-8
2
3 """This file contains unittests for the frontendbase module."""
4
5 __docformat__ = "restructuredtext en"
6
7 #-------------------------------------------------------------------------------
8 # Copyright (C) 2008 The IPython Development Team
9 #
10 # Distributed under the terms of the BSD License. The full license is in
11 # the file COPYING, distributed as part of this software.
12 #-------------------------------------------------------------------------------
13
14 #-------------------------------------------------------------------------------
15 # Imports
16 #-------------------------------------------------------------------------------
17
18 import unittest
19 from IPython.frontend import frontendbase
20 from IPython.kernel.engineservice import EngineService
21
22 class FrontEndCallbackChecker(frontendbase.FrontEndBase):
23 """FrontEndBase subclass for checking callbacks"""
24 def __init__(self, engine=None, history=None):
25 super(FrontEndCallbackChecker, self).__init__(engine=engine, history=history)
26 self.updateCalled = False
27 self.renderResultCalled = False
28 self.renderErrorCalled = False
29
30 def update_cell_prompt(self, result):
31 self.updateCalled = True
32 return result
33
34 def render_result(self, result):
35 self.renderResultCalled = True
36 return result
37
38
39 def render_error(self, failure):
40 self.renderErrorCalled = True
41 return failure
42
43
44
45
46 class TestFrontendBase(unittest.TestCase):
47 def setUp(self):
48 """Setup the EngineService and FrontEndBase"""
49
50 self.fb = FrontEndCallbackChecker(engine=EngineService())
51
52
53 def test_implementsIFrontEnd(self):
54 assert(frontendbase.IFrontEnd.implementedBy(frontendbase.FrontEndBase))
55
56
57 def test_is_completeReturnsFalseForIncompleteBlock(self):
58 """"""
59
60 block = """def test(a):"""
61
62 assert(self.fb.is_complete(block) == False)
63
64 def test_is_completeReturnsTrueForCompleteBlock(self):
65 """"""
66
67 block = """def test(a): pass"""
68
69 assert(self.fb.is_complete(block))
70
71 block = """a=3"""
72
73 assert(self.fb.is_complete(block))
74
75
76 def test_blockIDAddedToResult(self):
77 block = """3+3"""
78
79 d = self.fb.execute(block, blockID='TEST_ID')
80
81 d.addCallback(self.checkBlockID, expected='TEST_ID')
82
83 def checkBlockID(self, result, expected=""):
84 assert(result['blockID'] == expected)
85
86
87 def test_callbacksAddedToExecuteRequest(self):
88 """test that
89 update_cell_prompt
90 render_result
91
92 are added to execute request
93 """
94
95 d = self.fb.execute("10+10")
96 d.addCallback(self.checkCallbacks)
97
98
99 def checkCallbacks(self, result):
100 assert(self.fb.updateCalled)
101 assert(self.fb.renderResultCalled)
102
103
104 def test_errorCallbackAddedToExecuteRequest(self):
105 """test that render_error called on execution error"""
106
107 d = self.fb.execute("raise Exception()")
108 d.addCallback(self.checkRenderError)
109
110 def checkRenderError(self, result):
111 assert(self.fb.renderErrorCalled)
112
113 # TODO: add tests for history
114
@@ -852,13 +852,16 b' class ThreadedEngineService(EngineService):'
852
852
853 def __init__(self, shellClass=Interpreter, mpi=None):
853 def __init__(self, shellClass=Interpreter, mpi=None):
854 EngineService.__init__(self, shellClass, mpi)
854 EngineService.__init__(self, shellClass, mpi)
855
856
857 def execute(self, lines):
855 # Only import this if we are going to use this class
858 # Only import this if we are going to use this class
856 from twisted.internet import threads
859 from twisted.internet import threads
857
860
858 def execute(self, lines):
861 msg = {'engineid':self.id,
859 msg = """engine: %r
862 'method':'execute',
860 method: execute(lines)
863 'args':[lines]}
861 lines = %s""" % (self.id, lines)
864
862 d = threads.deferToThread(self.executeAndRaise, msg, self.shell.execute, lines)
865 d = threads.deferToThread(self.shell.execute, lines)
863 d.addCallback(self.addIDToResult)
866 d.addCallback(self.addIDToResult)
864 return d
867 return d
General Comments 0
You need to be logged in to leave comments. Login now