##// END OF EJS Templates
updated Basic Output notebook with new %%capture
Paul Ivanov -
Show More
@@ -1,162 +1,173 b''
1 # encoding: utf-8
1 # encoding: utf-8
2 """
2 """
3 IO capturing utilities.
3 IO capturing utilities.
4 """
4 """
5
5
6 #-----------------------------------------------------------------------------
6 #-----------------------------------------------------------------------------
7 # Copyright (C) 2013 The IPython Development Team
7 # Copyright (C) 2013 The IPython Development Team
8 #
8 #
9 # Distributed under the terms of the BSD License. The full license is in
9 # Distributed under the terms of the BSD License. The full license is in
10 # the file COPYING, distributed as part of this software.
10 # the file COPYING, distributed as part of this software.
11 #-----------------------------------------------------------------------------
11 #-----------------------------------------------------------------------------
12 from __future__ import print_function
12 from __future__ import print_function
13
13
14 #-----------------------------------------------------------------------------
14 #-----------------------------------------------------------------------------
15 # Imports
15 # Imports
16 #-----------------------------------------------------------------------------
16 #-----------------------------------------------------------------------------
17
17
18 import sys
18 import sys
19 from StringIO import StringIO
19 from StringIO import StringIO
20
20
21 #-----------------------------------------------------------------------------
21 #-----------------------------------------------------------------------------
22 # Classes and functions
22 # Classes and functions
23 #-----------------------------------------------------------------------------
23 #-----------------------------------------------------------------------------
24
24
25
25
26 class RichOutput(object):
26 class RichOutput(object):
27 def __init__(self, source, data, metadata):
27 def __init__(self, source, data, metadata):
28 self.source = source
28 self.source = source
29 self.data = data or {}
29 self.data = data or {}
30 self.metadata = metadata or {}
30 self.metadata = metadata or {}
31
31
32 def display(self):
32 def display(self):
33 from IPython.display import publish_display_data
33 from IPython.display import publish_display_data
34 publish_display_data(self.source, self.data, self.metadata)
34 publish_display_data(self.source, self.data, self.metadata)
35
35
36 def _repr_mime_(self, mime):
36 def _repr_mime_(self, mime):
37 if mime not in self.data:
37 if mime not in self.data:
38 return
38 return
39 data = self.data[mime]
39 data = self.data[mime]
40 if mime in self.metadata:
40 if mime in self.metadata:
41 return data, self.metadata[mime]
41 return data, self.metadata[mime]
42 else:
42 else:
43 return data
43 return data
44
44
45 def _repr_html_(self):
45 def _repr_html_(self):
46 return self._repr_mime_("text/html")
46 return self._repr_mime_("text/html")
47
47
48 def _repr_latex_(self):
48 def _repr_latex_(self):
49 return self._repr_mime_("text/latex")
49 return self._repr_mime_("text/latex")
50
50
51 def _repr_json_(self):
51 def _repr_json_(self):
52 return self._repr_mime_("application/json")
52 return self._repr_mime_("application/json")
53
53
54 def _repr_javascript_(self):
54 def _repr_javascript_(self):
55 return self._repr_mime_("application/javascript")
55 return self._repr_mime_("application/javascript")
56
56
57 def _repr_png_(self):
57 def _repr_png_(self):
58 return self._repr_mime_("image/png")
58 return self._repr_mime_("image/png")
59
59
60 def _repr_jpeg_(self):
60 def _repr_jpeg_(self):
61 return self._repr_mime_("image/jpg")
61 return self._repr_mime_("image/jpg")
62
62
63 def _repr_svg_(self):
63 def _repr_svg_(self):
64 return self._repr_mime_("image/svg+xml")
64 return self._repr_mime_("image/svg+xml")
65
65
66
66
67 class CapturedIO(object):
67 class CapturedIO(object):
68 """Simple object for containing captured stdout/err and rich display StringIO objects
68 """Simple object for containing captured stdout/err and rich display StringIO objects
69
69
70 Each instance `c` has three attributes:
70 Each instance `c` has three attributes:
71
71
72 c.stdout : standard output as a string
72 c.stdout : standard output as a string
73 c.stderr : standard error as a string
73 c.stderr : standard error as a string
74 c.outputs: a list of rich display outputs
74 c.outputs: a list of rich display outputs
75
75
76 Additionally, there's a `c.show()` method which will print all of the
76 Additionally, there's a `c.show()` method which will print all of the
77 above in the same order, and can be invoked simply via `c()`.
77 above in the same order, and can be invoked simply via `c()`.
78 """
78 """
79
79
80 def __init__(self, stdout, stderr, outputs=None):
80 def __init__(self, stdout, stderr, outputs=None):
81 self._stdout = stdout
81 self._stdout = stdout
82 self._stderr = stderr
82 self._stderr = stderr
83 if outputs is None:
83 if outputs is None:
84 outputs = []
84 outputs = []
85 self._outputs = outputs
85 self._outputs = outputs
86
86
87 def __str__(self):
87 def __str__(self):
88 return self.stdout
88 return self.stdout
89
89
90 @property
90 @property
91 def stdout(self):
91 def stdout(self):
92 "Captured standard output"
92 if not self._stdout:
93 if not self._stdout:
93 return ''
94 return ''
94 return self._stdout.getvalue()
95 return self._stdout.getvalue()
95
96
96 @property
97 @property
97 def stderr(self):
98 def stderr(self):
99 "Captured standard error"
98 if not self._stderr:
100 if not self._stderr:
99 return ''
101 return ''
100 return self._stderr.getvalue()
102 return self._stderr.getvalue()
101
103
102 @property
104 @property
103 def outputs(self):
105 def outputs(self):
106 """A list of the captured rich display outputs, if any.
107
108 If you have a CapturedIO object `c`, these can be displayed in IPython
109 using:
110
111 from IPython.display import display
112 for o in c.outputs:
113 display(o)
114 """
104 return [ RichOutput(s, d, md) for s, d, md in self._outputs ]
115 return [ RichOutput(s, d, md) for s, d, md in self._outputs ]
105
116
106 def show(self):
117 def show(self):
107 """write my output to sys.stdout/err as appropriate"""
118 """write my output to sys.stdout/err as appropriate"""
108 sys.stdout.write(self.stdout)
119 sys.stdout.write(self.stdout)
109 sys.stderr.write(self.stderr)
120 sys.stderr.write(self.stderr)
110 sys.stdout.flush()
121 sys.stdout.flush()
111 sys.stderr.flush()
122 sys.stderr.flush()
112 for source, data, metadata in self._outputs:
123 for source, data, metadata in self._outputs:
113 RichOutput(source, data, metadata).display()
124 RichOutput(source, data, metadata).display()
114
125
115 __call__ = show
126 __call__ = show
116
127
117
128
118 class capture_output(object):
129 class capture_output(object):
119 """context manager for capturing stdout/err"""
130 """context manager for capturing stdout/err"""
120 stdout = True
131 stdout = True
121 stderr = True
132 stderr = True
122 display = True
133 display = True
123
134
124 def __init__(self, stdout=True, stderr=True, display=True):
135 def __init__(self, stdout=True, stderr=True, display=True):
125 self.stdout = stdout
136 self.stdout = stdout
126 self.stderr = stderr
137 self.stderr = stderr
127 self.display = display
138 self.display = display
128 self.shell = None
139 self.shell = None
129
140
130 def __enter__(self):
141 def __enter__(self):
131 from IPython.core.getipython import get_ipython
142 from IPython.core.getipython import get_ipython
132 from IPython.core.displaypub import CapturingDisplayPublisher
143 from IPython.core.displaypub import CapturingDisplayPublisher
133
144
134 self.sys_stdout = sys.stdout
145 self.sys_stdout = sys.stdout
135 self.sys_stderr = sys.stderr
146 self.sys_stderr = sys.stderr
136
147
137 if self.display:
148 if self.display:
138 self.shell = get_ipython()
149 self.shell = get_ipython()
139 if self.shell is None:
150 if self.shell is None:
140 self.save_display_pub = None
151 self.save_display_pub = None
141 self.display = False
152 self.display = False
142
153
143 stdout = stderr = outputs = None
154 stdout = stderr = outputs = None
144 if self.stdout:
155 if self.stdout:
145 stdout = sys.stdout = StringIO()
156 stdout = sys.stdout = StringIO()
146 if self.stderr:
157 if self.stderr:
147 stderr = sys.stderr = StringIO()
158 stderr = sys.stderr = StringIO()
148 if self.display:
159 if self.display:
149 self.save_display_pub = self.shell.display_pub
160 self.save_display_pub = self.shell.display_pub
150 self.shell.display_pub = CapturingDisplayPublisher()
161 self.shell.display_pub = CapturingDisplayPublisher()
151 outputs = self.shell.display_pub.outputs
162 outputs = self.shell.display_pub.outputs
152
163
153
164
154 return CapturedIO(stdout, stderr, outputs)
165 return CapturedIO(stdout, stderr, outputs)
155
166
156 def __exit__(self, exc_type, exc_value, traceback):
167 def __exit__(self, exc_type, exc_value, traceback):
157 sys.stdout = self.sys_stdout
168 sys.stdout = self.sys_stdout
158 sys.stderr = self.sys_stderr
169 sys.stderr = self.sys_stderr
159 if self.display and self.shell:
170 if self.display and self.shell:
160 self.shell.display_pub = self.save_display_pub
171 self.shell.display_pub = self.save_display_pub
161
172
162
173
@@ -1,1163 +1,1178 b''
1 {
1 {
2 "metadata": {
2 "metadata": {
3 "name": ""
3 "name": ""
4 },
4 },
5 "nbformat": 3,
5 "nbformat": 3,
6 "nbformat_minor": 0,
6 "nbformat_minor": 0,
7 "worksheets": [
7 "worksheets": [
8 {
8 {
9 "cells": [
9 "cells": [
10 {
10 {
11 "cell_type": "heading",
11 "cell_type": "heading",
12 "level": 1,
12 "level": 1,
13 "metadata": {},
13 "metadata": {},
14 "source": [
14 "source": [
15 "Basic Output"
15 "Basic Output"
16 ]
16 ]
17 },
17 },
18 {
18 {
19 "cell_type": "markdown",
19 "cell_type": "markdown",
20 "metadata": {},
20 "metadata": {},
21 "source": [
21 "source": [
22 "When a cell is run, it can generate *output*. In IPython, the definition of output is quite general; it can be text, images, LaTeX, HTML or JSON. All output is displayed below the code that generated it, in the *output area*.\n",
22 "When a cell is run, it can generate *output*. In IPython, the definition of output is quite general; it can be text, images, LaTeX, HTML or JSON. All output is displayed below the code that generated it, in the *output area*.\n",
23 "\n",
23 "\n",
24 "This Notebook describes the basics of output and shows how the `stdout/stderr` streams are handled."
24 "This Notebook describes the basics of output and shows how the `stdout/stderr` streams are handled."
25 ]
25 ]
26 },
26 },
27 {
27 {
28 "cell_type": "heading",
28 "cell_type": "heading",
29 "level": 2,
29 "level": 2,
30 "metadata": {},
30 "metadata": {},
31 "source": [
31 "source": [
32 "Displayhook"
32 "Displayhook"
33 ]
33 ]
34 },
34 },
35 {
35 {
36 "cell_type": "markdown",
36 "cell_type": "markdown",
37 "metadata": {},
37 "metadata": {},
38 "source": [
38 "source": [
39 "When a Python object is returned by an expression, Python's `displayhook` mechanism is triggered. In IPython, this results in an output prompt, such as `Out[2]`. These objects are then available under the variables:\n",
39 "When a Python object is returned by an expression, Python's `displayhook` mechanism is triggered. In IPython, this results in an output prompt, such as `Out[2]`. These objects are then available under the variables:\n",
40 "\n",
40 "\n",
41 "* `_` (last output)\n",
41 "* `_` (last output)\n",
42 "* `__` (second to last output)\n",
42 "* `__` (second to last output)\n",
43 "* `_N` (`Out[N]`)"
43 "* `_N` (`Out[N]`)"
44 ]
44 ]
45 },
45 },
46 {
46 {
47 "cell_type": "code",
47 "cell_type": "code",
48 "collapsed": false,
48 "collapsed": false,
49 "input": [
49 "input": [
50 "import numpy as np\n",
50 "import numpy as np\n",
51 "import sys"
51 "import sys"
52 ],
52 ],
53 "language": "python",
53 "language": "python",
54 "metadata": {},
54 "metadata": {},
55 "outputs": [],
55 "outputs": [],
56 "prompt_number": 1
56 "prompt_number": 1
57 },
57 },
58 {
58 {
59 "cell_type": "code",
59 "cell_type": "code",
60 "collapsed": false,
60 "collapsed": false,
61 "input": [
61 "input": [
62 "np.random.rand(10)"
62 "np.random.rand(10)"
63 ],
63 ],
64 "language": "python",
64 "language": "python",
65 "metadata": {},
65 "metadata": {},
66 "outputs": [
66 "outputs": [
67 {
67 {
68 "metadata": {},
68 "metadata": {},
69 "output_type": "pyout",
69 "output_type": "pyout",
70 "prompt_number": 2,
70 "prompt_number": 2,
71 "text": [
71 "text": [
72 "array([ 0.75222263, 0.72102181, 0.15122973, 0.00386071, 0.21584229,\n",
72 "array([ 0.75222263, 0.72102181, 0.15122973, 0.00386071, 0.21584229,\n",
73 " 0.72508214, 0.16864276, 0.96639874, 0.92500381, 0.30806583])"
73 " 0.72508214, 0.16864276, 0.96639874, 0.92500381, 0.30806583])"
74 ]
74 ]
75 }
75 }
76 ],
76 ],
77 "prompt_number": 2
77 "prompt_number": 2
78 },
78 },
79 {
79 {
80 "cell_type": "code",
80 "cell_type": "code",
81 "collapsed": false,
81 "collapsed": false,
82 "input": [
82 "input": [
83 "np.sin(_)"
83 "np.sin(_)"
84 ],
84 ],
85 "language": "python",
85 "language": "python",
86 "metadata": {},
86 "metadata": {},
87 "outputs": [
87 "outputs": [
88 {
88 {
89 "metadata": {},
89 "metadata": {},
90 "output_type": "pyout",
90 "output_type": "pyout",
91 "prompt_number": 3,
91 "prompt_number": 3,
92 "text": [
92 "text": [
93 "array([ 0.68326335, 0.66015253, 0.15065394, 0.0038607 , 0.21417025,\n",
93 "array([ 0.68326335, 0.66015253, 0.15065394, 0.0038607 , 0.21417025,\n",
94 " 0.66319692, 0.16784452, 0.82284458, 0.79862306, 0.3032161 ])"
94 " 0.66319692, 0.16784452, 0.82284458, 0.79862306, 0.3032161 ])"
95 ]
95 ]
96 }
96 }
97 ],
97 ],
98 "prompt_number": 3
98 "prompt_number": 3
99 },
99 },
100 {
100 {
101 "cell_type": "heading",
101 "cell_type": "heading",
102 "level": 2,
102 "level": 2,
103 "metadata": {},
103 "metadata": {},
104 "source": [
104 "source": [
105 "sys.stdout and sys.stderr"
105 "sys.stdout and sys.stderr"
106 ]
106 ]
107 },
107 },
108 {
108 {
109 "cell_type": "markdown",
109 "cell_type": "markdown",
110 "metadata": {},
110 "metadata": {},
111 "source": [
111 "source": [
112 "The stdout and stderr streams are displayed as text in the output area."
112 "The stdout and stderr streams are displayed as text in the output area."
113 ]
113 ]
114 },
114 },
115 {
115 {
116 "cell_type": "code",
116 "cell_type": "code",
117 "collapsed": false,
117 "collapsed": false,
118 "input": [
118 "input": [
119 "print(\"hi, stdout\")"
119 "print(\"hi, stdout\")"
120 ],
120 ],
121 "language": "python",
121 "language": "python",
122 "metadata": {},
122 "metadata": {},
123 "outputs": [
123 "outputs": [
124 {
124 {
125 "output_type": "stream",
125 "output_type": "stream",
126 "stream": "stdout",
126 "stream": "stdout",
127 "text": [
127 "text": [
128 "hi, stdout\n"
128 "hi, stdout\n"
129 ]
129 ]
130 }
130 }
131 ],
131 ],
132 "prompt_number": 4
132 "prompt_number": 4
133 },
133 },
134 {
134 {
135 "cell_type": "code",
135 "cell_type": "code",
136 "collapsed": false,
136 "collapsed": false,
137 "input": [
137 "input": [
138 "from __future__ import print_function\n",
138 "from __future__ import print_function\n",
139 "print('hi, stderr', file=sys.stderr)"
139 "print('hi, stderr', file=sys.stderr)"
140 ],
140 ],
141 "language": "python",
141 "language": "python",
142 "metadata": {},
142 "metadata": {},
143 "outputs": [
143 "outputs": [
144 {
144 {
145 "output_type": "stream",
145 "output_type": "stream",
146 "stream": "stderr",
146 "stream": "stderr",
147 "text": [
147 "text": [
148 "hi, stderr\n"
148 "hi, stderr\n"
149 ]
149 ]
150 }
150 }
151 ],
151 ],
152 "prompt_number": 5
152 "prompt_number": 5
153 },
153 },
154 {
154 {
155 "cell_type": "heading",
155 "cell_type": "heading",
156 "level": 2,
156 "level": 2,
157 "metadata": {},
157 "metadata": {},
158 "source": [
158 "source": [
159 "Output is asynchronous"
159 "Output is asynchronous"
160 ]
160 ]
161 },
161 },
162 {
162 {
163 "cell_type": "markdown",
163 "cell_type": "markdown",
164 "metadata": {},
164 "metadata": {},
165 "source": [
165 "source": [
166 "All output is displayed asynchronously as it is generated in the Kernel. If you execute the next cell, you will see the output one piece at a time, not all at the end."
166 "All output is displayed asynchronously as it is generated in the Kernel. If you execute the next cell, you will see the output one piece at a time, not all at the end."
167 ]
167 ]
168 },
168 },
169 {
169 {
170 "cell_type": "code",
170 "cell_type": "code",
171 "collapsed": false,
171 "collapsed": false,
172 "input": [
172 "input": [
173 "import time, sys\n",
173 "import time, sys\n",
174 "for i in range(8):\n",
174 "for i in range(8):\n",
175 " print(i)\n",
175 " print(i)\n",
176 " time.sleep(0.5)"
176 " time.sleep(0.5)"
177 ],
177 ],
178 "language": "python",
178 "language": "python",
179 "metadata": {},
179 "metadata": {},
180 "outputs": [
180 "outputs": [
181 {
181 {
182 "output_type": "stream",
182 "output_type": "stream",
183 "stream": "stdout",
183 "stream": "stdout",
184 "text": [
184 "text": [
185 "0\n",
185 "0\n",
186 "1"
186 "1"
187 ]
187 ]
188 },
188 },
189 {
189 {
190 "output_type": "stream",
190 "output_type": "stream",
191 "stream": "stdout",
191 "stream": "stdout",
192 "text": [
192 "text": [
193 "\n",
193 "\n",
194 "2"
194 "2"
195 ]
195 ]
196 },
196 },
197 {
197 {
198 "output_type": "stream",
198 "output_type": "stream",
199 "stream": "stdout",
199 "stream": "stdout",
200 "text": [
200 "text": [
201 "\n",
201 "\n",
202 "3"
202 "3"
203 ]
203 ]
204 },
204 },
205 {
205 {
206 "output_type": "stream",
206 "output_type": "stream",
207 "stream": "stdout",
207 "stream": "stdout",
208 "text": [
208 "text": [
209 "\n",
209 "\n",
210 "4"
210 "4"
211 ]
211 ]
212 },
212 },
213 {
213 {
214 "output_type": "stream",
214 "output_type": "stream",
215 "stream": "stdout",
215 "stream": "stdout",
216 "text": [
216 "text": [
217 "\n",
217 "\n",
218 "5"
218 "5"
219 ]
219 ]
220 },
220 },
221 {
221 {
222 "output_type": "stream",
222 "output_type": "stream",
223 "stream": "stdout",
223 "stream": "stdout",
224 "text": [
224 "text": [
225 "\n",
225 "\n",
226 "6"
226 "6"
227 ]
227 ]
228 },
228 },
229 {
229 {
230 "output_type": "stream",
230 "output_type": "stream",
231 "stream": "stdout",
231 "stream": "stdout",
232 "text": [
232 "text": [
233 "\n",
233 "\n",
234 "7"
234 "7"
235 ]
235 ]
236 },
236 },
237 {
237 {
238 "output_type": "stream",
238 "output_type": "stream",
239 "stream": "stdout",
239 "stream": "stdout",
240 "text": [
240 "text": [
241 "\n"
241 "\n"
242 ]
242 ]
243 }
243 }
244 ],
244 ],
245 "prompt_number": 6
245 "prompt_number": 6
246 },
246 },
247 {
247 {
248 "cell_type": "heading",
248 "cell_type": "heading",
249 "level": 2,
249 "level": 2,
250 "metadata": {},
250 "metadata": {},
251 "source": [
251 "source": [
252 "Large outputs"
252 "Large outputs"
253 ]
253 ]
254 },
254 },
255 {
255 {
256 "cell_type": "markdown",
256 "cell_type": "markdown",
257 "metadata": {},
257 "metadata": {},
258 "source": [
258 "source": [
259 "To better handle large outputs, the output area can be collapsed. Run the following cell and then single- or double- click on the active area to the left of the output:"
259 "To better handle large outputs, the output area can be collapsed. Run the following cell and then single- or double- click on the active area to the left of the output:"
260 ]
260 ]
261 },
261 },
262 {
262 {
263 "cell_type": "code",
263 "cell_type": "code",
264 "collapsed": false,
264 "collapsed": false,
265 "input": [
265 "input": [
266 "for i in range(50):\n",
266 "for i in range(50):\n",
267 " print(i)"
267 " print(i)"
268 ],
268 ],
269 "language": "python",
269 "language": "python",
270 "metadata": {},
270 "metadata": {},
271 "outputs": [
271 "outputs": [
272 {
272 {
273 "output_type": "stream",
273 "output_type": "stream",
274 "stream": "stdout",
274 "stream": "stdout",
275 "text": [
275 "text": [
276 "0\n",
276 "0\n",
277 "1\n",
277 "1\n",
278 "2\n",
278 "2\n",
279 "3\n",
279 "3\n",
280 "4\n",
280 "4\n",
281 "5\n",
281 "5\n",
282 "6\n",
282 "6\n",
283 "7\n",
283 "7\n",
284 "8\n",
284 "8\n",
285 "9\n",
285 "9\n",
286 "10\n",
286 "10\n",
287 "11\n",
287 "11\n",
288 "12\n",
288 "12\n",
289 "13\n",
289 "13\n",
290 "14\n",
290 "14\n",
291 "15\n",
291 "15\n",
292 "16\n",
292 "16\n",
293 "17\n",
293 "17\n",
294 "18\n",
294 "18\n",
295 "19\n",
295 "19\n",
296 "20\n",
296 "20\n",
297 "21\n",
297 "21\n",
298 "22\n",
298 "22\n",
299 "23\n",
299 "23\n",
300 "24\n",
300 "24\n",
301 "25\n",
301 "25\n",
302 "26\n",
302 "26\n",
303 "27\n",
303 "27\n",
304 "28\n",
304 "28\n",
305 "29\n",
305 "29\n",
306 "30\n",
306 "30\n",
307 "31\n",
307 "31\n",
308 "32\n",
308 "32\n",
309 "33\n",
309 "33\n",
310 "34\n",
310 "34\n",
311 "35\n",
311 "35\n",
312 "36\n",
312 "36\n",
313 "37\n",
313 "37\n",
314 "38\n",
314 "38\n",
315 "39\n",
315 "39\n",
316 "40\n",
316 "40\n",
317 "41\n",
317 "41\n",
318 "42\n",
318 "42\n",
319 "43\n",
319 "43\n",
320 "44\n",
320 "44\n",
321 "45\n",
321 "45\n",
322 "46\n",
322 "46\n",
323 "47\n",
323 "47\n",
324 "48\n",
324 "48\n",
325 "49\n"
325 "49\n"
326 ]
326 ]
327 }
327 }
328 ],
328 ],
329 "prompt_number": 7
329 "prompt_number": 7
330 },
330 },
331 {
331 {
332 "cell_type": "markdown",
332 "cell_type": "markdown",
333 "metadata": {},
333 "metadata": {},
334 "source": [
334 "source": [
335 "Beyond a certain point, output will scroll automatically:"
335 "Beyond a certain point, output will scroll automatically:"
336 ]
336 ]
337 },
337 },
338 {
338 {
339 "cell_type": "code",
339 "cell_type": "code",
340 "collapsed": false,
340 "collapsed": false,
341 "input": [
341 "input": [
342 "for i in range(500):\n",
342 "for i in range(500):\n",
343 " print(2**i - 1)"
343 " print(2**i - 1)"
344 ],
344 ],
345 "language": "python",
345 "language": "python",
346 "metadata": {},
346 "metadata": {},
347 "outputs": [
347 "outputs": [
348 {
348 {
349 "output_type": "stream",
349 "output_type": "stream",
350 "stream": "stdout",
350 "stream": "stdout",
351 "text": [
351 "text": [
352 "0\n",
352 "0\n",
353 "1\n",
353 "1\n",
354 "3\n",
354 "3\n",
355 "7\n",
355 "7\n",
356 "15\n",
356 "15\n",
357 "31\n",
357 "31\n",
358 "63\n",
358 "63\n",
359 "127\n",
359 "127\n",
360 "255\n",
360 "255\n",
361 "511\n",
361 "511\n",
362 "1023\n",
362 "1023\n",
363 "2047\n",
363 "2047\n",
364 "4095\n",
364 "4095\n",
365 "8191\n",
365 "8191\n",
366 "16383\n",
366 "16383\n",
367 "32767\n",
367 "32767\n",
368 "65535\n",
368 "65535\n",
369 "131071\n",
369 "131071\n",
370 "262143\n",
370 "262143\n",
371 "524287\n",
371 "524287\n",
372 "1048575\n",
372 "1048575\n",
373 "2097151\n",
373 "2097151\n",
374 "4194303\n",
374 "4194303\n",
375 "8388607\n",
375 "8388607\n",
376 "16777215\n",
376 "16777215\n",
377 "33554431\n",
377 "33554431\n",
378 "67108863\n",
378 "67108863\n",
379 "134217727\n",
379 "134217727\n",
380 "268435455\n",
380 "268435455\n",
381 "536870911\n",
381 "536870911\n",
382 "1073741823\n",
382 "1073741823\n",
383 "2147483647\n",
383 "2147483647\n",
384 "4294967295\n",
384 "4294967295\n",
385 "8589934591\n",
385 "8589934591\n",
386 "17179869183\n",
386 "17179869183\n",
387 "34359738367\n",
387 "34359738367\n",
388 "68719476735\n",
388 "68719476735\n",
389 "137438953471\n",
389 "137438953471\n",
390 "274877906943\n",
390 "274877906943\n",
391 "549755813887\n",
391 "549755813887\n",
392 "1099511627775\n",
392 "1099511627775\n",
393 "2199023255551\n",
393 "2199023255551\n",
394 "4398046511103\n",
394 "4398046511103\n",
395 "8796093022207\n",
395 "8796093022207\n",
396 "17592186044415\n",
396 "17592186044415\n",
397 "35184372088831\n",
397 "35184372088831\n",
398 "70368744177663\n",
398 "70368744177663\n",
399 "140737488355327\n",
399 "140737488355327\n",
400 "281474976710655\n",
400 "281474976710655\n",
401 "562949953421311\n",
401 "562949953421311\n",
402 "1125899906842623\n",
402 "1125899906842623\n",
403 "2251799813685247\n",
403 "2251799813685247\n",
404 "4503599627370495\n",
404 "4503599627370495\n",
405 "9007199254740991\n",
405 "9007199254740991\n",
406 "18014398509481983\n",
406 "18014398509481983\n",
407 "36028797018963967\n",
407 "36028797018963967\n",
408 "72057594037927935\n",
408 "72057594037927935\n",
409 "144115188075855871\n",
409 "144115188075855871\n",
410 "288230376151711743\n",
410 "288230376151711743\n",
411 "576460752303423487\n",
411 "576460752303423487\n",
412 "1152921504606846975\n",
412 "1152921504606846975\n",
413 "2305843009213693951\n",
413 "2305843009213693951\n",
414 "4611686018427387903\n",
414 "4611686018427387903\n",
415 "9223372036854775807\n",
415 "9223372036854775807\n",
416 "18446744073709551615\n",
416 "18446744073709551615\n",
417 "36893488147419103231\n",
417 "36893488147419103231\n",
418 "73786976294838206463\n",
418 "73786976294838206463\n",
419 "147573952589676412927\n",
419 "147573952589676412927\n",
420 "295147905179352825855\n",
420 "295147905179352825855\n",
421 "590295810358705651711\n",
421 "590295810358705651711\n",
422 "1180591620717411303423\n",
422 "1180591620717411303423\n",
423 "2361183241434822606847\n",
423 "2361183241434822606847\n",
424 "4722366482869645213695\n",
424 "4722366482869645213695\n",
425 "9444732965739290427391\n",
425 "9444732965739290427391\n",
426 "18889465931478580854783\n",
426 "18889465931478580854783\n",
427 "37778931862957161709567\n",
427 "37778931862957161709567\n",
428 "75557863725914323419135\n",
428 "75557863725914323419135\n",
429 "151115727451828646838271\n",
429 "151115727451828646838271\n",
430 "302231454903657293676543\n",
430 "302231454903657293676543\n",
431 "604462909807314587353087\n",
431 "604462909807314587353087\n",
432 "1208925819614629174706175\n",
432 "1208925819614629174706175\n",
433 "2417851639229258349412351\n",
433 "2417851639229258349412351\n",
434 "4835703278458516698824703\n",
434 "4835703278458516698824703\n",
435 "9671406556917033397649407\n",
435 "9671406556917033397649407\n",
436 "19342813113834066795298815\n",
436 "19342813113834066795298815\n",
437 "38685626227668133590597631\n",
437 "38685626227668133590597631\n",
438 "77371252455336267181195263\n",
438 "77371252455336267181195263\n",
439 "154742504910672534362390527\n",
439 "154742504910672534362390527\n",
440 "309485009821345068724781055\n",
440 "309485009821345068724781055\n",
441 "618970019642690137449562111\n",
441 "618970019642690137449562111\n",
442 "1237940039285380274899124223\n",
442 "1237940039285380274899124223\n",
443 "2475880078570760549798248447\n",
443 "2475880078570760549798248447\n",
444 "4951760157141521099596496895\n",
444 "4951760157141521099596496895\n",
445 "9903520314283042199192993791\n",
445 "9903520314283042199192993791\n",
446 "19807040628566084398385987583\n",
446 "19807040628566084398385987583\n",
447 "39614081257132168796771975167\n",
447 "39614081257132168796771975167\n",
448 "79228162514264337593543950335\n",
448 "79228162514264337593543950335\n",
449 "158456325028528675187087900671\n",
449 "158456325028528675187087900671\n",
450 "316912650057057350374175801343\n",
450 "316912650057057350374175801343\n",
451 "633825300114114700748351602687\n",
451 "633825300114114700748351602687\n",
452 "1267650600228229401496703205375\n",
452 "1267650600228229401496703205375\n",
453 "2535301200456458802993406410751\n",
453 "2535301200456458802993406410751\n",
454 "5070602400912917605986812821503\n",
454 "5070602400912917605986812821503\n",
455 "10141204801825835211973625643007\n",
455 "10141204801825835211973625643007\n",
456 "20282409603651670423947251286015\n",
456 "20282409603651670423947251286015\n",
457 "40564819207303340847894502572031\n",
457 "40564819207303340847894502572031\n",
458 "81129638414606681695789005144063\n",
458 "81129638414606681695789005144063\n",
459 "162259276829213363391578010288127\n",
459 "162259276829213363391578010288127\n",
460 "324518553658426726783156020576255\n",
460 "324518553658426726783156020576255\n",
461 "649037107316853453566312041152511\n",
461 "649037107316853453566312041152511\n",
462 "1298074214633706907132624082305023\n",
462 "1298074214633706907132624082305023\n",
463 "2596148429267413814265248164610047\n",
463 "2596148429267413814265248164610047\n",
464 "5192296858534827628530496329220095\n",
464 "5192296858534827628530496329220095\n",
465 "10384593717069655257060992658440191\n",
465 "10384593717069655257060992658440191\n",
466 "20769187434139310514121985316880383\n",
466 "20769187434139310514121985316880383\n",
467 "41538374868278621028243970633760767\n",
467 "41538374868278621028243970633760767\n",
468 "83076749736557242056487941267521535\n",
468 "83076749736557242056487941267521535\n",
469 "166153499473114484112975882535043071\n",
469 "166153499473114484112975882535043071\n",
470 "332306998946228968225951765070086143\n",
470 "332306998946228968225951765070086143\n",
471 "664613997892457936451903530140172287\n",
471 "664613997892457936451903530140172287\n",
472 "1329227995784915872903807060280344575\n",
472 "1329227995784915872903807060280344575\n",
473 "2658455991569831745807614120560689151\n",
473 "2658455991569831745807614120560689151\n",
474 "5316911983139663491615228241121378303\n",
474 "5316911983139663491615228241121378303\n",
475 "10633823966279326983230456482242756607\n",
475 "10633823966279326983230456482242756607\n",
476 "21267647932558653966460912964485513215\n",
476 "21267647932558653966460912964485513215\n",
477 "42535295865117307932921825928971026431\n",
477 "42535295865117307932921825928971026431\n",
478 "85070591730234615865843651857942052863\n",
478 "85070591730234615865843651857942052863\n",
479 "170141183460469231731687303715884105727\n",
479 "170141183460469231731687303715884105727\n",
480 "340282366920938463463374607431768211455\n",
480 "340282366920938463463374607431768211455\n",
481 "680564733841876926926749214863536422911\n",
481 "680564733841876926926749214863536422911\n",
482 "1361129467683753853853498429727072845823\n",
482 "1361129467683753853853498429727072845823\n",
483 "2722258935367507707706996859454145691647\n",
483 "2722258935367507707706996859454145691647\n",
484 "5444517870735015415413993718908291383295\n",
484 "5444517870735015415413993718908291383295\n",
485 "10889035741470030830827987437816582766591\n",
485 "10889035741470030830827987437816582766591\n",
486 "21778071482940061661655974875633165533183\n",
486 "21778071482940061661655974875633165533183\n",
487 "43556142965880123323311949751266331066367\n",
487 "43556142965880123323311949751266331066367\n",
488 "87112285931760246646623899502532662132735\n",
488 "87112285931760246646623899502532662132735\n",
489 "174224571863520493293247799005065324265471\n",
489 "174224571863520493293247799005065324265471\n",
490 "348449143727040986586495598010130648530943\n",
490 "348449143727040986586495598010130648530943\n",
491 "696898287454081973172991196020261297061887\n",
491 "696898287454081973172991196020261297061887\n",
492 "1393796574908163946345982392040522594123775\n",
492 "1393796574908163946345982392040522594123775\n",
493 "2787593149816327892691964784081045188247551\n",
493 "2787593149816327892691964784081045188247551\n",
494 "5575186299632655785383929568162090376495103\n",
494 "5575186299632655785383929568162090376495103\n",
495 "11150372599265311570767859136324180752990207\n",
495 "11150372599265311570767859136324180752990207\n",
496 "22300745198530623141535718272648361505980415\n",
496 "22300745198530623141535718272648361505980415\n",
497 "44601490397061246283071436545296723011960831\n",
497 "44601490397061246283071436545296723011960831\n",
498 "89202980794122492566142873090593446023921663\n",
498 "89202980794122492566142873090593446023921663\n",
499 "178405961588244985132285746181186892047843327\n",
499 "178405961588244985132285746181186892047843327\n",
500 "356811923176489970264571492362373784095686655\n",
500 "356811923176489970264571492362373784095686655\n",
501 "713623846352979940529142984724747568191373311\n",
501 "713623846352979940529142984724747568191373311\n",
502 "1427247692705959881058285969449495136382746623\n",
502 "1427247692705959881058285969449495136382746623\n",
503 "2854495385411919762116571938898990272765493247\n",
503 "2854495385411919762116571938898990272765493247\n",
504 "5708990770823839524233143877797980545530986495\n",
504 "5708990770823839524233143877797980545530986495\n",
505 "11417981541647679048466287755595961091061972991\n",
505 "11417981541647679048466287755595961091061972991\n",
506 "22835963083295358096932575511191922182123945983\n",
506 "22835963083295358096932575511191922182123945983\n",
507 "45671926166590716193865151022383844364247891967\n",
507 "45671926166590716193865151022383844364247891967\n",
508 "91343852333181432387730302044767688728495783935\n",
508 "91343852333181432387730302044767688728495783935\n",
509 "182687704666362864775460604089535377456991567871\n",
509 "182687704666362864775460604089535377456991567871\n",
510 "365375409332725729550921208179070754913983135743\n",
510 "365375409332725729550921208179070754913983135743\n",
511 "730750818665451459101842416358141509827966271487\n",
511 "730750818665451459101842416358141509827966271487\n",
512 "1461501637330902918203684832716283019655932542975\n",
512 "1461501637330902918203684832716283019655932542975\n",
513 "2923003274661805836407369665432566039311865085951\n",
513 "2923003274661805836407369665432566039311865085951\n",
514 "5846006549323611672814739330865132078623730171903\n",
514 "5846006549323611672814739330865132078623730171903\n",
515 "11692013098647223345629478661730264157247460343807\n",
515 "11692013098647223345629478661730264157247460343807\n",
516 "23384026197294446691258957323460528314494920687615\n",
516 "23384026197294446691258957323460528314494920687615\n",
517 "46768052394588893382517914646921056628989841375231\n",
517 "46768052394588893382517914646921056628989841375231\n",
518 "93536104789177786765035829293842113257979682750463\n",
518 "93536104789177786765035829293842113257979682750463\n",
519 "187072209578355573530071658587684226515959365500927\n",
519 "187072209578355573530071658587684226515959365500927\n",
520 "374144419156711147060143317175368453031918731001855\n",
520 "374144419156711147060143317175368453031918731001855\n",
521 "748288838313422294120286634350736906063837462003711\n",
521 "748288838313422294120286634350736906063837462003711\n",
522 "1496577676626844588240573268701473812127674924007423\n",
522 "1496577676626844588240573268701473812127674924007423\n",
523 "2993155353253689176481146537402947624255349848014847\n",
523 "2993155353253689176481146537402947624255349848014847\n",
524 "5986310706507378352962293074805895248510699696029695\n",
524 "5986310706507378352962293074805895248510699696029695\n",
525 "11972621413014756705924586149611790497021399392059391\n",
525 "11972621413014756705924586149611790497021399392059391\n",
526 "23945242826029513411849172299223580994042798784118783\n",
526 "23945242826029513411849172299223580994042798784118783\n",
527 "47890485652059026823698344598447161988085597568237567\n",
527 "47890485652059026823698344598447161988085597568237567\n",
528 "95780971304118053647396689196894323976171195136475135\n",
528 "95780971304118053647396689196894323976171195136475135\n",
529 "191561942608236107294793378393788647952342390272950271\n",
529 "191561942608236107294793378393788647952342390272950271\n",
530 "383123885216472214589586756787577295904684780545900543\n",
530 "383123885216472214589586756787577295904684780545900543\n",
531 "766247770432944429179173513575154591809369561091801087\n",
531 "766247770432944429179173513575154591809369561091801087\n",
532 "1532495540865888858358347027150309183618739122183602175\n",
532 "1532495540865888858358347027150309183618739122183602175\n",
533 "3064991081731777716716694054300618367237478244367204351\n",
533 "3064991081731777716716694054300618367237478244367204351\n",
534 "6129982163463555433433388108601236734474956488734408703\n",
534 "6129982163463555433433388108601236734474956488734408703\n",
535 "12259964326927110866866776217202473468949912977468817407\n",
535 "12259964326927110866866776217202473468949912977468817407\n",
536 "24519928653854221733733552434404946937899825954937634815\n",
536 "24519928653854221733733552434404946937899825954937634815\n",
537 "49039857307708443467467104868809893875799651909875269631\n",
537 "49039857307708443467467104868809893875799651909875269631\n",
538 "98079714615416886934934209737619787751599303819750539263\n",
538 "98079714615416886934934209737619787751599303819750539263\n",
539 "196159429230833773869868419475239575503198607639501078527\n",
539 "196159429230833773869868419475239575503198607639501078527\n",
540 "392318858461667547739736838950479151006397215279002157055\n",
540 "392318858461667547739736838950479151006397215279002157055\n",
541 "784637716923335095479473677900958302012794430558004314111\n",
541 "784637716923335095479473677900958302012794430558004314111\n",
542 "1569275433846670190958947355801916604025588861116008628223\n",
542 "1569275433846670190958947355801916604025588861116008628223\n",
543 "3138550867693340381917894711603833208051177722232017256447\n",
543 "3138550867693340381917894711603833208051177722232017256447\n",
544 "6277101735386680763835789423207666416102355444464034512895\n",
544 "6277101735386680763835789423207666416102355444464034512895\n",
545 "12554203470773361527671578846415332832204710888928069025791\n",
545 "12554203470773361527671578846415332832204710888928069025791\n",
546 "25108406941546723055343157692830665664409421777856138051583\n",
546 "25108406941546723055343157692830665664409421777856138051583\n",
547 "50216813883093446110686315385661331328818843555712276103167\n",
547 "50216813883093446110686315385661331328818843555712276103167\n",
548 "100433627766186892221372630771322662657637687111424552206335\n",
548 "100433627766186892221372630771322662657637687111424552206335\n",
549 "200867255532373784442745261542645325315275374222849104412671\n",
549 "200867255532373784442745261542645325315275374222849104412671\n",
550 "401734511064747568885490523085290650630550748445698208825343\n",
550 "401734511064747568885490523085290650630550748445698208825343\n",
551 "803469022129495137770981046170581301261101496891396417650687\n",
551 "803469022129495137770981046170581301261101496891396417650687\n",
552 "1606938044258990275541962092341162602522202993782792835301375\n",
552 "1606938044258990275541962092341162602522202993782792835301375\n",
553 "3213876088517980551083924184682325205044405987565585670602751\n",
553 "3213876088517980551083924184682325205044405987565585670602751\n",
554 "6427752177035961102167848369364650410088811975131171341205503\n",
554 "6427752177035961102167848369364650410088811975131171341205503\n",
555 "12855504354071922204335696738729300820177623950262342682411007\n",
555 "12855504354071922204335696738729300820177623950262342682411007\n",
556 "25711008708143844408671393477458601640355247900524685364822015\n",
556 "25711008708143844408671393477458601640355247900524685364822015\n",
557 "51422017416287688817342786954917203280710495801049370729644031\n",
557 "51422017416287688817342786954917203280710495801049370729644031\n",
558 "102844034832575377634685573909834406561420991602098741459288063\n",
558 "102844034832575377634685573909834406561420991602098741459288063\n",
559 "205688069665150755269371147819668813122841983204197482918576127\n",
559 "205688069665150755269371147819668813122841983204197482918576127\n",
560 "411376139330301510538742295639337626245683966408394965837152255\n",
560 "411376139330301510538742295639337626245683966408394965837152255\n",
561 "822752278660603021077484591278675252491367932816789931674304511\n",
561 "822752278660603021077484591278675252491367932816789931674304511\n",
562 "1645504557321206042154969182557350504982735865633579863348609023\n",
562 "1645504557321206042154969182557350504982735865633579863348609023\n",
563 "3291009114642412084309938365114701009965471731267159726697218047\n",
563 "3291009114642412084309938365114701009965471731267159726697218047\n",
564 "6582018229284824168619876730229402019930943462534319453394436095\n",
564 "6582018229284824168619876730229402019930943462534319453394436095\n",
565 "13164036458569648337239753460458804039861886925068638906788872191\n",
565 "13164036458569648337239753460458804039861886925068638906788872191\n",
566 "26328072917139296674479506920917608079723773850137277813577744383\n",
566 "26328072917139296674479506920917608079723773850137277813577744383\n",
567 "52656145834278593348959013841835216159447547700274555627155488767\n",
567 "52656145834278593348959013841835216159447547700274555627155488767\n",
568 "105312291668557186697918027683670432318895095400549111254310977535\n",
568 "105312291668557186697918027683670432318895095400549111254310977535\n",
569 "210624583337114373395836055367340864637790190801098222508621955071\n",
569 "210624583337114373395836055367340864637790190801098222508621955071\n",
570 "421249166674228746791672110734681729275580381602196445017243910143\n",
570 "421249166674228746791672110734681729275580381602196445017243910143\n",
571 "842498333348457493583344221469363458551160763204392890034487820287\n",
571 "842498333348457493583344221469363458551160763204392890034487820287\n",
572 "1684996666696914987166688442938726917102321526408785780068975640575\n",
572 "1684996666696914987166688442938726917102321526408785780068975640575\n",
573 "3369993333393829974333376885877453834204643052817571560137951281151\n",
573 "3369993333393829974333376885877453834204643052817571560137951281151\n",
574 "6739986666787659948666753771754907668409286105635143120275902562303\n",
574 "6739986666787659948666753771754907668409286105635143120275902562303\n",
575 "13479973333575319897333507543509815336818572211270286240551805124607\n",
575 "13479973333575319897333507543509815336818572211270286240551805124607\n",
576 "26959946667150639794667015087019630673637144422540572481103610249215\n",
576 "26959946667150639794667015087019630673637144422540572481103610249215\n",
577 "53919893334301279589334030174039261347274288845081144962207220498431\n",
577 "53919893334301279589334030174039261347274288845081144962207220498431\n",
578 "107839786668602559178668060348078522694548577690162289924414440996863\n",
578 "107839786668602559178668060348078522694548577690162289924414440996863\n",
579 "215679573337205118357336120696157045389097155380324579848828881993727\n",
579 "215679573337205118357336120696157045389097155380324579848828881993727\n",
580 "431359146674410236714672241392314090778194310760649159697657763987455\n",
580 "431359146674410236714672241392314090778194310760649159697657763987455\n",
581 "862718293348820473429344482784628181556388621521298319395315527974911\n",
581 "862718293348820473429344482784628181556388621521298319395315527974911\n",
582 "1725436586697640946858688965569256363112777243042596638790631055949823\n",
582 "1725436586697640946858688965569256363112777243042596638790631055949823\n",
583 "3450873173395281893717377931138512726225554486085193277581262111899647\n",
583 "3450873173395281893717377931138512726225554486085193277581262111899647\n",
584 "6901746346790563787434755862277025452451108972170386555162524223799295\n",
584 "6901746346790563787434755862277025452451108972170386555162524223799295\n",
585 "13803492693581127574869511724554050904902217944340773110325048447598591\n",
585 "13803492693581127574869511724554050904902217944340773110325048447598591\n",
586 "27606985387162255149739023449108101809804435888681546220650096895197183\n",
586 "27606985387162255149739023449108101809804435888681546220650096895197183\n",
587 "55213970774324510299478046898216203619608871777363092441300193790394367\n",
587 "55213970774324510299478046898216203619608871777363092441300193790394367\n",
588 "110427941548649020598956093796432407239217743554726184882600387580788735\n",
588 "110427941548649020598956093796432407239217743554726184882600387580788735\n",
589 "220855883097298041197912187592864814478435487109452369765200775161577471\n",
589 "220855883097298041197912187592864814478435487109452369765200775161577471\n",
590 "441711766194596082395824375185729628956870974218904739530401550323154943\n",
590 "441711766194596082395824375185729628956870974218904739530401550323154943\n",
591 "883423532389192164791648750371459257913741948437809479060803100646309887\n",
591 "883423532389192164791648750371459257913741948437809479060803100646309887\n",
592 "1766847064778384329583297500742918515827483896875618958121606201292619775\n",
592 "1766847064778384329583297500742918515827483896875618958121606201292619775\n",
593 "3533694129556768659166595001485837031654967793751237916243212402585239551\n",
593 "3533694129556768659166595001485837031654967793751237916243212402585239551\n",
594 "7067388259113537318333190002971674063309935587502475832486424805170479103\n",
594 "7067388259113537318333190002971674063309935587502475832486424805170479103\n",
595 "14134776518227074636666380005943348126619871175004951664972849610340958207\n",
595 "14134776518227074636666380005943348126619871175004951664972849610340958207\n",
596 "28269553036454149273332760011886696253239742350009903329945699220681916415\n",
596 "28269553036454149273332760011886696253239742350009903329945699220681916415\n",
597 "56539106072908298546665520023773392506479484700019806659891398441363832831\n",
597 "56539106072908298546665520023773392506479484700019806659891398441363832831\n",
598 "113078212145816597093331040047546785012958969400039613319782796882727665663\n",
598 "113078212145816597093331040047546785012958969400039613319782796882727665663\n",
599 "226156424291633194186662080095093570025917938800079226639565593765455331327\n",
599 "226156424291633194186662080095093570025917938800079226639565593765455331327\n",
600 "452312848583266388373324160190187140051835877600158453279131187530910662655\n",
600 "452312848583266388373324160190187140051835877600158453279131187530910662655\n",
601 "904625697166532776746648320380374280103671755200316906558262375061821325311\n",
601 "904625697166532776746648320380374280103671755200316906558262375061821325311\n",
602 "1809251394333065553493296640760748560207343510400633813116524750123642650623\n",
602 "1809251394333065553493296640760748560207343510400633813116524750123642650623\n",
603 "3618502788666131106986593281521497120414687020801267626233049500247285301247\n",
603 "3618502788666131106986593281521497120414687020801267626233049500247285301247\n",
604 "7237005577332262213973186563042994240829374041602535252466099000494570602495\n",
604 "7237005577332262213973186563042994240829374041602535252466099000494570602495\n",
605 "14474011154664524427946373126085988481658748083205070504932198000989141204991\n",
605 "14474011154664524427946373126085988481658748083205070504932198000989141204991\n",
606 "28948022309329048855892746252171976963317496166410141009864396001978282409983\n",
606 "28948022309329048855892746252171976963317496166410141009864396001978282409983\n",
607 "57896044618658097711785492504343953926634992332820282019728792003956564819967\n",
607 "57896044618658097711785492504343953926634992332820282019728792003956564819967\n",
608 "115792089237316195423570985008687907853269984665640564039457584007913129639935\n",
608 "115792089237316195423570985008687907853269984665640564039457584007913129639935\n",
609 "231584178474632390847141970017375815706539969331281128078915168015826259279871\n",
609 "231584178474632390847141970017375815706539969331281128078915168015826259279871\n",
610 "463168356949264781694283940034751631413079938662562256157830336031652518559743\n",
610 "463168356949264781694283940034751631413079938662562256157830336031652518559743\n",
611 "926336713898529563388567880069503262826159877325124512315660672063305037119487\n",
611 "926336713898529563388567880069503262826159877325124512315660672063305037119487\n",
612 "1852673427797059126777135760139006525652319754650249024631321344126610074238975\n",
612 "1852673427797059126777135760139006525652319754650249024631321344126610074238975\n",
613 "3705346855594118253554271520278013051304639509300498049262642688253220148477951\n",
613 "3705346855594118253554271520278013051304639509300498049262642688253220148477951\n",
614 "7410693711188236507108543040556026102609279018600996098525285376506440296955903\n",
614 "7410693711188236507108543040556026102609279018600996098525285376506440296955903\n",
615 "14821387422376473014217086081112052205218558037201992197050570753012880593911807\n",
615 "14821387422376473014217086081112052205218558037201992197050570753012880593911807\n",
616 "29642774844752946028434172162224104410437116074403984394101141506025761187823615\n",
616 "29642774844752946028434172162224104410437116074403984394101141506025761187823615\n",
617 "59285549689505892056868344324448208820874232148807968788202283012051522375647231\n",
617 "59285549689505892056868344324448208820874232148807968788202283012051522375647231\n",
618 "118571099379011784113736688648896417641748464297615937576404566024103044751294463\n",
618 "118571099379011784113736688648896417641748464297615937576404566024103044751294463\n",
619 "237142198758023568227473377297792835283496928595231875152809132048206089502588927\n",
619 "237142198758023568227473377297792835283496928595231875152809132048206089502588927\n",
620 "474284397516047136454946754595585670566993857190463750305618264096412179005177855\n",
620 "474284397516047136454946754595585670566993857190463750305618264096412179005177855\n",
621 "948568795032094272909893509191171341133987714380927500611236528192824358010355711\n",
621 "948568795032094272909893509191171341133987714380927500611236528192824358010355711\n",
622 "1897137590064188545819787018382342682267975428761855001222473056385648716020711423\n",
622 "1897137590064188545819787018382342682267975428761855001222473056385648716020711423\n",
623 "3794275180128377091639574036764685364535950857523710002444946112771297432041422847\n",
623 "3794275180128377091639574036764685364535950857523710002444946112771297432041422847\n",
624 "7588550360256754183279148073529370729071901715047420004889892225542594864082845695\n",
624 "7588550360256754183279148073529370729071901715047420004889892225542594864082845695\n",
625 "15177100720513508366558296147058741458143803430094840009779784451085189728165691391\n",
625 "15177100720513508366558296147058741458143803430094840009779784451085189728165691391\n",
626 "30354201441027016733116592294117482916287606860189680019559568902170379456331382783\n",
626 "30354201441027016733116592294117482916287606860189680019559568902170379456331382783\n",
627 "60708402882054033466233184588234965832575213720379360039119137804340758912662765567\n",
627 "60708402882054033466233184588234965832575213720379360039119137804340758912662765567\n",
628 "121416805764108066932466369176469931665150427440758720078238275608681517825325531135\n",
628 "121416805764108066932466369176469931665150427440758720078238275608681517825325531135\n",
629 "242833611528216133864932738352939863330300854881517440156476551217363035650651062271\n",
629 "242833611528216133864932738352939863330300854881517440156476551217363035650651062271\n",
630 "485667223056432267729865476705879726660601709763034880312953102434726071301302124543\n",
630 "485667223056432267729865476705879726660601709763034880312953102434726071301302124543\n",
631 "971334446112864535459730953411759453321203419526069760625906204869452142602604249087\n",
631 "971334446112864535459730953411759453321203419526069760625906204869452142602604249087\n",
632 "1942668892225729070919461906823518906642406839052139521251812409738904285205208498175\n",
632 "1942668892225729070919461906823518906642406839052139521251812409738904285205208498175\n",
633 "3885337784451458141838923813647037813284813678104279042503624819477808570410416996351\n",
633 "3885337784451458141838923813647037813284813678104279042503624819477808570410416996351\n",
634 "7770675568902916283677847627294075626569627356208558085007249638955617140820833992703\n",
634 "7770675568902916283677847627294075626569627356208558085007249638955617140820833992703\n",
635 "15541351137805832567355695254588151253139254712417116170014499277911234281641667985407\n",
635 "15541351137805832567355695254588151253139254712417116170014499277911234281641667985407\n",
636 "31082702275611665134711390509176302506278509424834232340028998555822468563283335970815\n",
636 "31082702275611665134711390509176302506278509424834232340028998555822468563283335970815\n",
637 "62165404551223330269422781018352605012557018849668464680057997111644937126566671941631\n",
637 "62165404551223330269422781018352605012557018849668464680057997111644937126566671941631\n",
638 "124330809102446660538845562036705210025114037699336929360115994223289874253133343883263\n",
638 "124330809102446660538845562036705210025114037699336929360115994223289874253133343883263\n",
639 "248661618204893321077691124073410420050228075398673858720231988446579748506266687766527\n",
639 "248661618204893321077691124073410420050228075398673858720231988446579748506266687766527\n",
640 "497323236409786642155382248146820840100456150797347717440463976893159497012533375533055\n",
640 "497323236409786642155382248146820840100456150797347717440463976893159497012533375533055\n",
641 "994646472819573284310764496293641680200912301594695434880927953786318994025066751066111\n",
641 "994646472819573284310764496293641680200912301594695434880927953786318994025066751066111\n",
642 "1989292945639146568621528992587283360401824603189390869761855907572637988050133502132223\n",
642 "1989292945639146568621528992587283360401824603189390869761855907572637988050133502132223\n",
643 "3978585891278293137243057985174566720803649206378781739523711815145275976100267004264447\n",
643 "3978585891278293137243057985174566720803649206378781739523711815145275976100267004264447\n",
644 "7957171782556586274486115970349133441607298412757563479047423630290551952200534008528895\n",
644 "7957171782556586274486115970349133441607298412757563479047423630290551952200534008528895\n",
645 "15914343565113172548972231940698266883214596825515126958094847260581103904401068017057791\n",
645 "15914343565113172548972231940698266883214596825515126958094847260581103904401068017057791\n",
646 "31828687130226345097944463881396533766429193651030253916189694521162207808802136034115583\n",
646 "31828687130226345097944463881396533766429193651030253916189694521162207808802136034115583\n",
647 "63657374260452690195888927762793067532858387302060507832379389042324415617604272068231167\n",
647 "63657374260452690195888927762793067532858387302060507832379389042324415617604272068231167\n",
648 "127314748520905380391777855525586135065716774604121015664758778084648831235208544136462335\n",
648 "127314748520905380391777855525586135065716774604121015664758778084648831235208544136462335\n",
649 "254629497041810760783555711051172270131433549208242031329517556169297662470417088272924671\n",
649 "254629497041810760783555711051172270131433549208242031329517556169297662470417088272924671\n",
650 "509258994083621521567111422102344540262867098416484062659035112338595324940834176545849343\n",
650 "509258994083621521567111422102344540262867098416484062659035112338595324940834176545849343\n",
651 "1018517988167243043134222844204689080525734196832968125318070224677190649881668353091698687\n",
651 "1018517988167243043134222844204689080525734196832968125318070224677190649881668353091698687\n",
652 "2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375\n",
652 "2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397375\n",
653 "4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794751\n",
653 "4074071952668972172536891376818756322102936787331872501272280898708762599526673412366794751\n",
654 "8148143905337944345073782753637512644205873574663745002544561797417525199053346824733589503\n",
654 "8148143905337944345073782753637512644205873574663745002544561797417525199053346824733589503\n",
655 "16296287810675888690147565507275025288411747149327490005089123594835050398106693649467179007\n",
655 "16296287810675888690147565507275025288411747149327490005089123594835050398106693649467179007\n",
656 "32592575621351777380295131014550050576823494298654980010178247189670100796213387298934358015\n",
656 "32592575621351777380295131014550050576823494298654980010178247189670100796213387298934358015\n",
657 "65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716031\n",
657 "65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716031\n",
658 "130370302485407109521180524058200202307293977194619920040712988758680403184853549195737432063\n",
658 "130370302485407109521180524058200202307293977194619920040712988758680403184853549195737432063\n",
659 "260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864127\n",
659 "260740604970814219042361048116400404614587954389239840081425977517360806369707098391474864127\n",
660 "521481209941628438084722096232800809229175908778479680162851955034721612739414196782949728255\n",
660 "521481209941628438084722096232800809229175908778479680162851955034721612739414196782949728255\n",
661 "1042962419883256876169444192465601618458351817556959360325703910069443225478828393565899456511\n",
661 "1042962419883256876169444192465601618458351817556959360325703910069443225478828393565899456511\n",
662 "2085924839766513752338888384931203236916703635113918720651407820138886450957656787131798913023\n",
662 "2085924839766513752338888384931203236916703635113918720651407820138886450957656787131798913023\n",
663 "4171849679533027504677776769862406473833407270227837441302815640277772901915313574263597826047\n",
663 "4171849679533027504677776769862406473833407270227837441302815640277772901915313574263597826047\n",
664 "8343699359066055009355553539724812947666814540455674882605631280555545803830627148527195652095\n",
664 "8343699359066055009355553539724812947666814540455674882605631280555545803830627148527195652095\n",
665 "16687398718132110018711107079449625895333629080911349765211262561111091607661254297054391304191\n",
665 "16687398718132110018711107079449625895333629080911349765211262561111091607661254297054391304191\n",
666 "33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608383\n",
666 "33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608383\n",
667 "66749594872528440074844428317798503581334516323645399060845050244444366430645017188217565216767\n",
667 "66749594872528440074844428317798503581334516323645399060845050244444366430645017188217565216767\n",
668 "133499189745056880149688856635597007162669032647290798121690100488888732861290034376435130433535\n",
668 "133499189745056880149688856635597007162669032647290798121690100488888732861290034376435130433535\n",
669 "266998379490113760299377713271194014325338065294581596243380200977777465722580068752870260867071\n",
669 "266998379490113760299377713271194014325338065294581596243380200977777465722580068752870260867071\n",
670 "533996758980227520598755426542388028650676130589163192486760401955554931445160137505740521734143\n",
670 "533996758980227520598755426542388028650676130589163192486760401955554931445160137505740521734143\n",
671 "1067993517960455041197510853084776057301352261178326384973520803911109862890320275011481043468287\n",
671 "1067993517960455041197510853084776057301352261178326384973520803911109862890320275011481043468287\n",
672 "2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936575\n",
672 "2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936575\n",
673 "4271974071841820164790043412339104229205409044713305539894083215644439451561281100045924173873151\n",
673 "4271974071841820164790043412339104229205409044713305539894083215644439451561281100045924173873151\n",
674 "8543948143683640329580086824678208458410818089426611079788166431288878903122562200091848347746303\n",
674 "8543948143683640329580086824678208458410818089426611079788166431288878903122562200091848347746303\n",
675 "17087896287367280659160173649356416916821636178853222159576332862577757806245124400183696695492607\n",
675 "17087896287367280659160173649356416916821636178853222159576332862577757806245124400183696695492607\n",
676 "34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985215\n",
676 "34175792574734561318320347298712833833643272357706444319152665725155515612490248800367393390985215\n",
677 "68351585149469122636640694597425667667286544715412888638305331450311031224980497600734786781970431\n",
677 "68351585149469122636640694597425667667286544715412888638305331450311031224980497600734786781970431\n",
678 "136703170298938245273281389194851335334573089430825777276610662900622062449960995201469573563940863\n",
678 "136703170298938245273281389194851335334573089430825777276610662900622062449960995201469573563940863\n",
679 "273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881727\n",
679 "273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881727\n",
680 "546812681195752981093125556779405341338292357723303109106442651602488249799843980805878294255763455\n",
680 "546812681195752981093125556779405341338292357723303109106442651602488249799843980805878294255763455\n",
681 "1093625362391505962186251113558810682676584715446606218212885303204976499599687961611756588511526911\n",
681 "1093625362391505962186251113558810682676584715446606218212885303204976499599687961611756588511526911\n",
682 "2187250724783011924372502227117621365353169430893212436425770606409952999199375923223513177023053823\n",
682 "2187250724783011924372502227117621365353169430893212436425770606409952999199375923223513177023053823\n",
683 "4374501449566023848745004454235242730706338861786424872851541212819905998398751846447026354046107647\n",
683 "4374501449566023848745004454235242730706338861786424872851541212819905998398751846447026354046107647\n",
684 "8749002899132047697490008908470485461412677723572849745703082425639811996797503692894052708092215295\n",
684 "8749002899132047697490008908470485461412677723572849745703082425639811996797503692894052708092215295\n",
685 "17498005798264095394980017816940970922825355447145699491406164851279623993595007385788105416184430591\n",
685 "17498005798264095394980017816940970922825355447145699491406164851279623993595007385788105416184430591\n",
686 "34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861183\n",
686 "34996011596528190789960035633881941845650710894291398982812329702559247987190014771576210832368861183\n",
687 "69992023193056381579920071267763883691301421788582797965624659405118495974380029543152421664737722367\n",
687 "69992023193056381579920071267763883691301421788582797965624659405118495974380029543152421664737722367\n",
688 "139984046386112763159840142535527767382602843577165595931249318810236991948760059086304843329475444735\n",
688 "139984046386112763159840142535527767382602843577165595931249318810236991948760059086304843329475444735\n",
689 "279968092772225526319680285071055534765205687154331191862498637620473983897520118172609686658950889471\n",
689 "279968092772225526319680285071055534765205687154331191862498637620473983897520118172609686658950889471\n",
690 "559936185544451052639360570142111069530411374308662383724997275240947967795040236345219373317901778943\n",
690 "559936185544451052639360570142111069530411374308662383724997275240947967795040236345219373317901778943\n",
691 "1119872371088902105278721140284222139060822748617324767449994550481895935590080472690438746635803557887\n",
691 "1119872371088902105278721140284222139060822748617324767449994550481895935590080472690438746635803557887\n",
692 "2239744742177804210557442280568444278121645497234649534899989100963791871180160945380877493271607115775\n",
692 "2239744742177804210557442280568444278121645497234649534899989100963791871180160945380877493271607115775\n",
693 "4479489484355608421114884561136888556243290994469299069799978201927583742360321890761754986543214231551\n",
693 "4479489484355608421114884561136888556243290994469299069799978201927583742360321890761754986543214231551\n",
694 "8958978968711216842229769122273777112486581988938598139599956403855167484720643781523509973086428463103\n",
694 "8958978968711216842229769122273777112486581988938598139599956403855167484720643781523509973086428463103\n",
695 "17917957937422433684459538244547554224973163977877196279199912807710334969441287563047019946172856926207\n",
695 "17917957937422433684459538244547554224973163977877196279199912807710334969441287563047019946172856926207\n",
696 "35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852415\n",
696 "35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852415\n",
697 "71671831749689734737838152978190216899892655911508785116799651230841339877765150252188079784691427704831\n",
697 "71671831749689734737838152978190216899892655911508785116799651230841339877765150252188079784691427704831\n",
698 "143343663499379469475676305956380433799785311823017570233599302461682679755530300504376159569382855409663\n",
698 "143343663499379469475676305956380433799785311823017570233599302461682679755530300504376159569382855409663\n",
699 "286687326998758938951352611912760867599570623646035140467198604923365359511060601008752319138765710819327\n",
699 "286687326998758938951352611912760867599570623646035140467198604923365359511060601008752319138765710819327\n",
700 "573374653997517877902705223825521735199141247292070280934397209846730719022121202017504638277531421638655\n",
700 "573374653997517877902705223825521735199141247292070280934397209846730719022121202017504638277531421638655\n",
701 "1146749307995035755805410447651043470398282494584140561868794419693461438044242404035009276555062843277311\n",
701 "1146749307995035755805410447651043470398282494584140561868794419693461438044242404035009276555062843277311\n",
702 "2293498615990071511610820895302086940796564989168281123737588839386922876088484808070018553110125686554623\n",
702 "2293498615990071511610820895302086940796564989168281123737588839386922876088484808070018553110125686554623\n",
703 "4586997231980143023221641790604173881593129978336562247475177678773845752176969616140037106220251373109247\n",
703 "4586997231980143023221641790604173881593129978336562247475177678773845752176969616140037106220251373109247\n",
704 "9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218495\n",
704 "9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218495\n",
705 "18347988927920572092886567162416695526372519913346248989900710715095383008707878464560148424881005492436991\n",
705 "18347988927920572092886567162416695526372519913346248989900710715095383008707878464560148424881005492436991\n",
706 "36695977855841144185773134324833391052745039826692497979801421430190766017415756929120296849762010984873983\n",
706 "36695977855841144185773134324833391052745039826692497979801421430190766017415756929120296849762010984873983\n",
707 "73391955711682288371546268649666782105490079653384995959602842860381532034831513858240593699524021969747967\n",
707 "73391955711682288371546268649666782105490079653384995959602842860381532034831513858240593699524021969747967\n",
708 "146783911423364576743092537299333564210980159306769991919205685720763064069663027716481187399048043939495935\n",
708 "146783911423364576743092537299333564210980159306769991919205685720763064069663027716481187399048043939495935\n",
709 "293567822846729153486185074598667128421960318613539983838411371441526128139326055432962374798096087878991871\n",
709 "293567822846729153486185074598667128421960318613539983838411371441526128139326055432962374798096087878991871\n",
710 "587135645693458306972370149197334256843920637227079967676822742883052256278652110865924749596192175757983743\n",
710 "587135645693458306972370149197334256843920637227079967676822742883052256278652110865924749596192175757983743\n",
711 "1174271291386916613944740298394668513687841274454159935353645485766104512557304221731849499192384351515967487\n",
711 "1174271291386916613944740298394668513687841274454159935353645485766104512557304221731849499192384351515967487\n",
712 "2348542582773833227889480596789337027375682548908319870707290971532209025114608443463698998384768703031934975\n",
712 "2348542582773833227889480596789337027375682548908319870707290971532209025114608443463698998384768703031934975\n",
713 "4697085165547666455778961193578674054751365097816639741414581943064418050229216886927397996769537406063869951\n",
713 "4697085165547666455778961193578674054751365097816639741414581943064418050229216886927397996769537406063869951\n",
714 "9394170331095332911557922387157348109502730195633279482829163886128836100458433773854795993539074812127739903\n",
714 "9394170331095332911557922387157348109502730195633279482829163886128836100458433773854795993539074812127739903\n",
715 "18788340662190665823115844774314696219005460391266558965658327772257672200916867547709591987078149624255479807\n",
715 "18788340662190665823115844774314696219005460391266558965658327772257672200916867547709591987078149624255479807\n",
716 "37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959615\n",
716 "37576681324381331646231689548629392438010920782533117931316655544515344401833735095419183974156299248510959615\n",
717 "75153362648762663292463379097258784876021841565066235862633311089030688803667470190838367948312598497021919231\n",
717 "75153362648762663292463379097258784876021841565066235862633311089030688803667470190838367948312598497021919231\n",
718 "150306725297525326584926758194517569752043683130132471725266622178061377607334940381676735896625196994043838463\n",
718 "150306725297525326584926758194517569752043683130132471725266622178061377607334940381676735896625196994043838463\n",
719 "300613450595050653169853516389035139504087366260264943450533244356122755214669880763353471793250393988087676927\n",
719 "300613450595050653169853516389035139504087366260264943450533244356122755214669880763353471793250393988087676927\n",
720 "601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353855\n",
720 "601226901190101306339707032778070279008174732520529886901066488712245510429339761526706943586500787976175353855\n",
721 "1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707711\n",
721 "1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707711\n",
722 "2404907604760405225358828131112281116032698930082119547604265954848982041717359046106827774346003151904701415423\n",
722 "2404907604760405225358828131112281116032698930082119547604265954848982041717359046106827774346003151904701415423\n",
723 "4809815209520810450717656262224562232065397860164239095208531909697964083434718092213655548692006303809402830847\n",
723 "4809815209520810450717656262224562232065397860164239095208531909697964083434718092213655548692006303809402830847\n",
724 "9619630419041620901435312524449124464130795720328478190417063819395928166869436184427311097384012607618805661695\n",
724 "9619630419041620901435312524449124464130795720328478190417063819395928166869436184427311097384012607618805661695\n",
725 "19239260838083241802870625048898248928261591440656956380834127638791856333738872368854622194768025215237611323391\n",
725 "19239260838083241802870625048898248928261591440656956380834127638791856333738872368854622194768025215237611323391\n",
726 "38478521676166483605741250097796497856523182881313912761668255277583712667477744737709244389536050430475222646783\n",
726 "38478521676166483605741250097796497856523182881313912761668255277583712667477744737709244389536050430475222646783\n",
727 "76957043352332967211482500195592995713046365762627825523336510555167425334955489475418488779072100860950445293567\n",
727 "76957043352332967211482500195592995713046365762627825523336510555167425334955489475418488779072100860950445293567\n",
728 "153914086704665934422965000391185991426092731525255651046673021110334850669910978950836977558144201721900890587135\n",
728 "153914086704665934422965000391185991426092731525255651046673021110334850669910978950836977558144201721900890587135\n",
729 "307828173409331868845930000782371982852185463050511302093346042220669701339821957901673955116288403443801781174271\n",
729 "307828173409331868845930000782371982852185463050511302093346042220669701339821957901673955116288403443801781174271\n",
730 "615656346818663737691860001564743965704370926101022604186692084441339402679643915803347910232576806887603562348543\n",
730 "615656346818663737691860001564743965704370926101022604186692084441339402679643915803347910232576806887603562348543\n",
731 "1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697087\n",
731 "1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697087\n",
732 "2462625387274654950767440006258975862817483704404090416746768337765357610718575663213391640930307227550414249394175\n",
732 "2462625387274654950767440006258975862817483704404090416746768337765357610718575663213391640930307227550414249394175\n",
733 "4925250774549309901534880012517951725634967408808180833493536675530715221437151326426783281860614455100828498788351\n",
733 "4925250774549309901534880012517951725634967408808180833493536675530715221437151326426783281860614455100828498788351\n",
734 "9850501549098619803069760025035903451269934817616361666987073351061430442874302652853566563721228910201656997576703\n",
734 "9850501549098619803069760025035903451269934817616361666987073351061430442874302652853566563721228910201656997576703\n",
735 "19701003098197239606139520050071806902539869635232723333974146702122860885748605305707133127442457820403313995153407\n",
735 "19701003098197239606139520050071806902539869635232723333974146702122860885748605305707133127442457820403313995153407\n",
736 "39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306815\n",
736 "39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306815\n",
737 "78804012392788958424558080200287227610159478540930893335896586808491443542994421222828532509769831281613255980613631\n",
737 "78804012392788958424558080200287227610159478540930893335896586808491443542994421222828532509769831281613255980613631\n",
738 "157608024785577916849116160400574455220318957081861786671793173616982887085988842445657065019539662563226511961227263\n",
738 "157608024785577916849116160400574455220318957081861786671793173616982887085988842445657065019539662563226511961227263\n",
739 "315216049571155833698232320801148910440637914163723573343586347233965774171977684891314130039079325126453023922454527\n",
739 "315216049571155833698232320801148910440637914163723573343586347233965774171977684891314130039079325126453023922454527\n",
740 "630432099142311667396464641602297820881275828327447146687172694467931548343955369782628260078158650252906047844909055\n",
740 "630432099142311667396464641602297820881275828327447146687172694467931548343955369782628260078158650252906047844909055\n",
741 "1260864198284623334792929283204595641762551656654894293374345388935863096687910739565256520156317300505812095689818111\n",
741 "1260864198284623334792929283204595641762551656654894293374345388935863096687910739565256520156317300505812095689818111\n",
742 "2521728396569246669585858566409191283525103313309788586748690777871726193375821479130513040312634601011624191379636223\n",
742 "2521728396569246669585858566409191283525103313309788586748690777871726193375821479130513040312634601011624191379636223\n",
743 "5043456793138493339171717132818382567050206626619577173497381555743452386751642958261026080625269202023248382759272447\n",
743 "5043456793138493339171717132818382567050206626619577173497381555743452386751642958261026080625269202023248382759272447\n",
744 "10086913586276986678343434265636765134100413253239154346994763111486904773503285916522052161250538404046496765518544895\n",
744 "10086913586276986678343434265636765134100413253239154346994763111486904773503285916522052161250538404046496765518544895\n",
745 "20173827172553973356686868531273530268200826506478308693989526222973809547006571833044104322501076808092993531037089791\n",
745 "20173827172553973356686868531273530268200826506478308693989526222973809547006571833044104322501076808092993531037089791\n",
746 "40347654345107946713373737062547060536401653012956617387979052445947619094013143666088208645002153616185987062074179583\n",
746 "40347654345107946713373737062547060536401653012956617387979052445947619094013143666088208645002153616185987062074179583\n",
747 "80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359167\n",
747 "80695308690215893426747474125094121072803306025913234775958104891895238188026287332176417290004307232371974124148359167\n",
748 "161390617380431786853494948250188242145606612051826469551916209783790476376052574664352834580008614464743948248296718335\n",
748 "161390617380431786853494948250188242145606612051826469551916209783790476376052574664352834580008614464743948248296718335\n",
749 "322781234760863573706989896500376484291213224103652939103832419567580952752105149328705669160017228929487896496593436671\n",
749 "322781234760863573706989896500376484291213224103652939103832419567580952752105149328705669160017228929487896496593436671\n",
750 "645562469521727147413979793000752968582426448207305878207664839135161905504210298657411338320034457858975792993186873343\n",
750 "645562469521727147413979793000752968582426448207305878207664839135161905504210298657411338320034457858975792993186873343\n",
751 "1291124939043454294827959586001505937164852896414611756415329678270323811008420597314822676640068915717951585986373746687\n",
751 "1291124939043454294827959586001505937164852896414611756415329678270323811008420597314822676640068915717951585986373746687\n",
752 "2582249878086908589655919172003011874329705792829223512830659356540647622016841194629645353280137831435903171972747493375\n",
752 "2582249878086908589655919172003011874329705792829223512830659356540647622016841194629645353280137831435903171972747493375\n",
753 "5164499756173817179311838344006023748659411585658447025661318713081295244033682389259290706560275662871806343945494986751\n",
753 "5164499756173817179311838344006023748659411585658447025661318713081295244033682389259290706560275662871806343945494986751\n",
754 "10328999512347634358623676688012047497318823171316894051322637426162590488067364778518581413120551325743612687890989973503\n",
754 "10328999512347634358623676688012047497318823171316894051322637426162590488067364778518581413120551325743612687890989973503\n",
755 "20657999024695268717247353376024094994637646342633788102645274852325180976134729557037162826241102651487225375781979947007\n",
755 "20657999024695268717247353376024094994637646342633788102645274852325180976134729557037162826241102651487225375781979947007\n",
756 "41315998049390537434494706752048189989275292685267576205290549704650361952269459114074325652482205302974450751563959894015\n",
756 "41315998049390537434494706752048189989275292685267576205290549704650361952269459114074325652482205302974450751563959894015\n",
757 "82631996098781074868989413504096379978550585370535152410581099409300723904538918228148651304964410605948901503127919788031\n",
757 "82631996098781074868989413504096379978550585370535152410581099409300723904538918228148651304964410605948901503127919788031\n",
758 "165263992197562149737978827008192759957101170741070304821162198818601447809077836456297302609928821211897803006255839576063\n",
758 "165263992197562149737978827008192759957101170741070304821162198818601447809077836456297302609928821211897803006255839576063\n",
759 "330527984395124299475957654016385519914202341482140609642324397637202895618155672912594605219857642423795606012511679152127\n",
759 "330527984395124299475957654016385519914202341482140609642324397637202895618155672912594605219857642423795606012511679152127\n",
760 "661055968790248598951915308032771039828404682964281219284648795274405791236311345825189210439715284847591212025023358304255\n",
760 "661055968790248598951915308032771039828404682964281219284648795274405791236311345825189210439715284847591212025023358304255\n",
761 "1322111937580497197903830616065542079656809365928562438569297590548811582472622691650378420879430569695182424050046716608511\n",
761 "1322111937580497197903830616065542079656809365928562438569297590548811582472622691650378420879430569695182424050046716608511\n",
762 "2644223875160994395807661232131084159313618731857124877138595181097623164945245383300756841758861139390364848100093433217023\n",
762 "2644223875160994395807661232131084159313618731857124877138595181097623164945245383300756841758861139390364848100093433217023\n",
763 "5288447750321988791615322464262168318627237463714249754277190362195246329890490766601513683517722278780729696200186866434047\n",
763 "5288447750321988791615322464262168318627237463714249754277190362195246329890490766601513683517722278780729696200186866434047\n",
764 "10576895500643977583230644928524336637254474927428499508554380724390492659780981533203027367035444557561459392400373732868095\n",
764 "10576895500643977583230644928524336637254474927428499508554380724390492659780981533203027367035444557561459392400373732868095\n",
765 "21153791001287955166461289857048673274508949854856999017108761448780985319561963066406054734070889115122918784800747465736191\n",
765 "21153791001287955166461289857048673274508949854856999017108761448780985319561963066406054734070889115122918784800747465736191\n",
766 "42307582002575910332922579714097346549017899709713998034217522897561970639123926132812109468141778230245837569601494931472383\n",
766 "42307582002575910332922579714097346549017899709713998034217522897561970639123926132812109468141778230245837569601494931472383\n",
767 "84615164005151820665845159428194693098035799419427996068435045795123941278247852265624218936283556460491675139202989862944767\n",
767 "84615164005151820665845159428194693098035799419427996068435045795123941278247852265624218936283556460491675139202989862944767\n",
768 "169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889535\n",
768 "169230328010303641331690318856389386196071598838855992136870091590247882556495704531248437872567112920983350278405979725889535\n",
769 "338460656020607282663380637712778772392143197677711984273740183180495765112991409062496875745134225841966700556811959451779071\n",
769 "338460656020607282663380637712778772392143197677711984273740183180495765112991409062496875745134225841966700556811959451779071\n",
770 "676921312041214565326761275425557544784286395355423968547480366360991530225982818124993751490268451683933401113623918903558143\n",
770 "676921312041214565326761275425557544784286395355423968547480366360991530225982818124993751490268451683933401113623918903558143\n",
771 "1353842624082429130653522550851115089568572790710847937094960732721983060451965636249987502980536903367866802227247837807116287\n",
771 "1353842624082429130653522550851115089568572790710847937094960732721983060451965636249987502980536903367866802227247837807116287\n",
772 "2707685248164858261307045101702230179137145581421695874189921465443966120903931272499975005961073806735733604454495675614232575\n",
772 "2707685248164858261307045101702230179137145581421695874189921465443966120903931272499975005961073806735733604454495675614232575\n",
773 "5415370496329716522614090203404460358274291162843391748379842930887932241807862544999950011922147613471467208908991351228465151\n",
773 "5415370496329716522614090203404460358274291162843391748379842930887932241807862544999950011922147613471467208908991351228465151\n",
774 "10830740992659433045228180406808920716548582325686783496759685861775864483615725089999900023844295226942934417817982702456930303\n",
774 "10830740992659433045228180406808920716548582325686783496759685861775864483615725089999900023844295226942934417817982702456930303\n",
775 "21661481985318866090456360813617841433097164651373566993519371723551728967231450179999800047688590453885868835635965404913860607\n",
775 "21661481985318866090456360813617841433097164651373566993519371723551728967231450179999800047688590453885868835635965404913860607\n",
776 "43322963970637732180912721627235682866194329302747133987038743447103457934462900359999600095377180907771737671271930809827721215\n",
776 "43322963970637732180912721627235682866194329302747133987038743447103457934462900359999600095377180907771737671271930809827721215\n",
777 "86645927941275464361825443254471365732388658605494267974077486894206915868925800719999200190754361815543475342543861619655442431\n",
777 "86645927941275464361825443254471365732388658605494267974077486894206915868925800719999200190754361815543475342543861619655442431\n",
778 "173291855882550928723650886508942731464777317210988535948154973788413831737851601439998400381508723631086950685087723239310884863\n",
778 "173291855882550928723650886508942731464777317210988535948154973788413831737851601439998400381508723631086950685087723239310884863\n",
779 "346583711765101857447301773017885462929554634421977071896309947576827663475703202879996800763017447262173901370175446478621769727\n",
779 "346583711765101857447301773017885462929554634421977071896309947576827663475703202879996800763017447262173901370175446478621769727\n",
780 "693167423530203714894603546035770925859109268843954143792619895153655326951406405759993601526034894524347802740350892957243539455\n",
780 "693167423530203714894603546035770925859109268843954143792619895153655326951406405759993601526034894524347802740350892957243539455\n",
781 "1386334847060407429789207092071541851718218537687908287585239790307310653902812811519987203052069789048695605480701785914487078911\n",
781 "1386334847060407429789207092071541851718218537687908287585239790307310653902812811519987203052069789048695605480701785914487078911\n",
782 "2772669694120814859578414184143083703436437075375816575170479580614621307805625623039974406104139578097391210961403571828974157823\n",
782 "2772669694120814859578414184143083703436437075375816575170479580614621307805625623039974406104139578097391210961403571828974157823\n",
783 "5545339388241629719156828368286167406872874150751633150340959161229242615611251246079948812208279156194782421922807143657948315647\n",
783 "5545339388241629719156828368286167406872874150751633150340959161229242615611251246079948812208279156194782421922807143657948315647\n",
784 "11090678776483259438313656736572334813745748301503266300681918322458485231222502492159897624416558312389564843845614287315896631295\n",
784 "11090678776483259438313656736572334813745748301503266300681918322458485231222502492159897624416558312389564843845614287315896631295\n",
785 "22181357552966518876627313473144669627491496603006532601363836644916970462445004984319795248833116624779129687691228574631793262591\n",
785 "22181357552966518876627313473144669627491496603006532601363836644916970462445004984319795248833116624779129687691228574631793262591\n",
786 "44362715105933037753254626946289339254982993206013065202727673289833940924890009968639590497666233249558259375382457149263586525183\n",
786 "44362715105933037753254626946289339254982993206013065202727673289833940924890009968639590497666233249558259375382457149263586525183\n",
787 "88725430211866075506509253892578678509965986412026130405455346579667881849780019937279180995332466499116518750764914298527173050367\n",
787 "88725430211866075506509253892578678509965986412026130405455346579667881849780019937279180995332466499116518750764914298527173050367\n",
788 "177450860423732151013018507785157357019931972824052260810910693159335763699560039874558361990664932998233037501529828597054346100735\n",
788 "177450860423732151013018507785157357019931972824052260810910693159335763699560039874558361990664932998233037501529828597054346100735\n",
789 "354901720847464302026037015570314714039863945648104521621821386318671527399120079749116723981329865996466075003059657194108692201471\n",
789 "354901720847464302026037015570314714039863945648104521621821386318671527399120079749116723981329865996466075003059657194108692201471\n",
790 "709803441694928604052074031140629428079727891296209043243642772637343054798240159498233447962659731992932150006119314388217384402943\n",
790 "709803441694928604052074031140629428079727891296209043243642772637343054798240159498233447962659731992932150006119314388217384402943\n",
791 "1419606883389857208104148062281258856159455782592418086487285545274686109596480318996466895925319463985864300012238628776434768805887\n",
791 "1419606883389857208104148062281258856159455782592418086487285545274686109596480318996466895925319463985864300012238628776434768805887\n",
792 "2839213766779714416208296124562517712318911565184836172974571090549372219192960637992933791850638927971728600024477257552869537611775\n",
792 "2839213766779714416208296124562517712318911565184836172974571090549372219192960637992933791850638927971728600024477257552869537611775\n",
793 "5678427533559428832416592249125035424637823130369672345949142181098744438385921275985867583701277855943457200048954515105739075223551\n",
793 "5678427533559428832416592249125035424637823130369672345949142181098744438385921275985867583701277855943457200048954515105739075223551\n",
794 "11356855067118857664833184498250070849275646260739344691898284362197488876771842551971735167402555711886914400097909030211478150447103\n",
794 "11356855067118857664833184498250070849275646260739344691898284362197488876771842551971735167402555711886914400097909030211478150447103\n",
795 "22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894207\n",
795 "22713710134237715329666368996500141698551292521478689383796568724394977753543685103943470334805111423773828800195818060422956300894207\n",
796 "45427420268475430659332737993000283397102585042957378767593137448789955507087370207886940669610222847547657600391636120845912601788415\n",
796 "45427420268475430659332737993000283397102585042957378767593137448789955507087370207886940669610222847547657600391636120845912601788415\n",
797 "90854840536950861318665475986000566794205170085914757535186274897579911014174740415773881339220445695095315200783272241691825203576831\n",
797 "90854840536950861318665475986000566794205170085914757535186274897579911014174740415773881339220445695095315200783272241691825203576831\n",
798 "181709681073901722637330951972001133588410340171829515070372549795159822028349480831547762678440891390190630401566544483383650407153663\n",
798 "181709681073901722637330951972001133588410340171829515070372549795159822028349480831547762678440891390190630401566544483383650407153663\n",
799 "363419362147803445274661903944002267176820680343659030140745099590319644056698961663095525356881782780381260803133088966767300814307327\n",
799 "363419362147803445274661903944002267176820680343659030140745099590319644056698961663095525356881782780381260803133088966767300814307327\n",
800 "726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614655\n",
800 "726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614655\n",
801 "1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229311\n",
801 "1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229311\n",
802 "2907354897182427562197295231552018137414565442749272241125960796722557152453591693304764202855054262243050086425064711734138406514458623\n",
802 "2907354897182427562197295231552018137414565442749272241125960796722557152453591693304764202855054262243050086425064711734138406514458623\n",
803 "5814709794364855124394590463104036274829130885498544482251921593445114304907183386609528405710108524486100172850129423468276813028917247\n",
803 "5814709794364855124394590463104036274829130885498544482251921593445114304907183386609528405710108524486100172850129423468276813028917247\n",
804 "11629419588729710248789180926208072549658261770997088964503843186890228609814366773219056811420217048972200345700258846936553626057834495\n",
804 "11629419588729710248789180926208072549658261770997088964503843186890228609814366773219056811420217048972200345700258846936553626057834495\n",
805 "23258839177459420497578361852416145099316523541994177929007686373780457219628733546438113622840434097944400691400517693873107252115668991\n",
805 "23258839177459420497578361852416145099316523541994177929007686373780457219628733546438113622840434097944400691400517693873107252115668991\n",
806 "46517678354918840995156723704832290198633047083988355858015372747560914439257467092876227245680868195888801382801035387746214504231337983\n",
806 "46517678354918840995156723704832290198633047083988355858015372747560914439257467092876227245680868195888801382801035387746214504231337983\n",
807 "93035356709837681990313447409664580397266094167976711716030745495121828878514934185752454491361736391777602765602070775492429008462675967\n",
807 "93035356709837681990313447409664580397266094167976711716030745495121828878514934185752454491361736391777602765602070775492429008462675967\n",
808 "186070713419675363980626894819329160794532188335953423432061490990243657757029868371504908982723472783555205531204141550984858016925351935\n",
808 "186070713419675363980626894819329160794532188335953423432061490990243657757029868371504908982723472783555205531204141550984858016925351935\n",
809 "372141426839350727961253789638658321589064376671906846864122981980487315514059736743009817965446945567110411062408283101969716033850703871\n",
809 "372141426839350727961253789638658321589064376671906846864122981980487315514059736743009817965446945567110411062408283101969716033850703871\n",
810 "744282853678701455922507579277316643178128753343813693728245963960974631028119473486019635930893891134220822124816566203939432067701407743\n",
810 "744282853678701455922507579277316643178128753343813693728245963960974631028119473486019635930893891134220822124816566203939432067701407743\n",
811 "1488565707357402911845015158554633286356257506687627387456491927921949262056238946972039271861787782268441644249633132407878864135402815487\n",
811 "1488565707357402911845015158554633286356257506687627387456491927921949262056238946972039271861787782268441644249633132407878864135402815487\n",
812 "2977131414714805823690030317109266572712515013375254774912983855843898524112477893944078543723575564536883288499266264815757728270805630975\n",
812 "2977131414714805823690030317109266572712515013375254774912983855843898524112477893944078543723575564536883288499266264815757728270805630975\n",
813 "5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261951\n",
813 "5954262829429611647380060634218533145425030026750509549825967711687797048224955787888157087447151129073766576998532529631515456541611261951\n",
814 "11908525658859223294760121268437066290850060053501019099651935423375594096449911575776314174894302258147533153997065059263030913083222523903\n",
814 "11908525658859223294760121268437066290850060053501019099651935423375594096449911575776314174894302258147533153997065059263030913083222523903\n",
815 "23817051317718446589520242536874132581700120107002038199303870846751188192899823151552628349788604516295066307994130118526061826166445047807\n",
815 "23817051317718446589520242536874132581700120107002038199303870846751188192899823151552628349788604516295066307994130118526061826166445047807\n",
816 "47634102635436893179040485073748265163400240214004076398607741693502376385799646303105256699577209032590132615988260237052123652332890095615\n",
816 "47634102635436893179040485073748265163400240214004076398607741693502376385799646303105256699577209032590132615988260237052123652332890095615\n",
817 "95268205270873786358080970147496530326800480428008152797215483387004752771599292606210513399154418065180265231976520474104247304665780191231\n",
817 "95268205270873786358080970147496530326800480428008152797215483387004752771599292606210513399154418065180265231976520474104247304665780191231\n",
818 "190536410541747572716161940294993060653600960856016305594430966774009505543198585212421026798308836130360530463953040948208494609331560382463\n",
818 "190536410541747572716161940294993060653600960856016305594430966774009505543198585212421026798308836130360530463953040948208494609331560382463\n",
819 "381072821083495145432323880589986121307201921712032611188861933548019011086397170424842053596617672260721060927906081896416989218663120764927\n",
819 "381072821083495145432323880589986121307201921712032611188861933548019011086397170424842053596617672260721060927906081896416989218663120764927\n",
820 "762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529855\n",
820 "762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529855\n",
821 "1524291284333980581729295522359944485228807686848130444755447734192076044345588681699368214386470689042884243711624327585667956874652483059711\n",
821 "1524291284333980581729295522359944485228807686848130444755447734192076044345588681699368214386470689042884243711624327585667956874652483059711\n",
822 "3048582568667961163458591044719888970457615373696260889510895468384152088691177363398736428772941378085768487423248655171335913749304966119423\n",
822 "3048582568667961163458591044719888970457615373696260889510895468384152088691177363398736428772941378085768487423248655171335913749304966119423\n",
823 "6097165137335922326917182089439777940915230747392521779021790936768304177382354726797472857545882756171536974846497310342671827498609932238847\n",
823 "6097165137335922326917182089439777940915230747392521779021790936768304177382354726797472857545882756171536974846497310342671827498609932238847\n",
824 "12194330274671844653834364178879555881830461494785043558043581873536608354764709453594945715091765512343073949692994620685343654997219864477695\n",
824 "12194330274671844653834364178879555881830461494785043558043581873536608354764709453594945715091765512343073949692994620685343654997219864477695\n",
825 "24388660549343689307668728357759111763660922989570087116087163747073216709529418907189891430183531024686147899385989241370687309994439728955391\n",
825 "24388660549343689307668728357759111763660922989570087116087163747073216709529418907189891430183531024686147899385989241370687309994439728955391\n",
826 "48777321098687378615337456715518223527321845979140174232174327494146433419058837814379782860367062049372295798771978482741374619988879457910783\n",
826 "48777321098687378615337456715518223527321845979140174232174327494146433419058837814379782860367062049372295798771978482741374619988879457910783\n",
827 "97554642197374757230674913431036447054643691958280348464348654988292866838117675628759565720734124098744591597543956965482749239977758915821567\n",
827 "97554642197374757230674913431036447054643691958280348464348654988292866838117675628759565720734124098744591597543956965482749239977758915821567\n",
828 "195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643135\n",
828 "195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643135\n",
829 "390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286271\n",
829 "390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286271\n",
830 "780437137578998057845399307448291576437149535666242787714789239906342934704941405030076525765872992789956732780351655723861993919822071326572543\n",
830 "780437137578998057845399307448291576437149535666242787714789239906342934704941405030076525765872992789956732780351655723861993919822071326572543\n",
831 "1560874275157996115690798614896583152874299071332485575429578479812685869409882810060153051531745985579913465560703311447723987839644142653145087\n",
831 "1560874275157996115690798614896583152874299071332485575429578479812685869409882810060153051531745985579913465560703311447723987839644142653145087\n",
832 "3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290175\n",
832 "3121748550315992231381597229793166305748598142664971150859156959625371738819765620120306103063491971159826931121406622895447975679288285306290175\n",
833 "6243497100631984462763194459586332611497196285329942301718313919250743477639531240240612206126983942319653862242813245790895951358576570612580351\n",
833 "6243497100631984462763194459586332611497196285329942301718313919250743477639531240240612206126983942319653862242813245790895951358576570612580351\n",
834 "12486994201263968925526388919172665222994392570659884603436627838501486955279062480481224412253967884639307724485626491581791902717153141225160703\n",
834 "12486994201263968925526388919172665222994392570659884603436627838501486955279062480481224412253967884639307724485626491581791902717153141225160703\n",
835 "24973988402527937851052777838345330445988785141319769206873255677002973910558124960962448824507935769278615448971252983163583805434306282450321407\n",
835 "24973988402527937851052777838345330445988785141319769206873255677002973910558124960962448824507935769278615448971252983163583805434306282450321407\n",
836 "49947976805055875702105555676690660891977570282639538413746511354005947821116249921924897649015871538557230897942505966327167610868612564900642815\n",
836 "49947976805055875702105555676690660891977570282639538413746511354005947821116249921924897649015871538557230897942505966327167610868612564900642815\n",
837 "99895953610111751404211111353381321783955140565279076827493022708011895642232499843849795298031743077114461795885011932654335221737225129801285631\n",
837 "99895953610111751404211111353381321783955140565279076827493022708011895642232499843849795298031743077114461795885011932654335221737225129801285631\n",
838 "199791907220223502808422222706762643567910281130558153654986045416023791284464999687699590596063486154228923591770023865308670443474450259602571263\n",
838 "199791907220223502808422222706762643567910281130558153654986045416023791284464999687699590596063486154228923591770023865308670443474450259602571263\n",
839 "399583814440447005616844445413525287135820562261116307309972090832047582568929999375399181192126972308457847183540047730617340886948900519205142527\n",
839 "399583814440447005616844445413525287135820562261116307309972090832047582568929999375399181192126972308457847183540047730617340886948900519205142527\n",
840 "799167628880894011233688890827050574271641124522232614619944181664095165137859998750798362384253944616915694367080095461234681773897801038410285055\n",
840 "799167628880894011233688890827050574271641124522232614619944181664095165137859998750798362384253944616915694367080095461234681773897801038410285055\n",
841 "1598335257761788022467377781654101148543282249044465229239888363328190330275719997501596724768507889233831388734160190922469363547795602076820570111\n",
841 "1598335257761788022467377781654101148543282249044465229239888363328190330275719997501596724768507889233831388734160190922469363547795602076820570111\n",
842 "3196670515523576044934755563308202297086564498088930458479776726656380660551439995003193449537015778467662777468320381844938727095591204153641140223\n",
842 "3196670515523576044934755563308202297086564498088930458479776726656380660551439995003193449537015778467662777468320381844938727095591204153641140223\n",
843 "6393341031047152089869511126616404594173128996177860916959553453312761321102879990006386899074031556935325554936640763689877454191182408307282280447\n",
843 "6393341031047152089869511126616404594173128996177860916959553453312761321102879990006386899074031556935325554936640763689877454191182408307282280447\n",
844 "12786682062094304179739022253232809188346257992355721833919106906625522642205759980012773798148063113870651109873281527379754908382364816614564560895\n",
844 "12786682062094304179739022253232809188346257992355721833919106906625522642205759980012773798148063113870651109873281527379754908382364816614564560895\n",
845 "25573364124188608359478044506465618376692515984711443667838213813251045284411519960025547596296126227741302219746563054759509816764729633229129121791\n",
845 "25573364124188608359478044506465618376692515984711443667838213813251045284411519960025547596296126227741302219746563054759509816764729633229129121791\n",
846 "51146728248377216718956089012931236753385031969422887335676427626502090568823039920051095192592252455482604439493126109519019633529459266458258243583\n",
846 "51146728248377216718956089012931236753385031969422887335676427626502090568823039920051095192592252455482604439493126109519019633529459266458258243583\n",
847 "102293456496754433437912178025862473506770063938845774671352855253004181137646079840102190385184504910965208878986252219038039267058918532916516487167\n",
847 "102293456496754433437912178025862473506770063938845774671352855253004181137646079840102190385184504910965208878986252219038039267058918532916516487167\n",
848 "204586912993508866875824356051724947013540127877691549342705710506008362275292159680204380770369009821930417757972504438076078534117837065833032974335\n",
848 "204586912993508866875824356051724947013540127877691549342705710506008362275292159680204380770369009821930417757972504438076078534117837065833032974335\n",
849 "409173825987017733751648712103449894027080255755383098685411421012016724550584319360408761540738019643860835515945008876152157068235674131666065948671\n",
849 "409173825987017733751648712103449894027080255755383098685411421012016724550584319360408761540738019643860835515945008876152157068235674131666065948671\n",
850 "818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897343\n",
850 "818347651974035467503297424206899788054160511510766197370822842024033449101168638720817523081476039287721671031890017752304314136471348263332131897343\n",
851 "1636695303948070935006594848413799576108321023021532394741645684048066898202337277441635046162952078575443342063780035504608628272942696526664263794687\n"
851 "1636695303948070935006594848413799576108321023021532394741645684048066898202337277441635046162952078575443342063780035504608628272942696526664263794687\n"
852 ]
852 ]
853 }
853 }
854 ],
854 ],
855 "prompt_number": 8
855 "prompt_number": 8
856 },
856 },
857 {
857 {
858 "cell_type": "heading",
858 "cell_type": "heading",
859 "level": 2,
859 "level": 2,
860 "metadata": {},
860 "metadata": {},
861 "source": [
861 "source": [
862 "Capturing output with <tt>%%capture</tt>"
862 "Capturing output with <tt>%%capture</tt>"
863 ]
863 ]
864 },
864 },
865 {
865 {
866 "cell_type": "markdown",
866 "cell_type": "markdown",
867 "metadata": {},
867 "metadata": {},
868 "source": [
868 "source": [
869 "IPython has a cell magic, `%%capture`, which captures the stdout/stderr of a cell. With this magic you can discard these streams or store them in a variable."
869 "IPython has a [cell magic](Cell%20Magics.ipynb), `%%capture`, which captures the stdout/stderr of a cell. With this magic you can discard these streams or store them in a variable."
870 ]
870 ]
871 },
871 },
872 {
872 {
873 "cell_type": "code",
873 "cell_type": "code",
874 "collapsed": false,
874 "collapsed": false,
875 "input": [
875 "input": [
876 "from __future__ import print_function\n",
876 "from __future__ import print_function\n",
877 "import sys"
877 "import sys"
878 ],
878 ],
879 "language": "python",
879 "language": "python",
880 "metadata": {},
880 "metadata": {},
881 "outputs": [],
881 "outputs": [],
882 "prompt_number": 9
882 "prompt_number": 9
883 },
883 },
884 {
884 {
885 "cell_type": "markdown",
885 "cell_type": "markdown",
886 "metadata": {},
886 "metadata": {},
887 "source": [
887 "source": [
888 "By default, `%%capture` discards these streams. This is a simple way to suppress unwanted output."
888 "By default, `%%capture` discards these streams. This is a simple way to suppress unwanted output."
889 ]
889 ]
890 },
890 },
891 {
891 {
892 "cell_type": "code",
892 "cell_type": "code",
893 "collapsed": false,
893 "collapsed": false,
894 "input": [
894 "input": [
895 "%%capture\n",
895 "%%capture\n",
896 "print('hi, stdout')\n",
896 "print('hi, stdout')\n",
897 "print('hi, stderr', file=sys.stderr)"
897 "print('hi, stderr', file=sys.stderr)"
898 ],
898 ],
899 "language": "python",
899 "language": "python",
900 "metadata": {},
900 "metadata": {},
901 "outputs": [],
901 "outputs": [],
902 "prompt_number": 10
902 "prompt_number": 10
903 },
903 },
904 {
904 {
905 "cell_type": "markdown",
905 "cell_type": "markdown",
906 "metadata": {},
906 "metadata": {},
907 "source": [
907 "source": [
908 "If you specify a name, then stdout/stderr will be stored in an object in your namespace."
908 "If you specify a name, then stdout/stderr will be stored in an object in your namespace."
909 ]
909 ]
910 },
910 },
911 {
911 {
912 "cell_type": "code",
912 "cell_type": "code",
913 "collapsed": false,
913 "collapsed": false,
914 "input": [
914 "input": [
915 "%%capture captured\n",
915 "%%capture captured\n",
916 "print('hi, stdout')\n",
916 "print('hi, stdout')\n",
917 "print('hi, stderr', file=sys.stderr)"
917 "print('hi, stderr', file=sys.stderr)"
918 ],
918 ],
919 "language": "python",
919 "language": "python",
920 "metadata": {},
920 "metadata": {},
921 "outputs": [],
921 "outputs": [],
922 "prompt_number": 11
922 "prompt_number": 11
923 },
923 },
924 {
924 {
925 "cell_type": "code",
925 "cell_type": "code",
926 "collapsed": false,
926 "collapsed": false,
927 "input": [
927 "input": [
928 "captured"
928 "captured"
929 ],
929 ],
930 "language": "python",
930 "language": "python",
931 "metadata": {},
931 "metadata": {},
932 "outputs": [
932 "outputs": [
933 {
933 {
934 "metadata": {},
934 "metadata": {},
935 "output_type": "pyout",
935 "output_type": "pyout",
936 "prompt_number": 12,
936 "prompt_number": 12,
937 "text": [
937 "text": [
938 "<IPython.utils.io.CapturedIO at 0x103cf9190>"
938 "<IPython.utils.capture.CapturedIO at 0x2b9f710>"
939 ]
939 ]
940 }
940 }
941 ],
941 ],
942 "prompt_number": 12
942 "prompt_number": 12
943 },
943 },
944 {
944 {
945 "cell_type": "markdown",
945 "cell_type": "markdown",
946 "metadata": {},
946 "metadata": {},
947 "source": [
947 "source": [
948 "Calling the object writes the output to stdout/stderr as appropriate."
948 "Calling the object writes the output to stdout/stderr as appropriate."
949 ]
949 ]
950 },
950 },
951 {
951 {
952 "cell_type": "code",
952 "cell_type": "code",
953 "collapsed": false,
953 "collapsed": false,
954 "input": [
954 "input": [
955 "captured()"
955 "captured()"
956 ],
956 ],
957 "language": "python",
957 "language": "python",
958 "metadata": {},
958 "metadata": {},
959 "outputs": [
959 "outputs": [
960 {
960 {
961 "output_type": "stream",
961 "output_type": "stream",
962 "stream": "stdout",
962 "stream": "stdout",
963 "text": [
963 "text": [
964 "hi, stdout\n"
964 "hi, stdout\n"
965 ]
965 ]
966 },
966 },
967 {
967 {
968 "output_type": "stream",
968 "output_type": "stream",
969 "stream": "stderr",
969 "stream": "stderr",
970 "text": [
970 "text": [
971 "hi, stderr\n"
971 "hi, stderr\n"
972 ]
972 ]
973 }
973 }
974 ],
974 ],
975 "prompt_number": 13
975 "prompt_number": 13
976 },
976 },
977 {
977 {
978 "cell_type": "code",
978 "cell_type": "code",
979 "collapsed": false,
979 "collapsed": false,
980 "input": [
980 "input": [
981 "captured.stdout"
981 "captured.stdout"
982 ],
982 ],
983 "language": "python",
983 "language": "python",
984 "metadata": {},
984 "metadata": {},
985 "outputs": [
985 "outputs": [
986 {
986 {
987 "metadata": {},
987 "metadata": {},
988 "output_type": "pyout",
988 "output_type": "pyout",
989 "prompt_number": 14,
989 "prompt_number": 14,
990 "text": [
990 "text": [
991 "'hi, stdout\\n'"
991 "'hi, stdout\\n'"
992 ]
992 ]
993 }
993 }
994 ],
994 ],
995 "prompt_number": 14
995 "prompt_number": 14
996 },
996 },
997 {
997 {
998 "cell_type": "code",
998 "cell_type": "code",
999 "collapsed": false,
999 "collapsed": false,
1000 "input": [
1000 "input": [
1001 "captured.stderr"
1001 "captured.stderr"
1002 ],
1002 ],
1003 "language": "python",
1003 "language": "python",
1004 "metadata": {},
1004 "metadata": {},
1005 "outputs": [
1005 "outputs": [
1006 {
1006 {
1007 "metadata": {},
1007 "metadata": {},
1008 "output_type": "pyout",
1008 "output_type": "pyout",
1009 "prompt_number": 15,
1009 "prompt_number": 15,
1010 "text": [
1010 "text": [
1011 "'hi, stderr\\n'"
1011 "'hi, stderr\\n'"
1012 ]
1012 ]
1013 }
1013 }
1014 ],
1014 ],
1015 "prompt_number": 15
1015 "prompt_number": 15
1016 },
1016 },
1017 {
1017 {
1018 "cell_type": "markdown",
1018 "cell_type": "markdown",
1019 "metadata": {},
1019 "metadata": {},
1020 "source": [
1020 "source": [
1021 "`%%capture` only captures stdout/stderr, not other output types, so you can still do plots and use IPython's display system inside `%%capture`"
1021 "`%%capture` grabs all output types, not just stdout/stderr, so you can do plots and use IPython's display system inside `%%capture`"
1022 ]
1022 ]
1023 },
1023 },
1024 {
1024 {
1025 "cell_type": "code",
1025 "cell_type": "code",
1026 "collapsed": false,
1026 "collapsed": false,
1027 "input": [
1027 "input": [
1028 "%matplotlib inline\n",
1028 "%matplotlib inline\n",
1029 "import matplotlib.pyplot as plt\n",
1029 "import matplotlib.pyplot as plt\n",
1030 "import numpy as np"
1030 "import numpy as np"
1031 ],
1031 ],
1032 "language": "python",
1032 "language": "python",
1033 "metadata": {},
1033 "metadata": {},
1034 "outputs": [],
1034 "outputs": [],
1035 "prompt_number": 16
1035 "prompt_number": 16
1036 },
1036 },
1037 {
1037 {
1038 "cell_type": "code",
1038 "cell_type": "code",
1039 "collapsed": false,
1039 "collapsed": false,
1040 "input": [
1040 "input": [
1041 "%%capture wontshutup\n",
1041 "%%capture wontshutup\n",
1042 "\n",
1042 "\n",
1043 "print(\"setting up X\")\n",
1043 "print(\"setting up X\")\n",
1044 "x = np.linspace(0,5,1000)\n",
1044 "x = np.linspace(0,5,1000)\n",
1045 "print(\"step 2: constructing y-data\")\n",
1045 "print(\"step 2: constructing y-data\")\n",
1046 "y = np.sin(x)\n",
1046 "y = np.sin(x)\n",
1047 "print(\"step 3: display info about y\")\n",
1047 "print(\"step 3: display info about y\")\n",
1048 "plt.plot(x,y)\n",
1048 "plt.plot(x,y)\n",
1049 "print(\"okay, I'm done now\")"
1049 "print(\"okay, I'm done now\")"
1050 ],
1050 ],
1051 "language": "python",
1051 "language": "python",
1052 "metadata": {},
1052 "metadata": {},
1053 "outputs": [
1053 "outputs": [],
1054 {
1055 "output_type": "display_data",
1056 "png": "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\nRU5ErkJggg==\n",
1057 "text": [
1058 "<matplotlib.figure.Figure at 0x108356ed0>"
1059 ]
1060 }
1061 ],
1062 "prompt_number": 17
1054 "prompt_number": 17
1063 },
1055 },
1064 {
1056 {
1065 "cell_type": "code",
1057 "cell_type": "code",
1066 "collapsed": false,
1058 "collapsed": false,
1067 "input": [
1059 "input": [
1068 "wontshutup()"
1060 "wontshutup()"
1069 ],
1061 ],
1070 "language": "python",
1062 "language": "python",
1071 "metadata": {},
1063 "metadata": {},
1072 "outputs": [
1064 "outputs": [
1073 {
1065 {
1074 "output_type": "stream",
1066 "output_type": "stream",
1075 "stream": "stdout",
1067 "stream": "stdout",
1076 "text": [
1068 "text": [
1077 "setting up X\n",
1069 "setting up X\n",
1078 "step 2: constructing y-data\n",
1070 "step 2: constructing y-data\n",
1079 "step 3: display info about y\n",
1071 "step 3: display info about y\n",
1080 "okay, I'm done now\n"
1072 "okay, I'm done now\n"
1081 ]
1073 ]
1074 },
1075 {
1076 "metadata": {},
1077 "output_type": "display_data",
1078 "png": "iVBORw0KGgoAAAANSUhEUgAAAbIAAAELCAYAAAC8tgOhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8z/X///HbzEoOzSHku60o+zTKYaPWgUwaclhKhQ7k\nlOqDj/p0Up+KQiaJohw/IoWIzGlyGj7EHCb6xMUhtM2hz3I2GfP+/fH8pTJj23vvPd+v9/t+vVze\nFy2v9/t9976wx56P1/MQ4HK5XIiIiDhUMdsBRERE3KFCJiIijqZCJiIijqZCJiIijqZCJiIijqZC\nJiIijuZWIevSpQuVK1emVq1auV7Tu3dvwsPDqVOnDikpKe68nYiISA5uFbLOnTuTmJiY6+8vWLCA\nXbt2sXPnTsaOHctzzz3nztuJiIjkUNydJzds2JC9e/fm+vsJCQl06tQJgOjoaI4ePcqhQ4eoXLny\nX64LCAhwJ4aIiPiovOzZ4VYhu5L09HTCwsIufB0aGkpaWlqOQgZ5Cyt/1a9fP/r162c7Bvv3w7p1\nsHkz7NgBO3eax5kzULEiXHcdBAdDYKB5FCsGmZlw7Jh5ZGRAUBBUrWoet94KUVHmceONUNg/53jL\n5+Y0+twKRp9bweV1kOPRQgY5C5RGX86Xng6JifDtt7BmDZw+DXfcAfXqQcuW8Le/QXg4lC2btyLk\ncsHhw7Bnj3ls3QoTJ0KvXpCVBY0bQ5Mm5nHzzYVf2ETE2TxayEJCQkhNTb3wdVpaGiEhIZ58S/GQ\n7dth6lSYPdsUsthYaN4cBg50v7gEBECFCuZRvz48+ugfv5eaCsuWwdKl8M47UKYMPPKIuaZ2bRU1\nEfHw9Pu4uDgmT54MwNq1aylbtuwl24pSMDExMR59/YwMGDoUIiPhvvvgxAkYPRp++QWmTYPOnaF6\ndc8Wk7Aw6NQJJk+GtDTza1YWtGkDEREQHw+HDuXvNT39ufkqfW4Fo8/N8wLc2f2+Q4cOrFixgoyM\nDCpXrkz//v05e/YsAD169ACgZ8+eJCYmUqpUKSZOnEhUVFTOEAEBukfmJVwuSE6GUaMgIQEefBCe\nfhruvdfc3/IWLpe5LzduHHz9tWk79uwJMTEapYn4irzWBrcKWWFRIbPP5YIFC0yr8OBBeO456NLF\ntPu83fHj8MUXMHy4mVTyyivw0EPeVXhFJP9UyCRPXC6YNQsGDIDz5+H11809KCcWgfPnzSgyPt60\nRfv1gw4dzCxJEXEeFTK5opUr4aWX4Nw56N8fWrXyjbacywXLl5uinJkJgwaZ2ZS+8GcT8ScqZJKr\nbdvgtdfg++/NN/n27X1z1OJywdy58MYbpkX68cdwmd3URMTL5LU2+OC3L8lNZib07Wsmbtx7r5lS\n//jjvlnEwIzA4uLMQu127cyEkH/8A44etZ1MRAqTj34Lk4vNn292zNi3zyw4/uc/oUQJ26mKRmCg\nmbzy44/w229QowZ8+aUZsYmI86m16OMyMuDvf4eNG+GTT6BpU9uJ7Fu/3szIvOkmsy6uShXbiUTk\nUtRaFObNM7tf3HCDGYWpiBm33w4bNpjPpk4d+Pxzjc5EnEwjMh90/Di8+KLZ2umzz8z9MLm0TZvM\ngu/wcBg/HsqVs51IRH6nEZmf2rTJ7BoPZlaiitjlRUWZnUxCQsxWXKtX204kIvmlEZmPcLnM/Z63\n3oKRI80sPcmfuXOhe3ez1VXfvs5cFC7iS7SOzI+cOGG+AW/bBjNmmGNUpGDS081uIKVLm22v1GoU\nsUetRT+xaxdER5vjTdauVRFzV0iIOTImPNycsfbDD7YTiciVqJA52NKlcM895gDKcePgmmtsJ/IN\nQUEwYgS8+aY51PPrr20nEpHLUWvRgVwucx9s4EBz2GXjxrYT+a6NG+Hhh82ZaP37a79GkaKke2Q+\n6tw5Mxlh9WqYM8cs6hXP+uUXaN3atG3Hj4err7adSMQ/6B6ZDzp1yhx0uW8frFmjIlZUKlUyu+mf\nOgXNm8ORI7YTicifqZA5xC+/mBZi5crmzK0yZWwn8i8lS5oZoZGRcPfdsGeP7UQi8jsVMgfYvdtM\n6mjWDCZMMJMRpOgFBsKwYfD889Cggdn2S0TsK247gFze5s3QooVZ6Pzss7bTCJhZohUrwv33m/uU\nd95pO5GIf9NkDy+2bp05T2vUKHjkEdtp5GILFpjZjFOnmqImIoVLkz0cbuVKM1Pu3/9WEfNWLVqY\nNWaPPw7ffGM7jYj/UmvRCy1ZYr45Tp1qTjUW73XvvbBwIbRqBWfOaI9LERtUyLzMvHnm0MdZs8yE\nAvF+9erBokVmMk5AADz2mO1EIv5FhcyLzJ8PXbuaYnbHHbbTSH7Urv1HMQMVM5GipELmJRYvhs6d\nzVEiKmLO9Hsxa9rUjMwefdR2IhH/oELmBVasgCeeMO3E6GjbacQdF4/MVMxEPE+FzLI1a8w3u+nT\ndU/MV9Sp88fIrGRJaNnSdiIR36bp9xatXw9t2sDnn2sHe19Tp45ZLP3002YphYh4jgqZJdu3m3Vi\nEyb80YYS33LnnWYJxSOPmONgRMQzVMgsSEszxWvIEFPMxHfdfz+MGWPWmW3fbjuNiG/SPbIidviw\nKWK9ekHHjrbTSFF46CE4ftzcM1u5EqpWtZ1IxLeokBWhU6fMT+YtWsBLL9lOI0WpUyc4etScZ7Zm\nDZQvbzuRiO/QpsFF5OxZcyhmxYowcSIUU1PXL738Mqxda9YNlihhO42Id8trbVAhKwIul1nsnJEB\ns2frPDF/dv682Ufz/HmYNk0/0Ihcjna/9yIDBsB//2vWiqmI+bdixeCzz+DQITM6ExH36R6Zh335\nJYwfb9pJpUrZTiPeoEQJMzJv0ABuvBF697adSMTZVMg86D//gX/8A5YtgypVbKcRb1K+vDn+5Z57\nIDQUHn7YdiIR59I9Mg/Ztcv8xD1pkhY8S+42bTJ/PxYtgqgo22lEvIvukVl0+LDZX69fPxUxubyo\nKBg92mxVduCA7TQizqQRWSHLyjILX+vXh6FDbacRpxgwwBzhk5QE11xjO42Id9D0ewtcLujRw8xI\nmzULAgNtJxKncLnMUT4AX3xhzjMT8XdqLVowerTZtWHKFBUxyZ+AALOB9K5dMGiQ7TQizqIRWSFZ\nscIcb79mDdx8s+004lQHDpjDVT/8ENq2tZ1GxC61FovQvn3myI7JkyE21nYacbrfZzIuXWpOnBbx\nV2otFpHMTDPj7JVXVMSkcERFwYgRZtf8w4dtpxHxfhqRucHlgg4d4OqrzbZDukEvhemFF8wZZvPm\n6Z6r+CeNyIrAkCHw00/m4EQVMSlsQ4bA6dNmPaKI5E4jsgJatsxMl16/3mwxJOIJhw6ZNYkjR5pj\ngET8iSZ7eFB6uvnmMmUKNGliO434unXroHVrWLUKbrnFdhqRoqPWoodkZcGjj5ody1XEpChER8PA\ngWbyx4kTttOIeB+3C1liYiIRERGEh4cTHx+f4/eTkpIIDg4mMjKSyMhIBgwY4O5bWvXKK1ChArz6\nqu0k4k+6dzc75XfubCYZicgf3DrGJTs7m549e7JkyRJCQkK4/fbbiYuLo0aNGn+5rlGjRiQkJLgV\n1BtMn272w9uwQSf7StH7+GNzosJHH5njgUTEcOvbcXJyMtWrV6dq1aoEBQXRvn175syZk+M6J93/\nys22bdCzJ8ycCeXK2U4j/qhECfjqK9NmTE62nUbEe7g1IktPTycsLOzC16Ghoaxbt+4v1wQEBLBm\nzRrq1KlDSEgIQ4cOpWbNmjleq9+f5hjHxMQQExPjTrRCdfKk2S4oPh4iI22nEX92001muUe7drBx\nozmgU8RXJCUlkZSUlO/nuVXIAvKweCoqKorU1FRKlizJwoULadOmDTt27MhxXT8vXSzjcpn7E3fd\nBV262E4jYiZ9rFxp7pd9843WMIrvuHgQ079//zw9z63WYkhICKmpqRe+Tk1NJfSiRVVlypShZMmS\nADzwwAOcPXuWww7ad2fcOPjxR7OOR8RbxMfDwYMwbJjtJCL2uVXI6tevz86dO9m7dy9ZWVlMnz6d\nuLi4v1xz6NChC/fIkpOTcblclHdIP2TrVnjjDTPJQ4cdije56ipzv2zIEPjuO9tpROxyq7VYvHhx\nRo4cSbNmzcjOzqZr167UqFGDMWPGANCjRw9mzpzJp59+SvHixSlZsiTTpk0rlOCeduqUuQ/x/vsQ\nEWE7jUhON94I48dD+/Zmx/wKFWwnErFDO3vkols3OHPGHM2iexDizV5+2cyqTUjQshDxLdrZww1T\np5qb6Z98oiIm3m/QIHPcy4cf2k4iYodGZBfZtcvMUFy8GOrWtZ1GJG/27oU77oCFC6FePdtpRAqH\nRmQFcOaMuS/29tsqYuIsVauanT8ef9ysexTxJxqR/UmfPrBvH8yapZaiONPvax3//W+7OUQKg0Zk\n+TR3LsyeDRMmqIiJc330EaxeDQ6ZHCxSKDQiAw4cMFtPzZxpNmUVcbJNm6B5c3OOWbVqttOIFJxG\nZHl0/rzZ6ueZZ1TExDdERZljhp54As6ds51GxPP8vpCNHAlHjsCbb9pOIlJ4XngBypSBPG5VJ+Jo\nft1a/OEHiImBtWuhevUif3sRjzp40LTMp02DRo1spxHJP7UWr+C338xU5fh4FTHxTddfb2YvPvWU\n6TqI+Cq/HZG9+KKZaj9zpmYpim/r1Qt+/RW+/NJ2EpH80YjsMhYvNjuHjx2rIia+Lz4eUlLM1msi\nvsjvRmQZGWbXjokTITa2SN5SxLqNG+GBB8yvfzrUXcSr5bU2+FUhc7mgbVuztuaDDzz+diJeZeBA\nWLbMdCS0S744gVqLlzBhAuzebXYLF/E3r74Kp0+b3T9EfInfjMh274boaEhKgttu8+hbiXit3bvh\nzjth+XL9OxDvpxHZn2RnQ6dO8Prr+scr/u3mm2HwYHjySXPag4gv8ItCNmwYBAaa3e1F/F2XLnDj\njea4IhFf4POtxR9+gMaNITlZG6iK/O6XX6BOHbMMpWFD22lELk2tRSArCzp2NJM7VMRE/lCpEowb\nZ/59HD9uO42Ie3x6RPbWW7BhA8yfr4XPIpfyzDPmBIjx420nEcnJ79eRrV8PrVqZHQ3+7/8K9aVF\nfMaJE1C7tjkFomVL22lE/sqvW4unT5uWyYgRKmIil1OmjNlYuEcPOHzYdhqRgvHJEdkLL5hTn3Xc\nu0je9O5tCtmUKbaTiPzBb1uLSUnmZNwtW6BChUJ5SRGfd+qU2YN0yBB46CHbaUQMvyxkx4+bKcWj\nRkGLFoUQTMSPrFlj9iLdsgUqVrSdRsRPC1m3bmZ24rhxhRBKxA+98gr89BPMmKGZvmKf3032mD8f\nli41u3iISMG88w5s26b7y+IsPjEiO3wYatUyJ+A2alSIwUT80IYNZir+5s1QpYrtNOLP/Kq1+NRT\nZmLH8OGFGErEj735pilkCQlqMYo9ftNanDsXvvvOHBooIoXjzTchNRUmTbKdROTKHD0iO3LEtBS/\n+EItRZHCtmULNGkCmzZBWJjtNOKP/KK1+PTTZmeCjz8u/EwiYjodK1bAokVqMUrR8/nW4vz5sHIl\nvPee7SQivuvVV+HoURg71nYSkdw5ckR29KhpKU6ebM4aExHP+e9/ISYGNm6EG26wnUb8iU+3Frt2\nhauvhk8+8WAoEblg0CDTYkxMVItRio7PthYTE2HZMoiPt51ExH+8/DJkZJid8kW8jaNGZMeOmZbi\nxIlmNpWIFJ3fZzGmpEBoqO004g98srXYvTsEBsLo0UUQSkRyeOcdWLcO5s1Ti1E8z+dai99+C4sX\nm2MmRMSOvn0hPd1MtBLxFo4YkR0/bo5jHzcOYmOLMJiI5LB5MzRtan7VCeziST7VWnz2WcjO1vEs\nIt7irbdMIZszRy1G8RyfKWRLlkCXLrB1KwQHF3EwEbmkrCyoVw9ee82cyC7iCT5RyE6cMC3FTz+F\n5s0tBBORXP1+3Mv338P119tOI77IJwrZ88/DmTMwYYKFUCJyRa+/Dtu3w9dfq8Uohc/xhWz5cujY\n0bQUy5a1FExELuu33yAqCt5+G9q1s51GfI2jC9nJk6alOHIktGhhMZiIXNG6dfDgg2bBdKVKttOI\nL3F0IevVy9wf++wze5lEJO9eeQX27oWvvrKdRHyJYwvZihVmFtTWrVCunOVgIpInp09D3bpmc+G2\nbW2nEV/hyEJ26pRpKQ4fDq1b204lIvmxZo0pYlu3wnXX2U4jvqDItqhKTEwkIiKC8PBw4nPZkr53\n796Eh4dTp04dUlJScn2tN96Ae+5RERNxorvvhg4doHdv20nE37hVyLKzs+nZsyeJiYn8+OOPTJ06\nlW3btv3lmgULFrBr1y527tzJ2LFjee655y75WqtWwYwZZjQmIs40YACsX292/BApKm4VsuTkZKpX\nr07VqlUJCgqiffv2zLnob3BCQgKdOnUCIDo6mqNHj3Lo0KEcr9Wlizkos3x5dxKJiE0lS5ozy55/\nHg4ftp1G/EVxd56cnp5OWFjYha9DQ0NZt27dFa9JS0ujcuXKf7nummv6kZJizjqKiYkhJibGnWgi\nYknDhuZeWZ8+2iVf8icpKYmkpKR8P8+tQhaQx6X8F9+su9Tzli/vR4UK7qQREW/x3ntm4ta8edCq\nle004hQXD2L69++fp+e51VoMCQkhNTX1wtepqamEXnR07MXXpKWlERISkuO1VMREfEepUmZruWef\nhSNHbKcRX+dWIatfvz47d+5k7969ZGVlMX36dOLi4v5yTVxcHJP/f39h7dq1lC1bNkdbUUR8T0wM\ntGkDL75oO4n4Ordai8WLF2fkyJE0a9aM7OxsunbtSo0aNRgzZgwAPXr0oEWLFixYsIDq1atTqlQp\nJk6cWCjBRcT7DR4MtWrBggXabk48x6sWRIuI71m2DDp1gh9+0JmCkj+O3NlDRHzTc8/B2bMwfrzt\nJOIkKmQi4jVOnDAtxjFjoFkz22nEKYpsiyoRkSspU8aMxrp3h2PHbKcRX6MRmYgUmR49wOWCsWNt\nJxEnUGtRRLzO8eOmxTh+PMTG2k4j3k6tRRHxOtdea0Zj3bub+2YihUEjMhEpct26QVAQfPqp7STi\nzdRaFBGvdeyYaTFOnAhNmthOI95KrUUR8VrBwWYqfrduajGK+zQiExFrunSBa66BUaNsJxFvpNai\niHi9o0fhttvg88+hcWPbacTbqLUoIl6vbNk/WoynTtlOI06lEZmIWNepk7lv9tFHtpOIN1FrUUQc\n48gR02L88kto1Mh2GvEWai2KiGOUKwejR0PXrmoxSv5pRCYiXuOpp6BCBRg+3HYS8QZqLYqI4xw+\nbFqMX30FDRrYTiO2qbUoIo5Tvjx88olZX5aZaTuNOIVGZCLidR5/HKpUgQ8+sJ1EbFJrUUQcKyMD\nateGmTPh7rttpxFb1FoUEce67joYORI6d1aLUa5MIzIR8VpPPGGK2ogRtpOIDWotiojjHTliWoyf\nfabjXvyRWosi4njlysG4cWYW47FjttOIt9KITES83rPPwpkz5iBO8R8akYmIzxg6FFauhIQE20nE\nG2lEJiKOsGoVtGsH338PFSvaTiNFQZM9RMTnvPwy7NkDM2ZAQIDtNOJpai2KiM95913Yvt0c9yLy\nO43IRMRRNm2C5s0hJQVCQmynEU/SiExEfFJUFPTqZc4u08+/AipkIuJAffuaI1/GjLGdRLyBWosi\n4kjbt5szy9auherVbacRT1BrUUR8WkQE/Otf0KkTnDtnO43YpEImIo7Vuzdccw0MHmw7idik1qKI\nOFp6upkAkpAA0dG200hhUmtRRPxCSAh88gk8+SScPGk7jdigEZmI+ISuXc2vEybYzSGFRyMyEfEr\nI0bAihUwa5btJFLUNCITEZ+xbh3ExZndP7Trh/NpRCYific6Gnr2NFPyz5+3nUaKigqZiPiUvn3h\n9GkYPtx2Eikqai2KiM/ZswfuuAOWLIE6dWynkYJSa1FE/Fa1ajBsGDz+uBmdiW/TiExEfJLLBU88\nAcHB8OmnttNIQWhEJiJ+LSAARo+GxYvNidLiuzQiExGftmEDtGhhdsm/6SbbaSQ/NCITEQHq14fX\nX4f27SEry3Ya8QSNyETE57lc8OCD8Le/wdChttNIXuW1NqiQiYhf+PVXiIw0Ez9atrSdRvJChUxE\n5CKrVsGjj8LGjdrCygk8XsgOHz5Mu3bt2LdvH1WrVuWrr76ibNmyOa6rWrUq1157LYGBgQQFBZGc\nnFzgsCIi7howwCyUXroUAgNtp5HL8fhkj8GDBxMbG8uOHTto0qQJg3M5ojUgIICkpCRSUlIuWcRE\nRIpS376mgL37ru0kUliKF/SJCQkJrFixAoBOnToRExOTazHLS0Xt16/fhf+OiYkhJiamoNFERHIV\nGAhTpkC9enDPPRAbazuR/C4pKYmkpKR8P6/ArcVy5cpx5MgRwBSq8uXLX/j6z2666SaCg4MJDAyk\nR48edO/ePWcItRZFpIglJZkp+cnJcMMNttPIpeS1Nlx2RBYbG8vBgwdz/P+BAwfmeLOAgIBLvsbq\n1aupUqUK//vf/4iNjSUiIoKGDRteMZiIiCfFxMCLL5rJHytXwtVX204kBVXgEVlERARJSUlcf/31\nHDhwgMaNG7N9+/bLPqd///6ULl2af/7zn38NoRGZiFjgcsHDD5sZjCNH2k4jF/P4ZI+4uDgmTZoE\nwKRJk2jTpk2OazIzMzlx4gQAp06d4ttvv6VWrVoFfUsRkUIVEACffQaLFsEXX9hOIwXl1vT7xx57\njJ9//vkv0+/3799P9+7dmT9/Pj/99BMPP/wwAOfOneOJJ56gb9++OUNoRCYiFm3ZAk2amPtmt95q\nO438TguiRUTyYfJkGDgQ1q+Ha6+1nUZAhUxEJN+efRYyMsyxL7nMX5MipN3vRUTyafhw+PlneP99\n20kkPwq8IFpExNeUKAGzZkF0NNx2mznHTLyfWosiIhdZswbatDGbDN9yi+00/kutRRGRArr7bnjv\nPYiLg6NHbaeRK9GITEQkF716wU8/QUKCdsq3QSMyERE3DRsGmZnwr3/ZTiKXo0ImIpKLoCAzFX/a\nNJg61XYayY1mLYqIXMZ118GcOWbnjxtvNPfPxLtoRCYicgW1a8OkSdC2LezebTuNXEyFTEQkD1q0\ngDffhJYt4RJHL4pFmrUoIpIPL74IKSlmx/yrrrKdxrdpr0UREQ/IzjYtxrJlYeJE7cnoSZp+LyLi\nAYGB5uyyH34wu+WLfZq1KCKST6VKwdy5cNddEBYGnTrZTuTfVMhERAqgShVITISYGKhQAVq1sp3I\nf6m1KCJSQBERZo1Z586werXtNP5LhUxExA3R0TBlCjz8sLlvJkVPhUxExE3NmplDOR94APbts53G\n/+gemYhIIejQAf73P2ja1JxjVqmS7UT+Q4VMRKSQ9O4Nv/4K998Py5ebSSDieVoQLSJSiFwueO01\nWLIEli41C6elYLSzh4iIJS4XvPACfPcdLF4M115rO5EzqZCJiFjkcsHf/w5btpj1ZqVL207kPCpk\nIiKWnT8PPXrArl1mJxAVs/zRXosiIpYVKwZjxsDNN5sp+seO2U7km1TIREQ8qFgxGDsW6tUzp0z/\n+qvtRL5HhUxExMOKFYMRI0whi4mBQ4dsJ/ItWkcmIlIEAgJg8GCzc/6995qp+aGhtlP5BhUyEZEi\nEhAAb70FJUtCgwawcCHUqGE7lfOpkImIFLGXXjJbWMXEwNdfm6ImBad7ZCIiFnTsCJ9/Dg89BLNm\n2U7jbBqRiYhY0rQpLFoErVtDejr06mU7kTNpQbSIiGV79kDLlqbVOGIEBAXZTuQdtCBaRMQhqlUz\n+zL+/LMZpWVk2E7kLCpkIiJeIDgY5swxJ07fcYdOm84PFTIRES8RGGjWmr37LjRuDF99ZTuRM+ge\nmYiIF9q0CR57zOzR+MEHUKKE7URFT/fIREQcLCoKNm4021ndcw/s3m07kfdSIRMR8VLBwTBjBjz9\nNNx1l1l3puZVTmotiog4QEqKWUQdHm6OhqlY0XYiz1NrUUTEh0RGwoYNppDVrg3ffGM7kffQiExE\nxGH+8x/TboyMhOHDISTEdiLP0IhMRMRHNWgAW7eanfPr1DHF7Nw526ns0YhMRMTBtm+H55+HI0fM\nNP377rOdqPDktTaokImIOJzLZWY39u0Lt9wC8fFQq5btVO5Ta1FExE8EBJjF09u2QfPmcP/95h7a\njh22kxUNFTIRER9x1VXQu7cpYNWqmYXU7dvDli22k3mWCpmIiI8JDoa334affoJ69cw2V82amSn7\nTpkUsn173q9VIXOwpKQk2xEcSZ9bwehzKxibn1uZMvDyy+a8s6eegiFDzEjtnXe8c8urzEz44gto\n1MiczZZXBS5kM2bM4NZbbyUwMJBNmzblel1iYiIRERGEh4cTHx9f0LeTS9A3loLR51Yw+twKxhs+\ntxIl4MknYc0amDvX7N94113myJgPP4R9++xly8yEmTOhXTuoUgUmTzbt0dTUvL9GgQtZrVq1mD17\nNvfee2+u12RnZ9OzZ08SExP58ccfmTp1Ktu2bSvoW4qIiJvq1oVRo2D/fnNczJYtcPvtZk1anz6w\nYIGZyu8p2dlmh5L4eIiNhcqVYexYM0Fl1y5YtAjats3fKdnFCxomIiLiitckJydTvXp1qlatCkD7\n9u2ZM2cONWrUKOjbiohIIShe3JxG3bQpnD9v9nJMTIT33zeFpkoVM2KrXdtsixUeDjffnPfjZM6d\ng7Q009bcvRs2bzZH02zZAjfcYApXr15mNBYc7OYfxuWmmJgY18aNGy/5ezNmzHB169btwteff/65\nq2fPnjmuA/TQQw899NAjxyMvLjsii42N5eDBgzn+/6BBg2jduvXlngqYxWx54dJiaBERKaDLFrLF\nixe79eIhISGk/umOXWpqKqGhoW69poiIyJ8VyvT73EZU9evXZ+fOnezdu5esrCymT59OXFxcYbyl\niIgI4EYhmz17NmFhYaxdu5aWLVvywAMPALB//35atmwJQPHixRk5ciTNmjWjZs2atGvXThM9RESk\nUFnfNDiuYlHuAAADO0lEQVQxMZE+ffqQnZ1Nt27dePXVV23GcYQuXbowf/58KlWqxNatW23HcYzU\n1FQ6duzIL7/8QkBAAM888wy9e/e2Hcvr/fbbbzRq1IgzZ86QlZXFgw8+yHvvvWc7lmNkZ2dTv359\nQkNDmTt3ru04jlG1alWuvfZaAgMDCQoKIjk5OddrrRay7OxsbrnlFpYsWUJISAi33347U6dO1ajt\nClatWkXp0qXp2LGjClk+HDx4kIMHD1K3bl1OnjxJvXr1+Oabb/T3LQ8yMzMpWbIk586do0GDBgwd\nOpQGDRrYjuUIw4YNY+PGjZw4cYKEhATbcRyjWrVqbNy4kfLly1/xWqtbVP15nVlQUNCFdWZyeQ0b\nNqRcuXK2YzjO9ddfT926dQEoXbo0NWrUYP/+/ZZTOUPJkiUByMrKIjs7O0/fXATS0tJYsGAB3bp1\n0+zsAsjrZ2a1kKWnpxMWFnbh69DQUNLT0y0mEn+xd+9eUlJSiI6Oth3FEc6fP0/dunWpXLkyjRs3\npmbNmrYjOcILL7zA+++/T7Fi2tY2vwICArj//vupX78+48aNu+y1Vj/dvK4zEylMJ0+e5JFHHmHE\niBGULl3adhxHKFasGJs3byYtLY2VK1d6xf6B3m7evHlUqlSJyMhIjcYKYPXq1aSkpLBw4UJGjRrF\nqlWrcr3WaiHTOjMpamfPnqVt27Y8+eSTtGnTxnYcxwkODqZly5Zs2LDBdhSvt2bNGhISEqhWrRod\nOnRg2bJldOzY0XYsx6hSpQoAFStW5KGHHrrsZA+rhUzrzKQouVwuunbtSs2aNenTp4/tOI6RkZHB\n0aNHATh9+jSLFy8mMjLScirvN2jQIFJTU9mzZw/Tpk3jvvvuY/LkybZjOUJmZiYnTpwA4NSpU3z7\n7bfUqlUr1+utFjKtMyuYDh06cPfdd7Njxw7CwsKYOHGi7UiOsHr1aqZMmcLy5cuJjIwkMjKSxMRE\n27G83oEDB7jvvvuoW7cu0dHRtG7dmiZNmtiO5Ti6lZJ3hw4domHDhhf+zrVq1YqmTZvmer31dWQi\nIiLu0FQaERFxNBUyERFxNBUyERFxNBUyERFxNBUyERFxNBUyERFxtP8HVSXVk8IxdTkAAAAASUVO\nRK5CYII=\n",
1079 "text": [
1080 "<matplotlib.figure.Figure at 0x3817cd0>"
1081 ]
1082 }
1082 }
1083 ],
1083 ],
1084 "prompt_number": 18
1084 "prompt_number": 18
1085 },
1085 },
1086 {
1086 {
1087 "cell_type": "markdown",
1087 "cell_type": "markdown",
1088 "metadata": {},
1088 "metadata": {},
1089 "source": [
1089 "source": [
1090 "And you can selectively disable capturing stdout or stderr by passing `--no-stdout/err`."
1090 "And you can selectively disable capturing stdout, stderr or rich display, by passing `--no-stdout`, `--no-stderr` and `--no-display`"
1091 ]
1091 ]
1092 },
1092 },
1093 {
1093 {
1094 "cell_type": "code",
1094 "cell_type": "code",
1095 "collapsed": false,
1095 "collapsed": false,
1096 "input": [
1096 "input": [
1097 "%%capture cap --no-stderr\n",
1097 "%%capture cap --no-stderr\n",
1098 "print('hi, stdout')\n",
1098 "print('hi, stdout')\n",
1099 "print(\"hello, stderr\", file=sys.stderr)"
1099 "print(\"hello, stderr\", file=sys.stderr)"
1100 ],
1100 ],
1101 "language": "python",
1101 "language": "python",
1102 "metadata": {},
1102 "metadata": {},
1103 "outputs": [
1103 "outputs": [
1104 {
1104 {
1105 "output_type": "stream",
1105 "output_type": "stream",
1106 "stream": "stderr",
1106 "stream": "stderr",
1107 "text": [
1107 "text": [
1108 "hello, stderr"
1108 "hello, stderr\n"
1109 ]
1110 },
1111 {
1112 "output_type": "stream",
1113 "stream": "stderr",
1114 "text": [
1115 "\n"
1116 ]
1109 ]
1117 }
1110 }
1118 ],
1111 ],
1119 "prompt_number": 19
1112 "prompt_number": 19
1120 },
1113 },
1121 {
1114 {
1122 "cell_type": "code",
1115 "cell_type": "code",
1123 "collapsed": false,
1116 "collapsed": false,
1124 "input": [
1117 "input": [
1125 "cap.stdout"
1118 "cap.stdout"
1126 ],
1119 ],
1127 "language": "python",
1120 "language": "python",
1128 "metadata": {},
1121 "metadata": {},
1129 "outputs": [
1122 "outputs": [
1130 {
1123 {
1124 "metadata": {},
1131 "output_type": "pyout",
1125 "output_type": "pyout",
1132 "prompt_number": 20,
1126 "prompt_number": 20,
1133 "text": [
1127 "text": [
1134 "'hi, stdout\\n'"
1128 "'hi, stdout\\n'"
1135 ]
1129 ]
1136 }
1130 }
1137 ],
1131 ],
1138 "prompt_number": 20
1132 "prompt_number": 20
1139 },
1133 },
1140 {
1134 {
1141 "cell_type": "code",
1135 "cell_type": "code",
1142 "collapsed": false,
1136 "collapsed": false,
1143 "input": [
1137 "input": [
1144 "cap.stderr"
1138 "cap.stderr"
1145 ],
1139 ],
1146 "language": "python",
1140 "language": "python",
1147 "metadata": {},
1141 "metadata": {},
1148 "outputs": [
1142 "outputs": [
1149 {
1143 {
1144 "metadata": {},
1150 "output_type": "pyout",
1145 "output_type": "pyout",
1151 "prompt_number": 21,
1146 "prompt_number": 21,
1152 "text": [
1147 "text": [
1153 "''"
1148 "''"
1154 ]
1149 ]
1155 }
1150 }
1156 ],
1151 ],
1157 "prompt_number": 21
1152 "prompt_number": 21
1153 },
1154 {
1155 "cell_type": "code",
1156 "collapsed": false,
1157 "input": [
1158 "cap.outputs"
1159 ],
1160 "language": "python",
1161 "metadata": {},
1162 "outputs": [
1163 {
1164 "metadata": {},
1165 "output_type": "pyout",
1166 "prompt_number": 22,
1167 "text": [
1168 "[]"
1169 ]
1170 }
1171 ],
1172 "prompt_number": 22
1158 }
1173 }
1159 ],
1174 ],
1160 "metadata": {}
1175 "metadata": {}
1161 }
1176 }
1162 ]
1177 ]
1163 } No newline at end of file
1178 }
General Comments 0
You need to be logged in to leave comments. Login now